123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- #import "GTMSessionFetcher.h"
- #import "GTMSessionFetcherService.h"
- NS_ASSUME_NONNULL_BEGIN
- extern int64_t const kGTMSessionUploadFetcherUnknownFileSize;
- extern int64_t const kGTMSessionUploadFetcherStandardChunkSize;
- extern int64_t const kGTMSessionUploadFetcherMaximumDemandBufferSize;
- extern NSString *const kGTMSessionFetcherUploadLocationObtainedNotification;
- typedef void (^GTMSessionUploadFetcherDataProviderResponse)(NSData *_Nullable data,
- int64_t fullUploadLength,
- NSError *_Nullable error);
- typedef void (^GTMSessionUploadFetcherDataProvider)(
- int64_t offset, int64_t length, GTMSessionUploadFetcherDataProviderResponse response);
- typedef void (^GTMSessionUploadFetcherCancellationHandler)(GTMSessionFetcher *_Nullable fetcher,
- NSData *_Nullable data,
- NSError *_Nullable error);
- @interface GTMSessionUploadFetcher : GTMSessionFetcher
- + (instancetype)uploadFetcherWithRequest:(NSURLRequest *)request
- uploadMIMEType:(NSString *)uploadMIMEType
- chunkSize:(int64_t)chunkSize
- fetcherService:(nullable GTMSessionFetcherService *)fetcherServiceOrNil;
- + (instancetype)uploadFetcherWithLocation:(nullable NSURL *)uploadLocationURL
- uploadMIMEType:(NSString *)uploadMIMEType
- chunkSize:(int64_t)chunkSize
- fetcherService:(nullable GTMSessionFetcherService *)fetcherServiceOrNil;
- + (instancetype)uploadFetcherWithLocation:(nullable NSURL *)uploadLocationURL
- uploadMIMEType:(NSString *)uploadMIMEType
- chunkSize:(int64_t)chunkSize
- allowsCellularAccess:(BOOL)allowsCellularAccess
- fetcherService:(nullable GTMSessionFetcherService *)fetcherServiceOrNil;
- - (void)setUploadDataLength:(int64_t)fullLength
- provider:(nullable GTMSessionUploadFetcherDataProvider)block;
- + (NSArray *)uploadFetchersForBackgroundSessions;
- + (nullable instancetype)uploadFetcherForSessionIdentifier:(NSString *)sessionIdentifier;
- - (void)pauseFetching;
- - (void)resumeFetching;
- - (BOOL)isPaused;
- @property(atomic, strong, nullable) NSURL *uploadLocationURL;
- @property(atomic, strong, nullable) NSData *uploadData;
- @property(atomic, strong, nullable) NSURL *uploadFileURL;
- @property(atomic, strong, nullable) NSFileHandle *uploadFileHandle;
- @property(atomic, copy, readonly, nullable) GTMSessionUploadFetcherDataProvider uploadDataProvider;
- @property(atomic, copy) NSString *uploadMIMEType;
- @property(atomic, readonly, assign) int64_t chunkSize;
- @property(atomic, readonly, assign) int64_t currentOffset;
- @property(atomic, readonly, assign) BOOL allowsCellularAccess;
- @property(atomic, strong, nullable) GTMSessionFetcher *chunkFetcher;
- @property(atomic, readonly) GTMSessionFetcher *activeFetcher;
- @property(atomic, readonly, nullable) NSURLRequest *lastChunkRequest;
- @property(atomic, assign) NSInteger statusCode;
- @property(atomic, copy, nullable) GTMSessionUploadFetcherCancellationHandler cancellationHandler;
- @property(atomic, readonly, nullable) dispatch_queue_t delegateCallbackQueue;
- @property(atomic, readonly, nullable) GTMSessionFetcherCompletionHandler delegateCompletionHandler;
- @end
- @interface GTMSessionFetcher (GTMSessionUploadFetcherMethods)
- @property(readonly, nullable) GTMSessionUploadFetcher *parentUploadFetcher;
- @end
- NS_ASSUME_NONNULL_END
|