Thread.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef THREAD_H
  2. #define THREAD_H
  3. #include <iostream>
  4. #include <map>
  5. #include <SDL_thread.h>
  6. class Thread
  7. {
  8. public:
  9. Thread();
  10. virtual ~Thread();// Arrête automatiquement le thread meme s'il est en cours.
  11. bool start();// Démarre la fonction run() dans un thread.
  12. void stop();// Arrête le thread.
  13. void join();// Rattache le thread au processus principal qui est bloqué et attend que le run() se termine.
  14. 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.
  15. bool threadRunning();
  16. bool lockMutex(std::string name);
  17. bool unlockMutex(std::string name);
  18. virtual void run() = 0;// Tout devra se passer ici
  19. protected:
  20. bool createLockMutex(std::string name);
  21. private:
  22. static int ThreadInit(void* param);
  23. bool m_isstop;
  24. SDL_Thread *m_t;
  25. bool m_autoDelete;
  26. std::map<std::string, SDL_mutex*> m_mutexs;
  27. };
  28. #endif // THREAD_H