Network

  • Protocol for sending network requests and handling responses.

    See more

    Declaration

    Swift

    public protocol NetworkClient
  • The configuration that is used by the NetworkClient to customize it’s behavior.

    You almost never need to change this as most of the Networking should happen via the shared NetworkingClient instance. If you need to add new interceptors you can do that directly on the NetworkClient.

    In case you really want to create a new client, start off from the NetworkConfiguration.defaultand edit it. Make sure to use a URLSessionConfiguration without cache and make sure to have at least the default interceptors.

    See more

    Declaration

    Swift

    public struct NetworkConfiguration
  • An error reported by the NetworkClient.

    See more

    Declaration

    Swift

    public enum NetworkError : Error, ErrorEnum
    extension NetworkError: Equatable
  • A helper class that provides convenient methods for common network operations.

    See more

    Declaration

    Swift

    public class NetworkHelper : NetworkHelperProtocol
  • Protocol defining methods for common network operations.

    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>
  • A manager that handles system connectivity monitor and empirical connectivity monitor to establish when connectivity is actually available or not on the device.

    The default behavior would be to always assume that connectivity is available until system monitor or empirical connectivity result unavailable or unknown.

    See more

    Declaration

    Swift

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

    See more

    Declaration

    Swift

    public protocol ConnectivityManagerProtocol : RequestInterceptor
  • An HTTP client that sends URLRequests via a URLSession.

    URLRequests are sent as is and are retried according to the RequestInterceptors logic when necessary. RequestInterceptors are also notified of other events concerning the request lifecycle. Some of these events are related to the HTTPClient logic and some are just URLSessionDelegate events being forwarded.

    You should almost never create a new instance of this class but rather use the shared instance, as it’s configured with sensible defaults and using one URLSession comes with a series of optimizations. If you need to create a new instance make sure to start from a default configuration and only add new interceptors to the default ones.

    See more

    Declaration

    Swift

    public class HTTPClient : NetworkClient
  • An interceptor that retries all retriable errors

    See more

    Declaration

    Swift

    public class DefaultInterceptor : RequestInterceptor
  • A class that handles some messages from the URLSession. It forwards them to the interceptors along with some other internal network client messages.

    See more

    Declaration

    Swift

    public class InterceptorManager : NSObject, InterceptorManagerProtocol
  • Protocol for managing request interceptors and handling network results.

    See more

    Declaration

    Swift

    public protocol InterceptorManagerProtocol : URLSessionTaskDelegate
  • Protocol for intercepting and handling network requests and responses.

    See more

    Declaration

    Swift

    public protocol RequestInterceptor : AnyObject
  • 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 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
  • 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>