summaryrefslogtreecommitdiff
path: root/cpp/include/qpid/console
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/qpid/console')
-rw-r--r--cpp/include/qpid/console/Agent.h58
-rw-r--r--cpp/include/qpid/console/Broker.h133
-rw-r--r--cpp/include/qpid/console/ClassKey.h66
-rw-r--r--cpp/include/qpid/console/ConsoleImportExport.h35
-rw-r--r--cpp/include/qpid/console/ConsoleListener.h97
-rw-r--r--cpp/include/qpid/console/Event.h86
-rw-r--r--cpp/include/qpid/console/Object.h123
-rw-r--r--cpp/include/qpid/console/ObjectId.h69
-rw-r--r--cpp/include/qpid/console/Package.h78
-rw-r--r--cpp/include/qpid/console/Schema.h105
-rw-r--r--cpp/include/qpid/console/SequenceManager.h54
-rw-r--r--cpp/include/qpid/console/SessionManager.h219
-rw-r--r--cpp/include/qpid/console/Value.h213
13 files changed, 0 insertions, 1336 deletions
diff --git a/cpp/include/qpid/console/Agent.h b/cpp/include/qpid/console/Agent.h
deleted file mode 100644
index 629dd71dee..0000000000
--- a/cpp/include/qpid/console/Agent.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_AGENT_H_
-#define _QPID_CONSOLE_AGENT_H_
-
-#include "qpid/console/Broker.h"
-#include "qpid/console/ConsoleImportExport.h"
-
-namespace qpid {
-namespace console {
-
- /**
- *
- * \ingroup qmfconsoleapi
- */
- class QPID_CONSOLE_CLASS_EXTERN Agent {
- public:
- typedef std::vector<Agent*> Vector;
-
- QPID_CONSOLE_INLINE_EXTERN Agent(Broker* _broker, uint32_t _bank, const std::string& _label) :
- broker(_broker), brokerBank(broker->getBrokerBank()),
- agentBank(_bank), label(_label) {}
- QPID_CONSOLE_INLINE_EXTERN Broker* getBroker() const { return broker; }
- QPID_CONSOLE_INLINE_EXTERN uint32_t getBrokerBank() const { return brokerBank; }
- QPID_CONSOLE_INLINE_EXTERN uint32_t getAgentBank() const { return agentBank; }
- QPID_CONSOLE_INLINE_EXTERN const std::string& getLabel() const { return label; }
-
- private:
- Broker* broker;
- const uint32_t brokerBank;
- const uint32_t agentBank;
- const std::string label;
- };
-
- std::ostream& operator<<(std::ostream& o, const Agent& agent);
-}
-}
-
-
-#endif
diff --git a/cpp/include/qpid/console/Broker.h b/cpp/include/qpid/console/Broker.h
deleted file mode 100644
index c2ba8ac81f..0000000000
--- a/cpp/include/qpid/console/Broker.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_BROKER_H_
-#define _QPID_CONSOLE_BROKER_H_
-
-#include "qpid/console/ConsoleImportExport.h"
-#include "qpid/client/Connection.h"
-#include "qpid/client/ConnectionSettings.h"
-#include "qpid/client/SubscriptionManager.h"
-#include "qpid/client/Session.h"
-#include "qpid/client/AsyncSession.h"
-#include "qpid/client/Message.h"
-#include "qpid/client/MessageListener.h"
-#include "qpid/sys/Thread.h"
-#include "qpid/sys/Runnable.h"
-#include "qpid/sys/Mutex.h"
-#include "qpid/sys/Condition.h"
-#include "qpid/Url.h"
-#include "qpid/framing/Buffer.h"
-#include "qpid/framing/Uuid.h"
-#include <string>
-#include <iostream>
-
-namespace qpid {
-namespace console {
- class SessionManager;
- class Agent;
- class Object;
-
- /**
- *
- * \ingroup qpidconsoleapi
- */
- class Broker : public client::MessageListener {
- public:
- QPID_CONSOLE_EXTERN Broker(SessionManager& sm,
- client::ConnectionSettings& settings);
- QPID_CONSOLE_EXTERN ~Broker();
-
- QPID_CONSOLE_INLINE_EXTERN bool isConnected() const { return connected; }
- QPID_CONSOLE_INLINE_EXTERN const std::string& getError() const { return error; }
- QPID_CONSOLE_INLINE_EXTERN const std::string& getSessionId() const { return amqpSessionId; }
- QPID_CONSOLE_INLINE_EXTERN const framing::Uuid& getBrokerId() const { return brokerId; }
- QPID_CONSOLE_INLINE_EXTERN uint32_t getBrokerBank() const { return 1; }
- QPID_CONSOLE_INLINE_EXTERN void addBinding(const std::string& key) {
- connThreadBody.bindExchange("qpid.management", key);
- }
- QPID_CONSOLE_EXTERN std::string getUrl() const;
- QPID_CONSOLE_EXTERN void waitForStable();
-
- private:
- friend class SessionManager;
- friend class Object;
- typedef std::map<uint64_t,Agent*> AgentMap;
- static const int SYNC_TIME = 60;
-
- SessionManager& sessionManager;
- AgentMap agents;
- bool connected;
- std::string error;
- std::string amqpSessionId;
- client::ConnectionSettings connectionSettings;
- sys::Mutex lock;
- sys::Condition cond;
- framing::Uuid brokerId;
- uint32_t reqsOutstanding;
- bool syncInFlight;
- bool topicBound;
- Object* methodObject;
-
- friend class ConnectionThread;
- class ConnectionThread : public sys::Runnable {
- bool operational;
- bool shuttingDown;
- Broker& broker;
- framing::Uuid sessionId;
- client::Connection connection;
- client::Session session;
- client::SubscriptionManager* subscriptions;
- std::stringstream queueName;
- sys::Mutex connLock;
- void run();
- public:
- ConnectionThread(Broker& _broker) :
- operational(false), shuttingDown(false), broker(_broker), subscriptions(0) {}
- ~ConnectionThread();
- void sendBuffer(qpid::framing::Buffer& buf,
- uint32_t length,
- const std::string& exchange = "qpid.management",
- const std::string& routingKey = "broker");
- void bindExchange(const std::string& exchange, const std::string& key);
- void shutdown();
- };
-
- ConnectionThread connThreadBody;
- sys::Thread connThread;
-
- void encodeHeader(framing::Buffer& buf, uint8_t opcode, uint32_t seq = 0) const;
- bool checkHeader(framing::Buffer& buf, uint8_t *opcode, uint32_t *seq) const;
- void received(client::Message& msg);
- void resetAgents();
- void updateAgent(const Object& object);
- void incOutstanding();
- void decOutstanding();
- void setBrokerId(const framing::Uuid& id) { brokerId = id; }
- void appendAgents(std::vector<Agent*>& agents) const;
-
- friend std::ostream& operator<<(std::ostream& o, const Broker& k);
- };
-
- std::ostream& operator<<(std::ostream& o, const Broker& k);
-}
-}
-
-#endif
diff --git a/cpp/include/qpid/console/ClassKey.h b/cpp/include/qpid/console/ClassKey.h
deleted file mode 100644
index 95cd2627f1..0000000000
--- a/cpp/include/qpid/console/ClassKey.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_CLASSKEY_H_
-#define _QPID_CONSOLE_CLASSKEY_H_
-
-#include <string>
-#include "qpid/console/ConsoleImportExport.h"
-#include "qpid/console/Package.h"
-#include "qpid/framing/Buffer.h"
-
-namespace qpid {
-namespace console {
-
- /**
- *
- * \ingroup qmfconsoleapi
- */
- class QPID_CONSOLE_EXTERN ClassKey {
- public:
- static const int HASH_SIZE = 16;
-
- ClassKey(const std::string& package, const std::string& name, const uint8_t* hash);
-
- const std::string& getPackageName() const { return package; }
- const std::string& getClassName() const { return name; }
- const uint8_t* getHash() const { return hash; }
- std::string getHashString() const;
- std::string str() const;
- bool operator==(const ClassKey& other) const;
- bool operator!=(const ClassKey& other) const;
- bool operator<(const ClassKey& other) const;
- bool operator>(const ClassKey& other) const;
- bool operator<=(const ClassKey& other) const;
- bool operator>=(const ClassKey& other) const;
- void encode(framing::Buffer& buffer) const;
-
- private:
- std::string package;
- std::string name;
- uint8_t hash[HASH_SIZE];
- };
-
- QPID_CONSOLE_EXTERN std::ostream& operator<<(std::ostream& o, const ClassKey& k);
-}
-}
-
-
-#endif
diff --git a/cpp/include/qpid/console/ConsoleImportExport.h b/cpp/include/qpid/console/ConsoleImportExport.h
deleted file mode 100644
index aac30858f7..0000000000
--- a/cpp/include/qpid/console/ConsoleImportExport.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef QPID_CONSOLE_IMPORT_EXPORT_H
-#define QPID_CONSOLE_IMPORT_EXPORT_H
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "qpid/ImportExport.h"
-
-#if defined(CONSOLE_EXPORT) || defined (qmfconsole_EXPORTS)
-# define QPID_CONSOLE_EXTERN QPID_EXPORT
-# define QPID_CONSOLE_CLASS_EXTERN QPID_CLASS_EXPORT
-# define QPID_CONSOLE_INLINE_EXTERN QPID_INLINE_EXPORT
-#else
-# define QPID_CONSOLE_EXTERN QPID_IMPORT
-# define QPID_CONSOLE_CLASS_EXTERN QPID_CLASS_IMPORT
-# define QPID_CONSOLE_INLINE_EXTERN QPID_INLINE_IMPORT
-#endif
-
-#endif
diff --git a/cpp/include/qpid/console/ConsoleListener.h b/cpp/include/qpid/console/ConsoleListener.h
deleted file mode 100644
index 7a649da657..0000000000
--- a/cpp/include/qpid/console/ConsoleListener.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_CONSOLE_LISTENER_H_
-#define _QPID_CONSOLE_CONSOLE_LISTENER_H_
-
-#include <string>
-#include "qpid/console/ConsoleImportExport.h"
-#include "qpid/console/Broker.h"
-#include "qpid/console/ClassKey.h"
-#include "qpid/console/Object.h"
-#include "qpid/console/Event.h"
-
-namespace qpid {
-namespace console {
-
- /**
- * Implement a subclass of ConsoleListener and subscribe it using
- * the SessionManager to receive indications.
- *
- * \ingroup qmfconsoleapi
- */
- class QPID_CONSOLE_EXTERN ConsoleListener{
- public:
- virtual ~ConsoleListener() {};
-
- /** Invoked when a connection is established to a broker
- */
- virtual void brokerConnected(const Broker&) {}
-
- /** Invoked when the connection to a broker is lost
- */
- virtual void brokerDisconnected(const Broker&) {}
-
- /** Invoked when a QMF package is discovered.
- */
- virtual void newPackage(const std::string&) {}
-
- /** Invoked when a new class is discovered. Session.getSchema can be
- * used to obtain details about the class.
- */
- virtual void newClass(const ClassKey&) {}
-
- /** Invoked when a QMF agent is discovered.
- */
- virtual void newAgent(const Agent&) {}
-
- /** Invoked when a QMF agent disconects.
- */
- virtual void delAgent(const Agent&) {}
-
- /** Invoked when an object is updated.
- */
- virtual void objectProps(Broker&, Object&) {}
-
- /** Invoked when an object is updated.
- */
- virtual void objectStats(Broker&, Object&) {}
-
- /** Invoked when an event is raised.
- */
- virtual void event(Event&) {}
-
- /**
- */
- //virtual void heartbeat(Agent&, uint64_t) {}
-
- /**
- */
- virtual void brokerInfo(Broker&) {}
-
- /**
- */
- //virtual void methodResponse(Broker&, uint32_t seq, MethodResponse&) {}
- };
-}
-}
-
-
-#endif
diff --git a/cpp/include/qpid/console/Event.h b/cpp/include/qpid/console/Event.h
deleted file mode 100644
index ef4ecc791c..0000000000
--- a/cpp/include/qpid/console/Event.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_EVENT_H_
-#define _QPID_CONSOLE_EVENT_H_
-
-#include "qpid/console/ConsoleImportExport.h"
-#include "qpid/console/Object.h"
-#include "qpid/framing/Uuid.h"
-#include "qpid/framing/FieldTable.h"
-
-namespace qpid {
-namespace framing {
- class Buffer;
-}
-namespace console {
-
- class Broker;
- struct SchemaClass;
- class ClassKey;
-
- /**
- *
- * \ingroup qmfconsoleapi
- */
- class Event {
- public:
- typedef enum {
- SEV_EMERGENCY = 0, SEV_ALERT = 1, SEV_CRITICAL = 2, SEV_ERROR = 3,
- SEV_WARNING = 4, SEV_NOTICE = 5, SEV_INFO = 6, SEV_DEBUG = 7
- } Severity;
-
- QPID_CONSOLE_EXTERN Event(Broker* broker,
- SchemaClass* schemaClass,
- framing::Buffer& buffer);
- Broker* getBroker() const { return broker; }
- QPID_CONSOLE_EXTERN const ClassKey& getClassKey() const;
- SchemaClass* getSchema() const { return schema; }
- const Object::AttributeMap& getAttributes() const { return attributes; }
- uint64_t getTimestamp() const { return timestamp; }
- uint8_t getSeverity() const { return severity; }
- QPID_CONSOLE_EXTERN std::string getSeverityString() const;
-
- QPID_CONSOLE_EXTERN ObjectId attrRef(const std::string& key) const;
- QPID_CONSOLE_EXTERN uint32_t attrUint(const std::string& key) const;
- QPID_CONSOLE_EXTERN int32_t attrInt(const std::string& key) const;
- QPID_CONSOLE_EXTERN uint64_t attrUint64(const std::string& key) const;
- QPID_CONSOLE_EXTERN int64_t attrInt64(const std::string& key) const;
- QPID_CONSOLE_EXTERN std::string attrString(const std::string& key) const;
- QPID_CONSOLE_EXTERN bool attrBool(const std::string& key) const;
- QPID_CONSOLE_EXTERN float attrFloat(const std::string& key) const;
- QPID_CONSOLE_EXTERN double attrDouble(const std::string& key) const;
- QPID_CONSOLE_EXTERN framing::Uuid attrUuid(const std::string& key) const;
- QPID_CONSOLE_EXTERN framing::FieldTable attrMap(const std::string& key) const;
-
- private:
- Broker* broker;
- SchemaClass* schema;
- uint64_t timestamp;
- Severity severity;
- Object::AttributeMap attributes;
- };
-
- QPID_CONSOLE_EXTERN std::ostream& operator<<(std::ostream& o, const Event& event);
-}
-}
-
-
-#endif
diff --git a/cpp/include/qpid/console/Object.h b/cpp/include/qpid/console/Object.h
deleted file mode 100644
index 5a29fdf792..0000000000
--- a/cpp/include/qpid/console/Object.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_OBJECT_H_
-#define _QPID_CONSOLE_OBJECT_H_
-
-#include "qpid/console/ConsoleImportExport.h"
-#include "qpid/console/ObjectId.h"
-#include "qpid/framing/Uuid.h"
-#include "qpid/framing/FieldTable.h"
-#include <boost/shared_ptr.hpp>
-#include <map>
-#include <set>
-#include <vector>
-
-namespace qpid {
-namespace framing {
- class Buffer;
-}
-namespace console {
-
- class Broker;
- struct SchemaClass;
- struct SchemaMethod;
- class ObjectId;
- class ClassKey;
- class Value;
-
- /**
- * \ingroup qmfconsoleapi
- */
- struct MethodResponse {
- uint32_t code;
- std::string text;
- std::map<std::string, boost::shared_ptr<Value> > arguments;
- };
-
- class Object {
- public:
- typedef std::vector<Object> Vector;
- struct AttributeMap : public std::map<std::string, boost::shared_ptr<Value> > {
- QPID_CONSOLE_EXTERN void addRef(const std::string& key, const ObjectId& val);
- QPID_CONSOLE_EXTERN void addUint(const std::string& key, uint32_t val);
- QPID_CONSOLE_EXTERN void addInt(const std::string& key, int32_t val);
- QPID_CONSOLE_EXTERN void addUint64(const std::string& key, uint64_t val);
- QPID_CONSOLE_EXTERN void addInt64(const std::string& key, int64_t val);
- QPID_CONSOLE_EXTERN void addString(const std::string& key, const std::string& val);
- QPID_CONSOLE_EXTERN void addBool(const std::string& key, bool val);
- QPID_CONSOLE_EXTERN void addFloat(const std::string& key, float val);
- QPID_CONSOLE_EXTERN void addDouble(const std::string& key, double val);
- QPID_CONSOLE_EXTERN void addUuid(const std::string& key, const framing::Uuid& val);
- QPID_CONSOLE_EXTERN void addMap(const std::string& key, const framing::FieldTable& val);
- };
-
- QPID_CONSOLE_EXTERN Object(Broker* broker, SchemaClass* schemaClass, framing::Buffer& buffer, bool prop, bool stat);
- QPID_CONSOLE_EXTERN ~Object();
-
- Broker* getBroker() const { return broker; }
- const ObjectId& getObjectId() const { return objectId; }
- QPID_CONSOLE_EXTERN const ClassKey& getClassKey() const;
- SchemaClass* getSchema() const { return schema; }
- uint64_t getCurrentTime() const { return currentTime; }
- uint64_t getCreateTime() const { return createTime; }
- uint64_t getDeleteTime() const { return deleteTime; }
- bool isDeleted() const { return deleteTime != 0; }
- QPID_CONSOLE_EXTERN std::string getIndex() const;
- QPID_CONSOLE_EXTERN void mergeUpdate(const Object& updated);
- const AttributeMap& getAttributes() const { return attributes; }
- QPID_CONSOLE_EXTERN void invokeMethod(const std::string name,
- const AttributeMap& args,
- MethodResponse& result);
- QPID_CONSOLE_EXTERN void handleMethodResp(framing::Buffer& buffer,
- uint32_t sequence);
-
- QPID_CONSOLE_EXTERN ObjectId attrRef(const std::string& key) const;
- QPID_CONSOLE_EXTERN uint32_t attrUint(const std::string& key) const;
- QPID_CONSOLE_EXTERN int32_t attrInt(const std::string& key) const;
- QPID_CONSOLE_EXTERN uint64_t attrUint64(const std::string& key) const;
- QPID_CONSOLE_EXTERN int64_t attrInt64(const std::string& key) const;
- QPID_CONSOLE_EXTERN std::string attrString(const std::string& key) const;
- QPID_CONSOLE_EXTERN bool attrBool(const std::string& key) const;
- QPID_CONSOLE_EXTERN float attrFloat(const std::string& key) const;
- QPID_CONSOLE_EXTERN double attrDouble(const std::string& key) const;
- QPID_CONSOLE_EXTERN framing::Uuid attrUuid(const std::string& key) const;
- QPID_CONSOLE_EXTERN framing::FieldTable attrMap(const std::string& key) const;
-
- private:
- Broker* broker;
- SchemaClass* schema;
- ObjectId objectId;
- uint64_t currentTime;
- uint64_t createTime;
- uint64_t deleteTime;
- AttributeMap attributes;
- SchemaMethod* pendingMethod;
- MethodResponse methodResponse;
-
- void parsePresenceMasks(framing::Buffer& buffer, std::set<std::string>& excludeList);
- };
-
- QPID_CONSOLE_EXTERN std::ostream& operator<<(std::ostream& o, const Object& object);
-}
-}
-
-
-#endif
diff --git a/cpp/include/qpid/console/ObjectId.h b/cpp/include/qpid/console/ObjectId.h
deleted file mode 100644
index 7904c85598..0000000000
--- a/cpp/include/qpid/console/ObjectId.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_OBJECTID_H
-#define _QPID_CONSOLE_OBJECTID_H
-
-#include <iostream>
-#include "qpid/console/ConsoleImportExport.h"
-#include "qpid/sys/IntegerTypes.h"
-
-namespace qpid {
-namespace framing {
- class Buffer;
-}
-namespace console {
-
- /**
- *
- * \ingroup qmfconsoleapi
- */
- class QPID_CONSOLE_EXTERN ObjectId {
- public:
- ObjectId() : first(0), second(0) {}
- ObjectId(framing::Buffer& buffer);
-
- uint8_t getFlags() const { return (first & 0xF000000000000000LL) >> 60; }
- uint16_t getSequence() const { return (first & 0x0FFF000000000000LL) >> 48; }
- uint32_t getBrokerBank() const { return (first & 0x0000FFFFF0000000LL) >> 28; }
- uint32_t getAgentBank() const { return first & 0x000000000FFFFFFFLL; }
- uint64_t getObject() const { return second; }
- bool isDurable() const { return getSequence() == 0; }
- void decode(framing::Buffer& buffer);
- void encode(framing::Buffer& buffer);
- void setValue(uint64_t f, uint64_t s) { first = f; second = s; }
-
- bool operator==(const ObjectId& other) const;
- bool operator!=(const ObjectId& other) const;
- bool operator<(const ObjectId& other) const;
- bool operator>(const ObjectId& other) const;
- bool operator<=(const ObjectId& other) const;
- bool operator>=(const ObjectId& other) const;
-
- private:
- uint64_t first;
- uint64_t second;
- };
-
- QPID_CONSOLE_EXTERN std::ostream& operator<<(std::ostream& o, const ObjectId& id);
-}
-}
-
-#endif
diff --git a/cpp/include/qpid/console/Package.h b/cpp/include/qpid/console/Package.h
deleted file mode 100644
index 3b59e366ff..0000000000
--- a/cpp/include/qpid/console/Package.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_PACKAGE_H_
-#define _QPID_CONSOLE_PACKAGE_H_
-
-#include <string>
-#include <map>
-#include "qpid/console/ConsoleImportExport.h"
-#include "qpid/sys/IntegerTypes.h"
-
-namespace qpid {
-namespace console {
- struct SchemaClass;
-
- /**
- *
- * \ingroup qmfconsoleapi
- */
- class Package {
- public:
- Package(const std::string& n) : name(n) {}
- const std::string& getName() const { return name; }
-
- private:
- friend class SessionManager;
- struct NameHash {
- std::string name;
- uint8_t hash[16];
- NameHash(const std::string& n, const uint8_t* h) : name(n) {
- for (int i = 0; i < 16; i++)
- hash[i] = h[i];
- }
- };
-
- struct NameHashComp {
- bool operator() (const NameHash& lhs, const NameHash& rhs) const
- {
- if (lhs.name != rhs.name)
- return lhs.name < rhs.name;
- else
- for (int i = 0; i < 16; i++)
- if (lhs.hash[i] != rhs.hash[i])
- return lhs.hash[i] < rhs.hash[i];
- return false;
- }
- };
-
- typedef std::map<NameHash, SchemaClass*, NameHashComp> ClassMap;
-
- const std::string name;
- ClassMap classes;
-
- SchemaClass* getClass(const std::string& className, uint8_t* hash);
- void addClass(const std::string& className, uint8_t* hash,
- SchemaClass* schemaClass);
- };
-}
-}
-
-#endif
diff --git a/cpp/include/qpid/console/Schema.h b/cpp/include/qpid/console/Schema.h
deleted file mode 100644
index 6d4e41ab3e..0000000000
--- a/cpp/include/qpid/console/Schema.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_SCHEMA_H_
-#define _QPID_CONSOLE_SCHEMA_H_
-
-#include "qpid/console/ClassKey.h"
-#include <boost/shared_ptr.hpp>
-#include <vector>
-
-namespace qpid {
-namespace framing {
- class Buffer;
-}
-namespace console {
- class Value;
-
- struct SchemaArgument {
- SchemaArgument(framing::Buffer& buffer, bool forMethod = false);
- boost::shared_ptr<Value> decodeValue(framing::Buffer& buffer);
-
- std::string name;
- uint8_t typeCode;
- bool dirInput;
- bool dirOutput;
- std::string unit;
- int min;
- int max;
- int maxLen;
- std::string desc;
- std::string defaultVal;
- };
-
- struct SchemaProperty {
- SchemaProperty(framing::Buffer& buffer);
- boost::shared_ptr<Value> decodeValue(framing::Buffer& buffer);
-
- std::string name;
- uint8_t typeCode;
- uint8_t accessCode;
- bool isIndex;
- bool isOptional;
- std::string unit;
- int min;
- int max;
- int maxLen;
- std::string desc;
- };
-
- struct SchemaStatistic {
- SchemaStatistic(framing::Buffer& buffer);
- boost::shared_ptr<Value> decodeValue(framing::Buffer& buffer);
-
- std::string name;
- uint8_t typeCode;
- std::string unit;
- std::string desc;
- };
-
- struct SchemaMethod {
- SchemaMethod(framing::Buffer& buffer);
- ~SchemaMethod();
-
- std::string name;
- std::string desc;
- std::vector<SchemaArgument*> arguments;
- };
-
- struct SchemaClass {
- static const uint8_t KIND_TABLE = 1;
- static const uint8_t KIND_EVENT = 2;
-
- SchemaClass(const uint8_t kind, const ClassKey& key, framing::Buffer& buffer);
- ~SchemaClass();
- const ClassKey& getClassKey() const { return key; }
-
- const uint8_t kind;
- const ClassKey key;
- std::vector<SchemaProperty*> properties;
- std::vector<SchemaStatistic*> statistics;
- std::vector<SchemaMethod*> methods;
- std::vector<SchemaArgument*> arguments;
- };
-}
-}
-
-
-#endif
diff --git a/cpp/include/qpid/console/SequenceManager.h b/cpp/include/qpid/console/SequenceManager.h
deleted file mode 100644
index ea0ccf3f77..0000000000
--- a/cpp/include/qpid/console/SequenceManager.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_SEQUENCEMANAGER_H_
-#define _QPID_CONSOLE_SEQUENCEMANAGER_H_
-
-#include "qpid/console/ConsoleImportExport.h"
-#include "qpid/sys/Mutex.h"
-#include <map>
-#include <string>
-#include <set>
-
-namespace qpid {
-namespace console {
-
- /**
- *
- * \ingroup qpidconsoleapi
- */
- class SequenceManager {
- public:
- typedef std::set<uint32_t> set;
-
- SequenceManager() : sequence(0) {}
- QPID_CONSOLE_EXTERN uint32_t reserve(const std::string& context = "");
- QPID_CONSOLE_EXTERN std::string release(uint32_t seq);
-
- private:
- sys::Mutex lock;
- uint32_t sequence;
- std::map<uint32_t, std::string> pending;
- };
-}
-}
-
-
-#endif
diff --git a/cpp/include/qpid/console/SessionManager.h b/cpp/include/qpid/console/SessionManager.h
deleted file mode 100644
index b46af549ff..0000000000
--- a/cpp/include/qpid/console/SessionManager.h
+++ /dev/null
@@ -1,219 +0,0 @@
-#ifndef _QPID_CONSOLE_SESSION_MANAGER_H
-#define _QPID_CONSOLE_SESSION_MANAGER_H
-
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include "qpid/console/ConsoleImportExport.h"
-#include "qpid/console/Broker.h"
-#include "qpid/console/Package.h"
-#include "qpid/console/SequenceManager.h"
-#include "qpid/console/ClassKey.h"
-#include "qpid/console/Schema.h"
-#include "qpid/console/Agent.h"
-#include "qpid/console/Object.h"
-#include "qpid/console/ObjectId.h"
-#include "qpid/console/Value.h"
-#include "qpid/sys/Mutex.h"
-#include "qpid/sys/Condition.h"
-#include "qpid/client/ConnectionSettings.h"
-#include <string>
-#include <vector>
-
-namespace qpid {
-namespace console {
-
-class ConsoleListener;
-
-/**
- *
- * \ingroup qmfconsoleapi
- */
-class SessionManager
-{
- public:
- typedef std::vector<std::string> NameVector;
- typedef std::vector<ClassKey> KeyVector;
- QPID_CONSOLE_EXTERN ~SessionManager();
-
- struct Settings {
- bool rcvObjects;
- bool rcvEvents;
- bool rcvHeartbeats;
- bool userBindings;
- uint32_t methodTimeout;
- uint32_t getTimeout;
-
- Settings() : rcvObjects(true), rcvEvents(true), rcvHeartbeats(true),
- userBindings(false), methodTimeout(20), getTimeout(20)
- {}
- };
-
- /** Create a new SessionManager
- *
- * Provide your own subclass of ConsoleListener to receive updates and indications
- * asynchronously or leave it as its default and use only synchronous methods.
- *
- *@param listener Listener object to receive asynchronous indications.
- *@param settings.rcvObjects Listener wishes to receive managed object data.
- *@param settings.rcvEvents Listener wishes to receive events.
- *@param settings.rcvHeartbeats Listener wishes to receive agent heartbeats.
- *@param settings.userBindings If rcvObjects is true, userBindings allows the
- * console client to control which object classes are received. See the bindPackage
- * and bindClass methods. If userBindings is false, the listener will receive
- * updates for all object classes.
- */
- QPID_CONSOLE_EXTERN SessionManager(ConsoleListener* listener = 0,
- Settings settings = Settings());
-
- /** Connect a broker to the console session
- *
- *@param settings Connection settings for client access
- *@return broker object if operation is successful
- * an exception shall be thrown.
- */
- QPID_CONSOLE_EXTERN Broker* addBroker(client::ConnectionSettings& settings);
-
- /** Disconnect a broker from the console session
- *
- *@param broker The broker object returned from an earlier call to addBroker.
- */
- QPID_CONSOLE_EXTERN void delBroker(Broker* broker);
-
- /** Get a list of known management packages
- *
- *@param packages Vector of package names returned by the session manager.
- */
- QPID_CONSOLE_EXTERN void getPackages(NameVector& packages);
-
- /** Get a list of class keys associated with a package
- *
- *@param classKeys List of class keys returned by the session manager.
- *@param packageName Name of package being queried.
- */
- QPID_CONSOLE_EXTERN void getClasses(KeyVector& classKeys,
- const std::string& packageName);
-
- /** Get the schema of a class given its class key
- *
- *@param classKey Class key of the desired schema.
- */
- QPID_CONSOLE_EXTERN SchemaClass& getSchema(const ClassKey& classKey);
-
- /** Request that updates be received for all classes within a package
- *
- * Note that this method is only meaningful if a ConsoleListener was provided at session
- * creation and if the 'userBindings' flag was set to true.
- *
- *@param packageName Name of the package to which to bind.
- */
- QPID_CONSOLE_EXTERN void bindPackage(const std::string& packageName);
-
- /** Request update to be received for a particular class
- *
- * Note that this method is only meaningful if a ConsoleListener was provided at session
- * creation and if the 'userBindings' flag was set to true.
- *
- *@param classKey Class key of class to which to bind.
- */
- QPID_CONSOLE_EXTERN void bindClass(const ClassKey& classKey);
- QPID_CONSOLE_EXTERN void bindClass(const std::string& packageName,
- const std::string& className);
-
- /** Request events from a particular package.
- *
- * Note that this method is only meaningful if a ConsoleListener was provided at session
- * creation and if the 'userBindings' flag was set to true.
- *
- * @param classKey Class key of event of interest
- * @param packageName Name of package of event of interest.
- * @param eventName Name of event of interest. Default=All events defined by package.
- */
- QPID_CONSOLE_EXTERN void bindEvent(const ClassKey& classKey);
- QPID_CONSOLE_EXTERN void bindEvent(const std::string& packageName,
- const std::string& eventName="");
-
-
- /** Get a list of qmf agents known to the session manager.
- *
- *@param agents Vector of Agent objects returned by the session manager.
- *@param broker Return agents registered with this broker only. If NULL, return agents
- * from all connected brokers.
- */
- QPID_CONSOLE_EXTERN void getAgents(Agent::Vector& agents,
- Broker* broker = 0);
-
- /** Get objects from agents. There are four variants of this method with different ways of
- * specifying from which class objects are being queried.
- *
- *@param objects List of objects received.
- *@param classKey ClassKey object identifying class to be queried.
- *@param className Class name identifying class to be queried.
- *@param objectId Object Id of the single object to be queried.
- *@param broker Restrict the query to this broker, or all brokers if NULL.
- *@param agent Restrict the query to this agent, or all agents if NULL.
- */
- QPID_CONSOLE_EXTERN void getObjects(Object::Vector& objects,
- const std::string& className,
- Broker* broker = 0,
- Agent* agent = 0);
- //void getObjects(Object::Vector& objects, const ClassKey& classKey,
- // Broker* broker = 0, Agent* agent = 0);
- //void getObjects(Object::Vector& objects, const ObjectId& objectId,
- // Broker* broker = 0, Agent* agent = 0);
-
-private:
- friend class Broker;
- friend class Broker::ConnectionThread;
- friend class Object;
- sys::Mutex lock;
- sys::Mutex brokerListLock;
- ConsoleListener* listener;
- std::vector<Broker*> brokers;
- std::map<std::string, Package*> packages;
- SequenceManager sequenceManager;
- sys::Condition cv;
- SequenceManager::set syncSequenceList;
- Object::Vector getResult;
- std::string error;
- Settings settings;
- NameVector bindingKeyList;
-
- void bindingKeys();
- void allBrokersStable();
- void startProtocol(Broker* broker);
- void handleBrokerResp(Broker* broker, framing::Buffer& inBuffer, uint32_t sequence);
- void handlePackageInd(Broker* broker, framing::Buffer& inBuffer, uint32_t sequence);
- void handleCommandComplete(Broker* broker, framing::Buffer& inBuffer, uint32_t sequence);
- void handleClassInd(Broker* broker, framing::Buffer& inBuffer, uint32_t sequence);
- void handleMethodResp(Broker* broker, framing::Buffer& inBuffer, uint32_t sequence);
- void handleHeartbeatInd(Broker* broker, framing::Buffer& inBuffer, uint32_t sequence);
- void handleEventInd(Broker* broker, framing::Buffer& inBuffer, uint32_t sequence);
- void handleSchemaResp(Broker* broker, framing::Buffer& inBuffer, uint32_t sequence);
- void handleContentInd(Broker* broker, framing::Buffer& inBuffer, uint32_t sequence, bool prop, bool stat);
- void handleBrokerConnect(Broker* broker);
- void handleBrokerDisconnect(Broker* broker);
-
-};
-
-}} // namespace qpid::console
-
-#endif /*!_QPID_CONSOLE_SESSION_MANAGER_H*/
diff --git a/cpp/include/qpid/console/Value.h b/cpp/include/qpid/console/Value.h
deleted file mode 100644
index d9eb65053b..0000000000
--- a/cpp/include/qpid/console/Value.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-#ifndef _QPID_CONSOLE_VALUE_H_
-#define _QPID_CONSOLE_VALUE_H_
-
-#include "qpid/Exception.h"
-#include "qpid/framing/Uuid.h"
-#include "qpid/framing/FieldTable.h"
-#include "qpid/console/ObjectId.h"
-#include <boost/shared_ptr.hpp>
-
-namespace qpid {
-namespace framing {
- class Buffer;
-}
-namespace console {
-
- /**
- * \ingroup qmfconsoleapi
- */
- class Value {
-
- public:
- typedef boost::shared_ptr<Value> Ptr;
- virtual ~Value() {}
- virtual std::string str() const = 0;
-
- virtual bool isNull() const { return false; }
- virtual bool isObjectId() const { return false; }
- virtual bool isUint() const { return false; }
- virtual bool isInt() const { return false; }
- virtual bool isUint64() const { return false; }
- virtual bool isInt64() const { return false; }
- virtual bool isString() const { return false; }
- virtual bool isBool() const { return false; }
- virtual bool isFloat() const { return false; }
- virtual bool isDouble() const { return false; }
- virtual bool isUuid() const { return false; }
- virtual bool isMap() const { return false; }
-
- virtual ObjectId asObjectId() const { incompatible(); return ObjectId(); }
- virtual uint32_t asUint() const { incompatible(); return 0; }
- virtual int32_t asInt() const { incompatible(); return 0; }
- virtual uint64_t asUint64() const { incompatible(); return 0; }
- virtual int64_t asInt64() const { incompatible(); return 0; }
- virtual std::string asString() const { incompatible(); return std::string(); }
- virtual bool asBool() const { incompatible(); return false; }
- virtual float asFloat() const { incompatible(); return 0.0; }
- virtual double asDouble() const { incompatible(); return 0.0; }
- virtual framing::Uuid asUuid() const { incompatible(); return framing::Uuid(); }
- virtual framing::FieldTable asMap() const { incompatible(); return framing::FieldTable(); }
-
- private:
- void incompatible() const {
- throw Exception("Incompatible Type");
- }
- };
-
- class NullValue : public Value {
- public:
- NullValue() {}
- std::string str() const;
- bool isNull() const { return true; }
- };
-
- class RefValue : public Value {
- public:
- RefValue(ObjectId v) : value(v) {}
- RefValue(framing::Buffer& buffer);
- std::string str() const;
- bool isObjectId() const { return true; }
- ObjectId asObjectId() const { return value; }
- private:
- ObjectId value;
- };
-
- class UintValue : public Value {
- public:
- UintValue(uint32_t v) : value(v) {}
- std::string str() const;
- bool isUint() const { return true; }
- uint32_t asUint() const { return value; }
- bool isUint64() const { return true; }
- uint64_t asUint64() const { return (uint64_t) value; }
- private:
- uint32_t value;
- };
-
- class IntValue : public Value {
- public:
- IntValue(int32_t v) : value(v) {}
- std::string str() const;
- bool isInt() const { return true; }
- int32_t asInt() const { return value; }
- bool isInt64() const { return true; }
- int64_t asInt64() const { return (int64_t) value; }
- private:
- int32_t value;
- };
-
- class Uint64Value : public Value {
- public:
- Uint64Value(uint64_t v) : value(v) {}
- std::string str() const;
- bool isUint64() const { return true; }
- uint64_t asUint64() const { return value; }
- private:
- uint64_t value;
- };
-
- class Int64Value : public Value {
- public:
- Int64Value(int64_t v) : value(v) {}
- std::string str() const;
- bool isInt64() const { return true; }
- int64_t asInt64() const { return value; }
- private:
- int64_t value;
- };
-
- class StringValue : public Value {
- public:
- StringValue(const std::string& v) : value(v) {}
- StringValue(framing::Buffer& buffer, int tc);
- std::string str() const { return value; }
- bool isString() const { return true; }
- std::string asString() const { return value; }
- private:
- std::string value;
- };
-
- class BoolValue : public Value {
- public:
- BoolValue(bool v) : value(v) {}
- BoolValue(uint8_t v) : value(v != 0) {}
- std::string str() const;
- bool isBool() const { return true; }
- bool asBool() const { return value; }
- private:
- bool value;
- };
-
- class FloatValue : public Value {
- public:
- FloatValue(float v) : value(v) {}
- std::string str() const;
- bool isFloat() const { return true; }
- float asFloat() const { return value; }
- bool isDouble() const { return true; }
- double asDouble() const { return (double) value; }
- private:
- float value;
- };
-
- class DoubleValue : public Value {
- public:
- DoubleValue(double v) : value(v) {}
- std::string str() const;
- bool isDouble() const { return true; }
- double asDouble() const { return value; }
- private:
- double value;
- };
-
- class UuidValue : public Value {
- public:
- UuidValue(const framing::Uuid& v) : value(v) {}
- UuidValue(framing::Buffer& buffer);
- std::string str() const { return value.str(); }
- bool isUuid() const { return true; }
- framing::Uuid asUuid() const { return value; }
- private:
- framing::Uuid value;
- };
-
- class MapValue : public Value {
- public:
- MapValue(const framing::FieldTable& v) : value(v) {}
- MapValue(framing::Buffer& buffer);
- std::string str() const;
- bool isMap() const { return true; }
- framing::FieldTable asMap() const { return value; }
- private:
- framing::FieldTable value;
- };
-
- class ValueFactory {
- public:
- static Value::Ptr newValue(int typeCode, framing::Buffer& buffer);
- static void encodeValue(int typeCode, Value::Ptr value, framing::Buffer& buffer);
- };
-}
-}
-
-#endif