DragonNest/Extern/PTSDK/SDTalk/SDMessage.h
2024-12-19 09:48:26 +08:00

57 lines
No EOL
1.1 KiB
C++

#pragma once
#include <queue>
using namespace std;
class CSDMessage
{
public:
CSDMessage();
~CSDMessage();
#pragma pack(2)
struct MsgHead
{
unsigned short msg_cmd;
unsigned long trans_id;
unsigned short game_type;
unsigned short major_v;
unsigned short minor_v;
unsigned short area_code;
unsigned short mark_code;
};
#pragma pack()
public:
MsgHead m_Head;
inline int GetContentCount();
const char* GetContent(int index);
void SetContent(int index, const char * cs_content);
void AddContent(const char * cs_content);
void AddContent(int i_content);
void RemoveContent(int index, int count = 1);
void ClearContent();
int GetSize();
void ToBuf(unsigned char * buf);
void FromBuf(const char * buf, int length);
void CopyHead(CSDMessage & a);
void CopyHead(MsgHead & head);
void CopyContent(CSDMessage & a);
CSDMessage & operator = (CSDMessage & a);
const char * operator[](int index){return GetContent(index);}
protected:
vector<const char *> m_aContent;
long ntohl(long a);
short ntohs (short a);
private:
void CutTail();
};
#define SDHeadSize sizeof(CSDMessage::MsgHead)