+++ /dev/null
-/*
-This file is part of libmspframework
-Copyright © 2006 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-#ifndef MSP_FRAMEWORK_THREAD_H_
-#define MSP_FRAMEWORK_THREAD_H_
-
-#include "types.h"
-
-namespace Msp {
-
-/**
-Base class for threads. To create a thread for some task, derive it from this
-class and implement the main() function. Note that threads are not
-automatically started upon creation - you must manually call launch() instead.
-This is to allow initializing variables of the derived class before the thread
-is started.
-*/
-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_;
-
- Thread(const Thread &);
- Thread &operator=(const 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_
-};
-
-} // namespace Msp
-
-#endif