summaryrefslogtreecommitdiff
path: root/src/session.cc
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2007-05-14 11:09:06 +0000
committerJohn Wiegley <johnw@newartisans.com>2008-04-13 03:38:49 -0400
commit77db7eb92f730af315d4bcdf831cc67acb386b58 (patch)
tree566a413e47d8d9f2f82d257c4ad3988c0a38d919 /src/session.cc
parent3cc14c70d47f6f7674b587eb08b9d0e02a90e662 (diff)
downloadledger-77db7eb92f730af315d4bcdf831cc67acb386b58.tar.gz
ledger-77db7eb92f730af315d4bcdf831cc67acb386b58.tar.bz2
ledger-77db7eb92f730af315d4bcdf831cc67acb386b58.zip
Added initial support for using builders from the various parsers; at the moment is just uses the xml_writer_t builder to output the contents of the ledger journal as XML
Diffstat (limited to 'src/session.cc')
-rw-r--r--src/session.cc28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/session.cc b/src/session.cc
index 41591018..b94dc290 100644
--- a/src/session.cc
+++ b/src/session.cc
@@ -68,36 +68,34 @@ void release_session_context()
#endif
}
-unsigned int session_t::read_journal(std::istream& in,
- journal_t * journal,
- account_t * master,
- const optional<path>& original)
+void session_t::read_journal(std::istream& in,
+ const path& pathname,
+ xml::builder_t& builder)
{
+#if 0
if (! master)
master = journal->master;
+#endif
for (ptr_list<parser_t>::iterator i = parsers.begin();
i != parsers.end();
i++)
if (i->test(in))
- return i->parse(in, journal, master, original);
-
- return 0;
+ i->parse(in, pathname, builder);
}
-unsigned int session_t::read_journal(const path& pathname,
- journal_t * journal,
- account_t * master,
- const optional<path>& original)
+void session_t::read_journal(const path& pathname,
+ xml::builder_t& builder)
{
+#if 0
journal->sources.push_back(pathname);
+#endif
if (! exists(pathname))
throw_(std::logic_error, "Cannot read file" << pathname);
ifstream stream(pathname);
- return read_journal(stream, journal, master,
- original ? original : pathname);
+ read_journal(stream, pathname, builder);
}
void session_t::read_init()
@@ -115,6 +113,9 @@ void session_t::read_init()
journal_t * session_t::read_data(const string& master_account)
{
+#if 1
+ return NULL;
+#else
if (data_file.empty())
throw_(parse_error, "No journal file was specified (please use -f)");
@@ -180,6 +181,7 @@ journal_t * session_t::read_data(const string& master_account)
TRACE_STOP(parser, 1);
return journal;
+#endif
}
bool session_t::resolve(const string& name, value_t& result,