address_space_addon.h
Go to the documentation of this file.
1 
11 
12 #pragma once
13 
15 #include <opc/ua/event.h>
18 #include <opc/ua/services/view.h>
20 
21 namespace OpcUa
22 {
23 namespace Internal
24 {
25 
27  : public Common::Addon
28  , public Server::AddressSpace
29 {
30 public:
32 
34  virtual ~AddressSpaceAddon();
35 
36 public:
37  virtual void Initialize(Common::AddonsManager & addons, const Common::AddonParameters & params);
38  virtual void Stop();
39 
40 public: // NodeManagementServices
41  virtual std::vector<AddNodesResult> AddNodes(const std::vector<AddNodesItem> & items);
42  virtual std::vector<StatusCode> AddReferences(const std::vector<AddReferencesItem> & items);
43 
44 public: // ViewServices
45  virtual std::vector<BrowseResult> Browse(const OpcUa::NodesQuery & query) const;
46  virtual std::vector<BrowseResult> BrowseNext() const;
47  virtual std::vector<BrowsePathResult> TranslateBrowsePathsToNodeIds(const TranslateBrowsePathsParameters & params) const;
48  virtual std::vector<NodeId> RegisterNodes(const std::vector<NodeId> & params) const;
49  virtual void UnregisterNodes(const std::vector<NodeId> & params) const;
50 
51 public: // AttribueServices
52  virtual std::vector<DataValue> Read(const OpcUa::ReadParameters & filter) const;
53  virtual std::vector<StatusCode> Write(const std::vector<OpcUa::WriteValue> & filter);
54 
55 public: // MethodServices
56  virtual std::vector<CallMethodResult> Call(const std::vector<CallMethodRequest> & methodsToCall);
57 
58 public: // Server internal methods
59  virtual uint32_t AddDataChangeCallback(const NodeId & node, AttributeId attribute, std::function<Server::DataChangeCallback> callback);
60  virtual void DeleteDataChangeCallback(uint32_t clienthandle);
61  virtual StatusCode SetValueCallback(const NodeId & node, AttributeId attribute, std::function<DataValue(void)> callback);
62  virtual void SetMethod(const NodeId & node, std::function<std::vector<OpcUa::Variant> (NodeId context, std::vector<OpcUa::Variant> arguments)> callback);
63 
64 private:
65  Common::Logger::SharedPtr Logger;
66  OpcUa::Server::AddressSpace::SharedPtr Registry;
67  std::shared_ptr<OpcUa::Server::ServicesRegistry> InternalServer;
68 };
69 
70 } // namespace UaServer
71 } // namespace OpcUa
virtual void UnregisterNodes(const std::vector< NodeId > &params) const
virtual void DeleteDataChangeCallback(uint32_t clienthandle)
Common::Logger::SharedPtr Logger
virtual std::vector< StatusCode > Write(const std::vector< OpcUa::WriteValue > &filter)
virtual std::vector< DataValue > Read(const OpcUa::ReadParameters &filter) const
virtual void Initialize(Common::AddonsManager &addons, const Common::AddonParameters &params)
initialize addon.
virtual void SetMethod(const NodeId &node, std::function< std::vector< OpcUa::Variant >(NodeId context, std::vector< OpcUa::Variant > arguments)> callback)
virtual std::vector< NodeId > RegisterNodes(const std::vector< NodeId > &params) const
virtual std::vector< BrowsePathResult > TranslateBrowsePathsToNodeIds(const TranslateBrowsePathsParameters &params) const
OpcUa::Server::AddressSpace::SharedPtr Registry
virtual void Stop()
Stopping addon work. After calling this method addon should throw exception on any calls...
virtual std::vector< StatusCode > AddReferences(const std::vector< AddReferencesItem > &items)
std::shared_ptr< OpcUa::Server::ServicesRegistry > InternalServer
virtual uint32_t AddDataChangeCallback(const NodeId &node, AttributeId attribute, std::function< Server::DataChangeCallback > callback)
virtual std::vector< BrowseResult > BrowseNext() const
virtual StatusCode SetValueCallback(const NodeId &node, AttributeId attribute, std::function< DataValue(void)> callback)
virtual std::vector< CallMethodResult > Call(const std::vector< CallMethodRequest > &methodsToCall)
OPC UA Address space part. GNU LGPL.
#define DEFINE_CLASS_POINTERS(ClassName)
Exception declarations GNU LGPL.
virtual std::vector< BrowseResult > Browse(const OpcUa::NodesQuery &query) const
virtual std::vector< AddNodesResult > AddNodes(const std::vector< AddNodesItem > &items)


ros_opcua_impl_freeopcua
Author(s): Denis Štogl
autogenerated on Tue Jan 19 2021 03:06:03