summaryrefslogtreecommitdiff
path: root/odb/mysql/inline.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-03-10 08:44:28 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-03-21 15:39:59 +0200
commit7ae497743c7b042904fe1f6b4153ab3f4763ff2b (patch)
tree08ba3f742f20d16d893856ccceb070094bd69225 /odb/mysql/inline.cxx
parent2436f20262a41bd1cafa5107ab6d6799c03e0964 (diff)
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.
Diffstat (limited to 'odb/mysql/inline.cxx')
-rw-r--r--odb/mysql/inline.cxx129
1 files changed, 0 insertions, 129 deletions
diff --git a/odb/mysql/inline.cxx b/odb/mysql/inline.cxx
deleted file mode 100644
index 1ab16ca..0000000
--- a/odb/mysql/inline.cxx
+++ /dev/null
@@ -1,129 +0,0 @@
-// file : odb/mysql/inline.cxx
-// author : Boris Kolpackov <boris@codesynthesis.com>
-// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
-// license : GNU GPL v3; see accompanying LICENSE file
-
-#include <odb/mysql/common.hxx>
-#include <odb/mysql/inline.hxx>
-
-namespace mysql
-{
- namespace
- {
- struct class_: traversal::class_, context
- {
- class_ (context& c)
- : context (c)
- {
- }
-
- virtual void
- traverse (type& c)
- {
- if (c.file () != unit.file ())
- return;
-
- if (c.count ("object"))
- traverse_object (c);
- else if (comp_value (c))
- traverse_value (c);
- }
-
- virtual void
- traverse_object (type& c)
- {
- string const& type (c.fq_name ());
- string traits ("access::object_traits< " + type + " >");
- semantics::data_member& id (id_member (c));
-
- os << "// " << c.name () << endl
- << "//" << endl
- << endl;
-
- // query_type
- //
- if (options.generate_query ())
- {
- os << "inline" << endl
- << traits << "::query_type::" << endl
- << "query_type ()"
- << "{"
- << "}";
-
- os << "inline" << endl
- << traits << "::query_type::" << endl
- << "query_type (const std::string& q)" << endl
- << " : query_base_type (q)"
- << "{"
- << "}";
-
- os << "inline" << endl
- << traits << "::query_type::" << endl
- << "query_type (const query_base_type& q)" << endl
- << " : query_base_type (q)"
- << "{"
- << "}";
- }
-
- // id ()
- //
- os << "inline" << endl
- << traits << "::id_type" << endl
- << traits << "::" << endl
- << "id (const object_type& obj)"
- << "{"
- << "return obj." << id.name () << ";" << endl
- << "}";
-
- // load_()
- //
- if (!has_a (c, test_container))
- {
- os << "inline" << endl
- << "void " << traits << "::" << endl
- << "load_ (mysql::object_statements< object_type >&, object_type&)"
- << "{"
- << "}";
- }
- }
-
- virtual void
- traverse_value (type&)
- {
- /*
- string const& type (c.fq_name ());
- string traits ("access::composite_value_traits< " + type + " >");
-
- os << "// " << c.name () << endl
- << "//" << endl
- << endl;
-
- */
- }
- };
- }
-
- void
- generate_inline (context& ctx)
- {
- traversal::unit unit;
- traversal::defines unit_defines;
- traversal::namespace_ ns;
- class_ c (ctx);
-
- unit >> unit_defines >> ns;
- unit_defines >> c;
-
- traversal::defines ns_defines;
-
- ns >> ns_defines >> ns;
- ns_defines >> c;
-
- ctx.os << "namespace odb"
- << "{";
-
- unit.dispatch (ctx.unit);
-
- ctx.os << "}";
- }
-}