123456789101112131415161718192021222324252627282930313233343536 |
- #ifndef THREAD_H
- #define THREAD_H
- #include <iostream>
- #include <map>
- #include <SDL_thread.h>
- class Thread
- {
- public:
- Thread();
- virtual ~Thread();// Arrête automatiquement le thread meme s'il est en cours.
- bool start();// Démarre la fonction run() dans un thread.
- void stop();// Arrête le thread.
- void join();// Rattache le thread au processus principal qui est bloqué et attend que le run() se termine.
- void setAutoDelete(bool autoDelete);// Permet de declarer dynamiquement une classe qui hérite de Thread sans garder le pointeur, il sera delete automatiquement à la fin du thread si l'argument est true.
- bool threadRunning();
- bool lockMutex(std::string name);
- bool unlockMutex(std::string name);
- virtual void run() = 0;// Tout devra se passer ici
- protected:
- bool createLockMutex(std::string name);
- private:
- static int ThreadInit(void* param);
- bool m_isstop;
- SDL_Thread *m_t;
- bool m_autoDelete;
- std::map<std::string, SDL_mutex*> m_mutexs;
- };
- #endif // THREAD_H
|