X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=include%2Ffreenet%2Fiindexinserter.h;h=bb0e9e7f1eb16686689ac918e94029a3f6f77da4;hb=dec33c63afafabf83c3039e916725cac6faef9b3;hp=d7093a39814ce6ba79467e1909e063bcae646f30;hpb=6b896a9e1dc143bba86795be1e9336549db9b85f;p=fms.git diff --git a/include/freenet/iindexinserter.h b/include/freenet/iindexinserter.h index d7093a3..bb0e9e7 100644 --- a/include/freenet/iindexinserter.h +++ b/include/freenet/iindexinserter.h @@ -4,19 +4,27 @@ #include "../idatabase.h" #include "../ilogger.h" #include "../option.h" -#include "../datetime.h" #include "../stringfunctions.h" #include "ifreenetregistrable.h" #include "ifcpconnected.h" #include "ifcpmessagehandler.h" #include "iperiodicprocessor.h" +#include +#include +#include + +#ifdef XMEM + #include +#endif + template class IIndexInserter:public IFreenetRegistrable,public IFCPConnected,public IFCPMessageHandler,public IPeriodicProcessor,public IDatabase,public ILogger { public: IIndexInserter(); IIndexInserter(FCPv2 *fcp); + virtual ~IIndexInserter() {} virtual void FCPConnected(); virtual void FCPDisconnected(); @@ -31,13 +39,13 @@ protected: virtual void Initialize()=0; // initialize m_fcpuniquename virtual const bool HandlePutSuccessful(FCPMessage &message)=0; virtual const bool HandlePutFailed(FCPMessage &message)=0; - virtual void StartInsert(const IDTYPE &id)=0; + virtual const bool StartInsert(const IDTYPE &id)=0; virtual void CheckForNeededInsert()=0; virtual void RemoveFromInsertList(const IDTYPE id); std::vector m_inserting; // list of ids we are inserting std::string m_messagebase; - DateTime m_lastchecked; + Poco::DateTime m_lastchecked; // these MUST be populated by child class std::string m_fcpuniquename; @@ -61,11 +69,11 @@ void IIndexInserter::FCPConnected() // make sure variables have been initialized by the derived class if(m_fcpuniquename=="") { - m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"IIndexInserter::FCPConnected fcpuniquename not initialized correctly!"); + m_log->fatal("IIndexInserter::FCPConnected fcpuniquename not initialized correctly!"); } if(m_fcpuniquename.find("|")!=std::string::npos) { - m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"IIndexInserter::FCPConnected fcpuniquename contains | character! This is not a valid character!"); + m_log->fatal("IIndexInserter::FCPConnected fcpuniquename contains | character! This is not a valid character!"); } m_inserting.clear(); @@ -106,6 +114,7 @@ const bool IIndexInserter::HandleMessage(FCPMessage &message) StringFunctions::Split(message["Identifier"],"|",idparts); StringFunctions::Convert(idparts[1],id); RemoveFromInsertList(id); + m_log->debug("IIndexInserter::HandleMessage IdentifierCollision for "+m_fcpuniquename+" "+message["Identifier"]); return true; } } @@ -117,17 +126,16 @@ template void IIndexInserter::InitializeIIndexInserter() { m_fcpuniquename=""; - Option::instance()->Get("MessageBase",m_messagebase); - m_lastchecked.SetToGMTime(); + Option::Instance()->Get("MessageBase",m_messagebase); + m_lastchecked=Poco::Timestamp(); } template void IIndexInserter::Process() { - DateTime now; - now.SetToGMTime(); + Poco::DateTime now; - if(m_lastchecked<(now-(1.0/1440.0))) + if(m_lastchecked<(now-Poco::Timespan(0,0,1,0,0))) { CheckForNeededInsert(); m_lastchecked=now; @@ -145,7 +153,7 @@ void IIndexInserter::RegisterWithThread(FreenetMasterThread *thread) template void IIndexInserter::RemoveFromInsertList(const IDTYPE identityid) { - std::vector::iterator i=m_inserting.begin(); + typename std::vector::iterator i=m_inserting.begin(); while(i!=m_inserting.end() && (*i)!=identityid) { i++;