21using NodePtr = std::shared_ptr<Node>;
Abstract base class for messages exchanged between nodes.
Definition Message.hpp:76
Abstract base class for all nodes in the dfx runtime.
Definition Node.hpp:91
Outgoing message endpoint attached to a node.
Definition OutputPort.hpp:47
Hook interface invoked around message enqueue in an dfx::Core::Channel.
Definition Delivery.hpp:50
HookResult
Result code controlling pushMessage() behavior.
Definition Delivery.hpp:74
@ Skip
Short-circuit without error (pre: drop message, post: just return success).
Definition Delivery.hpp:76
@ Fail
Short-circuit with error (pre: drop message, post: report failure after enqueue).
Definition Delivery.hpp:77
@ Proceed
Continue normal execution.
Definition Delivery.hpp:75
virtual HookResult postDelivery(Core::NodePtr src, Core::OutputPort const &out, Core::NodePtr dst, Core::InputPort &in)=0
Called after a message has been enqueued into the channel.
virtual HookResult preDelivery(Core::NodePtr src, Core::OutputPort const &out, Core::NodePtr dst, Core::InputPort &in, Core::MessagePtr &message)=0
Called before a message is enqueued into the channel.
Definition Channel.hpp:22
std::unique_ptr< Message > MessagePtr
Unique ownership handle for messages.
Definition Message.hpp:27
std::shared_ptr< Node > NodePtr
Shared ownership pointer type for Nodes..
Definition Node.hpp:61
Definition Delivery.hpp:26