From b849efb083c88de6c1932d0f7a87a7c500dbd3d6 Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Fri, 23 Jan 2009 21:55:15 +0000 Subject: Use special management ids for objects used in state transfer to new members. This prevents the ids getting out of sync across the cluster and allows management methods to be used reliably. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@737203 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/management/ManagementBroker.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'cpp/src/qpid/management/ManagementBroker.h') diff --git a/cpp/src/qpid/management/ManagementBroker.h b/cpp/src/qpid/management/ManagementBroker.h index 59dfb98596..f65d6a345e 100644 --- a/cpp/src/qpid/management/ManagementBroker.h +++ b/cpp/src/qpid/management/ManagementBroker.h @@ -32,10 +32,13 @@ #include "Manageable.h" #include "qmf/org/apache/qpid/broker/Agent.h" #include +#include namespace qpid { namespace management { +struct IdAllocator; + class ManagementBroker : public ManagementAgent { private: @@ -43,7 +46,6 @@ private: int threadPoolSize; public: - ManagementBroker (); virtual ~ManagementBroker (); @@ -78,6 +80,8 @@ public: uint32_t pollCallbacks (uint32_t) { assert(0); return 0; } int getSignalFd () { assert(0); return -1; } + void setAllocator(std::auto_ptr allocator); + uint64_t allocateId(Manageable* object); private: friend class ManagementAgent; @@ -179,6 +183,8 @@ private: uint32_t nextRequestSequence; bool clientWasAdded; + std::auto_ptr allocator; + # define MA_BUFFER_SIZE 65536 char inputBuffer[MA_BUFFER_SIZE]; char outputBuffer[MA_BUFFER_SIZE]; -- cgit v1.2.1