1
0
forked from 0ad/0ad
0ad/source/tools/atlas/GameInterface/MessagePasser.h
janwas b755ddefda remove all author/modified by tags.
make include guards consistent.

This was SVN commit r5040.
2007-05-07 16:33:24 +00:00

31 lines
611 B
C++

#ifndef INCLUDED_MESSAGEPASSER
#define INCLUDED_MESSAGEPASSER
#include "SharedMemory.h"
namespace AtlasMessage
{
struct IMessage;
struct QueryMessage;
class MessagePasser
{
public:
virtual void Add(IMessage*)=0;
// takes ownership of IMessage object
virtual IMessage* Retrieve()=0;
virtual void Query(QueryMessage*, void(*timeoutCallback)())=0;
// blocks; caller retains ownership of QueryMessage object
};
extern MessagePasser* g_MessagePasser;
#define POST_MESSAGE(type, data) AtlasMessage::g_MessagePasser->Add(SHAREABLE_NEW(AtlasMessage::m##type, data))
}
#endif // INCLUDED_MESSAGEPASSER