Référence de la classe Millie::GThread

#include <GThread.hpp>

Est dérivée de Millie::Thread.

Dérivée par MonThread.

Graphe d'héritage de Millie::GThread:

Inheritance graph
[légende]
Graphe de collaboration de Millie::GThread:

Collaboration graph
[légende]
Liste de tous les membres

Fonctions membres publiques

 GThread ()
 Constructeur.
 GThread (const std::string &name)
 Constructeur avec un certain nom.
const ThreadGroupgetThreadGroup ()
 retourne le groupe actuel
void waitAllGroup ()
 permet de se synchroniser avec les autres membres du groupe
virtual ~GThread ()

Fonctions membres protégées

void setGroup (ThreadGroup *group)

Attributs privés

ThreadGroup_group
Mutex _synchronizedGroup

Amis

class ThreadGroup

Description détaillée

Cette classe de thread permet d'être utilisé au sein d'un groupe ThreadGroup.

La classe admet notamment la méthode supplémentaire waitAllGroup qui permet de se synchroniser avec tous les membres du groupe.

Si ce type de thread est uniquement utilisé au sein d'un groupe, contrairement à la classe Thread, il n'est pas obligatoire de redéfinir le destructeur car le groupe le fera automatiquement rejoindre avant la destruction

Définition à la ligne 52 du fichier GThread.hpp.


Documentation des contructeurs et destructeur

Millie::GThread::GThread (  ) 

Constructeur.

Définition à la ligne 38 du fichier GThread.cpp.

Références _group.

Millie::GThread::GThread ( const std::string &  name  ) 

Constructeur avec un certain nom.

Paramètres:
name le nom du thread

Définition à la ligne 43 du fichier GThread.cpp.

Références _group.

Millie::GThread::~GThread (  )  [virtual]

destructeur

Définition à la ligne 94 du fichier GThread.cpp.

Références _group, et Millie::Thread::join().


Documentation des fonctions membres

void Millie::GThread::setGroup ( ThreadGroup group  )  [protected]

positionne le groupe.

Paramètres:
group le groupe
Exceptions:
IllegalThreadStateException si le thread appartient déjà à un groupe
Avertissement:
Attention, cela ne prévient pas le groupe que le thread appartient à son groupe

Si il appartient déjà à un groupe. On suppose que c'est l'autre groupe qui va le supprimer.

Définition à la ligne 56 du fichier GThread.cpp.

Références _group, et _synchronizedGroup.

Référencé par Millie::ThreadGroup::add().

const ThreadGroup * Millie::GThread::getThreadGroup (  ) 

retourne le groupe actuel

si aucun groupe n'a été défini, 0 est retourné

Définition à la ligne 50 du fichier GThread.cpp.

Références _group.

void Millie::GThread::waitAllGroup (  ) 

permet de se synchroniser avec les autres membres du groupe

Cette méthode permet d'attendre que tous les autres threads du groupe a appelé cette méthode. Dans le cas où l'appelant est le dernier du groupe, alors il ne s'endormira pas mais reveillera tout le monde. Afin que tout le monde puisse continuer.

L'utilisation de cette méthode peut être dangereuse (au sens bloquant). Si l'un des threads n'attend jamais les autres, et donc si le nombre de thread en attente reste toujours inférieur au nombre de thread total, alors les threads dormant ne seront jamais réveillé

Exceptions:
IllegalThreadStateException si pas de groupe n'est défini
IllegalThreadStateException si le thread n'est pas en cours d'exécution

Définition à la ligne 73 du fichier GThread.cpp.

Références _group, Millie::Thread::_isRunning, Millie::Thread::_synchronizedIsRunning, Millie::ThreadGroup::threadWaitAll(), et Millie::Mutex::unlock().

Référencé par MonThread::run().


Documentation des fonctions amies et associées

friend class ThreadGroup [friend]

Définition à la ligne 120 du fichier GThread.hpp.


Documentation des données membres

ThreadGroup* Millie::GThread::_group [private]

Définition à la ligne 57 du fichier GThread.hpp.

Référencé par getThreadGroup(), GThread(), setGroup(), waitAllGroup(), et ~GThread().

Mutex Millie::GThread::_synchronizedGroup [private]

Définition à la ligne 58 du fichier GThread.hpp.

Référencé par setGroup().


La documentation de cette classe a été générée à partir des fichiers suivants :
Généré le Fri May 18 23:25:08 2007 pour Millie par  doxygen 1.5.1