Procházet zdrojové kódy

replace variant in variable-nodes with a datavalue

Julius Pfrommer před 8 roky
rodič
revize
cb747d5f4f
2 změnil soubory, kde provedl 13 přidání a 12 odebrání
  1. 7 6
      src/server/ua_nodes.c
  2. 6 6
      src/server/ua_nodes.h

+ 7 - 6
src/server/ua_nodes.c

@@ -22,8 +22,9 @@ void UA_Node_deleteMembersAnyNodeClass(UA_Node *node) {
     case UA_NODECLASS_VARIABLE:
     case UA_NODECLASS_VARIABLETYPE: {
         UA_VariableNode *p = (UA_VariableNode*)node;
-        if(p->valueSource == UA_VALUESOURCE_VARIANT)
-            UA_Variant_deleteMembers(&p->value.variant.value);
+        if(p->valueSource == UA_VALUESOURCE_CONTAINED &&
+           p->value.contained.value.hasValue)
+            UA_Variant_deleteMembers(&p->value.contained.value.value);
         break;
     }
     case UA_NODECLASS_REFERENCETYPE: {
@@ -51,8 +52,8 @@ static UA_StatusCode
 UA_VariableNode_copy(const UA_VariableNode *src, UA_VariableNode *dst) {
     dst->valueRank = src->valueRank;
     dst->valueSource = src->valueSource;
-    if(src->valueSource == UA_VALUESOURCE_VARIANT) {
-        UA_StatusCode retval = UA_Variant_copy(&src->value.variant.value, &dst->value.variant.value);
+    if(src->valueSource == UA_VALUESOURCE_CONTAINED) {
+        UA_StatusCode retval = UA_DataValue_copy(&src->value.contained.value, &dst->value.contained.value);
         if(retval != UA_STATUSCODE_GOOD)
             return retval;
         dst->value.variant.callback = src->value.variant.callback;
@@ -85,8 +86,8 @@ static UA_StatusCode
 UA_VariableTypeNode_copy(const UA_VariableTypeNode *src, UA_VariableTypeNode *dst) {
     dst->valueRank = src->valueRank;
     dst->valueSource = src->valueSource;
-    if(src->valueSource == UA_VALUESOURCE_VARIANT){
-        UA_StatusCode retval = UA_Variant_copy(&src->value.variant.value, &dst->value.variant.value);
+    if(src->valueSource == UA_VALUESOURCE_CONTAINED) {
+        UA_StatusCode retval = UA_DataValue_copy(&src->value.contained.value, &dst->value.contained.value);
         if(retval != UA_STATUSCODE_GOOD)
             return retval;
         dst->value.variant.callback = src->value.variant.callback;

+ 6 - 6
src/server/ua_nodes.h

@@ -50,7 +50,7 @@ typedef struct {
 } UA_ObjectTypeNode;
 
 typedef enum {
-    UA_VALUESOURCE_VARIANT,
+    UA_VALUESOURCE_CONTAINED,
     UA_VALUESOURCE_DATASOURCE
 } UA_ValueSource;
 
@@ -68,9 +68,9 @@ typedef struct {
     UA_ValueSource valueSource;
     union {
         struct {
-        UA_Variant value;
-        UA_ValueCallback callback;
-        } variant;
+            UA_DataValue value;
+            UA_ValueCallback callback;
+        } contained;
         UA_DataSource dataSource;
     } value;
     /* <--- similar to variabletypenodes up to there--->*/
@@ -90,9 +90,9 @@ typedef struct {
     UA_ValueSource valueSource;
     union {
         struct {
-            UA_Variant value;
+            UA_DataValue value;
             UA_ValueCallback callback;
-        } variant;
+        } contained;
         UA_DataSource dataSource;
     } value;
     /* <--- similar to variablenodes up to there--->*/