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