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

Wait.h

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

Generated on Thu Jul 29 08:12:34 2004 for Eris by doxygen 1.3.7