Class EventStream<ResponseT extends AsyncResponse,​ItemT>

  • Type Parameters:
    ResponseT - the AsyncResponse type that contains the event stream
    ItemT - the type that events are deserialized into
    All Implemented Interfaces:
    org.reactivestreams.Publisher<ItemT>

    public class EventStream<ResponseT extends AsyncResponse,​ItemT>
    extends java.lang.Object
    implements org.reactivestreams.Publisher<ItemT>
    A reactive event stream publisher that can handle different protocols (SSE, JSONL) and emits typed events with proper backpressure handling.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  EventStream.Protocol<ParsedT,​ItemT>
      Protocol interface that defines how to parse and process different event stream formats
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.concurrent.CompletableFuture<ResponseT> body()
      Returns the AsyncResponse body.
      java.util.concurrent.CompletableFuture<java.lang.String> contentType()
      Returns the value of the Content-Type header.
      static <ResponseT extends AsyncResponse,​ItemT>
      EventStream<ResponseT,​ItemT>
      forJsonL​(java.util.concurrent.CompletableFuture<ResponseT> asyncResponseFuture, com.fasterxml.jackson.core.type.TypeReference<ItemT> typeReference, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
      Create an EventStream for JSONL (JSON Lines) format
      static <ResponseT extends AsyncResponse,​ItemT>
      EventStream<ResponseT,​ItemT>
      forSSE​(java.util.concurrent.CompletableFuture<ResponseT> asyncResponseFuture, com.fasterxml.jackson.core.type.TypeReference<ItemT> typeReference, com.fasterxml.jackson.databind.ObjectMapper objectMapper, java.lang.String terminalMessage)
      Create an EventStream for SSE (Server-Sent Events) format
      java.util.concurrent.CompletableFuture<java.net.http.HttpResponse<Blob>> rawResponse()
      Returns the raw HTTP response.
      java.util.concurrent.CompletableFuture<java.lang.Integer> statusCode()
      Returns the HTTP status code.
      void subscribe​(org.reactivestreams.Subscriber<? super ItemT> subscriber)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • forSSE

        public static <ResponseT extends AsyncResponse,​ItemT> EventStream<ResponseT,​ItemT> forSSE​(java.util.concurrent.CompletableFuture<ResponseT> asyncResponseFuture,
                                                                                                              com.fasterxml.jackson.core.type.TypeReference<ItemT> typeReference,
                                                                                                              com.fasterxml.jackson.databind.ObjectMapper objectMapper,
                                                                                                              java.lang.String terminalMessage)
        Create an EventStream for SSE (Server-Sent Events) format
      • forJsonL

        public static <ResponseT extends AsyncResponse,​ItemT> EventStream<ResponseT,​ItemT> forJsonL​(java.util.concurrent.CompletableFuture<ResponseT> asyncResponseFuture,
                                                                                                                com.fasterxml.jackson.core.type.TypeReference<ItemT> typeReference,
                                                                                                                com.fasterxml.jackson.databind.ObjectMapper objectMapper)
        Create an EventStream for JSONL (JSON Lines) format
      • contentType

        public java.util.concurrent.CompletableFuture<java.lang.String> contentType()
        Returns the value of the Content-Type header.
      • statusCode

        public java.util.concurrent.CompletableFuture<java.lang.Integer> statusCode()
        Returns the HTTP status code.
      • rawResponse

        public java.util.concurrent.CompletableFuture<java.net.http.HttpResponse<Blob>> rawResponse()
        Returns the raw HTTP response.
      • body

        public java.util.concurrent.CompletableFuture<ResponseT> body()
        Returns the AsyncResponse body.
      • subscribe

        public void subscribe​(org.reactivestreams.Subscriber<? super ItemT> subscriber)
        Specified by:
        subscribe in interface org.reactivestreams.Publisher<ResponseT extends AsyncResponse>