代码拉取完成,页面将自动刷新
同步操作将从 张远浩/call_demo_server 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*
* UtilPdu.h
*
* Created on: 2013-8-27
* Author: ziteng@mogujie.com
*/
#ifndef UTILPDU_H_
#define UTILPDU_H_
#include "ostype.h"
#include <string>
using namespace std;
// exception code
#define ERROR_CODE_PARSE_FAILED 1
#define ERROR_CODE_WRONG_SERVICE_ID 2
#define ERROR_CODE_WRONG_COMMAND_ID 3
#define ERROR_CODE_ALLOC_FAILED 4
class CPduException {
public:
CPduException(uint32_t command_id, uint32_t error_code, const char* error_msg)
{
m_command_id = command_id;
m_error_code = error_code;
m_error_msg = error_msg;
}
CPduException(uint32_t error_code, const char* error_msg)
{
m_command_id = 0;
m_error_code = error_code;
m_error_msg = error_msg;
}
virtual ~CPduException() {}
uint32_t GetCommandId() { return m_command_id; }
uint32_t GetErrorCode() { return m_error_code; }
char* GetErrorMsg() { return (char*)m_error_msg.c_str(); }
private:
uint32_t m_command_id;
uint32_t m_error_code;
string m_error_msg;
};
class CSimpleBuffer
{
public:
CSimpleBuffer();
~CSimpleBuffer();
uchar_t* GetBuffer() { return m_buffer; }
uint32_t GetAllocSize() { return m_alloc_size; }
uint32_t GetWriteOffset() { return m_write_offset; }
void IncWriteOffset(uint32_t len) { m_write_offset += len; }
void Extend(uint32_t len);
uint32_t Write(void* buf, uint32_t len);
uint32_t Read(void* buf, uint32_t len);
private:
uchar_t* m_buffer;
uint32_t m_alloc_size;
uint32_t m_write_offset;
};
class CByteStream
{
public:
CByteStream(uchar_t* buf, uint32_t len);
CByteStream(CSimpleBuffer* pSimpBuf, uint32_t pos);
~CByteStream() {}
unsigned char* GetBuf() { return m_pSimpBuf ? m_pSimpBuf->GetBuffer() : m_pBuf; }
uint32_t GetPos() { return m_pos; }
uint32_t GetLen() { return m_len; }
void Skip(uint32_t len)
{
m_pos += len;
if(m_pos > m_len)
{
throw CPduException(ERROR_CODE_PARSE_FAILED, "parase packet failed!");
}
}
static int16_t ReadInt16(uchar_t* buf);
static uint16_t ReadUint16(uchar_t* buf);
static int32_t ReadInt32(uchar_t* buf);
static uint32_t ReadUint32(uchar_t* buf);
static void WriteInt16(uchar_t* buf, int16_t data);
static void WriteUint16(uchar_t* buf, uint16_t data);
static void WriteInt32(uchar_t* buf, int32_t data);
static void WriteUint32(uchar_t* buf, uint32_t data);
void operator << (int8_t data);
void operator << (uint8_t data);
void operator << (int16_t data);
void operator << (uint16_t data);
void operator << (int32_t data);
void operator << (uint32_t data);
void operator >> (int8_t& data);
void operator >> (uint8_t& data);
void operator >> (int16_t& data);
void operator >> (uint16_t& data);
void operator >> (int32_t& data);
void operator >> (uint32_t& data);
void WriteString(const char* str);
void WriteString(const char* str, uint32_t len);
char* ReadString(uint32_t& len);
void WriteData(uchar_t* data, uint32_t len);
uchar_t* ReadData(uint32_t& len);
private:
void _WriteByte(void* buf, uint32_t len);
void _ReadByte(void* buf, uint32_t len);
private:
CSimpleBuffer* m_pSimpBuf;
uchar_t* m_pBuf;
uint32_t m_len;
uint32_t m_pos;
};
char* idtourl(uint32_t id);
uint32_t urltoid(const char* url);
#endif /* UTILPDU_H_ */
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。