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

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

#ifndef IbblobfilterHPP
#define IbblobfilterHPP

#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

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

namespace Ibblobfilter
{
//-- type declarations -------------------------------------------------------
typedef void __fastcall (*TIBBlobFilterProc)(void *BlobBuffer, int &BlobSize);

typedef TIBBlobFilterProc *PIBBlobFilterProc;

class DELPHICLASS TIBBlobFilters;
class PASCALIMPLEMENTATION TIBBlobFilters : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Classes::TList* FIBBlobFilterList;
	bool FSorted;
	PIBBlobFilterProc __fastcall GetFilterProc(int BlobSubType, bool ForEncode);
	void __fastcall Sort(void);
	
public:
	__fastcall virtual ~TIBBlobFilters(void);
	bool __fastcall Find(int BlobSubType, int &anIndex);
	void __fastcall RegisterBlobFilter(int BlobSubType, PIBBlobFilterProc EncodeProc, PIBBlobFilterProc DecodeProc);
	void __fastcall RemoveBlobFilter(int BlobSubType);
	void __fastcall IBFilterBuffer(char * &BlobBuffer, int &BlobSize, int BlobSubType, bool ForEncode);
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TIBBlobFilters(void) : System::TObject() { }
	#pragma option pop
	
};


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

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

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