Sources/SPTDataLoader/SPTDataLoaderRequestResponseHandler.h (32 lines of code) (raw):

/* Copyright Spotify AB. SPDX-License-Identifier: Apache-2.0 */ #import <Foundation/Foundation.h> @class SPTDataLoaderRequest; @class SPTDataLoaderResponse; @protocol SPTDataLoaderRequestResponseHandler; NS_ASSUME_NONNULL_BEGIN /** A private delegate API for the creator of SPTDataLoader to use for routing requests through a user authentication layer */ @protocol SPTDataLoaderRequestResponseHandlerDelegate <NSObject> /** Performs a request @param requestResponseHandler The object that can perform requests and responses @param request The object describing the request to perform */ - (void)requestResponseHandler:(id<SPTDataLoaderRequestResponseHandler>)requestResponseHandler performRequest:(SPTDataLoaderRequest *)request; /** Cancels a request @param requestResponseHandler The object that can perform cancels @param request The object describing the request to cancel */ - (void)requestResponseHandler:(id<SPTDataLoaderRequestResponseHandler>)requestResponseHandler cancelRequest:(SPTDataLoaderRequest *)request; @optional /** Delegate a successfully authorised request @param requestResponseHandler The handler that successfully authorised the request @param request The request that contains the authorisation headers */ - (void)requestResponseHandler:(id<SPTDataLoaderRequestResponseHandler>)requestResponseHandler authorisedRequest:(SPTDataLoaderRequest *)request; /** Delegate a failed authorisation attempt for a request @param requestResponseHandler The handler that failed to authorise the request @param request The request whose authorisation failed @param error The object describing the failure in the authorisation request */ - (void)requestResponseHandler:(id<SPTDataLoaderRequestResponseHandler>)requestResponseHandler failedToAuthoriseRequest:(SPTDataLoaderRequest *)request error:(NSError *)error; @end @protocol SPTDataLoaderRequestResponseHandler <NSObject> /** The object to delegate performing requests to */ @property (nonatomic, weak, readonly, nullable) id<SPTDataLoaderRequestResponseHandlerDelegate> requestResponseHandlerDelegate; /** Call when a response successfully completed @param response The response that successfully completed */ - (void)successfulResponse:(SPTDataLoaderResponse *)response; /** Call when a response failed to complete @param response The response that failed to complete */ - (void)failedResponse:(SPTDataLoaderResponse *)response; /** Call when a request becomes cancelled @param request The request that was cancelled */ - (void)cancelledRequest:(SPTDataLoaderRequest *)request; /** Called when a chunk is received @param data The data received by the request @param response The response the chunk is received for */ - (void)receivedDataChunk:(NSData *)data forResponse:(SPTDataLoaderResponse *)response; /** Called when the headers for a response are received @param response The response containing the initial information (such as headers) */ - (void)receivedInitialResponse:(SPTDataLoaderResponse *)response; /** Called when a request with waitsForConnectivity enters the waiting state @param request The request that is waiting */ - (void)requestIsWaitingForConnectivity:(SPTDataLoaderRequest *)request; /** Called when a request using the @c bodyStream property encounters some sort of redirection that invalidates the initially provided input stream. @param completionHandler The completion handler that is to be called with the new input stream. @param request The request that needs a new input stream. */ - (void)needsNewBodyStream:(void (^)(NSInputStream *))completionHandler forRequest:(SPTDataLoaderRequest *)request; @optional /** Whether the request needs authorisation according to this handler @param request The request that may need authorisation */ - (BOOL)shouldAuthoriseRequest:(SPTDataLoaderRequest *)request; /** Authorise a request @param request The request to be authorise */ - (void)authoriseRequest:(SPTDataLoaderRequest *)request; @end NS_ASSUME_NONNULL_END