summaryrefslogtreecommitdiff
path: root/reconcile.h
diff options
context:
space:
mode:
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