Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
control_client_connection.hpp
Go to the documentation of this file.
1#pragma once
2
5
6#include <chrono>
7#include <filesystem>
8#include <functional>
9#include <memory>
10#include <string>
11#include <string_view>
12
13namespace pulp::inspect {
14
16 std::filesystem::path endpoint_path;
21 std::filesystem::path expected_broker_executable;
22 std::chrono::milliseconds connect_timeout = std::chrono::seconds(3);
23 std::chrono::milliseconds write_timeout = std::chrono::seconds(3);
24 std::chrono::milliseconds frame_read_timeout = std::chrono::seconds(3);
25};
26
34 public:
35 using ProgressSink = std::function<void(const ControlProgressEnvelope&)>;
36
39
42
43 bool connect();
45 open_session(std::string_view admission_id,
46 std::chrono::milliseconds timeout = std::chrono::seconds(3));
47 ControlManagementResult manage(std::string_view command, std::string_view params_json = "{}",
48 std::chrono::milliseconds timeout = std::chrono::seconds(3));
49 void disconnect() noexcept;
50
51 bool is_connected() const;
52 bool is_session_open() const;
53 std::string last_error_code() const;
54 std::string last_error_explanation() const;
55
57
58 ControlTransportDispatchResult dispatch(std::string_view encoded_envelope,
59 std::chrono::milliseconds timeout) override;
60 ControlArtifactReadResult read_artifact(std::string_view artifact_id, std::uint64_t offset,
61 std::size_t maximum_bytes,
62 std::chrono::milliseconds timeout) override;
63
64 private:
66 std::chrono::milliseconds);
67
69 ControlTransportDispatchResult dispatch_probe(const ControlEnvelope& envelope,
70 std::chrono::milliseconds timeout);
71 bool carrier_was_reached() const;
72 bool broker_was_verified() const;
73
74 struct Impl;
75 std::unique_ptr<Impl> impl_;
76};
77
78} // namespace pulp::inspect
ControlTransportDispatchResult dispatch(std::string_view encoded_envelope, std::chrono::milliseconds timeout) override
ControlClientConnection & operator=(const ControlClientConnection &)=delete
ControlManagementResult manage(std::string_view command, std::string_view params_json="{}", std::chrono::milliseconds timeout=std::chrono::seconds(3))
ControlClientConnection(const ControlClientConnection &)=delete
friend ControlBrokerHealthProbeResult probe_control_broker(const ControlHealthProbeConfig &, std::chrono::milliseconds)
Performs an observational local carrier probe without opening a control session.
std::function< void(const ControlProgressEnvelope &)> ProgressSink
Definition control_client_connection.hpp:35
std::string last_error_explanation() const
void set_progress_sink(ProgressSink sink)
ControlClientConnection(ControlClientConnectionConfig config)
ControlSessionOpenResult open_session(std::string_view admission_id, std::chrono::milliseconds timeout=std::chrono::seconds(3))
ControlArtifactReadResult read_artifact(std::string_view artifact_id, std::uint64_t offset, std::size_t maximum_bytes, std::chrono::milliseconds timeout) override
One authenticated, connection-bound capability-control session.
Definition control_client.hpp:33
Definition agent_context.hpp:7
STL namespace.
Definition control_artifacts.hpp:146
Definition control_health.hpp:37
Definition control_client_connection.hpp:15
ControlPeerExpectation expected_broker
Definition control_client_connection.hpp:17
std::chrono::milliseconds frame_read_timeout
Definition control_client_connection.hpp:24
std::chrono::milliseconds connect_timeout
Definition control_client_connection.hpp:22
std::filesystem::path endpoint_path
Definition control_client_connection.hpp:16
std::filesystem::path expected_broker_executable
Optional installed-binary trust anchor.
Definition control_client_connection.hpp:21
std::chrono::milliseconds write_timeout
Definition control_client_connection.hpp:23
Definition control_protocol.hpp:481
Definition control_health.hpp:29
Definition control_protocol.hpp:149
Exact broker-owned peer expectation.
Definition control_peer.hpp:12
A bounded progress observation for one admitted operation.
Definition control_protocol.hpp:109
Definition control_protocol.hpp:127
Definition control_client.hpp:15