From de12a74e3f3db4fb4ee421d10ccec8bcd4563384 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Fri, 21 Aug 2015 00:56:59 +0100 Subject: Move more stuff from common to basics --- project2/basics/Jamfile.jam | 2 +- project2/basics/if.cpp | 49 +++++++++++++++++++++++++++++++++++++++ project2/basics/if.h | 25 ++++++++++++++++++++ project2/basics/tasks/iterate.cpp | 41 ++++++++++++++++++++++++++++++++ project2/basics/tasks/iterate.h | 26 +++++++++++++++++++++ project2/cgi/cgiAppEngine.cpp | 1 - project2/common/if.cpp | 49 --------------------------------------- project2/common/if.h | 25 -------------------- project2/common/iterate.cpp | 41 -------------------------------- project2/common/iterate.h | 26 --------------------- project2/console/pch.hpp | 1 - project2/sql/Jamfile.jam | 1 + project2/sql/sqlMergeTask.h | 2 +- 13 files changed, 144 insertions(+), 145 deletions(-) create mode 100644 project2/basics/if.cpp create mode 100644 project2/basics/if.h create mode 100644 project2/basics/tasks/iterate.cpp create mode 100644 project2/basics/tasks/iterate.h delete mode 100644 project2/common/if.cpp delete mode 100644 project2/common/if.h delete mode 100644 project2/common/iterate.cpp delete mode 100644 project2/common/iterate.h diff --git a/project2/basics/Jamfile.jam b/project2/basics/Jamfile.jam index 19726d9..c540c68 100644 --- a/project2/basics/Jamfile.jam +++ b/project2/basics/Jamfile.jam @@ -9,7 +9,7 @@ build-project unittests ; cpp-pch pch : pch.hpp : ../../libmisc - glibmm + glibmm ../common//p2common ; diff --git a/project2/basics/if.cpp b/project2/basics/if.cpp new file mode 100644 index 0000000..bdd9835 --- /dev/null +++ b/project2/basics/if.cpp @@ -0,0 +1,49 @@ +#include +#include "if.h" +#include "logger.h" +#include "scriptLoader.h" +#include +#include + +DECLARE_LOADER("if", If); +StaticMessageException(NoTestsToPerform, "No tests to perform"); + +If::If(ScriptNodePtr e) : + SourceObject(e), + IHaveSubTasks(e), + View(e) +{ + e->script->loader.addLoadTarget(e, Storer::into(&normal)); + e->script->loader.addLoadTarget(e, Storer::into(&subViews)); + e->script->loader.addLoadTarget(e, Storer::into(&test)); +} + +bool +If::passes(ExecContext * ec) const +{ + if (!test) { + throw NoTestsToPerform(); + } + return test->passes(ec); +} + +void +If::execute(const MultiRowSetPresenter * presenter, ExecContext * ec) const +{ + if (passes(ec)) { + Logger()->messagef(LOG_DEBUG, "Test passed; showing %zu views", subViews.size()); + for (const SubViews::value_type & sq : subViews) { + sq->execute(presenter, ec); + } + } +} + +void +If::execute(ExecContext * ec) const +{ + if (passes(ec)) { + Logger()->messagef(LOG_DEBUG, "Test passed; executing %zu tasks", normal.size()); + run(normal, ec); + } +} + diff --git a/project2/basics/if.h b/project2/basics/if.h new file mode 100644 index 0000000..64f885b --- /dev/null +++ b/project2/basics/if.h @@ -0,0 +1,25 @@ +#ifndef IF_H +#define IF_H + +#include "iHaveSubTasks.h" +#include "view.h" +#include "test.h" + +/// Project2 component to conditionally execute its children +class If : public IHaveSubTasks, public View { + public: + If(ScriptNodePtr); + + virtual void execute(const MultiRowSetPresenter *, ExecContext *) const; + virtual void execute(ExecContext *) const; + + private: + bool passes(ExecContext *) const; + + typedef ANONSTORAGEOF(View) SubViews; + SubViews subViews; + TestPtr test; +}; + +#endif + diff --git a/project2/basics/tasks/iterate.cpp b/project2/basics/tasks/iterate.cpp new file mode 100644 index 0000000..ae73cdb --- /dev/null +++ b/project2/basics/tasks/iterate.cpp @@ -0,0 +1,41 @@ +#include +#include "iterate.h" +#include "logger.h" +#include +#include "scriptLoader.h" +#include "scopeObject.h" + +DECLARE_LOADER("iterate", Iterate); + +Iterate::Iterate(ScriptNodePtr p) : + SourceObject(p), + IHaveSubTasks(p), + RowProcessor(p) +{ + p->script->loader.addLoadTarget(p, Storer::into(&normal)); +} + +Iterate::~Iterate() +{ +} + +void +Iterate::loadComplete(const CommonObjects * co) +{ + RowProcessor::loadComplete(co); +} + +void +Iterate::execute(ExecContext * ec) const +{ + RowProcessor::execute(ec, boost::bind(&Iterate::executeChildren, this, ec)); +} + +void +Iterate::executeChildren(ExecContext * ec) const +{ + for (const Tasks::value_type & sq : normal) { + sq->execute(ec); + } +} + diff --git a/project2/basics/tasks/iterate.h b/project2/basics/tasks/iterate.h new file mode 100644 index 0000000..2afbe98 --- /dev/null +++ b/project2/basics/tasks/iterate.h @@ -0,0 +1,26 @@ +#ifndef ITERATE_H +#define ITERATE_H + +#include "rowProcessor.h" +#include "iHaveSubTasks.h" +#include "scriptStorage.h" + +class Iterate; +typedef boost::intrusive_ptr IteratePtr; + +/// Project2 component to iterate over a row set, executing its children for each record +class Iterate : public IHaveSubTasks, public RowProcessor { + public: + Iterate(ScriptNodePtr p); + virtual ~Iterate(); + + void loadComplete(const CommonObjects *); + void execute(ExecContext *) const; + + protected: + void executeChildren(ExecContext *) const; +}; + +#endif + + diff --git a/project2/cgi/cgiAppEngine.cpp b/project2/cgi/cgiAppEngine.cpp index 7de9218..53e0c95 100644 --- a/project2/cgi/cgiAppEngine.cpp +++ b/project2/cgi/cgiAppEngine.cpp @@ -6,7 +6,6 @@ #include #include #include "cgiRequestContext.h" -#include "iterate.h" #include #include "ostreamWrapper.h" #include "scopeObject.h" diff --git a/project2/common/if.cpp b/project2/common/if.cpp deleted file mode 100644 index bdd9835..0000000 --- a/project2/common/if.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include "if.h" -#include "logger.h" -#include "scriptLoader.h" -#include -#include - -DECLARE_LOADER("if", If); -StaticMessageException(NoTestsToPerform, "No tests to perform"); - -If::If(ScriptNodePtr e) : - SourceObject(e), - IHaveSubTasks(e), - View(e) -{ - e->script->loader.addLoadTarget(e, Storer::into(&normal)); - e->script->loader.addLoadTarget(e, Storer::into(&subViews)); - e->script->loader.addLoadTarget(e, Storer::into(&test)); -} - -bool -If::passes(ExecContext * ec) const -{ - if (!test) { - throw NoTestsToPerform(); - } - return test->passes(ec); -} - -void -If::execute(const MultiRowSetPresenter * presenter, ExecContext * ec) const -{ - if (passes(ec)) { - Logger()->messagef(LOG_DEBUG, "Test passed; showing %zu views", subViews.size()); - for (const SubViews::value_type & sq : subViews) { - sq->execute(presenter, ec); - } - } -} - -void -If::execute(ExecContext * ec) const -{ - if (passes(ec)) { - Logger()->messagef(LOG_DEBUG, "Test passed; executing %zu tasks", normal.size()); - run(normal, ec); - } -} - diff --git a/project2/common/if.h b/project2/common/if.h deleted file mode 100644 index 64f885b..0000000 --- a/project2/common/if.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef IF_H -#define IF_H - -#include "iHaveSubTasks.h" -#include "view.h" -#include "test.h" - -/// Project2 component to conditionally execute its children -class If : public IHaveSubTasks, public View { - public: - If(ScriptNodePtr); - - virtual void execute(const MultiRowSetPresenter *, ExecContext *) const; - virtual void execute(ExecContext *) const; - - private: - bool passes(ExecContext *) const; - - typedef ANONSTORAGEOF(View) SubViews; - SubViews subViews; - TestPtr test; -}; - -#endif - diff --git a/project2/common/iterate.cpp b/project2/common/iterate.cpp deleted file mode 100644 index ae73cdb..0000000 --- a/project2/common/iterate.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include "iterate.h" -#include "logger.h" -#include -#include "scriptLoader.h" -#include "scopeObject.h" - -DECLARE_LOADER("iterate", Iterate); - -Iterate::Iterate(ScriptNodePtr p) : - SourceObject(p), - IHaveSubTasks(p), - RowProcessor(p) -{ - p->script->loader.addLoadTarget(p, Storer::into(&normal)); -} - -Iterate::~Iterate() -{ -} - -void -Iterate::loadComplete(const CommonObjects * co) -{ - RowProcessor::loadComplete(co); -} - -void -Iterate::execute(ExecContext * ec) const -{ - RowProcessor::execute(ec, boost::bind(&Iterate::executeChildren, this, ec)); -} - -void -Iterate::executeChildren(ExecContext * ec) const -{ - for (const Tasks::value_type & sq : normal) { - sq->execute(ec); - } -} - diff --git a/project2/common/iterate.h b/project2/common/iterate.h deleted file mode 100644 index 2afbe98..0000000 --- a/project2/common/iterate.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef ITERATE_H -#define ITERATE_H - -#include "rowProcessor.h" -#include "iHaveSubTasks.h" -#include "scriptStorage.h" - -class Iterate; -typedef boost::intrusive_ptr IteratePtr; - -/// Project2 component to iterate over a row set, executing its children for each record -class Iterate : public IHaveSubTasks, public RowProcessor { - public: - Iterate(ScriptNodePtr p); - virtual ~Iterate(); - - void loadComplete(const CommonObjects *); - void execute(ExecContext *) const; - - protected: - void executeChildren(ExecContext *) const; -}; - -#endif - - diff --git a/project2/console/pch.hpp b/project2/console/pch.hpp index e79f446..fa98d28 100644 --- a/project2/console/pch.hpp +++ b/project2/console/pch.hpp @@ -5,7 +5,6 @@ #include "consoleAppEngine.h" #include "consolePresenter.h" #include "exceptions.h" -#include "iterate.h" #include "logger.h" #include "scriptLoader.h" #include diff --git a/project2/sql/Jamfile.jam b/project2/sql/Jamfile.jam index 8a3661b..17c0223 100644 --- a/project2/sql/Jamfile.jam +++ b/project2/sql/Jamfile.jam @@ -75,6 +75,7 @@ lib p2sql : glibmm boost_filesystem ../common//p2common + ../basics//p2basics ../lib//p2lib ../../libmisc fl diff --git a/project2/sql/sqlMergeTask.h b/project2/sql/sqlMergeTask.h index eec98cd..07b7ffb 100644 --- a/project2/sql/sqlMergeTask.h +++ b/project2/sql/sqlMergeTask.h @@ -7,7 +7,7 @@ #include #include "tablepatch.h" #include "task.h" -#include "iterate.h" +#include #include "variables.h" #include "sqlWriter.h" #include "rdbmsDataSource.h" -- cgit v1.2.3