Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::inspect::ControlHostRouter Class Reference

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 &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.
void detach (const ControlRegistrationId &registration_id, ConnectionGeneration connection_generation) noexcept
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 exact attached host.
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 generation.
ControlOperationExecutor executor () const
void stop () noexcept

Detailed Description

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.

Member Typedef Documentation

◆ ConnectionGeneration

◆ Sender

using pulp::inspect::ControlHostRouter::Sender = std::function<bool(const ControlEnvelope&)>

Constructor & Destructor Documentation

◆ ControlHostRouter() [1/2]

pulp::inspect::ControlHostRouter::ControlHostRouter ( )

◆ ~ControlHostRouter()

pulp::inspect::ControlHostRouter::~ControlHostRouter ( )

◆ ControlHostRouter() [2/2]

pulp::inspect::ControlHostRouter::ControlHostRouter ( const ControlHostRouter & )
delete

Member Function Documentation

◆ attach()

bool pulp::inspect::ControlHostRouter::attach ( const ControlRegistrationId & registration_id,
ConnectionGeneration connection_generation,
Sender sender )

◆ attach_slot()

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.

◆ connected()

bool pulp::inspect::ControlHostRouter::connected ( const ControlRegistrationId & registration_id) const

◆ detach()

void pulp::inspect::ControlHostRouter::detach ( const ControlRegistrationId & registration_id,
ConnectionGeneration connection_generation )
noexcept

◆ end_authority()

void pulp::inspect::ControlHostRouter::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 exact attached host.

Empty filters are wildcards. Raw client/grant IDs never cross the host carrier.

◆ executor()

ControlOperationExecutor pulp::inspect::ControlHostRouter::executor ( ) const

◆ operator=()

ControlHostRouter & pulp::inspect::ControlHostRouter::operator= ( const ControlHostRouter & )
delete

◆ receive()

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.

◆ stop()

void pulp::inspect::ControlHostRouter::stop ( )
noexcept

The documentation for this class was generated from the following file: