#pragma once #include #include typedef ::google::protobuf::Message ProtoMessage; typedef ::google::protobuf::Descriptor ProtoDescriptor; struct ProtoMsgCodec { static unsigned char* encode(ProtoMessage* msg, size_t& msgSize); static ProtoMessage* decode(unsigned char* buf, size_t size); static bool msgComplete(unsigned char* buf, size_t size); }; inline bool ProtoMsgCodec::msgComplete(unsigned char* buf, size_t size) { return size >= 4 && size >= *(uint32_t *)buf; }