CocoaShare/Classes/Dropbox/DropboxSDK/DBRequest.h
2011-02-01 10:19:26 -06:00

76 lines
2.4 KiB
Objective-C

//
// DBRestRequest.h
// DropboxSDK
//
// Created by Brian Smith on 4/9/10.
// Copyright 2010 Dropbox, Inc. All rights reserved.
//
@protocol DBNetworkRequestDelegate;
/* DBRestRequest will download a URL either into a file that you provied the name to or it will
create an NSData object with the result. When it has completed downloading the URL, it will
notify the target with a selector that takes the DBRestRequest as the only parameter. */
@interface DBRequest : NSObject {
NSURLRequest* request;
id target;
SEL selector;
NSURLConnection* urlConnection;
NSFileHandle* fileHandle;
SEL failureSelector;
SEL downloadProgressSelector;
SEL uploadProgressSelector;
NSString* resultFilename;
NSString* tempFilename;
NSDictionary* userInfo;
NSHTTPURLResponse* response;
int bytesDownloaded;
float downloadProgress;
float uploadProgress;
NSMutableData* resultData;
NSError* error;
}
/* Set this to get called when _any_ request starts or stops. This should hook into whatever
network activity indicator system you have. */
+ (void)setNetworkRequestDelegate:(id<DBNetworkRequestDelegate>)delegate;
/* This constructor downloads the URL into the resultData object */
- (id)initWithURLRequest:(NSURLRequest*)request andInformTarget:(id)target selector:(SEL)selector;
/* Cancels the request and prevents it from sending additional messages to the delegate. */
- (void)cancel;
- (void)setFailureSelector:(SEL)theSelector; // To send failure events to a different selector set this
- (SEL)failureSelector;
- (void)setDownloadProgressSelector:(SEL)theSelector; // To receive download progress events set this
- (SEL)downloadProgressSelector;
- (void)setUploadProgressSelector:(SEL)theSelector; // To receive upload progress events set this
- (SEL)uploadProgressSelector;
- (void)setResultFilename:(NSString *)theName; // The file to put the HTTP body in, otherwise body is stored in resultData
- (NSString *)resultFilename;
- (void)setUserInfo:(NSDictionary *)theInfo;
- (NSDictionary *)userInfo;
- (NSURLRequest *)request;
- (NSHTTPURLResponse *)response;
- (int)statusCode;
- (float)downloadProgress;
- (float)uploadProgress;
- (NSData *)resultData;
- (NSString *)resultString;
- (NSObject *)resultJSON;
- (NSError *)error;
@end
@protocol DBNetworkRequestDelegate
- (void)networkRequestStarted;
- (void)networkRequestStopped;
@end