Expand description
This module defines the configuration of the copper runtime. The configuration is a directed graph where nodes are tasks and edges are connections between tasks. The configuration is serialized in the RON format. The configuration is used to generate the runtime code at compile time.
Re-exportsΒ§
ModulesΒ§
- imp π
MacrosΒ§
StructsΒ§
- Anytime
Config - Refinement policy for an anytime node (
anytime:on a task). - Bridge
Config - Declarative definition of a bridge component with a list of channels.
- Cnx
- This represents a connection between 2 tasks (nodes) in the configuration graph.
- Component
Config - This is the configuration of a component (like a task config or a monitoring config):w It is a map of key-value pairs. It is given to the new method of the task implementation.
- Config
Error - CuConfig
- CuConfig is the programmatic representation of the configuration graph. It is a directed graph where nodes are tasks and edges are connections between tasks.
- CuConfig
Representation π - This is the main Copper configuration representation.
- CuGraph
- Includes
Config - Includes are used to include other configuration files.
- Instance
Config πOverrides Representation - Instance
Config SetOperation - One path-based config overlay applied to a parsed local Copper config.
- Logging
Codec Spec - Logging
Config - Missions
Config - Missions are used to generate alternative DAGs within the same configuration.
- Monitor
Config - Multi
Copper πChannel Contract - Multi
Copper Config - Strict umbrella configuration describing multiple Copper subsystems and their explicit links.
- Multi
Copper πConfig Representation - Multi
Copper Endpoint - Typed endpoint reference used by validated multi-Copper interconnects.
- Multi
Copper Interconnect - Validated explicit interconnect between two subsystem endpoints.
- Multi
Copper Interconnect Config - One explicit interconnect between two subsystem bridge channels.
- Multi
Copper Subsystem - Validated subsystem entry with its compiler-assigned numeric subsystem code and parsed local Copper config.
- Multi
Copper Subsystem Config - One subsystem participating in a multi-Copper deployment.
- Node
- A node in the configuration graph. A node represents a Task in the system Graph.
- Node
Logging - Configuration for logging in the node.
- Planner
Config - Selects the planner that orders the steps of every mission graph, plus its
config. Mirrors
MonitorConfig:typenames aCuPlannerimplementation. Copper shipscu29::planner::Linearity(the default when this section is absent) andcu29::planner::Pinned; any other type is an out-of-tree planner resolved at build time bycu29::planner::emit_planin the applicationβsbuild.rs. - Port
Lookup π - Render
Connection π - Render
Node π - Render
Section π - Render
Topology π - Resource
Bundle Config - Declarative definition of a resource bundle.
- Runtime
Config - Serialized
Cnx π - Serialized representation of a connection used for the RON config.
- Thread
Pool Config - Declarative definition of a single thread pool.
- Value
- Wrapper around the ron::Value to allow for custom serialization.
EnumsΒ§
- Background
Config - How a task is backgrounded.
- Bridge
Channel Config Representation - Directional mapping for bridge channels.
- Config
Graphs - Config
Predicate - A compile-time predicate controlling whether a configuration fragment is included.
- CuDirection
- A simple wrapper enum for
petgraph::Direction, designed to be converted into it via theFromtrait. - Endpoint
Role π - Flavor
- Distinguishes regular tasks from bridge nodes so downstream stages can apply bridge-specific instantiation rules.
- Handle
Content - Logging policy for a
CuHandleβs payload content. - Instance
Config πTarget Kind - Multi
Copper πChannel Direction - OnError
- What to do when a poolβs affinity or scheduling request cannot be applied
(for example, setting a real-time priority without
CAP_SYS_NICE). - OneOr
Many πMonitor Config - Scheduling
Policy - Scheduling policy applied to every worker thread of a
ThreadPoolConfig. - Task
Kind - Declares which Copper task trait a task node implements.
ConstantsΒ§
- DEFAULT_
BACKGROUND_ POOL - Default thread pool name used by
background: truetasks. - DEFAULT_
KEYFRAME_ INTERVAL - DEFAULT_
MISSION_ ID - MAX_
NICE - Highest valid niceness for
SchedulingPolicy::Nice(least favorable). - MAX_
RATE_ TARGET_ HZ - Maximum representable Copper runtime rate target in whole Hertz.
- MAX_
RT_ PRIORITY - Largest valid real-time priority for
SchedulingPolicy::Fifo/SchedulingPolicy::RoundRobin. - MIN_
NICE - Lowest valid niceness for
SchedulingPolicy::Nice(most favorable). - MIN_
RT_ PRIORITY - Smallest valid real-time priority for
SchedulingPolicy::Fifo/SchedulingPolicy::RoundRobin. - NC_
ENDPOINT - Special destination endpoint used to mark an output as intentionally not connected.
- RT_POOL
- Reserved thread pool name driving the
parallel-rtexecution engine. Applied to each stage worker at startup; never task-bound nor built as a rayon pool.
FunctionsΒ§
- apply_
bridge_ πnode_ config_ override_ to_ graph - apply_
instance_ πconfig_ set_ operation - apply_
instance_ πoverrides - apply_
instance_ πoverrides_ from_ file - apply_
task_ πconfig_ override_ to_ graph - build_
bridge_ πlookup - build_
config_ πtable - build_
multi_ πbridge_ channel_ contracts - build_
port_ πtable - build_
render_ πtopology - config_
representation_ πto_ config - Convert a CuConfigRepresentation to a CuConfig. Uses the deserialize_impl method and validates the logging configuration.
- default_
as_ πtrue - default_
keyframe_ πinterval - deserialize_
config_ πrepresentation - Shared implementation for deserializing a CuConfigRepresentation into a CuConfig
- deserialize_
constant_ πmodule - deserialize_
monitor_ πconfigs - escape_
dot_ πid - format_
endpoint π - infer_
task_ kind_ for_ id - insert_
bridge_ πnode - is_
default_ πhandle_ content - merge_
component_ πconfig - merge_
connection_ πmissions - mission_
applies π - multi_
channel_ πkey - parse_
config_ πstring - Read a copper configuration from a String. Parse a RON string into a CuConfigRepresentation, using the standard options. Returns an error if the parsing fails.
- parse_
endpoint π - parse_
instance_ πconfig_ overrides_ string - parse_
instance_ πoverride_ target - parse_
multi_ πconfig_ string - parse_
multi_ πendpoint - process_
includes π - Returns a merged CuConfigRepresentation.
- read_
configuration - Read a copper configuration from a file.
- read_
configuration_ πcontent - read_
configuration_ str - read_
configuration_ str_ with_ features - Read a Copper configuration string using the supplied compile-time Cargo features.
- read_
configuration_ with_ features - Read a Copper configuration using the supplied compile-time Cargo features.
- read_
multi_ configuration - Read a strict multi-Copper umbrella configuration from a file.
- read_
multi_ configuration_ str - Read a strict multi-Copper umbrella configuration from a string.
- read_
multi_ configuration_ str_ with_ features - Read a multi-Copper configuration string using the supplied compile-time Cargo features.
- read_
multi_ configuration_ with_ features - Read a multi-Copper configuration using the supplied compile-time Cargo features.
- register_
multi_ πchannel_ msg - register_
nc_ πoutput - resolve_
configuration_ πrepresentation - resolve_
relative_ πconfig_ path - resolve_
task_ kind_ for_ id - ron_
value_ πto_ cu_ value - sanitize_
identifier π - substitute_
parameters π - validate_
anytime_ πgraph - Checks every
anytime:node of one graph: local bounds, regular-task kind, single-input/single-output arity, and the foreground fit-the-period rule (seeCuConfig::validate_anytime_configs). - validate_
bridge_ πchannel - validate_
multi_ πconfig_ representation - validate_
task_ πkind - validate_
thread_ πpools - Validates the declarative thread pool definitions of a runtime config.
Type AliasesΒ§
- NodeId
- NodeId is the unique identifier of a node in the configuration graph for petgraph and the code generation.