static void node_deleteMembers(UA_Node *node) { switch(node->nodeClass) { case UA_NODECLASS_OBJECT: UA_ObjectNode_deleteMembers((UA_ObjectNode *)node); break; case UA_NODECLASS_VARIABLE: UA_VariableNode_deleteMembers((UA_VariableNode *)node); break; case UA_NODECLASS_METHOD: UA_MethodNode_deleteMembers((UA_MethodNode *)node); break; case UA_NODECLASS_OBJECTTYPE: UA_ObjectTypeNode_deleteMembers((UA_ObjectTypeNode *)node); break; case UA_NODECLASS_VARIABLETYPE: UA_VariableTypeNode_deleteMembers((UA_VariableTypeNode *)node); break; case UA_NODECLASS_REFERENCETYPE: UA_ReferenceTypeNode_deleteMembers((UA_ReferenceTypeNode *)node); break; case UA_NODECLASS_DATATYPE: UA_DataTypeNode_deleteMembers((UA_DataTypeNode *)node); break; case UA_NODECLASS_VIEW: UA_ViewNode_deleteMembers((UA_ViewNode *)node); break; default: UA_assert(UA_FALSE); break; } }
UA_StatusCode UA_ReferenceTypeNode_copy(const UA_ReferenceTypeNode *src, UA_ReferenceTypeNode *dst) { UA_StatusCode retval = UA_Node_copy((const UA_Node*)src, (UA_Node*)dst); if(retval) return retval; retval = UA_LocalizedText_copy(&src->inverseName, &dst->inverseName); if(retval) { UA_ReferenceTypeNode_deleteMembers(dst); return retval; } dst->isAbstract = src->isAbstract; dst->symmetric = src->symmetric; return UA_STATUSCODE_GOOD; }
void UA_ReferenceTypeNode_delete(UA_ReferenceTypeNode *p) { UA_ReferenceTypeNode_deleteMembers(p); UA_free(p); }