public final class JsonEntityStreamingSupport extends JsonEntityStreamingSupport
| Constructor and Description | 
|---|
| JsonEntityStreamingSupport(int maxObjectSize) | 
| JsonEntityStreamingSupport(int maxObjectSize,
                          ContentTypeRange supported,
                          ContentType contentType,
                          org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> framingRenderer,
                          int parallelism,
                          boolean unordered) | 
| Modifier and Type | Method and Description | 
|---|---|
| ContentType | contentType()Write-side, defines what Content-Type the Marshaller should offer and the final Content-Type of the response. | 
| org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> | framingDecoder()Read-side, decode incoming framed entity. | 
| org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> | framingRenderer()Write-side, apply framing to outgoing entity stream. | 
| int | parallelism()Write-side / read-side, defines if (un)marshalling should be done in parallel. | 
| ContentTypeRange | supported()Read-side, what content types it is able to frame and unmarshall. | 
| java.lang.String | toString() | 
| boolean | unordered()Write-side / read-side, defines if (un)marshalling should preserve ordering of incoming stream elements. | 
| JsonEntityStreamingSupport | withContentType(ContentType ct)Write-side, defines what Content-Type the Marshaller should offer and the final Content-Type of the response. | 
| JsonEntityStreamingSupport | withFramingRenderer(org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> framingRendererFlow) | 
| JsonEntityStreamingSupport | withFramingRendererFlow(org.apache.pekko.stream.javadsl.Flow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> framingRendererFlow)Java API: Write-side, apply framing to outgoing entity stream. | 
| JsonEntityStreamingSupport | withParallelMarshalling(int parallelism,
                       boolean unordered)Write-side / read-side, defines parallelism and if ordering should be preserved or not of Source element marshalling. | 
| JsonEntityStreamingSupport | withSupported(ContentTypeRange range)Read-side, allows changing what content types are accepted by this framing. | 
csv, csv, getFramingDecoder, getFramingRenderer, json, jsonpublic JsonEntityStreamingSupport(int maxObjectSize,
                                  ContentTypeRange supported,
                                  ContentType contentType,
                                  org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> framingRenderer,
                                  int parallelism,
                                  boolean unordered)
public JsonEntityStreamingSupport(int maxObjectSize)
public ContentType contentType()
EntityStreamingSupportcontentType in class EntityStreamingSupportpublic org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> framingDecoder()
EntityStreamingSupportframingDecoder in class EntityStreamingSupportpublic org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> framingRenderer()
EntityStreamingSupport
 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")).
framingRenderer in class EntityStreamingSupportpublic int parallelism()
EntityStreamingSupportThis may be beneficial marshalling the bottleneck in the pipeline.
 See also parallelism and withParallelMarshalling.
parallelism in class EntityStreamingSupportpublic ContentTypeRange supported()
EntityStreamingSupportsupported in class EntityStreamingSupportpublic java.lang.String toString()
toString in class java.lang.Objectpublic boolean unordered()
EntityStreamingSupportAllowing 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.
unordered in class EntityStreamingSupportpublic JsonEntityStreamingSupport withContentType(ContentType ct)
EntityStreamingSupport
 EntityStreamingSupport traits MUST support re-configuring the offered ContentType.
 This is due to the need integrating with existing systems which sometimes expect 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!
withContentType in class EntityStreamingSupportct - (undocumented)public JsonEntityStreamingSupport withFramingRenderer(org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> framingRendererFlow)
public JsonEntityStreamingSupport withFramingRendererFlow(org.apache.pekko.stream.javadsl.Flow<org.apache.pekko.util.ByteString,org.apache.pekko.util.ByteString,org.apache.pekko.NotUsed> framingRendererFlow)
JsonEntityStreamingSupport
 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")).
withFramingRendererFlow in class JsonEntityStreamingSupportframingRendererFlow - (undocumented)public JsonEntityStreamingSupport withParallelMarshalling(int parallelism, boolean unordered)
EntityStreamingSupportSometimes 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!
withParallelMarshalling in class EntityStreamingSupportparallelism - (undocumented)unordered - (undocumented)public JsonEntityStreamingSupport withSupported(ContentTypeRange range)
EntityStreamingSupport
 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!
withSupported in class EntityStreamingSupportrange - (undocumented)