summaryrefslogtreecommitdiff
path: root/src/journal.cc
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2009-10-31 00:55:56 -0400
committerJohn Wiegley <johnw@newartisans.com>2009-10-31 00:55:56 -0400
commita2cb549b1dff9024e3f700203e424e496b25fd91 (patch)
tree1c03e9eb6f649a1446021dfb2a5d93a697f81feb /src/journal.cc
parent349fc5d175bc5c4acbc478b4d78c12dc507c4f58 (diff)
parenta88a4c55b2b11d58d3b9e49bf785be42afe63510 (diff)
downloadfork-ledger-a2cb549b1dff9024e3f700203e424e496b25fd91.tar.gz
fork-ledger-a2cb549b1dff9024e3f700203e424e496b25fd91.tar.bz2
fork-ledger-a2cb549b1dff9024e3f700203e424e496b25fd91.zip
Merge branch 'next'
Diffstat (limited to 'src/journal.cc')
-rw-r--r--src/journal.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/journal.cc b/src/journal.cc
index fdb49e24..7dbc2907 100644
--- a/src/journal.cc
+++ b/src/journal.cc
@@ -32,11 +32,34 @@
#include <system.hh>
#include "journal.h"
+#include "amount.h"
+#include "commodity.h"
+#include "pool.h"
#include "xact.h"
#include "account.h"
namespace ledger {
+journal_t::journal_t()
+ : master(new account_t), was_loaded(false),
+ commodity_pool(new commodity_pool_t)
+{
+ TRACE_CTOR(journal_t, "");
+
+ // Add time commodity conversions, so that timelog's may be parsed
+ // in terms of seconds, but reported as minutes or hours.
+ if (commodity_t * commodity = commodity_pool->create("s"))
+ commodity->add_flags(COMMODITY_BUILTIN | COMMODITY_NOMARKET);
+ else
+ assert(false);
+
+ // Add a "percentile" commodity
+ if (commodity_t * commodity = commodity_pool->create("%"))
+ commodity->add_flags(COMMODITY_BUILTIN | COMMODITY_NOMARKET);
+ else
+ assert(false);
+}
+
journal_t::~journal_t()
{
TRACE_DTOR(journal_t);
@@ -52,6 +75,9 @@ journal_t::~journal_t()
foreach (period_xact_t * xact, period_xacts)
checked_delete(xact);
+
+ checked_delete(master);
+ commodity_pool.reset();
}
void journal_t::add_account(account_t * acct)