NptSimpleMessageQueue.h

00001 /*****************************************************************
00002 |
00003 |   Neptune - Simple Message Queue
00004 |
00005 |   (c) 2001-2006 Gilles Boccon-Gibod
00006 |   Author: Gilles Boccon-Gibod (bok@bok.net)
00007 |
00008  ****************************************************************/
00009 
00010 #ifndef _NPT_SIMPLE_MESSAGE_QUEUE_H_
00011 #define _NPT_SIMPLE_MESSAGE_QUEUE_H_
00012 
00013 /*----------------------------------------------------------------------
00014 |   includes
00015 +---------------------------------------------------------------------*/
00016 #include "NptTypes.h"
00017 #include "NptThreads.h"
00018 #include "NptMessaging.h"
00019 #include "NptQueue.h"
00020 
00021 /*----------------------------------------------------------------------
00022 |   class references
00023 +---------------------------------------------------------------------*/
00024 struct NPT_SimpleMessageCapsule;
00025 
00026 /*----------------------------------------------------------------------
00027 |   NPT_SimpleMessageQueue
00028 +---------------------------------------------------------------------*/
00029 class NPT_SimpleMessageQueue : public NPT_MessageQueue
00030 {
00031  public:
00032     // members
00033     NPT_SimpleMessageQueue();
00034     virtual ~NPT_SimpleMessageQueue();
00035 
00036     // NPT_MessageQueue methods
00037     virtual NPT_Result QueueMessage(NPT_Message*        message, 
00038                                     NPT_MessageHandler* handler);
00039     virtual NPT_Result PumpMessage(bool blocking = true);
00040 
00041  private:
00042     // members
00043     NPT_Queue<NPT_SimpleMessageCapsule> m_Queue;
00044 };
00045 
00046 #endif // _NPT_SIMPLE_MESSAGE_QUEUE_H_