Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

POBox.h

Go to the documentation of this file.
00001 //=============================================================================
00002 // POBox.h
00006 //
00007 // Created 5/13/03 By Daniel Larimer
00008 //=============================================================================
00009 #ifndef _POBOX_H_
00010 #define _POBOX_H_
00011 #include<qobject.h>
00012 #include<string>
00013 #include<list>
00014 #include<DTime.h>
00015 #include<POAddress.h>
00016 #include<POBoxIF.h>
00017 
00018 using namespace std;
00019 class PostOffice;
00020 class POMessage;
00021 
00022 class PEXPR_API POBox : public QObject, public POBoxIF
00023 {
00024     Q_OBJECT
00025     public:
00026         POBox( const string& name, PostOffice* po );
00027         ~POBox();
00028 
00029         const POMessage* popMessage();
00030         
00031         void   setQueueState( bool state = true )   { m_queuestate = state; }
00032         bool   getQueueState()const                 { return m_queuestate;  }
00033 
00034         string getName()const { return m_name; }
00035         bool   hasMessages( bool check_now = false )const;
00036 
00037         PostOffice* getPostOffice()const{ return m_po; }
00038     
00039         bool sendTextMsg( const POAddress& adr, const char* format, ... );
00040     
00041         bool sendMessage( POMessage* msg, const POAddress& adr, 
00042                                         bool send_now = false );
00043         const POMessage* sendBlockingMessage( POMessage* msg, 
00044                                         const POAddress& adr, 
00045                                         const DTime& timeout = DTime(2,0) );
00046 
00047         void joinGroup( const POAddress& groupadr, bool create = false );
00048         void leaveGroup( const POAddress& groupadr );
00049     
00050     public slots:
00051         void addMessage( const POMessage* msg );
00052 
00053     signals:
00057         void messageArrived();
00058 
00060         void messageArrived( const POMessage* msg );
00061         void messageSent   ( const POMessage* msg );
00062         
00063     private:
00064         list<const POMessage*>    m_inbox;
00065         string                    m_name;
00066         PostOffice*               m_po;
00067         bool                      m_queuestate;
00068 };
00069 
00070 #endif

Generated on Tue Jun 15 12:49:28 2004 for pexpr by doxygen 1.3.4