blob: 6d87b5e538c226213ce857558186eb44215c472b [file] [log] [blame]
#import "MultipartMessageHeader.h"
/*
Part one: http://tools.ietf.org/html/rfc2045 (Format of Internet Message Bodies)
Part two: http://tools.ietf.org/html/rfc2046 (Media Types)
Part three: http://tools.ietf.org/html/rfc2047 (Message Header Extensions for Non-ASCII Text)
Part four: http://tools.ietf.org/html/rfc4289 (Registration Procedures)
Part five: http://tools.ietf.org/html/rfc2049 (Conformance Criteria and Examples)
Internet message format: http://tools.ietf.org/html/rfc2822
Multipart/form-data http://tools.ietf.org/html/rfc2388
*/
@class MultipartFormDataParser;
//-----------------------------------------------------------------
// protocol MultipartFormDataParser
//-----------------------------------------------------------------
@protocol MultipartFormDataParserDelegate <NSObject>
@optional
- (void) processContent:(NSData*) data WithHeader:(MultipartMessageHeader*) header;
- (void) processEndOfPartWithHeader:(MultipartMessageHeader*) header;
- (void) processPreambleData:(NSData*) data;
- (void) processEpilogueData:(NSData*) data;
- (void) processStartOfPartWithHeader:(MultipartMessageHeader*) header;
@end
//-----------------------------------------------------------------
// interface MultipartFormDataParser
//-----------------------------------------------------------------
@interface MultipartFormDataParser : NSObject {
NSMutableData* pendingData;
NSData* boundaryData;
MultipartMessageHeader* currentHeader;
BOOL waitingForCRLF;
BOOL reachedEpilogue;
BOOL processedPreamble;
BOOL checkForContentEnd;
#if __has_feature(objc_arc_weak)
__weak id<MultipartFormDataParserDelegate> delegate;
#else
__unsafe_unretained id<MultipartFormDataParserDelegate> delegate;
#endif
int currentEncoding;
NSStringEncoding formEncoding;
}
- (BOOL) appendData:(NSData*) data;
- (id) initWithBoundary:(NSString*) boundary formEncoding:(NSStringEncoding) formEncoding;
#if __has_feature(objc_arc_weak)
@property(weak, readwrite) id delegate;
#else
@property(unsafe_unretained, readwrite) id delegate;
#endif
@property(readwrite) NSStringEncoding formEncoding;
@end