S2OPC OPCUA Toolkit
Loading...
Searching...
No Matches
sopc_address_space_access_internal.h
Go to the documentation of this file.
1/*
2 * Licensed to Systerel under one or more contributor license
3 * agreements. See the NOTICE file distributed with this work
4 * for additional information regarding copyright ownership.
5 * Systerel licenses this file to you under the Apache
6 * License, Version 2.0 (the "License"); you may not use this
7 * file except in compliance with the License. You may obtain
8 * a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20#ifndef SOPC_ADDRESS_SPACE_ACCESS_INTERNAL_H_
21#define SOPC_ADDRESS_SPACE_ACCESS_INTERNAL_H_
22
23#include "sopc_address_space.h"
25
43SOPC_AddressSpaceAccess* SOPC_AddressSpaceAccess_Create(SOPC_AddressSpace* addSpaceRef, bool recordOperations);
44
45/* \brief Get the operations that occurred during AddressSpaceAccess lifetime if recordOperations was set.
46 * It shall be called just prior to ::SOPC_AddressSpaceAccess_Delete and no further operations shall be done.
47 *
48 * \warning It is responsibility of caller to deallocate content and list once called.
49 *
50 * \return A SLinkedList containing prepended SOPC_AddressSpaceAccessOperation* operations since access creation.
51 * NULL if recordOperations == false or operations == NULL, operations becomes NULL after this call
52 */
53SOPC_SLinkedList* SOPC_AddressSpaceAccess_GetOperations(SOPC_AddressSpaceAccess* addSpaceAccess);
54
61void SOPC_AddressSpaceAccess_Delete(SOPC_AddressSpaceAccess** addSpaceAccess);
62
63typedef enum
64{
65 SOPC_ADDSPACE_WRITE, /* param1 = old OpcUa_WriteValue, param2 = new OpcUa_WriteValue * */
66 SOPC_ADDSPACE_CHANGE_NODE /* param1 = bool (true if added, false if removed); param2 = SOPC_NodeId* */
67} SOPC_AddressSpaceAccessOperationEnum;
68
69typedef struct _SOPC_AddressSpaceAccessOperation
70{
71 SOPC_AddressSpaceAccessOperationEnum operation;
72 void* param1;
73 void* param2;
74} SOPC_AddressSpaceAccessOperation;
75
76#endif /* SOPC_ADDRESS_SPACE_ACCESS_INTERNAL_H_ */
struct _SOPC_AddressSpace SOPC_AddressSpace
Definition sopc_address_space.h:68
struct _SOPC_AddressSpaceAccess SOPC_AddressSpaceAccess
AddressSpace Access module provides controlled access to address space. This might be used to access ...
Definition sopc_address_space_access.h:40
struct SOPC_SLinkedList SOPC_SLinkedList
Singly linked list structure.
Definition sopc_singly_linked_list.h:36