summaryrefslogtreecommitdiff
path: root/platform/darwin/include/MGLOfflineTask.h
blob: 72e66a50f520d4ef9d98b67ef20b9f374b55e438 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#import <Foundation/Foundation.h>

#import "MGLOfflineRegion.h"

NS_ASSUME_NONNULL_BEGIN

@protocol MGLOfflineTaskDelegate;

typedef NS_ENUM (NSInteger, MGLOfflineTaskState) {
    MGLOfflineTaskStateInactive = 0,
    MGLOfflineTaskStateActive = 1,
    MGLOfflineTaskStateComplete = 2,
};

typedef struct MGLOfflineTaskProgress {
    uint64_t countOfResourcesCompleted;
    uint64_t countOfBytesCompleted;
    uint64_t countOfResourcesExpected;
    uint64_t maximumResourcesExpected;
} MGLOfflineTaskProgress;

@interface MGLOfflineTask : NSObject

@property (nonatomic, readonly) id <MGLOfflineRegion> region;
@property (nonatomic, readonly) NSData *context;
@property (nonatomic, readonly) MGLOfflineTaskState state;
@property (nonatomic, readonly) MGLOfflineTaskProgress progress;
@property (nonatomic, weak, nullable) id <MGLOfflineTaskDelegate> delegate;

- (instancetype)init NS_UNAVAILABLE;

- (void)resume;
- (void)suspend;

- (void)requestProgress;

@end

@protocol MGLOfflineTaskDelegate <NSObject>

@optional

- (void)offlineTask:(MGLOfflineTask *)task progressDidChange:(MGLOfflineTaskProgress)progress;
- (void)offlineTask:(MGLOfflineTask *)task didReceiveError:(NSError *)error;
- (void)offlineTask:(MGLOfflineTask *)task didReceiveMaximumAllowedMapboxTiles:(uint64_t)maximumCount;

@end

NS_ASSUME_NONNULL_END