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