-
Notifications
You must be signed in to change notification settings - Fork 0
/
t_proto.hpp
48 lines (44 loc) · 1.3 KB
/
t_proto.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/**
* @file: t_proto.hpp
* @brief:
* 提供简单编解码的接口,如果存在多种协议,可以进一步把接口全部virtual,
* 业务统一使用virtual 接口,新增协议只要分配注册新实例。
* @author: wusheng Hu
* @version: v0x0001
* @date: 2018-04-24
*/
#ifndef _t_proto_hpp_
#define _t_proto_hpp_
namespace T_TCP
{
// proto format: | 4 type head | payload |
enum CODERET
{
RET_RECV_OK = 0,
RET_RECV_NOT_COMPLETE = 1,
RET_RECV_ERR = 2,
};
class BusiCodec
{
public:
BusiCodec(int iType);
virtual ~BusiCodec();
enum CODERET DeCode(const char* pDstBuf, int iSrcLen, char* pSrcPayLoad, int *piPayLoadLen);
/**
* @brief: EnCode
* 将 长度为iSrcLen的pSrcBuf编码到 空间 pDstMsg, 最后总的编码空间长度存放
* 在 piDstMsgLen.
* @param pSrcBuf
* @param iSrcLen
* @param pDstMsg
* @param piDstMsgLen
* 既是入参,也是出参,入参作为编码空间的初始偏移量,出参是编码完后,最
* 终的编码空间的偏移量
* @return
*/
enum CODERET EnCode(const char* pSrcBuf, int iSrcLen, char *pDstMsg, int* piDstMsgLen);
private:
int m_iCodeType;
};
}
#endif