Thread Class Reference

Classe Thread implémente les thread posix Usage: via héritage, surcharger Traitement() et utiliser Demarrer() pour lancer le thread. More...

#include <Thread.h>

Inheritance diagram for Thread:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 Thread ()
 Constructeur par défaut.
 Thread (const Thread &t)
 Constructeur par recopie.
virtual ~Thread ()
 Destructeur.
void Demarrer ()
 Démarre le thread s'il n'est pas déja lancé
La fonction associée au thread est Filament.
void Arreter ()
 Arrête le thread.
void AttendreFin ()
 Attendre la fin d'autre thread (join).
virtual void * Traitement ()=0
 Fonction virtuelle du traitement effectué par le thread => à surcharger lors de l'héritage.

Static Private Member Functions

static void * Filament (void *pthis)
 Fonction exécutée par le thread, réfère le lanceur et lance la fonction virtuelle Traitement().

Private Attributes

bool mExecution
 Booléen indiquant l'exécution du thread.
pthread_t mThread
 Structure du thread.

Detailed Description

Classe Thread implémente les thread posix Usage: via héritage, surcharger Traitement() et utiliser Demarrer() pour lancer le thread.

Definition at line 37 of file Thread.h.


Constructor & Destructor Documentation

Thread::Thread (  )  [inline]

Constructeur par défaut.

Returns:

Definition at line 43 of file Thread.h.

References mExecution.

00043 { mExecution=false; }

Thread::Thread ( const Thread t  )  [inline]

Constructeur par recopie.

Parameters:
t Classe de base
Returns:

Definition at line 50 of file Thread.h.

References mExecution, and mThread.

00050                                  {
00051                 mExecution=t.mExecution;
00052                 mThread=t.mThread;
00053         }

virtual Thread::~Thread (  )  [inline, virtual]

Destructeur.

Returns:

Definition at line 58 of file Thread.h.

References mExecution, and mThread.

00058                          {
00059                 if(mExecution) pthread_detach( mThread );
00060         }


Member Function Documentation

void Thread::Demarrer (  )  [inline]

Démarre le thread s'il n'est pas déja lancé
La fonction associée au thread est Filament.

Definition at line 66 of file Thread.h.

References Filament(), mExecution, and mThread.

Referenced by ServeurJeu::AttendreClient(), ServeurJeu::AttendreFinPartie(), ServeurJeu::CreationThreadComServeurPrincipal(), TraitementClient::CreerOuRejoindrePartie(), ServeurJeu::DemarrerFantomeAuto(), and ClientSJ::TraitementDeplacement().

00066                        {
00067                 if(!mExecution){
00068                         int v=pthread_create(&mThread,0,Filament,this);
00069                         if(v!=0 ) cerr<<endl<<"Erreur avec pthread_create()!"<<endl;
00070                 }
00071         }

Here is the call graph for this function:

void Thread::Arreter (  )  [inline]

Arrête le thread.

Definition at line 76 of file Thread.h.

References mExecution, and mThread.

00076                       {
00077                 if(mExecution){
00078                         pthread_cancel(mThread);
00079                         mExecution=false;
00080                 }
00081         }

void Thread::AttendreFin (  )  [inline]

Attendre la fin d'autre thread (join).

Definition at line 86 of file Thread.h.

References mExecution, and mThread.

00086                           {
00087                 if(mExecution) {
00088                         if(pthread_join(mThread,NULL)!=0 ) cerr<<endl<<"Erreur avec pthread_join()!"<<endl;
00089                         mExecution = false;
00090                 }
00091         }

virtual void* Thread::Traitement (  )  [pure virtual]

Fonction virtuelle du traitement effectué par le thread => à surcharger lors de l'héritage.

Implemented in AffichageGrille, LanceurSJ, TraitementClient, TraitementComServeurJeu, TraitementComServeurPrincipal, and TraitementJoueur.

Referenced by Filament().

static void* Thread::Filament ( void *  pthis  )  [inline, static, private]

Fonction exécutée par le thread, réfère le lanceur et lance la fonction virtuelle Traitement().

Parameters:
pthis Pointeur sur le thread lanceur
Returns:

Definition at line 103 of file Thread.h.

References mExecution, and Traitement().

Referenced by Demarrer().

00103                                           {
00104                 try{                    
00105                         Thread *parent = (Thread*)pthis;
00106                         parent->mExecution=true;
00107                         parent->Traitement();
00108                 }
00109                 catch(...){ cerr<<"Filament est partie en sucette!!!"<<endl; }
00110                 pthread_exit(0);
00111         }

Here is the call graph for this function:


Member Data Documentation

bool Thread::mExecution [private]

Booléen indiquant l'exécution du thread.

Definition at line 116 of file Thread.h.

Referenced by Arreter(), AttendreFin(), Demarrer(), Filament(), Thread(), and ~Thread().

pthread_t Thread::mThread [private]

Structure du thread.

Definition at line 121 of file Thread.h.

Referenced by Arreter(), AttendreFin(), Demarrer(), Thread(), and ~Thread().


The documentation for this class was generated from the following file:
Generated on Wed Jan 2 14:02:16 2008 for Pacman by  doxygen 1.5.1