abstract class AtomicModule extends Module

This is the only extension point for the sealed type hierarchy: composition (i.e. the module tree) is managed strictly within this file, only leaf nodes may be declared elsewhere.

Source
StreamLayout.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AtomicModule
  2. Module
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new AtomicModule()

Abstract Value Members

  1. abstract def attributes: Attributes
    Definition Classes
    Module
  2. abstract def carbonCopy: Module

    The purpose of this method is to create a copy to be included in a larger graph such that port identity clashes are avoided.

    The purpose of this method is to create a copy to be included in a larger graph such that port identity clashes are avoided. Where a full copy is not possible or desirable, use a CopiedModule. The shape of the resulting module MUST NOT contain the same ports as this module’s shape.

    Definition Classes
    Module
  3. abstract def replaceShape(s: Shape): Module

    Verify that the given Shape has the same ports and return a new module with that shape.

    Verify that the given Shape has the same ports and return a new module with that shape. Concrete implementations may throw UnsupportedOperationException where applicable.

    Please note that this method MUST NOT be implemented using a CopiedModule since the purpose of replaceShape can also be to rearrange the ports (as in BidiFlow.reversed) and that purpose would be defeated.

    Definition Classes
    Module
  4. abstract def shape: Shape
    Definition Classes
    Module
  5. abstract def withAttributes(attributes: Attributes): Module
    Definition Classes
    Module

Concrete Value Members

  1. def compose[A, B, C](that: Module, f: (A, B) ⇒ C): Module

    Creates a new Module which is this Module composed with that Module, using the given function f to compose the materialized value of this with the materialized value of that.

    Creates a new Module which is this Module composed with that Module, using the given function f to compose the materialized value of this with the materialized value of that.

    A

    the type of the materialized value of this

    B

    the type of the materialized value of that

    C

    the type of the materialized value of the returned Module

    that

    a Module to be composed with (cannot be itself)

    f

    a function which combines the materialized values

    returns

    a Module that represents the composition of this and that

    Definition Classes
    Module
  2. def compose(that: Module): Module

    Creates a new Module which is this Module composed with that Module.

    Creates a new Module which is this Module composed with that Module.

    that

    a Module to be composed with (cannot be itself)

    returns

    a Module that represents the composition of this and that

    Definition Classes
    Module
  3. def composeNoMat(that: Module): Module

    Creates a new Module which is this Module composed with that Module.

    Creates a new Module which is this Module composed with that Module.

    The difference to compose(that) is that this version completely ignores the materialized value computation of that while the normal version executes the computation and discards its result. This means that this version must not be used for user-provided that modules because users may transform materialized values only to achieve some side-effect; it can only be used where we know that there is no meaningful computation to be done (like for MaterializedValueSource).

    that

    a Module to be composed with (cannot be itself)

    returns

    a Module that represents the composition of this and that

    Definition Classes
    Module
  4. final def downstreams: Map[OutPort, InPort]
    Definition Classes
    AtomicModuleModule
  5. final def equals(obj: Any): Boolean
    Definition Classes
    Module → AnyRef → Any
  6. final def fuse[A, B, C](that: Module, from: OutPort, to: InPort, f: (A, B) ⇒ C): Module

    Fuses this Module to that Module by wiring together from and to, transforming the materialized values of this and that using the provided function f

    Fuses this Module to that Module by wiring together from and to, transforming the materialized values of this and that using the provided function f

    that

    a Module to fuse with

    from

    the data source to wire

    to

    the data sink to wire

    f

    the function to apply to the materialized values

    returns

    a Module representing the fusion of this and that

    Definition Classes
    Module
  7. final def fuse(that: Module, from: OutPort, to: InPort): Module

    Fuses this Module to that Module by wiring together from and to, retaining the materialized value of this in the result

    Fuses this Module to that Module by wiring together from and to, retaining the materialized value of this in the result

    that

    a Module to fuse with

    from

    the data source to wire

    to

    the data sink to wire

    returns

    a Module representing the fusion of this and that

    Definition Classes
    Module
  8. final def hashCode(): Int
    Definition Classes
    Module → AnyRef → Any
  9. final lazy val inPorts: Set[InPort]
    Definition Classes
    Module
  10. def isAtomic: Boolean
    Definition Classes
    Module
  11. final def isBidiFlow: Boolean
    Definition Classes
    Module
  12. def isCopied: Boolean
    Definition Classes
    Module
  13. final def isFlow: Boolean
    Definition Classes
    Module
  14. def isFused: Boolean
    Definition Classes
    Module
  15. def isRunnable: Boolean
    Definition Classes
    Module
  16. final def isSealed: Boolean
    Definition Classes
    Module
  17. final def isSink: Boolean
    Definition Classes
    Module
  18. final def isSource: Boolean
    Definition Classes
    Module
  19. def materializedValueComputation: MaterializedValueNode
    Definition Classes
    Module
  20. final lazy val outPorts: Set[OutPort]
    Definition Classes
    Module
  21. final def subModules: Set[Module]
    Definition Classes
    AtomicModuleModule
  22. final def transformMaterializedValue(f: (Any) ⇒ Any): Module
    Definition Classes
    Module
  23. final def upstreams: Map[InPort, OutPort]
    Definition Classes
    AtomicModuleModule
  24. final def wire(from: OutPort, to: InPort): Module

    Creates a new Module based on the current Module but with the given OutPort wired to the given InPort.

    Creates a new Module based on the current Module but with the given OutPort wired to the given InPort.

    from

    the OutPort to wire

    to

    the InPort to wire

    returns

    a new Module with the ports wired

    Definition Classes
    Module