uatools 1.0.0-pre2
 
Loading...
Searching...
No Matches
eso::uatools::OpcuaConnection Struct Reference

Shared OPC UA session (one per endpoint+username). More...

Public Member Functions

 ~OpcuaConnection ()
 

Public Attributes

std::string endpoint
 
std::string username
 
std::string password
 
std::string key
 
TicketMutex mutex
 
UA_Client * ua_client {nullptr}
 
std::atomic< bool > tearing_down {false}
 
UA_Logger sdk_logger {}
 
SdkLogContext sdk_log_ctx {}
 
UA_UInt32 subscription_id {0}
 
std::map< fnd::Address, MonitorEntrymonitors
 
std::mutex state_mutex
 
std::vector< StateObserver * > observers
 
fnd::ConnectionState last_collective_state
 
std::atomic< bool > disconnect_requested {false}
 
std::thread iterator_thread
 
std::atomic< bool > iterator_running {false}
 
std::mutex notif_mutex
 
std::condition_variable notif_cv
 
std::deque< std::pair< fnd::Notification, fnd::SubscriptionHandler > > notif_queue
 
std::thread dispatch_thread
 
std::atomic< bool > dispatch_running {false}
 
std::atomic< std::uint64_t > notif_drops {0}
 
ReconnectPolicy reconnect_policy
 
std::atomic< bool > reconnect_requested {false}
 
std::atomic< bool > reconnect_giving_up {false}
 

Static Public Attributes

static constexpr std::size_t dispatch_queue_max {4096}
 

Detailed Description

Shared OPC UA session (one per endpoint+username).

Owns the UA_Client*, iterator thread, subscription state, and the set of Client::Impls currently attached to it. Created via OpcuaConnectionRegistry::Acquire(); destroyed when the last shared_ptr reference drops.

Constructor & Destructor Documentation

◆ ~OpcuaConnection()

eso::uatools::OpcuaConnection::~OpcuaConnection ( )
inline

Member Data Documentation

◆ disconnect_requested

std::atomic<bool> eso::uatools::OpcuaConnection::disconnect_requested {false}

◆ dispatch_queue_max

std::size_t eso::uatools::OpcuaConnection::dispatch_queue_max {4096}
staticconstexpr

◆ dispatch_running

std::atomic<bool> eso::uatools::OpcuaConnection::dispatch_running {false}

◆ dispatch_thread

std::thread eso::uatools::OpcuaConnection::dispatch_thread

◆ endpoint

std::string eso::uatools::OpcuaConnection::endpoint

◆ iterator_running

std::atomic<bool> eso::uatools::OpcuaConnection::iterator_running {false}

◆ iterator_thread

std::thread eso::uatools::OpcuaConnection::iterator_thread

◆ key

std::string eso::uatools::OpcuaConnection::key

◆ last_collective_state

fnd::ConnectionState eso::uatools::OpcuaConnection::last_collective_state
Initial value:
{
fnd::ConnectionState::Disconnected}

◆ monitors

std::map<fnd::Address, MonitorEntry> eso::uatools::OpcuaConnection::monitors

◆ mutex

TicketMutex eso::uatools::OpcuaConnection::mutex
mutable

◆ notif_cv

std::condition_variable eso::uatools::OpcuaConnection::notif_cv

◆ notif_drops

std::atomic<std::uint64_t> eso::uatools::OpcuaConnection::notif_drops {0}

◆ notif_mutex

std::mutex eso::uatools::OpcuaConnection::notif_mutex

◆ notif_queue

std::deque< std::pair<fnd::Notification, fnd::SubscriptionHandler> > eso::uatools::OpcuaConnection::notif_queue

◆ observers

std::vector<StateObserver*> eso::uatools::OpcuaConnection::observers

◆ password

std::string eso::uatools::OpcuaConnection::password

◆ reconnect_giving_up

std::atomic<bool> eso::uatools::OpcuaConnection::reconnect_giving_up {false}

◆ reconnect_policy

ReconnectPolicy eso::uatools::OpcuaConnection::reconnect_policy

◆ reconnect_requested

std::atomic<bool> eso::uatools::OpcuaConnection::reconnect_requested {false}

◆ sdk_log_ctx

SdkLogContext eso::uatools::OpcuaConnection::sdk_log_ctx {}

◆ sdk_logger

UA_Logger eso::uatools::OpcuaConnection::sdk_logger {}

◆ state_mutex

std::mutex eso::uatools::OpcuaConnection::state_mutex
mutable

◆ subscription_id

UA_UInt32 eso::uatools::OpcuaConnection::subscription_id {0}

◆ tearing_down

std::atomic<bool> eso::uatools::OpcuaConnection::tearing_down {false}

◆ ua_client

UA_Client* eso::uatools::OpcuaConnection::ua_client {nullptr}

◆ username

std::string eso::uatools::OpcuaConnection::username

The documentation for this struct was generated from the following file: