diff options
| author | Ted Ross <tross@apache.org> | 2008-09-09 17:31:47 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2008-09-09 17:31:47 +0000 |
| commit | cf82229a2ba92bbd6011aec7d21c93aa88985f92 (patch) | |
| tree | 089ec96ffc5588922d8e7e25c91976f6e45b694a /cpp/managementgen | |
| parent | 62dbd3afff76a6da41cd9e1aee8ce11518f22fca (diff) | |
| download | qpid-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-x | cpp/managementgen/qmf-gen | 49 | ||||
| -rwxr-xr-x | cpp/managementgen/qmf/generate.py | 5 | ||||
| -rwxr-xr-x | cpp/managementgen/qmf/schema.py | 4 |
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) |
