Przeglądaj źródła

pass the client config by value

Julius Pfrommer 10 lat temu
rodzic
commit
3a029e8446
4 zmienionych plików z 7 dodań i 18 usunięć
  1. 1 1
      README.md
  2. 1 4
      examples/client.c
  3. 2 2
      include/ua_client.h
  4. 3 11
      src/client/ua_client.c

+ 1 - 1
README.md

@@ -75,7 +75,7 @@ int main(int argc, char** argv) {
 #include "open62541.h"
 
 int main(int argc, char *argv[]) {
-    UA_Client *client = UA_Client_new(NULL);
+    UA_Client *client = UA_Client_new(UA_ClientConfig_standard);
     UA_ClientNetworkLayer nl = ClientNetworkLayerTCP_new(UA_ConnectionConfig_standard);
     UA_StatusCode retval = UA_Client_connect(client, UA_ConnectionConfig_standard, nl,
                                              "opc.tcp://localhost:16664");

+ 1 - 4
examples/client.c

@@ -10,10 +10,7 @@
 #include "networklayer_tcp.h"
 
 int main(int argc, char *argv[]) {
-    UA_ClientConfig config;
-    UA_ClientConfig_init(&config);
-    config.timeout = 500;
-    UA_Client *client = UA_Client_new(&config);
+    UA_Client *client = UA_Client_new(UA_ClientConfig_standard);
     UA_ClientNetworkLayer nl = ClientNetworkLayerTCP_new(UA_ConnectionConfig_standard);
     UA_StatusCode retval = UA_Client_connect(client, UA_ConnectionConfig_standard, nl,
             "opc.tcp://localhost:16664");

+ 2 - 2
include/ua_client.h

@@ -32,9 +32,9 @@ typedef struct UA_ClientConfig {
     UA_Int32 timeout; //sync resonse timeout
 } UA_ClientConfig;
 
-void UA_EXPORT UA_ClientConfig_init(UA_ClientConfig* config);
+extern const UA_ClientConfig UA_ClientConfig_standard;
 
-UA_Client UA_EXPORT * UA_Client_new(UA_ClientConfig* config);
+UA_Client UA_EXPORT * UA_Client_new(UA_ClientConfig config);
 
 void UA_Client_delete(UA_Client* client);
 

+ 3 - 11
src/client/ua_client.c

@@ -28,15 +28,13 @@ struct UA_Client {
     UA_ClientConfig config;
 };
 
-/* Default config values */
-void UA_ClientConfig_init(UA_ClientConfig* config){
-    config->timeout = 500;
-}
+const UA_ClientConfig UA_ClientConfig_standard = (UA_ClientConfig) {.timeout = 500 };
 
-UA_Client * UA_Client_new(UA_ClientConfig* config) {
+UA_Client * UA_Client_new(UA_ClientConfig config) {
     UA_Client *client = UA_malloc(sizeof(UA_Client));
     if(!client)
         return UA_NULL;
+    client->config = config;
     UA_String_init(&client->endpointUrl);
     client->connection.state = UA_CONNECTION_OPENING;
     UA_ByteString_init(&client->connection.incompleteMessage);
@@ -51,12 +49,6 @@ UA_Client * UA_Client_new(UA_ClientConfig* config) {
     
     UA_NodeId_init(&client->authenticationToken);
 
-    if(config){
-        client->config = *config;
-    }else{
-        UA_ClientConfig_init(&client->config);
-    }
-
     return client;
 }