DSL for working with accumulators
The continuation usually has a function that will return new continuation.
a continuation with calculations.
a continuation with calculations. Returns some result before entering expectation state
A builder that creates a kind of state machine.
A builder that creates a kind of state machine. The state contains a continuation. On every processed signal a new continuation is generated. Usually the last statement of the continuation is a call to some constructor method that creates a continuation for the next signal.
Managed states are not accessible directly.
Managed states are not accessible directly. Instead the state can be overwritten by sending some data on a special contact. On every state change a signal appears on a contact onUpdated. TODO: detect changes and create event only when changed.
API for creating "switcher".
API for creating "switcher". A switcher is a special mini-builder for constructing a set of case branches that are "sealed" - the last branch "else" will take all the rest signals.
Doesn't work because T2 is unknown when it is called implicitly.
Doesn't work because T2 is unknown when it is called implicitly.
implicit def contactToLink[T1, T2](c1:Contact[T1]) = {
val c2 = addContact(new Contact[T2](nextContactName, AuxiliaryContact))
new ImplLinkBuilder(c1, c2)
}
DSL for working with links that catch exceptions and encapsulate them in Try monad.
The continuation usually has a function that will return new continuation. The current continuation has result that is returned immediately when the continuation is created. Later this result can be considered as a hint of what was returned.