OfflineRequestManager
final class OfflineRequestManager : NSObject, NSCoding, ServiceProvider
Class for handling outstanding network requests; all data is written to disk in the case of app termination
-
Object listening to all callbacks from the OfflineRequestManager. Must implement either delegate or requestInstantiationBlock to send archived requests when recovering from app termination
Declaration
Swift
var delegate: OfflineRequestManagerDelegate? { get set } -
Alternative means that allows instantiation of OfflineRequest objects from the dictionaries saved to disk without requiring a dedicated delegate
Declaration
Swift
var requestInstantiationBlock: (([String : Any]) -> OfflineRequest?)? { get set } -
Property indicating whether there is currently an internet connection
Declaration
Swift
private(set) var connected: Bool { get set } -
Total number of ongoing requests
Declaration
Swift
private(set) var totalRequestCount: Int -
Index of current request within the currently ongoing requests
Declaration
Swift
private(set) var completedRequestCount: Int -
Current request list
Declaration
Swift
var requests: [OfflineRequest] { get } -
Connectivity used to observe connectivity status. Can be set to nil to allow requests to be attempted when offline
Declaration
Swift
var connectivity: Connectivity? -
Time limit in seconds before OfflineRequestManager will kill an ongoing OfflineRequest
Declaration
Swift
var requestTimeLimit: TimeInterval -
Maximum number of simultaneous requests allowed
Declaration
Swift
var simultaneousRequestCap: Int -
Time between submission attempts
Declaration
Swift
var submissionInterval: TimeInterval { get set } -
Name of file in Documents directory to which OfflineRequestManager object is archived by default
Declaration
Swift
static let defaultFileName: String -
Default singleton OfflineRequestManager
Declaration
Swift
static var defaultManager: OfflineRequestManager { get } -
Current progress for all ongoing requests (ranges from 0 to 1)
Declaration
Swift
private(set) var progress: Double { get set } -
Request actions currently being executed
Declaration
Swift
private(set) var ongoingRequests: [OfflineRequest] -
Request all queued actions
Declaration
Swift
private(set) var incompleteRequests: [OfflineRequest] -
Generates an OfflineRequestManager instance tied to a file name in the Documents directory Creates a new object or pulls up the object written to disk if possible
Declaration
Swift
static func manager(withFileName fileName: String) -> OfflineRequestManager -
Instantiates the OfflineRequestManager already written to disk if possible
Declaration
Swift
static func archivedManager(fileName: String = defaultFileName) -> OfflineRequestManager? -
Enqueues a single OfflineRequest
Declaration
Swift
func queueRequest(_ request: OfflineRequest, startImmediately: Bool = true)Parameters
requestOfflineRequest to be queued
startImmediatelyindicates whether an attempt should be made immediately or deferred until the next timer
-
Clears out the current OfflineRequest queue and returns to a neutral state
Declaration
Swift
func clearAllRequests() -
Writes the OfflineRequestManager instances to the Documents directory
Declaration
Swift
func saveToDisk() -
Enqueues an array of OfflineRequest objects
Declaration
Swift
func queueRequests(_ requests: [OfflineRequest], startImmediately: Bool = true)Parameters
requestArray of OfflineRequest objects to be queued
startImmediatelyindicates whether an attempt should be made immediately or deferred until the next timer
-
Allows for adjustment to pending requests before they are executed
Declaration
Swift
func modifyPendingRequests(_ modifyBlock: (([OfflineRequest]) -> [OfflineRequest]))Parameters
modifyBlockblock making any necessary adjustments to the array of pending requests
-
Take next operation from queue
Declaration
Swift
@objc func attemptNextOperation()
-
Declaration
Swift
func request(_ request: OfflineRequest, didUpdateTo progress: Double) -
Declaration
Swift
func requestNeedsSave(_ request: OfflineRequest) -
Declaration
Swift
func requestSentHeartbeat(_ request: OfflineRequest)
View on GitHub
OfflineRequestManager Class Reference