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

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

#ifndef InuriHPP
#define InuriHPP

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

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

namespace Inuri
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TInURIOptionalFields { ofAuthInfo, ofBookmark };
#pragma option pop

typedef Set<TInURIOptionalFields, ofAuthInfo, ofBookmark>  TInURIOptionalFieldsSet;

class DELPHICLASS TInURI;
class PASCALIMPLEMENTATION TInURI : public System::TObject 
{
	typedef System::TObject inherited;
	
protected:
	AnsiString FDocument;
	AnsiString FProtocol;
	AnsiString FURI;
	AnsiString FPort;
	AnsiString Fpath;
	AnsiString FHost;
	AnsiString FBookmark;
	AnsiString FUserName;
	AnsiString FPassword;
	AnsiString FParams;
	Inglobal::TIdIPVersion FIPVersion;
	void __fastcall SetURI(const AnsiString Value);
	AnsiString __fastcall GetURI();
	
public:
	__fastcall virtual TInURI(const AnsiString AURI);
	AnsiString __fastcall GetFullURI(const TInURIOptionalFieldsSet AOptionalFields = (Set<TInURIOptionalFields, ofAuthInfo, ofBookmark> () << TInURIOptionalFields(0) << TInURIOptionalFields(1) ));
	/*         class method */ static void __fastcall NormalizePath(TMetaClass* vmt, AnsiString &APath);
	/*         class method */ static AnsiString __fastcall URLDecode(TMetaClass* vmt, AnsiString ASrc);
	/*         class method */ static AnsiString __fastcall URLEncode(TMetaClass* vmt, const AnsiString ASrc);
	/*         class method */ static AnsiString __fastcall ParamsEncode(TMetaClass* vmt, const AnsiString ASrc);
	/*         class method */ static AnsiString __fastcall PathEncode(TMetaClass* vmt, const AnsiString ASrc);
	__property AnsiString Bookmark = {read=FBookmark, write=FBookmark};
	__property AnsiString Document = {read=FDocument, write=FDocument};
	__property AnsiString Host = {read=FHost, write=FHost};
	__property AnsiString Password = {read=FPassword, write=FPassword};
	__property AnsiString Path = {read=Fpath, write=Fpath};
	__property AnsiString Params = {read=FParams, write=FParams};
	__property AnsiString Port = {read=FPort, write=FPort};
	__property AnsiString Protocol = {read=FProtocol, write=FProtocol};
	__property AnsiString URI = {read=GetURI, write=SetURI};
	__property AnsiString Username = {read=FUserName, write=FUserName};
	__property Inglobal::TIdIPVersion IPVersion = {read=FIPVersion, write=FIPVersion, nodefault};
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TInURI(void) { }
	#pragma option pop
	
};


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


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

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

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