summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/cluster/Quorum_cman.h
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/qpid/cluster/Quorum_cman.h')
-rw-r--r--qpid/cpp/src/qpid/cluster/Quorum_cman.h24
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;
};