dfx 0.1.0
Linux-based dynamic dataflow executor
Loading...
Searching...
No Matches
dfx::Core Namespace Reference

Classes

class  Channel
 Abstract message channel connecting exactly one output port to one input port. More...
class  ControlMessage
 Control-plane message (command + params). More...
class  DataMessage
 Data-plane message containing an owned byte buffer. More...
class  InputPort
 Incoming message endpoint attached to a node. More...
class  Message
 Abstract base class for messages exchanged between nodes. More...
class  MimeType
 MIME type value object. More...
class  Node
 Abstract base class for all nodes in the dfx runtime. More...
class  OutputPort
 Outgoing message endpoint attached to a node. More...
class  Port
 Base class for both input and output ports. More...
class  SPSCChannel
 Bounded SPSC (Single Producer / Single Consumer) channel. More...

Concepts

concept  DerivedFromChannel
 Concept used by dfx::Core::Channel::is() and dfx::Core::Channel::as() to constrain types.
concept  DerivedFromMessage
 Concept used by dfx::Core::Message::is() and dfx::Core::Message::as() to constrain types.
concept  DerivedFromNode
 Concept used by dfx::Core::Node::is() and dfx::Core::Node::as() to constrain types.
concept  DerivedFromPort
 Concept used by dfx::Core::Port::as() to constrain types.

Typedefs

using ChannelPtr = std::shared_ptr<Channel>
 Shared ownership handle for channels.
using MessagePtr = std::unique_ptr<Message>
 Unique ownership handle for messages.
using MimeTypes = std::vector<MimeType>
 Convenience alias for a list of MIME types.
using NodePtr = std::shared_ptr<Node>
 Shared ownership pointer type for Nodes..
using NodeWPtr = std::weak_ptr<Node>
 Weak pointer type for Nodes.

Enumerations

enum class  Kind { Data , Control }
 Port kind (connection domain). More...

Typedef Documentation

◆ ChannelPtr

typedef std::shared_ptr< Channel > dfx::Core::ChannelPtr = std::shared_ptr<Channel>

Shared ownership handle for channels.

◆ MessagePtr

typedef std::unique_ptr< Message > dfx::Core::MessagePtr = std::unique_ptr<Message>

Unique ownership handle for messages.

◆ MimeTypes

using dfx::Core::MimeTypes = std::vector<MimeType>

Convenience alias for a list of MIME types.

◆ NodePtr

typedef std::shared_ptr< Node > dfx::Core::NodePtr = std::shared_ptr<Node>

Shared ownership pointer type for Nodes..

◆ NodeWPtr

typedef std::weak_ptr< Node > dfx::Core::NodeWPtr = std::weak_ptr<Node>

Weak pointer type for Nodes.

Enumeration Type Documentation

◆ Kind

enum class dfx::Core::Kind
strong

Port kind (connection domain).

A port kind is a hard compatibility constraint:

In other words, each kind defines a distinct connectivity “network”.

Note
Kind is orthogonal to mime types. Even if mime types are compatible, ports with different kinds must not be linked.
Enumerator
Data 

Data-plane ports.

Used for regular message payloads flowing through the user graph. Typical examples: JSON, binary blobs, text, audio frames, etc.

Control 

Control-plane ports.

Used for runtime control messages (commands, state changes, orchestration signals, etc.). These connections are separate from data connections to avoid cross-contamination.