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

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

#ifndef InserverinterceptlogbaseHPP
#define InserverinterceptlogbaseHPP

#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 <Inintercept.hpp>	// Pascal unit
#include <Inglobal.hpp>	// Pascal unit
#include <Inlogbase.hpp>	// Pascal unit
#include <Inbasecomponent.hpp>	// Pascal unit

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

namespace Inserverinterceptlogbase
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TInServerInterceptLogBase;
class PASCALIMPLEMENTATION TInServerInterceptLogBase : public Inintercept::TIdServerIntercept 
{
	typedef Inintercept::TIdServerIntercept inherited;
	
protected:
	Inglobal::TIdCriticalSection* FLock;
	bool FLogTime;
	bool FReplaceCRLF;
	bool FHasInit;
	virtual void __fastcall InitComponent(void);
	
public:
	virtual void __fastcall Init(void);
	virtual Inintercept::TIdConnectionIntercept* __fastcall Accept(Classes::TComponent* AConnection);
	__fastcall virtual ~TInServerInterceptLogBase(void);
	virtual void __fastcall DoLogWriteString(AnsiString AText) = 0 ;
	virtual void __fastcall LogWriteString(AnsiString AText);
	
__published:
	__property bool LogTime = {read=FLogTime, write=FLogTime, default=1};
	__property bool ReplaceCRLF = {read=FReplaceCRLF, write=FReplaceCRLF, default=1};
public:
	#pragma option push -w-inl
	/* TInBaseComponent.Create */ inline __fastcall TInServerInterceptLogBase(Classes::TComponent* AOwner)/* overload */ : Inintercept::TIdServerIntercept(AOwner) { }
	#pragma option pop
	
};


class DELPHICLASS TInServerInterceptLogFileConnection;
class PASCALIMPLEMENTATION TInServerInterceptLogFileConnection : public Inlogbase::TInLogBase 
{
	typedef Inlogbase::TInLogBase inherited;
	
protected:
	TInServerInterceptLogBase* FServerInterceptLog;
	virtual void __fastcall LogReceivedData(AnsiString AText, AnsiString AData);
	virtual void __fastcall LogSentData(AnsiString AText, AnsiString AData);
	virtual void __fastcall LogStatus(AnsiString AText);
	virtual AnsiString __fastcall GetConnectionID();
public:
	#pragma option push -w-inl
	/* TInLogBase.Destroy */ inline __fastcall virtual ~TInServerInterceptLogFileConnection(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TInBaseComponent.Create */ inline __fastcall TInServerInterceptLogFileConnection(Classes::TComponent* AOwner)/* overload */ : Inlogbase::TInLogBase(AOwner) { }
	#pragma option pop
	
};


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

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

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