Browse Source

Fixied include order problem between GCC/CLang by wrapping iterator callback into ifdefs.

ichrispa 9 years ago
parent
commit
214d9bf748
2 changed files with 7 additions and 1 deletions
  1. 3 0
      include/ua_client_highlevel.h
  2. 4 1
      include/ua_server.h

+ 3 - 0
include/ua_client_highlevel.h

@@ -17,10 +17,13 @@ extern "C" {
  */
 UA_StatusCode UA_EXPORT UA_Client_NamespaceGetIndex(UA_Client *client, UA_String *namespaceUri, UA_UInt16 *namespaceIndex);
 
+#ifndef HAVE_NODEITER_CALLBACK
+#define HAVE_NODEITER_CALLBACK
 /* Iterate over all nodes referenced by parentNodeId by calling the callback
  f unction for each child node */                                                        
  typedef UA_StatusCode (*UA_NodeIteratorCallback)(UA_NodeId childId, UA_Boolean isInverse,
                                                   UA_NodeId referenceTypeId, void *handle);
+#endif
  
 UA_StatusCode UA_EXPORT UA_Client_forEachChildNodeCall(UA_Client *client, UA_NodeId parentNodeId, UA_NodeIteratorCallback callback, void *handle) ;
 

+ 4 - 1
include/ua_server.h

@@ -240,10 +240,13 @@ UA_StatusCode UA_EXPORT
 UA_Server_setObjectTypeNode_lifecycleManagement(UA_Server *server, UA_NodeId nodeId,
                                                 UA_ObjectLifecycleManagement olm);
 
+#ifndef HAVE_NODEITER_CALLBACK
+#define HAVE_NODEITER_CALLBACK
 /* Iterate over all nodes referenced by parentNodeId by calling the callback
-   function for each child node */
+   function for each child node (in ifdef because GCC/CLANG handle include order differently)*/
 typedef UA_StatusCode (*UA_NodeIteratorCallback)(UA_NodeId childId, UA_Boolean isInverse,
                                                  UA_NodeId referenceTypeId, void *handle);
+#endif
 
 UA_StatusCode UA_EXPORT
 UA_Server_forEachChildNodeCall(UA_Server *server, UA_NodeId parentNodeId,