summaryrefslogtreecommitdiff
path: root/cpp/managementgen/qmfgen/schema.py
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/managementgen/qmfgen/schema.py')
-rwxr-xr-xcpp/managementgen/qmfgen/schema.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/cpp/managementgen/qmfgen/schema.py b/cpp/managementgen/qmfgen/schema.py
index b8a1d26fb0..dc8ffae446 100755
--- a/cpp/managementgen/qmfgen/schema.py
+++ b/cpp/managementgen/qmfgen/schema.py
@@ -225,8 +225,7 @@ class SchemaType:
def genRead (self, stream, varName, indent=" "):
stream.write(indent + self.decode.replace("@", "buf").replace("#", varName) + ";\n")
- def genUnmap (self, stream, varName, indent=" ", key=None, mapName="_map",
- _optional=False):
+ def genUnmap (self, stream, varName, indent=" ", key=None, mapName="_map", _optional=False, _default=None):
if key is None:
key = varName
stream.write(indent + "if ((_i = " + mapName + ".find(\"" + key + "\")) != " + mapName + ".end()) {\n")
@@ -234,6 +233,11 @@ class SchemaType:
self.unmap.replace("#", "_i->second") + ";\n")
if _optional:
stream.write(indent + " _found = true;\n")
+ stream.write(indent + "} else {\n")
+ default = _default
+ if not default:
+ default = self.init
+ stream.write(indent + " " + varName + " = " + default + ";\n")
stream.write(indent + "}\n")
def genWrite (self, stream, varName, indent=" "):
@@ -1405,7 +1409,9 @@ class SchemaClass:
"ioArgs." + arg.dir.lower () + "_" + arg.name,
" ",
arg.name,
- "inMap")
+ "inMap",
+ False,
+ arg.default)
stream.write (" bool allow = coreObject->AuthorizeMethod(METHOD_" +\
method.getName().upper() + ", ioArgs, userId);\n")
@@ -1471,7 +1477,7 @@ class SchemaClass:
def genMethodIdDeclarations (self, stream, variables):
number = 1
for method in self.methods:
- stream.write (" static const uint32_t METHOD_" + method.getName().upper() +\
+ stream.write (" QPID_BROKER_EXTERN static const uint32_t METHOD_" + method.getName().upper() +\
" = %d;\n" % number)
number = number + 1