c

akka.stream.impl.StreamLayout

StructuralInfoModule

final case class StructuralInfoModule(subModules: Set[Module], shape: Shape, downstreams: Map[OutPort, InPort], upstreams: Map[InPort, OutPort], inOwners: Map[InPort, Module], outOwners: Map[OutPort, Module], matValues: List[(Module, MaterializedValueNode)], materializedValueComputation: MaterializedValueNode, attributes: Attributes) extends Module with Product with Serializable

INTERNAL API

When fusing a Graph a part of the internal stage wirings are hidden within akka.stream.impl.fusing.GraphInterpreter#GraphAssembly objects that are optimized for high-speed execution. This structural information module contains the wirings in a more accessible form, allowing traversal from port to upstream or downstream port and from there to the owning module (or graph vertex).

Source
StreamLayout.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. StructuralInfoModule
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Module
  7. AnyRef
  8. 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 StructuralInfoModule(subModules: Set[Module], shape: Shape, downstreams: Map[OutPort, InPort], upstreams: Map[InPort, OutPort], inOwners: Map[InPort, Module], outOwners: Map[OutPort, Module], matValues: List[(Module, MaterializedValueNode)], materializedValueComputation: MaterializedValueNode, attributes: Attributes)

Value Members

  1. val attributes: Attributes
    Definition Classes
    StructuralInfoModuleModule
  2. 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
    StructuralInfoModuleModule
  3. 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
  4. 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
  5. 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
  6. val downstreams: Map[OutPort, InPort]
    Definition Classes
    StructuralInfoModuleModule
  7. final def equals(obj: Any): Boolean
    Definition Classes
    Module → AnyRef → Any
  8. 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
  9. 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
  10. final def hashCode(): Int
    Definition Classes
    Module → AnyRef → Any
  11. val inOwners: Map[InPort, Module]
  12. final lazy val inPorts: Set[InPort]
    Definition Classes
    Module
  13. def isAtomic: Boolean
    Definition Classes
    Module
  14. final def isBidiFlow: Boolean
    Definition Classes
    Module
  15. def isCopied: Boolean
    Definition Classes
    Module
  16. final def isFlow: Boolean
    Definition Classes
    Module
  17. def isFused: Boolean
    Definition Classes
    StructuralInfoModuleModule
  18. def isRunnable: Boolean
    Definition Classes
    Module
  19. final def isSealed: Boolean
    Definition Classes
    Module
  20. final def isSink: Boolean
    Definition Classes
    Module
  21. final def isSource: Boolean
    Definition Classes
    Module
  22. val matValues: List[(Module, MaterializedValueNode)]
  23. val materializedValueComputation: MaterializedValueNode
    Definition Classes
    StructuralInfoModuleModule
  24. val outOwners: Map[OutPort, Module]
  25. final lazy val outPorts: Set[OutPort]
    Definition Classes
    Module
  26. 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
    StructuralInfoModuleModule
  27. val shape: Shape
    Definition Classes
    StructuralInfoModuleModule
  28. val subModules: Set[Module]
    Definition Classes
    StructuralInfoModuleModule
  29. final def transformMaterializedValue(f: (Any) ⇒ Any): Module
    Definition Classes
    Module
  30. val upstreams: Map[InPort, OutPort]
    Definition Classes
    StructuralInfoModuleModule
  31. 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
  32. def withAttributes(attributes: Attributes): StructuralInfoModule
    Definition Classes
    StructuralInfoModuleModule