summaryrefslogtreecommitdiff
path: root/reconcile.h
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2005-02-15 11:04:48 +0000
committerJohn Wiegley <johnw@newartisans.com>2008-04-13 02:41:02 -0400
commit5ac4ab2fd51226c920c8e2b54698fedf8e29ea0d (patch)
treefc1c645b466e4d1d077d087c17141eb97f74859c /reconcile.h
parent7eafc0d9cad27ac74db529b7eab360e5950835eb (diff)
downloadfork-ledger-5ac4ab2fd51226c920c8e2b54698fedf8e29ea0d.tar.gz
fork-ledger-5ac4ab2fd51226c920c8e2b54698fedf8e29ea0d.tar.bz2
fork-ledger-5ac4ab2fd51226c920c8e2b54698fedf8e29ea0d.zip
Converted the reconciler into an item_handler, so that it interacts
with the core the same way as everything else.
Diffstat (limited to 'reconcile.h')
-rw-r--r--reconcile.h29
1 files changed, 24 insertions, 5 deletions
diff --git a/reconcile.h b/reconcile.h
index 95f1a133..18e690c7 100644
--- a/reconcile.h
+++ b/reconcile.h
@@ -1,14 +1,33 @@
#ifndef _RECONCILE_H
#define _RECONCILE_H
-#include "journal.h"
+#include "value.h"
+#include "walk.h"
namespace ledger {
-void reconcile_transactions(transactions_list& xacts,
- value_t& balance,
- const time_t cutoff,
- const bool all_pending = false);
+class reconcile_transactions : public item_handler<transaction_t>
+{
+ value_t balance;
+ time_t cutoff;
+ bool all_pending;
+
+ transactions_list xacts;
+
+ public:
+ reconcile_transactions(item_handler<transaction_t> * handler,
+ const value_t& _balance, const time_t _cutoff,
+ const bool _all_pending)
+ : item_handler<transaction_t>(handler),
+ balance(_balance), cutoff(_cutoff), all_pending(_all_pending) {}
+
+ void push_to_handler(transaction_t * first);
+
+ virtual void flush();
+ virtual void operator()(transaction_t& xact) {
+ xacts.push_back(&xact);
+ }
+};
} // namespace ledger