コード例 #1
0
ファイル: client.cpp プロジェクト: hanchen999/OS94
void displayLoop(socket_ptr sock)
{
    for(;;)
    {       
        if(!messageQueue->empty())
        {
            if(!isOwnMessage(messageQueue->front()))
            {
                cout << "\n" + *(messageQueue->front()) << endl;
            }
            
            messageQueue->pop();
        }
        
        boost::this_thread::sleep( boost::posix_time::millisec(50));
    }
}
コード例 #2
0
void displayLoop(socket_ptr sock)
{
    for(;;)
    {
        if(!messageQueue->empty())
        {
            if(!isOwnMessage(messageQueue->front()))
            {
                cout << "\n" + *(messageQueue->front());
		mainMutex.lock();
		recvMessage.insert(0,*(messageQueue->front()));
		mainMutex.unlock();
            }
		
            messageQueue->pop();
        }

        boost::this_thread::sleep( boost::posix_time::millisec(1000));
    }
}
コード例 #3
0
void displayLoop(socket_ptr sock)
{
    for(;;)
    {
        if(!messageQueue->empty())
        {
            if(!isOwnMessage(messageQueue->front()))
            {
                string strTemp = *(messageQueue->front());
                cerr << "message received:" << strTemp.c_str() << ":\n";
                mainMutex.lock();
                recvMessage.clear();
                recvMessage.append(strTemp.c_str());
                mainMutex.unlock();
            }
            messageQueue->pop();
        }

        boost::this_thread::sleep( boost::posix_time::millisec(50));
    }
}
コード例 #4
0
ファイル: server.cpp プロジェクト: LudwikJaniuk/chat_test
void responseLoop()
{
	for(;;)
	{
		if(!messageQueue->empty())
		{
			auto message = messageQueue->front();

			mtx.lock();
			for(auto& clientSock : *clientList)
			{
				clientSock->write_some(buffer(*(message->begin()->second), bufSize));
			}
			mtx.unlock();

			mtx.lock();
			messageQueue->pop();
			mtx.unlock();
		}

		boost::this_thread::sleep( boost::posix_time::millisec(sleepLen::lon));
	}
}