コード例 #1
0
void PackManager::Dispatch()
{
	if (m_socketserver == nullptr)
	{
		fprintf(stderr, "socketserver ptr is null.");
		return;
	}

	RingBuffer ringbuffer = m_socketserver->GetRecvBuffer();
	if (ringbuffer.IsComplete())
	{
		long sz = ringbuffer.GetSize();
		if (sz != ringbuffer.Read(m_readbuffer, sz))
		{
			fprintf(stderr, "ringbuffer read data error.");
			return;
		}

		unsigned int version = PVERSION(m_readbuffer);
		unsigned int opcode = POPCODE(m_readbuffer);

		//google::protobuf::Message* pMessage = MessageFactory::CreateMessage(opcode);
		//pMessage->SerializeToArray(m_readbuffer, sz - HEADSIZE);
	}
}