Procházet zdrojové kódy

PubSub: More static methods in ua_pubsub.c

Julius Pfrommer před 6 roky
rodič
revize
30e920d10b
2 změnil soubory, kde provedl 12 přidání a 10 odebrání
  1. 12 6
      src/pubsub/ua_pubsub.c
  2. 0 4
      src/pubsub/ua_pubsub.h

+ 12 - 6
src/pubsub/ua_pubsub.c

@@ -22,6 +22,8 @@
 /* Forward declaration */
 static void
 UA_WriterGroup_deleteMembers(UA_Server *server, UA_WriterGroup *writerGroup);
+static void
+UA_DataSetField_deleteMembers(UA_DataSetField *field);
 
 /**********************************************/
 /*               Connection                   */
@@ -326,8 +328,11 @@ UA_Server_removeDataSetField(UA_Server *server, const UA_NodeId dsf) {
     /* update major version of PublishedDataSet */
     parentPublishedDataSet->dataSetMetaData.configurationVersion.majorVersion =
         UA_PubSubConfigurationVersionTimeDifference();
+
     UA_DataSetField_deleteMembers(currentField);
+    LIST_REMOVE(currentField, listEntry);
     UA_free(currentField);
+
 	result.result = UA_STATUSCODE_GOOD;
 	result.configurationVersion.majorVersion = parentPublishedDataSet->dataSetMetaData.configurationVersion.majorVersion;
 	result.configurationVersion.minorVersion = parentPublishedDataSet->dataSetMetaData.configurationVersion.minorVersion;
@@ -401,17 +406,16 @@ UA_DataSetWriterConfig_deleteMembers(UA_DataSetWriterConfig *pdsConfig) {
     UA_ExtensionObject_deleteMembers(&pdsConfig->messageSettings);
 }
 
-void
-UA_DataSetWriter_deleteMembers(UA_Server *server, UA_DataSetWriter *dataSetWriter){
+static void
+UA_DataSetWriter_deleteMembers(UA_Server *server, UA_DataSetWriter *dataSetWriter) {
     UA_DataSetWriterConfig_deleteMembers(&dataSetWriter->config);
     //delete DataSetWriter
     UA_NodeId_deleteMembers(&dataSetWriter->identifier);
     UA_NodeId_deleteMembers(&dataSetWriter->linkedWriterGroup);
     UA_NodeId_deleteMembers(&dataSetWriter->connectedDataSet);
-    LIST_REMOVE(dataSetWriter, listEntry);
 #ifdef UA_ENABLE_PUBSUB_DELTAFRAMES
     //delete lastSamples store
-    for(size_t i = 0; i < dataSetWriter->lastSamplesCount; i++){
+    for(size_t i = 0; i < dataSetWriter->lastSamplesCount; i++) {
         UA_DataValue_deleteMembers(&dataSetWriter->lastSamples[i].value);
     }
     UA_free(dataSetWriter->lastSamples);
@@ -587,8 +591,10 @@ UA_Server_removeDataSetWriter(UA_Server *server, const UA_NodeId dsw){
 #ifdef UA_ENABLE_PUBSUB_INFORMATIONMODEL
     removeDataSetWriterRepresentation(server, dataSetWriter);
 #endif
+
     //remove DataSetWriter from group
     UA_DataSetWriter_deleteMembers(server, dataSetWriter);
+    LIST_REMOVE(dataSetWriter, listEntry);
     UA_free(dataSetWriter);
     return UA_STATUSCODE_GOOD;
 }
@@ -648,13 +654,13 @@ UA_DataSetFieldConfig_deleteMembers(UA_DataSetFieldConfig *dataSetFieldConfig){
     }
 }
 
-void UA_DataSetField_deleteMembers(UA_DataSetField *field) {
+static void
+UA_DataSetField_deleteMembers(UA_DataSetField *field) {
     UA_DataSetFieldConfig_deleteMembers(&field->config);
     //delete DataSetField
     UA_NodeId_deleteMembers(&field->identifier);
     UA_NodeId_deleteMembers(&field->publishedDataSet);
     UA_FieldMetaData_deleteMembers(&field->fieldMetaData);
-    LIST_REMOVE(field, listEntry);
 }
 
 /*********************************************************/

+ 0 - 4
src/pubsub/ua_pubsub.h

@@ -95,8 +95,6 @@ UA_StatusCode
 UA_DataSetWriterConfig_copy(const UA_DataSetWriterConfig *src, UA_DataSetWriterConfig *dst);
 UA_DataSetWriter *
 UA_DataSetWriter_findDSWbyId(UA_Server *server, UA_NodeId identifier);
-void
-UA_DataSetWriter_deleteMembers(UA_Server *server, UA_DataSetWriter *dataSetWriter);
 
 /**********************************************/
 /*               WriterGroup                  */
@@ -138,8 +136,6 @@ UA_StatusCode
 UA_DataSetFieldConfig_copy(const UA_DataSetFieldConfig *src, UA_DataSetFieldConfig *dst);
 UA_DataSetField *
 UA_DataSetField_findDSFbyId(UA_Server *server, UA_NodeId identifier);
-void
-UA_DataSetField_deleteMembers(UA_DataSetField *field);
 
 /*********************************************************/
 /*               PublishValues handling                  */