* add include files and static library due to problems with AMALGAM'ED
distri and nodeset feature * add UaModeler project including XML export * add nodeset using test server
This commit is contained in:
96
include/ua_server_external_ns.h
Normal file
96
include/ua_server_external_ns.h
Normal file
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* Copyright (C) 2014 the contributors as stated in the AUTHORS file
|
||||
*
|
||||
* This file is part of open62541. open62541 is free software: you can
|
||||
* redistribute it and/or modify it under the terms of the GNU Lesser General
|
||||
* Public License, version 3 (as published by the Free Software Foundation) with
|
||||
* a static linking exception as stated in the LICENSE file provided with
|
||||
* open62541.
|
||||
*
|
||||
* open62541 is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
||||
* details.
|
||||
*/
|
||||
|
||||
#ifndef UA_SERVER_EXTERNAL_NS_H_
|
||||
#define UA_SERVER_EXTERNAL_NS_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* An external application that manages its own data and data model. To plug in
|
||||
* outside data sources, one can use
|
||||
*
|
||||
* - VariableNodes with a data source (functions that are called for read and write access)
|
||||
* - An external nodestore that is mapped to specific namespaces
|
||||
*
|
||||
* If no external nodestore is defined for a nodeid, it is always looked up in
|
||||
* the "local" nodestore of open62541. Namespace Zero is always in the local
|
||||
* nodestore.
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
typedef UA_Int32 (*UA_ExternalNodeStore_addNodes)
|
||||
(void *ensHandle, const UA_RequestHeader *requestHeader, UA_AddNodesItem *nodesToAdd, UA_UInt32 *indices,
|
||||
UA_UInt32 indicesSize, UA_AddNodesResult* addNodesResults, UA_DiagnosticInfo *diagnosticInfos);
|
||||
|
||||
typedef UA_Int32 (*UA_ExternalNodeStore_addReferences)
|
||||
(void *ensHandle, const UA_RequestHeader *requestHeader, UA_AddReferencesItem* referencesToAdd,
|
||||
UA_UInt32 *indices,UA_UInt32 indicesSize, UA_StatusCode *addReferencesResults,
|
||||
UA_DiagnosticInfo *diagnosticInfos);
|
||||
|
||||
typedef UA_Int32 (*UA_ExternalNodeStore_deleteNodes)
|
||||
(void *ensHandle, const UA_RequestHeader *requestHeader, UA_DeleteNodesItem *nodesToDelete, UA_UInt32 *indices,
|
||||
UA_UInt32 indicesSize, UA_StatusCode *deleteNodesResults, UA_DiagnosticInfo *diagnosticInfos);
|
||||
|
||||
typedef UA_Int32 (*UA_ExternalNodeStore_deleteReferences)
|
||||
(void *ensHandle, const UA_RequestHeader *requestHeader, UA_DeleteReferencesItem *referenceToDelete,
|
||||
UA_UInt32 *indices, UA_UInt32 indicesSize, UA_StatusCode deleteReferencesresults,
|
||||
UA_DiagnosticInfo *diagnosticInfos);
|
||||
|
||||
typedef UA_Int32 (*UA_ExternalNodeStore_readNodes)
|
||||
(void *ensHandle, const UA_RequestHeader *requestHeader, UA_ReadValueId *readValueIds, UA_UInt32 *indices,
|
||||
UA_UInt32 indicesSize,UA_DataValue *readNodesResults, UA_Boolean timeStampToReturn,
|
||||
UA_DiagnosticInfo *diagnosticInfos);
|
||||
|
||||
typedef UA_Int32 (*UA_ExternalNodeStore_writeNodes)
|
||||
(void *ensHandle, const UA_RequestHeader *requestHeader, UA_WriteValue *writeValues, UA_UInt32 *indices,
|
||||
UA_UInt32 indicesSize, UA_StatusCode *writeNodesResults, UA_DiagnosticInfo *diagnosticInfo);
|
||||
|
||||
typedef UA_Int32 (*UA_ExternalNodeStore_browseNodes)
|
||||
(void *ensHandle, const UA_RequestHeader *requestHeader, UA_BrowseDescription *browseDescriptions,
|
||||
UA_UInt32 *indices, UA_UInt32 indicesSize, UA_UInt32 requestedMaxReferencesPerNode,
|
||||
UA_BrowseResult *browseResults, UA_DiagnosticInfo *diagnosticInfos);
|
||||
|
||||
typedef UA_Int32 (*UA_ExternalNodeStore_translateBrowsePathsToNodeIds)
|
||||
(void *ensHandle, const UA_RequestHeader *requestHeader, UA_BrowsePath *browsePath, UA_UInt32 *indices,
|
||||
UA_UInt32 indicesSize, UA_BrowsePathResult *browsePathResults, UA_DiagnosticInfo *diagnosticInfos);
|
||||
|
||||
typedef UA_Int32 (*UA_ExternalNodeStore_delete)(void *ensHandle);
|
||||
|
||||
typedef struct UA_ExternalNodeStore {
|
||||
void *ensHandle;
|
||||
UA_ExternalNodeStore_addNodes addNodes;
|
||||
UA_ExternalNodeStore_deleteNodes deleteNodes;
|
||||
UA_ExternalNodeStore_writeNodes writeNodes;
|
||||
UA_ExternalNodeStore_readNodes readNodes;
|
||||
UA_ExternalNodeStore_browseNodes browseNodes;
|
||||
UA_ExternalNodeStore_translateBrowsePathsToNodeIds translateBrowsePathsToNodeIds;
|
||||
UA_ExternalNodeStore_addReferences addReferences;
|
||||
UA_ExternalNodeStore_deleteReferences deleteReferences;
|
||||
UA_ExternalNodeStore_delete destroy;
|
||||
} UA_ExternalNodeStore;
|
||||
|
||||
UA_StatusCode UA_EXPORT
|
||||
UA_Server_addExternalNamespace(UA_Server *server, const UA_String *url,
|
||||
UA_ExternalNodeStore *nodeStore, UA_UInt16 *assignedNamespaceIndex);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* UA_SERVER_EXTERNAL_NS_H_ */
|
Reference in New Issue
Block a user