summaryrefslogtreecommitdiff
path: root/odb/pgsql/no-id-object-statements.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/pgsql/no-id-object-statements.hxx')
-rw-r--r--odb/pgsql/no-id-object-statements.hxx147
1 files changed, 0 insertions, 147 deletions
diff --git a/odb/pgsql/no-id-object-statements.hxx b/odb/pgsql/no-id-object-statements.hxx
deleted file mode 100644
index baa1b2a..0000000
--- a/odb/pgsql/no-id-object-statements.hxx
+++ /dev/null
@@ -1,147 +0,0 @@
-// file : odb/pgsql/no-id-object-statements.hxx
-// license : GNU GPL v2; see accompanying LICENSE file
-
-#ifndef ODB_PGSQL_NO_ID_OBJECT_STATEMENTS_HXX
-#define ODB_PGSQL_NO_ID_OBJECT_STATEMENTS_HXX
-
-#include <odb/pre.hxx>
-
-#include <cstddef> // std::size_t
-
-#include <odb/forward.hxx>
-#include <odb/traits.hxx>
-
-#include <odb/details/shared-ptr.hxx>
-
-#include <odb/pgsql/version.hxx>
-#include <odb/pgsql/forward.hxx>
-#include <odb/pgsql/pgsql-types.hxx>
-#include <odb/pgsql/binding.hxx>
-#include <odb/pgsql/statement.hxx>
-#include <odb/pgsql/statements-base.hxx>
-
-namespace odb
-{
- namespace pgsql
- {
- //
- // Implementation for objects without object id.
- //
-
- template <typename T>
- class no_id_object_statements: public statements_base
- {
- public:
- typedef T object_type;
- typedef object_traits_impl<object_type, id_pgsql> object_traits;
- typedef typename object_traits::pointer_type pointer_type;
- typedef typename object_traits::image_type image_type;
-
- typedef pgsql::insert_statement insert_statement_type;
-
- public:
- no_id_object_statements (connection_type&);
-
- virtual
- ~no_id_object_statements ();
-
- // Object image.
- //
- image_type&
- image (std::size_t i = 0)
- {
- return image_[i];
- }
-
- // Insert binding.
- //
- std::size_t
- insert_image_version () const { return insert_image_version_;}
-
- void
- insert_image_version (std::size_t v) {insert_image_version_ = v;}
-
- binding&
- insert_image_binding () {return insert_image_binding_;}
-
- // Select binding (needed for query support).
- //
- std::size_t
- select_image_version () const { return select_image_version_;}
-
- void
- select_image_version (std::size_t v) {select_image_version_ = v;}
-
- binding&
- select_image_binding () {return select_image_binding_;}
-
- bool*
- select_image_truncated () {return select_image_truncated_;}
-
- // Statements.
- //
- insert_statement_type&
- persist_statement ()
- {
- if (persist_ == 0)
- persist_.reset (
- new (details::shared) insert_statement_type (
- conn_,
- object_traits::persist_statement_name,
- object_traits::persist_statement,
- object_traits::versioned, // Process if versioned.
- object_traits::persist_statement_types,
- insert_column_count,
- insert_image_binding_,
- insert_image_native_binding_,
- 0,
- false));
-
- return *persist_;
- }
-
- public:
- // select = total
- // insert = total - inverse; inverse == 0 for object without id
- //
- static const std::size_t insert_column_count =
- object_traits::column_count;
-
- static const std::size_t select_column_count =
- object_traits::column_count;
-
- private:
- no_id_object_statements (const no_id_object_statements&);
- no_id_object_statements& operator= (const no_id_object_statements&);
-
- private:
- image_type image_[object_traits::batch];
- unsigned long long status_[object_traits::batch];
-
- // Select binding.
- //
- std::size_t select_image_version_;
- binding select_image_binding_;
- bind select_image_bind_[select_column_count];
- bool select_image_truncated_[select_column_count];
-
- // Insert binding.
- //
- std::size_t insert_image_version_;
- binding insert_image_binding_;
- bind insert_image_bind_[insert_column_count];
- native_binding insert_image_native_binding_;
- char* insert_image_values_[insert_column_count];
- int insert_image_lengths_[insert_column_count];
- int insert_image_formats_[insert_column_count];
-
- details::shared_ptr<insert_statement_type> persist_;
- };
- }
-}
-
-#include <odb/pgsql/no-id-object-statements.txx>
-
-#include <odb/post.hxx>
-
-#endif // ODB_PGSQL_NO_ID_OBJECT_STATEMENTS_HXX