summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/ManagementObject.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/broker/ManagementObject.h')
-rw-r--r--cpp/src/qpid/broker/ManagementObject.h65
1 files changed, 45 insertions, 20 deletions
diff --git a/cpp/src/qpid/broker/ManagementObject.h b/cpp/src/qpid/broker/ManagementObject.h
index 1588aed641..243d853727 100644
--- a/cpp/src/qpid/broker/ManagementObject.h
+++ b/cpp/src/qpid/broker/ManagementObject.h
@@ -31,24 +31,30 @@ namespace qpid {
namespace broker {
using namespace qpid::framing;
+using namespace qpid::sys;
+
+const uint16_t OBJECT_SYSTEM = 1;
+const uint16_t OBJECT_BROKER = 2;
+const uint16_t OBJECT_VHOST = 3;
+const uint16_t OBJECT_QUEUE = 4;
+const uint16_t OBJECT_EXCHANGE = 5;
+const uint16_t OBJECT_BINDING = 6;
+const uint16_t OBJECT_CLIENT = 7;
+const uint16_t OBJECT_SESSION = 8;
+const uint16_t OBJECT_DESTINATION = 9;
+const uint16_t OBJECT_PRODUCER = 10;
+const uint16_t OBJECT_CONSUMER = 11;
-const uint16_t OBJECT_BROKER = 1;
-const uint16_t OBJECT_SERVER = 2;
-const uint16_t OBJECT_QUEUE = 3;
-const uint16_t OBJECT_EXCHANGE = 4;
-const uint16_t OBJECT_BINDING = 5;
class ManagementObject
{
- private:
-
- qpid::sys::AbsTime createTime;
- qpid::sys::AbsTime destroyTime;
-
protected:
- bool configChanged;
- bool instChanged;
+ uint64_t createTime;
+ uint64_t destroyTime;
+ bool configChanged;
+ bool instChanged;
+ bool deleted;
static const uint8_t TYPE_UINT8 = 1;
static const uint8_t TYPE_UINT16 = 2;
@@ -56,18 +62,26 @@ class ManagementObject
static const uint8_t TYPE_UINT64 = 4;
static const uint8_t TYPE_BOOL = 5;
static const uint8_t TYPE_STRING = 6;
+
+ static const uint8_t FLAG_CONFIG = 0x01;
+ static const uint8_t FLAG_INDEX = 0x02;
+ static const uint8_t FLAG_END = 0x80;
void schemaItem (Buffer& buf,
- uint8_t typeCode,
- std::string name,
- std::string description,
- bool isConfig = false);
- void schemaListEnd (Buffer & buf);
+ uint8_t typeCode,
+ std::string name,
+ std::string description,
+ bool isConfig = false,
+ bool isIndex = false);
+ void schemaListEnd (Buffer& buf);
+ void writeTimestamps (Buffer& buf);
public:
typedef boost::shared_ptr<ManagementObject> shared_ptr;
- ManagementObject () : configChanged(true), instChanged(true) { createTime = qpid::sys::now (); }
+ ManagementObject () : destroyTime(0), configChanged(true),
+ instChanged(true), deleted(false)
+ { createTime = uint64_t (Duration (now ())); }
virtual ~ManagementObject () {}
virtual uint16_t getObjectType (void) = 0;
@@ -76,10 +90,21 @@ class ManagementObject
virtual void writeConfig (Buffer& buf) = 0;
virtual void writeInstrumentation (Buffer& buf) = 0;
virtual bool getSchemaNeeded (void) = 0;
-
+ virtual void setSchemaNeeded (void) = 0;
+
inline bool getConfigChanged (void) { return configChanged; }
inline bool getInstChanged (void) { return instChanged; }
- inline void resourceDestroy (void) { destroyTime = qpid::sys::now (); }
+ inline void setAllChanged (void)
+ {
+ configChanged = true;
+ instChanged = true;
+ }
+
+ inline void resourceDestroy (void) {
+ destroyTime = uint64_t (Duration (now ()));
+ deleted = true;
+ }
+ bool isDeleted (void) { return deleted; }
};