summaryrefslogtreecommitdiff
path: root/odb/oracle/auto-descriptor.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/oracle/auto-descriptor.hxx')
-rw-r--r--odb/oracle/auto-descriptor.hxx127
1 files changed, 0 insertions, 127 deletions
diff --git a/odb/oracle/auto-descriptor.hxx b/odb/oracle/auto-descriptor.hxx
deleted file mode 100644
index b856a2c..0000000
--- a/odb/oracle/auto-descriptor.hxx
+++ /dev/null
@@ -1,127 +0,0 @@
-// file : odb/oracle/auto-descriptor.hxx
-// license : ODB NCUEL; see accompanying LICENSE file
-
-#ifndef ODB_ORACLE_AUTO_DESCRIPTOR_HXX
-#define ODB_ORACLE_AUTO_DESCRIPTOR_HXX
-
-#include <odb/pre.hxx>
-
-#include <odb/oracle/version.hxx>
-#include <odb/oracle/oracle-fwd.hxx>
-
-#include <odb/oracle/details/export.hxx>
-
-namespace odb
-{
- namespace oracle
- {
- enum descriptor_type
- {
- dt_param,
- dt_lob,
- dt_timestamp,
- dt_interval_ym,
- dt_interval_ds,
- dt_default
- };
-
- LIBODB_ORACLE_EXPORT void
- oci_descriptor_free (void* descriptor, descriptor_type type);
-
- //
- // descriptor_type_traits
- //
-
- template <typename D>
- struct default_descriptor_type_traits;
-
- template <>
- struct default_descriptor_type_traits<OCIParam>
- { static const descriptor_type dtype = dt_param; };
-
- template <>
- struct default_descriptor_type_traits<OCILobLocator>
- { static const descriptor_type dtype = dt_lob; };
-
- //
- // auto_descriptor_base
- //
-
- template <typename D, descriptor_type type>
- struct auto_descriptor_base
- {
- static void
- release (D* d)
- {
- oci_descriptor_free (d, type);
- }
- };
-
- template <typename D>
- struct auto_descriptor_base<D, dt_default>
- {
- static void
- release (D* d)
- {
- oci_descriptor_free (d, default_descriptor_type_traits<D>::dtype);
- }
- };
-
- //
- // auto_descriptor
- //
-
- template <typename D, descriptor_type type = dt_default>
- class auto_descriptor: auto_descriptor_base<D, type>
- {
- public:
- auto_descriptor (D* d = 0)
- : d_ (d)
- {
- }
-
- ~auto_descriptor ()
- {
- if (d_ != 0)
- this->release (d_);
- }
-
- operator D* () const
- {
- return d_;
- }
-
- D*&
- get ()
- {
- return d_;
- }
-
- D*
- get () const
- {
- return d_;
- }
-
- void
- reset (D* d = 0)
- {
- if (d_ != 0)
- this->release (d_);
-
- d_ = d;
- }
-
- private:
- auto_descriptor (const auto_descriptor&);
- auto_descriptor& operator= (const auto_descriptor&);
-
- protected:
- D* d_;
- };
- }
-}
-
-#include <odb/post.hxx>
-
-#endif // ODB_ORACLE_AUTO_DESCRIPTOR_HXX