36#ifndef _EXECUTOR_CALLABLEFLOW_HXX_
37#define _EXECUTOR_CALLABLEFLOW_HXX_
86 return this->
message() !=
nullptr;
120template<
class T,
typename... Args>
124 b->data()->reset(std::forward<Args>(args)...);
125 b->data()->done.reset(&n);
126 flow->send(b->ref());
AutoReleaseBuffer< T > BufferPtr
Smart pointer for buffers.
BufferPtr< T > invoke_flow(FlowInterface< Buffer< T > > *flow, Args &&... args)
Helper function for testing flow invocations.
#define STATE(_fn)
Turns a function name into an argument to be supplied to functions expecting a state.
A BarrierNotifiable allows to create a number of child Notifiable and wait for all of them to finish.
Base class for all QMember types that hold data in an expandable format.
Action wait_done()
Terminates the flow and returns the request buffer to the caller with an error code of OK (zero).
CallableFlow(Service *s)
Creates a callable flow.
Action return_ok()
Terminates the flow and returns the request buffer to the caller with an error code of OK (zero).
Action wait_and_return_ok()
Waits to be notified before moving onto the next state for termination.
Action return_with_error(int error)
Terminates the flow and returns the request buffer to the caller with an specific error code.
Abstract class for message recipients.
Collection of related state machines that pend on incoming messages.
Return type for a state flow callback.
State flow with a given typed input queue.
A Notifiable for synchronously waiting for a notification.
void wait_for_notification()
Blocks the current thread until the notification is delivered.
void return_buffer()
For state flows that are operated using invoke_subflow_and_wait this is a way to hand back the buffer...
All callable flow request objects have to derive from this struct.
void reset_base()
Call this from all instances of reset(...).
int resultCode
If high bits are zero, this is a 16-bit OpenLCB result code.
BarrierNotifiable done
Used internally by the invoke_subflow mechanism of StateFlow to notify the calling flow upon completi...