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

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

#ifndef PtestinfoHPP
#define PtestinfoHPP

#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 <Sysutils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Pfibinterfaces.hpp>	// Pascal unit
#include <Pfiblists.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit

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

namespace Ptestinfo
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TTestInfo;
class DELPHICLASS TTestVarValues;
class PASCALIMPLEMENTATION TTestInfo : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Pfiblists::TObjStringList* FTestVars;
	AnsiString FLogFileName;
	AnsiString FSortVariable;
	bool FAscSort;
	Classes::TList* FPrintList;
	bool FPrintListActual;
	AnsiString FLastObjName;
	int FPosLastObjX;
	bool FActiveStatistics;
	void __fastcall SetActiveStatistics(const bool Value);
	bool __fastcall GetActiveStatistics(void);
	Types::TPoint __fastcall FindVariable(const AnsiString ObjName, const AnsiString VarName, bool &InitRes);
	TTestVarValues* __fastcall GetVariable(const AnsiString ObjName, const AnsiString VarName, bool &InitRes);
	TTestVarValues* __fastcall GetVariableByInd(const Types::TPoint &Index);
	TTestVarValues* __fastcall GetVariableByObjInd(int Index, const AnsiString VarName);
	
protected:
	virtual HRESULT __stdcall QueryInterface(const GUID &IID, /* out */ void *Obj);
	int __stdcall _AddRef(void);
	int __stdcall _Release(void);
	
public:
	__fastcall TTestInfo(void);
	__fastcall virtual ~TTestInfo(void);
	int __fastcall FixStartTime(const AnsiString ObjName, const AnsiString VarName);
	int __fastcall FixEndTime(const AnsiString ObjName, const AnsiString VarName);
	int __fastcall GetVarInt(const AnsiString ObjName, const AnsiString VarName);
	AnsiString __fastcall GetVarStr(const AnsiString ObjName, const AnsiString VarName);
	int __fastcall IncCounter(const AnsiString ObjName, const AnsiString VarName);
	void __fastcall SetNull(const AnsiString ObjName, const AnsiString VarName);
	void __fastcall SetStringValue(const AnsiString ObjName, const AnsiString VarName, const AnsiString Value);
	void __fastcall SetIntValue(const AnsiString ObjName, const AnsiString VarName, int Value);
	int __fastcall AddIntValue(const AnsiString ObjName, const AnsiString VarName, int Value);
	void __fastcall AddToStrings(const AnsiString ObjName, const AnsiString VarName, const AnsiString Value);
	void __fastcall ClearStrings(const AnsiString ObjName, const AnsiString VarName);
	Classes::TStrings* __fastcall GetVarStrings(const AnsiString ObjName, const AnsiString VarName);
	int __fastcall ObjCount(void);
	AnsiString __fastcall ObjName(int Index);
	void __fastcall Clear(void);
	void __fastcall SortStatisticsForPrint(const AnsiString VarName, bool Ascending);
	void __fastcall LogVarValues(const AnsiString ObjName, const AnsiString FileName);
	void __fastcall SaveStatisticsToFile(const AnsiString FileName);
	void __fastcall SetLogFileName(const AnsiString LogName);
	AnsiString __fastcall GetLogFileName();
	void __fastcall SetLogParamsInc(const AnsiString VarName, bool IncToLog);
	__property AnsiString LogFileName = {read=FLogFileName, write=FLogFileName};
	__property TTestVarValues* Variable[Types::TPoint Index] = {read=GetVariableByInd};
	__property bool ActiveStatistics = {read=GetActiveStatistics, write=SetActiveStatistics, nodefault};
private:
	void *__ISQLStatMaker;	/* Pfibinterfaces::ISQLStatMaker */
	
public:
	operator ISQLStatMaker*(void) { return (ISQLStatMaker*)&__ISQLStatMaker; }
	
};


class PASCALIMPLEMENTATION TTestVarValues : public Pfiblists::TCallObject 
{
	typedef Pfiblists::TCallObject inherited;
	
private:
	int FValue;
	int FBufValue;
	AnsiString FStringVal;
	bool FLogStrValue;
	bool FDoLog;
	Classes::TStrings* FStrings;
	
public:
	__fastcall virtual TTestVarValues(void);
	__fastcall virtual ~TTestVarValues(void);
};


typedef void __fastcall (*TTestProc)(void);

typedef void __fastcall (__closure *TTestProcObj)(void);

typedef AnsiString __fastcall (*TTestFuncStr)(void);

//-- var, const, procedure ---------------------------------------------------
extern PACKAGE void __fastcall TestExecProc(TTestProc Proc, int Count);
extern PACKAGE void __fastcall TestExecProcObj(TTestProcObj Proc, int Count);
extern PACKAGE AnsiString __fastcall TestExecFuncStr(TTestFuncStr Func, int Count);

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

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