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. | |
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.
| using pulp::inspect::ControlClientConnection::ProgressSink = std::function<void(const ControlProgressEnvelope&)> |
|
explicit |
|
override |
|
delete |
| bool pulp::inspect::ControlClientConnection::connect | ( | ) |
|
noexcept |
|
overridevirtual |
Implements pulp::inspect::ControlClientTransport.
| bool pulp::inspect::ControlClientConnection::is_connected | ( | ) | const |
| bool pulp::inspect::ControlClientConnection::is_session_open | ( | ) | const |
| std::string pulp::inspect::ControlClientConnection::last_error_code | ( | ) | const |
| std::string pulp::inspect::ControlClientConnection::last_error_explanation | ( | ) | const |
| ControlManagementResult pulp::inspect::ControlClientConnection::manage | ( | std::string_view | command, |
| std::string_view | params_json = "{}", | ||
| std::chrono::milliseconds | timeout = std::chrono::seconds(3) ) |
| ControlSessionOpenResult pulp::inspect::ControlClientConnection::open_session | ( | std::string_view | admission_id, |
| std::chrono::milliseconds | timeout = std::chrono::seconds(3) ) |
|
delete |
|
overridevirtual |
Implements pulp::inspect::ControlClientTransport.
| void pulp::inspect::ControlClientConnection::set_progress_sink | ( | ProgressSink | sink | ) |
|
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.