aboutsummaryrefslogtreecommitdiff
path: root/odb/generator.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-10-27 17:36:59 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-10-27 17:36:59 +0200
commit7f6c64f2211d37db76a97fbc79a4b5492302ef2f (patch)
treef2e386644fcaab5c51e3f5ad0ac737ea5b4d5bd2 /odb/generator.cxx
parent5259b98c75f3754a0f713bcee4bddd0ed7ce35ef (diff)
Implement support for composite value types
New test: common/composite.
Diffstat (limited to 'odb/generator.cxx')
-rw-r--r--odb/generator.cxx26
1 files changed, 22 insertions, 4 deletions
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 <odb/generator.hxx>
#include <odb/include.hxx>
+#include <odb/header.hxx>
+#include <odb/inline.hxx>
#include <odb/tracer/header.hxx>
#include <odb/tracer/inline.hxx>
@@ -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<context> 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<mysql::context&> (*ctx));
break;
}
case database::tracer:
{
- context ctx (ixx, unit, ops);
- tracer::generate_inline (ctx);
+ tracer::generate_inline (*ctx);
break;
}
}