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); } }