Renamed some flags and members in post_t

This commit is contained in:
John Wiegley 2009-03-05 22:39:32 -04:00
parent 324f464606
commit a2c7312080
4 changed files with 32 additions and 29 deletions

View file

@ -286,7 +286,7 @@ namespace {
case value_t::BALANCE: case value_t::BALANCE:
case value_t::SEQUENCE: case value_t::SEQUENCE:
xdata.value = temp; xdata.compound_value = temp;
xdata.add_flags(POST_EXT_COMPOUND); xdata.add_flags(POST_EXT_COMPOUND);
break; break;

View file

@ -99,7 +99,7 @@ public:
} }
virtual void operator()(post_t& post) { virtual void operator()(post_t& post) {
post.xdata().value = post.amount.unrounded(); post.xdata().compound_value = post.amount.unrounded();
post.xdata().add_flags(POST_EXT_COMPOUND); post.xdata().add_flags(POST_EXT_COMPOUND);
item_handler<post_t>::operator()(post); item_handler<post_t>::operator()(post);
} }

View file

@ -140,12 +140,10 @@ namespace {
} }
value_t get_amount(post_t& post) { value_t get_amount(post_t& post) {
if (post.has_xdata() && if (post.has_xdata() && post.xdata().has_flags(POST_EXT_COMPOUND))
post.xdata().has_flags(POST_EXT_COMPOUND)) { return post.xdata().compound_value;
return post.xdata().value; else
} else {
return post.amount; return post.amount;
}
} }
value_t get_use_direct_amount(post_t& post) { value_t get_use_direct_amount(post_t& post) {
@ -169,7 +167,7 @@ namespace {
return *post.cost; return *post.cost;
else if (post.has_xdata() && else if (post.has_xdata() &&
post.xdata().has_flags(POST_EXT_COMPOUND)) post.xdata().has_flags(POST_EXT_COMPOUND))
return post.xdata().value; return post.xdata().compound_value;
else else
return post.amount; return post.amount;
} }
@ -365,13 +363,13 @@ bool post_t::valid() const
return true; return true;
} }
void post_t::add_to_value(value_t& value, expr_t& expr) void post_t::add_to_value(value_t& value, const optional<expr_t&>& expr) const
{ {
if (xdata_ && xdata_->has_flags(POST_EXT_COMPOUND)) { if (xdata_ && xdata_->has_flags(POST_EXT_COMPOUND)) {
add_or_set_value(value, xdata_->value); add_or_set_value(value, xdata_->compound_value);
} else { } else {
bind_scope_t bound_scope(*expr.get_context(), *this); bind_scope_t bound_scope(*expr->get_context(), const_cast<post_t&>(*this));
add_or_set_value(value, expr.calc(bound_scope)); add_or_set_value(value, expr->calc(bound_scope));
} }
} }

View file

@ -53,9 +53,6 @@ namespace ledger {
class xact_t; class xact_t;
class account_t; class account_t;
class post_t;
typedef std::list<post_t *> posts_list;
/** /**
* @brief Brief * @brief Brief
* *
@ -126,20 +123,22 @@ public:
bool valid() const; bool valid() const;
struct xdata_t : public supports_flags<> struct xdata_t : public supports_flags<uint_least16_t>
{ {
#define POST_EXT_RECEIVED 0x01 #define POST_EXT_RECEIVED 0x0001
#define POST_EXT_HANDLED 0x02 #define POST_EXT_HANDLED 0x0002
#define POST_EXT_TO_DISPLAY 0x04 #define POST_EXT_DISPLAYED 0x0004
#define POST_EXT_DISPLAYED 0x08 #define POST_EXT_DIRECT_AMT 0x0008
#define POST_EXT_DIRECT_AMT 0x10 #define POST_EXT_SORT_CALC 0x0010
#define POST_EXT_SORT_CALC 0x20 #define POST_EXT_COMPOUND 0x0020
#define POST_EXT_COMPOUND 0x40 #define POST_EXT_VISITED 0x0040
#define POST_EXT_MATCHES 0x80 #define POST_EXT_MATCHES 0x0080
#define POST_EXT_CONSIDERED 0x0100
value_t visited_value;
value_t compound_value;
value_t total; value_t total;
std::size_t count; std::size_t count;
value_t value;
date_t date; date_t date;
account_t * account; account_t * account;
void * ptr; void * ptr;
@ -147,14 +146,16 @@ public:
std::list<sort_value_t> sort_values; std::list<sort_value_t> sort_values;
xdata_t() xdata_t()
: supports_flags<>(), count(0), account(NULL), ptr(NULL) { : supports_flags<uint_least16_t>(), count(0),
account(NULL), ptr(NULL) {
TRACE_CTOR(post_t::xdata_t, ""); TRACE_CTOR(post_t::xdata_t, "");
} }
xdata_t(const xdata_t& other) xdata_t(const xdata_t& other)
: supports_flags<>(other.flags()), : supports_flags<uint_least16_t>(other.flags()),
visited_value(other.visited_value),
compound_value(other.compound_value),
total(other.total), total(other.total),
count(other.count), count(other.count),
value(other.value),
date(other.date), date(other.date),
account(other.account), account(other.account),
ptr(NULL), ptr(NULL),
@ -184,8 +185,12 @@ public:
xdata_ = xdata_t(); xdata_ = xdata_t();
return *xdata_; return *xdata_;
} }
const xdata_t& xdata() const {
return const_cast<post_t *>(this)->xdata();
}
void add_to_value(value_t& value, expr_t& expr); void add_to_value(value_t& value,
const optional<expr_t&>& expr = none) const;
account_t * reported_account() { account_t * reported_account() {
if (xdata_) if (xdata_)