1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * Copyright 2018 (c) basysKom GmbH <opensource@basyskom.com> (Author: Peter Rustler)
- */
- #ifndef UA_PLUGIN_HISTORYDATABASE_H_
- #define UA_PLUGIN_HISTORYDATABASE_H_
- #include "ua_types.h"
- #include "ua_server.h"
- _UA_BEGIN_DECLS
- typedef struct UA_HistoryDatabase UA_HistoryDatabase;
- struct UA_HistoryDatabase {
- void *context;
- void
- (*deleteMembers)(UA_HistoryDatabase *hdb);
- /* This function will be called when a nodes value is set.
- * Use this to insert data into your database(s) if polling is not suitable
- * and you need to get all data changes.
- * Set it to NULL if you do not need it.
- *
- * server is the server this node lives in.
- * hdbContext is the context of the UA_HistoryDatabase.
- * sessionId and sessionContext identify the session which set this value.
- * nodeId is the node id for which data was set.
- * historizing is the nodes boolean flag for historizing
- * value is the new value. */
- void
- (*setValue)(UA_Server *server,
- void *hdbContext,
- const UA_NodeId *sessionId,
- void *sessionContext,
- const UA_NodeId *nodeId,
- UA_Boolean historizing,
- const UA_DataValue *value);
- /* This function is called if a history read is requested with
- * isRawReadModified set to false. Setting it to NULL will result in a
- * response with statuscode UA_STATUSCODE_BADHISTORYOPERATIONUNSUPPORTED.
- *
- * server is the server this node lives in.
- * hdbContext is the context of the UA_HistoryDatabase.
- * sessionId and sessionContext identify the session which set this value.
- * requestHeader, historyReadDetails, timestampsToReturn, releaseContinuationPoints
- * nodesToReadSize and nodesToRead is the requested data from the client. It is from the request object.
- * response the response to fill for the client. If the request is ok, there is no need to use it.
- * Use this to set status codes other than "Good" or other data.
- * You find an already allocated UA_HistoryReadResult array with an UA_HistoryData object
- * in the extension object in the size of nodesToReadSize. If you are not willing to return data,
- * you have to delete the results array, set it to NULL and set the resultsSize to 0.
- * Do not access historyData after that.
- * historyData is a proper typed pointer array pointing in the UA_HistoryReadResult extension object.
- * use this to provide result data to the client.
- * Index in the array is the same as in nodesToRead and the UA_HistoryReadResult array. */
- void
- (*readRaw)(UA_Server *server,
- void *hdbContext,
- const UA_NodeId *sessionId,
- void *sessionContext,
- const UA_RequestHeader *requestHeader,
- const UA_ReadRawModifiedDetails *historyReadDetails,
- UA_TimestampsToReturn timestampsToReturn,
- UA_Boolean releaseContinuationPoints,
- size_t nodesToReadSize,
- const UA_HistoryReadValueId *nodesToRead,
- UA_HistoryReadResponse *response,
- UA_HistoryData * const * const historyData);
- /* Add more function pointer here.
- * For example for read_event, read_modified, read_processed, read_at_time */
- };
- _UA_END_DECLS
- #endif /* UA_PLUGIN_HISTORYDATABASE_H_ */
|