Copyright © 2006 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
+
#ifndef MSP_CORE_THREAD_H_
#define MSP_CORE_THREAD_H_
*/
class Thread
{
+private:
+ ThreadHandle thread_;
+ bool launched_;
+
+protected:
+ Thread(): launched_(false) { }
public:
+ virtual ~Thread();
+
void join();
void cancel();
void kill();
- virtual ~Thread();
protected:
- Thread(): launched_(false) { }
void launch();
virtual void main()=0;
void check_cancel();
-private:
- ThreadHandle thread_;
- bool launched_;
-
- Thread(const Thread &);
- Thread &operator=(const Thread &);
+private:
static
#ifdef WIN32
DWORD WINAPI
#else
void *
#endif
- main_(void *t) { ((Thread *)t)->main(); return 0; }
+ main_(void *t) { (reinterpret_cast<Thread *>(t))->main(); return 0; }
+
+ Thread(const Thread &);
+ Thread &operator=(const Thread &);
};
} // namespace Msp