diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-03-10 08:44:28 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-03-21 15:39:59 +0200 |
commit | 7ae497743c7b042904fe1f6b4153ab3f4763ff2b (patch) | |
tree | 08ba3f742f20d16d893856ccceb070094bd69225 /odb/mysql/context.hxx | |
parent | 2436f20262a41bd1cafa5107ab6d6799c03e0964 (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/context.hxx')
-rw-r--r-- | odb/mysql/context.hxx | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/odb/mysql/context.hxx b/odb/mysql/context.hxx deleted file mode 100644 index 05b6639..0000000 --- a/odb/mysql/context.hxx +++ /dev/null @@ -1,127 +0,0 @@ -// file : odb/mysql/context.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC -// license : GNU GPL v3; see accompanying LICENSE file - -#ifndef ODB_MYSQL_CONTEXT_HXX -#define ODB_MYSQL_CONTEXT_HXX - -#include <string> - -#include <odb/context.hxx> - -namespace mysql -{ - struct sql_type - { - // Keep the order in each block of types. - // - enum core_type - { - // Integral types. - // - TINYINT, - SMALLINT, - MEDIUMINT, - INT, - BIGINT, - - // Float types. - // - FLOAT, - DOUBLE, - DECIMAL, - - // Data-time types. - // - DATE, - TIME, - DATETIME, - TIMESTAMP, - YEAR, - - // String and binary types. - // - CHAR, - BINARY, - VARCHAR, - VARBINARY, - TINYTEXT, - TINYBLOB, - TEXT, - BLOB, - MEDIUMTEXT, - MEDIUMBLOB, - LONGTEXT, - LONGBLOB, - - // Other types. - // - BIT, - ENUM, - SET, - - // Invalid type. - // - invalid - }; - - sql_type () : type (invalid), unsign (false), range (false) {} - - core_type type; - bool unsign; - bool range; - unsigned int range_value; // MySQL max value is 2^32 - 1 (LONGBLOG/TEXT). - }; - - class context: public ::context - { - // Predicates. - // - public: - - // Return true if an object or value type has members for which - // the image can grow. - // - bool - grow (semantics::class_&); - - // The same for a member's value type. - // - bool - grow (semantics::data_member&); - - bool - grow (semantics::data_member&, semantics::type&, string const& key_prefix); - - // - // - public: - sql_type const& - db_type (semantics::data_member&, string const& key_prefix = string ()); - - private: - typedef ::context base_context; - - struct data: base_context::data - { - virtual string - column_type_impl (semantics::type&, - string const& type, - semantics::context&, - column_type_flags) const; - }; - - private: - data* data_; - - public: - - public: - context (std::ostream&, semantics::unit&, options_type const&); - context (context&); - context (context&, std::ostream&); - }; -} - -#endif // ODB_MYSQL_CONTEXT_HXX |