EmberClientBuilder

final class EmberClientBuilder[F[_]]
Companion:
object
class Object
trait Matchable
class Any

Value members

Concrete methods

def build: Resource[F, Client[F]]
def withAdditionalSocketOptions(additionalSocketOptions: List[SocketOption]): EmberClientBuilder[F]
def withCheckEndpointAuthentication(checkEndpointIdentification: Boolean): EmberClientBuilder[F]
def withChunkSize(chunkSize: Int): EmberClientBuilder[F]
def withIdleConnectionTime(idleConnectionTime: Duration): EmberClientBuilder[F]
def withIdleTimeInPool(idleTimeInPool: Duration): EmberClientBuilder[F]
def withLogger(logger: Logger[F]): EmberClientBuilder[F]
def withMaxPerKey(maxPerKey: RequestKey => Int): EmberClientBuilder[F]
def withMaxResponseHeaderSize(maxResponseHeaderSize: Int): EmberClientBuilder[F]
def withMaxTotal(maxTotal: Int): EmberClientBuilder[F]
def withPushPromiseSupport(f: (Request[Pure], F[Response[F]]) => F[Outcome[F, Throwable, Unit]]): EmberClientBuilder[F]

Push promises are implemented via responding with a PushPromise frame which is effectively a request headers frame for a request that wasn't sent by the client.

Push promises are implemented via responding with a PushPromise frame which is effectively a request headers frame for a request that wasn't sent by the client.

The second param is the response once it is available that you can wait for OR you can cancel the Outcome to send a termination signal to ask the remote server to stop sending additional data from this data stream. If you want to handle these the outcome can just be outcome successful. But you can save significant data by canceling requests you don't want.

Push promises are very useful to get all the data necessary to render a page in parallel to the actual data for that page leading to much faster render times, or sending additional cache enriching information.

def withRetryPolicy(retryPolicy: () => F): EmberClientBuilder[F]
def withSocketGroup(sg: SocketGroup[F]): EmberClientBuilder[F]
def withTLSContext(tlsContext: TLSContext[F]): EmberClientBuilder[F]
def withTimeout(timeout: Duration): EmberClientBuilder[F]
def withUnixSockets(unixSockets: UnixSockets[F]): EmberClientBuilder[F]
def withUserAgent(userAgent: User-Agent): EmberClientBuilder[F]

Concrete fields

val additionalSocketOptions: List[SocketOption]
val chunkSize: Int
val idleTimeInPool: Duration
val maxPerKey: RequestKey => Int
val maxTotal: Int
val retryPolicy: () => F
val timeout: Duration
val userAgent: Option[User-Agent]