Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
control_host_connection.hpp
Go to the documentation of this file.
1#pragma once
2
5
6#include <chrono>
7#include <cstddef>
8#include <filesystem>
9#include <functional>
10#include <memory>
11#include <string>
12#include <string_view>
13
14namespace pulp::inspect {
15
17 std::filesystem::path endpoint_path;
19 std::chrono::milliseconds connect_timeout = std::chrono::seconds(3);
20 std::chrono::milliseconds write_timeout = std::chrono::seconds(3);
21 std::chrono::milliseconds frame_read_timeout = std::chrono::seconds(3);
23 std::function<void(std::string_view authority_id, std::string_view reason)> authority_ended;
24 std::function<void()> disconnected;
25};
26
33 public:
36
39
40 bool connect();
41 ControlHostOpenResult open_host(std::string_view admission_id,
42 std::chrono::milliseconds timeout = std::chrono::seconds(3));
44 open_host_enrollment(std::string_view enrollment_id,
45 std::chrono::milliseconds timeout = std::chrono::seconds(3));
47 mark_executor_ready(std::chrono::milliseconds timeout = std::chrono::seconds(3));
48 bool heartbeat(std::chrono::milliseconds timeout = std::chrono::seconds(3));
49 void disconnect() noexcept;
50
51 bool is_connected() const;
52 bool is_host_open() const;
53 std::string last_error_code() const;
54 std::string last_error_explanation() const;
55
56 private:
57 struct Impl;
58 std::shared_ptr<Impl> impl_;
59};
60
61} // namespace pulp::inspect
std::string last_error_explanation() const
bool heartbeat(std::chrono::milliseconds timeout=std::chrono::seconds(3))
ControlHostConnection(ControlHostConnectionConfig config, ControlOperationExecutor executor)
ControlHostOpenResult open_host_enrollment(std::string_view enrollment_id, std::chrono::milliseconds timeout=std::chrono::seconds(3))
ControlHostConnection & operator=(const ControlHostConnection &)=delete
ControlHostOpenResult open_host(std::string_view admission_id, std::chrono::milliseconds timeout=std::chrono::seconds(3))
ControlHostReadyResult mark_executor_ready(std::chrono::milliseconds timeout=std::chrono::seconds(3))
ControlHostConnection(const ControlHostConnection &)=delete
Definition agent_context.hpp:7
std::function< ControlExecutionOutcome( const ControlAdmissionPlan &, const ControlRequestEnvelope &, const ControlExecutionContext &)> ControlOperationExecutor
Trusted in-process adapter contract.
Definition control_execution.hpp:56
STL namespace.
Definition control_host_connection.hpp:16
ControlPeerExpectation expected_broker
Definition control_host_connection.hpp:18
std::chrono::milliseconds connect_timeout
Definition control_host_connection.hpp:19
std::chrono::milliseconds frame_read_timeout
Definition control_host_connection.hpp:21
std::filesystem::path endpoint_path
Definition control_host_connection.hpp:17
std::chrono::milliseconds write_timeout
Definition control_host_connection.hpp:20
std::function< void()> disconnected
Definition control_host_connection.hpp:24
std::function< void(std::string_view authority_id, std::string_view reason)> authority_ended
Definition control_host_connection.hpp:23
std::size_t maximum_queued_executions
Definition control_host_connection.hpp:22
Definition control_protocol.hpp:166
Definition control_protocol.hpp:188
Exact broker-owned peer expectation.
Definition control_peer.hpp:12