address_space.h
Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 #pragma once
00012 
00013 #include <opc/ua/event.h>
00014 #include <opc/ua/services/attributes.h>
00015 #include <opc/ua/services/node_management.h>
00016 #include <opc/ua/services/view.h>
00017 #include <opc/ua/services/subscriptions.h>
00018 
00019 
00020 namespace OpcUa
00021 {
00022   namespace Server
00023   {
00024 
00025     typedef void DataChangeCallback(const NodeId& node, AttributeId attribute, DataValue);
00026 
00027     class AddressSpace
00028       : public ViewServices
00029       , public AttributeServices
00030       , public NodeManagementServices
00031     {
00032     public:
00033       DEFINE_CLASS_POINTERS(AddressSpace);
00034       
00035       //Server side methods
00036       virtual uint32_t AddDataChangeCallback(const NodeId& node, AttributeId attribute, std::function<DataChangeCallback> callback) = 0;
00037       virtual void DeleteDataChangeCallback(uint32_t clienthandle) = 0;
00038       virtual StatusCode SetValueCallback(const NodeId& node, AttributeId attribute, std::function<DataValue(void)> callback) = 0;
00039       //FIXME : SHould we also expose SetValue and GetValue on server side? then we need to lock them ...
00040     };
00041 
00042     AddressSpace::UniquePtr CreateAddressSpace(bool debug);
00043 
00044   } // namespace UaServer
00045 } // nmespace OpcUa


ros_opcua_impl_freeopcua
Author(s): Denis Štogl
autogenerated on Sat Jun 8 2019 18:24:39