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. | |
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.
| pulp::inspect::ControlOperationExecutorSlot::ControlOperationExecutorSlot | ( | ) |
| pulp::inspect::ControlOperationExecutorSlot::~ControlOperationExecutorSlot | ( | ) |
|
delete |
|
noexcept |
|
noexcept |
Permanently closes the slot.
Already-started calls may finish through the executor they acquired before close(); new calls fail immediately.
| ControlOperationExecutor pulp::inspect::ControlOperationExecutorSlot::executor | ( | ) | const |
|
nodiscard |
Installs the only executor accepted by this slot.
Returns false for an empty executor, a repeated install, or a closed/moved-from slot.
|
delete |
|
noexcept |