Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

Wait.h

00001 #ifndef ERIS_WAIT_H
00002 #define ERIS_WAIT_H
00003 
00004 #include <sigc++/object.h>
00005 #include <Eris/Types.h>
00006 
00007 namespace Atlas { namespace Objects {
00008         class Root;
00009 }}
00010 
00011 namespace Eris
00012 {
00013 
00014 // Forward declarations
00015 class Dispatcher;
00016 class Connection;
00017         
00018 class WaitForBase : virtual public SigC::Object
00019 {
00020 public:
00021         WaitForBase(const Atlas::Message::Object &m, Connection *conn);
00022         virtual ~WaitForBase() {;}
00023                 
00024         bool isPending() const
00025         { return _pending; }
00026         
00027         void fire();
00028         
00031         static bool hasFired(WaitForBase *w)
00032         { return w->_pending; }
00033         
00034 protected:
00035         bool _pending;
00036         Atlas::Message::Object _msg;
00037         Connection* _conn;
00038 };
00039 
00040 class WaitForDispatch : public WaitForBase
00041 {
00042 public:
00043         WaitForDispatch(const Atlas::Message::Object &msg,  
00044                 const std::string &ppath,
00045                 Dispatcher *dsp,
00046                 Connection *conn);
00047 
00048         WaitForDispatch(const Atlas::Objects::Root &msg, 
00049                 const std::string &ppath,
00050                 Dispatcher *dsp,
00051                 Connection *conn);
00052 
00053         virtual ~WaitForDispatch();
00054 
00055 protected:
00056         std::string _parentPath;
00057         Dispatcher* _dsp;
00058 };
00059 
00060 class WaitForSignal : public WaitForBase
00061 {
00062 public: 
00063         WaitForSignal(Signal &sig, const Atlas::Message::Object &msg, Connection *conn);
00064         virtual ~WaitForSignal();
00065 protected:
00066         
00067 };
00068 
00069 }
00070 
00071 #endif

Generated on Thu May 22 08:01:05 2003 for Eris by doxygen1.3-rc3