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
50
//
// VIMediaDownloader.h
// VIMediaCacheDemo
//
// Created by Vito on 4/21/16.
// Copyright © 2016 Vito. All rights reserved.
//
#import <Foundation/Foundation.h>
@protocol MediaDownloaderDelegate;
@class VIContentInfo;
@interface VIMediaDownloaderStatus : NSObject
+ (instancetype)shared;
/**
return YES if downloading the url source
*/
- (BOOL)containsURL:(NSURL *)url;
- (NSSet *)urls;
@end
@interface VIMediaDownloader : NSObject
- (instancetype)initWithURL:(NSURL *)url;
@property (nonatomic, strong, readonly) NSURL *url;
@property (nonatomic, weak) id<MediaDownloaderDelegate> delegate;
@property (nonatomic, strong) VIContentInfo *info;
- (void)downloadTaskFromOffset:(unsigned long long)fromOffset
length:(NSInteger)length
toEnd:(BOOL)toEnd;
- (void)downloadFromStartToEnd;
- (void)cancel;
- (void)invalidateAndCancel;
@end
@protocol MediaDownloaderDelegate <NSObject>
@optional
- (void)mediaDownloader:(VIMediaDownloader *)downloader didReceiveResponse:(NSURLResponse *)response;
- (void)mediaDownloader:(VIMediaDownloader *)downloader didReceiveData:(NSData *)data;
- (void)mediaDownloader:(VIMediaDownloader *)downloader didFinishedWithError:(NSError *)error;
@end