/****************************************************************/
Type ClientFtp Implemente IClientInternet Defaut Final TailleSegment 8 ConserverObjets
/* Objet : Definition du type client File Transfer Protocol.  */
/****************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet.  */
/*-------------------------------------------------------------*/
Prive :
	
	EstInstanceDe : Type Lecture Public;
/*--------------------------------------------------------------*/
/* Proprietes heritees de IClientInternet.                     */
/*--------------------------------------------------------------*/
Prive :
	
   Numero : Entier Lecture Public;
	
   Ip1 : Entier Lecture Public;
	
   Ip2 : Entier Lecture Public;
	
   Ip3 : Entier Lecture Public;
	
   Ip4 : Entier Lecture Public;
	
   Port : Entier Lecture Public;
/*--------------------------------------------------------------*/
/* Proprietes propres.                                          */
/*--------------------------------------------------------------*/
Prive :
	
   EtatModePassif : ModePassif Lecture Public;
	
   EtatTypeDonnees : TypeDonnees Lecture Public;
	
   EtatFormatTexte : FormatTexte Lecture Public;
	
   EtatStructureDonnees : StructureDonnees Lecture Public;
	
   EtatModeTransfert : ModeTransfert Lecture Public;
	
   Ip1Proxy : Entier Lecture Public;
	
   Ip2Proxy : Entier Lecture Public;
	
   Ip3Proxy : Entier Lecture Public;
	
   Ip4Proxy : Entier Lecture Public;
	
   PortProxy : Entier Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet.    					      */
/*-------------------------------------------------------------*/
Public :
	
	Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
	
	Procedure Convertir(O : Nul Ou Objet);
	
	Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
	
	Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
	
	Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
	
	Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
	
	Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
	
	Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
	
	Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
	
	Procedure SupprimerPropriete(NomPropriete : Caractere);
	
	Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
	
	Fonction Optimiser(Invariant) Adresse() Retourner Nul Ou Caractere;
Prive :
	
	Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
	
	Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
/*--------------------------------------------------------------*/
/* Methodes propres.                                           */
/*--------------------------------------------------------------*/
Public :
	
   Constructeur();
	
   Rappel Abandonner();
	
   Rappel ChangerDroits(NomFichier : Caractere, DroitsUtilisateur : DroitsDAcces, DroitsGroupe : DroitsDAcces, DroitsAutres : DroitsDAcces);
	
   Rappel ChangerProxy();
	
   Rappel ChangerRepertoireCourant(NomRepertoire : Caractere);
	
   Rappel ChangerRepertoirePere();
	
   Rappel Connecter(NomUtilisateur : Caractere, MotDePasse : Caractere);
	
   Rappel CreerRepertoire(NomRepertoire : Caractere);
	
   Rappel Deconnecter(Totalement : Booleen);
	
   Rappel EcrireFlux(F : Nul Ou FluxInternet, FinDeFlux : Booleen Sortie);
	
   Rappel EnvoyerFichier(NomFichier : Caractere, ModeOuverture : ModeOuvertureFlux);
	
   Rappel LireFlux(F : Nul Ou FluxInternet, FinDeFlux : Booleen);
	
   Rappel LireRepertoireCourant(NomRepertoire : Caractere Sortie);
	
   Rappel ListerFichiers(NomRepertoire : Caractere, ListeFichiers : Nul Ou ListeDe FichierListe Sortie);
	
   Rappel MonterPartition(NomRepertoire : Caractere);
	
   Rappel NeRienFaire();
	
   Rappel RecevoirFichier(NomFichier : Caractere, ModeOuverture : ModeOuvertureFlux);
	
   Rappel RenommerFichier(NomFichierAvant : Caractere, NomFichierApres : Caractere);
	
   Rappel SupprimerFichier(NomFichier : Caractere);
	
   Rappel SupprimerRepertoire(NomRepertoire : Caractere);
	
   Procedure EcrireExtension(NomExtension : Caractere, O : Nul Ou Objet);
	
   Fonction LireExtension(NomExtension : Caractere) Retourner Nul Ou Objet;
	
   Procedure SupprimerExtension(NomExtension : Caractere);
Prive :
	
   Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type ClientFtp représente un client File Transfer Protocol pour un serveur.
Variable
/******/
	ClientPatient : Nul Ou ClientFtp;
	ClientProspect : Nul Ou ClientFtp;
Principal
/*******/
Debut
...
Si ClientPatient==ClientProspect Alors
/* Egalité entre deux clients Ftp. */
	...
Fin Si
Si Patient!=Prospect Alors
/* Inégalité entre deux clients Ftp. */
	...
Fin Si
Fin Principal
| - | - | - | - | - | - | - | - | - |