diff options
author | Ted Ross <tross@apache.org> | 2009-05-11 14:16:52 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2009-05-11 14:16:52 +0000 |
commit | 690e5d617c9aad8550905cf30a8380778c0f9e7a (patch) | |
tree | 855a30b9bee8760b083813a6166c8d1e981ad738 /qpid/cpp/managementgen | |
parent | 44e07189ca7b56b4f051035fddfffc948beeb162 (diff) | |
download | qpid-python-690e5d617c9aad8550905cf30a8380778c0f9e7a.tar.gz |
QPID-1843 - Cleaned up the interface to the broker's internal management agent.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@773570 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/managementgen')
-rwxr-xr-x | qpid/cpp/managementgen/qmf-gen | 22 | ||||
-rwxr-xr-x | qpid/cpp/managementgen/qmfgen/generate.py | 20 | ||||
-rwxr-xr-x | qpid/cpp/managementgen/qmfgen/schema.py | 9 | ||||
-rw-r--r-- | qpid/cpp/managementgen/qmfgen/templates/Class.cpp | 7 | ||||
-rw-r--r-- | qpid/cpp/managementgen/qmfgen/templates/Class.h | 6 | ||||
-rw-r--r-- | qpid/cpp/managementgen/qmfgen/templates/Event.cpp | 2 | ||||
-rw-r--r-- | qpid/cpp/managementgen/qmfgen/templates/Package.h | 2 |
7 files changed, 51 insertions, 17 deletions
diff --git a/qpid/cpp/managementgen/qmf-gen b/qpid/cpp/managementgen/qmf-gen index c6cfca5f83..ebc07137ae 100755 --- a/qpid/cpp/managementgen/qmf-gen +++ b/qpid/cpp/managementgen/qmf-gen @@ -45,6 +45,8 @@ parser.add_option("-p", "--gen-prefix", dest="genprefix", default="", help="Prefix for generated files in make dependencies") parser.add_option("-q", "--qpid-broker", dest="qpidbroker", default=False, action="store_true", help="Generate makefile for Qpid broker") +parser.add_option("-b", "--broker-plugin", dest="brokerplugin", default=False, action="store_true", + help="Generate code for use in a qpid broker plugin") (opts, args) = parser.parse_args() @@ -57,17 +59,23 @@ if len(args) == 0: print "no input files" parser.exit() +vargs = {} +if opts.brokerplugin: + vargs["agentHeaderDir"] = "management" +else: + vargs["agentHeaderDir"] = "agent" + for schemafile in args: package = SchemaPackage(typefile, schemafile, opts) gen.setPackage (package.packageName) - gen.makeClassFiles ("Class.h", package) - gen.makeClassFiles ("Class.cpp", package) - gen.makeMethodFiles ("Args.h", package) - gen.makeEventFiles ("Event.h", package) - gen.makeEventFiles ("Event.cpp", package) - gen.makePackageFile ("Package.h", package) - gen.makePackageFile ("Package.cpp", package) + gen.makeClassFiles ("Class.h", package, vars=vargs) + gen.makeClassFiles ("Class.cpp", package, vars=vargs) + gen.makeMethodFiles ("Args.h", package, vars=vargs) + gen.makeEventFiles ("Event.h", package, vars=vargs) + gen.makeEventFiles ("Event.cpp", package, vars=vargs) + gen.makePackageFile ("Package.h", package, vars=vargs) + gen.makePackageFile ("Package.cpp", package, vars=vargs) if opts.makefile != None: args = {} diff --git a/qpid/cpp/managementgen/qmfgen/generate.py b/qpid/cpp/managementgen/qmfgen/generate.py index 255d41ea0e..7173c2faa1 100755 --- a/qpid/cpp/managementgen/qmfgen/generate.py +++ b/qpid/cpp/managementgen/qmfgen/generate.py @@ -388,30 +388,39 @@ class Generator: def setVariable (self, key, value): self.variables[key] = value - def makeClassFiles (self, templateFile, schema, force=False): + def makeClassFiles (self, templateFile, schema, force=False, vars=None): """ Generate an expanded template per schema class """ classes = schema.getClasses () template = Template (self.input + templateFile, self) + if vars: + for arg in vars: + self.setVariable(arg, vars[arg]) self.templateFiles.append (templateFile) for _class in classes: target = self.targetClassFile (_class, templateFile) stream = template.expand (_class) self.writeIfChanged (stream, target, force) - def makeEventFiles (self, templateFile, schema, force=False): + def makeEventFiles (self, templateFile, schema, force=False, vars=None): """ Generate an expanded template per schema event """ events = schema.getEvents() template = Template (self.input + templateFile, self) + if vars: + for arg in vars: + self.setVariable(arg, vars[arg]) self.templateFiles.append (templateFile) for event in events: target = self.targetEventFile(event, templateFile) stream = template.expand(event) self.writeIfChanged(stream, target, force) - def makeMethodFiles (self, templateFile, schema, force=False): + def makeMethodFiles (self, templateFile, schema, force=False, vars=None): """ Generate an expanded template per method-with-arguments """ classes = schema.getClasses () template = Template (self.input + templateFile, self) + if vars: + for arg in vars: + self.setVariable(arg, vars[arg]) self.templateFiles.append (templateFile) for _class in classes: methods = _class.getMethods () @@ -421,9 +430,12 @@ class Generator: stream = template.expand (method) self.writeIfChanged (stream, target, force) - def makePackageFile (self, templateFile, schema, force=False): + def makePackageFile (self, templateFile, schema, force=False, vars=None): """ Generate a package-specific file """ template = Template (self.input + templateFile, self) + if vars: + for arg in vars: + self.setVariable(arg, vars[arg]) self.templateFiles.append (templateFile) target = self.targetPackageFile (schema, templateFile) stream = template.expand (schema) diff --git a/qpid/cpp/managementgen/qmfgen/schema.py b/qpid/cpp/managementgen/qmfgen/schema.py index 69823d6de0..3b53830c69 100755 --- a/qpid/cpp/managementgen/qmfgen/schema.py +++ b/qpid/cpp/managementgen/qmfgen/schema.py @@ -754,6 +754,9 @@ class SchemaEvent: def getFullName (self): return capitalize(self.package + capitalize(self.name)) + def genAgentHeaderLocation (self, stream, variables): + stream.write(variables["agentHeaderDir"]) + def getArgCount (self): return len (self.args) @@ -954,6 +957,9 @@ class SchemaClass: if inst.assign == None: inst.genAccessor (stream) + def genAgentHeaderLocation (self, stream, variables): + stream.write(variables["agentHeaderDir"]) + def genCloseNamespaces (self, stream, variables): for item in self.packageName.split("."): stream.write ("}") @@ -1258,6 +1264,9 @@ class SchemaPackage: def getEvents(self): return self.events + def genAgentHeaderLocation (self, stream, variables): + stream.write(variables["agentHeaderDir"]) + def genCloseNamespaces (self, stream, variables): for item in self.packageName.split("."): stream.write ("}") diff --git a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp b/qpid/cpp/managementgen/qmfgen/templates/Class.cpp index 247e1090ff..973d92586a 100644 --- a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp +++ b/qpid/cpp/managementgen/qmfgen/templates/Class.cpp @@ -23,7 +23,7 @@ #include "qpid/log/Statement.h" #include "qpid/framing/FieldTable.h" #include "qpid/management/Manageable.h" -#include "qpid/agent/ManagementAgent.h" +#include "qpid//*MGEN:Class.AgentHeaderLocation*//ManagementAgent.h" #include "/*MGEN:Class.NameCap*/.h" /*MGEN:Class.MethodArgIncludes*/ @@ -40,8 +40,8 @@ string /*MGEN:Class.NameCap*/::className = string ("/*MGEN:Class.NameLower*/ uint8_t /*MGEN:Class.NameCap*/::md5Sum[16] = {/*MGEN:Class.SchemaMD5*/}; -/*MGEN:Class.NameCap*/::/*MGEN:Class.NameCap*/ (ManagementAgent* _agent, Manageable* _core/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/) : - ManagementObject(_agent, _core)/*MGEN:Class.ConstructorInits*/ +/*MGEN:Class.NameCap*/::/*MGEN:Class.NameCap*/ (ManagementAgent*, Manageable* _core/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/) : + ManagementObject(_core)/*MGEN:Class.ConstructorInits*/ { /*MGEN:Class.ParentRefAssignment*/ /*MGEN:Class.InitializeElements*/ @@ -51,7 +51,6 @@ uint8_t /*MGEN:Class.NameCap*/::md5Sum[16] = presenceMask[idx] = 0; /*MGEN:ENDIF*/ /*MGEN:IF(Class.ExistPerThreadStats)*/ - maxThreads = agent->getMaxThreads(); perThreadStatsArray = new struct PerThreadStats*[maxThreads]; for (int idx = 0; idx < maxThreads; idx++) perThreadStatsArray[idx] = 0; diff --git a/qpid/cpp/managementgen/qmfgen/templates/Class.h b/qpid/cpp/managementgen/qmfgen/templates/Class.h index 0bf9911895..225090f0a9 100644 --- a/qpid/cpp/managementgen/qmfgen/templates/Class.h +++ b/qpid/cpp/managementgen/qmfgen/templates/Class.h @@ -27,6 +27,12 @@ #include "qpid/framing/FieldTable.h" #include "qpid/framing/Uuid.h" +namespace qpid { + namespace management { + class ManagementAgent; + } +} + namespace qmf { /*MGEN:Class.OpenNamespaces*/ diff --git a/qpid/cpp/managementgen/qmfgen/templates/Event.cpp b/qpid/cpp/managementgen/qmfgen/templates/Event.cpp index cdb40c6d79..2ffec8bcdf 100644 --- a/qpid/cpp/managementgen/qmfgen/templates/Event.cpp +++ b/qpid/cpp/managementgen/qmfgen/templates/Event.cpp @@ -23,7 +23,7 @@ #include "qpid/log/Statement.h" #include "qpid/framing/FieldTable.h" #include "qpid/management/Manageable.h" -#include "qpid/agent/ManagementAgent.h" +#include "qpid//*MGEN:Event.AgentHeaderLocation*//ManagementAgent.h" #include "Event/*MGEN:Event.NameCap*/.h" using namespace qmf::/*MGEN:Event.Namespace*/; diff --git a/qpid/cpp/managementgen/qmfgen/templates/Package.h b/qpid/cpp/managementgen/qmfgen/templates/Package.h index 0ad7060b9e..569c7cfb33 100644 --- a/qpid/cpp/managementgen/qmfgen/templates/Package.h +++ b/qpid/cpp/managementgen/qmfgen/templates/Package.h @@ -23,7 +23,7 @@ /*MGEN:Root.Disclaimer*/ -#include "qpid/agent/ManagementAgent.h" +#include "qpid//*MGEN:Class.AgentHeaderLocation*//ManagementAgent.h" namespace qmf { /*MGEN:Class.OpenNamespaces*/ |