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) {
108 boost::forward_traversal_tag>(i),
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>
158 boost::forward_traversal_tag>(i),
169 void reset(xacts_list::iterator beg, xacts_list::iterator end) {
180 boost::forward_traversal_tag>
195 boost::forward_traversal_tag>(i),
196 xacts(i.xacts), posts(i.posts) {
210 boost::forward_traversal_tag>
229 boost::forward_traversal_tag>(i),
245 boost::forward_traversal_tag>
247 std::list<accounts_map::const_iterator> accounts_i;
248 std::list<accounts_map::const_iterator> accounts_end;
261 boost::forward_traversal_tag>(i),
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;
297 : sort_cmp(_sort_cmp), report(_report),
298 flatten_all(_flatten_all) {
302 "account_t&, expr_t, report_t&, bool");
306 boost::forward_traversal_tag>(i),
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)