+++ /dev/null
-#include "../include/threadcontroller.h"\r
-#include "../include/option.h"\r
-#include "../include/freenet/freenetmasterthread.h"\r
-#include "../include/nntp/nntplistener.h"\r
-#include "../include/http/httpthread.h"\r
-\r
-#ifdef XMEM\r
- #include <xmem.h>\r
-#endif\r
-\r
-ThreadController::~ThreadController()\r
-{\r
- ShutdownThreads();\r
-}\r
-\r
-void ThreadController::ReadConfig()\r
-{\r
-\r
- std::string tempval="";\r
- Option::Instance()->Get("StartFreenetUpdater",tempval);\r
- if(tempval=="true")\r
- {\r
- m_startfreenet=true;\r
- }\r
- else\r
- {\r
- m_startfreenet=false;\r
- }\r
-\r
- tempval="";\r
- Option::Instance()->Get("StartNNTP",tempval);\r
- if(tempval=="true")\r
- {\r
- m_startnntp=true;\r
- }\r
- else\r
- {\r
- m_startnntp=false;\r
- }\r
-\r
- tempval="";\r
- Option::Instance()->Get("StartHTTP",tempval);\r
- if(tempval=="true")\r
- {\r
- m_starthttp=true;\r
- }\r
- else\r
- {\r
- m_starthttp=false;\r
- }\r
-\r
-}\r
-\r
-void ThreadController::RestartThreads()\r
-{\r
- m_log->WriteLog(LogFile::LOGLEVEL_INFO,"ThreadController::RestartThreads restarting threads.");\r
- ShutdownThreads();\r
- StartThreads();\r
-}\r
-\r
-void ThreadController::ShutdownFreenetThread()\r
-{\r
- if(m_freenetthread)\r
- {\r
- m_log->WriteLog(LogFile::LOGLEVEL_INFO,"ThreadController::ShutdownFreenetThread shutting down Freenet thread.");\r
- m_freenetthread->Cancel();\r
- m_freenetthread->Join();\r
- delete m_freenetthread;\r
- m_freenetthread=NULL;\r
- }\r
-}\r
-\r
-void ThreadController::ShutdownHTTPThread()\r
-{\r
- if(m_httpthread)\r
- {\r
- m_log->WriteLog(LogFile::LOGLEVEL_INFO,"ThreadController::ShutdownHTTPThread shutting down HTTP thread.");\r
- m_httpthread->Cancel();\r
- m_httpthread->Join();\r
- delete m_httpthread;\r
- m_httpthread=NULL;\r
- }\r
-}\r
-\r
-void ThreadController::ShutdownNNTPThread()\r
-{\r
- if(m_nntpthread)\r
- {\r
- m_log->WriteLog(LogFile::LOGLEVEL_INFO,"ThreadController::ShutdownNNTPThread shutting down NNTP thread.");\r
- m_nntpthread->Cancel();\r
- m_nntpthread->Join();\r
- delete m_nntpthread;\r
- m_nntpthread=NULL;\r
- }\r
-}\r
-\r
-void ThreadController::ShutdownThreads()\r
-{\r
- ShutdownFreenetThread();\r
- ShutdownNNTPThread();\r
- ShutdownHTTPThread();\r
-}\r
-\r
-void ThreadController::StartFreenetThread()\r
-{\r
- m_log->WriteLog(LogFile::LOGLEVEL_INFO,"ThreadController::StartFreenetThread starting Freenet thread.");\r
- m_freenetthread=new PThread::Thread(new FreenetMasterThread());\r
-}\r
-\r
-void ThreadController::StartHTTPThread()\r
-{\r
- m_log->WriteLog(LogFile::LOGLEVEL_INFO,"ThreadController::StartHTTPThread starting HTTP thread.");\r
- m_httpthread=new PThread::Thread(new HTTPThread());\r
-}\r
-\r
-void ThreadController::StartNNTPThread()\r
-{\r
- m_log->WriteLog(LogFile::LOGLEVEL_INFO,"ThreadController::StartNNTPThread starting NNTP thread.");\r
- m_nntpthread=new PThread::Thread(new NNTPListener());\r
-}\r
-\r
-void ThreadController::StartThreads()\r
-{\r
- ReadConfig();\r
-\r
- if(m_startfreenet)\r
- {\r
- StartFreenetThread();\r
- }\r
- if(m_startnntp)\r
- {\r
- StartNNTPThread();\r
- }\r
- if(m_starthttp)\r
- {\r
- StartHTTPThread();\r
- }\r
-}\r
-\r