diff options
Diffstat (limited to 'qpid/cpp/src/qpid/cluster/Quorum_cman.h')
-rw-r--r-- | qpid/cpp/src/qpid/cluster/Quorum_cman.h | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/qpid/cpp/src/qpid/cluster/Quorum_cman.h b/qpid/cpp/src/qpid/cluster/Quorum_cman.h index d0f8b2c954..130f1baf64 100644 --- a/qpid/cpp/src/qpid/cluster/Quorum_cman.h +++ b/qpid/cpp/src/qpid/cluster/Quorum_cman.h @@ -22,26 +22,40 @@ * */ +#include <qpid/sys/DispatchHandle.h> +#include <boost/function.hpp> +#include <boost/shared_ptr.hpp> +#include <memory> + extern "C" { #include <libcman.h> } namespace qpid { - -class Options; +namespace sys { +class Poller; +} namespace cluster { +class Cluster; class Quorum { public: - Quorum(); + Quorum(boost::function<void ()> onError); ~Quorum(); - void init(); - bool isQuorate(); + void start(boost::shared_ptr<sys::Poller>); private: + void dispatch(sys::DispatchHandle&); + void disconnect(sys::DispatchHandle&); + int getFd(); + void watch(int fd); + bool enable; cman_handle_t cman; + int cmanFd; + std::auto_ptr<sys::DispatchHandleRef> dispatchHandle; + boost::shared_ptr<sys::Poller> poller; }; |