Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
control_host_router.hpp
Go to the documentation of this file.
1#pragma once
2
4
5#include <cstdint>
6#include <functional>
7#include <memory>
8#include <string_view>
9
10namespace pulp::inspect {
11
16 public:
17 using ConnectionGeneration = std::uint64_t;
18 using Sender = std::function<bool(const ControlEnvelope&)>;
19
24
25 bool attach(const ControlRegistrationId& registration_id,
26 ConnectionGeneration connection_generation, Sender sender);
30 bool attach_slot(const ControlRegistrationId& registration_id,
31 ConnectionGeneration connection_generation, std::string instance_id,
32 std::string instance_generation, Sender sender);
33 void detach(const ControlRegistrationId& registration_id,
34 ConnectionGeneration connection_generation) noexcept;
35 bool connected(const ControlRegistrationId& registration_id) const;
36
40 void end_authority(const ControlClientId& client_id,
41 const ControlRegistrationId& registration_id,
42 const ControlGrantId& grant_id, std::string_view reason) noexcept;
43
46 bool receive(const ControlRegistrationId& registration_id,
47 ConnectionGeneration connection_generation, const ControlEnvelope& envelope);
48
50 void stop() noexcept;
51
52 private:
53 class Impl;
54 std::shared_ptr<Impl> impl_;
55};
56
57} // namespace pulp::inspect
bool receive(const ControlRegistrationId &registration_id, ConnectionGeneration connection_generation, const ControlEnvelope &envelope)
Accepts only host-to-broker progress and completion frames for the exact attached registration genera...
bool attach(const ControlRegistrationId &registration_id, ConnectionGeneration connection_generation, Sender sender)
bool attach_slot(const ControlRegistrationId &registration_id, ConnectionGeneration connection_generation, std::string instance_id, std::string instance_generation, Sender sender)
Attach one exact Pulp-host slot.
ControlOperationExecutor executor() const
std::uint64_t ConnectionGeneration
Definition control_host_router.hpp:17
void detach(const ControlRegistrationId &registration_id, ConnectionGeneration connection_generation) noexcept
ControlHostRouter & operator=(const ControlHostRouter &)=delete
std::function< bool(const ControlEnvelope &)> Sender
Definition control_host_router.hpp:18
bool connected(const ControlRegistrationId &registration_id) const
void end_authority(const ControlClientId &client_id, const ControlRegistrationId &registration_id, const ControlGrantId &grant_id, std::string_view reason) noexcept
Ends every opaque authority projection matching the supplied broker identity filter and notifies the ...
ControlHostRouter(const ControlHostRouter &)=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_identity.hpp:28
Definition control_protocol.hpp:481
Definition control_grants.hpp:18
Definition control_identity.hpp:36