Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::inspect::ControlClientConnection Class Referencefinal

Concrete OS-local transport for one authenticated control session. More...

#include <control_client_connection.hpp>

Public Types

using ProgressSink = std::function<void(const ControlProgressEnvelope&)>

Public Member Functions

 ControlClientConnection (ControlClientConnectionConfig config)
 ~ControlClientConnection () override
 ControlClientConnection (const ControlClientConnection &)=delete
ControlClientConnection & operator= (const ControlClientConnection &)=delete
bool connect ()
ControlSessionOpenResult open_session (std::string_view admission_id, std::chrono::milliseconds timeout=std::chrono::seconds(3))
ControlManagementResult manage (std::string_view command, std::string_view params_json="{}", std::chrono::milliseconds timeout=std::chrono::seconds(3))
void disconnect () noexcept
bool is_connected () const
bool is_session_open () const
std::string last_error_code () const
std::string last_error_explanation () const
void set_progress_sink (ProgressSink sink)
ControlTransportDispatchResult dispatch (std::string_view encoded_envelope, std::chrono::milliseconds timeout) override
ControlArtifactReadResult read_artifact (std::string_view artifact_id, std::uint64_t offset, std::size_t maximum_bytes, std::chrono::milliseconds timeout) override

Friends

ControlBrokerHealthProbeResult probe_control_broker (const ControlHealthProbeConfig &config, std::chrono::milliseconds response_timeout=std::chrono::seconds(3))
 Performs an observational local carrier probe without opening a control session.

Detailed Description

Concrete OS-local transport for one authenticated control session.

The expected broker is verified from kernel-observed peer credentials before any session or authority message is sent. Calls are synchronous and permit one request in flight. The progress sink runs on the carrier read thread and therefore must be bounded, nonblocking, and exception-free.

Member Typedef Documentation

◆ ProgressSink

Constructor & Destructor Documentation

◆ ControlClientConnection() [1/2]

pulp::inspect::ControlClientConnection::ControlClientConnection ( ControlClientConnectionConfig config)
explicit

◆ ~ControlClientConnection()

pulp::inspect::ControlClientConnection::~ControlClientConnection ( )
override

◆ ControlClientConnection() [2/2]

pulp::inspect::ControlClientConnection::ControlClientConnection ( const ControlClientConnection & )
delete

Member Function Documentation

◆ connect()

bool pulp::inspect::ControlClientConnection::connect ( )

◆ disconnect()

void pulp::inspect::ControlClientConnection::disconnect ( )
noexcept

◆ dispatch()

ControlTransportDispatchResult pulp::inspect::ControlClientConnection::dispatch ( std::string_view encoded_envelope,
std::chrono::milliseconds timeout )
overridevirtual

◆ is_connected()

bool pulp::inspect::ControlClientConnection::is_connected ( ) const

◆ is_session_open()

bool pulp::inspect::ControlClientConnection::is_session_open ( ) const

◆ last_error_code()

std::string pulp::inspect::ControlClientConnection::last_error_code ( ) const

◆ last_error_explanation()

std::string pulp::inspect::ControlClientConnection::last_error_explanation ( ) const

◆ manage()

ControlManagementResult pulp::inspect::ControlClientConnection::manage ( std::string_view command,
std::string_view params_json = "{}",
std::chrono::milliseconds timeout = std::chrono::seconds(3) )

◆ open_session()

ControlSessionOpenResult pulp::inspect::ControlClientConnection::open_session ( std::string_view admission_id,
std::chrono::milliseconds timeout = std::chrono::seconds(3) )

◆ operator=()

ControlClientConnection & pulp::inspect::ControlClientConnection::operator= ( const ControlClientConnection & )
delete

◆ read_artifact()

ControlArtifactReadResult pulp::inspect::ControlClientConnection::read_artifact ( std::string_view artifact_id,
std::uint64_t offset,
std::size_t maximum_bytes,
std::chrono::milliseconds timeout )
overridevirtual

◆ set_progress_sink()

void pulp::inspect::ControlClientConnection::set_progress_sink ( ProgressSink sink)

◆ probe_control_broker

ControlBrokerHealthProbeResult probe_control_broker ( const ControlHealthProbeConfig & config,
std::chrono::milliseconds response_timeout = std::chrono::seconds(3) )
friend

Performs an observational local carrier probe without opening a control session.

Without an expected broker identity the strongest possible result is ReachableUnverified, and no health request is sent.


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