Network

  • Protocol for sending network requests and handling responses.

    See more

    Declaration

    Swift

    public protocol NetworkClient
  • The connection as it’s reported by the system monitors

    See more

    Declaration

    Swift

    public enum NetworkConnection : Equatable
  • An error returned from an http request.

    See more

    Declaration

    Swift

    public struct NetworkError : Error
  • An error reported by the NetworkClient.

    See more

    Declaration

    Swift

    public enum NetworkErrorType : Error, ErrorEnum
  • Protocol defining methods for common, uncompressed network operations.

    Implementations are a short-circuit for standard requests only; bodies are never compressed. For gzip or otherwise customized requests, use NetworkClient with a RequestBuilder.

    See more

    Declaration

    Swift

    public protocol NetworkHelperProtocol
  • A successful response returned by the NetworkClient

    See more

    Declaration

    Swift

    public struct NetworkResponse
  • NetworkResult From TealiumPrismCore

    A successful Result with a NetworkResponse or a failed Result with NetworkError, returned by the NetworkClient

    Declaration

    Swift

    public typealias NetworkResult = Result<NetworkResponse, NetworkError>
  • Groups the networking utilities for a given Tealium instance onto a single object.

    networkClient and networkHelper make a single attempt for each request and never retry it. Every response still feeds the empirical connectivity of the connectivityManager.

    To retry failed requests, derive a client with NetworkClient.newClient(withAdditionalInterceptors:), adding RequestInterceptors.retryWithBackoff() to retry retryable failures with a backoff and/or RequestInterceptors.retryWhenConnected(connectivityManager:) to wait for connectivity to return before retrying. Use NetworkClient.makeNetworkHelper() to send requests through the derived client with the NetworkHelperProtocol API.

    See more

    Declaration

    Swift

    public final class NetworkUtilities
  • A manager that handles system connectivity monitor and empirical connectivity monitor to establish when connectivity is actually available or not on the device.

    See connectionAssumedAvailable for how the two are combined.

    See more

    Declaration

    Swift

    public class ConnectivityManager : ConnectivityManagerProtocol, RequestInterceptor
  • Protocol for managing network connectivity state and monitoring.

    See more

    Declaration

    Swift

    public protocol ConnectivityManagerProtocol
  • Protocol for intercepting and handling network requests and responses.

    See more

    Declaration

    Swift

    public protocol RequestInterceptor : AnyObject
  • Factories for the built-in RequestInterceptors that add retry behavior to a NetworkClient.

    Pass the created interceptors to NetworkClient.newClient(withAdditionalInterceptors:maxRetryCount:). Interceptors are consulted in reverse order, so add retryWhenConnected(connectivityManager:) last: it is then asked first and, while the connection is assumed unavailable, waits for it instead of letting retryWithBackoff(...) use up its attempts:

    let client = context.network.networkClient.newClient(withAdditionalInterceptors: [
        RequestInterceptors.retryWithBackoff(maxAttempts: 3),
        RequestInterceptors.retryWhenConnected(connectivityManager: context.network.connectivityManager)
    ], maxRetryCount: 10)
    
    See more

    Declaration

    Swift

    public enum RequestInterceptors
  • Parameters for configuring a resource refresher.

    See more

    Declaration

    Swift

    public struct RefreshParameters
  • An object that refreshes a single resource at regular intervals.

    Refresh is requested by the user of ths class, but it’s ignored unless the required intervals have passed. The resource is cached locally and it’s re-read only on initialization or when subscribing onResourceLoaded.

    You can listen to resource updates by using the onResourceLoaded observable. This will first push an event with a resource read from disk, if present, and then all refreshes from remote.

    See more

    Declaration

    Swift

    public class ResourceRefresher<Resource> where Resource : Decodable, Resource : Encodable
  • A builder for URLRequests to send through a NetworkClient.

    Use the makePOST(url:json:) / makeGET(url:etag:) factories to start a request, chain the builder methods to configure it, and hand the builder to NetworkClient.sendRequest(_:completion:) (which builds it for you). Request bodies are uncompressed by default; opt into gzip compression with gzip().

    See more

    Declaration

    Swift

    public class RequestBuilder
    extension RequestBuilder: CustomStringConvertible
  • A storage to persist a resource and it’s etag, when available.

    Resource is stored in the DataStore at the provided fileName, while the etag will be stored at \(fileName)_etag

    See more

    Declaration

    Swift

    public class ResourceCacher<Resource> where Resource : Decodable, Resource : Encodable
  • What to do when a Retry-After header is above the maximum delay allowed for a retry.

    See more

    Declaration

    Swift

    public enum RetryAfterAboveMaxDelay
  • The policy, returned by a RequestInterceptor that the NetworkClient should apply on a given NetworkResponse.

    See more

    Declaration

    Swift

    public enum RetryPolicy
  • URL

    Declaration

    Swift

    From TealiumPrismCore:
    extension URL: URLConvertible
  • Declaration

    Swift

    From TealiumPrismCore:
    extension URLComponents: URLConvertible
  • A protocol used to receive requests with String/URL/URLComponents intercheangebly

    See more

    Declaration

    Swift

    public protocol URLConvertible
  • ErrorCooldown From TealiumPrismCore

    An object that increases a cooldown for every error event, and resets the cooldown to 0 when a non-error event happens.

    Declaration

    Swift

    public class ErrorCooldown
  • A response containing a decoded object and the HTTP response.

    See more

    Declaration

    Swift

    public struct ObjectResponse<T>
  • ObjectResult From TealiumPrismCore

    A result type for object responses.

    Declaration

    Swift

    public typealias ObjectResult<T> = Result<ObjectResponse<T>, NetworkError>