1 #ifndef _freenetmasterthread_
\r
2 #define _freenetmasterthread_
\r
4 #include "../ilogger.h"
\r
5 #include "../ithreaddatabase.h"
\r
6 #include "ifreenetregistrable.h"
\r
7 #include "ifcpmessagehandler.h"
\r
8 #include "ifcpconnected.h"
\r
9 #include "iperiodicprocessor.h"
\r
11 #include "../threadwrapper/cancelablerunnable.h"
\r
13 // forward declaration
\r
14 class IFreenetRegistrable;
\r
16 class FreenetMasterThread:public CancelableRunnable,public ILogger, public IFCPMessageHandler, public IThreadDatabase
\r
19 FreenetMasterThread();
\r
20 ~FreenetMasterThread();
\r
22 const bool HandleMessage(FCPv2::Message &message);
\r
26 // registration methods for child objects
\r
27 void RegisterPeriodicProcessor(IPeriodicProcessor *obj);
\r
28 void RegisterFCPConnected(IFCPConnected *obj);
\r
29 void RegisterFCPMessageHandler(IFCPMessageHandler *obj);
\r
32 const bool FCPConnect();
\r
36 std::string m_fcphost;
\r
38 FCPv2::Connection m_fcp;
\r
39 std::vector<IFreenetRegistrable *> m_registrables;
\r
40 std::vector<IPeriodicProcessor *> m_processors;
\r
41 std::vector<IFCPConnected *> m_fcpconnected;
\r
42 std::vector<IFCPMessageHandler *> m_fcpmessagehandlers;
\r
43 bool m_receivednodehello;
\r
47 #endif // _freenetmasterthread_
\r