|
@@ -152,7 +152,9 @@ def createStructured(element):
|
|
|
print("UA_Int32 " + name + "_calcSize(" + name + " const * ptr) {\n\treturn 0", end='', file=fc)
|
|
|
else:
|
|
|
# code
|
|
|
- print("UA_Int32 " + name + "_calcSize(" + name + " const * ptr) {\n\treturn 0", end='', file=fc)
|
|
|
+ print("UA_Int32 " + name + "_calcSize(" + name + " const * ptr) {", end='', file=fc)
|
|
|
+ print("\n\tif(ptr==UA_NULL){return sizeof("+ name +");}", end='', file=fc)
|
|
|
+ print("\n\treturn 0", end='', file=fc)
|
|
|
|
|
|
# code _calcSize
|
|
|
for n,t in valuemap.iteritems():
|
|
@@ -197,10 +199,14 @@ def createStructured(element):
|
|
|
if t in enum_types:
|
|
|
print('\tretval |= UA_'+t+'_decode(src,pos,&(dst->'+n+'));', end='\n', file=fc)
|
|
|
elif t.find("**") != -1:
|
|
|
- print('\tretval |= UA_Int32_decode(src,pos,&(dst->'+n+'Size)); // decode size', end='\n', file=fc)
|
|
|
- print("\tretval |= UA_Array_decode(src,dst->"+n+"Size, UA_" + t[0:t.find("*")].upper()+",pos,(void const**) (dst->"+n+"));", end='\n', file=fc) #not tested
|
|
|
+ print('\tretval |= UA_Int32_decode(src,pos,&(dst->'+n+'Size)); // decode size', end='\n', file=fc)
|
|
|
+ #allocate memory
|
|
|
+ print('\tretval |= UA_alloc((void**)&(dst->' + n + "),dst->" + n + "Size*sizeof(void*));", end='\n', file=fc)
|
|
|
+ print("\tretval |= UA_Array_decode(src,dst->"+n+"Size, UA_" + t[0:t.find("*")].upper()+",pos,(void const**) (dst->"+n+"));", end='\n', file=fc) #not tested
|
|
|
elif t.find("*") != -1:
|
|
|
- print('\tretval |= UA_' + t[0:t.find("*")] + "_decode(src,pos,dst->"+ n +");", end='\n', file=fc)
|
|
|
+ #allocate memory
|
|
|
+ print('\tretval |= UA_alloc((void**)&(dst->' + n + "),UA_" + t[0:t.find("*")] +"_calcSize(UA_NULL));", end='\n', file=fc)
|
|
|
+ print('\tretval |= UA_' + t[0:t.find("*")] + "_decode(src,pos,dst->"+ n +");", end='\n', file=fc)
|
|
|
else:
|
|
|
print('\tretval |= UA_'+t+"_decode(src,pos,&(dst->"+n+"));", end='\n', file=fc)
|
|
|
print("\treturn retval;\n}\n", end='\n', file=fc)
|