aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMHTTPServer.h
diff options
context:
space:
mode:
Diffstat (limited to 'Foundation/GTMHTTPServer.h')
-rw-r--r--Foundation/GTMHTTPServer.h144
1 files changed, 0 insertions, 144 deletions
diff --git a/Foundation/GTMHTTPServer.h b/Foundation/GTMHTTPServer.h
deleted file mode 100644
index 3920968..0000000
--- a/Foundation/GTMHTTPServer.h
+++ /dev/null
@@ -1,144 +0,0 @@
-//
-// GTMHTTPServer.h
-//
-// This is a *very* *simple* webserver that can be built into something, it is
-// not meant to stand up a site, it sends all requests to its delegate for
-// processing on the main thread. It does not support pipelining, etc. It's
-// great for places where you need a simple webserver to unittest some code
-// that hits a server.
-//
-// NOTE: there are several TODOs left in here as markers for things that could
-// be done if one wanted to add more to this class.
-//
-// Copyright 2008 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may not
-// use this file except in compliance with the License. You may obtain a copy
-// of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations under
-// the License.
-//
-// Based a little on HTTPServer, part of the CocoaHTTPServer sample code
-// http://developer.apple.com/samplecode/CocoaHTTPServer/index.html
-//
-
-#import <Foundation/Foundation.h>
-#import "GTMDefines.h"
-
-#if GTM_IPHONE_SDK
-#import <CFNetwork/CFNetwork.h>
-#endif // GTM_IPHONE_SDK
-
-// Global contants needed for errors from start
-
-#undef _EXTERN
-#undef _INITIALIZE_AS
-#ifdef GTMHTTPSERVER_DEFINE_GLOBALS
-#define _EXTERN
-#define _INITIALIZE_AS(x) =x
-#else
-#define _EXTERN GTM_EXTERN
-#define _INITIALIZE_AS(x)
-#endif
-
-_EXTERN NSString* kGTMHTTPServerErrorDomain _INITIALIZE_AS(@"com.google.mactoolbox.HTTPServerDomain");
-enum {
- kGTMHTTPServerSocketCreateFailedError = -100,
- kGTMHTTPServerBindFailedError = -101,
- kGTMHTTPServerListenFailedError = -102,
- kGTMHTTPServerHandleCreateFailedError = -103,
-};
-
-@class GTMHTTPRequestMessage, GTMHTTPResponseMessage;
-
-// ----------------------------------------------------------------------------
-
-// See comment at top of file for the intened use of this class.
-@interface GTMHTTPServer : NSObject {
- @private
- __weak id delegate_;
- uint16_t port_;
- BOOL reusePort_;
- BOOL localhostOnly_;
- NSFileHandle *listenHandle_;
- NSMutableArray *connections_;
-}
-
-// The delegate must support the httpServer:handleRequest: method in
-// NSObject(GTMHTTPServerDelegateMethods) below.
-- (id)initWithDelegate:(id)delegate;
-
-- (id)delegate;
-
-// Passing port zero will let one get assigned.
-- (uint16_t)port;
-- (void)setPort:(uint16_t)port;
-
-// Controls listening socket behavior: SO_REUSEADDR vs SO_REUSEPORT.
-// The default is NO (SO_REUSEADDR)
-- (BOOL)reusePort;
-- (void)setReusePort:(BOOL)reusePort;
-
-// Receive connections on the localHost loopback address only or on all
-// interfaces for this machine. The default is to only listen on localhost.
-- (BOOL)localhostOnly;
-- (void)setLocalhostOnly:(BOOL)yesno;
-
-// Start/Stop the web server. If there is an error starting up the server, |NO|
-// is returned, and the specific startup failure can be returned in |error| (see
-// above for the error domain and error codes). If the server is started, |YES|
-// is returned and the server's delegate is called for any requests that come
-// in.
-- (BOOL)start:(NSError **)error;
-- (void)stop;
-
-// returns the number of requests currently active in the server (i.e.-being
-// read in, sent replies).
-- (NSUInteger)activeRequestCount;
-
-@end
-
-@interface NSObject (GTMHTTPServerDelegateMethods)
-- (GTMHTTPResponseMessage *)httpServer:(GTMHTTPServer *)server
- handleRequest:(GTMHTTPRequestMessage *)request;
-@end
-
-// ----------------------------------------------------------------------------
-
-// Encapsulates an http request, one of these is sent to the server's delegate
-// for each request.
-@interface GTMHTTPRequestMessage : NSObject {
- @private
- CFHTTPMessageRef message_;
-}
-- (NSString *)version;
-- (NSURL *)URL;
-- (NSString *)method;
-- (NSData *)body;
-- (NSDictionary *)allHeaderFieldValues;
-@end
-
-// ----------------------------------------------------------------------------
-
-// Encapsulates an http response, the server's delegate should return one for
-// each request received.
-@interface GTMHTTPResponseMessage : NSObject {
- @private
- CFHTTPMessageRef message_;
-}
-+ (id)responseWithString:(NSString *)plainText;
-+ (id)responseWithHTMLString:(NSString *)htmlString;
-+ (id)responseWithBody:(NSData *)body
- contentType:(NSString *)contentType
- statusCode:(int)statusCode;
-+ (id)emptyResponseWithCode:(int)statusCode;
-// TODO: class method for redirections?
-// TODO: add helper for expire/no-cache
-- (void)setValue:(NSString*)value forHeaderField:(NSString*)headerField;
-@end