X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=include%2Ffreenet%2Fiindexrequester.h;h=1966407c83b8811ee3e783903932d1bb86868cc0;hb=59a5414ec47a2932a7802fcd1d98c4d80166564f;hp=b74e69a5a418da5318217111ce8820b89a07629f;hpb=dec33c63afafabf83c3039e916725cac6faef9b3;p=fms.git diff --git a/include/freenet/iindexrequester.h b/include/freenet/iindexrequester.h index b74e69a..1966407 100644 --- a/include/freenet/iindexrequester.h +++ b/include/freenet/iindexrequester.h @@ -14,6 +14,8 @@ #include #include +#include + #ifdef XMEM #include #endif @@ -22,13 +24,13 @@ template class IIndexRequester:public IFreenetRegistrable,public IFCPConnected,public IFCPMessageHandler,public IPeriodicProcessor,public IDatabase,public ILogger { public: - IIndexRequester(); - IIndexRequester(FCPv2 *fcp); + IIndexRequester(SQLite3DB::DB *db); + IIndexRequester(SQLite3DB::DB *db, FCPv2::Connection *fcp); virtual ~IIndexRequester() {} virtual void FCPConnected(); virtual void FCPDisconnected(); - virtual const bool HandleMessage(FCPMessage &message); + virtual const bool HandleMessage(FCPv2::Message &message); virtual void Process(); @@ -39,8 +41,8 @@ protected: virtual void Initialize()=0; // initialize m_maxrequests and m_fcpuniquename virtual void PopulateIDList()=0; virtual void StartRequest(const IDTYPE &id)=0; - virtual const bool HandleAllData(FCPMessage &message)=0; - virtual const bool HandleGetFailed(FCPMessage &message)=0; + virtual const bool HandleAllData(FCPv2::Message &message)=0; + virtual const bool HandleGetFailed(FCPv2::Message &message)=0; virtual void RemoveFromRequestList(const IDTYPE id); Poco::DateTime m_tempdate; @@ -51,19 +53,19 @@ protected: std::vector m_requesting; // list of ids we are currently requesting from // these MUST be populated by child class - long m_maxrequests; + int m_maxrequests; std::string m_fcpuniquename; }; template -IIndexRequester::IIndexRequester() +IIndexRequester::IIndexRequester(SQLite3DB::DB *db):IDatabase(db) { InitializeIIndexRequester(); } template -IIndexRequester::IIndexRequester(FCPv2 *fcp):IFCPConnected(fcp) +IIndexRequester::IIndexRequester(SQLite3DB::DB *db, FCPv2::Connection *fcp):IDatabase(db),IFCPConnected(fcp) { InitializeIIndexRequester(); } @@ -82,7 +84,7 @@ void IIndexRequester::FCPConnected() } if(m_fcpuniquename.find("|")!=std::string::npos) { - m_log->fatal("IIndexRequester::FCPConnected fcpuniquename contains | character! This is not a valid character!"); + m_log->fatal("IIndexRequester::FCPConnected fcpuniquename "+m_fcpuniquename+" contains | character! This is not a valid character!"); } m_lastreceived=Poco::Timestamp(); @@ -98,7 +100,7 @@ void IIndexRequester::FCPDisconnected() } template -const bool IIndexRequester::HandleMessage(FCPMessage &message) +const bool IIndexRequester::HandleMessage(FCPv2::Message &message) { if(message["Identifier"].find(m_fcpuniquename)==0) @@ -141,8 +143,9 @@ void IIndexRequester::InitializeIIndexRequester() { m_maxrequests=-1; m_fcpuniquename=""; + Option option(m_db); - Option::Instance()->Get("MessageBase",m_messagebase); + option.Get("MessageBase",m_messagebase); m_tempdate=Poco::Timestamp(); m_lastreceived=Poco::Timestamp(); m_lastpopulated=Poco::Timestamp(); @@ -208,11 +211,8 @@ void IIndexRequester::RegisterWithThread(FreenetMasterThread *thread) template void IIndexRequester::RemoveFromRequestList(const IDTYPE id) { - typename std::vector::iterator i=m_requesting.begin(); - while(i!=m_requesting.end() && (*i)!=id) - { - i++; - } + typename std::vector::iterator i=std::find(m_requesting.begin(),m_requesting.end(),id); + if(i!=m_requesting.end()) { m_requesting.erase(i);