URLDownloader.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // URLDownloader.h
  3. // iOS-URLDownloader
  4. //
  5. // Created by Kristijan Sedlak on 7/21/11.
  6. // Copyright 2011 AppStrides. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "URLCredential.h"
  10. @class URLDownloader;
  11. #pragma mark -
  12. typedef enum
  13. {
  14. URLDownloaderStateInactive = 0,
  15. URLDownloaderStateConnecting = 1,
  16. URLDownloaderStateAuthenticating = 2,
  17. URLDownloaderStateStarted = 3,
  18. URLDownloaderStateDownloading = 4,
  19. URLDownloaderStateFinished = 5,
  20. URLDownloaderStateCanceled = 6
  21. }
  22. URLDownloaderState;
  23. #pragma mark -
  24. @protocol URLDownloaderDelegate <NSObject>
  25. @required
  26. - (void)urlDownloader:(URLDownloader *)urlDownloader didFinishWithData:(NSData *)data;
  27. - (void)urlDownloader:(URLDownloader *)urlDownloader didFailOnAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge;
  28. - (void)urlDownloader:(URLDownloader *)urlDownloader didFailWithError:(NSError *)error;
  29. - (void)urlDownloader:(URLDownloader *)urlDownloader didFailWithNotConnectedToInternetError:(NSError *)error;
  30. @optional
  31. - (void)urlDownloaderDidStart:(URLDownloader *)urlDownloader;
  32. - (void)urlDownloaderDidCancelDownloading:(URLDownloader *)urlDownloader;
  33. - (void)urlDownloader:(URLDownloader *)urlDownloader didReceiveData:(NSData *)data;
  34. - (void)urlDownloader:(URLDownloader *)urlDownloader didChangeStateTo:(URLDownloaderState)state;
  35. @end
  36. #pragma mark -
  37. @interface URLDownloader : NSObject
  38. {
  39. id <URLDownloaderDelegate> delegate;
  40. NSURLConnection *urlConnection;
  41. NSURLResponse *urlResponse;
  42. NSMutableData *urlData;
  43. URLCredential *urlCredential;
  44. URLDownloaderState state;
  45. float bytesReceived;
  46. }
  47. @property(retain) id <URLDownloaderDelegate> delegate;
  48. @property(nonatomic, readonly) URLDownloaderState state;
  49. + (id)downloaderWithDelegate:(id)obj;
  50. - (id)initWithDelegate:(id)obj;
  51. - (void)download:(NSURLRequest *)request withCredential:(URLCredential *)credential;
  52. - (void)cancel;
  53. - (int)fullContentSize;
  54. - (int)downloadedContentSize;
  55. - (float)downloadCompleteProcent;
  56. @end