void
MessageLooper::_MessageLooper()
{
	BPrivate::LinkReceiver& receiver = fLink.Receiver();

	while (true) {
		int32 code;
		status_t status = receiver.GetNextMessage(code);
		if (status < B_OK) {
			// that shouldn't happen, it's our port
			char name[256];
			_GetLooperName(name, 256);
			printf("MessageLooper \"%s\": Someone deleted our message port %ld, %s!\n",
				name, receiver.Port(), strerror(status));
			break;
		}

		Lock();

		if (code == kMsgQuitLooper) {
			Quit();
		} else
			_DispatchMessage(code, receiver);

		Unlock();
	}
}
Example #2
0
ResultCode CNetCenter::MockReceive( const CMessage *mockMsg )
{
	if (mockMsg)
	{
		_DispatchMessage(*mockMsg);
	}
	return Result_Success;
}
Example #3
0
void CNetCenter::OnPackReady(const CBufferMessage &buffer )
{
	Global->Logf(LogFile_Net,_T("OnPackReady, size:%d\n"),buffer.GetSize());
	CMessage2Parser parser;
	CMessage msg(parser.GetMsgType(buffer));
	if(parser.Parser(&msg, buffer) == MsgStatus_Ok)
	{
		_DispatchMessage(msg);
	}
}
Example #4
0
void CNetCenter::OnReceive( int nErrorCode,CAsyncSocketEx* pSock )
{
	Global->PtrAssert(pSock);
	CBufferMessage buffer;
	buffer.Alloc(1024);
	int length = pSock->Receive(buffer.GetBuffer(),1024);
	Global->Logf(LogFile_Net,_T("OnReceive, size:%d\n"),length);

	CMessage2Parser parser;
	CMessage msg(parser.GetMsgType(buffer));

	if (parser.Parser(&msg, buffer) == MsgStatus_Ok)
	{
		_DispatchMessage(msg);
	}
}