Source Composant "Up ! Program Manager" Version 4.0.0;
ImporterModule UpsOrb(<UpsOrb.upi>, ImporterDefinitions);
Parametre
/*******/
Prive :
/*****/
   Action "Action" : Nul Ou Caractere;
   Programme "Programme" : Nul Ou Caractere;
   Machine "Machine" : Nul Ou Caractere;
   AdresseNoeud "AdresseNoeud" : Nul Ou Caractere;
   Service "Service" : Nul Ou Caractere;
   NomModule "Module" : Nul Ou Caractere;
Principal
/*******/
Variable
/******/
   LibelleArreter : Caractere;
   LibelleForcer : Caractere;
   L : Nul Ou ListeDe ProcessusListe;
   P : Nul Ou ProcessusListe;
Debut
Si Action==Nul Alors
   Ecran.Ecrire(Message(Global,"UsageUpsPmg"));
Fin Si
   Retourner 1;
LibelleArreter=Traduire(Global,SectionDivers,"arreter");
LibelleForcer=Traduire(Global,SectionDivers,"forcer");
Selon Action Faire
   Cas Dans (LibelleArreter,LibelleForcer) Faire
   
Fin Selon
      Si Programme==Nul Alors
      
Fin Cas
         Ecran.Ecrire(Message(Global,"UsageUpsPmg"));
Fin Si
         Retourner 1;
      
      AttraperException
      
         ArreterService(Programme,Action==LibelleForcer);
      
TraiterException
         Cas Pour ServiceInconnu Faire
         
Fin AttraperException
            L=ListerProcessus();
Fin Cas
            Pour P=L.ParcoursAuDebut() JusquA L.DernierElement() Faire
            
               Si P.NomProgramme==Programme Alors
               
Fin Pour
                  ArreterProgramme(P.Numero,Action==LibelleForcer);
Fin Si
                  Retourner 0;
               
   
   Cas Pour Traduire(
      Si Programme==Nul Alors
      
Fin Cas
         Ecran.Ecrire(Message(Global,"UsageUpsPmg"));
Fin Si
         Retourner 1;
      
      DemarrerService(Programme);
   
   
   Cas Pour Traduire(Global,SectionDivers,"Statut") Faire
   
      Si Programme==Nul Alors
      
Fin Cas
         Ecran.Ecrire(Message(Global,"UsageUpsPmg"));
Fin Si
         Retourner 1;
      
      Si ChercherService(Programme) Alors
      
         Ecran.Ecrire(Message(Global,"ServiceActif",Programme));
      
Sinon
         Ecran.Ecrire(Message(Global,"ServiceInactif",Programme));
      
Fin Si
   
   Cas Pour Traduire(Global,SectionDivers,"AjouterNoeud") Faire
   
      Si Machine==Nul Alors
      
Fin Cas
         Ecran.Ecrire(Message(Global,"UsageUpsPmg"));
Fin Si
         Retourner 1;
      
      AjouterNoeud(Machine,AdresseNoeud);
   
   
   Cas Pour Traduire(Global,SectionDivers,"SupprimerNoeud") Faire
   
      Si Machine==Nul Alors
      
Fin Cas
         Ecran.Ecrire(Message(Global,"UsageUpsPmg"));
Fin Si
         Retourner 1;
      
      SupprimerNoeud(Machine);
   
   
   Cas Pour Traduire(Global,SectionDivers,"AjouterServeur") Faire
   
      Si Machine==Nul Ou Service==Nul Alors
      
Fin Cas
         Ecran.Ecrire(Message(Global,"UsageUpsPmg"));
Fin Si
         Retourner 1;
      
      AjouterServeur(Machine,AdresseNoeud,Service);
   
   
   Cas Pour Traduire(Global,SectionDivers,"SupprimerServeur") Faire
   
      Si Machine==Nul Ou Service==Nul Alors
      
Fin Cas
         Ecran.Ecrire(Message(Global,"UsageUpsPmg"));
Fin Si
         Retourner 1;
      
      SupprimerServeur(Machine,Service);
   
   
   Cas Pour Traduire(Global,SectionDivers,"AjouterModule") Faire
   
      Si Machine==Nul Ou Service==Nul Ou NomModule==Nul Alors
      
Fin Cas
         Ecran.Ecrire(Message(Global,"UsageUpsPmg"));
Fin Si
         Retourner 1;
      
      AjouterModule(Machine,Service,NomModule);
   
   
   Cas Pour Traduire(Global,SectionDivers,"SupprimerServeur") Faire
   
      Si Machine==Nul Ou Service==Nul Ou NomModule==Nul Alors
      
Fin Cas
         Ecran.Ecrire(Message(Global,"UsageUpsPmg"));
Fin Si
         Retourner 1;
      
      SupprimerModule(Machine,Service,NomModule);
   
Fin Principal