uatools 1.0.0
 
Loading...
Searching...
No Matches
client.hpp
Go to the documentation of this file.
1
39
40#pragma once
41
42#include <memory>
43
44#include <ifw/fnd/defs/iCommAdapter.hpp>
45
46namespace eso::uatools {
47
57 class Client final : public ifw::fnd::defs::ICommAdapter {
58 public:
59 Client();
60 ~Client() override;
61
62 // Non-copyable, non-movable: a connection is a unique resource.
63 Client(const Client&) = delete;
64 Client& operator=(const Client&) = delete;
65 Client(Client&&) = delete;
66 Client& operator=(Client&&) = delete;
67
68 // ----- ICommAdapter contract -----
69
70 ifw::fnd::defs::Capabilities GetCapabilities() const override;
71
72 // Lifecycle
73 ifw::fnd::defs::Result
74 Configure(const ifw::fnd::defs::ConnectionOptions& options) override;
75 ifw::fnd::defs::Result Connect() override;
76 ifw::fnd::defs::Result Disconnect() override;
77 ifw::fnd::defs::ConnectionStatus GetConnectionStatus() const override;
78 bool IsConnected() const override;
79
80 ifw::fnd::defs::RegistrationToken
82 ifw::fnd::defs::ConnectionStateHandler handler) override;
83
84 // Synchronous data plane
85 ifw::fnd::defs::DiscoverResult
86 Discover(const ifw::fnd::defs::DiscoverRequest& request) override;
87 ifw::fnd::defs::BrowseResult
88 Browse(const ifw::fnd::defs::BrowseRequest& request) override;
89 ifw::fnd::defs::ReadResult
90 Read(const ifw::fnd::defs::ReadRequest& request) override;
91 ifw::fnd::defs::WriteResult
92 Write(const ifw::fnd::defs::WriteRequest& request) override;
93 ifw::fnd::defs::CallResult
94 Call(const ifw::fnd::defs::CallRequest& request) override;
95
96 // Pub / Sub
97 ifw::fnd::defs::SubscribeResult
98 Subscribe(const std::vector<ifw::fnd::defs::Address>& nodes,
99 ifw::fnd::defs::SubscriptionHandler handler,
100 const ifw::fnd::defs::SubscribeOpts& opts = {}) override;
101 ifw::fnd::defs::UnsubscribeResult
102 Unsubscribe(const std::vector<ifw::fnd::defs::Address>& nodes) override;
103 ifw::fnd::defs::Result UnsubscribeAll() override;
104
105 // ----- ualib-specific convenience methods -----
106 //
107 // These are NOT part of ICommAdapter — they are OPC UA-flavoured
108 // helpers exposed for callers that hold a concrete `Client&`.
109
117 struct DataTypeInfo : ifw::fnd::defs::Result {
118 std::string name;
119 };
120
127 DataTypeInfo ReadDataType(const ifw::fnd::defs::Address& node);
128
129 // PIMPL: hides all open62541 types from the public header.
130 // The struct itself is forward-declared here (definition lives
131 // in ualib.cpp) so its members remain hidden — but the type
132 // name needs to be reachable from file-scope helpers in the
133 // implementation, hence `public` rather than `private`.
134 struct Impl;
135
136 private:
137 std::unique_ptr<Impl> m_impl;
138 };
139
140} // namespace eso::uatools
ifw::fnd::defs::UnsubscribeResult Unsubscribe(const std::vector< ifw::fnd::defs::Address > &nodes) override
Definition ualib.cpp:2817
ifw::fnd::defs::Result Disconnect() override
Definition ualib.cpp:1660
ifw::fnd::defs::BrowseResult Browse(const ifw::fnd::defs::BrowseRequest &request) override
Definition ualib.cpp:2214
ifw::fnd::defs::RegistrationToken SetConnectionStateHandler(ifw::fnd::defs::ConnectionStateHandler handler) override
Definition ualib.cpp:1732
~Client() override
Definition ualib.cpp:1453
ifw::fnd::defs::Result UnsubscribeAll() override
Definition ualib.cpp:2901
Client()
Definition ualib.cpp:1448
ifw::fnd::defs::Result Configure(const ifw::fnd::defs::ConnectionOptions &options) override
Definition ualib.cpp:1479
ifw::fnd::defs::DiscoverResult Discover(const ifw::fnd::defs::DiscoverRequest &request) override
Definition ualib.cpp:2043
ifw::fnd::defs::ReadResult Read(const ifw::fnd::defs::ReadRequest &request) override
Definition ualib.cpp:1771
ifw::fnd::defs::SubscribeResult Subscribe(const std::vector< ifw::fnd::defs::Address > &nodes, ifw::fnd::defs::SubscriptionHandler handler, const ifw::fnd::defs::SubscribeOpts &opts={}) override
Definition ualib.cpp:2583
Client & operator=(Client &&)=delete
bool IsConnected() const override
Definition ualib.cpp:1725
Client & operator=(const Client &)=delete
ifw::fnd::defs::WriteResult Write(const ifw::fnd::defs::WriteRequest &request) override
Definition ualib.cpp:1889
Client(const Client &)=delete
ifw::fnd::defs::ConnectionStatus GetConnectionStatus() const override
Definition ualib.cpp:1703
ifw::fnd::defs::Result Connect() override
Definition ualib.cpp:1497
DataTypeInfo ReadDataType(const ifw::fnd::defs::Address &node)
Read the DataType attribute of a node.
Definition ualib.cpp:1971
Client(Client &&)=delete
ifw::fnd::defs::CallResult Call(const ifw::fnd::defs::CallRequest &request) override
Definition ualib.cpp:2402
ifw::fnd::defs::Capabilities GetCapabilities() const override
Definition ualib.cpp:1464
Definition icomm_adapter_generic_v2.hpp:49
Result of a DataType lookup on a node.
Definition client.hpp:117
std::string name
Definition client.hpp:118
Per-Client state.
Definition ualib.cpp:391