Re-enabled almost all of the code in main.cc.

This commit is contained in:
John Wiegley 2008-07-20 23:28:29 -04:00
parent d86a91d45b
commit 0a1bce0f80
6 changed files with 35 additions and 40 deletions

View file

@ -43,6 +43,7 @@
#include "amount.h" #include "amount.h"
#include "parser.h" #include "parser.h"
#include "binary.h"
namespace ledger { namespace ledger {

View file

@ -275,6 +275,19 @@ inline void write_object(std::ostream& out, const T& journal) {
void write_journal(std::ostream& out, journal_t * journal); void write_journal(std::ostream& out, journal_t * journal);
} // namespace binary } // namespace binary
class binary_parser_t : public parser_t
{
public:
virtual bool test(std::istream& in) const;
virtual unsigned int parse(std::istream& in,
config_t& config,
journal_t * journal,
account_t * master = NULL,
const path * original_file = NULL);
};
} // namespace ledger } // namespace ledger
#endif // BINARY_H #endif // BINARY_H

46
main.cc
View file

@ -31,11 +31,11 @@
#include "utils.h" #include "utils.h"
#include "option.h" #include "option.h"
//#if defined(HAVE_EXPAT) || defined(HAVE_XMLPARSE) #if defined(HAVE_EXPAT) || defined(HAVE_XMLPARSE)
//#include "gnucash.h" #include "gnucash.h"
//#endif #endif
//#include "qif.h" #include "qif.h"
//#include "ofx.h" #include "ofx.h"
#include <ledger.h> #include <ledger.h>
@ -313,10 +313,8 @@ static int read_and_report(ledger::report_t& report, int argc, char * argv[],
if (session.use_cache && session.cache_dirty && session.cache_file) { if (session.use_cache && session.cache_dirty && session.cache_file) {
TRACE_START(binary_cache, 1, "Wrote binary journal file"); TRACE_START(binary_cache, 1, "Wrote binary journal file");
#if 0
ofstream stream(*session.cache_file); ofstream stream(*session.cache_file);
write_binary_journal(stream, journal); binary::write_journal(stream, journal);
#endif
TRACE_FINISH(binary_cache, 1); TRACE_FINISH(binary_cache, 1);
} }
@ -389,17 +387,15 @@ int main(int argc, char * argv[], char * envp[])
ledger::set_session_context(session.get()); ledger::set_session_context(session.get());
#if 0 session->register_parser(new ledger::binary_parser_t);
session->register_parser(new binary_parser_t);
#if defined(HAVE_EXPAT) || defined(HAVE_XMLPARSE) #if defined(HAVE_EXPAT) || defined(HAVE_XMLPARSE)
session->register_parser(new xml::xml_parser_t); session->register_parser(new ledger::xml_parser_t);
session->register_parser(new gnucash_parser_t); session->register_parser(new ledger::gnucash_parser_t);
#endif #endif
#ifdef HAVE_LIBOFX #ifdef HAVE_LIBOFX
session->register_parser(new ofx_parser_t); session->register_parser(new ledger::ofx_parser_t);
#endif
session->register_parser(new qif_parser_t);
#endif #endif
session->register_parser(new ledger::qif_parser_t);
session->register_parser(new ledger::textual_parser_t); session->register_parser(new ledger::textual_parser_t);
std::auto_ptr<ledger::report_t> report(new ledger::report_t(*session.get())); std::auto_ptr<ledger::report_t> report(new ledger::report_t(*session.get()));
@ -413,31 +409,29 @@ int main(int argc, char * argv[], char * envp[])
session.release(); session.release();
} }
} }
#if 0 catch (ledger::error * err) {
catch (error * err) {
std::cout.flush(); std::cout.flush();
// Push a null here since there's no file context // Push a null here since there's no file context
if (err->context.empty() || if (err->context.empty() ||
! dynamic_cast<xact_context *>(err->context.front())) ! dynamic_cast<ledger::xact_context *>(err->context.front()))
err->context.push_front(new error_context("")); err->context.push_front(new ledger::error_context(""));
err->reveal_context(std::cerr, "Error"); err->reveal_context(std::cerr, "Error");
std::cerr << err->what() << std::endl; std::cerr << err->what() << std::endl;
checked_delete(err); ledger::checked_delete(err);
} }
catch (fatal * err) { catch (ledger::fatal * err) {
std::cout.flush(); std::cout.flush();
// Push a null here since there's no file context // Push a null here since there's no file context
if (err->context.empty() || if (err->context.empty() ||
! dynamic_cast<xact_context *>(err->context.front())) ! dynamic_cast<ledger::xact_context *>(err->context.front()))
err->context.push_front(new error_context("")); err->context.push_front(new ledger::error_context(""));
err->reveal_context(std::cerr, "Fatal"); err->reveal_context(std::cerr, "Fatal");
std::cerr << err->what() << std::endl; std::cerr << err->what() << std::endl;
checked_delete(err); ledger::checked_delete(err);
} }
#endif
catch (const std::exception& err) { catch (const std::exception& err) {
std::cout.flush(); std::cout.flush();
std::cerr << "Error: " << err.what() << std::endl; std::cerr << "Exception: " << err.what() << std::endl;
} }
catch (int _status) { catch (int _status) {
status = _status; status = _status;

View file

@ -23,18 +23,6 @@ class parser_t
const path * original_file = NULL) = 0; const path * original_file = NULL) = 0;
}; };
class binary_parser_t : public parser_t
{
public:
virtual bool test(std::istream& in) const;
virtual unsigned int parse(std::istream& in,
config_t& config,
journal_t * journal,
account_t * master = NULL,
const path * original_file = NULL);
};
bool register_parser(parser_t * parser); bool register_parser(parser_t * parser);
bool unregister_parser(parser_t * parser); bool unregister_parser(parser_t * parser);

View file

@ -30,6 +30,7 @@
*/ */
#include "parsexp.h" #include "parsexp.h"
#include "parser.h"
namespace ledger { namespace ledger {
namespace expr { namespace expr {

View file

@ -503,13 +503,11 @@ inline void throw_unexpected_error(char, char) {
* *
* Date/time support classes * Date/time support classes
* General support for objects with "flags" * General support for objects with "flags"
* Support for object serialization (binary read/write)
* Support for scoped execution and variable restoration * Support for scoped execution and variable restoration
*/ */
#include "times.h" #include "times.h"
#include "flags.h" #include "flags.h"
#include "binary.h"
#include "pushvar.h" #include "pushvar.h"
/********************************************************************** /**********************************************************************