version 0.3.29
[fms.git] / include / freenet / fmsversionrequester.h
1 #ifndef _fmsversionrequester_\r
2 #define _fmsversionrequester_\r
3 \r
4 #include "ifreenetregistrable.h"\r
5 #include "ifcpconnected.h"\r
6 #include "ifcpmessagehandler.h"\r
7 #include "iperiodicprocessor.h"\r
8 #include "../idatabase.h"\r
9 #include "../ilogger.h"\r
10 \r
11 #include <Poco/DateTime.h>\r
12 \r
13 class FMSVersionRequester:public IFreenetRegistrable,public IFCPConnected,public IFCPMessageHandler,public IPeriodicProcessor,public IDatabase,public ILogger\r
14 {\r
15 public:\r
16         FMSVersionRequester(SQLite3DB::DB *db);\r
17         FMSVersionRequester(SQLite3DB::DB *db, FCPv2::Connection *fcp);\r
18 \r
19         void FCPConnected()                     {}\r
20         void FCPDisconnected()          {}\r
21         const bool HandleMessage(FCPv2::Message &message);\r
22 \r
23         void Process();\r
24 \r
25         void RegisterWithThread(FreenetMasterThread *thread);\r
26 \r
27 private:\r
28         const bool HandleAllData(FCPv2::Message &message);\r
29         const bool HandleGetFailed(FCPv2::Message &message);\r
30         void Initialize();\r
31         void StartRequest();\r
32 \r
33         Poco::DateTime m_lastchecked;\r
34         std::string m_fcpuniquename;\r
35 };\r
36 \r
37 #endif  // _fmsversionrequester_\r