From 9659efe01f8d8cb2b4b3e1a27d16de35bd8d7db7 Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Mon, 15 Sep 2008 15:37:59 +0000 Subject: QPID-1274 - Changed C++ namespace for generated management code. Improved efficiency of generated functions to use const references for non-simple types. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@695511 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/examples/qmf-agent/Makefile | 4 +- qpid/cpp/examples/qmf-agent/example.cpp | 22 +++--- qpid/cpp/examples/qmf-agent/schema.xml | 2 +- qpid/cpp/managementgen/qmf-gen | 15 ++-- qpid/cpp/managementgen/qmf/generate.py | 19 +++-- qpid/cpp/managementgen/qmf/management-types.xml | 12 ++-- qpid/cpp/managementgen/qmf/schema.py | 88 +++++++++++++++++------ qpid/cpp/managementgen/qmf/templates/Args.h | 8 +-- qpid/cpp/managementgen/qmf/templates/Class.cpp | 11 +-- qpid/cpp/managementgen/qmf/templates/Class.h | 24 +++---- qpid/cpp/managementgen/qmf/templates/Package.cpp | 6 +- qpid/cpp/managementgen/qmf/templates/Package.h | 12 ++-- qpid/cpp/src/Makefile.am | 2 +- qpid/cpp/src/qpid/DataDir.h | 4 +- qpid/cpp/src/qpid/acl/Acl.cpp | 42 ++++++----- qpid/cpp/src/qpid/acl/Acl.h | 4 +- qpid/cpp/src/qpid/acl/management-schema.xml | 2 +- qpid/cpp/src/qpid/broker/Bridge.cpp | 12 ++-- qpid/cpp/src/qpid/broker/Bridge.h | 11 +-- qpid/cpp/src/qpid/broker/Broker.cpp | 18 ++--- qpid/cpp/src/qpid/broker/Broker.h | 6 +- qpid/cpp/src/qpid/broker/Connection.cpp | 5 +- qpid/cpp/src/qpid/broker/Connection.h | 4 +- qpid/cpp/src/qpid/broker/DirectExchange.cpp | 5 +- qpid/cpp/src/qpid/broker/Exchange.cpp | 8 ++- qpid/cpp/src/qpid/broker/Exchange.h | 8 +-- qpid/cpp/src/qpid/broker/FanOutExchange.cpp | 5 +- qpid/cpp/src/qpid/broker/HeadersExchange.cpp | 5 +- qpid/cpp/src/qpid/broker/Link.cpp | 10 +-- qpid/cpp/src/qpid/broker/Link.h | 4 +- qpid/cpp/src/qpid/broker/LinkRegistry.cpp | 3 +- qpid/cpp/src/qpid/broker/Queue.cpp | 9 +-- qpid/cpp/src/qpid/broker/Queue.h | 4 +- qpid/cpp/src/qpid/broker/SessionState.cpp | 15 ++-- qpid/cpp/src/qpid/broker/SessionState.h | 4 +- qpid/cpp/src/qpid/broker/System.cpp | 3 +- qpid/cpp/src/qpid/broker/System.h | 4 +- qpid/cpp/src/qpid/broker/TopicExchange.cpp | 5 +- qpid/cpp/src/qpid/broker/Vhost.cpp | 3 +- qpid/cpp/src/qpid/broker/Vhost.h | 4 +- qpid/cpp/src/qpid/broker/XmlExchange.cpp | 5 +- qpid/cpp/src/qpid/management/ManagementBroker.cpp | 16 +++-- qpid/cpp/src/qpid/management/ManagementBroker.h | 32 ++++----- 43 files changed, 279 insertions(+), 206 deletions(-) (limited to 'qpid/cpp') diff --git a/qpid/cpp/examples/qmf-agent/Makefile b/qpid/cpp/examples/qmf-agent/Makefile index 0759644670..0fc7ece413 100644 --- a/qpid/cpp/examples/qmf-agent/Makefile +++ b/qpid/cpp/examples/qmf-agent/Makefile @@ -25,7 +25,7 @@ OUT_FILE = $(SRC_DIR)/qmf-agent CC = gcc LIB_DIR = $(QPID_DIR)/cpp/src/.libs -CC_INCLUDES = -I$(SRC_DIR) -I$(QPID_DIR)/cpp/src -I$(QPID_DIR)/cpp/src/gen -I$(GEN_DIR) +CC_INCLUDES = -I$(SRC_DIR) -I$(QPID_DIR)/cpp/src -I$(QPID_DIR)/cpp/src/gen -I$(GEN_DIR)/org/apache/qpid/agent/example CC_FLAGS = -g -O3 LD_FLAGS = -lqmfagent -L$(LIB_DIR) SPEC_DIR = $(QPID_DIR)/specs @@ -37,7 +37,7 @@ vpath %.d $(OBJ_DIR) vpath %.o $(OBJ_DIR) cpps = $(wildcard $(SRC_DIR)/*.cpp) -cpps += $(wildcard $(GEN_DIR)/*.cpp) +cpps += $(wildcard $(GEN_DIR)/org/apache/qpid/agent/example/*.cpp) deps = $(addsuffix .d, $(basename $(cpps))) objects = $(addsuffix .o, $(basename $(cpps))) diff --git a/qpid/cpp/examples/qmf-agent/example.cpp b/qpid/cpp/examples/qmf-agent/example.cpp index 3422704d60..2087ee0811 100644 --- a/qpid/cpp/examples/qmf-agent/example.cpp +++ b/qpid/cpp/examples/qmf-agent/example.cpp @@ -26,7 +26,7 @@ #include "Parent.h" #include "Child.h" #include "ArgsParentCreate_child.h" -#include "PackageQmf_example.h" +#include "Package.h" #include #include @@ -34,13 +34,13 @@ #include -using namespace qpid::management; -using namespace qpid::sys; using namespace std; +using qpid::management::ManagementAgent; using qpid::management::ManagementObject; using qpid::management::Manageable; using qpid::management::Args; using qpid::sys::Mutex; +namespace _qmf = qmf::org::apache::qpid::agent::example; class ChildClass; @@ -52,7 +52,7 @@ class CoreClass : public Manageable { string name; ManagementAgent* agent; - Parent* mgmtObject; + _qmf::Parent* mgmtObject; std::vector children; Mutex vectorLock; @@ -71,7 +71,7 @@ public: class ChildClass : public Manageable { string name; - Child* mgmtObject; + _qmf::Child* mgmtObject; public: @@ -90,7 +90,7 @@ public: CoreClass::CoreClass(ManagementAgent* _agent, string _name) : name(_name), agent(_agent) { static uint64_t persistId = 0x111222333444555LL; - mgmtObject = new Parent(agent, this, name); + mgmtObject = new _qmf::Parent(agent, this, name); agent->addObject(mgmtObject, persistId++); mgmtObject->set_state("IDLE"); @@ -102,7 +102,7 @@ void CoreClass::doLoop() while (1) { sleep(1); mgmtObject->inc_count(); - mgmtObject->set_state("IN LOOP"); + mgmtObject->set_state("IN_LOOP"); { Mutex::ScopedLock _lock(vectorLock); @@ -121,8 +121,8 @@ Manageable::status_t CoreClass::ManagementMethod(uint32_t methodId, Args& args, Mutex::ScopedLock _lock(vectorLock); switch (methodId) { - case Parent::METHOD_CREATE_CHILD: - ArgsParentCreate_child& ioArgs = (ArgsParentCreate_child&) args; + case _qmf::Parent::METHOD_CREATE_CHILD: + _qmf::ArgsParentCreate_child& ioArgs = (_qmf::ArgsParentCreate_child&) args; ChildClass *child = new ChildClass(agent, this, ioArgs.i_name); ioArgs.o_childRef = child->GetManagementObject()->getObjectId(); @@ -139,7 +139,7 @@ Manageable::status_t CoreClass::ManagementMethod(uint32_t methodId, Args& args, ChildClass::ChildClass(ManagementAgent* agent, CoreClass* parent, string name) { - mgmtObject = new Child(agent, this, parent, name); + mgmtObject = new _qmf::Child(agent, this, parent, name); agent->addObject(mgmtObject); } @@ -158,7 +158,7 @@ int main_int(int argc, char** argv) ManagementAgent* agent = singleton.getInstance(); // Register the Qmf_example schema with the agent - PackageQmf_example packageInit(agent); + _qmf::Package packageInit(agent); // Start the agent. It will attempt to make a connection to the // management broker diff --git a/qpid/cpp/examples/qmf-agent/schema.xml b/qpid/cpp/examples/qmf-agent/schema.xml index b0f25fcbed..22ecabb8a5 100644 --- a/qpid/cpp/examples/qmf-agent/schema.xml +++ b/qpid/cpp/examples/qmf-agent/schema.xml @@ -1,4 +1,4 @@ - + - + @@ -29,14 +29,14 @@ - - - + + + - - + + diff --git a/qpid/cpp/managementgen/qmf/schema.py b/qpid/cpp/managementgen/qmf/schema.py index 26bad618f7..12a325ed80 100755 --- a/qpid/cpp/managementgen/qmf/schema.py +++ b/qpid/cpp/managementgen/qmf/schema.py @@ -35,6 +35,7 @@ class SchemaType: self.accessor = None self.init = "0" self.perThread = False + self.byRef = False attrs = node.attributes for idx in range (attrs.length): @@ -69,6 +70,11 @@ class SchemaType: raise ValueError ("Expected 'y' in perThread attribute") self.perThread = True + elif key == 'byRef': + if val != 'y': + raise ValueError ("Expected 'y' in byRef attribute") + self.byRef = True + else: raise ValueError ("Unknown attribute in type '%s'" % key) @@ -76,6 +82,11 @@ class SchemaType: self.encode == None or self.decode == None: raise ValueError ("Missing required attribute(s) in type") + if self.byRef: + self.asArg = "const " + self.cpp + "&" + else: + self.asArg = self.cpp + def getName (self): return self.name @@ -87,9 +98,9 @@ class SchemaType: else: prefix = "" if self.accessor == "direct": - stream.write (" inline void set_" + varName + " (" + self.cpp + " val) {\n"); + stream.write (" inline void set_" + varName + " (" + self.asArg + " val) {\n"); if not self.perThread: - stream.write (" sys::Mutex::ScopedLock mutex(accessLock);\n") + stream.write (" ::qpid::sys::Mutex::ScopedLock mutex(accessLock);\n") if self.style != "mma": stream.write (" " + prefix + varName + " = val;\n") if optional: @@ -110,9 +121,9 @@ class SchemaType: stream.write (" " + changeFlag + " = true;\n") stream.write (" }\n") if self.style != "mma": - stream.write (" inline " + self.cpp + "& get_" + varName + "() {\n"); + stream.write (" inline " + self.asArg + " get_" + varName + "() {\n"); if not self.perThread: - stream.write (" sys::Mutex::ScopedLock mutex(accessLock);\n") + stream.write (" ::qpid::sys::Mutex::ScopedLock mutex(accessLock);\n") stream.write (" return " + prefix + varName + ";\n") stream.write (" }\n") if optional: @@ -125,9 +136,9 @@ class SchemaType: stream.write (" return (presenceMask[presenceByte_%s] & presenceMask_%s) != 0;\n" % (varName, varName)) stream.write (" }\n") elif self.accessor == "counter": - stream.write (" inline void inc_" + varName + " (" + self.cpp + " by = 1) {\n"); + stream.write (" inline void inc_" + varName + " (" + self.asArg + " by = 1) {\n"); if not self.perThread: - stream.write (" sys::Mutex::ScopedLock mutex(accessLock);\n") + stream.write (" ::qpid::sys::Mutex::ScopedLock mutex(accessLock);\n") stream.write (" " + prefix + varName + " += by;\n") if self.style == "wm": stream.write (" if (" + varName + "High < " + varName + ")\n") @@ -135,9 +146,9 @@ class SchemaType: if changeFlag != None: stream.write (" " + changeFlag + " = true;\n") stream.write (" }\n"); - stream.write (" inline void dec_" + varName + " (" + self.cpp + " by = 1) {\n"); + stream.write (" inline void dec_" + varName + " (" + self.asArg + " by = 1) {\n"); if not self.perThread: - stream.write (" sys::Mutex::ScopedLock mutex(accessLock);\n") + stream.write (" ::qpid::sys::Mutex::ScopedLock mutex(accessLock);\n") stream.write (" " + prefix + varName + " -= by;\n") if self.style == "wm": stream.write (" if (" + varName + "Low > " + varName + ")\n") @@ -316,7 +327,7 @@ class SchemaProperty: stream.write (prefix + self.type.type.cpp + " " + self.name + ";\n") def genFormalParam (self, stream, variables): - stream.write (self.type.type.cpp + " _" + self.name) + stream.write (self.type.type.asArg + " _" + self.name) def genAccessor (self, stream): self.type.type.genAccessor (stream, self.name, "configChanged", self.isOptional == 1) @@ -578,7 +589,7 @@ class SchemaArg: stream.write (" buf.put (ft);\n\n") def genFormalParam (self, stream, variables): - stream.write ("%s _%s" % (self.type.type.cpp, self.name)) + stream.write ("%s _%s" % (self.type.type.asArg, self.name)) #===================================================================================== # @@ -631,12 +642,21 @@ class SchemaMethod: def genNameCamel (self, stream, variables): stream.write (self.getFullName ()) + def genOpenNamespaces (self, stream, variables): + self.parent.genOpenNamespaces(stream, variables) + + def genCloseNamespaces (self, stream, variables): + self.parent.genCloseNamespaces(stream, variables) + def genArguments (self, stream, variables): for arg in self.args: ctype = arg.type.type.cpp dirTag = arg.dir.lower() + "_" stream.write (" " + ctype + " " + dirTag + arg.getName () + ";\n") + def genNamePackageLower (self, stream, variables): + self.parent.genNamePackageLower(stream, variables) + def genSchema (self, stream, variables): stream.write (" ft = FieldTable ();\n") stream.write (" ft.setString (NAME, \"" + self.name + "\");\n") @@ -702,7 +722,7 @@ class SchemaEvent: if count < len(self.args): stream.write(", ") stream.write(") {\n") - stream.write(" sys::Mutex::ScopedLock mutex(getMutex());\n") + stream.write(" ::qpid::sys::Mutex::ScopedLock mutex(getMutex());\n") stream.write(" Buffer* buf = startEventLH();\n") stream.write(" objectId.encode(*buf);\n") stream.write(" buf->putShortString(packageName);\n") @@ -879,6 +899,10 @@ class SchemaClass: if inst.assign == None: inst.genAccessor (stream) + def genCloseNamespaces (self, stream, variables): + for item in self.packageName.split("."): + stream.write ("}") + def genConfigCount (self, stream, variables): stream.write ("%d" % len (self.properties)) @@ -981,6 +1005,9 @@ class SchemaClass: if element.type.type.perThread: element.genDeclaration (stream, " ") + def genNamespace (self, stream, variables): + stream.write("::".join(self.packageName.split("."))) + def genMethodArgIncludes (self, stream, variables): for method in self.methods: if method.getArgCount () > 0: @@ -993,7 +1020,7 @@ class SchemaClass: for method in self.methods: stream.write ("\n if (methodName == \"" + method.getName () + "\") {\n") if method.getArgCount () == 0: - stream.write (" ArgsNone ioArgs;\n") + stream.write (" ::qpid::management::ArgsNone ioArgs;\n") else: stream.write (" Args" + method.getFullName () + " ioArgs;\n") for arg in method.args: @@ -1006,7 +1033,7 @@ class SchemaClass: stream.write (" status = coreObject->ManagementMethod (METHOD_" +\ method.getName().upper() + ", ioArgs, text);\n") stream.write (" outBuf.putLong (status);\n") - stream.write (" outBuf.putShortString (Manageable::StatusText (status, text));\n") + stream.write (" outBuf.putShortString (::qpid::management::Manageable::StatusText (status, text));\n") for arg in method.args: if arg.getDir () == "O" or arg.getDir () == "IO": stream.write (" " +\ @@ -1015,6 +1042,10 @@ class SchemaClass: arg.name, "outBuf") + ";\n") stream.write (" return;\n }\n") + def genOpenNamespaces (self, stream, variables): + for item in self.packageName.split("."): + stream.write ("namespace %s {\n" % item) + def genPresenceMaskBytes (self, stream, variables): count = 0 for prop in self.properties: @@ -1040,7 +1071,7 @@ class SchemaClass: def genSetGeneralReferenceDeclaration (self, stream, variables): for prop in self.properties: if prop.isGeneralRef: - stream.write ("void setReference(ObjectId objectId) { " + prop.name + " = objectId; }\n") + stream.write ("void setReference(::qpid::management::ObjectId objectId) { " + prop.name + " = objectId; }\n") def genStatisticSchema (self, stream, variables): for stat in self.statistics: @@ -1075,7 +1106,7 @@ class SchemaClass: def genParentArg (self, stream, variables): for config in self.properties: if config.isParentRef == 1: - stream.write (", Manageable* _parent") + stream.write (", ::qpid::management::Manageable* _parent") return def genParentRefAssignment (self, stream, variables): @@ -1112,7 +1143,7 @@ class SchemaClass: -class PackageSchema: +class SchemaPackage: def __init__ (self, typefile, schemafile, options): self.classes = [] @@ -1124,7 +1155,9 @@ class PackageSchema: if document.tagName != 'schema': raise ValueError ("Expected 'schema' node") attrs = document.attributes - self.packageName = makeValidCppSymbol(attrs['package'].nodeValue) + pname = attrs['package'].nodeValue + namelist = pname.split('.') + self.packageName = ".".join(namelist) children = document.childNodes for child in children: @@ -1148,14 +1181,29 @@ class PackageSchema: def getPackageNameCap (self): return capitalize(self.packageName) + def getPackageNameLower (self): + return self.packageName.lower() + def getClasses (self): return self.classes + def genCloseNamespaces (self, stream, variables): + for item in self.packageName.split("."): + stream.write ("}") + + def genNamespace (self, stream, variables): + stream.write("::".join(self.packageName.split("."))) + + def genOpenNamespaces (self, stream, variables): + for item in self.packageName.split("."): + stream.write ("namespace %s {\n" % item) + def genPackageNameUpper (self, stream, variables): - stream.write (self.packageName.upper ()) + up = "_".join(self.packageName.split(".")) + stream.write (up.upper()) - def genPackageNameCap (self, stream, variables): - stream.write (self.getPackageNameCap ()) + def genNamePackageLower (self, stream, variables): + stream.write (self.packageName.lower ()) def genClassIncludes (self, stream, variables): for _class in self.classes: diff --git a/qpid/cpp/managementgen/qmf/templates/Args.h b/qpid/cpp/managementgen/qmf/templates/Args.h index 576d891a3f..89a5bec9b9 100644 --- a/qpid/cpp/managementgen/qmf/templates/Args.h +++ b/qpid/cpp/managementgen/qmf/templates/Args.h @@ -26,15 +26,15 @@ #include "qpid/management/Args.h" #include -namespace qpid { -namespace management { +namespace qmf { +/*MGEN:Method.OpenNamespaces*/ -class Args/*MGEN:Method.NameCamel*/ : public Args + class Args/*MGEN:Method.NameCamel*/ : public ::qpid::management::Args { public: /*MGEN:Method.Arguments*/ }; -}} +}/*MGEN:Method.CloseNamespaces*/ #endif /*!_ARGS_/*MGEN:Method.NameUpper*/_*/ diff --git a/qpid/cpp/managementgen/qmf/templates/Class.cpp b/qpid/cpp/managementgen/qmf/templates/Class.cpp index 018f325ff1..964e6f8349 100644 --- a/qpid/cpp/managementgen/qmf/templates/Class.cpp +++ b/qpid/cpp/managementgen/qmf/templates/Class.cpp @@ -27,9 +27,12 @@ #include "/*MGEN:Class.NameCap*/.h" /*MGEN:Class.MethodArgIncludes*/ -using namespace qpid::management; -using namespace qpid::sys; +using namespace qmf::/*MGEN:Class.Namespace*/; using namespace qpid::framing; +using qpid::management::ManagementAgent; +using qpid::management::Manageable; +using qpid::management::ManagementObject; +using qpid::management::Args; using std::string; string /*MGEN:Class.NameCap*/::packageName = string ("/*MGEN:Class.NamePackageLower*/"); @@ -125,7 +128,7 @@ void /*MGEN:Class.NameCap*/::aggregatePerThreadStats(struct PerThreadStats* tota void /*MGEN:Class.NameCap*/::writeProperties (Buffer& buf) { - sys::Mutex::ScopedLock mutex(accessLock); + ::qpid::sys::Mutex::ScopedLock mutex(accessLock); configChanged = false; writeTimestamps (buf); @@ -138,7 +141,7 @@ void /*MGEN:Class.NameCap*/::writeProperties (Buffer& buf) void /*MGEN:Class.NameCap*/::writeStatistics (Buffer& buf, bool skipHeaders) { - sys::Mutex::ScopedLock mutex(accessLock); + ::qpid::sys::Mutex::ScopedLock mutex(accessLock); instChanged = false; /*MGEN:IF(Class.ExistPerThreadAssign)*/ for (int idx = 0; idx < maxThreads; idx++) { diff --git a/qpid/cpp/managementgen/qmf/templates/Class.h b/qpid/cpp/managementgen/qmf/templates/Class.h index 40ad20eb85..99ebc68789 100644 --- a/qpid/cpp/managementgen/qmf/templates/Class.h +++ b/qpid/cpp/managementgen/qmf/templates/Class.h @@ -27,10 +27,10 @@ #include "qpid/framing/FieldTable.h" #include "qpid/framing/Uuid.h" -namespace qpid { -namespace management { +namespace qmf { +/*MGEN:Class.OpenNamespaces*/ -class /*MGEN:Class.NameCap*/ : public ManagementObject +class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject { private: @@ -68,13 +68,13 @@ class /*MGEN:Class.NameCap*/ : public ManagementObject void aggregatePerThreadStats(struct PerThreadStats*); /*MGEN:ENDIF*/ // Private Methods - static void writeSchema (qpid::framing::Buffer& buf); - void writeProperties (qpid::framing::Buffer& buf); - void writeStatistics (qpid::framing::Buffer& buf, + static void writeSchema (::qpid::framing::Buffer& buf); + void writeProperties (::qpid::framing::Buffer& buf); + void writeStatistics (::qpid::framing::Buffer& buf, bool skipHeaders = false); void doMethod (std::string methodName, - qpid::framing::Buffer& inBuf, - qpid::framing::Buffer& outBuf); + ::qpid::framing::Buffer& inBuf, + ::qpid::framing::Buffer& outBuf); writeSchemaCall_t getWriteSchemaCall(void) { return writeSchema; } /*MGEN:IF(Class.NoStatistics)*/ // Stub for getInstChanged. There are no statistics in this class. @@ -82,13 +82,13 @@ class /*MGEN:Class.NameCap*/ : public ManagementObject /*MGEN:ENDIF*/ public: - /*MGEN:Class.NameCap*/ (ManagementAgent* agent, - Manageable* coreObject/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/); + /*MGEN:Class.NameCap*/ (::qpid::management::ManagementAgent* agent, + ::qpid::management::Manageable* coreObject/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/); ~/*MGEN:Class.NameCap*/ (void); /*MGEN:Class.SetGeneralReferenceDeclaration*/ - static void registerClass (ManagementAgent* agent); + static void registerClass (::qpid::management::ManagementAgent* agent); std::string& getPackageName (void) { return packageName; } std::string& getClassName (void) { return className; } uint8_t* getMd5Sum (void) { return md5Sum; } @@ -101,6 +101,6 @@ class /*MGEN:Class.NameCap*/ : public ManagementObject /*MGEN:Class.EventMethodDecls*/ }; -}} +}/*MGEN:Class.CloseNamespaces*/ #endif /*!_MANAGEMENT_/*MGEN:Class.NameUpper*/_*/ diff --git a/qpid/cpp/managementgen/qmf/templates/Package.cpp b/qpid/cpp/managementgen/qmf/templates/Package.cpp index 15e7fc15ec..f6bd7f4654 100644 --- a/qpid/cpp/managementgen/qmf/templates/Package.cpp +++ b/qpid/cpp/managementgen/qmf/templates/Package.cpp @@ -20,12 +20,12 @@ /*MGEN:Root.Disclaimer*/ -#include "Package/*MGEN:Schema.PackageNameCap*/.h" +#include "Package.h" /*MGEN:Schema.ClassIncludes*/ -using namespace qpid::management; +using namespace qmf::/*MGEN:Schema.Namespace*/; -Package/*MGEN:Schema.PackageNameCap*/::Package/*MGEN:Schema.PackageNameCap*/ (ManagementAgent* agent) +Package::Package (::qpid::management::ManagementAgent* agent) { /*MGEN:Schema.ClassRegisters*/ } diff --git a/qpid/cpp/managementgen/qmf/templates/Package.h b/qpid/cpp/managementgen/qmf/templates/Package.h index 3f3ac35ffc..0ad7060b9e 100644 --- a/qpid/cpp/managementgen/qmf/templates/Package.h +++ b/qpid/cpp/managementgen/qmf/templates/Package.h @@ -25,17 +25,17 @@ #include "qpid/agent/ManagementAgent.h" -namespace qpid { -namespace management { +namespace qmf { +/*MGEN:Class.OpenNamespaces*/ -class Package/*MGEN:Schema.PackageNameCap*/ +class Package { public: - Package/*MGEN:Schema.PackageNameCap*/ (ManagementAgent* agent); - ~Package/*MGEN:Schema.PackageNameCap*/ () {} + Package (::qpid::management::ManagementAgent* agent); + ~Package () {} }; -}} +}/*MGEN:Class.CloseNamespaces*/ #endif /*!_MANAGEMENT_PACKAGE_/*MGEN:Schema.PackageNameUpper*/_*/ diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am index 9b391a907f..9bef06e7bb 100644 --- a/qpid/cpp/src/Makefile.am +++ b/qpid/cpp/src/Makefile.am @@ -28,7 +28,7 @@ $(rgen_generator): # Management generator. mgen_dir=$(top_srcdir)/managementgen -mgen_cmd=$(mgen_dir)/qmf-gen -m $(srcdir)/managementgen.mk -o gen/qpid/management \ +mgen_cmd=$(mgen_dir)/qmf-gen -m $(srcdir)/managementgen.mk -o gen/qmf \ $(top_srcdir)/../specs/management-schema.xml \ $(srcdir)/qpid/acl/management-schema.xml diff --git a/qpid/cpp/src/qpid/DataDir.h b/qpid/cpp/src/qpid/DataDir.h index 7de5ebf62d..6b45d8747b 100644 --- a/qpid/cpp/src/qpid/DataDir.h +++ b/qpid/cpp/src/qpid/DataDir.h @@ -41,8 +41,8 @@ class DataDir DataDir (std::string path); ~DataDir (); - bool isEnabled () { return enabled; } - std::string getPath () { return dirPath; } + bool isEnabled() { return enabled; } + const std::string& getPath() { return dirPath; } }; } // namespace qpid diff --git a/qpid/cpp/src/qpid/acl/Acl.cpp b/qpid/cpp/src/qpid/acl/Acl.cpp index f9c307c7d3..0a793c88e0 100644 --- a/qpid/cpp/src/qpid/acl/Acl.cpp +++ b/qpid/cpp/src/qpid/acl/Acl.cpp @@ -24,39 +24,38 @@ #include "qpid/Options.h" #include "qpid/shared_ptr.h" #include "qpid/log/Logger.h" -#include "qpid/management/PackageACL.h" +#include "qmf/org/apache/qpid/acl/Package.h" #include #include -namespace qpid { -namespace acl { - using namespace std; +using namespace qpid::acl; using qpid::management::ManagementAgent; using qpid::management::ManagementObject; using qpid::management::Manageable; using qpid::management::Args; +namespace _qmf = qmf::org::apache::qpid::acl; - Acl::Acl (AclValues& av, broker::Broker& b): aclValues(av), broker(&b), transferAcl(false) - { +Acl::Acl (AclValues& av, broker::Broker& b): aclValues(av), broker(&b), transferAcl(false) +{ - ManagementAgent* agent = ManagementAgent::Singleton::getInstance(); - - if (agent != 0){ - management::PackageACL packageInit(agent); - mgmtObject = new management::Acl (agent, this, broker); - agent->addObject (mgmtObject); - } - - if (!readAclFile()){ - throw Exception("Could not read ACL file"); - if (mgmtObject!=0) mgmtObject->set_enforcingAcl(0); - } - QPID_LOG(info, "ACL Plugin loaded"); + ManagementAgent* agent = ManagementAgent::Singleton::getInstance(); + + if (agent != 0){ + _qmf::Package packageInit(agent); + mgmtObject = new _qmf::Acl (agent, this, broker); + agent->addObject (mgmtObject); + } + + if (!readAclFile()){ + throw Exception("Could not read ACL file"); + if (mgmtObject!=0) mgmtObject->set_enforcingAcl(0); + } + QPID_LOG(info, "ACL Plugin loaded"); if (mgmtObject!=0) mgmtObject->set_enforcingAcl(1); - } +} bool Acl::authorise(const std::string& id, const Action& action, const ObjectType& objType, const std::string& name, std::map* params) { @@ -147,7 +146,7 @@ using qpid::management::Args; switch (methodId) { - case management::Acl::METHOD_RELOADACLFILE : + case _qmf::Acl::METHOD_RELOADACLFILE : readAclFile(); status = Manageable::STATUS_OK; break; @@ -155,4 +154,3 @@ using qpid::management::Args; return status; } -}} // namespace qpid::acl diff --git a/qpid/cpp/src/qpid/acl/Acl.h b/qpid/cpp/src/qpid/acl/Acl.h index 22450709d9..b072d24cc0 100644 --- a/qpid/cpp/src/qpid/acl/Acl.h +++ b/qpid/cpp/src/qpid/acl/Acl.h @@ -27,7 +27,7 @@ #include "qpid/RefCounted.h" #include "qpid/broker/AclModule.h" #include "qpid/management/Manageable.h" -#include "qpid/management/Acl.h" +#include "qmf/org/apache/qpid/acl/Acl.h" #include #include @@ -56,7 +56,7 @@ private: broker::Broker* broker; bool transferAcl; boost::shared_ptr data; - management::Acl* mgmtObject; // mgnt owns lifecycle + qmf::org::apache::qpid::acl::Acl* mgmtObject; // mgnt owns lifecycle public: diff --git a/qpid/cpp/src/qpid/acl/management-schema.xml b/qpid/cpp/src/qpid/acl/management-schema.xml index ebd1eb2a53..7d20353755 100644 --- a/qpid/cpp/src/qpid/acl/management-schema.xml +++ b/qpid/cpp/src/qpid/acl/management-schema.xml @@ -1,4 +1,4 @@ - +