diff options
Diffstat (limited to 'odb/oracle/auto-descriptor.hxx')
-rw-r--r-- | odb/oracle/auto-descriptor.hxx | 127 |
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 |