summaryrefslogtreecommitdiff
path: root/cpp/managementgen
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-09-09 17:31:47 +0000
committerTed Ross <tross@apache.org>2008-09-09 17:31:47 +0000
commitcf82229a2ba92bbd6011aec7d21c93aa88985f92 (patch)
tree089ec96ffc5588922d8e7e25c91976f6e45b694a /cpp/managementgen
parent62dbd3afff76a6da41cd9e1aee8ce11518f22fca (diff)
downloadqpid-python-cf82229a2ba92bbd6011aec7d21c93aa88985f92.tar.gz
QPID-1274 - qmf-gen can now generate code from multiple schema files. Uses __file__ as a better way to locate data files. Added code generation for ACL schema.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@693523 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/managementgen')
-rwxr-xr-xcpp/managementgen/qmf-gen49
-rwxr-xr-xcpp/managementgen/qmf/generate.py5
-rwxr-xr-xcpp/managementgen/qmf/schema.py4
3 files changed, 27 insertions, 31 deletions
diff --git a/cpp/managementgen/qmf-gen b/cpp/managementgen/qmf-gen
index 10750f2a34..a6f022926c 100755
--- a/cpp/managementgen/qmf-gen
+++ b/cpp/managementgen/qmf-gen
@@ -24,27 +24,12 @@ from qmf.schema import PackageSchema, SchemaClass
from qmf.generate import Generator
from optparse import OptionParser
-dataPath = os.path.dirname(sys.argv[0]) + "/qmf/"
-defaultTypeFile = dataPath + "management-types.xml"
-defaultTemplateDir = dataPath + "templates"
-found = True
-
-try:
- s = os.stat(defaultTypeFile)
-except:
- found = False
-
-if not found:
- path = sys.path
- for item in path:
- if os.path.basename(item) == "site-packages":
- found = True
- dataPath = item + "/qmf/"
- defaultTypeFile = dataPath + "management-types.xml"
- defaultTemplateDir = dataPath + "templates"
+dataPath = os.path.dirname(Generator.getModulePath())
+defaultTypeFile = dataPath + "/management-types.xml"
+defaultTemplateDir = dataPath + "/templates"
# Set command line options
-usage = "usage: %prog [options] schema-document out-directory"
+usage = "usage: %prog [options] schema-document..."
parser = OptionParser (usage=usage)
parser.add_option ("-m", "--makefile", dest="makefile", metavar="FILE",
help="Makefile fragment")
@@ -52,26 +37,28 @@ parser.add_option ("-t", "--typefile", dest="typefile", metavar="FILE", default=
help="Type descriptor file")
parser.add_option ("-d", "--templatedir", dest="templatedir", metavar="DIR", default=defaultTemplateDir,
help="Template directory")
+parser.add_option ("-o", "--outputdir", dest="outputdir", metavar="DIR", default="./",
+ help="Output directory")
(opts, args) = parser.parse_args ()
-if len (args) < 2:
- parser.error ("Too few arguments")
-
typefile = opts.typefile
templatedir = opts.templatedir
+outdir = opts.outputdir
+gen = Generator (outdir, templatedir)
-schemafile = args[0]
-outdir = args[1]
+if len(args) == 0:
+ print "no input files"
+ parser.exit()
-gen = Generator (outdir, templatedir)
-schema = PackageSchema (typefile, schemafile, opts)
+for schemafile in args:
+ schema = PackageSchema (typefile, schemafile, opts)
-gen.makeClassFiles ("Class.h", schema)
-gen.makeClassFiles ("Class.cpp", schema)
-gen.makeMethodFiles ("Args.h", schema)
-gen.makePackageFile ("Package.h", schema)
-gen.makePackageFile ("Package.cpp", schema)
+ gen.makeClassFiles ("Class.h", schema)
+ gen.makeClassFiles ("Class.cpp", schema)
+ gen.makeMethodFiles ("Args.h", schema)
+ gen.makePackageFile ("Package.h", schema)
+ gen.makePackageFile ("Package.cpp", schema)
if opts.makefile != None:
gen.makeSingleFile ("Makefile.mk", opts.makefile, force=True)
diff --git a/cpp/managementgen/qmf/generate.py b/cpp/managementgen/qmf/generate.py
index 70735b208a..e977ce2e9d 100755
--- a/cpp/managementgen/qmf/generate.py
+++ b/cpp/managementgen/qmf/generate.py
@@ -298,3 +298,8 @@ class Generator:
self.templateFiles.append (templateFile)
stream = template.expand (makefile)
self.writeIfChanged (stream, target, force)
+
+ @staticmethod
+ def getModulePath():
+ return __file__
+
diff --git a/cpp/managementgen/qmf/schema.py b/cpp/managementgen/qmf/schema.py
index e666bdbb39..9263c29543 100755
--- a/cpp/managementgen/qmf/schema.py
+++ b/cpp/managementgen/qmf/schema.py
@@ -656,6 +656,7 @@ class SchemaEvent:
self.name = None
self.desc = None
self.args = []
+ self.defaultSeverity = None
attrs = node.attributes
for idx in range (attrs.length):
@@ -667,6 +668,9 @@ class SchemaEvent:
elif key == 'desc':
self.desc = val
+ elif key == 'defaultSeverity':
+ self.defaultSeverity = val
+
else:
raise ValueError ("Unknown attribute in event '%s'" % key)