From 28a08724fc9e2ac494596711990206c64ca36b1d Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 8 Nov 2011 13:40:31 +0200 Subject: Get rid of custom value_traits specialization in query test auto_ptr is now handled automatically as a wrapper. --- common/query/driver.cxx | 2 +- common/query/makefile | 6 ++--- common/query/traits-mysql.hxx | 59 ----------------------------------------- common/query/traits-oracle.hxx | 60 ------------------------------------------ common/query/traits-pgsql.hxx | 59 ----------------------------------------- common/query/traits-sqlite.hxx | 59 ----------------------------------------- common/query/traits.hxx | 21 --------------- 7 files changed, 3 insertions(+), 263 deletions(-) delete mode 100644 common/query/traits-mysql.hxx delete mode 100644 common/query/traits-oracle.hxx delete mode 100644 common/query/traits-pgsql.hxx delete mode 100644 common/query/traits-sqlite.hxx delete mode 100644 common/query/traits.hxx diff --git a/common/query/driver.cxx b/common/query/driver.cxx index e019fe5..6dd7757 100644 --- a/common/query/driver.cxx +++ b/common/query/driver.cxx @@ -399,7 +399,7 @@ main (int argc, char* argv[]) t.commit (); } - // Test value_traits::type != value_traits::value_type. + // Test value_traits::value_type != value_traits::query_type. // cout << "test 013" << endl; { diff --git a/common/query/makefile b/common/query/makefile index f1f2fa9..63c0e77 100644 --- a/common/query/makefile +++ b/common/query/makefile @@ -36,8 +36,7 @@ gen := $(addprefix $(out_base)/,$(genf)) $(gen): $(odb) $(gen): odb := $(odb) $(gen) $(dist): export odb_options += --database $(db_id) --generate-schema \ ---generate-query --hxx-prologue '\#include "traits.hxx"' \ ---table-prefix t_query_ +--generate-query --table-prefix t_query_ $(gen): cpp_options := -I$(src_base) $(gen): $(common.l.cpp-options) @@ -54,13 +53,12 @@ name := $(subst /,-,$(subst $(src_root)/common/,,$(src_base))) $(dist): db_id := @database@ $(dist): sources := $(cxx_tun) $(dist): headers := $(odb_hdr) -$(dist): export extra_headers := traits.hxx $(databases:%=traits-%.hxx) $(dist): data_dist := test.std $(dist): export name := $(name) $(dist): export extra_dist := $(data_dist) $(call vc9projs,$(name)) \ $(call vc10projs,$(name)) $(dist): - $(call dist-data,$(sources) $(headers) $(extra_headers) $(data_dist)) + $(call dist-data,$(sources) $(headers) $(data_dist)) $(call meta-automake,../template/Makefile.am) $(call meta-vc9projs,../template/template,$(name)) $(call meta-vc10projs,../template/template,$(name)) diff --git a/common/query/traits-mysql.hxx b/common/query/traits-mysql.hxx deleted file mode 100644 index fb95bfd..0000000 --- a/common/query/traits-mysql.hxx +++ /dev/null @@ -1,59 +0,0 @@ -// file : common/query/traits-mysql.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC -// license : GNU GPL v2; see accompanying LICENSE file - -#ifndef TRAITS_MYSQL_HXX -#define TRAITS_MYSQL_HXX - -#include -#include // std::auto_ptr -#include // std::memcpy - -#include - -namespace odb -{ - namespace mysql - { - template <> - class value_traits, id_string> - { - public: - typedef std::auto_ptr value_type; - typedef std::string query_type; - typedef details::buffer image_type; - - static void - set_value (std::auto_ptr& v, - const details::buffer& b, - std::size_t n, - bool is_null) - { - v.reset (is_null ? 0 : new std::string (b.data (), n)); - } - - static void - set_image (details::buffer& b, - std::size_t& n, - bool& is_null, - const std::auto_ptr& v) - { - is_null = v.get () == 0; - - if (!is_null) - { - n = v->size (); - - if (n > b.capacity ()) - b.capacity (n); - - if (n != 0) - std::memcpy (b.data (), v->c_str (), n); - } - } - }; - } -} - -#endif // TRAITS_MYSQL_HXX diff --git a/common/query/traits-oracle.hxx b/common/query/traits-oracle.hxx deleted file mode 100644 index 9f9c71b..0000000 --- a/common/query/traits-oracle.hxx +++ /dev/null @@ -1,60 +0,0 @@ -// file : common/query/traits-oracle.hxx -// author : Constantin Michael -// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC -// license : GNU GPL v2; see accompanying LICENSE file - -#ifndef TRAITS_ORACLE_HXX -#define TRAITS_ORACLE_HXX - -#include -#include // std::auto_ptr -#include // std::memcpy -#include - -#include - -namespace odb -{ - namespace oracle - { - template <> - class value_traits, id_string> - { - public: - typedef std::auto_ptr value_type; - typedef std::string query_type; - typedef char* image_type; - - static void - set_value (std::auto_ptr& v, - const char* b, - std::size_t n, - bool is_null) - { - v.reset (is_null ? 0 : new std::string (b, n)); - } - - static void - set_image (char* b, - std::size_t c, - std::size_t& n, - bool& is_null, - const std::auto_ptr& v) - { - is_null = v.get () == 0; - - if (!is_null) - { - n = v->size (); - - assert (c >= n); - - if (n != 0) - std::memcpy (b, v->c_str (), n); - } - } - }; - } -} - -#endif // TRAITS_ORACLE_HXX diff --git a/common/query/traits-pgsql.hxx b/common/query/traits-pgsql.hxx deleted file mode 100644 index 5b5c5d3..0000000 --- a/common/query/traits-pgsql.hxx +++ /dev/null @@ -1,59 +0,0 @@ -// file : common/query/traits-pgsql.hxx -// author : Constantin Michael -// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC -// license : GNU GPL v2; see accompanying LICENSE file - -#ifndef TRAITS_PGSQL_HXX -#define TRAITS_PGSQL_HXX - -#include -#include // std::auto_ptr -#include // std::memcpy - -#include - -namespace odb -{ - namespace pgsql - { - template <> - class value_traits, id_string> - { - public: - typedef std::auto_ptr value_type; - typedef std::string query_type; - typedef details::buffer image_type; - - static void - set_value (std::auto_ptr& v, - const details::buffer& b, - std::size_t n, - bool is_null) - { - v.reset (is_null ? 0 : new std::string (b.data (), n)); - } - - static void - set_image (details::buffer& b, - std::size_t& n, - bool& is_null, - const std::auto_ptr& v) - { - is_null = v.get () == 0; - - if (!is_null) - { - n = v->size (); - - if (n > b.capacity ()) - b.capacity (n); - - if (n != 0) - std::memcpy (b.data (), v->c_str (), n); - } - } - }; - } -} - -#endif // TRAITS_PGSQL_HXX diff --git a/common/query/traits-sqlite.hxx b/common/query/traits-sqlite.hxx deleted file mode 100644 index 4e58b34..0000000 --- a/common/query/traits-sqlite.hxx +++ /dev/null @@ -1,59 +0,0 @@ -// file : common/query/traits-sqlite.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC -// license : GNU GPL v2; see accompanying LICENSE file - -#ifndef TRAITS_SQLITE_HXX -#define TRAITS_SQLITE_HXX - -#include -#include // std::auto_ptr -#include // std::memcpy - -#include - -namespace odb -{ - namespace sqlite - { - template <> - class value_traits, id_text> - { - public: - typedef std::auto_ptr value_type; - typedef std::string query_type; - typedef details::buffer image_type; - - static void - set_value (std::auto_ptr& v, - const details::buffer& b, - std::size_t n, - bool is_null) - { - v.reset (is_null ? 0 : new std::string (b.data (), n)); - } - - static void - set_image (details::buffer& b, - std::size_t& n, - bool& is_null, - const std::auto_ptr& v) - { - is_null = v.get () == 0; - - if (!is_null) - { - n = v->size (); - - if (n > b.capacity ()) - b.capacity (n); - - if (n != 0) - std::memcpy (b.data (), v->c_str (), n); - } - } - }; - } -} - -#endif // TRAITS_SQLITE_HXX diff --git a/common/query/traits.hxx b/common/query/traits.hxx deleted file mode 100644 index ea142c9..0000000 --- a/common/query/traits.hxx +++ /dev/null @@ -1,21 +0,0 @@ -// file : common/query/traits.hxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC -// license : GNU GPL v2; see accompanying LICENSE file - -#ifndef TRAITS_HXX -#define TRAITS_HXX - -#include - -#if defined(DATABASE_MYSQL) -# include "traits-mysql.hxx" -#elif defined(DATABASE_ORACLE) -# include "traits-oracle.hxx" -#elif defined(DATABASE_SQLITE) -# include "traits-sqlite.hxx" -#elif defined(DATABASE_PGSQL) -# include "traits-pgsql.hxx" -#endif - -#endif // TRAITS_HXX -- cgit v1.1