Extractor of contacts' data from result.
Extractor of contacts' data from result.
New methods available on contacts that construct links.
New methods available on contacts that construct links.
Miscellaneous operations with prefixed data.
Miscellaneous operations with prefixed data.
A dictionary of handlers for signals that appear on contacts.
A dictionary of handlers for signals that appear on contacts.
ContactsIndex is used mainly in Distributed systems for obtaining serializable versions of signals (SignalDist).
ContactsIndex is used mainly in Distributed systems for obtaining serializable versions of signals (SignalDist). Every system has lazy val index.
The context for system is a map from state handles to values.
The context for system is a map from state handles to values.
Dynamic system.
Dynamic system. The state is kept inside the system. All complex logic is implemented within receive function. Dynamic system can be added to StaticSystem as a simple component ("black box"). The processing of the dynamic system is done within a single step of the outer system processor.
A class that allows to use Dynamic system in a more comfortable way.
A class that allows to use Dynamic system in a more comfortable way. One can send any data on any input of the dynamic system and the results are kept in output buffer. Occasionally one may read output signals (clearing them out if neccessary).
An extension that adds easy labelling to System builder.
An extension that adds easy labelling to System builder.
DSL methods for creating links between the two given contacts.
DSL methods for creating links between the two given contacts.
Some additional information about the system.
Some additional information about the system. In particular, one may find orphan contacts.
An interface of some object that can collect information about outer interface of a system.
An interface of some object that can collect information about outer interface of a system. Not only it create contact instances, but it usually transforms and collect them.
Enriches arbitrary type with implicit converter to StaticSystem.
Enriches arbitrary type with implicit converter to StaticSystem. Adds a few useful methods.
A runtime component that should be processed with pattern matching.
A runtime component that should be processed with pattern matching.
The most popular runtime component.
The most popular runtime component. Transforms a signal into other signals. This component is not only FlatMap link. It can represent almost any stateless part of a system.
- the actual transformation
The most general processing element.
The most general processing element. Can depend on a few states.
Is very similar to the most generic link — StateFlatMap.
Is very similar to the most generic link — StateFlatMap. This component refers a single stateHandle.
A runtime system is a representation of the system that is reorganized by Contacts and is ready for direct processing of TrellisElement.
A runtime system is a representation of the system that is reorganized by Contacts and is ready for direct processing of TrellisElement.
A generic trait for different signal processing methods.
A generic trait for different signal processing methods. There are two descendants - a tracking one and a simple one. The tracking signal processor keeps track of what signals were produced during processing. The simple one do not save traces. So it requires less memory for processing.
Keeping traces can greatly help with debugging. One may see which signals and processors have lead to the result. It may be worth to save trellis to dot file.
Having a common ancestor for both types of processing is advantageous because there will be no code duplication among processors.
Implementation of SignalProcessing with tracking parent signals in Trace class.
The simplest signal processor.
The simplest signal processor. Corresponds to FlatMap.
An encapsulation of the signal that targets a subsystem's internal contact.
An encapsulation of the signal that targets a subsystem's internal contact.
DSL for constructing systems.
DSL for constructing systems.
This builder supports step-by-step creation of contact system. At the end one must convert it to StaticSystem.
The builder supports the notion of extensions (much like akka actor system extensions). When we need to store additional information during system construction, we may request an extention instance from the builder. The builder creates the singleton instance if it is not available yet and returns it.
The builder is used in BaseTypedSystem as a DSL for system's construction.
An extension that adds some additional state to SystemBuilder.
An extension that adds some additional state to SystemBuilder. It also has an opportunity to adjust the generated StaticSystem via hook #postProcess
ExtensionId for a system builder.
ExtensionId for a system builder. Every extension can be installed only once on the same SystemBuilder. An instance of the extension is created by the extend method.
Implements a system of type T.
Implements a system of type T. Uses external SystemBuilder instance to define internal System's structure.
A function that takes a single signal on input and returns the last trellis element.
A function that takes a single signal on input and returns the last trellis element. This producer does not store managed state in it.
The trace of a signal towards the original one.
The trace of a signal towards the original one. This class is intended for debug purposes. It can also be used in pattern matching and back tracking algorithm.
a list of signals starting from the last produced one and collecting the signals that have lead to the production of the last signal.
a list of processors that have worked for the production of the current signal. The length of the processors list is usually by one shorter than the length of the signals. However if it is a "lost trace" (the one that didn't produce output), then the last processor is added but the signal is not added. Thus the lengths are the same.
A snapshot of a running system at some discrete time moment.
A snapshot of a running system at some discrete time moment.
A function that makes single step (or a few steps) over time.
A function that makes single step (or a few steps) over time.
Another way for system's construction is to define inputs and outputs in a separate class/trait and then enumerate them in system builder: sb.inputs(in1, in2, in3) and sb.outputs(out1, out2)
Another way for system's construction is to define inputs and outputs in a separate class/trait and then enumerate them in system builder: sb.inputs(in1, in2, in3) and sb.outputs(out1, out2)
class MySystemsInterface { val in1 = new Contact[String]("in1") val in2 = new Contact[String]("in2") val out1 = new Contact[String]("out1") }
implicit object MySystemImplementation extends TypedSystemConstructor[T] { def apply(outer:T):StaticSystem = {
} }
The type of a handler that will handle exceptions during signal processing.
The type of a handler that will handle exceptions during signal processing. If the exception is recoverable, then the handler should provide a new Context for further processing. If not recoverable - throw some exception (or rethrow the original one).
Default style for contact.
Default style for contact.
This contact is used to process answers of internal system.
This contact is used to process answers of internal system.
This contact is used to process signals of internal system.
This contact is used to process signals of internal system.
In asynchronous execution the resulting signal should come at the same level of "call stack". However as far as we usually get the signal asynchronously it is processed at top level. So in order to run it in inside the subsystem, we package asynchronous result into Signal(SubsystemSpecialContact, SubsystemDirectSignal( name, actual resulting signal))
This contact is used to enable special simultaneous processing of signals.
This contact is used to enable special simultaneous processing of signals. For instance the contact can be used for debug purposes.
Recursively finds all subsystems of the system.
Recursively finds all subsystems of the system. The system is the first element of the result with path = ".$systemName".
Create a contact with the given name.
Create a contact with the given name.
Special contact for consuming unnecessary data values.
Special contact for consuming unnecessary data values. It is often used as a sink contact in foreach and exec commands.
Usage: extension[LabellingExt].methodInExtension
Usage: extension[LabellingExt].methodInExtension
Automatic usage of extensions when an implicit extension id is present in the scope.
Automatic usage of extensions when an implicit extension id is present in the scope.
Declares the first contact as input and creates link to the second
Declares the first contact as input and creates link to the second
Declares the second contact as output and creates link from the first.
Declares the second contact as output and creates link from the first. NB! Returns inner contact c1.
Recursively finds unconnected contacts within the subsystems of the system.
Recursively finds unconnected contacts within the subsystems of the system.
One may use notation (contact -> data) to represent a signal
One may use notation (contact -> data) to represent a signal
A system builder with inputs and outputs given in advance.
A system builder with inputs and outputs given in advance.
TODO replaceable mode of signal processing.