diff options
author | Ted Ross <tross@apache.org> | 2010-02-12 21:23:27 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2010-02-12 21:23:27 +0000 |
commit | 0b4bb5acdba9afef93a99864b39e1de438b5dc42 (patch) | |
tree | 5582b724a780595e6a33ac959a313c3e0e65048e /cpp/include/qpid/management/ManagementObject.h | |
parent | 1827a69f01ea0a955161fd93edfa137d7b1723a4 (diff) | |
download | qpid-python-0b4bb5acdba9afef93a99864b39e1de438b5dc42.tar.gz |
Changes needed for QPID-2029 (Clustering and Management don't work well together)
This update changes the indexing of object IDs in the broker-resident management agent
from being based on the QMFv1 format (numeric) to the QMFv2 format (string name). This removes
the need for numeric objectIds to be synchronized across a set of clustered brokers.
Also included in this patch is a fix to a bug in binding creation. Previously, when a binding
was created that already existed, the management object for the proposed binding (duplicate of
the existing one) was created then destroyed. This is inefficient and causes problems when the
name-based indexes collide.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@909610 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/include/qpid/management/ManagementObject.h')
-rw-r--r-- | cpp/include/qpid/management/ManagementObject.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cpp/include/qpid/management/ManagementObject.h b/cpp/include/qpid/management/ManagementObject.h index 6475ff5406..b1c70f64d6 100644 --- a/cpp/include/qpid/management/ManagementObject.h +++ b/cpp/include/qpid/management/ManagementObject.h @@ -27,12 +27,14 @@ #include <qpid/framing/Buffer.h> #include "qpid/CommonImportExport.h" #include <map> +#include <vector> namespace qpid { namespace management { class Manageable; class ObjectId; +class ManagementObject; class AgentAttachment { @@ -65,7 +67,9 @@ public: QPID_COMMON_EXTERN uint32_t encodedSize() const { return 16; }; QPID_COMMON_EXTERN void encode(framing::Buffer& buffer) const; QPID_COMMON_EXTERN void decode(framing::Buffer& buffer); - QPID_COMMON_EXTERN void setV2Key(const std::string& key) { v2Key = key; } + QPID_COMMON_EXTERN void setV2Key(const std::string& _key) { v2Key = _key; } + QPID_COMMON_EXTERN void setV2Key(const ManagementObject& object); + QPID_COMMON_EXTERN bool equalV1(const ObjectId &other) const; QPID_COMMON_EXTERN const std::string& getV2Key() const { return v2Key; } friend QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream&, const ObjectId&); }; @@ -192,6 +196,7 @@ protected: }; typedef std::map<ObjectId, ManagementObject*> ManagementObjectMap; +typedef std::vector<ManagementObject*> ManagementObjectVector; }} |