X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=include%2Ffreenet%2Ftrustlistrequester.h;fp=include%2Ffreenet%2Ftrustlistrequester.h;h=721b9cb565fb277d280feca3774096d836d7230d;hb=1b0c3b7f86935a772aad271bad4f3d1f37243c2d;hp=0000000000000000000000000000000000000000;hpb=d8f51eac91f86a1e00a05a5058a8fa9eb8732464;p=fms.git diff --git a/include/freenet/trustlistrequester.h b/include/freenet/trustlistrequester.h new file mode 100644 index 0000000..721b9cb --- /dev/null +++ b/include/freenet/trustlistrequester.h @@ -0,0 +1,43 @@ +#ifndef _trustlistrequester_ +#define _trustlistrequester_ + +#include "../idatabase.h" +#include "../ilogger.h" +#include "../datetime.h" +#include "ifreenetregistrable.h" +#include "ifcpconnected.h" +#include "ifcpmessagehandler.h" +#include "iperiodicprocessor.h" + +class TrustListRequester:public IFreenetRegistrable,public IFCPConnected,public IFCPMessageHandler,public IPeriodicProcessor,public IDatabase,public ILogger +{ +public: + TrustListRequester(); + TrustListRequester(FCPv2 *fcp); + + void FCPDisconnected(); + void FCPConnected(); + + const bool HandleMessage(FCPMessage &message); + + void Process(); + + void RegisterWithThread(FreenetMasterThread *thread); + +private: + void Initialize(); + void PopulateIDList(); // clear and re-populate m_ids with identities we want to query + void StartRequest(const long identityid); + const bool HandleAllData(FCPMessage &message); + const bool HandleGetFailed(FCPMessage &message); + void RemoveFromRequestList(const long identityid); + + DateTime m_tempdate; + std::string m_messagebase; + long m_maxrequests; + std::vector m_requesting; // list of ids we are currently requesting from + std::map m_ids; // map of all ids we know and whether we have requested file from them yet + +}; + +#endif // _trustlistrequester_