From 727a83dc82fa094aa91630d165d230a9a2dabe60 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 1 Nov 2010 09:01:50 +0200 Subject: Factor assignment of database type to separate pass --- odb/generator.cxx | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'odb/generator.cxx') diff --git a/odb/generator.cxx b/odb/generator.cxx index 5d8c47c..be01886 100644 --- a/odb/generator.cxx +++ b/odb/generator.cxx @@ -18,6 +18,8 @@ #include #include +#include + #include #include #include @@ -108,13 +110,37 @@ generate (options const& ops, semantics::unit& unit, path const& p) { try { + // Process types. + // + { + auto_ptr ctx; + + switch (ops.database ()) + { + case database::mysql: + { + ctx.reset (new mysql::context (cerr, unit, ops)); + break; + } + case database::tracer: + { + // Do not assign database types for tracer. + // + break; + } + } + + if (ctx.get () != 0) + process_types (*ctx); + } + + // Output files. + // path file (p.leaf ()); string base (file.base ().string ()); fs::auto_removes auto_rm; - // C++ output. - // string hxx_name (base + ops.odb_file_suffix () + ops.hxx_suffix ()); string ixx_name (base + ops.odb_file_suffix () + ops.ixx_suffix ()); string cxx_name (base + ops.odb_file_suffix () + ops.cxx_suffix ()); -- cgit v1.1