= XLOG / BUFFERING
#define RPC_BUF_LEN 1048576 /* 1024*1024 */
#define XLOG(_format, ...) fprintf(stderr, "[%s:%s:%u] " _format "\n", __FILE__, __func__, __LINE__, __VA_ARGS__);
#define RPC_BUF_START(_pc) if(_pc) { \
if(gRpcBufLen) { \
XLOG("Invalid RPC_BUF_START:PC[%p=>%p]", gpProtoCtx, (_pc)); \
gRpcBufLen = 0; \
} \
gpProtoCtx = (_pc); \
}
#define RPC_BUF_END(_pc) if(_pc) { \
if(gRpcBufLen) { \
gRpcBuf[gRpcBufLen] = 0x00; \
proto_SendRaw((_pc), gRpcBuf, gRpcBufLen); \
XLOG("Sent[%s]", gRpcBuf); \
} \
gRpcBufLen = 0; \
gpProtoCtx = NULL; \
}
#define RPC_BUF_ADD(_pc, _src, _src_len) { \
if((gRpcBufLen + (_src_len)) >= sizeof(gRpcBuf)) { \
/* Buffer Full => Send */ \
RPC_BUF_END((_pc)); \
RPC_BUF_START((_pc)); \
} \
memcpy(&gRpcBuf[gRpcBufLen], (_src), (_src_len)); \
gRpcBufLen += (_src_len); \
}
char gRpcBuf[RPC_BUF_LEN + 1];
unsigned int gRpcBufLen = 0;
tProtoCtx* gpProtoCtx = NULL;