Dormant broker-to-host route selector. More...
#include <control_host_router.hpp>
Public Types | |
| using | ConnectionGeneration = std::uint64_t |
| using | Sender = std::function<bool(const ControlEnvelope&)> |
Public Member Functions | |
| ControlHostRouter () | |
| ~ControlHostRouter () | |
| ControlHostRouter (const ControlHostRouter &)=delete | |
| ControlHostRouter & | operator= (const ControlHostRouter &)=delete |
| bool | attach (const ControlRegistrationId ®istration_id, ConnectionGeneration connection_generation, Sender sender) |
| bool | attach_slot (const ControlRegistrationId ®istration_id, ConnectionGeneration connection_generation, std::string instance_id, std::string instance_generation, Sender sender) |
| Attach one exact Pulp-host slot. | |
| void | detach (const ControlRegistrationId ®istration_id, ConnectionGeneration connection_generation) noexcept |
| bool | connected (const ControlRegistrationId ®istration_id) const |
| void | end_authority (const ControlClientId &client_id, const ControlRegistrationId ®istration_id, const ControlGrantId &grant_id, std::string_view reason) noexcept |
| Ends every opaque authority projection matching the supplied broker identity filter and notifies the exact attached host. | |
| bool | receive (const ControlRegistrationId ®istration_id, ConnectionGeneration connection_generation, const ControlEnvelope &envelope) |
| Accepts only host-to-broker progress and completion frames for the exact attached registration generation. | |
| ControlOperationExecutor | executor () const |
| void | stop () noexcept |
Dormant broker-to-host route selector.
It owns connection liveness and correlation only; broker identity, grants, admission, receipts, artifacts, and settlement remain with ControlBroker and ControlService.
| using pulp::inspect::ControlHostRouter::ConnectionGeneration = std::uint64_t |
| using pulp::inspect::ControlHostRouter::Sender = std::function<bool(const ControlEnvelope&)> |
| pulp::inspect::ControlHostRouter::ControlHostRouter | ( | ) |
| pulp::inspect::ControlHostRouter::~ControlHostRouter | ( | ) |
|
delete |
| bool pulp::inspect::ControlHostRouter::attach | ( | const ControlRegistrationId & | registration_id, |
| ConnectionGeneration | connection_generation, | ||
| Sender | sender ) |
| bool pulp::inspect::ControlHostRouter::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.
The immutable instance identity and process/slot generation are checked again at dispatch, so unloading and recreating a slot cannot retarget an admitted operation.
| bool pulp::inspect::ControlHostRouter::connected | ( | const ControlRegistrationId & | registration_id | ) | const |
|
noexcept |
|
noexcept |
Ends every opaque authority projection matching the supplied broker identity filter and notifies the exact attached host.
Empty filters are wildcards. Raw client/grant IDs never cross the host carrier.
| ControlOperationExecutor pulp::inspect::ControlHostRouter::executor | ( | ) | const |
|
delete |
| bool pulp::inspect::ControlHostRouter::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 generation.
Other directions fail closed.
|
noexcept |