From 7f6c64f2211d37db76a97fbc79a4b5492302ef2f Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 27 Oct 2010 17:36:59 +0200 Subject: Implement support for composite value types New test: common/composite. --- odb/generator.cxx | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'odb/generator.cxx') diff --git a/odb/generator.cxx b/odb/generator.cxx index 3205e7e..5d8c47c 100644 --- a/odb/generator.cxx +++ b/odb/generator.cxx @@ -19,6 +19,8 @@ #include #include +#include +#include #include #include @@ -261,6 +263,7 @@ generate (options const& ops, semantics::unit& unit, path const& p) << endl; generate_include (*ctx); + generate_header (*ctx); switch (ops.database ()) { @@ -299,6 +302,21 @@ generate (options const& ops, semantics::unit& unit, path const& p) // { cxx_filter filt (ixx); + auto_ptr ctx; + + switch (ops.database ()) + { + case database::mysql: + { + ctx.reset (new mysql::context (ixx, unit, ops)); + break; + } + case database::tracer: + { + ctx.reset (new context (ixx, unit, ops)); + break; + } + } // Copy prologue. // @@ -309,18 +327,18 @@ generate (options const& ops, semantics::unit& unit, path const& p) << "// End prologue." << endl << endl; + generate_inline (*ctx); + switch (ops.database ()) { case database::mysql: { - mysql::context ctx (ixx, unit, ops); - mysql::generate_inline (ctx); + mysql::generate_inline (static_cast (*ctx)); break; } case database::tracer: { - context ctx (ixx, unit, ops); - tracer::generate_inline (ctx); + tracer::generate_inline (*ctx); break; } } -- cgit v1.1