From dce178cb1b133c6130be03f89c311fae024176de Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Mon, 23 May 2016 09:11:05 +0100 Subject: Non-const processor methods and prepare, apply and tidy events --- .../service/maintenance/categoryMetaProcessor.cpp | 6 ++--- .../service/maintenance/categoryMetaProcessor.h | 6 ++--- .../service/maintenance/ebuildMetaProcessor.cpp | 10 ++++---- .../service/maintenance/ebuildMetaProcessor.h | 10 ++++---- .../service/maintenance/masksProcessor.cpp | 6 ++--- .../service/maintenance/masksProcessor.h | 6 ++--- .../maintenance/packageManifestProcessor.cpp | 4 +-- .../service/maintenance/packageManifestProcessor.h | 4 +-- .../service/maintenance/packageMetaProcessor.cpp | 6 ++--- .../service/maintenance/packageMetaProcessor.h | 6 ++--- .../service/maintenance/useGlobalProcessor.cpp | 6 ++--- .../service/maintenance/useGlobalProcessor.h | 6 ++--- .../service/maintenance/useGroupProcessor.cpp | 8 +++--- .../service/maintenance/useGroupProcessor.h | 8 +++--- .../service/maintenance/useLocalProcessor.cpp | 6 ++--- .../service/maintenance/useLocalProcessor.h | 6 ++--- gentoobrowse-api/service/maintenanceimpl.cpp | 30 +++++++++++++++++++--- gentoobrowse-api/service/maintenanceimpl.h | 12 ++++++--- 18 files changed, 87 insertions(+), 59 deletions(-) diff --git a/gentoobrowse-api/service/maintenance/categoryMetaProcessor.cpp b/gentoobrowse-api/service/maintenance/categoryMetaProcessor.cpp index bf7c35c..235faa2 100644 --- a/gentoobrowse-api/service/maintenance/categoryMetaProcessor.cpp +++ b/gentoobrowse-api/service/maintenance/categoryMetaProcessor.cpp @@ -13,13 +13,13 @@ namespace Gentoo { const int CategoryMetaProcessor::FILETYPEID = 10; void - CategoryMetaProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + CategoryMetaProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { modified(dbc, fn, path); } void - CategoryMetaProcessor::modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + CategoryMetaProcessor::modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { DB::ModifyCommandPtr m = dbc->modify(sql::maintenance::categoryMetaUpdate.getSql()); U::XmlDoc md(path); @@ -32,7 +32,7 @@ namespace Gentoo { } void - CategoryMetaProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const + CategoryMetaProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path & fn) { auto m = dbc->modify(sql::maintenance::categoryMetaUpdate.getSql()); m->bindNull(0); diff --git a/gentoobrowse-api/service/maintenance/categoryMetaProcessor.h b/gentoobrowse-api/service/maintenance/categoryMetaProcessor.h index e335cd8..96224c6 100644 --- a/gentoobrowse-api/service/maintenance/categoryMetaProcessor.h +++ b/gentoobrowse-api/service/maintenance/categoryMetaProcessor.h @@ -12,9 +12,9 @@ namespace Gentoo { public: static const int FILETYPEID; - void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const; + void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) override; }; } } diff --git a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp index ef849fb..230a00f 100644 --- a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp +++ b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp @@ -34,7 +34,7 @@ namespace Gentoo { const int EbuildMetaProcessor::FILETYPEID = 1; void - EbuildMetaProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + EbuildMetaProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { Glib::MatchInfo matches; const Glib::ustring pv = (fn / 4).string(); @@ -75,7 +75,7 @@ namespace Gentoo { } void - EbuildMetaProcessor::modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + EbuildMetaProcessor::modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { Glib::MatchInfo matches; const Glib::ustring pv = (fn / 4).string(); @@ -97,7 +97,7 @@ namespace Gentoo { } void - EbuildMetaProcessor::perEbuildUpdates(DB::Connection * dbc, const U::EbuildCacheParser & ecp, int64_t ebuildId, bool newest, int64_t packageId) const + EbuildMetaProcessor::perEbuildUpdates(DB::Connection * dbc, const U::EbuildCacheParser & ecp, int64_t ebuildId, bool newest, int64_t packageId) { U::EntityWhereFilter ewf("ebuildId", ebuildId); // IUSE @@ -168,7 +168,7 @@ namespace Gentoo { } void - EbuildMetaProcessor::insertDeps(DB::ModifyCommand * ins, const std::vector & deps) const + EbuildMetaProcessor::insertDeps(DB::ModifyCommand * ins, const std::vector & deps) { for (const auto & d : deps) { ins->bindParamS(0, d->category); @@ -182,7 +182,7 @@ namespace Gentoo { } void - EbuildMetaProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const + EbuildMetaProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path & fn) { Glib::MatchInfo matches; const Glib::ustring pv = (fn / 4).string(); diff --git a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h index fb9d48c..51daad0 100644 --- a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h +++ b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h @@ -14,13 +14,13 @@ namespace Gentoo { public: static const int FILETYPEID; - void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const; + void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) override; private: - void perEbuildUpdates(DB::Connection * dbc, const Utils::EbuildCacheParser & ecp, int64_t ebuildId, bool newest, int64_t packageId) const; - void insertDeps(DB::ModifyCommand * dbc, const std::vector &) const; + void perEbuildUpdates(DB::Connection * dbc, const Utils::EbuildCacheParser & ecp, int64_t ebuildId, bool newest, int64_t packageId); + void insertDeps(DB::ModifyCommand * dbc, const std::vector &); }; } } diff --git a/gentoobrowse-api/service/maintenance/masksProcessor.cpp b/gentoobrowse-api/service/maintenance/masksProcessor.cpp index 58f56de..225ccb8 100644 --- a/gentoobrowse-api/service/maintenance/masksProcessor.cpp +++ b/gentoobrowse-api/service/maintenance/masksProcessor.cpp @@ -23,13 +23,13 @@ namespace Gentoo { const int MasksProcessor::FILETYPEID = 3; void - MasksProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + MasksProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { modified(dbc, fn, path); } void - MasksProcessor::modified(DB::Connection * dbc, const boost::filesystem::path &, const boost::filesystem::path & path) const + MasksProcessor::modified(DB::Connection * dbc, const boost::filesystem::path &, const boost::filesystem::path & path) { auto tempTable = Utils::Database::namedTemp(dbc, "tmp_masks", { { "n", "int" }, @@ -101,7 +101,7 @@ namespace Gentoo { } void - MasksProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path &) const + MasksProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path &) { dbc->modify("DELETE FROM gentoobrowse.use_local")->execute(); } diff --git a/gentoobrowse-api/service/maintenance/masksProcessor.h b/gentoobrowse-api/service/maintenance/masksProcessor.h index eb147e4..2fc2b39 100644 --- a/gentoobrowse-api/service/maintenance/masksProcessor.h +++ b/gentoobrowse-api/service/maintenance/masksProcessor.h @@ -12,9 +12,9 @@ namespace Gentoo { public: static const int FILETYPEID; - void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const; + void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) override; }; } } diff --git a/gentoobrowse-api/service/maintenance/packageManifestProcessor.cpp b/gentoobrowse-api/service/maintenance/packageManifestProcessor.cpp index e22ce3b..f4e67b3 100644 --- a/gentoobrowse-api/service/maintenance/packageManifestProcessor.cpp +++ b/gentoobrowse-api/service/maintenance/packageManifestProcessor.cpp @@ -9,14 +9,14 @@ namespace Gentoo { const int PackageManifestProcessor::FILETYPEID = 8; void - PackageManifestProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path &) const + PackageManifestProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path &) { (void)dbc; (void)fn; } void - PackageManifestProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const + PackageManifestProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path & fn) { (void)dbc; (void)fn; diff --git a/gentoobrowse-api/service/maintenance/packageManifestProcessor.h b/gentoobrowse-api/service/maintenance/packageManifestProcessor.h index f7347b2..e68257e 100644 --- a/gentoobrowse-api/service/maintenance/packageManifestProcessor.h +++ b/gentoobrowse-api/service/maintenance/packageManifestProcessor.h @@ -12,8 +12,8 @@ namespace Gentoo { public: static const int FILETYPEID; - void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const; + void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) override; }; } } diff --git a/gentoobrowse-api/service/maintenance/packageMetaProcessor.cpp b/gentoobrowse-api/service/maintenance/packageMetaProcessor.cpp index 55aa1ee..5be86ec 100644 --- a/gentoobrowse-api/service/maintenance/packageMetaProcessor.cpp +++ b/gentoobrowse-api/service/maintenance/packageMetaProcessor.cpp @@ -13,13 +13,13 @@ namespace Gentoo { const int PackageMetaProcessor::FILETYPEID = 4; void - PackageMetaProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + PackageMetaProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { modified(dbc, fn, path); } void - PackageMetaProcessor::modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + PackageMetaProcessor::modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { auto m = dbc->modify(sql::maintenance::packageMetaUpdate.getSql()); U::XmlDoc md(path); @@ -36,7 +36,7 @@ namespace Gentoo { } void - PackageMetaProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const + PackageMetaProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path & fn) { auto m = dbc->modify(sql::maintenance::packageMetaUpdate.getSql()); m->bindNull(0); diff --git a/gentoobrowse-api/service/maintenance/packageMetaProcessor.h b/gentoobrowse-api/service/maintenance/packageMetaProcessor.h index 44bb77e..c620828 100644 --- a/gentoobrowse-api/service/maintenance/packageMetaProcessor.h +++ b/gentoobrowse-api/service/maintenance/packageMetaProcessor.h @@ -11,9 +11,9 @@ namespace Gentoo { public: static const int FILETYPEID; - void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const; + void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) override; }; } } diff --git a/gentoobrowse-api/service/maintenance/useGlobalProcessor.cpp b/gentoobrowse-api/service/maintenance/useGlobalProcessor.cpp index a860112..457383f 100644 --- a/gentoobrowse-api/service/maintenance/useGlobalProcessor.cpp +++ b/gentoobrowse-api/service/maintenance/useGlobalProcessor.cpp @@ -14,13 +14,13 @@ namespace Gentoo { const int UseGlobalProcessor::FILETYPEID = 5; void - UseGlobalProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + UseGlobalProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { modified(dbc, fn, path); } void - UseGlobalProcessor::modified(DB::Connection * dbc, const boost::filesystem::path &, const boost::filesystem::path & path) const + UseGlobalProcessor::modified(DB::Connection * dbc, const boost::filesystem::path &, const boost::filesystem::path & path) { DB::TablePatch p; p.dest = "gentoobrowse.use_global"; @@ -43,7 +43,7 @@ namespace Gentoo { } void - UseGlobalProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path &) const + UseGlobalProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path &) { dbc->modify("DELETE FROM gentoobrowse.use_global")->execute(); } diff --git a/gentoobrowse-api/service/maintenance/useGlobalProcessor.h b/gentoobrowse-api/service/maintenance/useGlobalProcessor.h index c5e3dcb..c74af91 100644 --- a/gentoobrowse-api/service/maintenance/useGlobalProcessor.h +++ b/gentoobrowse-api/service/maintenance/useGlobalProcessor.h @@ -12,9 +12,9 @@ namespace Gentoo { public: static const int FILETYPEID; - void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const; + void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) override; }; } } diff --git a/gentoobrowse-api/service/maintenance/useGroupProcessor.cpp b/gentoobrowse-api/service/maintenance/useGroupProcessor.cpp index 0689b1b..9749ba7 100644 --- a/gentoobrowse-api/service/maintenance/useGroupProcessor.cpp +++ b/gentoobrowse-api/service/maintenance/useGroupProcessor.cpp @@ -19,7 +19,7 @@ namespace Gentoo { const int UseGroupProcessor::FILETYPEID = 9; void - UseGroupProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + UseGroupProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { auto m = dbc->select(sql::maintenance::useGroupsInsert.getSql()); m->bindParamS(0, fn.stem().string()); @@ -29,7 +29,7 @@ namespace Gentoo { } void - UseGroupProcessor::modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + UseGroupProcessor::modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { auto m = dbc->select(sql::maintenance::useGroupsGetId.getSql()); m->bindParamS(0, fn.stem().string()); @@ -39,7 +39,7 @@ namespace Gentoo { } void - UseGroupProcessor::mergeContent(DB::Connection * dbc, const boost::filesystem::path & path, int64_t useGroupId) const + UseGroupProcessor::mergeContent(DB::Connection * dbc, const boost::filesystem::path & path, int64_t useGroupId) { DB::TablePatch p; p.dest = "gentoobrowse.use_group"; @@ -70,7 +70,7 @@ namespace Gentoo { } void - UseGroupProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const + UseGroupProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path & fn) { auto m = dbc->modify(sql::maintenance::useGroupsDelete.getSql()); m->bindParamS(0, fn.stem().string()); diff --git a/gentoobrowse-api/service/maintenance/useGroupProcessor.h b/gentoobrowse-api/service/maintenance/useGroupProcessor.h index dc328ce..af230df 100644 --- a/gentoobrowse-api/service/maintenance/useGroupProcessor.h +++ b/gentoobrowse-api/service/maintenance/useGroupProcessor.h @@ -12,12 +12,12 @@ namespace Gentoo { public: static const int FILETYPEID; - void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const; + void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) override; private: - void mergeContent(DB::Connection *, const boost::filesystem::path &, int64_t id) const; + void mergeContent(DB::Connection *, const boost::filesystem::path &, int64_t id); }; } } diff --git a/gentoobrowse-api/service/maintenance/useLocalProcessor.cpp b/gentoobrowse-api/service/maintenance/useLocalProcessor.cpp index e89ddfc..1738e9c 100644 --- a/gentoobrowse-api/service/maintenance/useLocalProcessor.cpp +++ b/gentoobrowse-api/service/maintenance/useLocalProcessor.cpp @@ -16,13 +16,13 @@ namespace Gentoo { const int UseLocalProcessor::FILETYPEID = 6; void - UseLocalProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const + UseLocalProcessor::created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) { modified(dbc, fn, path); } void - UseLocalProcessor::modified(DB::Connection * dbc, const boost::filesystem::path &, const boost::filesystem::path & path) const + UseLocalProcessor::modified(DB::Connection * dbc, const boost::filesystem::path &, const boost::filesystem::path & path) { DB::TablePatch p; auto tempTable = Utils::Database::namedTemp(dbc, "tmp_uselocalraw", { @@ -54,7 +54,7 @@ namespace Gentoo { } void - UseLocalProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path &) const + UseLocalProcessor::deleted(DB::Connection * dbc, const boost::filesystem::path &) { dbc->modify("DELETE FROM gentoobrowse.use_local")->execute(); } diff --git a/gentoobrowse-api/service/maintenance/useLocalProcessor.h b/gentoobrowse-api/service/maintenance/useLocalProcessor.h index ab0663d..b4cb36e 100644 --- a/gentoobrowse-api/service/maintenance/useLocalProcessor.h +++ b/gentoobrowse-api/service/maintenance/useLocalProcessor.h @@ -12,9 +12,9 @@ namespace Gentoo { public: static const int FILETYPEID; - void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const; + void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) override; + void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) override; }; } } diff --git a/gentoobrowse-api/service/maintenanceimpl.cpp b/gentoobrowse-api/service/maintenanceimpl.cpp index bbece65..c2629fe 100644 --- a/gentoobrowse-api/service/maintenanceimpl.cpp +++ b/gentoobrowse-api/service/maintenanceimpl.cpp @@ -37,17 +37,32 @@ namespace Gentoo { } void - Maintenance::FileProcessor::created(DB::Connection *, const boost::filesystem::path &, const boost::filesystem::path &) const + Maintenance::FileProcessor::prepare(DB::Connection *) { } void - Maintenance::FileProcessor::modified(DB::Connection *, const boost::filesystem::path &, const boost::filesystem::path &) const + Maintenance::FileProcessor::apply(DB::Connection *) { } void - Maintenance::FileProcessor::deleted(DB::Connection *, const boost::filesystem::path &) const + Maintenance::FileProcessor::tidy(DB::Connection *) + { + } + + void + Maintenance::FileProcessor::created(DB::Connection *, const boost::filesystem::path &, const boost::filesystem::path &) + { + } + + void + Maintenance::FileProcessor::modified(DB::Connection *, const boost::filesystem::path &, const boost::filesystem::path &) + { + } + + void + Maintenance::FileProcessor::deleted(DB::Connection *, const boost::filesystem::path &) { } @@ -139,6 +154,9 @@ namespace Gentoo { for (const auto & fpf : fpfs) { fps[fpf.first] = fpf.second(); } + for (const auto & fp : fps) { + fp.second->prepare(dbc); + } DB::StaticSqlWriter src(sql::maintenance::fileList.getSql()); DB::TablePatch tp; tp.srcExpr = &src; @@ -151,8 +169,14 @@ namespace Gentoo { DB::StaticSqlWriter obpo("processOrder NULLS LAST"); tp.order = &obpo; dbc->patchTable(&tp); + for (const auto & fp : fps) { + fp.second->apply(dbc); + } boost::filesystem::remove_all(tmp); dbc->execute("DROP TABLE filelist"); + for (const auto & fp : fps) { + fp.second->tidy(dbc); + } } void diff --git a/gentoobrowse-api/service/maintenanceimpl.h b/gentoobrowse-api/service/maintenanceimpl.h index 378cbd1..6331672 100644 --- a/gentoobrowse-api/service/maintenanceimpl.h +++ b/gentoobrowse-api/service/maintenanceimpl.h @@ -15,11 +15,15 @@ namespace Gentoo { public: virtual ~FileProcessor() = 0; - virtual void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - virtual void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path) const; - virtual void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const; + virtual void prepare(DB::Connection *); + virtual void apply(DB::Connection *); + virtual void tidy(DB::Connection *); + + virtual void created(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path); + virtual void modified(DB::Connection * dbc, const boost::filesystem::path & fn, const boost::filesystem::path & path); + virtual void deleted(DB::Connection * dbc, const boost::filesystem::path & fn); }; - typedef boost::shared_ptr FileProcessorPtr; + typedef boost::shared_ptr FileProcessorPtr; typedef std::map> FileProcessorFactories; typedef std::map FileProcessors; -- cgit v1.2.3