|
@@ -210,29 +210,26 @@ extern UA_StatusCode %s(UA_Server *server);
|
|
|
* Any manual changes will be overwritten. */
|
|
|
|
|
|
#include "%s.h"
|
|
|
-
|
|
|
-UA_StatusCode %s(UA_Server *server) { // NOLINT
|
|
|
-
|
|
|
-UA_StatusCode retVal = UA_STATUSCODE_GOOD;
|
|
|
-""" % (outfilebase, outfilebase))
|
|
|
+""" % (outfilebase))
|
|
|
|
|
|
parentrefs = getSubTypesOf(nodeset, nodeset.getNodeByBrowseName("HierarchicalReferences"))
|
|
|
parentrefs = list(map(lambda x: x.id, parentrefs))
|
|
|
|
|
|
- # Generate namespaces (don't worry about duplicates)
|
|
|
- writec("/* Use namespace ids generated by the server */")
|
|
|
- for i, nsid in enumerate(nodeset.namespaces):
|
|
|
- nsid = nsid.replace("\"", "\\\"")
|
|
|
- writec("UA_UInt16 ns" + str(i) + " = UA_Server_addNamespace(server, \"" + nsid + "\");")
|
|
|
-
|
|
|
# Loop over the sorted nodes
|
|
|
logger.info("Reordering nodes for minimal dependencies during printing")
|
|
|
sorted_nodes = reorderNodesMinDependencies(nodeset)
|
|
|
logger.info("Writing code for nodes and references")
|
|
|
+
|
|
|
+ functionNumber = 0
|
|
|
+
|
|
|
+ for i in range(0, len(sorted_nodes)):
|
|
|
+ writec("UA_StatusCode function_" + outfilebase + "_" + str(i) + "(UA_Server *server, UA_UInt16 *ns);")
|
|
|
+
|
|
|
for node in sorted_nodes:
|
|
|
# Print node
|
|
|
if not node.hidden:
|
|
|
writec("\n/* " + str(node.displayName) + " - " + str(node.id) + " */")
|
|
|
+ writec("\nUA_StatusCode function_" + outfilebase + "_" + str(functionNumber) + "(UA_Server *server, UA_UInt16* ns){\n")
|
|
|
code = generateNodeCode(node, supressGenerationOfAttribute, generate_ns0, parentrefs, nodeset, max_string_length)
|
|
|
if code is None:
|
|
|
writec("/* Ignored. No parent */")
|
|
@@ -244,11 +241,27 @@ UA_StatusCode retVal = UA_STATUSCODE_GOOD;
|
|
|
# Print inverse references leading to this node
|
|
|
for ref in node.printRefs:
|
|
|
writec(generateReferenceCode(ref))
|
|
|
+
|
|
|
+ writec("return retVal;\n}")
|
|
|
+ functionNumber = functionNumber + 1
|
|
|
+
|
|
|
+
|
|
|
+ writec("""
|
|
|
+UA_StatusCode %s(UA_Server *server) { // NOLINT
|
|
|
|
|
|
- # Finalize the generated source
|
|
|
- writec("return retVal;")
|
|
|
- writec("} // closing nodeset()")
|
|
|
+UA_StatusCode retVal = UA_STATUSCODE_GOOD;""" % (outfilebase))
|
|
|
+ # Generate namespaces (don't worry about duplicates)
|
|
|
+ writec("/* Use namespace ids generated by the server */")
|
|
|
+ writec("UA_UInt16 ns[" + str(len(nodeset.namespaces)) + "];")
|
|
|
+ for i, nsid in enumerate(nodeset.namespaces):
|
|
|
+ nsid = nsid.replace("\"", "\\\"")
|
|
|
+ writec("ns[" + str(i) + "] = UA_Server_addNamespace(server, \"" + nsid + "\");")
|
|
|
|
|
|
+ for i in range(0, functionNumber):
|
|
|
+ writec("retVal |= function_" + outfilebase + "_" + str(i) + "(server, ns);")
|
|
|
+
|
|
|
+
|
|
|
+ writec("return retVal;\n}")
|
|
|
outfileh.close()
|
|
|
fullCode = outfilec.getvalue()
|
|
|
outfilec.close()
|