00001 #ifndef __THREADED_OBJECT__ 00002 #define __THREADED_OBJECT__ 00003 00004 #include <SDL/SDL_thread.h> 00005 00006 class ThreadedObject 00007 { 00008 public: 00009 ThreadedObject(); 00010 ~ThreadedObject(); 00011 void start(); 00012 void stop(); 00013 void pause(); 00014 void resume(); 00015 void wait(); 00016 bool isPausing(); 00017 bool isRunning(); 00018 virtual bool oneStep(); 00019 void notifyFinish(); 00020 private: 00021 bool m_isPausing, m_isRunning; 00022 SDL_Thread *m_thread; 00023 SDL_sem *m_sem; 00024 }; 00025 00026 #endif