From 7ae497743c7b042904fe1f6b4153ab3f4763ff2b Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 10 Mar 2011 08:44:28 +0200 Subject: Split MySQL code generator into common and db-specific parts The common part (in relational/) still has some MySQL-specific parts. Also, add the notion of the current context which is used to avoid explicitly passing the context object to every generator's c-tor. --- odb/generator.cxx | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'odb/generator.cxx') diff --git a/odb/generator.cxx b/odb/generator.cxx index 91548e4..e0187d6 100644 --- a/odb/generator.cxx +++ b/odb/generator.cxx @@ -28,11 +28,9 @@ #include #include -#include -#include -#include -#include -#include +#include + +#include using namespace std; using namespace cutl; @@ -119,7 +117,7 @@ generate (options const& ops, semantics::unit& unit, path const& p) { case database::mysql: { - ctx.reset (new mysql::context (cerr, unit, ops)); + ctx.reset (new relational::mysql::context (cerr, unit, ops)); break; } case database::tracer: @@ -249,7 +247,7 @@ generate (options const& ops, semantics::unit& unit, path const& p) { case database::mysql: { - ctx.reset (new mysql::context (hxx, unit, ops)); + ctx.reset (new relational::mysql::context (hxx, unit, ops)); break; } case database::tracer: @@ -297,7 +295,7 @@ generate (options const& ops, semantics::unit& unit, path const& p) { case database::mysql: { - mysql::generate_header (static_cast (*ctx)); + relational::header::generate (); break; } case database::tracer: @@ -336,7 +334,7 @@ generate (options const& ops, semantics::unit& unit, path const& p) { case database::mysql: { - ctx.reset (new mysql::context (ixx, unit, ops)); + ctx.reset (new relational::mysql::context (ixx, unit, ops)); break; } case database::tracer: @@ -361,7 +359,7 @@ generate (options const& ops, semantics::unit& unit, path const& p) { case database::mysql: { - mysql::generate_inline (static_cast (*ctx)); + relational::inline_::generate (); break; } case database::tracer: @@ -405,8 +403,8 @@ generate (options const& ops, semantics::unit& unit, path const& p) { case database::mysql: { - mysql::context ctx (cxx, unit, ops); - mysql::generate_source (ctx); + relational::mysql::context ctx (cxx, unit, ops); + relational::source::generate (); break; } case database::tracer: @@ -441,8 +439,8 @@ generate (options const& ops, semantics::unit& unit, path const& p) { case database::mysql: { - mysql::context ctx (sql, unit, ops); - mysql::generate_schema (ctx); + relational::mysql::context ctx (sql, unit, ops); + relational::schema::generate (); break; } case database::tracer: -- cgit v1.1