Expand description
§Orchestra
orchestra
provides a global information flow system in reference to system specifc
process tokens.
The token is arbitrary, but is used to notify all Subsystem
s of what is relevant
and what is not, leading to a so called view of active tokens.
An orchestra
is something that allows spawning/stopping and orchestrating
asynchronous tasks as well as establishing a well-defined and easy to use
protocol that the tasks can use to communicate with each other. It is desired
that this protocol is the only way tasks - called Subsystem
s in the orchestra
scope - communicate with each other, but that is not enforced and is the responsibility
of the developer.
The Orchestra
is instantiated with a pre-defined set of Subsystems
that
share the same behavior from Orchestra
’s point of view.
+-----------------------------+
| Orchesta |
+-----------------------------+
................| Orchestra "holds" these and uses |.............
. them to (re)start things .
. .
. +-------------------+ +---------------------+ .
. | Subsystem1 | | Subsystem2 | .
. +-------------------+ +---------------------+ .
. | | .
..................................................................
| |
start() start()
| |
V V
..................| Orchestra "runs" these |......................
. .
. +--------------------+ +---------------------+ .
. | SubsystemInstance1 | <-- bidir --> | SubsystemInstance2 | .
. +--------------------+ +---------------------+ .
. .
..................................................................
Structs§
- High
Priority - High priority.
- Message
Packet - A wrapping type for messages.
- Normal
Priority - Normal priority.
- Signals
Received - Watermark to track the received signals.
- Spawned
Subsystem - An asynchronous subsystem task..
- Subsystem
Instance - A running instance of some
Subsystem
. - Subsystem
Meter Readouts - Set of readouts of the
Meter
s of a subsystem. - Subsystem
Meters - Collection of meters related to a subsystem.
- Timeout
- A future that wraps another future with a
Delay
allowing for time-limited futures.
Enums§
- From
Orchestra - A message type that a subsystem receives from an orchestra. It wraps signals from an orchestra and messages that are circulating between subsystems.
- Orchestra
Error - An error type that describes faults that may happen
- Priority
Level - Priority of messages sending to the individual subsystems. Only for the bounded channel sender.
- ToOrchestra
- A type of messages that are sent from a
Subsystem
to the declared orchestra.
Traits§
- Annotate
Error Origin - A trait to support the origin annotation such that errors across subsystems can be easier tracked.
- MapSubsystem
- A helper trait to map a subsystem to smth. else.
- Priority
- Describes the priority of the message.
- Spawner
- A spawner
- Subsystem
- A trait that describes the
Subsystem
s that can run on theOrchestra
. - Subsystem
Context - A context type that is given to the
Subsystem
upon spawning. It can be used bySubsystem
to communicate with otherSubsystem
s or spawn jobs. - Subsystem
Sender - Sender end of a channel to interface with a subsystem.
- Timeout
Ext - Extends
Future
to allow time-limited futures.
Functions§
- make_
packet - Create a packet from its parts.
- select_
message_ channel_ strategy - A functor to specify strategy of the channels selection in the
SubsystemIncomingMessages
Type Aliases§
- Orchestra
Result - Alias for a result with error type
OrchestraError
. - Subsystem
Incoming Messages - Incoming messages from both the bounded and unbounded channel.