mirror of
https://github.com/UOX3DevTeam/UOX3
synced 2026-08-13 12:27:04 -04:00
43 lines
843 B
C++
43 lines
843 B
C++
#include "cThreadQueue.h"
|
|
|
|
CThreadQueue::CThreadQueue()
|
|
{
|
|
}
|
|
|
|
CThreadQueue &CThreadQueue::operator<<( MessageType newMessage )
|
|
{
|
|
NewMessage( newMessage, NULL );
|
|
return (*this);
|
|
}
|
|
CThreadQueue &CThreadQueue::operator <<( char *toPush )
|
|
{
|
|
NewMessage( MSG_PRINT, toPush );
|
|
return (*this);
|
|
}
|
|
bool CThreadQueue::Empty( void )
|
|
{
|
|
MutexOn();
|
|
bool retVal = internalQueue.empty();
|
|
MutexOff();
|
|
return retVal;
|
|
}
|
|
MessagePassed CThreadQueue::GrabMessage( void )
|
|
{
|
|
MutexOn();
|
|
MessagePassed toReturn = internalQueue.front();
|
|
internalQueue.pop();
|
|
MutexOff();
|
|
return toReturn;
|
|
}
|
|
void CThreadQueue::NewMessage( MessageType toAdd, char *data )
|
|
{
|
|
MutexOn();
|
|
MessagePassed adding;
|
|
adding.actualMessage = toAdd;
|
|
if( data == NULL )
|
|
adding.data[0] = 0;
|
|
else
|
|
strncpy( adding.data, data, 128 );
|
|
internalQueue.push( adding );
|
|
MutexOff();
|
|
}
|