54template <
typename Derived,
typename Value,
typename CategoryOrTraversal>
56 :
public boost::iterator_facade<Derived, Value, CategoryOrTraversal>
58 typedef Value node_base;
82 node_base& dereference()
const {
return const_cast<node_base&
>(
m_node); }
90 boost::forward_traversal_tag>
92 posts_list::iterator posts_i;
93 posts_list::iterator posts_end;
95 bool posts_uninitialized;
102 : posts_uninitialized(
true) {
109 posts_i(
i.posts_i), posts_end(
i.posts_end),
110 posts_uninitialized(
i.posts_uninitialized) {
118 posts_i = xact.
posts.begin();
119 posts_end = xact.
posts.end();
121 posts_uninitialized =
false;
127 if (posts_uninitialized || posts_i == posts_end)
136 boost::forward_traversal_tag>
169 void reset(xacts_list::iterator
beg, xacts_list::iterator end) {
180 boost::forward_traversal_tag>
196 xacts(
i.xacts), posts(
i.posts) {
210 boost::forward_traversal_tag>
245 boost::forward_traversal_tag>
247 std::list<accounts_map::const_iterator> accounts_i;
248 std::list<accounts_map::const_iterator> accounts_end;
262 accounts_i(
i.accounts_i), accounts_end(
i.accounts_end) {
273 accounts_i.push_back(account.
accounts.begin());
274 accounts_end.push_back(account.
accounts.end());
280 boost::forward_traversal_tag>
286 typedef std::deque<account_t *> accounts_deque_t;
288 std::list<accounts_deque_t> accounts_list;
289 std::list<accounts_deque_t::const_iterator> sorted_accounts_i;
290 std::list<accounts_deque_t::const_iterator> sorted_accounts_end;
302 "account_t&, expr_t, report_t&, bool");
307 sort_cmp(
i.sort_cmp), report(
i.report),
308 flatten_all(
i.flatten_all),
309 accounts_list(
i.accounts_list),
310 sorted_accounts_i(
i.sorted_accounts_i),
311 sorted_accounts_end(
i.sorted_accounts_end) {
322 void push_all(
account_t& account, accounts_deque_t& deque);
323 void sort_accounts(
account_t& account, accounts_deque_t& deque);
#define TRACE_CTOR(cls, args)
std::list< xact_t * > xacts_list
iterator_facade_base(node_base p)
iterator_facade_base(const iterator_facade_base &i)
friend class boost::iterator_core_access
xact_posts_iterator(xact_t &xact)
xact_posts_iterator(const xact_posts_iterator &i)
void reset(journal_t &journal)
xacts_iterator(xacts_list::iterator beg, xacts_list::iterator end)
xacts_iterator(const xacts_iterator &i)
xacts_iterator(journal_t &journal)
xacts_list::iterator xacts_i
xacts_list::iterator xacts_end
void reset(xacts_list::iterator beg, xacts_list::iterator end)
journal_posts_iterator(const journal_posts_iterator &i)
~journal_posts_iterator()
void reset(journal_t &journal)
journal_posts_iterator(journal_t &journal)
posts_commodities_iterator(journal_t &journal)
~posts_commodities_iterator()
xact_posts_iterator posts
posts_commodities_iterator(const posts_commodities_iterator &i)
journal_posts_iterator journal_posts
posts_commodities_iterator()
void reset(journal_t &journal)
basic_accounts_iterator()
~basic_accounts_iterator()
basic_accounts_iterator(const basic_accounts_iterator &i)
basic_accounts_iterator(account_t &account)
sorted_accounts_iterator(account_t &account, const expr_t &_sort_cmp, report_t &_report, bool _flatten_all)
~sorted_accounts_iterator()
sorted_accounts_iterator(const sorted_accounts_iterator &i)