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/mysql/inline.cxx | 129 --------------------------------------------------- 1 file changed, 129 deletions(-) delete mode 100644 odb/mysql/inline.cxx (limited to 'odb/mysql/inline.cxx') 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 -// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC -// license : GNU GPL v3; see accompanying LICENSE file - -#include -#include - -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 << "}"; - } -} -- cgit v1.1