2003-11-24 10:54:11 +00:00
|
|
|
/** GSWDefaultAdaptorThread.h - <title>GSWeb: Class GSWDefaultAdaptorThread</title>
|
|
|
|
|
|
|
|
Copyright (C) 1999-2003 Free Software Foundation, Inc.
|
2000-01-22 12:49:49 +00:00
|
|
|
|
2002-03-06 23:13:23 +00:00
|
|
|
Written by: Manuel Guesdon <mguesdon@orange-concept.com>
|
2000-01-22 12:49:49 +00:00
|
|
|
Date: Feb 1999
|
|
|
|
|
|
|
|
This file is part of the GNUstep Web Library.
|
|
|
|
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Library General Public
|
|
|
|
License as published by the Free Software Foundation; either
|
|
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Library General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Library General Public
|
|
|
|
License along with this library; if not, write to the Free
|
|
|
|
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
2002-03-06 23:13:23 +00:00
|
|
|
**/
|
2000-01-22 12:49:49 +00:00
|
|
|
|
|
|
|
// $Id$
|
|
|
|
|
|
|
|
#ifndef _GSWDefaultAdaptorThread_h__
|
|
|
|
#define _GSWDefaultAdaptorThread_h__
|
|
|
|
|
|
|
|
|
|
|
|
//==============================================================================
|
|
|
|
@interface GSWDefaultAdaptorThread: NSObject
|
|
|
|
{
|
2002-03-06 23:13:23 +00:00
|
|
|
GSWApplication* _application;
|
|
|
|
GSWAdaptor* _adaptor;
|
|
|
|
NSFileHandle* _stream;
|
|
|
|
NSAutoreleasePool* _pool;
|
|
|
|
BOOL _keepAlive;
|
|
|
|
NSRunLoop* _currentRunLoop;
|
|
|
|
NSDate* _runLoopDate;
|
|
|
|
BOOL _isMultiThread;
|
|
|
|
NSDate* _creationDate;
|
|
|
|
NSDate* _runDate;
|
|
|
|
NSDate* _dispatchRequestDate;
|
|
|
|
NSDate* _sendResponseDate;
|
2002-05-14 11:28:50 +00:00
|
|
|
NSString* _remoteAddress;
|
2002-03-06 23:13:23 +00:00
|
|
|
int _requestNamingConv;//GSWNAMES_INDEX or WONAMES_INDEX
|
2000-01-22 12:49:49 +00:00
|
|
|
}
|
|
|
|
|
2002-03-06 23:13:23 +00:00
|
|
|
-(id)initWithApp:(GSWApplication*)application
|
|
|
|
withAdaptor:(GSWAdaptor*)adaptor
|
|
|
|
withStream:(NSFileHandle*)stream;
|
2000-01-22 12:49:49 +00:00
|
|
|
|
2002-03-06 23:13:23 +00:00
|
|
|
-(void)run:(id)nothing;
|
2000-01-22 12:49:49 +00:00
|
|
|
|
|
|
|
-(GSWAdaptor*)adaptor;
|
|
|
|
-(NSAutoreleasePool*)pool;
|
2002-03-06 23:13:23 +00:00
|
|
|
-(void)setPool:(NSAutoreleasePool*)pool
|
|
|
|
destroyLast:(BOOL)destroy;
|
2000-01-22 12:49:49 +00:00
|
|
|
|
2002-03-06 23:13:23 +00:00
|
|
|
+(NSMutableArray*)completeLinesWithData:(NSMutableData*)data
|
|
|
|
returnedConsumedCount:(int*)consumedCount
|
|
|
|
returnedHeadersEndFlag:(BOOL*)headersEndFlag;
|
|
|
|
|
|
|
|
-(BOOL)readRequestReturnedRequestLine:(NSString**)requestLine
|
|
|
|
returnedHeaders:(NSDictionary**)headers
|
|
|
|
returnedData:(NSData**)data;
|
|
|
|
-(GSWRequest*)createRequestFromRequestLine:(NSString*)requestLine
|
|
|
|
headers:(NSDictionary*)headers
|
|
|
|
data:(NSData*)data;
|
2000-01-22 12:49:49 +00:00
|
|
|
-(void)sendResponse:(GSWResponse*)response;
|
|
|
|
-(void)threadExited;
|
2002-03-06 23:13:23 +00:00
|
|
|
+(id)threadExited:(NSNotification*)notif;
|
2001-10-28 10:29:17 +00:00
|
|
|
-(NSDate*)creationDate;
|
|
|
|
-(BOOL)isExpired;
|
2002-03-06 23:13:23 +00:00
|
|
|
|
|
|
|
+(void)sendResponse:(GSWResponse*)response
|
|
|
|
toStream:(NSFileHandle*)aStream
|
2002-05-14 11:28:50 +00:00
|
|
|
withNamingConv:(int)requestNamingConv
|
|
|
|
withAdditionalHeaderLines:(NSArray*)addHeaders
|
|
|
|
withRemoteAddress:(NSString*)remoteAddress;
|
2002-03-06 23:13:23 +00:00
|
|
|
|
|
|
|
+(void)sendRetryLasterResponseToStream:(NSFileHandle*)stream;
|
|
|
|
+(void)sendConnectionRefusedResponseToStream:(NSFileHandle*)stream
|
|
|
|
withMessage:(NSString*)message;
|
2000-01-22 12:49:49 +00:00
|
|
|
@end
|
|
|
|
|
|
|
|
#endif
|