// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Inhttpwebbrokerbridge.pas' rev: 10.00

#ifndef InhttpwebbrokerbridgeHPP
#define InhttpwebbrokerbridgeHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Httpapp.hpp>	// Pascal unit
#include <Incontext.hpp>	// Pascal unit
#include <Incustomhttpserver.hpp>	// Pascal unit
#include <Intcpserver.hpp>	// Pascal unit
#include <Iniohandlersocket.hpp>	// Pascal unit
#include <Webbroker.hpp>	// Pascal unit
#include <Incomponent.hpp>	// Pascal unit
#include <Inbasecomponent.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Inhttpwebbrokerbridge
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TInHTTPAppRequest;
class PASCALIMPLEMENTATION TInHTTPAppRequest : public Httpapp::TWebRequest 
{
	typedef Httpapp::TWebRequest inherited;
	
protected:
	Incustomhttpserver::TInHTTPRequestInfo* FRequestInfo;
	Incustomhttpserver::TInHTTPResponseInfo* FResponseInfo;
	Incontext::TInContext* FThread;
	int FClientCursor;
	virtual System::TDateTime __fastcall GetDateVariable(int Index);
	virtual int __fastcall GetIntegerVariable(int Index);
	virtual AnsiString __fastcall GetStringVariable(int Index);
	
public:
	__fastcall TInHTTPAppRequest(Incontext::TInContext* AThread, Incustomhttpserver::TInHTTPRequestInfo* ARequestInfo, Incustomhttpserver::TInHTTPResponseInfo* AResponseInfo);
	virtual AnsiString __fastcall GetFieldByName(const AnsiString Name);
	virtual int __fastcall ReadClient(void *Buffer, int Count);
	virtual AnsiString __fastcall ReadString(int Count);
	virtual AnsiString __fastcall TranslateURI(const AnsiString URI);
	virtual int __fastcall WriteClient(void *ABuffer, int ACount);
	virtual bool __fastcall WriteHeaders(int StatusCode, const AnsiString ReasonString, const AnsiString Headers);
	virtual bool __fastcall WriteString(const AnsiString AString);
	__property Incustomhttpserver::TInHTTPRequestInfo* RequestInfo = {read=FRequestInfo};
public:
	#pragma option push -w-inl
	/* TWebRequest.Destroy */ inline __fastcall virtual ~TInHTTPAppRequest(void) { }
	#pragma option pop
	
};


class DELPHICLASS TInHTTPAppResponse;
class PASCALIMPLEMENTATION TInHTTPAppResponse : public Httpapp::TWebResponse 
{
	typedef Httpapp::TWebResponse inherited;
	
protected:
	AnsiString FContent;
	Incustomhttpserver::TInHTTPRequestInfo* FRequestInfo;
	Incustomhttpserver::TInHTTPResponseInfo* FResponseInfo;
	bool FSent;
	Incontext::TInContext* FThread;
	virtual AnsiString __fastcall GetContent();
	virtual System::TDateTime __fastcall GetDateVariable(int Index);
	virtual int __fastcall GetStatusCode(void);
	virtual int __fastcall GetIntegerVariable(int Index);
	virtual AnsiString __fastcall GetLogMessage();
	virtual AnsiString __fastcall GetStringVariable(int Index);
	virtual void __fastcall SetContent(const AnsiString AValue);
	virtual void __fastcall SetContentStream(Classes::TStream* AValue);
	virtual void __fastcall SetStatusCode(int AValue);
	virtual void __fastcall SetStringVariable(int Index, const AnsiString Value);
	virtual void __fastcall SetDateVariable(int Index, const System::TDateTime Value);
	virtual void __fastcall SetIntegerVariable(int Index, int Value);
	virtual void __fastcall SetLogMessage(const AnsiString Value);
	void __fastcall MoveCookiesAndCustomHeaders(void);
	
public:
	__fastcall TInHTTPAppResponse(Httpapp::TWebRequest* AHTTPRequest, Incontext::TInContext* AThread, Incustomhttpserver::TInHTTPRequestInfo* ARequestInfo, Incustomhttpserver::TInHTTPResponseInfo* AResponseInfo);
	virtual void __fastcall SendRedirect(const AnsiString URI);
	virtual void __fastcall SendResponse(void);
	virtual void __fastcall SendStream(Classes::TStream* AStream);
	virtual bool __fastcall Sent(void);
public:
	#pragma option push -w-inl
	/* TWebResponse.Destroy */ inline __fastcall virtual ~TInHTTPAppResponse(void) { }
	#pragma option pop
	
};


class DELPHICLASS TInHTTPWebBrokerBridge;
class PASCALIMPLEMENTATION TInHTTPWebBrokerBridge : public Incustomhttpserver::TInCustomHTTPServer 
{
	typedef Incustomhttpserver::TInCustomHTTPServer inherited;
	
protected:
	TMetaClass* FWebModuleClass;
	virtual void __fastcall DoCommandGet(Incontext::TInContext* AThread, Incustomhttpserver::TInHTTPRequestInfo* ARequestInfo, Incustomhttpserver::TInHTTPResponseInfo* AResponseInfo);
	virtual void __fastcall InitComponent(void);
	
public:
	void __fastcall RegisterWebModuleClass(TMetaClass* AClass);
public:
	#pragma option push -w-inl
	/* TInCustomHTTPServer.Destroy */ inline __fastcall virtual ~TInHTTPWebBrokerBridge(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TInBaseComponent.Create */ inline __fastcall TInHTTPWebBrokerBridge(Classes::TComponent* AOwner)/* overload */ : Incustomhttpserver::TInCustomHTTPServer(AOwner) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------

}	/* namespace Inhttpwebbrokerbridge */
using namespace Inhttpwebbrokerbridge;
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Inhttpwebbrokerbridge
