diff options
Diffstat (limited to 'reconcile.h')
-rw-r--r-- | reconcile.h | 29 |
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 |