version 0.0.2
[fms.git] / include / freenet / trustlistrequester.h
diff --git a/include/freenet/trustlistrequester.h b/include/freenet/trustlistrequester.h
new file mode 100644 (file)
index 0000000..721b9cb
--- /dev/null
@@ -0,0 +1,43 @@
+#ifndef _trustlistrequester_\r
+#define _trustlistrequester_\r
+\r
+#include "../idatabase.h"\r
+#include "../ilogger.h"\r
+#include "../datetime.h"\r
+#include "ifreenetregistrable.h"\r
+#include "ifcpconnected.h"\r
+#include "ifcpmessagehandler.h"\r
+#include "iperiodicprocessor.h"\r
+\r
+class TrustListRequester:public IFreenetRegistrable,public IFCPConnected,public IFCPMessageHandler,public IPeriodicProcessor,public IDatabase,public ILogger\r
+{\r
+public:\r
+       TrustListRequester();\r
+       TrustListRequester(FCPv2 *fcp);\r
+\r
+       void FCPDisconnected();\r
+       void FCPConnected();\r
+\r
+       const bool HandleMessage(FCPMessage &message);\r
+\r
+       void Process();\r
+\r
+       void RegisterWithThread(FreenetMasterThread *thread);\r
+\r
+private:\r
+       void Initialize();\r
+       void PopulateIDList();                          // clear and re-populate m_ids with identities we want to query\r
+       void StartRequest(const long identityid);\r
+       const bool HandleAllData(FCPMessage &message);\r
+       const bool HandleGetFailed(FCPMessage &message);\r
+       void RemoveFromRequestList(const long identityid);\r
+\r
+       DateTime m_tempdate;\r
+       std::string m_messagebase;\r
+       long m_maxrequests;\r
+       std::vector<long> m_requesting;         // list of ids we are currently requesting from\r
+       std::map<long,bool> m_ids;                      // map of all ids we know and whether we have requested file from them yet\r
+       \r
+};\r
+\r
+#endif // _trustlistrequester_\r