@@ -79,6 +79,30 @@ BEGIN_NAMESPACE_UTIL
7979 * // ...<BR>
8080 * }<BR>
8181 * </CODE><BR>
82+ * 3- Lecture de la sortie standard du processus lancé (cf. src/tests/process.cpp) :<BR>
83+ * <CODE>
84+ * unique_ptr<Process> process (new Process ("ls"));
85+ * process->getOptions ( ).addOption ("-al");
86+ * process->getOptions ( ).addOption (argv [1]);
87+ * cout << "Cmd line is : " << process->getCommandLine ( ) << endl;
88+ * process->enableChildToSonCommunications (true);
89+ * process->execute (false);
90+ * const int status = process->wait ( );
91+ * cout << "Process standard output :" << endl;
92+ * bool completed = false;
93+ * while (false == completed)
94+ * {
95+ * try
96+ * {
97+ * const string output = process->getChildLine ( );
98+ * cout << output << endl;
99+ * }
100+ * catch (...)
101+ * {
102+ * completed = true;
103+ * }
104+ * } // while (false == completed)
105+ * </CODE><BR>
82106 * </P>
83107 * <P>Cette classe permet également de connaître le répertoire courrant de l'application à l'aide de la méthode statique <I>getCurrentDirectory</I>.
84108 * </P>
@@ -141,16 +165,15 @@ class Process
141165 Process (const IN_STD string& processName);
142166
143167 /* *
144- * Destructeur : appelé automatiquement par l'instance en fin d'exécution
145- * si true est passé en argument d'<I>execute</I> .
168+ * Destructeur : appelé automatiquement par l'instance en fin d'exécution si true est passé en argument d'<I>execute</I> .
146169 * @see execute
147170 */
148171 virtual ~Process ( );
149172
150173 /* *
151174 * Créé une instance à partir de la ligne de commande transmise en argument (exécutable puis arguments).
152175 * @return instance créée.
153- * @todo possibilité de déclarer des variables d'environnement avant l'exécutable avec la synatxe variable=valeur
176+ * @todo possibilité de déclarer des variables d'environnement avant l'exécutable avec la syntaxe variable=valeur
154177 */
155178 static Process* create (const std::string& cmdLine); // v 6.2.0
156179
@@ -160,8 +183,7 @@ class Process
160183 virtual ProcessOptions& getOptions ( );
161184
162185 /* *
163- * @return La ligne de commande complète qui sera exécutée. A des
164- * fins de débogage, méthode non utilisée par <I>execute</I>.
186+ * @return La ligne de commande complète qui sera exécutée. A des fins de débogage, méthode non utilisée par <I>execute</I>.
165187 */
166188 virtual IN_STD string getCommandLine ( );
167189
@@ -173,8 +195,8 @@ class Process
173195 virtual void execute (bool autoDelete = true );
174196
175197 /* *
176- * Attend la fin du processus fils.
177- * @return status de retour du processus fils.
198+ * Attend si nécessaire la fin du processus fils.
199+ * @return status de retour du processus fils (<I>getCompletionCode ( )</I>) .
178200 * @see getCompletionCode
179201 * @see getErrorMessage
180202 */
@@ -224,25 +246,20 @@ class Process
224246 * @see getCompletionCode
225247 * @see isCompleted
226248 */
227- // virtual const IN_STD string& getErrorMessage ( ) const // v 4.4.0
228- // { return _errorMessage; }
229- virtual const IN_STD string getErrorMessage ( ) const // v 4.4.0
249+ virtual const IN_STD string getErrorMessage ( ) const
230250 { return std::string (_errorMessage); }
231251
232252 /* *
233- * A invoquer si un pipe doit être ouvert de la sortie standard du
234- * processus fils vers le processus père.
235- * @param true si la communication doit être en mode bloquant, false
236- * dans le cas contraire. Le mode non bloquant est irréversible.
253+ * A invoquer si un pipe doit être ouvert de la sortie standard du processus fils vers le processus père.
254+ * @param true si la communication doit être en mode bloquant, false dans le cas contraire. Le mode non bloquant est irréversible.
237255 * @exception Lève une exception en cas d'erreur
238256 * @see getpipeDescriptors
239257 * @see getChildLine
240258 */
241259 void enableChildToSonCommunications (bool blocking = true );
242260
243261 /* *
244- * @return true si un pipe doit être ouvert de la sortie standard du
245- * processus fils vers le processus père.
262+ * @return true si un pipe doit être ouvert de la sortie standard du processus fils vers le processus père.
246263 * @see enableChildToSonCommunications
247264 */
248265 bool isChildToSonCommunicationsEnabled ( ) const
@@ -279,8 +296,7 @@ class Process
279296 * int main (int argc, char* argv[], char* envp [])
280297 * @warning il est essentiel d'appeler cette fonction avant le lancement de tout process fils. En son absence
281298 * il est possible que l'exécution du process fils échoue.
282- * @deprecated Utiliser la version utilisant également <I>argc</I> et
283- * <I>argv</I> du main.
299+ * @deprecated Utiliser la version utilisant également <I>argc</I> et <I>argv</I> du main.
284300 */
285301 static void initialize (char * envp []);
286302
@@ -303,8 +319,7 @@ class Process
303319 * @see getCurrentSoftware
304320 * @see getCurrentSoftwareVersion
305321 */
306- static void setCurrentSoftware (
307- const IN_STD string& name, const Version& version = Version (" 0.0.0" ));
322+ static void setCurrentSoftware (const IN_STD string& name, const Version& version = Version (" 0.0.0" ));
308323
309324 /* *
310325 * @return Le nom du logiciel courrant, ou une chaine vide s'il n'a pas été renseigné par setCurrentSoftware.
@@ -342,20 +357,14 @@ class Process
342357
343358 /* *
344359 * @param Le message d'erreur associé à une terminaison anormale.
345- * Sa recopie se limite aux PROCESS_ERROR_MESSAGE_SIZE-1
346- * premiers caractères. Depuis la version 4.4.0 la gestion
347- * du message d'erreur est géré dans un tampon pré-alloué car
348- * ce message peut être issu d'un <I>signal émis</I> et recopié
349- * dans un handler sur signal où il ne fait pas bon d'utiliser
350- * malloc et free.
360+ * Sa recopie se limite aux PROCESS_ERROR_MESSAGE_SIZE-1 premiers caractères. Depuis la version 4.4.0 la gestion
361+ * du message d'erreur est géré dans un tampon pré-alloué car ce message peut être issu d'un <I>signal émis</I> et recopié
362+ * dans un handler sur signal où il ne fait pas bon d'utiliser malloc et free.
351363 */
352- // virtual void setErrorMessage (const IN_STD string& message) // v 4.4.0
353- // { _errorMessage = message; }
354- virtual void setErrorMessage (const char * message); // v 4.4.0
364+ virtual void setErrorMessage (const char * message);
355365
356366 /* *
357- * @return True si la terminaison du processus fils est attendue,
358- * sinon false.
367+ * @return True si la terminaison du processus fils est attendue, sinon false.
359368 * @see setWaited
360369 * @see waited
361370 */
@@ -371,9 +380,7 @@ class Process
371380 { _waited = waited; }
372381
373382 /* *
374- * Lit les l'ensemble des données dans le pipe de communication avec
375- * le processus fils et les stocke dans l'attente d'appels à
376- * getChildLine.
383+ * Lit les l'ensemble des données dans le pipe de communication avec le processus fils et les stocke dans l'attente d'appels à getChildLine.
377384 */
378385 virtual void fillChildBuffer ( );
379386
@@ -383,12 +390,11 @@ class Process
383390 * @param Si true, ajoute un caractère de fin de ligne après
384391 * la chaine.
385392 */
386- virtual void appendChildBuffer (
387- const IN_STD string& str, bool newLine = true );
393+ virtual void appendChildBuffer (const IN_STD string& str, bool newLine = true );
388394
389395 /* *
390396 * Appelé lorsqu'un processus fils est fini. Marque l'instance comme terminée.
391- *i <B>Depuis la version 4.4.0 ne détruit plus l'instance associée si isWaited retourne false.</B>
397+ * <B>Depuis la version 4.4.0 ne détruit plus l'instance associée si isWaited retourne false.</B>
392398 * @param nature du signal reçu.
393399 * @param informations sur l'origine du signal
394400 * @param contexte d'appel du signal
@@ -417,13 +423,10 @@ class Process
417423 /* * Le caractère "terminé" de l'instance. */
418424 bool _completed;
419425
420- /* * Vaut true si un pipe de communication doit être ouvert de la sortie
421- * standard du processus fils vers le processus père. */
426+ /* * Vaut true si un pipe de communication doit être ouvert de la sortie standard du processus fils vers le processus père. */
422427 bool _childToSonCommunications;
423428
424- /* * Vaut true si les communications du processus fils vers le processus
425- * père sont bloquantes, false dans le cas contraire. Vaut true par
426- * défaut.
429+ /* * Vaut true si les communications du processus fils vers le processus père sont bloquantes, false dans le cas contraire. Vaut true par défaut.
427430 */
428431 bool _blockingCommunications;
429432
@@ -447,8 +450,7 @@ class Process
447450 int _completionCode;
448451
449452 /* * Le message d'erreur associé à une terminaison anormale. */
450- // IN_STD string _errorMessage; // v 4.4.0
451- char _errorMessage [PROCESS_ERROR_MESSAGE_SIZE];// v 4.4.0
453+ char _errorMessage [PROCESS_ERROR_MESSAGE_SIZE];
452454
453455 /* * La table comprenant les ids des tâches et les pointeurs sur les instances associées de cette classe.
454456 */
0 commit comments