version 0.3.29
[fms.git] / include / freenet / identityintroductionrequester.h
1 #ifndef _identityintroduction_requester_\r
2 #define _identityintroduction_requester_\r
3 \r
4 #include "../idatabase.h"\r
5 #include "../ilogger.h"\r
6 #include "ifreenetregistrable.h"\r
7 #include "ifcpconnected.h"\r
8 #include "ifcpmessagehandler.h"\r
9 #include "iperiodicprocessor.h"\r
10 \r
11 #include <Poco/DateTime.h>\r
12 \r
13 class IdentityIntroductionRequester:public IFreenetRegistrable,public IFCPConnected,public IFCPMessageHandler,public IPeriodicProcessor,public IDatabase,public ILogger\r
14 {\r
15 public:\r
16         IdentityIntroductionRequester(SQLite3DB::DB *db);\r
17         IdentityIntroductionRequester(SQLite3DB::DB *db, FCPv2::Connection *fcp);\r
18 \r
19         void FCPDisconnected();\r
20         void FCPConnected();\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         void Initialize();\r
29         void StartRequests(const long localidentityid);\r
30         void StartRequest(const std::string &UUID);\r
31         void PopulateIDList();\r
32         void RemoveFromRequestList(const std::string &UUID);\r
33         const bool HandleGetFailed(FCPv2::Message &message);\r
34         const bool HandleAllData(FCPv2::Message &message);\r
35 \r
36         Poco::DateTime m_tempdate;\r
37         std::map<long,bool> m_ids;\r
38         std::vector<std::string> m_requesting;\r
39         std::string m_messagebase;\r
40         int m_maxrequests;\r
41 \r
42 };\r
43 \r
44 #endif  // _identityintroduction_requester_\r