Code_TYMPAN  4.4.0
Industrial site acoustic simulation
Classes | Macros | Typedefs
threading.h File Reference
#include <queue>
#include <vector>
#include "Tympan/core/smartptr.h"
#include <QMutex>
#include <QWaitCondition>
#include <QThread>
Include dependency graph for threading.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  OSleeper
 Access to sleep protected methods of the QThread class. More...
 
class  OMutexLocker
 Class used as RAII object (Resource Acquisition Is Initialization) More...
 
class  OSlaveThread
 This class defines a thread for running tasks in a threads collection. Slave thread for the threads collection. More...
 
class  OTask
 Task of a threads collection. More...
 
class  OThreadPool
 Slave threads collection. More...
 

Macros

#define TY_AUTO_MUTEX_NAME   _mutex
 
#define QT_THREAD_SUPPORT   1
 
#define TY_AUTO_MUTEX   mutable QMutex TY_AUTO_MUTEX_NAME;
 Auto mutex. More...
 
#define TY_LOCK_AUTO_MUTEX   TY_AUTO_MUTEX_NAME.lock();
 
#define TY_UNLOCK_AUTO_MUTEX   TY_AUTO_MUTEX_NAME.unlock();
 
#define TY_OMUTEXLOCKER_AUTO_MUTEX   OMutexLocker locker(TY_AUTO_MUTEX_NAME);
 
#define TY_MUTEX(name)   mutable QMutex name;
 Named mutex. More...
 
#define TY_LOCK_MUTEX(name)   name.lock();
 
#define TY_UNLOCK_MUTEX(name)   name.unlock();
 
#define TY_OMUTEXLOCKER_MUTEX(name)   OMutexLocker locker(name);
 
#define TY_STATIC_MUTEX(name)   static QMutex name;
 Named static mutex. More...
 
#define TY_STATIC_MUTEX_INSTANCE(name)   QMutex name;
 
#define TY_AUTO_SHARED_MUTEX   mutable QMutex* TY_AUTO_MUTEX_NAME;
 Auto shared mutex. More...
 
#define TY_NEW_AUTO_SHARED_MUTEX   TY_AUTO_MUTEX_NAME = new QMutex();
 
#define TY_DELETE_AUTO_SHARED_MUTEX   delete TY_AUTO_MUTEX_NAME;
 
#define TY_LOCK_AUTO_SHARED_MUTEX   TY_AUTO_MUTEX_NAME->lock();
 
#define TY_UNLOCK_AUTO_SHARED_MUTEX   TY_AUTO_MUTEX_NAME->unlock();
 
#define TY_OMUTEXLOCKER_AUTO_SHARED_MUTEX   OMutexLocker locker(*TY_AUTO_MUTEX_NAME);
 
#define TY_SHARED_MUTEX(name)   mutable QMutex* name;
 Named shared mutex. More...
 
#define TY_NEW_SHARED_MUTEX(name)   name = new QMutex();
 
#define TY_DELETE_SHARED_MUTEX(name)   delete name;
 
#define TY_LOCK_SHARED_MUTEX(name)   name->lock();
 
#define TY_UNLOCK_SHARED_MUTEX(name)   name->unlock();
 
#define TY_OMUTEXLOCKER_SHARED_MUTEX(name)   OMutexLocker locker(*name);
 

Typedefs

typedef SmartPtr< OTaskLPOTask
 Smart Pointer sur OTask. More...
 

Macro Definition Documentation

◆ QT_THREAD_SUPPORT

#define QT_THREAD_SUPPORT   1

Definition at line 29 of file threading.h.

◆ TY_AUTO_MUTEX

#define TY_AUTO_MUTEX   mutable QMutex TY_AUTO_MUTEX_NAME;

Auto mutex.

Definition at line 58 of file threading.h.

◆ TY_AUTO_MUTEX_NAME

#define TY_AUTO_MUTEX_NAME   _mutex

Definition at line 25 of file threading.h.

◆ TY_AUTO_SHARED_MUTEX

#define TY_AUTO_SHARED_MUTEX   mutable QMutex* TY_AUTO_MUTEX_NAME;

Auto shared mutex.

Definition at line 71 of file threading.h.

◆ TY_DELETE_AUTO_SHARED_MUTEX

#define TY_DELETE_AUTO_SHARED_MUTEX   delete TY_AUTO_MUTEX_NAME;

Definition at line 73 of file threading.h.

◆ TY_DELETE_SHARED_MUTEX

#define TY_DELETE_SHARED_MUTEX (   name)    delete name;

Definition at line 80 of file threading.h.

◆ TY_LOCK_AUTO_MUTEX

#define TY_LOCK_AUTO_MUTEX   TY_AUTO_MUTEX_NAME.lock();

Definition at line 59 of file threading.h.

◆ TY_LOCK_AUTO_SHARED_MUTEX

#define TY_LOCK_AUTO_SHARED_MUTEX   TY_AUTO_MUTEX_NAME->lock();

Definition at line 74 of file threading.h.

◆ TY_LOCK_MUTEX

#define TY_LOCK_MUTEX (   name)    name.lock();

Definition at line 64 of file threading.h.

◆ TY_LOCK_SHARED_MUTEX

#define TY_LOCK_SHARED_MUTEX (   name)    name->lock();

Definition at line 81 of file threading.h.

◆ TY_MUTEX

#define TY_MUTEX (   name)    mutable QMutex name;

Named mutex.

Definition at line 63 of file threading.h.

◆ TY_NEW_AUTO_SHARED_MUTEX

#define TY_NEW_AUTO_SHARED_MUTEX   TY_AUTO_MUTEX_NAME = new QMutex();

Definition at line 72 of file threading.h.

◆ TY_NEW_SHARED_MUTEX

#define TY_NEW_SHARED_MUTEX (   name)    name = new QMutex();

Definition at line 79 of file threading.h.

◆ TY_OMUTEXLOCKER_AUTO_MUTEX

#define TY_OMUTEXLOCKER_AUTO_MUTEX   OMutexLocker locker(TY_AUTO_MUTEX_NAME);

Definition at line 61 of file threading.h.

◆ TY_OMUTEXLOCKER_AUTO_SHARED_MUTEX

#define TY_OMUTEXLOCKER_AUTO_SHARED_MUTEX   OMutexLocker locker(*TY_AUTO_MUTEX_NAME);

Definition at line 76 of file threading.h.

◆ TY_OMUTEXLOCKER_MUTEX

#define TY_OMUTEXLOCKER_MUTEX (   name)    OMutexLocker locker(name);

Definition at line 66 of file threading.h.

◆ TY_OMUTEXLOCKER_SHARED_MUTEX

#define TY_OMUTEXLOCKER_SHARED_MUTEX (   name)    OMutexLocker locker(*name);

Definition at line 83 of file threading.h.

◆ TY_SHARED_MUTEX

#define TY_SHARED_MUTEX (   name)    mutable QMutex* name;

Named shared mutex.

Definition at line 78 of file threading.h.

◆ TY_STATIC_MUTEX

#define TY_STATIC_MUTEX (   name)    static QMutex name;

Named static mutex.

Definition at line 68 of file threading.h.

◆ TY_STATIC_MUTEX_INSTANCE

#define TY_STATIC_MUTEX_INSTANCE (   name)    QMutex name;

Definition at line 69 of file threading.h.

◆ TY_UNLOCK_AUTO_MUTEX

#define TY_UNLOCK_AUTO_MUTEX   TY_AUTO_MUTEX_NAME.unlock();

Definition at line 60 of file threading.h.

◆ TY_UNLOCK_AUTO_SHARED_MUTEX

#define TY_UNLOCK_AUTO_SHARED_MUTEX   TY_AUTO_MUTEX_NAME->unlock();

Definition at line 75 of file threading.h.

◆ TY_UNLOCK_MUTEX

#define TY_UNLOCK_MUTEX (   name)    name.unlock();

Definition at line 65 of file threading.h.

◆ TY_UNLOCK_SHARED_MUTEX

#define TY_UNLOCK_SHARED_MUTEX (   name)    name->unlock();

Definition at line 82 of file threading.h.

Typedef Documentation

◆ LPOTask

Smart Pointer sur OTask.

Definition at line 222 of file threading.h.