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

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

#ifndef IdfspHPP
#define IdfspHPP

#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 <Idexception.hpp>	// Pascal unit
#include <Idftplist.hpp>	// Pascal unit
#include <Idglobal.hpp>	// Pascal unit
#include <Idsys.hpp>	// Pascal unit
#include <Idthreadsafe.hpp>	// Pascal unit
#include <Idobjs.hpp>	// Pascal unit
#include <Idudpclient.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Idudpbase.hpp>	// Pascal unit
#include <Idcomponent.hpp>	// Pascal unit
#include <Idbasecomponent.hpp>	// Pascal unit

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

namespace Idfsp
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS EIdFSPException;
class PASCALIMPLEMENTATION EIdFSPException : public Idexception::EIdException 
{
	typedef Idexception::EIdException inherited;
	
public:
	#pragma option push -w-inl
	/* EIdException.Create */ inline __fastcall virtual EIdFSPException(AnsiString AMsg)/* overload */ : Idexception::EIdException(AMsg) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EIdFSPException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size) : Idexception::EIdException(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EIdFSPException(int Ident)/* overload */ : Idexception::EIdException(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EIdFSPException(int Ident, System::TVarRec const * Args, const int Args_Size)/* overload */ : Idexception::EIdException(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EIdFSPException(const AnsiString Msg, int AHelpContext) : Idexception::EIdException(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EIdFSPException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size, int AHelpContext) : Idexception::EIdException(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EIdFSPException(int Ident, int AHelpContext)/* overload */ : Idexception::EIdException(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EIdFSPException(System::PResStringRec ResStringRec, System::TVarRec const * Args, const int Args_Size, int AHelpContext)/* overload */ : Idexception::EIdException(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EIdFSPException(void) { }
	#pragma option pop
	
};


class DELPHICLASS EIdFSPFileAlreadyExists;
class PASCALIMPLEMENTATION EIdFSPFileAlreadyExists : public EIdFSPException 
{
	typedef EIdFSPException inherited;
	
public:
	#pragma option push -w-inl
	/* EIdException.Create */ inline __fastcall virtual EIdFSPFileAlreadyExists(AnsiString AMsg)/* overload */ : EIdFSPException(AMsg) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EIdFSPFileAlreadyExists(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size) : EIdFSPException(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EIdFSPFileAlreadyExists(int Ident)/* overload */ : EIdFSPException(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EIdFSPFileAlreadyExists(int Ident, System::TVarRec const * Args, const int Args_Size)/* overload */ : EIdFSPException(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EIdFSPFileAlreadyExists(const AnsiString Msg, int AHelpContext) : EIdFSPException(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EIdFSPFileAlreadyExists(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size, int AHelpContext) : EIdFSPException(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EIdFSPFileAlreadyExists(int Ident, int AHelpContext)/* overload */ : EIdFSPException(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EIdFSPFileAlreadyExists(System::PResStringRec ResStringRec, System::TVarRec const * Args, const int Args_Size, int AHelpContext)/* overload */ : EIdFSPException(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EIdFSPFileAlreadyExists(void) { }
	#pragma option pop
	
};


class DELPHICLASS EIdFSPFileNotFound;
class PASCALIMPLEMENTATION EIdFSPFileNotFound : public EIdFSPException 
{
	typedef EIdFSPException inherited;
	
public:
	#pragma option push -w-inl
	/* EIdException.Create */ inline __fastcall virtual EIdFSPFileNotFound(AnsiString AMsg)/* overload */ : EIdFSPException(AMsg) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EIdFSPFileNotFound(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size) : EIdFSPException(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EIdFSPFileNotFound(int Ident)/* overload */ : EIdFSPException(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EIdFSPFileNotFound(int Ident, System::TVarRec const * Args, const int Args_Size)/* overload */ : EIdFSPException(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EIdFSPFileNotFound(const AnsiString Msg, int AHelpContext) : EIdFSPException(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EIdFSPFileNotFound(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size, int AHelpContext) : EIdFSPException(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EIdFSPFileNotFound(int Ident, int AHelpContext)/* overload */ : EIdFSPException(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EIdFSPFileNotFound(System::PResStringRec ResStringRec, System::TVarRec const * Args, const int Args_Size, int AHelpContext)/* overload */ : EIdFSPException(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EIdFSPFileNotFound(void) { }
	#pragma option pop
	
};


class DELPHICLASS EIdFSPProtException;
class PASCALIMPLEMENTATION EIdFSPProtException : public EIdFSPException 
{
	typedef EIdFSPException inherited;
	
public:
	#pragma option push -w-inl
	/* EIdException.Create */ inline __fastcall virtual EIdFSPProtException(AnsiString AMsg)/* overload */ : EIdFSPException(AMsg) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EIdFSPProtException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size) : EIdFSPException(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EIdFSPProtException(int Ident)/* overload */ : EIdFSPException(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EIdFSPProtException(int Ident, System::TVarRec const * Args, const int Args_Size)/* overload */ : EIdFSPException(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EIdFSPProtException(const AnsiString Msg, int AHelpContext) : EIdFSPException(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EIdFSPProtException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size, int AHelpContext) : EIdFSPException(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EIdFSPProtException(int Ident, int AHelpContext)/* overload */ : EIdFSPException(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EIdFSPProtException(System::PResStringRec ResStringRec, System::TVarRec const * Args, const int Args_Size, int AHelpContext)/* overload */ : EIdFSPException(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EIdFSPProtException(void) { }
	#pragma option pop
	
};


class DELPHICLASS EIdFSPPacketTooSmall;
class PASCALIMPLEMENTATION EIdFSPPacketTooSmall : public EIdFSPException 
{
	typedef EIdFSPException inherited;
	
public:
	#pragma option push -w-inl
	/* EIdException.Create */ inline __fastcall virtual EIdFSPPacketTooSmall(AnsiString AMsg)/* overload */ : EIdFSPException(AMsg) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EIdFSPPacketTooSmall(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size) : EIdFSPException(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EIdFSPPacketTooSmall(int Ident)/* overload */ : EIdFSPException(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EIdFSPPacketTooSmall(int Ident, System::TVarRec const * Args, const int Args_Size)/* overload */ : EIdFSPException(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EIdFSPPacketTooSmall(const AnsiString Msg, int AHelpContext) : EIdFSPException(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EIdFSPPacketTooSmall(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size, int AHelpContext) : EIdFSPException(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EIdFSPPacketTooSmall(int Ident, int AHelpContext)/* overload */ : EIdFSPException(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EIdFSPPacketTooSmall(System::PResStringRec ResStringRec, System::TVarRec const * Args, const int Args_Size, int AHelpContext)/* overload */ : EIdFSPException(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EIdFSPPacketTooSmall(void) { }
	#pragma option pop
	
};


class DELPHICLASS TIdFSPStatInfo;
class PASCALIMPLEMENTATION TIdFSPStatInfo : public Classes::TCollectionItem 
{
	typedef Classes::TCollectionItem inherited;
	
protected:
	System::TDateTime FModifiedDateGMT;
	System::TDateTime FModifiedDate;
	__int64 FSize;
	Idftplist::TIdDirItemType FItemType;
	
__published:
	__property Idftplist::TIdDirItemType ItemType = {read=FItemType, write=FItemType, nodefault};
	__property __int64 Size = {read=FSize, write=FSize};
	__property System::TDateTime ModifiedDate = {read=FModifiedDate, write=FModifiedDate};
	__property System::TDateTime ModifiedDateGMT = {read=FModifiedDateGMT, write=FModifiedDateGMT};
public:
	#pragma option push -w-inl
	/* TCollectionItem.Create */ inline __fastcall virtual TIdFSPStatInfo(Classes::TCollection* Collection) : Classes::TCollectionItem(Collection) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TCollectionItem.Destroy */ inline __fastcall virtual ~TIdFSPStatInfo(void) { }
	#pragma option pop
	
};


class DELPHICLASS TIdFSPListItem;
class PASCALIMPLEMENTATION TIdFSPListItem : public TIdFSPStatInfo 
{
	typedef TIdFSPStatInfo inherited;
	
protected:
	AnsiString FFileName;
	
__published:
	__property AnsiString FileName = {read=FFileName, write=FFileName};
public:
	#pragma option push -w-inl
	/* TCollectionItem.Create */ inline __fastcall virtual TIdFSPListItem(Classes::TCollection* Collection) : TIdFSPStatInfo(Collection) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TCollectionItem.Destroy */ inline __fastcall virtual ~TIdFSPListItem(void) { }
	#pragma option pop
	
};


class DELPHICLASS TIdFSPListItems;
class PASCALIMPLEMENTATION TIdFSPListItems : public Classes::TCollection 
{
	typedef Classes::TCollection inherited;
	
public:
	TIdFSPListItem* operator[](int AIndex) { return Items[AIndex]; }
	
protected:
	TIdFSPListItem* __fastcall GetItems(int AIndex);
	void __fastcall SetItems(int AIndex, const TIdFSPListItem* Value);
	
public:
	HIDESBASE TIdFSPListItem* __fastcall Add(void);
	__fastcall TIdFSPListItems(void);
	bool __fastcall ParseEntries(const Idglobal::TBytes AData, const unsigned ADataLen);
	int __fastcall IndexOf(TIdFSPListItem* AItem);
	__property TIdFSPListItem* Items[int AIndex] = {read=GetItems, write=SetItems/*, default*/};
public:
	#pragma option push -w-inl
	/* TCollection.Destroy */ inline __fastcall virtual ~TIdFSPListItems(void) { }
	#pragma option pop
	
};


class DELPHICLASS TIdFSPDirInfo;
class PASCALIMPLEMENTATION TIdFSPDirInfo : public System::TObject 
{
	typedef System::TObject inherited;
	
protected:
	bool FOwnsDir;
	bool FCanDeleteFiles;
	bool FCanAddFiles;
	bool FCanMakeDir;
	bool FOnlyOwnerCanReadFiles;
	bool FHasReadMe;
	bool FCanBeListed;
	bool FCanRenameFiles;
	AnsiString FReadMe;
	
public:
	__property bool OwnsDir = {read=FOwnsDir, write=FOwnsDir, nodefault};
	__property bool CanDeleteFiles = {read=FCanDeleteFiles, write=FCanDeleteFiles, nodefault};
	__property bool CanAddFiles = {read=FCanAddFiles, write=FCanAddFiles, nodefault};
	__property bool CanMakeDir = {read=FCanMakeDir, write=FCanMakeDir, nodefault};
	__property bool OnlyOwnerCanReadFiles = {read=FOnlyOwnerCanReadFiles, write=FOnlyOwnerCanReadFiles, nodefault};
	__property bool HasReadMe = {read=FHasReadMe, write=FHasReadMe, nodefault};
	__property bool CanBeListed = {read=FCanBeListed, write=FCanBeListed, nodefault};
	__property bool CanRenameFiles = {read=FCanRenameFiles, write=FCanRenameFiles, nodefault};
	__property AnsiString ReadMe = {read=FReadMe, write=FReadMe};
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TIdFSPDirInfo(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TIdFSPDirInfo(void) { }
	#pragma option pop
	
};


class DELPHICLASS TIdFSPPacket;
class PASCALIMPLEMENTATION TIdFSPPacket : public System::TObject 
{
	typedef System::TObject inherited;
	
protected:
	Byte FCmd;
	unsigned FFilePosition;
	DynamicArray<Byte >  FData;
	Word FDataLen;
	DynamicArray<Byte >  FExtraData;
	Word FSequence;
	Word FKey;
	bool FValid;
	
public:
	__fastcall TIdFSPPacket(void);
	Idglobal::TBytes __fastcall WritePacket();
	void __fastcall ReadPacket(const Idglobal::TBytes AData, const unsigned ALen);
	__property bool Valid = {read=FValid, nodefault};
	__property Byte Cmd = {read=FCmd, write=FCmd, nodefault};
	__property Word Key = {read=FKey, write=FKey, nodefault};
	__property Word Sequence = {read=FSequence, write=FSequence, nodefault};
	__property unsigned FilePosition = {read=FFilePosition, write=FFilePosition, nodefault};
	__property Idglobal::TBytes Data = {read=FData, write=FData};
	__property Word DataLen = {read=FDataLen, write=FDataLen, nodefault};
	__property Idglobal::TBytes ExtraData = {read=FExtraData, write=FExtraData};
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TIdFSPPacket(void) { }
	#pragma option pop
	
};


typedef void __fastcall (__closure *TIdFSPLogEvent)(System::TObject* Sender, TIdFSPPacket* APacket);

class DELPHICLASS TIdFSP;
class PASCALIMPLEMENTATION TIdFSP : public Idudpclient::TIdUDPClient 
{
	typedef Idudpclient::TIdUDPClient inherited;
	
protected:
	bool FConEstablished;
	Word FSequence;
	Word FKey;
	AnsiString FSystemDesc;
	bool FSystemServerLogs;
	bool FSystemReadOnly;
	bool FSystemReverseLookupRequired;
	bool FSystemPrivateMode;
	bool FSystemAcceptsExtraData;
	bool FThruputControl;
	unsigned FServerMaxThruPut;
	Word FServerMaxPacketSize;
	Word FClientMaxPacketSize;
	TIdFSPListItems* FDirectoryListing;
	TIdFSPDirInfo* FDirInfo;
	TIdFSPStatInfo* FStatInfo;
	TIdFSPLogEvent FOnRecv;
	TIdFSPLogEvent FOnSend;
	Idthreadsafe::TIdThreadSafeBoolean* FAbortFlag;
	void __fastcall SendCmdOnce(TIdFSPPacket* ACmdPacket, TIdFSPPacket* ARecvPacket, Idglobal::TBytes &VTempBuf, const bool ARaiseException = true)/* overload */;
	void __fastcall SendCmdOnce(const Byte ACmd, const Idglobal::TBytes AData, const Idglobal::TBytes AExtraData, const __int64 AFilePosition, Idglobal::TBytes &VData, Idglobal::TBytes &VExtraData, const bool ARaiseException = true)/* overload */;
	void __fastcall SendCmd(TIdFSPPacket* ACmdPacket, TIdFSPPacket* ARecvPacket, Idglobal::TBytes &VTempBuf, const bool ARaiseException = true)/* overload */;
	void __fastcall SendCmd(const Byte ACmd, const Idglobal::TBytes AData, const Idglobal::TBytes AExtraData, const __int64 AFilePosition, Idglobal::TBytes &VData, Idglobal::TBytes &VExtraData, const bool ARaiseException = true)/* overload */;
	void __fastcall SendCmd(const Byte ACmd, const Idglobal::TBytes AData, const __int64 AFilePosition, Idglobal::TBytes &VData, Idglobal::TBytes &VExtraData, const bool ARaiseException = true)/* overload */;
	void __fastcall ParseDirInfo(const Idglobal::TBytes ABuf, const Idglobal::TBytes AExtraBuf, TIdFSPDirInfo* ADir);
	virtual void __fastcall InitComponent(void);
	Word __fastcall MaxBufferSize(void);
	Word __fastcall PrefPayloadSize(void);
	void __fastcall SetClientMaxPacketSize(const Word AValue);
	
public:
	__fastcall virtual ~TIdFSP(void);
	virtual void __fastcall Connect(void);
	virtual void __fastcall Disconnect(void);
	HIDESBASE void __fastcall Version(void);
	void __fastcall AbortCmd(void);
	void __fastcall Delete(const AnsiString AFilename);
	void __fastcall RemoveDir(const AnsiString ADirName);
	void __fastcall Rename(const AnsiString ASourceFile, const AnsiString ADestFile);
	void __fastcall MakeDir(const AnsiString ADirName);
	void __fastcall List(void)/* overload */;
	void __fastcall List(const AnsiString ASpecifier)/* overload */;
	void __fastcall GetDirInfo(const AnsiString ADIR)/* overload */;
	void __fastcall GetDirInfo(const AnsiString ADIR, TIdFSPDirInfo* ADirInfo)/* overload */;
	void __fastcall GetStatInfo(const AnsiString APath);
	void __fastcall Get(const AnsiString ASourceFile, const AnsiString ADestFile, const bool ACanOverwrite = false, bool AResume = false)/* overload */;
	void __fastcall Get(const AnsiString ASourceFile, Classes::TStream* ADest, bool AResume = false)/* overload */;
	void __fastcall Put(const Classes::TStream* ASource, const AnsiString ADestFile, const System::TDateTime AGMTTime = 0.000000E+00)/* overload */;
	void __fastcall Put(const AnsiString ASourceFile, const AnsiString ADestFile = "")/* overload */;
	__property AnsiString SystemDesc = {read=FSystemDesc};
	__property bool SystemServerLogs = {read=FSystemServerLogs, nodefault};
	__property bool SystemReadOnly = {read=FSystemReadOnly, nodefault};
	__property bool SystemReverseLookupRequired = {read=FSystemReverseLookupRequired, nodefault};
	__property bool SystemPrivateMode = {read=FSystemPrivateMode, nodefault};
	__property bool SystemAcceptsExtraData = {read=FSystemAcceptsExtraData, nodefault};
	__property bool ThruputControl = {read=FThruputControl, nodefault};
	__property unsigned ServerMaxThruPut = {read=FServerMaxThruPut, nodefault};
	__property Word ServerMaxPacketSize = {read=FServerMaxPacketSize, nodefault};
	__property Word ClientMaxPacketSize = {read=FClientMaxPacketSize, write=SetClientMaxPacketSize, nodefault};
	__property TIdFSPListItems* DirectoryListing = {read=FDirectoryListing};
	__property TIdFSPDirInfo* DirInfo = {read=FDirInfo};
	__property TIdFSPStatInfo* StatInfo = {read=FStatInfo};
	
__published:
	__property Port  = {default=21};
	__property OnWork ;
	__property OnWorkBegin ;
	__property OnWorkEnd ;
	__property TIdFSPLogEvent OnRecv = {read=FOnRecv, write=FOnRecv};
	__property TIdFSPLogEvent OnSend = {read=FOnSend, write=FOnSend};
public:
	#pragma option push -w-inl
	/* TIdBaseComponent.Create */ inline __fastcall TIdFSP(Classes::TComponent* AOwner)/* overload */ : Idudpclient::TIdUDPClient(AOwner) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
static const Shortint IdPORT_FSP = 0x15;
static const Shortint HSIZE = 0xc;
static const Word DEF_MAXSPACE = 0x3f4;
static const Word DEF_MAXSIZE = 0x400;
static const Shortint CC_VERSION = 0x10;
static const Shortint CC_INFO = 0x11;
static const Shortint CC_ERR = 0x40;
static const Shortint CC_GET_DIR = 0x41;
static const Shortint CC_GET_FILE = 0x42;
static const Shortint CC_UP_LOAD = 0x43;
static const Shortint CC_INSTALL = 0x44;
static const Shortint CC_DEL_FILE = 0x45;
static const Shortint CC_DEL_DIR = 0x46;
static const Shortint CC_GET_PRO = 0x47;
static const Shortint CC_SET_PRO = 0x48;
static const Shortint CC_MAKE_DIR = 0x49;
static const Shortint CC_BYE = 0x4a;
static const Shortint CC_GRAB_FILE = 0x4b;
static const Shortint CC_GRAB_DONE = 0x4c;
static const Shortint CC_STAT = 0x4d;
static const Shortint CC_RENAME = 0x4e;
static const Shortint CC_CH_PASSW = 0x4f;
static const Byte CC_LIMIT = 0x80;
static const Byte CC_TEST = 0x81;
static const Shortint RDTYPE_END = 0x0;
static const Shortint RDTYPE_FILE = 0x1;
static const Shortint RDTYPE_DIR = 0x2;
static const Shortint RDTYPE_SKIP = 0x2a;
static const Word MINTIMEOUT = 0x53c;
static const int MAXTIMEOUT = 0x493e0;

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

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