diff options
Diffstat (limited to 'project2/iterate.cpp')
-rw-r--r-- | project2/iterate.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/project2/iterate.cpp b/project2/iterate.cpp index 55648eb..1f2b12f 100644 --- a/project2/iterate.cpp +++ b/project2/iterate.cpp @@ -1,4 +1,5 @@ #include "iterate.h" +#include "logger.h" #include <boost/foreach.hpp> #include "xmlObjectLoader.h" @@ -6,12 +7,11 @@ DECLARE_LOADER("iterate", Iterate); Iterate::Iterate(const xmlpp::Element * p) : SourceObject(p), - NoOutputExecute(p), - RowProcessor(p), - localErrorHandling(p->get_attribute_value("errorHandling") == "local") + IHaveSubTasks(p), + RowProcessor(p) { LoaderBase loader(true); - loader.supportedStorers.insert(new NOEErrorStorer(&normNOEs, &errorNOEs)); + loader.supportedStorers.insert(Storer::into(&normal)); loader.collectAll(p, true, IgnoreUnsupported); } @@ -28,7 +28,7 @@ Iterate::loadComplete(const CommonObjects * co) void Iterate::rowReady() const { - executeChildren(false); + executeChildren(); source->rowChanged(); } @@ -45,17 +45,14 @@ Iterate::execute() const } catch (...) { RowSet::endRow(source.get()); - executeChildren(true); - if (!localErrorHandling) { - throw; - } + throw; } } void -Iterate::executeChildren(bool errs) const +Iterate::executeChildren() const { - BOOST_FOREACH(const SubNOEs::value_type & sq, (errs ? errorNOEs : normNOEs)) { + BOOST_FOREACH(const Tasks::value_type & sq, normal) { if (dynamic_cast<const RowProcessor *>(sq.get())) { sq->execute(); } |