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 Subsystems 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 Subsystems 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
- A wrapping type for messages.
- Watermark to track the received signals.
- An asynchronous subsystem task..
- A running instance of some
Subsystem. - Set of readouts of the
Meters of a subsystem. - Collection of meters related to a subsystem.
- A future that wraps another future with a
Delayallowing for time-limited futures.
Enums
- A message type that a subsystem receives from an orchestra. It wraps signals from an orchestra and messages that are circulating between subsystems.
- An error type that describes faults that may happen
- A type of messages that are sent from a
Subsystemto the declared orchestra.
Traits
- A trait to support the origin annotation such that errors across subsystems can be easier tracked.
- A helper trait to map a subsystem to smth. else.
- A spawner
- Sender end of a channel to interface with a subsystem.
- Extends
Futureto allow time-limited futures.
Functions
- Create a packet from its parts.
- A functor to specify strategy of the channels selection in the
SubsystemIncomingMessages
Type Definitions
- Alias for a result with error type
OrchestraError. - Incoming messages from both the bounded and unbounded channel.