mirror of
https://github.com/swisspol/GCDWebServer.git
synced 2026-04-05 00:04:17 +08:00
Move ivars to class extensions
This commit is contained in:
@@ -31,14 +31,7 @@
|
||||
typedef GCDWebServerRequest* (^GCDWebServerMatchBlock)(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery);
|
||||
typedef GCDWebServerResponse* (^GCDWebServerProcessBlock)(GCDWebServerRequest* request);
|
||||
|
||||
@interface GCDWebServer : NSObject {
|
||||
@private
|
||||
NSMutableArray* _handlers;
|
||||
|
||||
NSUInteger _port;
|
||||
dispatch_source_t _source;
|
||||
CFNetServiceRef _service;
|
||||
}
|
||||
@interface GCDWebServer : NSObject
|
||||
@property(nonatomic, readonly, getter=isRunning) BOOL running;
|
||||
@property(nonatomic, readonly) NSUInteger port;
|
||||
@property(nonatomic, readonly) NSString* bonjourName; // Only non-nil if Bonjour registration is active
|
||||
|
||||
@@ -36,6 +36,23 @@
|
||||
|
||||
#define kMaxPendingConnections 16
|
||||
|
||||
@interface GCDWebServer () {
|
||||
@private
|
||||
NSMutableArray* _handlers;
|
||||
|
||||
NSUInteger _port;
|
||||
dispatch_source_t _source;
|
||||
CFNetServiceRef _service;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface GCDWebServerHandler () {
|
||||
@private
|
||||
GCDWebServerMatchBlock _matchBlock;
|
||||
GCDWebServerProcessBlock _processBlock;
|
||||
}
|
||||
@end
|
||||
|
||||
static BOOL _run;
|
||||
|
||||
NSString* GCDWebServerGetMimeTypeForExtension(NSString* extension) {
|
||||
|
||||
@@ -29,20 +29,7 @@
|
||||
|
||||
@class GCDWebServerHandler;
|
||||
|
||||
@interface GCDWebServerConnection : NSObject {
|
||||
@private
|
||||
GCDWebServer* _server;
|
||||
NSData* _address;
|
||||
CFSocketNativeHandle _socket;
|
||||
NSUInteger _bytesRead;
|
||||
NSUInteger _bytesWritten;
|
||||
|
||||
CFHTTPMessageRef _requestMessage;
|
||||
GCDWebServerRequest* _request;
|
||||
GCDWebServerHandler* _handler;
|
||||
CFHTTPMessageRef _responseMessage;
|
||||
GCDWebServerResponse* _response;
|
||||
}
|
||||
@interface GCDWebServerConnection : NSObject
|
||||
@property(nonatomic, readonly) GCDWebServer* server;
|
||||
@property(nonatomic, readonly) NSData* address; // struct sockaddr
|
||||
@property(nonatomic, readonly) NSUInteger totalBytesRead;
|
||||
|
||||
@@ -45,6 +45,22 @@ static NSData* _continueData = nil;
|
||||
static NSDateFormatter* _dateFormatter = nil;
|
||||
static dispatch_queue_t _formatterQueue = NULL;
|
||||
|
||||
@interface GCDWebServerConnection () {
|
||||
@private
|
||||
GCDWebServer* _server;
|
||||
NSData* _address;
|
||||
CFSocketNativeHandle _socket;
|
||||
NSUInteger _bytesRead;
|
||||
NSUInteger _bytesWritten;
|
||||
|
||||
CFHTTPMessageRef _requestMessage;
|
||||
GCDWebServerRequest* _request;
|
||||
GCDWebServerHandler* _handler;
|
||||
CFHTTPMessageRef _responseMessage;
|
||||
GCDWebServerResponse* _response;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation GCDWebServerConnection (Read)
|
||||
|
||||
- (void)_readBufferWithLength:(NSUInteger)length completionBlock:(ReadBufferCompletionBlock)block {
|
||||
|
||||
@@ -126,11 +126,7 @@ NSDictionary* GCDWebServerParseURLEncodedForm(NSString* form);
|
||||
@property(nonatomic, readonly) NSArray* handlers;
|
||||
@end
|
||||
|
||||
@interface GCDWebServerHandler : NSObject {
|
||||
@private
|
||||
GCDWebServerMatchBlock _matchBlock;
|
||||
GCDWebServerProcessBlock _processBlock;
|
||||
}
|
||||
@interface GCDWebServerHandler : NSObject
|
||||
@property(nonatomic, readonly) GCDWebServerMatchBlock matchBlock;
|
||||
@property(nonatomic, readonly) GCDWebServerProcessBlock processBlock;
|
||||
- (id)initWithMatchBlock:(GCDWebServerMatchBlock)matchBlock processBlock:(GCDWebServerProcessBlock)processBlock;
|
||||
|
||||
@@ -27,16 +27,7 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface GCDWebServerRequest : NSObject {
|
||||
@private
|
||||
NSString* _method;
|
||||
NSURL* _url;
|
||||
NSDictionary* _headers;
|
||||
NSString* _path;
|
||||
NSDictionary* _query;
|
||||
NSString* _type;
|
||||
NSUInteger _length;
|
||||
}
|
||||
@interface GCDWebServerRequest : NSObject
|
||||
@property(nonatomic, readonly) NSString* method;
|
||||
@property(nonatomic, readonly) NSURL* URL;
|
||||
@property(nonatomic, readonly) NSDictionary* headers;
|
||||
@@ -54,18 +45,11 @@
|
||||
- (BOOL)close; // Implementation required
|
||||
@end
|
||||
|
||||
@interface GCDWebServerDataRequest : GCDWebServerRequest {
|
||||
@private
|
||||
NSMutableData* _data;
|
||||
}
|
||||
@interface GCDWebServerDataRequest : GCDWebServerRequest
|
||||
@property(nonatomic, readonly) NSData* data; // Only valid after open / write / close sequence
|
||||
@end
|
||||
|
||||
@interface GCDWebServerFileRequest : GCDWebServerRequest {
|
||||
@private
|
||||
NSString* _filePath;
|
||||
int _file;
|
||||
}
|
||||
@interface GCDWebServerFileRequest : GCDWebServerRequest
|
||||
@property(nonatomic, readonly) NSString* filePath; // Only valid after open / write / close sequence
|
||||
@end
|
||||
|
||||
@@ -77,48 +61,22 @@
|
||||
+ (NSString*)mimeType;
|
||||
@end
|
||||
|
||||
@interface GCDWebServerMultiPart : NSObject {
|
||||
@private
|
||||
NSString* _contentType;
|
||||
NSString* _mimeType;
|
||||
}
|
||||
@interface GCDWebServerMultiPart : NSObject
|
||||
@property(nonatomic, readonly) NSString* contentType; // May be nil
|
||||
@property(nonatomic, readonly) NSString* mimeType; // Defaults to "text/plain" per specifications if undefined
|
||||
@end
|
||||
|
||||
@interface GCDWebServerMultiPartArgument : GCDWebServerMultiPart {
|
||||
@private
|
||||
NSData* _data;
|
||||
NSString* _string;
|
||||
}
|
||||
@interface GCDWebServerMultiPartArgument : GCDWebServerMultiPart
|
||||
@property(nonatomic, readonly) NSData* data;
|
||||
@property(nonatomic, readonly) NSString* string; // May be nil (only valid for text mime types
|
||||
@end
|
||||
|
||||
@interface GCDWebServerMultiPartFile : GCDWebServerMultiPart {
|
||||
@private
|
||||
NSString* _fileName;
|
||||
NSString* _temporaryPath;
|
||||
}
|
||||
@interface GCDWebServerMultiPartFile : GCDWebServerMultiPart
|
||||
@property(nonatomic, readonly) NSString* fileName; // May be nil
|
||||
@property(nonatomic, readonly) NSString* temporaryPath;
|
||||
@end
|
||||
|
||||
@interface GCDWebServerMultiPartFormRequest : GCDWebServerRequest {
|
||||
@private
|
||||
NSData* _boundary;
|
||||
|
||||
NSUInteger _parserState;
|
||||
NSMutableData* _parserData;
|
||||
NSString* _controlName;
|
||||
NSString* _fileName;
|
||||
NSString* _contentType;
|
||||
NSString* _tmpPath;
|
||||
int _tmpFile;
|
||||
|
||||
NSMutableDictionary* _arguments;
|
||||
NSMutableDictionary* _files;
|
||||
}
|
||||
@interface GCDWebServerMultiPartFormRequest : GCDWebServerRequest
|
||||
@property(nonatomic, readonly) NSDictionary* arguments; // Only valid after open / write / close sequence
|
||||
@property(nonatomic, readonly) NSDictionary* files; // Only valid after open / write / close sequence
|
||||
+ (NSString*)mimeType;
|
||||
|
||||
@@ -37,6 +37,69 @@ enum {
|
||||
kParserState_End
|
||||
};
|
||||
|
||||
@interface GCDWebServerRequest () {
|
||||
@private
|
||||
NSString* _method;
|
||||
NSURL* _url;
|
||||
NSDictionary* _headers;
|
||||
NSString* _path;
|
||||
NSDictionary* _query;
|
||||
NSString* _type;
|
||||
NSUInteger _length;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface GCDWebServerDataRequest () {
|
||||
@private
|
||||
NSMutableData* _data;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface GCDWebServerFileRequest () {
|
||||
@private
|
||||
NSString* _filePath;
|
||||
int _file;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface GCDWebServerMultiPart () {
|
||||
@private
|
||||
NSString* _contentType;
|
||||
NSString* _mimeType;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface GCDWebServerMultiPartArgument () {
|
||||
@private
|
||||
NSData* _data;
|
||||
NSString* _string;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface GCDWebServerMultiPartFile () {
|
||||
@private
|
||||
NSString* _fileName;
|
||||
NSString* _temporaryPath;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface GCDWebServerMultiPartFormRequest () {
|
||||
@private
|
||||
NSData* _boundary;
|
||||
|
||||
NSUInteger _parserState;
|
||||
NSMutableData* _parserData;
|
||||
NSString* _controlName;
|
||||
NSString* _fileName;
|
||||
NSString* _contentType;
|
||||
NSString* _tmpPath;
|
||||
int _tmpFile;
|
||||
|
||||
NSMutableDictionary* _arguments;
|
||||
NSMutableDictionary* _files;
|
||||
}
|
||||
@end
|
||||
|
||||
static NSData* _newlineData = nil;
|
||||
static NSData* _newlinesData = nil;
|
||||
static NSData* _dashNewlineData = nil;
|
||||
|
||||
@@ -27,14 +27,7 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface GCDWebServerResponse : NSObject {
|
||||
@private
|
||||
NSString* _type;
|
||||
NSUInteger _length;
|
||||
NSInteger _status;
|
||||
NSUInteger _maxAge;
|
||||
NSMutableDictionary* _headers;
|
||||
}
|
||||
@interface GCDWebServerResponse : NSObject
|
||||
@property(nonatomic, readonly) NSString* contentType;
|
||||
@property(nonatomic, readonly) NSUInteger contentLength;
|
||||
@property(nonatomic) NSInteger statusCode; // Default is 200
|
||||
@@ -60,11 +53,7 @@
|
||||
- (id)initWithRedirect:(NSURL*)location permanent:(BOOL)permanent;
|
||||
@end
|
||||
|
||||
@interface GCDWebServerDataResponse : GCDWebServerResponse {
|
||||
@private
|
||||
NSData* _data;
|
||||
NSInteger _offset;
|
||||
}
|
||||
@interface GCDWebServerDataResponse : GCDWebServerResponse
|
||||
+ (GCDWebServerDataResponse*)responseWithData:(NSData*)data contentType:(NSString*)type;
|
||||
- (id)initWithData:(NSData*)data contentType:(NSString*)type;
|
||||
@end
|
||||
@@ -78,11 +67,7 @@
|
||||
- (id)initWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables; // Simple template system that replaces all occurences of "%variable%" with corresponding value (encodes using UTF-8)
|
||||
@end
|
||||
|
||||
@interface GCDWebServerFileResponse : GCDWebServerResponse {
|
||||
@private
|
||||
NSString* _path;
|
||||
int _file;
|
||||
}
|
||||
@interface GCDWebServerFileResponse : GCDWebServerResponse
|
||||
+ (GCDWebServerFileResponse*)responseWithFile:(NSString*)path;
|
||||
+ (GCDWebServerFileResponse*)responseWithFile:(NSString*)path isAttachment:(BOOL)attachment;
|
||||
- (id)initWithFile:(NSString*)path;
|
||||
|
||||
@@ -29,6 +29,30 @@
|
||||
|
||||
#import "GCDWebServerPrivate.h"
|
||||
|
||||
@interface GCDWebServerResponse () {
|
||||
@private
|
||||
NSString* _type;
|
||||
NSUInteger _length;
|
||||
NSInteger _status;
|
||||
NSUInteger _maxAge;
|
||||
NSMutableDictionary* _headers;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface GCDWebServerDataResponse () {
|
||||
@private
|
||||
NSData* _data;
|
||||
NSInteger _offset;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface GCDWebServerFileResponse () {
|
||||
@private
|
||||
NSString* _path;
|
||||
int _file;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation GCDWebServerResponse
|
||||
|
||||
@synthesize contentType=_type, contentLength=_length, statusCode=_status, cacheControlMaxAge=_maxAge, additionalHeaders=_headers;
|
||||
|
||||
Reference in New Issue
Block a user