Trait

ru.primetalk.synapse.core.subsystems

StaticSystemApi

Related Doc: package subsystems

Permalink

trait StaticSystemApi extends DevNullExt with SystemBuilderDsl with SystemRendererApi with BaseTypedSystemDsl

API for working with StaticSystem's The API is influenced by Slick's cake pattern.

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. StaticSystemApi
  2. BaseTypedSystemDsl
  3. SystemRendererApi
  4. SystemBuilderDsl
  5. AuxNumberingExt
  6. NextLabelExt
  7. DevNullExt
  8. ContactStyleExt
  9. SystemBuilderApi
  10. ExceptionHandlingExt
  11. TrellisApi
  12. SignalsApi
  13. ContactsDsl
  14. ComponentsApi
  15. AnyRef
  16. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class AuxContactNumberingExt extends SystemBuilderExtension

    Permalink
    Definition Classes
    AuxNumberingExt
  2. type Component = components.Component

    Permalink
    Definition Classes
    ComponentsApi
  3. type ComponentWithInternalStructure = components.ComponentWithInternalStructure

    Permalink
    Definition Classes
    ComponentsApi
  4. type Contact[T] = components.Contact[T]

    Permalink
    Definition Classes
    ComponentsApi
  5. implicit class ContactExtractor[T] extends AnyRef

    Permalink

    Extractor of contacts' data from result.

    Extractor of contacts' data from result.

    Definition Classes
    SignalsApi
  6. implicit class ContactOps[T] extends AnyRef

    Permalink

    New methods available on contacts that construct links.

    New methods available on contacts that construct links.

    Definition Classes
    SystemBuilderDsl
  7. implicit class ContactPairOps[Key, T] extends AnyRef

    Permalink

    Miscellaneous operations with prefixed data.

    Miscellaneous operations with prefixed data.

    Definition Classes
    SystemBuilderDsl
  8. trait ContactStyle extends AnyRef

    Permalink
    Definition Classes
    ContactStyleExt
  9. class ContactStyleExtension extends SystemBuilderExtension

    Permalink
    Definition Classes
    ContactStyleExt
  10. case class ContactStyleStaticExtension(styles: Map[ContactStyleExt.Contact[_], ContactStyle]) extends Product with Serializable

    Permalink
    Definition Classes
    ContactStyleExt
  11. class ContactWithState[T1, S] extends AnyRef

    Permalink
    Definition Classes
    SystemBuilderDsl
  12. type Context = Map[Contact[_], _]

    Permalink

    The context for system is a map from state handles to values.

    The context for system is a map from state handles to values.

    Definition Classes
    TrellisApi
  13. class DevNullExtension extends SystemBuilderExtension

    Permalink
    Definition Classes
    DevNullExt
  14. implicit class DirectLinkBuilderOps[T1, T2 >: T1] extends AnyRef

    Permalink
    Definition Classes
    SystemBuilderDsl
  15. type FlatMapLink[-T1, +T2] = components.FlatMapLink[T1, T2]

    Permalink
    Definition Classes
    ComponentsApi
  16. class LabellingExt extends SystemBuilderExtension

    Permalink

    An extension that adds easy labelling to System builder.

    An extension that adds easy labelling to System builder.

    Definition Classes
    NextLabelExt
  17. type Link[T1, T2, -TL1 >: T1, +TL2 <: T2] = components.Link[T1, T2, TL1, TL2]

    Permalink
    Definition Classes
    ComponentsApi
  18. implicit class LinkBuilderOps[T1, T2] extends AnyRef

    Permalink

    DSL methods for creating links between the two given contacts.

    DSL methods for creating links between the two given contacts.

    Definition Classes
    SystemBuilderDsl
  19. type LinkInfo[-T1, +T2] = components.LinkInfo[T1, T2]

    Permalink
    Definition Classes
    ComponentsApi
  20. type Named = components.Named

    Permalink
    Definition Classes
    ComponentsApi
  21. type NopLink[-T1, +T2 >: T1] = components.NopLink[T1, T2]

    Permalink
    Definition Classes
    ComponentsApi
  22. implicit class OrphanContactsAnalysis extends AnyRef

    Permalink

    Some additional information about the system.

    Some additional information about the system. In particular, one may find orphan contacts.

  23. trait OuterInterfaceBuilder extends AnyRef

    Permalink

    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.

    Definition Classes
    SystemBuilderApi
  24. type RedMapLink[-T1, +T2] = components.RedMapLink[T1, T2]

    Permalink
    Definition Classes
    ComponentsApi
  25. implicit class RichComponent[T] extends AnyRef

    Permalink
  26. implicit class RichSignalList extends AnyRef

    Permalink
    Definition Classes
    SignalsApi
  27. implicit class RichSimpleSignalProcessor extends AnyRef

    Permalink
    Definition Classes
    TrellisApi
  28. implicit class RichStaticSystemType[T] extends AnyRef

    Permalink

    Enriches arbitrary type with implicit converter to StaticSystem.

    Enriches arbitrary type with implicit converter to StaticSystem. Adds a few useful methods.

  29. implicit class RichTotalTrellisProducer extends AnyRef

    Permalink
    Definition Classes
    TrellisApi
  30. type Signal[T] = components.Signal[T]

    Permalink
    Definition Classes
    ComponentsApi
  31. type SignalCollection[+T] = Iterable[T]

    Permalink
    Definition Classes
    ComponentsApi
  32. type SignalDist = components.SignalDist

    Permalink
    Definition Classes
    ComponentsApi
  33. type SimpleSignalProcessor = (Signal[_]) ⇒ SignalCollection[Signal[_]]

    Permalink

    The simplest signal processor.

    The simplest signal processor. Corresponds to FlatMap.

    Definition Classes
    TrellisApi
  34. type StateHandle[T] = components.StateHandle[T]

    Permalink
    Definition Classes
    ComponentsApi
  35. implicit class StateLinkBuilder2Ops[T1, T2, S] extends AnyRef

    Permalink
    Definition Classes
    SystemBuilderDsl
  36. implicit class StateOps[S] extends AnyRef

    Permalink
    Definition Classes
    SystemBuilderDsl
  37. type StateZipLink[S, -T1, +T2 >: T1] = components.StateZipLink[S, T1, T2]

    Permalink
    Definition Classes
    ComponentsApi
  38. type StatefulFlatMapLink[S, -T1, +T2] = components.StatefulFlatMapLink[S, T1, T2]

    Permalink
    Definition Classes
    ComponentsApi
  39. type StaticSystem = components.StaticSystem

    Permalink
    Definition Classes
    ComponentsApi
  40. type StaticSystemExtensionId[+T] = components.StaticSystemExtensionId[T]

    Permalink
    Definition Classes
    ComponentsApi
  41. implicit class StaticSystemWithUnhandledExceptionHandler extends AnyRef

    Permalink
    Definition Classes
    ExceptionHandlingExt
  42. implicit class StyleableContact[T] extends AnyRef

    Permalink
    Definition Classes
    ContactStyleExt
  43. case class SubsystemDirectSignal[T](subsystemName: String, signal: SignalsApi.Signal[T]) extends SubsystemDirectSignal0 with Product with Serializable

    Permalink

    An encapsulation of the signal that targets a subsystem's internal contact.

    An encapsulation of the signal that targets a subsystem's internal contact.

    Definition Classes
    SignalsApi
  44. sealed trait SubsystemDirectSignal0 extends AnyRef

    Permalink
    Definition Classes
    SignalsApi
  45. case class SubsystemDirectSignalDist(subsystemName: String, signal: SignalsApi.SignalDist) extends SubsystemDirectSignal0 with Product with Serializable

    Permalink
    Definition Classes
    SignalsApi
  46. trait SystemBuilder extends OuterInterfaceBuilder with WithStaticSystem

    Permalink

    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.

    Definition Classes
    SystemBuilderApi
  47. class SystemBuilderC extends SystemBuilder

    Permalink
    Definition Classes
    SystemBuilderApi
  48. trait SystemBuilderExtension extends AnyRef

    Permalink

    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

    Definition Classes
    SystemBuilderApi
  49. final class SystemBuilderExtensionId[T <: SystemBuilderExtension] extends AnyRef

    Permalink

    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.

    Definition Classes
    SystemBuilderApi
  50. trait SystemImplementation[T] extends AnyRef

    Permalink

    Implements a system of type T.

    Implements a system of type T. Uses external SystemBuilder instance to define internal System's structure.

    Definition Classes
    BaseTypedSystemDsl
  51. trait SystemRenderer extends AnyRef

    Permalink
    Definition Classes
    SystemRendererApi
  52. type TotalTrellisProducer = (Context, Signal[_]) ⇒ TrellisElement

    Permalink

    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.

    Definition Classes
    TrellisApi
  53. type TrellisElement = (Context, SignalCollection[Signal[_]])

    Permalink

    A snapshot of a running system at some discrete time moment.

    A snapshot of a running system at some discrete time moment.

    Definition Classes
    TrellisApi
  54. type TrellisProducer = (TrellisElement) ⇒ TrellisElement

    Permalink

    A function that makes single step (or a few steps) over time.

    A function that makes single step (or a few steps) over time.

    Definition Classes
    TrellisApi
  55. case class TypedSystem[T](outer: T, staticSystem: BaseTypedSystemDsl.StaticSystem) extends WithStaticSystem with Product with Serializable

    Permalink

    Definition Classes
    BaseTypedSystemDsl
  56. trait TypedSystemConstructor[T] extends (T) ⇒ StaticSystem

    Permalink

    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 = {

    } }

    Definition Classes
    BaseTypedSystemDsl
  57. type UnhandledProcessingExceptionHandler = (Throwable, String, Signal[_], Context) ⇒ Context

    Permalink

    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).

    Definition Classes
    ExceptionHandlingExt
  58. type WithStaticSystem = components.WithStaticSystem

    Permalink
    Definition Classes
    ComponentsApi
  59. implicit class ZippingLinkOps[S, T] extends AnyRef

    Permalink
    Definition Classes
    SystemBuilderDsl

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. implicit val AuxContactNumberingExtId: SystemBuilderExtensionId[AuxContactNumberingExt]

    Permalink
    Definition Classes
    AuxNumberingExt
  5. object AuxiliaryContact extends ContactStyle with Product with Serializable

    Permalink
    Definition Classes
    AuxNumberingExt
  6. val Contact: components.Contact.type

    Permalink
    Definition Classes
    ComponentsApi
  7. implicit val ContactStyleExtId: SystemBuilderExtensionId[ContactStyleExtension]

    Permalink
    Definition Classes
    ContactStyleExt
  8. implicit object ContactStyleStaticExtId extends StaticSystemExtensionId[ContactStyleStaticExtension]

    Permalink
    Definition Classes
    ContactStyleExt
  9. object DevNullContact extends ContactStyle with Product with Serializable

    Permalink
    Definition Classes
    DevNullExt
  10. implicit val DevNullExtId: SystemBuilderExtensionId[DevNullExtension]

    Permalink
    Definition Classes
    DevNullExt
  11. val FlatMapLink: components.FlatMapLink.type

    Permalink
    Definition Classes
    ComponentsApi
  12. implicit val LabellingExtId: SystemBuilderExtensionId[LabellingExt]

    Permalink
    Definition Classes
    NextLabelExt
  13. val Link: components.Link.type

    Permalink
    Definition Classes
    ComponentsApi
  14. val NopLink: components.NopLink.type

    Permalink
    Definition Classes
    ComponentsApi
  15. object NormalContact extends ContactStyle with Product with Serializable

    Permalink

    Default style for contact.

    Default style for contact.

    Definition Classes
    ContactStyleExt
  16. val RedMapLink: components.RedMapLink.type

    Permalink
    Definition Classes
    ComponentsApi
  17. val Signal: components.Signal.type

    Permalink
    Definition Classes
    ComponentsApi
  18. val SignalCollection: Iterable.type

    Permalink
    Definition Classes
    ComponentsApi
  19. val SignalDist: components.SignalDist.type

    Permalink
    Definition Classes
    ComponentsApi
  20. val StateHandle: components.StateHandle.type

    Permalink
    Definition Classes
    ComponentsApi
  21. val StateZipLink: components.StateZipLink.type

    Permalink
    Definition Classes
    ComponentsApi
  22. val StatefulFlatMapLink: components.StatefulFlatMapLink.type

    Permalink
    Definition Classes
    ComponentsApi
  23. val StaticSystem: components.StaticSystem.type

    Permalink
    Definition Classes
    ComponentsApi
  24. object SubsystemDirectSignal0

    Permalink
    Definition Classes
    SignalsApi
  25. object SubsystemSpecialAnswerContact extends Contact[SubsystemDirectSignal0]

    Permalink

    This contact is used to process answers of internal system.

    This contact is used to process answers of internal system.

    Definition Classes
    SignalsApi
  26. object SubsystemSpecialContact extends Contact[SubsystemDirectSignal0]

    Permalink

    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))

    Definition Classes
    SignalsApi
  27. object SystemRenderer extends SystemRenderer with (StaticSystem) ⇒ String

    Permalink
    Definition Classes
    SystemRendererApi
  28. implicit object UnhandledExceptionHandlerExtensionId extends StaticSystemExtensionId[UnhandledProcessingExceptionHandler]

    Permalink
    Definition Classes
    ExceptionHandlingExt
  29. val WithStaticSystem: components.WithStaticSystem.type

    Permalink
    Definition Classes
    ComponentsApi
  30. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  31. def auxContact[T](implicit sb: SystemBuilder): Contact[T]

    Permalink
    Definition Classes
    AuxNumberingExt
  32. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. def collectSubsystems(system: StaticSystem): List[(String, StaticSystem)]

    Permalink

    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".

  34. def connect[T1, T2 >: T1](c1: Contact[T1], c2: Contact[T2], name: String = "")(implicit sb: SystemBuilder): Contact[T2]

    Permalink
    Definition Classes
    SystemBuilderDsl
  35. def contact[T](name: String): components.Contact[T]

    Permalink

    Create a contact with the given name.

    Create a contact with the given name.

    Definition Classes
    ContactsDsl
  36. def createTypedSystem[T](name: String)(implicit outerBuilder: (OuterInterfaceBuilder) ⇒ T, systemImplementation: SystemImplementation[T]): TypedSystem[T]

    Permalink
    Definition Classes
    BaseTypedSystemDsl
  37. val defaultUnhandledExceptionHandler: UnhandledProcessingExceptionHandler

    Permalink
    Definition Classes
    ExceptionHandlingExt
  38. def devNull(implicit sb: SystemBuilder): Contact[Any]

    Permalink

    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.

    Definition Classes
    DevNullExt
  39. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  40. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  41. def extension[T <: SystemBuilderExtension](implicit sb: SystemBuilder, extensionInstance: SystemBuilderExtensionId[T]): T

    Permalink

    Usage: extension[LabellingExt].methodInExtension

    Usage: extension[LabellingExt].methodInExtension

    Definition Classes
    SystemBuilderApi
  42. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  43. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  44. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  45. implicit def implicitExtendBasicSystemBuilder[T <: SystemBuilderExtension](sb: SystemBuilder)(implicit extensionInstanceId: SystemBuilderExtensionId[T]): T

    Permalink

    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.

    Definition Classes
    SystemBuilderApi
  46. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  47. def mappedInput[T, T2 >: T](c1: Contact[T], c2: Contact[T2])(implicit sb: SystemBuilder): Contact[T2]

    Permalink

    Declares the first contact as input and creates link to the second

    Declares the first contact as input and creates link to the second

    Definition Classes
    SystemBuilderDsl
  48. def mappedOutput[T, T2 >: T](c1: Contact[T], c2: Contact[T2])(implicit sb: SystemBuilder): Contact[T]

    Permalink

    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.

    Definition Classes
    SystemBuilderDsl
  49. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  50. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  51. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  52. def orphanContactsRec(system: StaticSystem): List[(String, Set[Contact[_]])]

    Permalink

    Recursively finds unconnected contacts within the subsystems of the system.

  53. implicit def pairToSignal[T](p: (Contact[T], T)): Signal[T]

    Permalink

    One may use notation (contact -> data) to represent a signal

    One may use notation (contact -> data) to represent a signal

    Definition Classes
    SignalsApi
  54. val rethrowUnhandledExceptionHandler: UnhandledProcessingExceptionHandler

    Permalink
    Definition Classes
    ExceptionHandlingExt
  55. implicit def sbToAux(sb: SystemBuilder): AuxContactNumberingExt

    Permalink
    Definition Classes
    AuxNumberingExt
  56. implicit def sbToLabelling(sb: SystemBuilder): LabellingExt

    Permalink
    Definition Classes
    NextLabelExt
  57. def setSystemName(name: String)(implicit sb: SystemBuilder): Unit

    Permalink
    Definition Classes
    SystemBuilderApi
  58. def state[T](name: String, s0: T)(implicit sb: SystemBuilder): StateHandle[T]

    Permalink
    Definition Classes
    SystemBuilderApi
  59. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  60. def systemBuilderTyped(name: String)(_inputs: Contact[_]*)(_outputs: Contact[_]*): SystemBuilder

    Permalink

    A system builder with inputs and outputs given in advance.

    A system builder with inputs and outputs given in advance.

    Definition Classes
    BaseTypedSystemDsl
  61. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  62. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  63. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  64. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from BaseTypedSystemDsl

Inherited from SystemRendererApi

Inherited from SystemBuilderDsl

Inherited from AuxNumberingExt

Inherited from NextLabelExt

Inherited from DevNullExt

Inherited from ContactStyleExt

Inherited from SystemBuilderApi

Inherited from ExceptionHandlingExt

Inherited from TrellisApi

Inherited from SignalsApi

Inherited from ContactsDsl

Inherited from ComponentsApi

Inherited from AnyRef

Inherited from Any

Ungrouped