summaryrefslogtreecommitdiff
path: root/libodb-pgsql/odb/pgsql/binding.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libodb-pgsql/odb/pgsql/binding.hxx')
-rw-r--r--libodb-pgsql/odb/pgsql/binding.hxx74
1 files changed, 74 insertions, 0 deletions
diff --git a/libodb-pgsql/odb/pgsql/binding.hxx b/libodb-pgsql/odb/pgsql/binding.hxx
new file mode 100644
index 0000000..1adf144
--- /dev/null
+++ b/libodb-pgsql/odb/pgsql/binding.hxx
@@ -0,0 +1,74 @@
+// file : odb/pgsql/binding.hxx
+// license : GNU GPL v2; see accompanying LICENSE file
+
+#ifndef ODB_PGSQL_BINDING_HXX
+#define ODB_PGSQL_BINDING_HXX
+
+#include <odb/pre.hxx>
+
+#include <cstddef> // std::size_t
+
+#include <odb/pgsql/version.hxx>
+#include <odb/pgsql/pgsql-types.hxx>
+
+namespace odb
+{
+ namespace pgsql
+ {
+ class native_binding
+ {
+ public:
+ native_binding (char** v,
+ int* l,
+ int* f,
+ std::size_t n)
+ : values (v), lengths (l), formats (f), count (n)
+ {
+ }
+
+ char** values;
+ int* lengths;
+ int* formats;
+ std::size_t count;
+
+ private:
+ native_binding (const native_binding&);
+ native_binding& operator= (const native_binding&);
+ };
+
+ class binding
+ {
+ public:
+ typedef pgsql::bind bind_type;
+
+ binding ()
+ : bind (0), count (0), version (0),
+ batch (0), skip (0), status (0) {}
+
+ binding (bind_type* b, std::size_t n)
+ : bind (b), count (n), version (0),
+ batch (0), skip (0), status (0) {}
+
+ binding (bind_type* b, std::size_t n,
+ std::size_t bt, std::size_t s, unsigned long long* st)
+ : bind (b), count (n), version (0),
+ batch (bt), skip (s), status (st) {}
+
+ bind_type* bind;
+ std::size_t count;
+ std::size_t version;
+
+ std::size_t batch;
+ std::size_t skip;
+ unsigned long long* status; // Batch status array.
+
+ private:
+ binding (const binding&);
+ binding& operator= (const binding&);
+ };
+ }
+}
+
+#include <odb/post.hxx>
+
+#endif // ODB_PGSQL_BINDING_HXX