-/*
+/* $Id$
+
This file is part of libmspcore
Copyright © 2006 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
-#ifndef MSP_FRAMEWORK_THREAD_H_
-#define MSP_FRAMEWORK_THREAD_H_
-#include "types.h"
+#ifndef MSP_CORE_THREAD_H_
+#define MSP_CORE_THREAD_H_
namespace Msp {
*/
class Thread
{
-public:
- 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_;
+ struct Private;
+ Private *priv_;
+ bool launched_;
+
+protected:
+ Thread();
+private:
Thread(const Thread &);
Thread &operator=(const Thread &);
+public:
+ virtual ~Thread();
-#ifdef WIN32
-# define THREAD_RETURN_ DWORD WINAPI
-#else
-# define THREAD_RETURN_ void *
-#endif
- static THREAD_RETURN_ main_(void *t) { ((Thread *)t)->main(); return 0; }
-#undef THREAD_RETURN_
+ void join();
+ void kill();
+protected:
+ void launch();
+ virtual void main() = 0;
};
} // namespace Msp