version 0.0.2
[fms.git] / include / freenet / trustlistrequester.h
1 #ifndef _trustlistrequester_\r
2 #define _trustlistrequester_\r
3 \r
4 #include "../idatabase.h"\r
5 #include "../ilogger.h"\r
6 #include "../datetime.h"\r
7 #include "ifreenetregistrable.h"\r
8 #include "ifcpconnected.h"\r
9 #include "ifcpmessagehandler.h"\r
10 #include "iperiodicprocessor.h"\r
11 \r
12 class TrustListRequester:public IFreenetRegistrable,public IFCPConnected,public IFCPMessageHandler,public IPeriodicProcessor,public IDatabase,public ILogger\r
13 {\r
14 public:\r
15         TrustListRequester();\r
16         TrustListRequester(FCPv2 *fcp);\r
17 \r
18         void FCPDisconnected();\r
19         void FCPConnected();\r
20 \r
21         const bool HandleMessage(FCPMessage &message);\r
22 \r
23         void Process();\r
24 \r
25         void RegisterWithThread(FreenetMasterThread *thread);\r
26 \r
27 private:\r
28         void Initialize();\r
29         void PopulateIDList();                          // clear and re-populate m_ids with identities we want to query\r
30         void StartRequest(const long identityid);\r
31         const bool HandleAllData(FCPMessage &message);\r
32         const bool HandleGetFailed(FCPMessage &message);\r
33         void RemoveFromRequestList(const long identityid);\r
34 \r
35         DateTime m_tempdate;\r
36         std::string m_messagebase;\r
37         long m_maxrequests;\r
38         std::vector<long> m_requesting;         // list of ids we are currently requesting from\r
39         std::map<long,bool> m_ids;                      // map of all ids we know and whether we have requested file from them yet\r
40         \r
41 };\r
42 \r
43 #endif  // _trustlistrequester_\r