summaryrefslogtreecommitdiff
path: root/project2/iterate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'project2/iterate.cpp')
-rw-r--r--project2/iterate.cpp19
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();
}