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 Wed Nov 10 20:56:36 2004 for Eris by  doxygen 1.3.9.1