Expand description
§taktora-executor
Execution framework on top of iceoryx2. Provides:
ExecutableItem— the unit of work the executor schedules.Executor/Runner— the run loop and a dedicated-thread host.Channel<T>/Service— pub/sub and request-response primitives with paired event services so subscribers wake on send.- Sequential chains and parallel graphs.
- Signal/slot via
signal_slot::pair. - Lifecycle hooks via
Observerand timing hooks viaExecutionMonitor.
See the workspace README.md for a quick-start.
Modules§
- signal_
slot signal_slot::pair— pre-builtExecutableItems wrapping aChannel<T>.
Structs§
- Active
Request - A received request, used to send the response.
- Channel
- Pub/sub channel with a paired event service.
- Client
- Client side of a
Service<Req, Resp>. Sends requests and receives responses. - Conditional
- Conditional wrapper produced by
wrap_with_condition. - Context
- Per-invocation context. Borrowed view; not stored across calls.
- Executor
- Top-level executor. One per process is the typical case.
- Executor
Builder - Builder for
Executor. - Executor
Graph Builder - Borrowed wrapper that finalises a
GraphBuilderinto a registered task. - FnItem
- Adapter turning a closure into an
ExecutableItemwith no triggers declared. Useitem_with_triggerswhen triggers are needed. - FnItem
With Triggers - Wrap a pair of closures (
declare,execute) as anExecutableItem. - Graph
Builder - Builder for a graph.
- Notify
Outcome - Outcome of a
Publishersend operation. - Pending
Request - Handle to an in-flight request — receives the matching response(s).
- Publisher
- Pub/sub publisher that auto-notifies the paired event service on every send.
- Runner
- Hosts an
Executoron a dedicated thread. - Runner
Flags - Behaviour flags for
Runner. - Server
- Server side of a
Service<Req, Resp>. Receives requests and sends responses. - Service
- Request/response service with two paired event services for wakeup.
- Stoppable
- Shared stop flag passed via
Context::stoppable. - Subscriber
- Pub/sub subscriber. Carries the paired event listener as
Arc<Listener>so the executor can attach it to itsWaitSet. - TaskId
- Identifier for a task added to an
Executor. - Thread
Attributes Non- thread_attrs - Disabled stub. Enable the
thread_attrsfeature for real settings. - Trigger
Declarer - Records trigger intentions. Consumed by the executor at add-time.
- User
Event - Generic user event carried by
Observer::on_send_event. - Vertex
- Opaque handle to a graph vertex. Returned by
GraphBuilder::vertex.
Enums§
- Control
Flow - What the executor should do after an item runs successfully.
- Executor
Error - Top-level error type for the executor.
Constants§
- EVENT_
SUFFIX - Suffix appended to a topic name to form the paired event-service name.
- REQ_
EVENT_ SUFFIX - Suffix appended to a service name to form the request-available event service name.
- RESP_
EVENT_ SUFFIX - Suffix appended to a service name to form the response-available event service name.
Traits§
- Executable
Item - Trait implemented by every unit of work the executor schedules.
- Execution
Monitor - Hook invoked before and after every
executecall. Defaults are no-ops. - Observer
- Lifecycle observer invoked by the executor at well-defined points.
- Payload
- Marker trait for types that can be carried over a
Channel<T>orService<Req, Resp>— i.e., types that areZeroCopySend + Debug + 'static.
Functions§
- item
- Wrap a closure as an
ExecutableItem. - item_
with_ triggers - Wrap a
(declare, execute)pair as anExecutableItem. - wrap_
with_ condition - Wraps
itemso that, on each invocation,cond()runs first. Ifcondreturnsfalse, the wrapper returnsOk(StopChain)anditem.executeis not called.
Type Aliases§
- Execute
Result - Return type of
crate::ExecutableItem::execute. - Item
Error - Type alias for user-supplied item errors. Boxed
dyn Errorso callers can plug in any error type without forcing this crate to know about it. - RawListener
- Listener type the rest of the crate manipulates. Aliased so client code
using
RawListenerkeeps working if iceoryx2 renames its types.