aboutsummaryrefslogtreecommitdiff
path: root/odb/relational/schema.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/relational/schema.cxx')
-rw-r--r--odb/relational/schema.cxx86
1 files changed, 43 insertions, 43 deletions
diff --git a/odb/relational/schema.cxx b/odb/relational/schema.cxx
index 3dd8507..5c0bdf9 100644
--- a/odb/relational/schema.cxx
+++ b/odb/relational/schema.cxx
@@ -21,70 +21,70 @@ namespace relational
//
schema_format cxx_object::format_embedded (schema_format::embedded);
- static char const file_header[] =
- "/* This file was generated by ODB, object-relational mapping (ORM)\n"
- " * compiler for C++.\n"
- " */\n\n";
-
void
- generate ()
+ generate_prologue ()
{
- context ctx;
- ostream& os (ctx.os);
-
- os << file_header;
-
instance<sql_file> file;
file->prologue ();
+ }
+ void
+ generate_epilogue ()
+ {
+ instance<sql_file> file;
+ file->epilogue ();
+ }
+
+ void
+ generate_drop ()
+ {
+ context ctx;
instance<sql_emitter> em;
emitter_ostream emos (*em);
schema_format f (schema_format::sql);
- // Drop.
+ instance<drop_model> model (*em, emos, f);
+ instance<drop_table> table (*em, emos, f);
+ trav_rel::qnames names;
+
+ model >> names >> table;
+
+ // Pass 1 and 2.
//
+ for (unsigned short pass (1); pass < 3; ++pass)
{
- instance<drop_model> model (*em, emos, f);
- instance<drop_table> table (*em, emos, f);
- trav_rel::qnames names;
+ model->pass (pass);
+ table->pass (pass);
- model >> names >> table;
+ model->traverse (*ctx.model);
+ }
+ }
- // Pass 1 and 2.
- //
- for (unsigned short pass (1); pass < 3; ++pass)
- {
- model->pass (pass);
- table->pass (pass);
+ void
+ generate_create ()
+ {
+ context ctx;
+ instance<sql_emitter> em;
+ emitter_ostream emos (*em);
- model->traverse (*ctx.model);
- }
- }
+ schema_format f (schema_format::sql);
- os << endl;
+ instance<create_model> model (*em, emos, f);
+ instance<create_table> table (*em, emos, f);
+ trav_rel::qnames names;
- // Create.
+ model >> names >> table;
+
+ // Pass 1 and 2.
//
+ for (unsigned short pass (1); pass < 3; ++pass)
{
- instance<create_model> model (*em, emos, f);
- instance<create_table> table (*em, emos, f);
- trav_rel::qnames names;
-
- model >> names >> table;
+ model->pass (pass);
+ table->pass (pass);
- // Pass 1 and 2.
- //
- for (unsigned short pass (1); pass < 3; ++pass)
- {
- model->pass (pass);
- table->pass (pass);
-
- model->traverse (*ctx.model);
- }
+ model->traverse (*ctx.model);
}
-
- file->epilogue ();
}
}
}