Used for reindexing the RtcomEventLogger after a sync operation.
backend->Process(eventProcessor);
}
+void AllBackends::PreInsert()
+{
+ foreach(QSharedPointer<iDBBackend> backend, Backends())
+ backend->PreInsert();
+}
+
void AllBackends::Insert(EventTypes::iEvent &event, const NumberToNameLookup &numberToNameLookup)
{
foreach(QSharedPointer<iDBBackend> backend, Backends())
#include <QList>
template <typename T1> class QSharedPointer;
+#include "iDBBackend.h"
+
namespace DBBackends
{
- class iDBBackend;
-
class AllBackends
{
public:
AllBackends(const Settings &settings);
void Process(EventProcessors::iEventProcessor &eventProcessor);
+ void PreInsert();
void Insert(EventTypes::iEvent &event, const NumberToNameLookup &numberToNameLookup);
void PostInsert();
return 0;
}
+void Fmms::PreInsert()
+{
+}
+
void Fmms::Insert(EventTypes::iEvent &event, const NumberToNameLookup &numberToNameLookup)
{
return;
Fmms(const Settings &settings);
Fmms(const Settings &settings, const EventTypes::FmmsEvent &event);
+ virtual void PreInsert();
virtual void Insert(EventTypes::iEvent &event, const NumberToNameLookup &numberToNameLookup);
virtual void PostInsert();
virtual void Process(EventProcessors::iEventProcessor &eventProcessor);
#include "EventTypes/iEvent.h"
#include "EventTypes/PhoneCall.h"
#include "EventTypes/SMS.h"
+#include "RtcomEventLoggerComponents/TriggerDisabler.h"
#include "Settings.h"
#include <QDebug>
return NULL;
}
+void RtcomEventLogger::PreInsert()
+{
+ m_TriggerDisabler = new RtcomEventLoggerComponents::TriggerDisabler(CurrentSettings());
+}
+
void RtcomEventLogger::Insert(EventTypes::iEvent &event, const NumberToNameLookup &numberToNameLookup)
{
if(EventTypes::RtcomEvent *rtcomEvent = dynamic_cast<EventTypes::RtcomEvent *>(&event))
// Reorder the DB IDs as Nokia are guilty of both premature
// optimisation as well as closed source UIs...
Reindex();
+
+ delete m_TriggerDisabler;
}
void RtcomEventLogger::ClearInsertedIDs()
namespace DBBackends
{
+ namespace RtcomEventLoggerComponents { class TriggerDisabler; }
+
class RtcomEventLogger : public iDBBackend
{
public:
RtcomEventLogger(const Settings &settings);
RtcomEventLogger(const Settings &settings, const EventTypes::RtcomEvent &event);
+ virtual void PreInsert();
virtual void Insert(EventTypes::iEvent &event, const NumberToNameLookup &numberToNameLookup);
virtual void PostInsert();
virtual void Process(EventProcessors::iEventProcessor &eventProcessor);
private:
void Reindex();
- QList<int> &InsertedIDs() { return m_InsertedIDs; }
- private:
const Settings &m_Settings;
const QString mk_DBPath;
- QList<int> m_InsertedIDs;
QHash<EventTypes::eEventTypes, int> m_ServiceIDs;
+
+ QList<int> m_InsertedIDs;
+ QList<int> &InsertedIDs() { return m_InsertedIDs; }
+
+ RtcomEventLoggerComponents::TriggerDisabler *m_TriggerDisabler;
};
}
{
public:
virtual ~iDBBackend() {}
+
+ virtual void PreInsert() =0;
virtual void Insert(EventTypes::iEvent &event, const NumberToNameLookup &numberToNameLookup) =0;
virtual void PostInsert() =0;
+
virtual void ClearInsertedIDs() =0;
//virtual uint Remove();
qDebug() << "Importing new events";
- // Re-parse the new events
+ // Re-parse the new events and insert them
+ allBackends.PreInsert();
{
int idx = 0;
foreach(QString filename, newHashesByPath.keys())
emit EventProcessed(idx, newHashes.count());
}
}
-
- // Perform any post-insert cleanup (i.e. reindexing)
- allBackends.PostInsert();
+ allBackends.PostInsert(); // Perform any post-insert cleanup (i.e. reindexing)
// Need to find a better way of refreshing the conversations view...
QProcess::execute("pkill rtcom");
EventProcessors/Hasher.cpp \
EventProcessors/Writer.cpp \
EventTypes/PhoneCall.cpp \
- DBBackends/AllBackends.cpp
+ DBBackends/AllBackends.cpp \
+ DBBackends/RtcomEventLoggerComponents/TriggerDisabler.cpp
HEADERS += \
Windows/ModeWindow.h \
DBBackends/AllBackends.h \
EventTypes/PhoneCall.h \
EventTypes/RtcomEvent.h \
- EventTypes/eEventTypes.h
+ EventTypes/eEventTypes.h \
+ DBBackends/RtcomEventLoggerComponents/TriggerDisabler.h
FORMS += \
dialog.ui