Expand description
CuRuntime is the heart of what copper is running on the robot.
It is exposed to the user via the copper_runtime
macro injecting it as a field in their application struct.
Structs§
- Copper
Context - Just a simple struct to hold the various bits needed to run a Copper application.
- Copper
Lists Manager - Manages the lifecycle of the copper lists and logging.
- CuExecution
Loop - This structure represents a loop in the execution plan. It is used to represent a sequence of Execution units (loop or steps) that are executed multiple times. if loop_count is None, the loop is infinite.
- CuExecution
Step - This structure represents a step in the execution plan.
- CuRuntime
- This is the main structure that will be injected as a member of the Application struct. CT is the tuple of all the tasks in order of execution. CL is the type of the copper list, representing the input/output messages for all the tasks.
- KeyFrame
- A KeyFrame is recording a snapshot of the tasks state before a given copperlist. It is a double encapsulation: this one recording the culistid and another even in bincode in the serialized_tasks.
- KeyFrames
Manager - Manages the frozen tasks state and logging.
Enums§
- CuExecution
Unit - This structure represents a step in the execution plan.
- CuTask
Type - Copper tasks can be of 3 types:
Functions§
- compute_
runtime_ plan - This is the main heuristics to compute an execution plan at compilation time. TODO(gbin): Make that heuristic pluggable.
- find_
task_ type_ for_ id