summaryrefslogtreecommitdiff
path: root/src/dbinc/db_cxx.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/dbinc/db_cxx.in')
-rw-r--r--src/dbinc/db_cxx.in86
1 files changed, 70 insertions, 16 deletions
diff --git a/src/dbinc/db_cxx.in b/src/dbinc/db_cxx.in
index 84fc0f88..5b29f7e8 100644
--- a/src/dbinc/db_cxx.in
+++ b/src/dbinc/db_cxx.in
@@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
- * Copyright (c) 1997, 2012 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015 Oracle and/or its affiliates. All rights reserved.
*
* $Id$
*/
@@ -76,6 +76,7 @@ class DbMpoolFile; // forward
class DbPreplist; // forward
class DbSequence; // forward
class DbSite; // forward
+class DbStream; // forward
class Dbt; // forward
class DbTxn; // forward
@@ -159,13 +160,13 @@ extern "C" {
typedef void (*db_free_fcn_type)
(void *);
typedef int (*bt_compare_fcn_type) /*C++ version available*/
- (DB *, const DBT *, const DBT *);
+ (DB *, const DBT *, const DBT *, size_t *);
typedef size_t (*bt_prefix_fcn_type) /*C++ version available*/
(DB *, const DBT *, const DBT *);
typedef int (*dup_compare_fcn_type) /*C++ version available*/
- (DB *, const DBT *, const DBT *);
+ (DB *, const DBT *, const DBT *, size_t *);
typedef int (*h_compare_fcn_type) /*C++ version available*/
- (DB *, const DBT *, const DBT *);
+ (DB *, const DBT *, const DBT *, size_t *);
typedef u_int32_t (*h_hash_fcn_type) /*C++ version available*/
(DB *, const void *, u_int32_t);
typedef int (*pgin_fcn_type)
@@ -204,7 +205,10 @@ public:
virtual int get_alloc(
db_malloc_fcn_type *, db_realloc_fcn_type *, db_free_fcn_type *);
virtual int get_append_recno(int (**)(Db *, Dbt *, db_recno_t));
- virtual int get_bt_compare(int (**)(Db *, const Dbt *, const Dbt *));
+ virtual int get_blob_dir(const char **);
+ virtual int get_blob_threshold(u_int32_t *);
+ virtual int get_bt_compare(
+ int (**)(Db *, const Dbt *, const Dbt *, size_t *));
virtual int get_bt_compress(
int (**)(
Db *, const Dbt *, const Dbt *, const Dbt *, const Dbt *, Dbt *),
@@ -215,7 +219,8 @@ public:
virtual int get_cachesize(u_int32_t *, u_int32_t *, int *);
virtual int get_create_dir(const char **);
virtual int get_dbname(const char **, const char **);
- virtual int get_dup_compare(int (**)(Db *, const Dbt *, const Dbt *));
+ virtual int get_dup_compare(
+ int (**)(Db *, const Dbt *, const Dbt *, size_t *));
virtual int get_encrypt_flags(u_int32_t *);
virtual void get_errcall(
void (**)(const DbEnv *, const char *, const char *));
@@ -225,7 +230,8 @@ public:
virtual int get_flags(u_int32_t *);
virtual int get_heapsize(u_int32_t *, u_int32_t *);
virtual int get_heap_regionsize(u_int32_t *);
- virtual int get_h_compare(int (**)(Db *, const Dbt *, const Dbt *));
+ virtual int get_h_compare(
+ int (**)(Db *, const Dbt *, const Dbt *, size_t *));
virtual int get_h_ffactor(u_int32_t *);
virtual int get_h_hash(u_int32_t (**)(Db *, const void *, u_int32_t));
virtual int get_h_nelem(u_int32_t *);
@@ -261,8 +267,11 @@ public:
db_malloc_fcn_type, db_realloc_fcn_type, db_free_fcn_type);
virtual void set_app_private(void *);
virtual int set_append_recno(int (*)(Db *, Dbt *, db_recno_t));
+ virtual int set_blob_dir(const char *);
+ virtual int set_blob_threshold(u_int32_t, u_int32_t);
virtual int set_bt_compare(bt_compare_fcn_type); /*deprecated*/
- virtual int set_bt_compare(int (*)(Db *, const Dbt *, const Dbt *));
+ virtual int set_bt_compare(
+ int (*)(Db *, const Dbt *, const Dbt *, size_t *));
virtual int set_bt_compress(
int (*)
(Db *, const Dbt *, const Dbt *, const Dbt *, const Dbt *, Dbt *),
@@ -273,7 +282,8 @@ public:
virtual int set_cachesize(u_int32_t, u_int32_t, int);
virtual int set_create_dir(const char *);
virtual int set_dup_compare(dup_compare_fcn_type); /*deprecated*/
- virtual int set_dup_compare(int (*)(Db *, const Dbt *, const Dbt *));
+ virtual int set_dup_compare(
+ int (*)(Db *, const Dbt *, const Dbt *, size_t *));
virtual int set_encrypt(const char *, u_int32_t);
virtual void set_errcall(
void (*)(const DbEnv *, const char *, const char *));
@@ -284,7 +294,8 @@ public:
virtual int set_heapsize(u_int32_t, u_int32_t);
virtual int set_heap_regionsize(u_int32_t);
virtual int set_h_compare(h_compare_fcn_type); /*deprecated*/
- virtual int set_h_compare(int (*)(Db *, const Dbt *, const Dbt *));
+ virtual int set_h_compare(
+ int (*)(Db *, const Dbt *, const Dbt *, size_t *));
virtual int set_h_ffactor(u_int32_t);
virtual int set_h_hash(h_hash_fcn_type); /*deprecated*/
virtual int set_h_hash(u_int32_t (*)(Db *, const void *, u_int32_t));
@@ -383,16 +394,16 @@ public:
int (*associate_callback_)(Db *, const Dbt *, const Dbt *, Dbt *);
int (*associate_foreign_callback_)
(Db *, const Dbt *, Dbt *, const Dbt *, int *);
- int (*bt_compare_callback_)(Db *, const Dbt *, const Dbt *);
+ int (*bt_compare_callback_)(Db *, const Dbt *, const Dbt *, size_t *);
int (*bt_compress_callback_)(
Db *, const Dbt *, const Dbt *, const Dbt *, const Dbt *, Dbt *);
int (*bt_decompress_callback_)(
Db *, const Dbt *, const Dbt *, Dbt *, Dbt *, Dbt *);
size_t (*bt_prefix_callback_)(Db *, const Dbt *, const Dbt *);
u_int32_t (*db_partition_callback_)(Db *, Dbt *);
- int (*dup_compare_callback_)(Db *, const Dbt *, const Dbt *);
+ int (*dup_compare_callback_)(Db *, const Dbt *, const Dbt *, size_t *);
void (*feedback_callback_)(Db *, int, int);
- int (*h_compare_callback_)(Db *, const Dbt *, const Dbt *);
+ int (*h_compare_callback_)(Db *, const Dbt *, const Dbt *, size_t *);
u_int32_t (*h_hash_callback_)(Db *, const void *, u_int32_t);
};
@@ -407,6 +418,7 @@ public:
int close();
int cmp(Dbc *other_csr, int *result, u_int32_t flags);
int count(db_recno_t *countp, u_int32_t flags);
+ int db_stream(DbStream **dbsp, u_int32_t flags);
int del(u_int32_t flags);
int dup(Dbc** cursorp, u_int32_t flags);
int get(Dbt* key, Dbt *data, u_int32_t flags);
@@ -527,6 +539,10 @@ public:
int (*)(DbEnv *, const char *, void *));
virtual int get_backup_config(DB_BACKUP_CONFIG, u_int32_t *);
virtual int set_backup_config(DB_BACKUP_CONFIG, u_int32_t);
+ virtual int get_blob_dir(const char **);
+ virtual int set_blob_dir(const char *);
+ virtual int get_blob_threshold(u_int32_t *);
+ virtual int set_blob_threshold(u_int32_t, u_int32_t);
virtual int get_cachesize(u_int32_t *, u_int32_t *, int *);
virtual int set_cachesize(u_int32_t, u_int32_t, int);
virtual int get_cache_max(u_int32_t *, u_int32_t *);
@@ -761,10 +777,16 @@ public:
virtual int rep_set_priority(u_int32_t priority);
virtual int rep_get_timeout(int which, db_timeout_t *timeout);
virtual int rep_set_timeout(int which, db_timeout_t timeout);
+ virtual int rep_set_view(int (*)(DbEnv *,
+ const char *, int *, u_int32_t));
virtual int repmgr_channel(int eid, DbChannel **channel,
u_int32_t flags);
virtual int repmgr_get_ack_policy(int *policy);
virtual int repmgr_set_ack_policy(int policy);
+ virtual int repmgr_get_incoming_queue_max(u_int32_t *gbytesp,
+ u_int32_t *bytesp);
+ virtual int repmgr_set_incoming_queue_max(u_int32_t gbytes,
+ u_int32_t bytes);
virtual int repmgr_local_site(DbSite **site);
virtual int repmgr_msg_dispatch(void (*) (DbEnv *,
DbChannel *, Dbt *, u_int32_t, u_int32_t), u_int32_t flags);
@@ -824,6 +846,8 @@ public:
static int _backup_write_intercept(DB_ENV *dbenv, u_int32_t off_gbytes,
u_int32_t off_bytes, u_int32_t size, u_int8_t *buf, void *handle);
static void _paniccall_intercept(DB_ENV *dbenv, int errval);
+ static int _partial_rep_intercept(DB_ENV *dbenv,
+ const char *name, int *result, u_int32_t flags);
static void _feedback_intercept(DB_ENV *dbenv, int opcode, int pct);
static void _event_func_intercept(DB_ENV *dbenv, u_int32_t, void *);
static int _isalive_intercept(DB_ENV *dbenv, pid_t pid,
@@ -872,6 +896,7 @@ private:
void (*feedback_callback_)(DbEnv *, int, int);
void (*message_callback_)(const DbEnv *, const char *);
void (*paniccall_callback_)(DbEnv *, int);
+ int (*partial_rep_callback_)(DbEnv *, const char *, int *, u_int32_t);
void (*event_func_callback_)(DbEnv *, u_int32_t, void *);
int (*rep_send_callback_)(DbEnv *, const Dbt *, const Dbt *,
const DbLsn *, int, u_int32_t);
@@ -1057,9 +1082,9 @@ public:
int stat(DB_SEQUENCE_STAT **sp, u_int32_t flags);
int stat_print(u_int32_t flags);
- int get(DbTxn *txnid, int32_t delta, db_seq_t *retp, u_int32_t flags);
- int get_cachesize(int32_t *sizep);
- int set_cachesize(int32_t size);
+ int get(DbTxn *txnid, u_int32_t delta, db_seq_t *retp, u_int32_t flags);
+ int get_cachesize(u_int32_t *sizep);
+ int set_cachesize(u_int32_t size);
int get_flags(u_int32_t *flagsp);
int set_flags(u_int32_t flags);
int get_range(db_seq_t *minp, db_seq_t *maxp);
@@ -1137,6 +1162,34 @@ private:
};
//
+// DbStream
+//
+class _exported DbStream : protected DB_STREAM
+{
+ friend class Dbc;
+
+public:
+ int close(u_int32_t flags);
+ int read(Dbt *data, db_off_t offset, u_int32_t size, u_int32_t flags);
+ int size(db_off_t *size, u_int32_t flags);
+ int write(Dbt *data, db_off_t offset, u_int32_t flags);
+
+private:
+ // No data is permitted in this class (see comment at top)
+
+ // Note: use Dbc::dbstream() to get pointers to a DbStream,
+ // and call Dbstream::close() rather than delete to release them.
+ //
+ DbStream();
+ ~DbStream();
+
+ // no copying
+ DbStream(const DbStream &);
+ DbStream &operator = (const DbStream &);
+
+};
+
+//
// Transaction
//
class _exported DbTxn
@@ -1245,6 +1298,7 @@ class _exported Dbt : private DBT
friend class DbEnv;
friend class DbLogc;
friend class DbSequence;
+ friend class DbStream;
public:
// key/data