From 7234fe326d16d6bf9f4374a09ddc6ef790e6723f Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 18 Jun 2009 22:03:02 +0200 Subject: Globale Variablen durch Application-Klasse ersetzt --- src/Core/ThreadManager.h | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) (limited to 'src/Core/ThreadManager.h') diff --git a/src/Core/ThreadManager.h b/src/Core/ThreadManager.h index b512ad4..c20cb1f 100644 --- a/src/Core/ThreadManager.h +++ b/src/Core/ThreadManager.h @@ -22,8 +22,6 @@ #include -#include "Initializable.h" - #include #include @@ -36,8 +34,14 @@ namespace Mad { namespace Core { -class ThreadManager : public Initializable { +class Application; + +class ThreadManager : private boost::noncopyable { private: + friend class Application; + + Application *application; + boost::thread::id mainThreadId; boost::shared_ptr workerThread, loggerThread, ioThread; std::map > threads; @@ -53,11 +57,8 @@ class ThreadManager : public Initializable { boost::scoped_ptr ioWorker; - boost::asio::io_service ioService; - - static ThreadManager threadManager; - - ThreadManager() {} + ThreadManager(Application *application0); + ~ThreadManager(); void workerFunc(); void ioFunc(); @@ -80,10 +81,6 @@ class ThreadManager : public Initializable { thread->join(); } - protected: - virtual void doInit(); - virtual void doDeinit(); - public: bool isThisMainThread() { return (mainThreadId == boost::this_thread::get_id()); @@ -94,17 +91,9 @@ class ThreadManager : public Initializable { return (workerThread->get_id() == boost::this_thread::get_id()); } - boost::asio::io_service& getIOService() { - return ioService; - } - void detach(); void pushWork(const boost::function0 &newWork); - - static ThreadManager* get() { - return &threadManager; - } }; } -- cgit v1.2.3