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

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

#ifndef InsyncHPP
#define InsyncHPP

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

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

namespace Insync
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TInSync;
class PASCALIMPLEMENTATION TInSync : public System::TObject 
{
	typedef System::TObject inherited;
	
protected:
	Inthread::TInThread* FThread;
	virtual void __fastcall DoSynchronize(void) = 0 ;
	
public:
	__fastcall virtual TInSync(void)/* overload */;
	__fastcall virtual TInSync(Inthread::TInThread* AThread)/* overload */;
	void __fastcall Synchronize(void);
	/*         class method */ static void __fastcall SynchronizeMethod(TMetaClass* vmt, Classes::TThreadMethod AMethod);
	__property Inthread::TInThread* Thread = {read=FThread};
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TInSync(void) { }
	#pragma option pop
	
};


class DELPHICLASS TIdNotify;
class PASCALIMPLEMENTATION TIdNotify : public System::TObject 
{
	typedef System::TObject inherited;
	
protected:
	bool FMainThreadUsesNotify;
	virtual void __fastcall DoNotify(void) = 0 ;
	
public:
	__fastcall virtual TIdNotify(void);
	void __fastcall Notify(void);
	/*         class method */ static void __fastcall FreeThread(TMetaClass* vmt);
	void __fastcall WaitFor(void);
	/*         class method */ static void __fastcall NotifyMethod(TMetaClass* vmt, Classes::TThreadMethod AMethod);
	__property bool MainThreadUsesNotify = {read=FMainThreadUsesNotify, write=FMainThreadUsesNotify, nodefault};
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TIdNotify(void) { }
	#pragma option pop
	
};


class DELPHICLASS TIdNotifyMethod;
class PASCALIMPLEMENTATION TIdNotifyMethod : public TIdNotify 
{
	typedef TIdNotify inherited;
	
protected:
	Classes::TThreadMethod FMethod;
	virtual void __fastcall DoNotify(void);
	
public:
	__fastcall virtual TIdNotifyMethod(Classes::TThreadMethod AMethod);
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TIdNotifyMethod(void) { }
	#pragma option pop
	
};


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

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

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