f8/cpp/protoutils.h
2018-08-03 19:57:13 +08:00

64 lines
1.4 KiB
C++

#ifndef COMMON_PROTOUTILS_H
#define COMMON_PROTOUTILS_H
//普通消息头部
struct PackHead
{
unsigned short packlen;
unsigned short msgid;
unsigned int magiccode;
};
//转发类消息头部
struct ForwardPackHead
{
unsigned short packlen;
unsigned short sockethandle;
unsigned short msgid;
unsigned short src_msgid;
unsigned int src_seqid;
unsigned long ip_saddr;
unsigned int sign;
};
class Player;
struct MsgHdr
{
unsigned int seqid;
unsigned short msgid;
int socket_handle;
unsigned long ip_saddr;
const char* buf;
int buflen;
int offset;
Player *hum = nullptr;
const void* user_data = nullptr;
};
const unsigned int MAGIC_CODE = 0xAABBCCAA;
namespace google
{
namespace protobuf
{
class Message;
}
}
namespace a8
{
class TcpClient;
class TcpListener;
}
int Net_GetMessageId(::google::protobuf::Message& msg);
void Net_PackMsg(unsigned short msgid, ::google::protobuf::Message& msg, std::string& out);
int Net_SendMsg(a8::TcpClient* tcp_client, unsigned short msgid, ::google::protobuf::Message& msg);
int Net_SendMsg(a8::TcpClient* tcp_client, unsigned short msgid,
const char* msgbody, int msgbody_len);
int Net_SendMsg(a8::TcpListener* tcp_tlistener, unsigned short socket_handle,
unsigned short msgid, ::google::protobuf::Message& msg);
#endif