summary refs log tree commit diff
path: root/db2/include/db_cxx.h
diff options
context:
space:
mode:
Diffstat (limited to 'db2/include/db_cxx.h')
-rw-r--r--db2/include/db_cxx.h861
1 files changed, 0 insertions, 861 deletions
diff --git a/db2/include/db_cxx.h b/db2/include/db_cxx.h
deleted file mode 100644
index f415d594b5..0000000000
--- a/db2/include/db_cxx.h
+++ /dev/null
@@ -1,861 +0,0 @@
-/*-
- * See the file LICENSE for redistribution information.
- *
- * Copyright (c) 1997, 1998
- *	Sleepycat Software.  All rights reserved.
- *
- *	@(#)db_cxx.h	10.30 (Sleepycat) 11/22/98
- */
-
-#ifndef _DB_CXX_H_
-#define _DB_CXX_H_
-//
-// C++ assumptions:
-//
-// To ensure portability to many platforms, both new and old, we make
-// few assumptions about the C++ compiler and library.  For example,
-// we do not expect STL, templates or namespaces to be available.  The
-// "newest" C++ feature used is exceptions, which are used liberally
-// to transmit error information.  Even the use of exceptions can be
-// disabled at runtime, see setErrorModel().
-//
-// C++ naming conventions:
-//
-//  - All top level class names start with Db.
-//  - All class members start with lower case letter.
-//  - All private data members are suffixed with underscore.
-//  - Use underscores to divide names into multiple words.
-//  - Simple data accessors are named with get_ or set_ prefix.
-//  - All method names are taken from names of functions in the C
-//    layer of db (usually by dropping a prefix like "db_").
-//    These methods have the same argument types and order,
-//    other than dropping the explicit arg that acts as "this".
-//
-// As a rule, each DbFoo object has exactly one underlying DB_FOO struct
-// (defined in db.h) associated with it.  In many cases, we inherit directly
-// from the DB_FOO structure to make this relationship explicit.  Often,
-// the underlying C layer allocates and deallocates these structures, so
-// there is no easy way to add any data to the DbFoo class.  When you see
-// a comment about whether data is permitted to be added, this is what
-// is going on.  Of course, if we need to add data to such C++ classes
-// in the future, we will arrange to have an indirect pointer to the
-// DB_FOO struct (as some of the classes already have).
-//
-
-
-////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////
-//
-// Forward declarations
-//
-
-#include <iostream.h>
-#include <db.h>
-
-class Db;                                        // forward
-class Dbc;                                       // forward
-class DbEnv;                                     // forward
-class DbException;                               // forward
-class DbInfo;                                    // forward
-class DbLock;                                    // forward
-class DbLockTab;                                 // forward
-class DbLog;                                     // forward
-class DbLsn;                                     // forward
-class DbMpool;                                   // forward
-class DbMpoolFile;                               // forward
-class Dbt;                                       // forward
-class DbTxn;                                     // forward
-class DbTxnMgr;                                  // forward
-
-// These classes are not defined here and should be invisible
-// to the user, but some compilers require forward references.
-// There is one for each use of the DEFINE_DB_CLASS macro.
-
-class DbLockTabImp;
-class DbLogImp;
-class DbMpoolImp;
-class DbMpoolFileImp;
-class DbImp;
-class DbTxnImp;
-class DbTxnMgrImp;
-
-
-////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////
-//
-// Mechanisms for declaring classes
-//
-
-//
-// Every class defined in this file has an _exported next to the class name.
-// This is needed for WinTel machines so that the class methods can
-// be exported or imported in a DLL as appropriate.  Users of the DLL
-// use the define DB_USE_DLL.  When the DLL is built, DB_CREATE_DLL
-// must be defined.
-//
-#if defined(_MSC_VER)
-
-#  if defined(DB_CREATE_DLL)
-#    define _exported __declspec(dllexport)      // creator of dll
-#  elif defined(DB_USE_DLL)
-#    define _exported __declspec(dllimport)      // user of dll
-#  else
-#    define _exported                            // static lib creator or user
-#  endif
-
-#else
-
-#  define _exported
-
-#endif
-
-// DEFINE_DB_CLASS defines an imp_ data member and imp() accessor.
-// The underlying type is a pointer to an opaque *Imp class, that
-// gets converted to the correct implementation class by the implementation.
-//
-// Since these defines use "private/public" labels, and leave the access
-// being "private", we always use these by convention before any data
-// members in the private section of a class.  Keeping them in the
-// private section also emphasizes that they are off limits to user code.
-//
-#define DEFINE_DB_CLASS(name) \
-    public: class name##Imp* imp() { return imp_; } \
-    public: const class name##Imp* imp() const { return imp_; } \
-    private: class name##Imp* imp_
-
-
-////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////
-//
-// Turn off inappropriate compiler warnings
-//
-
-#ifdef _MSC_VER
-
-// These are level 4 warnings that are explicitly disabled.
-// With Visual C++, by default you do not see above level 3 unless
-// you use /W4.  But we like to compile with the highest level
-// warnings to catch other errors.
-//
-// 4201: nameless struct/union
-//       triggered by standard include file <winnt.h>
-//
-// 4514: unreferenced inline function has been removed
-//       certain include files in MSVC define methods that are not called
-//
-#pragma warning(disable: 4201 4514)
-
-#endif
-
-////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////
-//
-// Exception classes
-//
-
-// Almost any error in the DB library throws a DbException.
-// Every exception should be considered an abnormality
-// (e.g. bug, misuse of DB, file system error).
-//
-// NOTE: We would like to inherit from class exception and
-//       let it handle what(), but there are
-//       MSVC++ problems when <exception> is included.
-//
-class _exported DbException
-{
-public:
-    virtual ~DbException();
-    DbException(int err);
-    DbException(const char *description);
-    DbException(const char *prefix, int err);
-    DbException(const char *prefix1, const char *prefix2, int err);
-    const int get_errno();
-    virtual const char *what() const;
-
-    DbException(const DbException &);
-    DbException &operator = (const DbException &);
-
-private:
-    char *what_;
-    int err_;                   // errno
-};
-
-
-////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////
-//
-// Lock classes
-//
-
-class _exported DbLock
-{
-    friend class DbLockTab;
-
-public:
-    DbLock();
-
-    int put(DbLockTab *locktab);
-
-    DbLock(const DbLock &);
-    DbLock &operator = (const DbLock &);
-
-protected:
-    // We can add data to this class if needed
-    // since its contained class is not allocated by db.
-    // (see comment at top)
-
-    DbLock(DB_LOCK);
-    DB_LOCK lock_;
-};
-
-class _exported DbLockTab
-{
-    friend class DbEnv;
-
-public:
-    int close();
-    int detect(u_int32_t flags, int atype);
-    int get(u_int32_t locker, u_int32_t flags, const Dbt *obj,
-            db_lockmode_t lock_mode, DbLock *lock);
-    int id(u_int32_t *idp);
-    int stat(DB_LOCK_STAT **statp, void *(*db_malloc)(size_t));
-    int vec(u_int32_t locker, u_int32_t flags, DB_LOCKREQ list[],
-	    int nlist, DB_LOCKREQ **elistp);
-
-    // Create or remove new locktab files
-    //
-    static int open(const char *dir, u_int32_t flags, int mode,
-                    DbEnv* dbenv, DbLockTab **regionp);
-    static int unlink(const char *dir, int force, DbEnv* dbenv);
-
-private:
-    // We can add data to this class if needed
-    // since it is implemented via a pointer.
-    // (see comment at top)
-
-    // copying not allowed
-    //
-    DbLockTab(const DbLockTab &);
-    DbLockTab &operator = (const DbLockTab &);
-
-    // Note: use DbLockTab::open() or DbEnv::get_lk_info()
-    // to get pointers to a DbLockTab,
-    // and call DbLockTab::close() rather than delete to release them.
-    //
-    DbLockTab();
-    ~DbLockTab();
-
-    DEFINE_DB_CLASS(DbLockTab);
-};
-
-
-////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////
-//
-// Log classes
-//
-
-class _exported DbLsn : protected DB_LSN
-{
-    friend class DbLog;          // friendship needed to cast to base class
-    friend class DbMpool;
-};
-
-class _exported DbLog
-{
-    friend class DbEnv;
-
-public:
-    int archive(char **list[], u_int32_t flags, void *(*db_malloc)(size_t));
-    int close();
-    static int compare(const DbLsn *lsn0, const DbLsn *lsn1);
-    int file(DbLsn *lsn, char *namep, int len);
-    int flush(const DbLsn *lsn);
-    int get(DbLsn *lsn, Dbt *data, u_int32_t flags);
-    int put(DbLsn *lsn, const Dbt *data, u_int32_t flags);
-
-    // Normally these would be called register and unregister to
-    // parallel the C interface, but "register" is a reserved word.
-    //
-    int db_register(Db *dbp, const char *name, DBTYPE type, u_int32_t *fidp);
-    int db_unregister(u_int32_t fid);
-
-    // Create or remove new log files
-    //
-    static int open(const char *dir, u_int32_t flags, int mode,
-                    DbEnv* dbenv, DbLog **regionp);
-    static int unlink(const char *dir, int force, DbEnv* dbenv);
-
-private:
-    // We can add data to this class if needed
-    // since it is implemented via a pointer.
-    // (see comment at top)
-
-    // Note: use DbLog::open() or DbEnv::get_lg_info()
-    // to get pointers to a DbLog,
-    // and call DbLog::close() rather than delete to release them.
-    //
-    DbLog();
-    ~DbLog();
-
-    // no copying
-    DbLog(const DbLog &);
-    operator = (const DbLog &);
-
-    DEFINE_DB_CLASS(DbLog);
-};
-
-
-////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////
-//
-// Memory pool classes
-//
-
-class _exported DbMpoolFile
-{
-    friend class DbEnv;
-
-public:
-    int close();
-    int get(db_pgno_t *pgnoaddr, u_int32_t flags, void *pagep);
-    int put(void *pgaddr, u_int32_t flags);
-    int set(void *pgaddr, u_int32_t flags);
-    int sync();
-
-    static int open(DbMpool *mp, const char *file,
-                    u_int32_t flags, int mode, size_t pagesize,
-                    DB_MPOOL_FINFO *finfop, DbMpoolFile **mpf);
-
-private:
-    // We can add data to this class if needed
-    // since it is implemented via a pointer.
-    // (see comment at top)
-
-    // Note: use DbMpoolFile::open()
-    // to get pointers to a DbMpoolFile,
-    // and call DbMpoolFile::close() rather than delete to release them.
-    //
-    DbMpoolFile();
-
-    // Shut g++ up.
-protected:
-    ~DbMpoolFile();
-
-private:
-    // no copying
-    DbMpoolFile(const DbMpoolFile &);
-    operator = (const DbMpoolFile &);
-
-    DEFINE_DB_CLASS(DbMpoolFile);
-};
-
-class _exported DbMpool
-{
-    friend class DbEnv;
-
-public:
-    int close();
-
-    // access to low level interface
-    // Normally this would be called register to parallel
-    // the C interface, but "register" is a reserved word.
-    //
-    int db_register(int ftype,
-                    int (*pgin)(db_pgno_t pgno, void *pgaddr, DBT *pgcookie),
-                    int (*pgout)(db_pgno_t pgno, void *pgaddr, DBT *pgcookie));
-
-    int stat(DB_MPOOL_STAT **gsp, DB_MPOOL_FSTAT ***fsp,
-             void *(*db_malloc)(size_t));
-    int sync(DbLsn *lsn);
-    int trickle(int pct, int *nwrotep);
-
-    // Create or remove new mpool files
-    //
-    static int open(const char *dir, u_int32_t flags, int mode,
-                    DbEnv* dbenv, DbMpool **regionp);
-    static int unlink(const char *dir, int force, DbEnv* dbenv);
-
-private:
-    // We can add data to this class if needed
-    // since it is implemented via a pointer.
-    // (see comment at top)
-
-    // Note: use DbMpool::open() or DbEnv::get_mp_info()
-    // to get pointers to a DbMpool,
-    // and call DbMpool::close() rather than delete to release them.
-    //
-    DbMpool();
-    ~DbMpool();
-
-    // no copying
-    DbMpool(const DbMpool &);
-    DbMpool &operator = (const DbMpool &);
-
-    DEFINE_DB_CLASS(DbMpool);
-};
-
-
-////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////
-//
-// Transaction classes
-//
-
-class _exported DbTxnMgr
-{
-    friend class DbEnv;
-
-public:
-    int begin(DbTxn *pid, DbTxn **tid);
-    int checkpoint(u_int32_t kbyte, u_int32_t min) const;
-    int close();
-    int stat(DB_TXN_STAT **statp, void *(*db_malloc)(size_t));
-
-    // Create or remove new txnmgr files
-    //
-    static int open(const char *dir, u_int32_t flags, int mode,
-                    DbEnv* dbenv, DbTxnMgr **regionp);
-    static int unlink(const char *dir, int force, DbEnv* dbenv);
-
-private:
-    // We can add data to this class if needed
-    // since it is implemented via a pointer.
-    // (see comment at top)
-
-    // Note: use DbTxnMgr::open() or DbEnv::get_tx_info()
-    // to get pointers to a DbTxnMgr,
-    // and call DbTxnMgr::close() rather than delete to release them.
-    //
-    DbTxnMgr();
-    ~DbTxnMgr();
-
-    // no copying
-    DbTxnMgr(const DbTxnMgr &);
-    operator = (const DbTxnMgr &);
-
-    DEFINE_DB_CLASS(DbTxnMgr);
-};
-
-class _exported DbTxn
-{
-    friend class DbTxnMgr;
-
-public:
-    int abort();
-    int commit();
-    u_int32_t id();
-    int prepare();
-
-private:
-    // We can add data to this class if needed
-    // since it is implemented via a pointer.
-    // (see comment at top)
-
-    // Note: use DbTxnMgr::begin() to get pointers to a DbTxn,
-    // and call DbTxn::abort() or DbTxn::commit rather than
-    // delete to release them.
-    //
-    DbTxn();
-    ~DbTxn();
-
-    // no copying
-    DbTxn(const DbTxn &);
-    operator = (const DbTxn &);
-
-    DEFINE_DB_CLASS(DbTxn);
-};
-
-
-////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////
-//
-// Application classes
-//
-
-//
-// A set of application options - define how this application uses
-// the db library.
-//
-class _exported DbInfo : protected DB_INFO
-{
-    friend class DbEnv;
-    friend class Db;
-
-public:
-    DbInfo();
-    ~DbInfo();
-
-    // Byte order.
-    void set_lorder(int);
-
-    // Underlying cache size.
-    void set_cachesize(size_t);
-
-    // Underlying page size.
-    void set_pagesize(size_t);
-
-    // Local heap allocation.
-    typedef void *(*db_malloc_fcn)(size_t);
-    void set_malloc(db_malloc_fcn);
-
-    // Duplicate compare function.
-    typedef int (*dup_compare_fcn)(const DBT *, const DBT *);
-    void set_dup_compare(dup_compare_fcn);
-
-    ////////////////////////////////////////////////////////////////
-    // Btree access method.
-
-    // Maximum keys per page.
-    void set_bt_maxkey(int);
-
-    // Minimum keys per page.
-    void set_bt_minkey(int);
-
-    // Comparison function.
-    typedef int (*bt_compare_fcn)(const DBT *, const DBT *);
-    void set_bt_compare(bt_compare_fcn);
-
-    // Prefix function.
-    typedef size_t (*bt_prefix_fcn)(const DBT *, const DBT *);
-    void set_bt_prefix(bt_prefix_fcn);
-
-    ////////////////////////////////////////////////////////////////
-    // Hash access method.
-
-    // Fill factor.
-    void set_h_ffactor(u_int32_t);
-
-    // Number of elements.
-    void set_h_nelem(u_int32_t);
-
-    // Hash function.
-    typedef u_int32_t (*h_hash_fcn)(const void *, u_int32_t);
-    void set_h_hash(h_hash_fcn);
-
-    ////////////////////////////////////////////////////////////////
-    // Recno access method.
-
-    // Fixed-length padding byte.
-    void set_re_pad(int);
-
-    // Variable-length delimiting byte.
-    void set_re_delim(int);
-
-    // Length for fixed-length records.
-    void set_re_len(u_int32_t);
-
-    // Source file name.
-    void set_re_source(char *);
-
-    // Note: some flags are set as side effects of calling
-    // above "set" methods.
-    //
-    void set_flags(u_int32_t);
-
-
-    // (deep) copying of this object is allowed.
-    //
-    DbInfo(const DbInfo &);
-    DbInfo &operator = (const DbInfo &);
-
-private:
-    // We can add data to this class if needed
-    // since parent class is not allocated by db.
-    // (see comment at top)
-};
-
-//
-// Base application class.  Provides functions for opening a database.
-// User of this library can use this class as a starting point for
-// developing a DB application - derive their application class from
-// this one, add application control logic.
-//
-// Note that if you use the default constructor, you must explicitly
-// call appinit() before any other db activity (e.g. opening files)
-//
-class _exported DbEnv : protected DB_ENV
-{
-    friend class DbTxnMgr;
-    friend class DbLog;
-    friend class DbLockTab;
-    friend class DbMpool;
-    friend class Db;
-
-public:
-
-    ~DbEnv();
-
-    // This constructor can be used to immediately initialize the
-    // application with these arguments.  Do not use it if you
-    // need to set other parameters via the access methods.
-    //
-    DbEnv(const char *homeDir, char *const *db_config, u_int32_t flags);
-
-    // Use this constructor if you wish to *delay* the initialization
-    // of the db library.  This is useful if you need to set
-    // any particular parameters via the access methods below.
-    // Then call appinit() to complete the initialization.
-    //
-    DbEnv();
-
-    // Used in conjunction with the default constructor to
-    // complete the initialization of the db library.
-    //
-    int appinit(const char *homeDir, char *const *db_config, u_int32_t flags);
-
-    // Called automatically when DbEnv is destroyed, or can be
-    // called at any time to shut down Db.
-    //
-    int appexit();
-
-    // Version information.  A static method so it can be obtained anytime.
-    //
-    static char *version(int *major, int *minor, int *patch);
-
-    ////////////////////////////////////////////////////////////////
-    // simple get/set access methods
-    //
-    // If you are calling set_ methods, you need to
-    // use the default constructor along with appinit().
-
-    // Byte order.
-    void set_lorder(int);
-
-    // Panic callback.
-    typedef void (*db_paniccall_fcn)(DbEnv *, int);
-    void set_paniccall(db_paniccall_fcn);
-
-    // Error message callback.
-    typedef void (*db_errcall_fcn)(const char *, char *);
-    void set_errcall(db_errcall_fcn);
-
-    // Error message file stream.
-    void set_errfile(FILE *);
-
-    // Error message prefix.
-    void set_errpfx(const char *);
-
-    // Generate debugging messages.
-    void set_verbose(int);
-
-    ////////////////////////////////////////////////////////////////
-    // Locking.
-
-    // Return from lock_open().
-    DbLockTab *get_lk_info() const;
-
-    // Two dimensional conflict matrix.
-    void set_lk_conflicts(u_int8_t *);
-
-    // Number of lock modes in table.
-    void set_lk_modes(int);
-
-    // Maximum number of locks.
-    void set_lk_max(u_int32_t);
-
-    // Deadlock detect on every conflict.
-    void set_lk_detect(u_int32_t);
-
-
-    ////////////////////////////////////////////////////////////////
-    // Logging.
-
-    // Return from log_open().
-    DbLog *get_lg_info() const;
-
-    // Maximum file size.
-    void set_lg_max(u_int32_t);
-
-
-    ////////////////////////////////////////////////////////////////
-    // Memory pool.
-
-    // Return from memp_open().
-    DbMpool *get_mp_info() const;
-
-    // Maximum file size for mmap.
-    void set_mp_mmapsize(size_t);
-
-    // Bytes in the mpool cache.
-    void set_mp_size(size_t);
-
-
-    ////////////////////////////////////////////////////////////////
-    // Transactions.
-
-    // Return from txn_open().
-    DbTxnMgr *get_tx_info() const;
-
-    // Maximum number of transactions.
-    void set_tx_max(u_int32_t);
-
-    // Dispatch function for recovery.
-    typedef int (*tx_recover_fcn)(DB_LOG *, DBT *, DB_LSN *, int, void *);
-    void set_tx_recover(tx_recover_fcn);
-
-    // Flags.
-    void set_flags(u_int32_t);
-
-    ////////////////////////////////////////////////////////////////
-    // The default error model is to throw an exception whenever
-    // an error occurs.  This generally allows for cleaner logic
-    // for transaction processing, as a try block can surround a
-    // single transaction.  Alternatively, since almost every method
-    // returns an error code (errno), the error model can be set to
-    // not throw exceptions, and instead return the appropriate code.
-    //
-    enum ErrorModel { Exception, ErrorReturn };
-    void set_error_model(ErrorModel);
-
-    // If an error is detected and the error call function
-    // or stream is set, a message is dispatched or printed.
-    // If a prefix is set, each message is prefixed.
-    //
-    // You can use set_errcall() or set_errfile() above to control
-    // error functionality using a C model.  Alternatively, you can
-    // call set_error_stream() to force all errors to a C++ stream.
-    // It is unwise to mix these approaches.
-    //
-    void set_error_stream(class ostream*);
-
-    // used internally
-    static int runtime_error(const char *caller, int err,
-                             int in_destructor = 0, int force_throw = 0);
-
-private:
-    // We can add data to this class if needed
-    // since parent class is not allocated by db.
-    // (see comment at top)
-
-    // no copying
-    DbEnv(const DbEnv &);
-    operator = (const DbEnv &);
-
-    ErrorModel error_model_;
-    static void stream_error_function(const char *, char *);
-    static ostream *error_stream_;
-};
-
-////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////
-//
-// Table access classes
-//
-
-//
-// Represents a database table = a set of keys with associated values.
-//
-class _exported Db
-{
-    friend class DbEnv;
-
-public:
-    int close(u_int32_t flags);
-    int cursor(DbTxn *txnid, Dbc **cursorp, u_int32_t flags);
-    int del(DbTxn *txnid, Dbt *key, u_int32_t flags);
-    int fd(int *fdp);
-    int get(DbTxn *txnid, Dbt *key, Dbt *data, u_int32_t flags);
-    int join(Dbc **curslist, u_int32_t flags, Dbc **dbcp);
-    int put(DbTxn *txnid, Dbt *key, Dbt *data, u_int32_t flags);
-    int stat(void *sp, void *(*db_malloc)(size_t), u_int32_t flags);
-    int sync(u_int32_t flags);
-
-    int get_byteswapped() const;
-    DBTYPE get_type() const;
-
-    static int open(const char *fname, DBTYPE type, u_int32_t flags,
-                    int mode, DbEnv *dbenv, DbInfo *info, Db **dbpp);
-
-    static int xa_open(const char *fname, DBTYPE type, u_int32_t flags,
-                    int mode, DbInfo *info, Db **dbpp);
-private:
-    // We can add data to this class if needed
-    // since it is implemented via a pointer.
-    // (see comment at top)
-
-    // Note: use Db::open() to get initialize pointers to a Db,
-    // and call Db::close() rather than delete to release them.
-    Db();
-    ~Db();
-
-    // no copying
-    Db(const Db &);
-    Db &operator = (const Db &);
-
-    DEFINE_DB_CLASS(Db);
-};
-
-//
-// A chunk of data, maybe a key or value.
-//
-class _exported Dbt : private DBT
-{
-    friend class Dbc;
-    friend class Db;
-    friend class DbLog;
-    friend class DbMpoolFile;
-    friend class DbLockTab;
-
-public:
-
-    // key/data
-    void *get_data() const;
-    void set_data(void *);
-
-    // key/data length
-    u_int32_t get_size() const;
-    void set_size(u_int32_t);
-
-    // RO: length of user buffer.
-    u_int32_t get_ulen() const;
-    void set_ulen(u_int32_t);
-
-    // RO: get/put record length.
-    u_int32_t get_dlen() const;
-    void set_dlen(u_int32_t);
-
-    // RO: get/put record offset.
-    u_int32_t get_doff() const;
-    void set_doff(u_int32_t);
-
-    // flags
-    u_int32_t get_flags() const;
-    void set_flags(u_int32_t);
-
-    Dbt(void *data, size_t size);
-    Dbt();
-    ~Dbt();
-    Dbt(const Dbt &);
-    Dbt &operator = (const Dbt &);
-
-private:
-    // We can add data to this class if needed
-    // since parent class is not allocated by db.
-    // (see comment at top)
-};
-
-class _exported Dbc : protected DBC
-{
-    friend class Db;
-
-public:
-    int close();
-    int del(u_int32_t flags);
-    int get(Dbt* key, Dbt *data, u_int32_t flags);
-    int put(Dbt* key, Dbt *data, u_int32_t flags);
-
-private:
-    // No data is permitted in this class (see comment at top)
-
-    // Note: use Db::cursor() to get pointers to a Dbc,
-    // and call Dbc::close() rather than delete to release them.
-    //
-    Dbc();
-    ~Dbc();
-
-    // no copying
-    Dbc(const Dbc &);
-    Dbc &operator = (const Dbc &);
-};
-#endif /* !_DB_CXX_H_ */