Transport

TCP transport: connections, acceptors, connectors, and protocol framing.

ua::connection_protocol::Limits

struct

User-facing configuration limits offered during the Hello/ACK handshake.

These are the local side's proposed limits before negotiation. A single maxBufferSize is used symmetrically for both the send and receive buffer in the Hello/ACK exchange. All sizes are in bytes except maxChunkCount, which is a count.

Functions

bool operator==(const Limits &) const =default

Compares two limit sets field by field.

Returns: true when all fields are equal; false otherwise.

Public attributes

uint32_t maxBufferSize

Proposed send/receive buffer size, in bytes.

uint32_t maxMessageSize

Maximum assembled message size, in bytes.

uint32_t maxChunkCount

Maximum number of chunks per message.

Static attributes

constexpr uint32_t defaultBufferSize

Default send/receive buffer size, in bytes.

constexpr uint32_t defaultMaxMessageSize

Default maximum message size, in bytes.

constexpr uint32_t defaultMaxChunkCount

Default maximum number of chunks per message.

ua::connection_protocol::NegotiatedLimits

struct

Effective limits agreed by the Hello/ACK exchange and reported to the SecureChannel layer.

Unlike Limits, the values here are directional: they distinguish the constraints that apply to outgoing traffic from those that apply to incoming traffic, as resolved from the local proposal and the peer's reply. Size fields are in bytes; chunk-count fields are counts. A value of 0 in a maximum field means "no limit".

Functions

bool operator==(const NegotiatedLimits &) const =default

Compares two negotiated limit sets field by field.

Returns: true when all fields are equal; false otherwise.

Public attributes

uint32_t sendBufferSize

Negotiated outgoing buffer size, in bytes.

uint32_t receiveBufferSize

Negotiated incoming buffer size, in bytes.

uint32_t sendMaxMessageSize

Peer's limit on outgoing message size, in bytes (0 = no limit).

uint32_t sendMaxChunkCount

Peer's limit on outgoing chunk count (0 = no limit).

uint32_t recvMaxMessageSize

Local limit on incoming message size, in bytes (0 = no limit).

uint32_t recvMaxChunkCount

Local limit on incoming chunk count (0 = no limit).

uint32_t helloProtocolVersion

ProtocolVersion the client's Hello named.

ua::transport::BindAddress

struct

A local address a transport binds to in order to accept connections.

Pairs the transport profile with the profile-specific address string the transport listens on (for the default UA-TCP profile, an opc.tcp:// endpoint URL). A value type with no ownership or threading semantics.

Public attributes

TransportProfileId transportProfileId

Transport profile the address is interpreted under; selects how address is parsed.

std::string address

Profile-specific listen address (e.g. an opc.tcp:// URL for the UA-TCP profile).

ua::transport::EndpointUrl

class

An OPC UA endpoint URL (e.g.

opc.tcp://host:4840/path).

A thin value wrapper around the URL string that offers a minimal, transport-agnostic format check. It does not parse or validate the URL against any specific transport's grammar.

Functions

EndpointUrl()=default

Constructs an empty endpoint URL.

EndpointUrl(std::string url)

Constructs an endpoint URL wrapping the given string.

  • url (std::string) - The endpoint URL; taken by value and moved into storage. Not validated.
const std::string & str() const

Returns the wrapped URL string.

Returns: Reference to the URL, valid for the lifetime of this object.

bool has_basic_format() const

Reports whether the URL has a plausible scheme-bearing shape.

Returns: true if the URL is non-empty and contains ://; otherwise false.

Enumerations

ua::FatalCloseDisposition

enum

What a client-role connection protocol has done with the transport when it reports a fatal error (the third argument of ua::connection_protocol::ErrorCallback).

  • TransportClosed - The transport is closed or closing and nothing more can be written: the handshake had not completed, the socket failed, or the server sent ERR.
  • AwaitingClose - The transport is still writable and its reads have stopped.

Was this page helpful?