Packages

abstract class EntityStreamingSupport extends AnyRef

Entity streaming support trait allowing rendering and receiving incoming Source[T, _] from HTTP entities.

See JsonEntityStreamingSupport or CsvEntityStreamingSupport for default implementations.

Source
EntityStreamingSupport.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EntityStreamingSupport
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new EntityStreamingSupport()

Abstract Value Members

  1. abstract def contentType: ContentType

    Write-side, defines what Content-Type the Marshaller should offer and the final Content-Type of the response.

  2. abstract def getFramingDecoder: Flow[ByteString, ByteString, NotUsed]

    Read-side, decode incoming framed entity.

    Read-side, decode incoming framed entity. For example with an incoming JSON array, chunk it up into JSON objects contained within that array.

  3. abstract def getFramingRenderer: Flow[ByteString, ByteString, NotUsed]

    Write-side, apply framing to outgoing entity stream.

    Write-side, apply framing to outgoing entity stream.

    Most typical usage will be a variant of Flow[ByteString].intersperse.

    For example for rendering a JSON array one would return Flow[ByteString].intersperse(ByteString("["), ByteString(","), ByteString("]")) and for rendering a new-line separated CSV simply Flow[ByteString].intersperse(ByteString("\n")).

  4. abstract def parallelism: Int

    Write-side / read-side, defines if (un)marshalling should be done in parallel.

    Write-side / read-side, defines if (un)marshalling should be done in parallel.

    This may be beneficial marshalling the bottleneck in the pipeline.

    See also parallelism and withParallelMarshalling.

  5. abstract def supported: ContentTypeRange

    Read-side, what content types it is able to frame and unmarshall.

  6. abstract def unordered: Boolean

    Write-side / read-side, defines if (un)marshalling of incoming stream elements should be preserved or not.

    Write-side / read-side, defines if (un)marshalling of incoming stream elements should be preserved or not.

    Allowing for parallel and unordered (un)marshalling often yields higher throughput and also allows avoiding head-of-line blocking if some elements are much larger than others.

    See also parallelism and withParallelMarshalling.

  7. abstract def withContentType(range: ContentType): EntityStreamingSupport

    Write-side, defines what Content-Type the Marshaller should offer and the final Content-Type of the response.

    Write-side, defines what Content-Type the Marshaller should offer and the final Content-Type of the response.

    EntityStreamingSupport traits MUST support re-configuring the offered ContentType. This is due to the need integrating with existing systems which sometimes excpect custom Content-Types, however really are just plain JSON or something else internally (perhaps with slight extensions).

    NOTE: Implementations should specialize the return type to their own Type!

  8. abstract def withParallelMarshalling(parallelism: Int, unordered: Boolean): EntityStreamingSupport

    Write-side / read-side, defines parallelism and if ordering should be preserved or not of Source element marshalling.

    Write-side / read-side, defines parallelism and if ordering should be preserved or not of Source element marshalling.

    Sometimes marshalling multiple elements at once (esp. when elements are not evenly sized, and ordering is not enforced) may yield in higher throughput.

    NOTE: Implementations should specialize the return type to their own Type!

  9. abstract def withSupported(range: ContentTypeRange): EntityStreamingSupport

    Read-side, allows changing what content types are accepted by this framing.

    Read-side, allows changing what content types are accepted by this framing.

    EntityStreamingSupport traits MUST support re-configuring the accepted ContentTypeRange.

    This is in order to support a-typical APIs which users still want to communicate with using the provided support trait. Typical examples include APIs which return valid application/json however advertise the content type as being application/javascript or vendor specific content types, which still parse correctly as JSON, CSV or something else that a provided support trait is built for.

    NOTE: Implementations should specialize the return type to their own Type!

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from EntityStreamingSupport toany2stringadd[EntityStreamingSupport] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (EntityStreamingSupport, B)
    Implicit
    This member is added by an implicit conversion from EntityStreamingSupport toArrowAssoc[EntityStreamingSupport] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  8. def ensuring(cond: (EntityStreamingSupport) => Boolean, msg: => Any): EntityStreamingSupport
    Implicit
    This member is added by an implicit conversion from EntityStreamingSupport toEnsuring[EntityStreamingSupport] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  9. def ensuring(cond: (EntityStreamingSupport) => Boolean): EntityStreamingSupport
    Implicit
    This member is added by an implicit conversion from EntityStreamingSupport toEnsuring[EntityStreamingSupport] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  10. def ensuring(cond: Boolean, msg: => Any): EntityStreamingSupport
    Implicit
    This member is added by an implicit conversion from EntityStreamingSupport toEnsuring[EntityStreamingSupport] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: Boolean): EntityStreamingSupport
    Implicit
    This member is added by an implicit conversion from EntityStreamingSupport toEnsuring[EntityStreamingSupport] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  14. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  15. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  22. def toString(): String
    Definition Classes
    AnyRef → Any
  23. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  24. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  25. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Deprecated Value Members

  1. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from EntityStreamingSupport toStringFormat[EntityStreamingSupport] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.12.16) Use formatString.format(value) instead of value.formatted(formatString), or use the f"" string interpolator. In Java 15 and later, formatted resolves to the new method in String which has reversed parameters.

  2. def [B](y: B): (EntityStreamingSupport, B)
    Implicit
    This member is added by an implicit conversion from EntityStreamingSupport toArrowAssoc[EntityStreamingSupport] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromEntityStreamingSupport to any2stringadd[EntityStreamingSupport]

Inherited by implicit conversion StringFormat fromEntityStreamingSupport to StringFormat[EntityStreamingSupport]

Inherited by implicit conversion Ensuring fromEntityStreamingSupport to Ensuring[EntityStreamingSupport]

Inherited by implicit conversion ArrowAssoc fromEntityStreamingSupport to ArrowAssoc[EntityStreamingSupport]

Ungrouped