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
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
1.3.7