diff options
Diffstat (limited to 'project2/iterate.cpp')
-rw-r--r-- | project2/iterate.cpp | 30 |
1 files changed, 3 insertions, 27 deletions
diff --git a/project2/iterate.cpp b/project2/iterate.cpp index 795b356..99c5004 100644 --- a/project2/iterate.cpp +++ b/project2/iterate.cpp @@ -26,7 +26,7 @@ Iterate::loadComplete(const CommonObjects * co) } void -Iterate::rowReady() const +Iterate::rowReady(const RowState *) const { executeChildren(); } @@ -34,38 +34,14 @@ Iterate::rowReady() const void Iterate::execute() const { - if (!filter.empty()) { - source->setFilter(filter); - } - RowSet::beginRow(source.get()); - try { - source->execute(this); - RowSet::endRow(source.get()); - } - catch (...) { - RowSet::endRow(source.get()); - throw; - } + source->execute(filter, this); } void Iterate::executeChildren() const { BOOST_FOREACH(const Tasks::value_type & sq, normal) { - if (dynamic_cast<const RowProcessor *>(sq.get())) { - sq->execute(); - } - else { - RowSet::beginRow(NULL); - try { - sq->execute(); - RowSet::endRow(NULL); - } - catch (...) { - RowSet::endRow(NULL); - throw; - } - } + sq->execute(); } } |