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

One-time late binding for a host operation executor. More...

#include <control_executor_slot.hpp>

Public Member Functions

 ControlOperationExecutorSlot ()
 ~ControlOperationExecutorSlot ()
 ControlOperationExecutorSlot (const ControlOperationExecutorSlot &)=delete
ControlOperationExecutorSlot & operator= (const ControlOperationExecutorSlot &)=delete
 ControlOperationExecutorSlot (ControlOperationExecutorSlot &&other) noexcept
ControlOperationExecutorSlot & operator= (ControlOperationExecutorSlot &&other) noexcept
ControlOperationExecutor executor () const
 Returns a lifetime-safe facade over this slot.
bool install (ControlOperationExecutor executor)
 Installs the only executor accepted by this slot.
void close () noexcept
 Permanently closes the slot.

Detailed Description

One-time late binding for a host operation executor.

The callback returned by executor() is safe to give to ControlHostConnection before host enrollment has minted its registration. Until install() succeeds it fails immediately with HostUnavailable. close() permanently disables the slot; later calls fail immediately with Cancelled. An executor can never be replaced once installed.

Constructor & Destructor Documentation

◆ ControlOperationExecutorSlot() [1/3]

pulp::inspect::ControlOperationExecutorSlot::ControlOperationExecutorSlot ( )

◆ ~ControlOperationExecutorSlot()

pulp::inspect::ControlOperationExecutorSlot::~ControlOperationExecutorSlot ( )

◆ ControlOperationExecutorSlot() [2/3]

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

◆ ControlOperationExecutorSlot() [3/3]

pulp::inspect::ControlOperationExecutorSlot::ControlOperationExecutorSlot ( ControlOperationExecutorSlot && other)
noexcept

Member Function Documentation

◆ close()

void pulp::inspect::ControlOperationExecutorSlot::close ( )
noexcept

Permanently closes the slot.

Already-started calls may finish through the executor they acquired before close(); new calls fail immediately.

◆ executor()

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

Returns a lifetime-safe facade over this slot.

Existing facades observe later install() and close() transitions.

◆ install()

bool pulp::inspect::ControlOperationExecutorSlot::install ( ControlOperationExecutor executor)
nodiscard

Installs the only executor accepted by this slot.

Returns false for an empty executor, a repeated install, or a closed/moved-from slot.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

ControlOperationExecutorSlot & pulp::inspect::ControlOperationExecutorSlot::operator= ( ControlOperationExecutorSlot && other)
noexcept

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