diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2008-03-07 14:05:28 +0200 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2008-03-07 14:05:28 +0200 |
commit | 2414d522bcfbd0ba9e6115eb7e2a3ba056ac2795 (patch) | |
tree | a995b380eb055a041232681c626cef5af30dccfc /db/libdb_java | |
parent | 501197e5ef5ce8687aaf8bd4352f296bb7a5c0e8 (diff) | |
download | librpm-tizen-2414d522bcfbd0ba9e6115eb7e2a3ba056ac2795.tar.gz librpm-tizen-2414d522bcfbd0ba9e6115eb7e2a3ba056ac2795.tar.bz2 librpm-tizen-2414d522bcfbd0ba9e6115eb7e2a3ba056ac2795.zip |
Remove BDB copy from the repository, it doesn't belong there
Diffstat (limited to 'db/libdb_java')
-rw-r--r-- | db/libdb_java/README | 190 | ||||
-rw-r--r-- | db/libdb_java/db.i | 1639 | ||||
-rw-r--r-- | db/libdb_java/db_java.i | 679 | ||||
-rw-r--r-- | db/libdb_java/db_java_wrap.c | 10102 | ||||
-rw-r--r-- | db/libdb_java/java-post.pl | 23 | ||||
-rw-r--r-- | db/libdb_java/java_callbacks.i | 567 | ||||
-rw-r--r-- | db/libdb_java/java_except.i | 180 | ||||
-rw-r--r-- | db/libdb_java/java_stat.i | 176 | ||||
-rw-r--r-- | db/libdb_java/java_stat_auto.c | 329 | ||||
-rw-r--r-- | db/libdb_java/java_typemaps.i | 757 | ||||
-rw-r--r-- | db/libdb_java/java_util.i | 995 |
11 files changed, 0 insertions, 15637 deletions
diff --git a/db/libdb_java/README b/db/libdb_java/README deleted file mode 100644 index 0a05e5851..000000000 --- a/db/libdb_java/README +++ /dev/null @@ -1,190 +0,0 @@ -Berkeley DB's Java API -$Id: README,v 12.2 2006/08/24 14:46:10 bostic Exp $ - -Berkeley DB's Java API is now generated with SWIG -(http://www.swig.org). This document describes how SWIG is used - -what we trust it to do, what things we needed to work around. - - -Overview -======== - -SWIG is a tool that generates wrappers around native (C/C++) APIs for -various languages (mainly scripting languages) including Java. - -By default, SWIG creates an API in the target language that exactly -replicates the native API (for example, each pointer type in the API -is wrapped as a distinct type in the language). Although this -simplifies the wrapper layer (type translation is trivial), it usually -doesn't result in natural API in the target language. - -A further constraint for Berkeley DB's Java API was backwards -compatibility. The original hand-coded Java API is in widespread use, -and included many design decisions about how native types should be -represented in Java. As an example, callback functions are -represented by Java interfaces that applications using Berkeley DB -could implement. The SWIG implementation was required to maintain -backwards compatibility for those applications. - - -Running SWIG -============ - -The simplest use of SWIG is to simply run it with a C include file as -input. SWIG parses the file and generates wrapper code for the target -language. For Java, this includes a Java class for each C struct and -a C source file containing the Java Native Interface (JNI) function -calls for each native method. - -The s_swig shell script in db/dist runs SWIG, and then post-processes -each Java source file with the sed commands in -libdb_java/java-post.sed. The Java sources are placed in -java/src/com/sleepycat/db, and the native wrapper code is in a single -file in libdb_java/db_java_wrap.c. - -The post-processing step modifies code in ways that is difficult with -SWIG (given my current level of knowledge). This includes changing -some access modifiers to hide some of the implementation methods, -selectively adding "throws" clauses to methods, and adding calls to -"initialize" methods in Db and DbEnv after they are constructed (more -below on what these aclls do). - -In addition to the source code generated by SWIG, some of the Java -classes are written by hand, and constants and code to fill statistics -structures are generated by the script dist/s_java. The native -statistics code is in libdb_java/java_stat_auto.c, and is compiled -into the db_java_wrap object file with a #include directive. This -allows most functions in that object to be static, which encourages -compiler inlining and reduces the number of symbols we export. - - -The Implementation -================== - -For the reasons mentioned above, Berkeley DB requires a more -sophisticated mapping between the native API and Java, so additional -SWIG directives are added to the input. In particular: - -* The general intention is for db.i to contain the full DB API (just - like db.h). As much as possible, this file is kept Java independent - so that it can be updated easily when the API changes. SWIG doesn't - have any builtin rules for how to handle function pointers in a - struct, so each DB method must be added in a SWIG "%extend" block - which includes the method signature and a call to the method. - - * SWIG's automatically generated function names happen to collide - with Berkeley DB's naming convention. For example, in a SWIG class - called __db, a method called "open" would result in a wrapper - function called "__db_open", which already exists in DB. This is - another reason why making these static functions is important. - -* The main Java support starts in db_java.i - this file includes all - Java code that is explicitly inserted into the generated classes, - and is responsible for defining object lifecycles (handling - allocation and cleanup). - - * Methods that need to be wrapped for special handling in Java code - are renamed with a trailing zero (e.g., close becomes close0). - This is invisible to applications. - - * Most DB classes that are wrapped have method calls that imply the - cleanup of any native resources associated with the Java object - (for example, Db.close or DbTxn.abort). These methods are wrapped - so that if the object is accessed after the native part has been - destroyed, an exception is thrown rather than a trap that crashes - the JVM. - - * Db and DbEnv initialization is more complex: a global reference is - stored in the corresponding struct so that native code can - efficiently map back to Java code. In addition, if a Db is - created without an environment (i.e., in a private environment), - the initialization wraps the internal DbEnv to simplify handling - of various Db methods that just call the corresponding DbEnv - method (like err, errx, etc.). It is important that the global - references are cleaned up before the DB and DB_ENV handles are - closed, so the Java objects can be garbage collected. - - * In the case of DbLock and DbLsn, there are no such methods. In - these cases, there is a finalize method that does the appropriate - cleanup. No other classes have finalize methods (in particular, - the Dbt class is now implemented entirely in Java, so no - finalization is necessary). - -* Overall initialization code, including the System.loadLibrary call, - is in java_util.i. This includes looking up all class, field and - method handles once so that execution is not slowed down by repeated - runtime type queries. - -* Exception handling is in java_except.i. The main non-obvious design - choice was to create a db_ret_t type for methods that return an - error code as an int in the C API, but return void in the Java API - (and throw exceptions on error). - - * The only other odd case with exceptions is DbMemoryException - - this is thrown as normal when a call returns ENOMEM, but there is - special handling for the case where a Dbt with DB_DBT_USERMEM is - not big enough to handle a result: in this case, the Dbt handling - code calls the method update_dbt on the exception that is about to - be thrown to register the failed Dbt in the exception. - -* Statistics handling is in java_stat.i - this mainly just hooks into - the automatically-generated code in java_stat_auto.c. - -* Callbacks: the general approach is that Db and DbEnv maintain - references to the objects that handle each callback, and have a - helper method for each call. This is primarily to simplify the - native code, and performs better than more complex native code. - - * One difference with the new approach is that the implementation is - more careful about calling DeleteLocalRef on objects created for - callbacks. This is particularly important for callbacks like - bt_compare, which may be called repeatedly from native code. - Without the DeleteLocalRef calls, the Java objects that are - created can not be collected until the original call returns. - -* Most of the rest of the code is in java_typemaps.i. A typemap is a - rule describing how a native type is mapped onto a Java type for - parameters and return values. These handle most of the complexity - of creating exactly the Java API we want. - - * One of the main areas of complexity is Dbt handling. The approach - taken is to accept whatever data is passed in by the application, - pass that to native code, and reflect any changes to the native - DBT back into the Java object. In other words, the Dbt typemaps - don't replicate DB's rules about whether Dbts will be modified or - not - they just pass the data through. - - * As noted above, when a Dbt is "released" (i.e., no longer needed - in native code), one of the check is whether a DbMemoryException - is pending, and if so, whether this Dbt might be the cause. In - that case, the Dbt is added to the exception via the "update_dbt" - method. - -* Constant handling has been simplified by making DbConstants an - interface. This allows the Db class to inherit the constants, and - most can be inlined by javac. - - * The danger here is if applications are compiled against one - version of db.jar, but run against another. This danger existed - previously, but was partly ameliorated by a separation of - constants into "case" and "non-case" constants (the non-case - constants were arranged so they could not be inlined). The only - complete solution to this problem is for applications to check the - version returned by DbEnv.get_version* versus the Db.DB_VERSION* - constants. - - -Application-visible changes -=========================== - -* The new API is around 5x faster for many operations. - -* Some internal methods and constructors that were previously public - have been hidden or removed. - -* A few methods that were inconsistent have been cleaned up (e.g., - Db.close now returns void, was an int but always zero). The - synchronized attributed has been toggled on some methods - this is - an attempt to prevent multi-threaded applications shooting - themselves in the foot by calling close() or similar methods - concurrently from multiple threads. diff --git a/db/libdb_java/db.i b/db/libdb_java/db.i deleted file mode 100644 index 8f1d3307c..000000000 --- a/db/libdb_java/db.i +++ /dev/null @@ -1,1639 +0,0 @@ -%{ -#include "db_config.h" -#include "db_int.h" -#include "dbinc/txn.h" - -#ifdef HAVE_CRYPTO -#define CRYPTO_ONLY(x) (x); -#else -#define CRYPTO_ONLY(x) -#endif -%} - -#if defined(SWIGJAVA) -%include "db_java.i" -#elif defined(SWIGCSHARP) -%include "db_csharp.i" -#endif - -typedef unsigned char u_int8_t; -typedef long int32_t; -typedef long long db_seq_t; -typedef long long pid_t; -#ifndef SWIGJAVA -typedef long long db_threadid_t; -#endif -typedef unsigned long u_int32_t; -typedef u_int32_t db_recno_t; /* Record number type. */ -typedef u_int32_t db_timeout_t; /* Type of a timeout. */ - -typedef int db_recops; -typedef int db_lockmode_t; -typedef int DBTYPE; -typedef int DB_CACHE_PRIORITY; - -/* Fake typedefs for SWIG */ -typedef int db_ret_t; /* An int that is mapped to a void */ -typedef int int_bool; /* An int that is mapped to a boolean */ - -%{ -typedef int db_ret_t; -typedef int int_bool; - -struct __db_lk_conflicts { - u_int8_t *lk_conflicts; - int lk_modes; -}; - -struct __db_out_stream { - void *handle; - int (*callback) __P((void *, const void *)); -}; - -struct __db_repmgr_sites { - DB_REPMGR_SITE *sites; - u_int32_t nsites; -}; - -#define Db __db -#define Dbc __dbc -#define Dbt __db_dbt -#define DbEnv __db_env -#define DbLock __db_lock_u -#define DbLogc __db_log_cursor -#define DbLsn __db_lsn -#define DbMpoolFile __db_mpoolfile -#define DbSequence __db_sequence -#define DbTxn __db_txn - -/* Suppress a compilation warning for an unused symbol */ -void *unused = SWIG_JavaThrowException; -%} - -struct Db; typedef struct Db DB; -struct Dbc; typedef struct Dbc DBC; -struct Dbt; typedef struct Dbt DBT; -struct DbEnv; typedef struct DbEnv DB_ENV; -struct DbLock; typedef struct DbLock DB_LOCK; -struct DbLogc; typedef struct DbLogc DB_LOGC; -struct DbLsn; typedef struct DbLsn DB_LSN; -struct DbMpoolFile; typedef struct DbMpoolFile DB_MPOOLFILE; -struct DbSequence; typedef struct Db DB_SEQUENCE; -struct DbTxn; typedef struct DbTxn DB_TXN; - -/* Methods that allocate new objects */ -%newobject Db::join(DBC **curslist, u_int32_t flags); -%newobject Db::dup(u_int32_t flags); -%newobject DbEnv::lock_get(u_int32_t locker, - u_int32_t flags, const DBT *object, db_lockmode_t lock_mode); -%newobject DbEnv::log_cursor(u_int32_t flags); - -struct Db -{ -%extend { - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - Db(DB_ENV *dbenv, u_int32_t flags) { - DB *self = NULL; - errno = db_create(&self, dbenv, flags); - if (errno == 0 && dbenv == NULL) - self->dbenv->dbt_usercopy = __dbj_dbt_memcopy; - return self; - } - - JAVA_EXCEPT(DB_RETOK_STD, DB2JDBENV) - db_ret_t associate(DB_TXN *txnid, DB *secondary, - int (*callback)(DB *, const DBT *, const DBT *, DBT *), - u_int32_t flags) { - return self->associate(self, txnid, secondary, callback, flags); - } - - db_ret_t compact(DB_TXN *txnid, DBT *start, DBT *stop, - DB_COMPACT *c_data, u_int32_t flags, DBT *end) { - return self->compact(self, txnid, start, stop, c_data, flags, - end); - } - - /* - * Should probably be db_ret_t, but maintaining backwards compatibility - * for now. - */ - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - int close(u_int32_t flags) { - errno = self->close(self, flags); - return errno; - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, DB2JDBENV) - DBC *cursor(DB_TXN *txnid, u_int32_t flags) { - DBC *cursorp = NULL; - errno = self->cursor(self, txnid, &cursorp, flags); - return cursorp; - } - - JAVA_EXCEPT(DB_RETOK_DBDEL, DB2JDBENV) - int del(DB_TXN *txnid, DBT *key, u_int32_t flags) { - return self->del(self, txnid, key, flags); - } - - JAVA_EXCEPT_NONE - void err(int error, const char *message) { - self->err(self, error, message); - } - - void errx(const char *message) { - self->errx(self, message); - } - - JAVA_EXCEPT(DB_RETOK_EXISTS, DB2JDBENV) - int exists(DB_TXN *txnid, DBT *key, u_int32_t flags) { - return self->exists(self, txnid, key, flags); - } - -#ifndef SWIGJAVA - int fd() { - int ret = 0; - errno = self->fd(self, &ret); - return ret; - } -#endif - - JAVA_EXCEPT(DB_RETOK_DBGET, DB2JDBENV) - int get(DB_TXN *txnid, DBT *key, DBT *data, u_int32_t flags) { - return self->get(self, txnid, key, data, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, DB2JDBENV) - int_bool get_byteswapped() { - int ret = 0; - errno = self->get_byteswapped(self, &ret); - return ret; - } - - jlong get_cachesize() { - u_int32_t gbytes = 0, bytes = 0; - errno = self->get_cachesize(self, &gbytes, &bytes, NULL); - return (jlong)gbytes * GIGABYTE + bytes; - } - - u_int32_t get_cachesize_ncache() { - int ret = 0; - errno = self->get_cachesize(self, NULL, NULL, &ret); - return ret; - } - - const char *get_filename() { - const char *ret = NULL; - errno = self->get_dbname(self, &ret, NULL); - return ret; - } - - const char *get_dbname() { - const char *ret = NULL; - errno = self->get_dbname(self, NULL, &ret); - return ret; - } - - u_int32_t get_encrypt_flags() { - u_int32_t ret = 0; - CRYPTO_ONLY(errno = self->get_encrypt_flags(self, &ret)) - return ret; - } - - /* - * This method is implemented in Java to avoid wrapping the object on - * every call. - */ -#ifndef SWIGJAVA - DB_ENV *get_env() { - DB_ENV *env = NULL; - errno = self->get_env(self, &env); - return env; - } - - const char *get_errpfx() { - const char *ret = NULL; - errno = 0; - self->get_errpfx(self, &ret); - return ret; - } -#endif - - u_int32_t get_flags() { - u_int32_t ret = 0; - errno = self->get_flags(self, &ret); - return ret; - } - - int get_lorder() { - int ret = 0; - errno = self->get_lorder(self, &ret); - return ret; - } - - DB_MPOOLFILE *get_mpf() { - errno = 0; - return self->get_mpf(self); - } - - u_int32_t get_open_flags() { - u_int32_t ret = 0; - errno = self->get_open_flags(self, &ret); - return ret; - } - - u_int32_t get_pagesize() { - u_int32_t ret = 0; - errno = self->get_pagesize(self, &ret); - return ret; - } - - u_int32_t get_bt_minkey() { - u_int32_t ret = 0; - errno = self->get_bt_minkey(self, &ret); - return ret; - } - - u_int32_t get_h_ffactor() { - u_int32_t ret = 0; - errno = self->get_h_ffactor(self, &ret); - return ret; - } - - u_int32_t get_h_nelem() { - u_int32_t ret = 0; - errno = self->get_h_nelem(self, &ret); - return ret; - } - - int get_re_delim() { - int ret = 0; - errno = self->get_re_delim(self, &ret); - return ret; - } - - DB_CACHE_PRIORITY get_priority() { - DB_CACHE_PRIORITY ret; - errno = self->get_priority(self, &ret); - return ret; - } - - u_int32_t get_re_len() { - u_int32_t ret = 0; - errno = self->get_re_len(self, &ret); - return ret; - } - - int get_re_pad() { - int ret = 0; - errno = self->get_re_pad(self, &ret); - return ret; - } - - const char *get_re_source() { - const char *ret = NULL; - errno = self->get_re_source(self, &ret); - return ret; - } - - u_int32_t get_q_extentsize() { - u_int32_t ret = 0; - errno = self->get_q_extentsize(self, &ret); - return ret; - } - - JAVA_EXCEPT_NONE - int_bool get_multiple() { - return self->get_multiple(self); - } - - int_bool get_transactional() { - return self->get_transactional(self); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, DB2JDBENV) - DBTYPE get_type() { - DBTYPE type = (DBTYPE)0; - errno = self->get_type(self, &type); - return type; - } - - DBC *join(DBC **curslist, u_int32_t flags) { - DBC *dbcp = NULL; - errno = self->join(self, curslist, &dbcp, flags); - return dbcp; - } - - JAVA_EXCEPT(DB_RETOK_STD, DB2JDBENV) - db_ret_t key_range(DB_TXN *txnid, DBT *key, DB_KEY_RANGE *key_range, - u_int32_t flags) { - return self->key_range(self, txnid, key, key_range, flags); - } - - db_ret_t open(DB_TXN *txnid, const char *file, const char *database, - DBTYPE type, u_int32_t flags, int mode) { - return self->open(self, txnid, file, database, - type, flags, mode); - } - - JAVA_EXCEPT(DB_RETOK_DBGET, DB2JDBENV) - int pget(DB_TXN *txnid, DBT *key, DBT *pkey, DBT *data, - u_int32_t flags) { - return self->pget(self, txnid, key, pkey, data, flags); - } - - JAVA_EXCEPT(DB_RETOK_DBPUT, DB2JDBENV) - int put(DB_TXN *txnid, DBT *key, DBT *data, u_int32_t flags) { - return self->put(self, txnid, key, data, flags); - } - - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t remove(const char *file, const char *database, - u_int32_t flags) { - return self->remove(self, file, database, flags); - } - - db_ret_t rename(const char *file, const char *database, - const char *newname, u_int32_t flags) { - return self->rename(self, file, database, newname, flags); - } - - JAVA_EXCEPT(DB_RETOK_STD, DB2JDBENV) - db_ret_t set_append_recno( - int (*db_append_recno_fcn)(DB *, DBT *, db_recno_t)) { - return self->set_append_recno(self, db_append_recno_fcn); - } - - db_ret_t set_bt_compare( - int (*bt_compare_fcn)(DB *, const DBT *, const DBT *)) { - return self->set_bt_compare(self, bt_compare_fcn); - } - - db_ret_t set_bt_minkey(u_int32_t bt_minkey) { - return self->set_bt_minkey(self, bt_minkey); - } - - db_ret_t set_bt_prefix( - size_t (*bt_prefix_fcn)(DB *, const DBT *, const DBT *)) { - return self->set_bt_prefix(self, bt_prefix_fcn); - } - - db_ret_t set_cachesize(jlong bytes, int ncache) { - return self->set_cachesize(self, - (u_int32_t)(bytes / GIGABYTE), - (u_int32_t)(bytes % GIGABYTE), ncache); - } - - db_ret_t set_dup_compare( - int (*dup_compare_fcn)(DB *, const DBT *, const DBT *)) { - return self->set_dup_compare(self, dup_compare_fcn); - } - - db_ret_t set_encrypt(const char *passwd, u_int32_t flags) { - return self->set_encrypt(self, passwd, flags); - } - - JAVA_EXCEPT_NONE -#ifndef SWIGJAVA - void set_errcall( - void (*db_errcall_fcn)(const DB_ENV *, const char *, const char *)) { - self->set_errcall(self, db_errcall_fcn); - } - - void set_errpfx(const char *errpfx) { - self->set_errpfx(self, errpfx); - } -#endif /* SWIGJAVA */ - - JAVA_EXCEPT(DB_RETOK_STD, DB2JDBENV) - db_ret_t set_feedback(void (*db_feedback_fcn)(DB *, int, int)) { - return self->set_feedback(self, db_feedback_fcn); - } - - db_ret_t set_flags(u_int32_t flags) { - return self->set_flags(self, flags); - } - - db_ret_t set_h_compare( - int (*h_compare_fcn)(DB *, const DBT *, const DBT *)) { - return self->set_h_compare(self, h_compare_fcn); - } - - db_ret_t set_h_ffactor(u_int32_t h_ffactor) { - return self->set_h_ffactor(self, h_ffactor); - } - - db_ret_t set_h_hash( - u_int32_t (*h_hash_fcn)(DB *, const void *, u_int32_t)) { - return self->set_h_hash(self, h_hash_fcn); - } - - db_ret_t set_h_nelem(u_int32_t h_nelem) { - return self->set_h_nelem(self, h_nelem); - } - - db_ret_t set_lorder(int lorder) { - return self->set_lorder(self, lorder); - } - -#ifndef SWIGJAVA - void set_msgcall(void (*db_msgcall_fcn)(const DB_ENV *, const char *)) { - self->set_msgcall(self, db_msgcall_fcn); - } -#endif /* SWIGJAVA */ - - db_ret_t set_pagesize(u_int32_t pagesize) { - return self->set_pagesize(self, pagesize); - } - -#ifndef SWIGJAVA - db_ret_t set_paniccall(void (* db_panic_fcn)(DB_ENV *, int)) { - return self->set_paniccall(self, db_panic_fcn); - } -#endif /* SWIGJAVA */ - - db_ret_t set_priority(DB_CACHE_PRIORITY priority) { - return self->set_priority(self, priority); - } - - db_ret_t set_re_delim(int re_delim) { - return self->set_re_delim(self, re_delim); - } - - db_ret_t set_re_len(u_int32_t re_len) { - return self->set_re_len(self, re_len); - } - - db_ret_t set_re_pad(int re_pad) { - return self->set_re_pad(self, re_pad); - } - - db_ret_t set_re_source(char *source) { - return self->set_re_source(self, source); - } - - db_ret_t set_q_extentsize(u_int32_t extentsize) { - return self->set_q_extentsize(self, extentsize); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, DB2JDBENV) - void *stat(DB_TXN *txnid, u_int32_t flags) { - void *statp = NULL; - errno = self->stat(self, txnid, &statp, flags); - return statp; - } - - JAVA_EXCEPT(DB_RETOK_STD, DB2JDBENV) - db_ret_t sync(u_int32_t flags) { - return self->sync(self, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, DB2JDBENV) - int truncate(DB_TXN *txnid, u_int32_t flags) { - u_int32_t count = 0; - errno = self->truncate(self, txnid, &count, flags); - return count; - } - - JAVA_EXCEPT(DB_RETOK_STD, DB2JDBENV) - db_ret_t upgrade(const char *file, u_int32_t flags) { - return self->upgrade(self, file, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - int_bool verify(const char *file, const char *database, - struct __db_out_stream outfile, u_int32_t flags) { - /* - * We can't easily #include "dbinc/db_ext.h" because of name - * clashes, so we declare this explicitly. - */ - extern int __db_verify_internal __P((DB *, const char *, const - char *, void *, int (*)(void *, const void *), u_int32_t)); - errno = __db_verify_internal(self, file, database, - outfile.handle, outfile.callback, flags); - if (errno == DB_VERIFY_BAD) { - errno = 0; - return 0; - } else - return 1; - } -} -}; - -struct Dbc -{ -%extend { - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t close() { - return self->close(self); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, DBC2JDBENV) - db_recno_t count(u_int32_t flags) { - db_recno_t count = 0; - errno = self->count(self, &count, flags); - return count; - } - - JAVA_EXCEPT(DB_RETOK_DBCDEL, DBC2JDBENV) - int del(u_int32_t flags) { - return self->del(self, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, DBC2JDBENV) - DBC *dup(u_int32_t flags) { - DBC *newcurs = NULL; - errno = self->dup(self, &newcurs, flags); - return newcurs; - } - - JAVA_EXCEPT(DB_RETOK_DBCGET, DBC2JDBENV) - int get(DBT* key, DBT *data, u_int32_t flags) { - return self->get(self, key, data, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, DBC2JDBENV) - DB_CACHE_PRIORITY get_priority() { - DB_CACHE_PRIORITY ret; - errno = self->get_priority(self, &ret); - return ret; - } - - JAVA_EXCEPT(DB_RETOK_DBCGET, DBC2JDBENV) - int pget(DBT* key, DBT* pkey, DBT *data, u_int32_t flags) { - return self->pget(self, key, pkey, data, flags); - } - - JAVA_EXCEPT(DB_RETOK_DBCPUT, DBC2JDBENV) - int put(DBT* key, DBT *data, u_int32_t flags) { - return self->put(self, key, data, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, DBC2JDBENV) - db_ret_t set_priority(DB_CACHE_PRIORITY priority) { - return self->set_priority(self, priority); - } -} -}; - -struct DbEnv -{ -%extend { - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - DbEnv(u_int32_t flags) { - DB_ENV *self = NULL; - errno = db_env_create(&self, flags); - if (errno == 0) - self->dbt_usercopy = __dbj_dbt_memcopy; - return self; - } - - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t close(u_int32_t flags) { - return self->close(self, flags); - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t dbremove(DB_TXN *txnid, const char *file, const char *database, - u_int32_t flags) { - return self->dbremove(self, txnid, file, database, flags); - } - - db_ret_t dbrename(DB_TXN *txnid, const char *file, const char *database, - const char *newname, u_int32_t flags) { - return self->dbrename(self, - txnid, file, database, newname, flags); - } - - JAVA_EXCEPT_NONE - void err(int error, const char *message) { - self->err(self, error, message); - } - - void errx(const char *message) { - self->errx(self, message); - } - -#ifndef SWIGJAVA - u_int32_t get_thread_count() { - u_int32_t ret; - errno = self->get_thread_count(self, &ret); - return ret; - } - - pid_t getpid() { - pid_t ret; - db_threadid_t junk; - __os_id(self, &ret, &junk); - return ret; - } - - db_threadid_t get_threadid() { - pid_t junk; - db_threadid_t ret; - __os_id(self, &junk, &ret); - return ret; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t failchk(u_int32_t flags) { - return self->failchk(self, flags); - } - - db_ret_t set_isalive( - int (*isalive_fcn)(DB_ENV *, pid_t, db_threadid_t)) { - return self->set_isalive(self, isalive_fcn); - } - - db_ret_t set_thread_count(u_int32_t count) { - return self->set_thread_count(self, count); - } - - db_ret_t set_thread_id(void (*thread_id_fcn)(DB_ENV *, pid_t *, - db_threadid_t *)) { - return self->set_thread_id(self, thread_id_fcn); - } - - db_ret_t set_thread_id_string(char *(*thread_id_string_fcn)(DB_ENV *, - pid_t, db_threadid_t, char *)) { - return self->set_thread_id_string(self, thread_id_string_fcn); - } -#endif - - DB_TXN *cdsgroup_begin() { - DB_TXN *tid = NULL; - errno = self->cdsgroup_begin(self, &tid); - return tid; - } - - db_ret_t fileid_reset(const char *file, u_int32_t flags) { - return self->fileid_reset(self, file, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - const char **get_data_dirs() { - const char **ret; - errno = self->get_data_dirs(self, &ret); - return ret; - } - - u_int32_t get_encrypt_flags() { - u_int32_t ret = 0; - CRYPTO_ONLY(errno = self->get_encrypt_flags(self, &ret)) - return ret; - } - -#ifndef SWIGJAVA - const char *get_errpfx() { - const char *ret; - errno = 0; - self->get_errpfx(self, &ret); - return ret; - } -#endif /* SWIGJAVA */ - - u_int32_t get_flags() { - u_int32_t ret; - errno = self->get_flags(self, &ret); - return ret; - } - - const char *get_home() { - const char *ret; - errno = self->get_home(self, &ret); - return ret; - } - - u_int32_t get_open_flags() { - u_int32_t ret; - errno = self->get_open_flags(self, &ret); - return ret; - } - - long get_shm_key() { - long ret; - errno = self->get_shm_key(self, &ret); - return ret; - } - - const char *get_tmp_dir() { - const char *ret; - errno = self->get_tmp_dir(self, &ret); - return ret; - } - - int_bool get_verbose(u_int32_t which) { - int ret; - errno = self->get_verbose(self, which, &ret); - return ret; - } - - JAVA_EXCEPT_NONE - int_bool is_bigendian() { - return self->is_bigendian(); - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t lsn_reset(const char *file, u_int32_t flags) { - return self->lsn_reset(self, file, flags); - } - - db_ret_t open(const char *db_home, u_int32_t flags, int mode) { - return self->open(self, db_home, flags, mode); - } - - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t remove(const char *db_home, u_int32_t flags) { - return self->remove(self, db_home, flags); - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t set_cachesize(jlong bytes, int ncache) { - return self->set_cachesize(self, - (u_int32_t)(bytes / GIGABYTE), - (u_int32_t)(bytes % GIGABYTE), ncache); - } - - db_ret_t set_cache_max(jlong bytes) { - return self->set_cache_max(self, - (u_int32_t)(bytes / GIGABYTE), - (u_int32_t)(bytes % GIGABYTE)); - } - - db_ret_t set_data_dir(const char *dir) { - return self->set_data_dir(self, dir); - } - - db_ret_t set_intermediate_dir(int mode, u_int32_t flags) { - return self->set_intermediate_dir(self, mode, flags); - } - - db_ret_t set_encrypt(const char *passwd, u_int32_t flags) { - return self->set_encrypt(self, passwd, flags); - } - - JAVA_EXCEPT_NONE - void set_errcall(void (*db_errcall_fcn)(const DB_ENV *, const char *, - const char *)) { - self->set_errcall(self, db_errcall_fcn); - } - -#ifndef SWIGJAVA - void set_errpfx(const char *errpfx) { - self->set_errpfx(self, errpfx); - } -#endif - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t set_flags(u_int32_t flags, int_bool onoff) { - return self->set_flags(self, flags, onoff); - } - - db_ret_t set_feedback(void (*env_feedback_fcn)(DB_ENV *, int, int)) { - return self->set_feedback(self, env_feedback_fcn); - } - - db_ret_t set_mp_max_openfd(int maxopenfd) { - return self->set_mp_max_openfd(self, maxopenfd); - } - - db_ret_t set_mp_max_write(int maxwrite, db_timeout_t maxwrite_sleep) { - return self->set_mp_max_write(self, maxwrite, maxwrite_sleep); - } - - db_ret_t set_mp_mmapsize(size_t mp_mmapsize) { - return self->set_mp_mmapsize(self, mp_mmapsize); - } - - JAVA_EXCEPT_NONE - void set_msgcall(void (*db_msgcall_fcn)(const DB_ENV *, const char *)) { - self->set_msgcall(self, db_msgcall_fcn); - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t set_paniccall(void (*db_panic_fcn)(DB_ENV *, int)) { - return self->set_paniccall(self, db_panic_fcn); - } - - db_ret_t set_rpc_server(char *host, - long cl_timeout, long sv_timeout, u_int32_t flags) { - return self->set_rpc_server(self, NULL, host, - cl_timeout, sv_timeout, flags); - } - - db_ret_t set_shm_key(long shm_key) { - return self->set_shm_key(self, shm_key); - } - - db_ret_t set_timeout(db_timeout_t timeout, u_int32_t flags) { - return self->set_timeout(self, timeout, flags); - } - - db_ret_t set_tmp_dir(const char *dir) { - return self->set_tmp_dir(self, dir); - } - - db_ret_t set_tx_max(u_int32_t max) { - return self->set_tx_max(self, max); - } - - db_ret_t set_app_dispatch( - int (*tx_recover)(DB_ENV *, DBT *, DB_LSN *, db_recops)) { - return self->set_app_dispatch(self, tx_recover); - } - - db_ret_t set_event_notify( - void (*event_notify)(DB_ENV *, u_int32_t, void *)) { - return self->set_event_notify(self, event_notify); - } - - db_ret_t set_tx_timestamp(time_t *timestamp) { - return self->set_tx_timestamp(self, timestamp); - } - - db_ret_t set_verbose(u_int32_t which, int_bool onoff) { - return self->set_verbose(self, which, onoff); - } - - /* Lock functions */ - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - struct __db_lk_conflicts get_lk_conflicts() { - struct __db_lk_conflicts ret; - errno = self->get_lk_conflicts(self, - (const u_int8_t **)&ret.lk_conflicts, &ret.lk_modes); - return ret; - } - - u_int32_t get_lk_detect() { - u_int32_t ret; - errno = self->get_lk_detect(self, &ret); - return ret; - } - - u_int32_t get_lk_max_locks() { - u_int32_t ret; - errno = self->get_lk_max_locks(self, &ret); - return ret; - } - - u_int32_t get_lk_max_lockers() { - u_int32_t ret; - errno = self->get_lk_max_lockers(self, &ret); - return ret; - } - - u_int32_t get_lk_max_objects() { - u_int32_t ret; - errno = self->get_lk_max_objects(self, &ret); - return ret; - } - - int lock_detect(u_int32_t flags, u_int32_t atype) { - int aborted; - errno = self->lock_detect(self, flags, atype, &aborted); - return aborted; - } - - DB_LOCK *lock_get(u_int32_t locker, - u_int32_t flags, const DBT *object, db_lockmode_t lock_mode) { - DB_LOCK *lock = NULL; - if ((errno = __os_malloc(self, sizeof (DB_LOCK), &lock)) == 0) - errno = self->lock_get(self, locker, flags, object, - lock_mode, lock); - return lock; - } - - u_int32_t lock_id() { - u_int32_t id; - errno = self->lock_id(self, &id); - return id; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t lock_id_free(u_int32_t id) { - return self->lock_id_free(self, id); - } - - db_ret_t lock_put(DB_LOCK *lock) { - return self->lock_put(self, lock); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - DB_LOCK_STAT *lock_stat(u_int32_t flags) { - DB_LOCK_STAT *statp = NULL; - errno = self->lock_stat(self, &statp, flags); - return statp; - } - -#ifndef SWIGJAVA - /* For Java, this is defined in native code */ - db_ret_t lock_vec(u_int32_t locker, u_int32_t flags, DB_LOCKREQ *list, - int offset, int nlist) - { - DB_LOCKREQ *elistp; - return self->lock_vec(self, locker, flags, list + offset, - nlist, &elistp); - } -#endif - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t set_lk_conflicts(struct __db_lk_conflicts conflicts) { - return self->set_lk_conflicts(self, - conflicts.lk_conflicts, conflicts.lk_modes); - } - - db_ret_t set_lk_detect(u_int32_t detect) { - return self->set_lk_detect(self, detect); - } - - db_ret_t set_lk_max_lockers(u_int32_t max) { - return self->set_lk_max_lockers(self, max); - } - - db_ret_t set_lk_max_locks(u_int32_t max) { - return self->set_lk_max_locks(self, max); - } - - db_ret_t set_lk_max_objects(u_int32_t max) { - return self->set_lk_max_objects(self, max); - } - - /* Log functions */ - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - u_int32_t get_lg_bsize() { - u_int32_t ret; - errno = self->get_lg_bsize(self, &ret); - return ret; - } - - const char *get_lg_dir() { - const char *ret; - errno = self->get_lg_dir(self, &ret); - return ret; - } - - int get_lg_filemode() { - int ret; - errno = self->get_lg_filemode(self, &ret); - return ret; - } - - u_int32_t get_lg_max() { - u_int32_t ret; - errno = self->get_lg_max(self, &ret); - return ret; - } - - u_int32_t get_lg_regionmax() { - u_int32_t ret; - errno = self->get_lg_regionmax(self, &ret); - return ret; - } - - char **log_archive(u_int32_t flags) { - char **list = NULL; - errno = self->log_archive(self, &list, flags); - return list; - } - - JAVA_EXCEPT_NONE - static int log_compare(const DB_LSN *lsn0, const DB_LSN *lsn1) { - return log_compare(lsn0, lsn1); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - DB_LOGC *log_cursor(u_int32_t flags) { - DB_LOGC *cursor = NULL; - errno = self->log_cursor(self, &cursor, flags); - return cursor; - } - - char *log_file(DB_LSN *lsn) { - char namebuf[DB_MAXPATHLEN]; - errno = self->log_file(self, lsn, namebuf, sizeof namebuf); - return (errno == 0) ? strdup(namebuf) : NULL; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t log_flush(const DB_LSN *lsn_or_null) { - return self->log_flush(self, lsn_or_null); - } - - db_ret_t log_put(DB_LSN *lsn, const DBT *data, u_int32_t flags) { - return self->log_put(self, lsn, data, flags); - } - - db_ret_t log_print(DB_TXN *txn, const char *msg) { - return self->log_printf(self, txn, "%s", msg); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - DB_LOG_STAT *log_stat(u_int32_t flags) { - DB_LOG_STAT *sp = NULL; - errno = self->log_stat(self, &sp, flags); - return sp; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t set_lg_bsize(u_int32_t lg_bsize) { - return self->set_lg_bsize(self, lg_bsize); - } - - db_ret_t set_lg_dir(const char *dir) { - return self->set_lg_dir(self, dir); - } - - db_ret_t set_lg_filemode(int mode) { - return self->set_lg_filemode(self, mode); - } - - db_ret_t set_lg_max(u_int32_t lg_max) { - return self->set_lg_max(self, lg_max); - } - - db_ret_t set_lg_regionmax(u_int32_t lg_regionmax) { - return self->set_lg_regionmax(self, lg_regionmax); - } - - /* Memory pool functions */ - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - jlong get_cachesize() { - u_int32_t gbytes, bytes; - errno = self->get_cachesize(self, &gbytes, &bytes, NULL); - return (jlong)gbytes * GIGABYTE + bytes; - } - - int get_cachesize_ncache() { - int ret; - errno = self->get_cachesize(self, NULL, NULL, &ret); - return ret; - } - - jlong get_cache_max() { - u_int32_t gbytes, bytes; - errno = self->get_cache_max(self, &gbytes, &bytes); - return (jlong)gbytes * GIGABYTE + bytes; - } - - int get_mp_max_openfd() { - int ret; - errno = self->get_mp_max_openfd(self, &ret); - return ret; - } - - int get_mp_max_write() { - int maxwrite; - db_timeout_t sleep; - errno = self->get_mp_max_write(self, &maxwrite, &sleep); - return maxwrite; - } - - db_timeout_t get_mp_max_write_sleep() { - int maxwrite; - db_timeout_t sleep; - errno = self->get_mp_max_write(self, &maxwrite, &sleep); - return sleep; - } - - size_t get_mp_mmapsize() { - size_t ret; - errno = self->get_mp_mmapsize(self, &ret); - return ret; - } - - DB_MPOOL_STAT *memp_stat(u_int32_t flags) { - DB_MPOOL_STAT *mp_stat = NULL; - errno = self->memp_stat(self, &mp_stat, NULL, flags); - return mp_stat; - } - - DB_MPOOL_FSTAT **memp_fstat(u_int32_t flags) { - DB_MPOOL_FSTAT **mp_fstat = NULL; - errno = self->memp_stat(self, NULL, &mp_fstat, flags); - return mp_fstat; - } - - int memp_trickle(int percent) { - int ret; - errno = self->memp_trickle(self, percent, &ret); - return ret; - } - - /* Mutex functions */ - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - u_int32_t mutex_get_align() { - u_int32_t ret; - errno = self->mutex_get_align(self, &ret); - return ret; - } - - u_int32_t mutex_get_increment() { - u_int32_t ret; - errno = self->mutex_get_increment(self, &ret); - return ret; - } - - u_int32_t mutex_get_max() { - u_int32_t ret; - errno = self->mutex_get_max(self, &ret); - return ret; - } - - u_int32_t mutex_get_tas_spins() { - u_int32_t ret; - errno = self->mutex_get_tas_spins(self, &ret); - return ret; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t mutex_set_align(u_int32_t align) { - return self->mutex_set_align(self, align); - } - - db_ret_t mutex_set_increment(u_int32_t increment) { - return self->mutex_set_increment(self, increment); - } - - db_ret_t mutex_set_max(u_int32_t mutex_max) { - return self->mutex_set_increment(self, mutex_max); - } - - db_ret_t mutex_set_tas_spins(u_int32_t tas_spins) { - return self->mutex_set_tas_spins(self, tas_spins); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - DB_MUTEX_STAT *mutex_stat(u_int32_t flags) { - DB_MUTEX_STAT *statp = NULL; - errno = self->mutex_stat(self, &statp, flags); - return statp; - } - - /* Transaction functions */ - u_int32_t get_tx_max() { - u_int32_t ret; - errno = self->get_tx_max(self, &ret); - return ret; - } - - time_t get_tx_timestamp() { - time_t ret; - errno = self->get_tx_timestamp(self, &ret); - return ret; - } - - db_timeout_t get_timeout(u_int32_t flag) { - db_timeout_t ret; - errno = self->get_timeout(self, &ret, flag); - return ret; - } - - DB_TXN *txn_begin(DB_TXN *parent, u_int32_t flags) { - DB_TXN *tid = NULL; - errno = self->txn_begin(self, parent, &tid, flags); - return tid; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t txn_checkpoint(u_int32_t kbyte, u_int32_t min, - u_int32_t flags) { - return self->txn_checkpoint(self, kbyte, min, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - DB_PREPLIST *txn_recover(int count, u_int32_t flags) { - DB_PREPLIST *preplist; - long retcount; - - /* Add a NULL element to terminate the array. */ - if ((errno = __os_malloc(self, - (count + 1) * sizeof(DB_PREPLIST), &preplist)) != 0) - return NULL; - - if ((errno = self->txn_recover(self, preplist, count, - &retcount, flags)) != 0) { - __os_free(self, preplist); - return NULL; - } - - preplist[retcount].txn = NULL; - return preplist; - } - - DB_TXN_STAT *txn_stat(u_int32_t flags) { - DB_TXN_STAT *statp = NULL; - errno = self->txn_stat(self, &statp, flags); - return statp; - } - - /* Replication functions */ - jlong rep_get_limit() { - u_int32_t gbytes, bytes; - errno = self->rep_get_limit(self, &gbytes, &bytes); - return (jlong)gbytes * GIGABYTE + bytes; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t rep_elect(int nsites, int nvotes, u_int32_t flags) { - return self->rep_elect(self, nsites, nvotes, flags); - } - - JAVA_EXCEPT(DB_RETOK_REPPMSG, JDBENV) - int rep_process_message(DBT *control, DBT *rec, int envid, - DB_LSN *ret_lsn) { - return self->rep_process_message(self, control, rec, envid, - ret_lsn); - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t rep_flush() { - return self->rep_flush(self); - } - - db_ret_t rep_set_config(u_int32_t which, int_bool onoff) { - return self->rep_set_config(self, which, onoff); - } - - db_ret_t rep_set_lease(u_int32_t clock_scale_factor, u_int32_t flags) { - return self->rep_set_lease(self, clock_scale_factor, flags); - } - - db_ret_t rep_start(DBT *cdata, u_int32_t flags) { - return self->rep_start(self, cdata, flags); - } - - db_ret_t rep_sync(u_int32_t flags) { - return self->rep_sync(self, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - int_bool rep_get_config(u_int32_t which) { - int ret; - errno = self->rep_get_config(self, which, &ret); - return ret; - } - - DB_REP_STAT *rep_stat(u_int32_t flags) { - DB_REP_STAT *statp = NULL; - errno = self->rep_stat(self, &statp, flags); - return statp; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t rep_set_limit(jlong bytes) { - return self->rep_set_limit(self, - (u_int32_t)(bytes / GIGABYTE), - (u_int32_t)(bytes % GIGABYTE)); - } - - db_ret_t set_rep_request(u_int32_t min, u_int32_t max) { - return self->set_rep_request(self, min, max); - } - - db_ret_t rep_set_transport(int envid, - int (*send)(DB_ENV *, const DBT *, const DBT *, - const DB_LSN *, int, u_int32_t)) { - return self->rep_set_transport(self, envid, send); - } - - /* Advanced replication functions. */ - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - int rep_get_nsites() { - int ret; - errno = self->rep_get_nsites(self, &ret); - return ret; - } - - int rep_get_priority() { - int ret; - errno = self->rep_get_priority(self, &ret); - return ret; - } - - u_int32_t rep_get_timeout(int which) { - u_int32_t ret; - errno = self->rep_get_timeout(self, which, &ret); - return ret; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t rep_set_nsites(int number) { - return self->rep_set_nsites(self, number); - } - - db_ret_t rep_set_priority(int priority) { - return self->rep_set_priority(self, priority); - } - - db_ret_t rep_set_timeout(int which, db_timeout_t timeout) { - return self->rep_set_timeout(self, which, timeout); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - int repmgr_add_remote_site(const char * host, u_int32_t port, - u_int32_t flags) { - int eid; - errno = self->repmgr_add_remote_site(self, host, port, &eid, flags); - return eid; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t repmgr_get_ack_policy() { - int ret; - errno = self->repmgr_get_ack_policy(self, &ret); - return ret; - } - - db_ret_t repmgr_set_ack_policy(int policy) { - return self->repmgr_set_ack_policy(self, policy); - } - - db_ret_t repmgr_set_local_site(const char * host, u_int32_t port, u_int32_t flags) { - return self->repmgr_set_local_site(self, host, port, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - struct __db_repmgr_sites repmgr_site_list() { - struct __db_repmgr_sites sites; - errno = self->repmgr_site_list(self, - &sites.nsites, &sites.sites); - return sites; - } - - JAVA_EXCEPT(DB_RETOK_STD, JDBENV) - db_ret_t repmgr_start(int nthreads, u_int32_t flags) { - return self->repmgr_start(self, nthreads, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, JDBENV) - DB_REPMGR_STAT *repmgr_stat(u_int32_t flags) { - DB_REPMGR_STAT *statp = NULL; - errno = self->repmgr_stat(self, &statp, flags); - return statp; - } - - /* Convert DB errors to strings */ - JAVA_EXCEPT_NONE - static const char *strerror(int error) { - return db_strerror(error); - } - - /* Versioning information */ - static int get_version_major() { - return DB_VERSION_MAJOR; - } - - static int get_version_minor() { - return DB_VERSION_MINOR; - } - - static int get_version_patch() { - return DB_VERSION_PATCH; - } - - static const char *get_version_string() { - return DB_VERSION_STRING; - } -} -}; - -struct DbLock -{ -%extend { - JAVA_EXCEPT_NONE - ~DbLock() { - __os_free(NULL, self); - } -} -}; - -struct DbLogc -{ -%extend { - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t close(u_int32_t flags) { - return self->close(self, flags); - } - - JAVA_EXCEPT(DB_RETOK_LGGET, NULL) - int get(DB_LSN *lsn, DBT *data, u_int32_t flags) { - return self->get(self, lsn, data, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - u_int32_t version(u_int32_t flags) { - u_int32_t result; - errno = self->version(self, &result, flags); - return result; - } -} -}; - -#ifndef SWIGJAVA -struct DbLsn -{ -%extend { - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - DbLsn(u_int32_t file, u_int32_t offset) { - DB_LSN *self = NULL; - if ((errno = __os_malloc(NULL, sizeof (DB_LSN), &self)) == 0) { - self->file = file; - self->offset = offset; - } - return self; - } - - JAVA_EXCEPT_NONE - ~DbLsn() { - __os_free(NULL, self); - } - - u_int32_t get_file() { - return self->file; - } - - u_int32_t get_offset() { - return self->offset; - } -} -}; -#endif - -struct DbMpoolFile -{ -%extend { - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - DB_CACHE_PRIORITY get_priority() { - DB_CACHE_PRIORITY ret; - errno = self->get_priority(self, &ret); - return ret; - } - - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t set_priority(DB_CACHE_PRIORITY priority) { - return self->set_priority(self, priority); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - u_int32_t get_flags() { - u_int32_t ret; - errno = self->get_flags(self, &ret); - return ret; - } - - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t set_flags(u_int32_t flags, int_bool onoff) { - return self->set_flags(self, flags, onoff); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - jlong get_maxsize() { - u_int32_t gbytes, bytes; - errno = self->get_maxsize(self, &gbytes, &bytes); - return (jlong)gbytes * GIGABYTE + bytes; - } - - /* New method - no backwards compatibility version */ - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t set_maxsize(jlong bytes) { - return self->set_maxsize(self, - (u_int32_t)(bytes / GIGABYTE), - (u_int32_t)(bytes % GIGABYTE)); - } -} -}; - -struct DbSequence -{ -%extend { - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - DbSequence(DB *db, u_int32_t flags) { - DB_SEQUENCE *self = NULL; - errno = db_sequence_create(&self, db, flags); - return self; - } - - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t close(u_int32_t flags) { - return self->close(self, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - db_seq_t get(DB_TXN *txnid, int32_t delta, u_int32_t flags) { - db_seq_t ret = 0; - errno = self->get(self, txnid, delta, &ret, flags); - return ret; - } - - int32_t get_cachesize() { - int32_t ret = 0; - errno = self->get_cachesize(self, &ret); - return ret; - } - - DB *get_db() { - DB *ret = NULL; - errno = self->get_db(self, &ret); - return ret; - } - - u_int32_t get_flags() { - u_int32_t ret = 0; - errno = self->get_flags(self, &ret); - return ret; - } - - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t get_key(DBT *key) { - return self->get_key(self, key); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - db_seq_t get_range_min() { - db_seq_t ret = 0; - errno = self->get_range(self, &ret, NULL); - return ret; - } - - db_seq_t get_range_max() { - db_seq_t ret = 0; - errno = self->get_range(self, NULL, &ret); - return ret; - } - - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t initial_value(db_seq_t val) { - return self->initial_value(self, val); - } - - db_ret_t open(DB_TXN *txnid, DBT *key, u_int32_t flags) { - return self->open(self, txnid, key, flags); - } - - db_ret_t remove(DB_TXN *txnid, u_int32_t flags) { - return self->remove(self, txnid, flags); - } - - db_ret_t set_cachesize(int32_t size) { - return self->set_cachesize(self, size); - } - - db_ret_t set_flags(u_int32_t flags) { - return self->set_flags(self, flags); - } - - db_ret_t set_range(db_seq_t min, db_seq_t max) { - return self->set_range(self, min, max); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, NULL) - DB_SEQUENCE_STAT *stat(u_int32_t flags) { - DB_SEQUENCE_STAT *ret = NULL; - errno = self->stat(self, &ret, flags); - return ret; - } -} -}; - -struct DbTxn -{ -%extend { - JAVA_EXCEPT(DB_RETOK_STD, NULL) - db_ret_t abort() { - return self->abort(self); - } - - db_ret_t commit(u_int32_t flags) { - return self->commit(self, flags); - } - - db_ret_t discard(u_int32_t flags) { - return self->discard(self, flags); - } - - JAVA_EXCEPT_ERRNO(DB_RETOK_STD, TXN2JDBENV) - const char *get_name() { - const char *name = NULL; - errno = self->get_name(self, &name); - return name; - } - - JAVA_EXCEPT_NONE - u_int32_t id() { - return self->id(self); - } - - JAVA_EXCEPT(DB_RETOK_STD, TXN2JDBENV) - db_ret_t prepare(u_int8_t *gid) { - return self->prepare(self, gid); - } - - db_ret_t set_timeout(db_timeout_t timeout, u_int32_t flags) { - return self->set_timeout(self, timeout, flags); - } - - db_ret_t set_name(const char *name) { - return self->set_name(self, name); - } -} -}; - diff --git a/db/libdb_java/db_java.i b/db/libdb_java/db_java.i deleted file mode 100644 index bc9ff29b3..000000000 --- a/db/libdb_java/db_java.i +++ /dev/null @@ -1,679 +0,0 @@ -%module db_java - -%include "various.i" -%include "typemaps.i" - -%include "java_util.i" -%include "java_except.i" -%include "java_typemaps.i" -%include "java_stat.i" -%include "java_callbacks.i" - -/* - * No finalize methods in general - most classes have "destructor" methods - * that applications must call explicitly. - */ -%typemap(javafinalize) SWIGTYPE "" - -/* - * These are the exceptions - when there is no "close" method, we need to free - * the native part at finalization time. These are exactly the cases where C - * applications manage the memory for the handles. - */ -%typemap(javafinalize) struct DbLsn, struct DbLock %{ - protected void finalize() { - try { - delete(); - } catch(Exception e) { - System.err.println("Exception during finalization: " + e); - e.printStackTrace(System.err); - } - } -%} - -%typemap(javaimports) SWIGTYPE %{ -import com.sleepycat.db.*; -import java.util.Comparator; -%} - -/* Class names */ -%rename(LogSequenceNumber) DbLsn; - -/* Destructors */ -%rename(close0) close; -%rename(remove0) remove; -%rename(rename0) rename; -%rename(verify0) verify; -%rename(abort0) abort; -%rename(commit0) commit; -%rename(discard0) discard; - -/* Special case methods */ -%rename(set_tx_timestamp0) set_tx_timestamp; - -/* Extra code in the Java classes */ -%typemap(javacode) struct DbEnv %{ - /* - * Internally, the JNI layer creates a global reference to each DbEnv, - * which can potentially be different to this. We keep a copy here so - * we can clean up after destructors. - */ - private long dbenv_ref; - public Environment wrapper; - - private LogRecordHandler app_dispatch_handler; - private EventHandler event_notify_handler; - private FeedbackHandler env_feedback_handler; - private ErrorHandler error_handler; - private String errpfx; - private MessageHandler message_handler; - private PanicHandler panic_handler; - private ReplicationTransport rep_transport_handler; - private java.io.OutputStream error_stream; - private java.io.OutputStream message_stream; - private ThreadLocal errMsg; - - public static class RepProcessMessage { - public int envid; - } - - /* - * Called by the public DbEnv constructor and for private environments - * by the Db constructor. - */ - void initialize() { - dbenv_ref = db_java.initDbEnvRef0(this, this); - errMsg = new ThreadLocal(); - /* Start with System.err as the default error stream. */ - set_error_stream(System.err); - set_message_stream(System.out); - } - - void cleanup() { - swigCPtr = 0; - db_java.deleteRef0(dbenv_ref); - dbenv_ref = 0L; - } - - public synchronized void close(int flags) throws DatabaseException { - try { - close0(flags); - } finally { - cleanup(); - } - } - - private final int handle_app_dispatch(DatabaseEntry dbt, - LogSequenceNumber lsn, - int recops) { - return app_dispatch_handler.handleLogRecord(wrapper, dbt, lsn, - RecoveryOperation.fromFlag(recops)); - } - - public LogRecordHandler get_app_dispatch() { - return app_dispatch_handler; - } - - private final void handle_panic_event_notify() { - event_notify_handler.handlePanicEvent(); - } - - private final void handle_rep_client_event_notify() { - event_notify_handler.handleRepClientEvent(); - } - - private final void handle_rep_elected_event_notify() { - event_notify_handler.handleRepElectedEvent(); - } - - private final void handle_rep_master_event_notify() { - event_notify_handler.handleRepMasterEvent(); - } - - private final void handle_rep_new_master_event_notify(int envid) { - event_notify_handler.handleRepNewMasterEvent(envid); - } - - private final void handle_rep_perm_failed_event_notify() { - event_notify_handler.handleRepPermFailedEvent(); - } - - private final void handle_rep_startup_done_event_notify() { - event_notify_handler.handleRepStartupDoneEvent(); - } - - private final void handle_write_failed_event_notify(int errno) { - event_notify_handler.handleWriteFailedEvent(errno); - } - - public EventHandler get_event_notify() { - return event_notify_handler; - } - - private final void handle_env_feedback(int opcode, int percent) { - if (opcode == DbConstants.DB_RECOVER) - env_feedback_handler.recoveryFeedback(wrapper, percent); - /* No other environment feedback type supported. */ - } - - public FeedbackHandler get_feedback() { - return env_feedback_handler; - } - - public void set_errpfx(String errpfx) { - this.errpfx = errpfx; - } - - public String get_errpfx() { - return errpfx; - } - - private final void handle_error(String msg) { - StringBuffer tbuf = (StringBuffer) errMsg.get(); - /* - * Populate the errMsg ThreadLocal on demand, since the - * callback can be made from different threads. - */ - if (tbuf == null) { - tbuf = new StringBuffer(); - errMsg.set(tbuf); - } - tbuf.append(msg); - error_handler.error(wrapper, this.errpfx, msg); - } - - private final String get_err_msg(String orig_msg) { - String ret = null; - StringBuffer tbuf = (StringBuffer) errMsg.get(); - if (tbuf != null) { - ret = tbuf.toString(); - tbuf.delete(0, tbuf.length()); - } - return orig_msg + ": " + ret; - } - - public ErrorHandler get_errcall() { - return error_handler; - } - - private final void handle_message(String msg) { - message_handler.message(wrapper, msg); - } - - public MessageHandler get_msgcall() { - return message_handler; - } - - private final void handle_panic(DatabaseException e) { - panic_handler.panic(wrapper, e); - } - - public PanicHandler get_paniccall() { - return panic_handler; - } - - private final int handle_rep_transport(DatabaseEntry control, - DatabaseEntry rec, - LogSequenceNumber lsn, - int envid, int flags) - throws DatabaseException { - return rep_transport_handler.send(wrapper, - control, rec, lsn, envid, - (flags & DbConstants.DB_REP_NOBUFFER) != 0, - (flags & DbConstants.DB_REP_PERMANENT) != 0, - (flags & DbConstants.DB_REP_ANYWHERE) != 0, - (flags & DbConstants.DB_REP_REREQUEST) != 0); - } - - public void lock_vec(/*u_int32_t*/ int locker, int flags, - LockRequest[] list, int offset, int count) - throws DatabaseException { - db_javaJNI.DbEnv_lock_vec(swigCPtr, locker, flags, list, - offset, count); - } - - public synchronized void remove(String db_home, int flags) - throws DatabaseException, java.io.FileNotFoundException { - try { - remove0(db_home, flags); - } finally { - cleanup(); - } - } - - public void set_error_stream(java.io.OutputStream stream) { - error_stream = stream; - final java.io.PrintWriter pw = new java.io.PrintWriter(stream); - set_errcall(new ErrorHandler() { - public void error(Environment env, - String prefix, String buf) /* no exception */ { - if (prefix != null) - pw.print(prefix + ": "); - pw.println(buf); - pw.flush(); - } - }); - } - - public java.io.OutputStream get_error_stream() { - return error_stream; - } - - public void set_message_stream(java.io.OutputStream stream) { - message_stream = stream; - final java.io.PrintWriter pw = new java.io.PrintWriter(stream); - set_msgcall(new MessageHandler() { - public void message(Environment env, String msg) - /* no exception */ { - pw.println(msg); - pw.flush(); - } - }); - } - - public java.io.OutputStream get_message_stream() { - return message_stream; - } - - public void set_tx_timestamp(java.util.Date timestamp) { - set_tx_timestamp0(timestamp.getTime()/1000); - } -%} - -%typemap(javacode) struct Db %{ - /* package */ static final int GIGABYTE = 1 << 30; - /* - * Internally, the JNI layer creates a global reference to each Db, - * which can potentially be different to this. We keep a copy here so - * we can clean up after destructors. - */ - private long db_ref; - private DbEnv dbenv; - private boolean private_dbenv; - - public Database wrapper; - private RecordNumberAppender append_recno_handler; - private Comparator bt_compare_handler; - private BtreePrefixCalculator bt_prefix_handler; - private Comparator dup_compare_handler; - private FeedbackHandler db_feedback_handler; - private Comparator h_compare_handler; - private Hasher h_hash_handler; - private SecondaryKeyCreator seckey_create_handler; - private SecondaryMultiKeyCreator secmultikey_create_handler; - - /* Called by the Db constructor */ - private void initialize(DbEnv dbenv) { - if (dbenv == null) { - private_dbenv = true; - dbenv = db_java.getDbEnv0(this); - dbenv.initialize(); - } - this.dbenv = dbenv; - db_ref = db_java.initDbRef0(this, this); - } - - private void cleanup() { - swigCPtr = 0; - db_java.deleteRef0(db_ref); - db_ref = 0L; - if (private_dbenv) - dbenv.cleanup(); - dbenv = null; - } - - public boolean getPrivateDbEnv() { - return private_dbenv; - } - - public synchronized void close(int flags) throws DatabaseException { - try { - close0(flags); - } finally { - cleanup(); - } - } - - public DbEnv get_env() throws DatabaseException { - return dbenv; - } - - private final void handle_append_recno(DatabaseEntry data, int recno) - throws DatabaseException { - append_recno_handler.appendRecordNumber(wrapper, data, recno); - } - - public RecordNumberAppender get_append_recno() { - return append_recno_handler; - } - - private final int handle_bt_compare(byte[] arr1, byte[] arr2) { - return bt_compare_handler.compare(arr1, arr2); - } - - public Comparator get_bt_compare() { - return bt_compare_handler; - } - - private final int handle_bt_prefix(DatabaseEntry dbt1, - DatabaseEntry dbt2) { - return bt_prefix_handler.prefix(wrapper, dbt1, dbt2); - } - - public BtreePrefixCalculator get_bt_prefix() { - return bt_prefix_handler; - } - - private final void handle_db_feedback(int opcode, int percent) { - if (opcode == DbConstants.DB_UPGRADE) - db_feedback_handler.upgradeFeedback(wrapper, percent); - else if (opcode == DbConstants.DB_VERIFY) - db_feedback_handler.upgradeFeedback(wrapper, percent); - /* No other database feedback types known. */ - } - - public FeedbackHandler get_feedback() { - return db_feedback_handler; - } - - private final int handle_h_compare(byte[] arr1, byte[] arr2) { - return h_compare_handler.compare(arr1, arr2); - } - - public Comparator get_h_compare() { - return h_compare_handler; - } - - private final int handle_dup_compare(byte[] arr1, byte[] arr2) { - return dup_compare_handler.compare(arr1, arr2); - } - - public Comparator get_dup_compare() { - return dup_compare_handler; - } - - private final int handle_h_hash(byte[] data, int len) { - return h_hash_handler.hash(wrapper, data, len); - } - - public Hasher get_h_hash() { - return h_hash_handler; - } - - private final DatabaseEntry[] handle_seckey_create( - DatabaseEntry key, - DatabaseEntry data) - throws DatabaseException { - - if (secmultikey_create_handler != null) { - java.util.HashSet keySet = new java.util.HashSet(); - secmultikey_create_handler.createSecondaryKeys( - (SecondaryDatabase)wrapper, key, data, keySet); - if (!keySet.isEmpty()) - return (DatabaseEntry[])keySet.toArray( - new DatabaseEntry[keySet.size()]); - } else { - DatabaseEntry result = new DatabaseEntry(); - if (seckey_create_handler.createSecondaryKey( - (SecondaryDatabase)wrapper, key, data, result)) { - DatabaseEntry[] results = { result }; - return results; - } - } - - return null; - } - - public SecondaryKeyCreator get_seckey_create() { - return seckey_create_handler; - } - - public SecondaryMultiKeyCreator get_secmultikey_create() { - return secmultikey_create_handler; - } - - public void get_secmultikey_create( - SecondaryMultiKeyCreator secmultikey_create_handler) { - this.secmultikey_create_handler = secmultikey_create_handler; - } - - public synchronized void remove(String file, String database, int flags) - throws DatabaseException, java.io.FileNotFoundException { - try { - remove0(file, database, flags); - } finally { - cleanup(); - } - } - - public synchronized void rename(String file, String database, - String newname, int flags) - throws DatabaseException, java.io.FileNotFoundException { - try { - rename0(file, database, newname, flags); - } finally { - cleanup(); - } - } - - public synchronized boolean verify(String file, String database, - java.io.OutputStream outfile, int flags) - throws DatabaseException, java.io.FileNotFoundException { - try { - return verify0(file, database, outfile, flags); - } finally { - cleanup(); - } - } - - public ErrorHandler get_errcall() { - return dbenv.get_errcall(); - } - - public void set_errcall(ErrorHandler db_errcall_fcn) { - dbenv.set_errcall(db_errcall_fcn); - } - - public java.io.OutputStream get_error_stream() { - return dbenv.get_error_stream(); - } - - public void set_error_stream(java.io.OutputStream stream) { - dbenv.set_error_stream(stream); - } - - public void set_errpfx(String errpfx) { - dbenv.set_errpfx(errpfx); - } - - public String get_errpfx() { - return dbenv.get_errpfx(); - } - - public java.io.OutputStream get_message_stream() { - return dbenv.get_message_stream(); - } - - public void set_message_stream(java.io.OutputStream stream) { - dbenv.set_message_stream(stream); - } - - public MessageHandler get_msgcall() { - return dbenv.get_msgcall(); - } - - public void set_msgcall(MessageHandler db_msgcall_fcn) { - dbenv.set_msgcall(db_msgcall_fcn); - } - - public void set_paniccall(PanicHandler db_panic_fcn) - throws DatabaseException { - dbenv.set_paniccall(db_panic_fcn); - } - - public PanicHandler get_paniccall() { - return dbenv.get_paniccall(); - } -%} - -%typemap(javacode) struct Dbc %{ - public synchronized void close() throws DatabaseException { - try { - close0(); - } finally { - swigCPtr = 0; - } - } -%} - -%typemap(javacode) struct DbLock %{ - public Lock wrapper; -%} - -%typemap(javacode) struct DbLogc %{ - public synchronized void close(int flags) throws DatabaseException { - try { - close0(flags); - } finally { - swigCPtr = 0; - } - } -%} - -%typemap(javacode) struct DbSequence %{ - public Sequence wrapper; - - public synchronized void close(int flags) throws DatabaseException { - try { - close0(flags); - } finally { - swigCPtr = 0; - } - } - - public synchronized void remove(DbTxn txn, int flags) - throws DatabaseException { - try { - remove0(txn, flags); - } finally { - swigCPtr = 0; - } - } -%} - -%typemap(javacode) struct DbTxn %{ - public void abort() throws DatabaseException { - try { - abort0(); - } finally { - swigCPtr = 0; - } - } - - public void commit(int flags) throws DatabaseException { - try { - commit0(flags); - } finally { - swigCPtr = 0; - } - } - - public void discard(int flags) throws DatabaseException { - try { - discard0(flags); - } finally { - swigCPtr = 0; - } - } - - /* - * We override Object.equals because it is possible for the Java API to - * create multiple DbTxns that reference the same underlying object. - * This can happen for example during DbEnv.txn_recover(). - */ - public boolean equals(Object obj) - { - if (this == obj) - return true; - - if (obj != null && (obj instanceof DbTxn)) { - DbTxn that = (DbTxn)obj; - return (this.swigCPtr == that.swigCPtr); - } - return false; - } - - /* - * We must override Object.hashCode whenever we override - * Object.equals() to enforce the maxim that equal objects have the - * same hashcode. - */ - public int hashCode() - { - return ((int)swigCPtr ^ (int)(swigCPtr >> 32)); - } -%} - -%native(initDbEnvRef0) jlong initDbEnvRef0(DB_ENV *self, void *handle); -%native(initDbRef0) jlong initDbRef0(DB *self, void *handle); -%native(deleteRef0) void deleteRef0(jlong ref); -%native(getDbEnv0) DB_ENV *getDbEnv0(DB *self); - -%{ -JNIEXPORT jlong JNICALL -Java_com_sleepycat_db_internal_db_1javaJNI_initDbEnvRef0( - JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { - DB_ENV *self = *(DB_ENV **)(void *)&jarg1; - jlong ret; - COMPQUIET(jcls, NULL); - - DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2); - *(jobject *)(void *)&ret = (jobject)DB_ENV_INTERNAL(self); - return (ret); -} - -JNIEXPORT jlong JNICALL -Java_com_sleepycat_db_internal_db_1javaJNI_initDbRef0( - JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { - DB *self = *(DB **)(void *)&jarg1; - jlong ret; - COMPQUIET(jcls, NULL); - - DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2); - *(jobject *)(void *)&ret = (jobject)DB_INTERNAL(self); - return (ret); -} - -JNIEXPORT void JNICALL -Java_com_sleepycat_db_internal_db_1javaJNI_deleteRef0( - JNIEnv *jenv, jclass jcls, jlong jarg1) { - jobject jref = *(jobject *)(void *)&jarg1; - COMPQUIET(jcls, NULL); - - if (jref != 0L) - (*jenv)->DeleteGlobalRef(jenv, jref); -} - -JNIEXPORT jlong JNICALL -Java_com_sleepycat_db_internal_db_1javaJNI_getDbEnv0( - JNIEnv *jenv, jclass jcls, jlong jarg1) { - DB *self = *(DB **)(void *)&jarg1; - jlong ret; - - COMPQUIET(jenv, NULL); - COMPQUIET(jcls, NULL); - - *(DB_ENV **)(void *)&ret = self->dbenv; - return (ret); -} - -JNIEXPORT jboolean JNICALL -Java_com_sleepycat_db_internal_DbUtil_is_1big_1endian( - JNIEnv *jenv, jclass clazz) -{ - COMPQUIET(jenv, NULL); - COMPQUIET(clazz, NULL); - - return (__db_isbigendian() ? JNI_TRUE : JNI_FALSE); -} -%} diff --git a/db/libdb_java/db_java_wrap.c b/db/libdb_java/db_java_wrap.c deleted file mode 100644 index ff3a54a7c..000000000 --- a/db/libdb_java/db_java_wrap.c +++ /dev/null @@ -1,10102 +0,0 @@ -#include "db_config.h" -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 1.3.29 - * - * This file is not intended to be easily readable and contains a number of - * coding conventions designed to improve portability and efficiency. Do not make - * changes to this file unless you know what you are doing--modify the SWIG - * interface file instead. - * ----------------------------------------------------------------------------- */ - -/* ----------------------------------------------------------------------------- - * This section contains generic SWIG labels for method/variable - * declarations/attributes, and other compiler dependent labels. - * ----------------------------------------------------------------------------- */ - -/* template workaround for compilers that cannot correctly implement the C++ standard */ -#ifndef SWIGTEMPLATEDISAMBIGUATOR -# if defined(__SUNPRO_CC) -# if (__SUNPRO_CC <= 0x560) -# define SWIGTEMPLATEDISAMBIGUATOR template -# else -# define SWIGTEMPLATEDISAMBIGUATOR -# endif -# else -# define SWIGTEMPLATEDISAMBIGUATOR -# endif -#endif - -/* inline attribute */ -#ifndef SWIGINLINE -# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) -# define SWIGINLINE inline -# else -# define SWIGINLINE -# endif -#endif - -/* attribute recognised by some compilers to avoid 'unused' warnings */ -#ifndef SWIGUNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define SWIGUNUSED __attribute__ ((__unused__)) -# else -# define SWIGUNUSED -# endif -# elif defined(__ICC) -# define SWIGUNUSED __attribute__ ((__unused__)) -# else -# define SWIGUNUSED -# endif -#endif - -#ifndef SWIGUNUSEDPARM -# ifdef __cplusplus -# define SWIGUNUSEDPARM(p) -# else -# define SWIGUNUSEDPARM(p) p SWIGUNUSED -# endif -#endif - -/* internal SWIG method */ -#ifndef SWIGINTERN -# define SWIGINTERN static SWIGUNUSED -#endif - -/* internal inline SWIG method */ -#ifndef SWIGINTERNINLINE -# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE -#endif - -/* exporting methods */ -#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) -# ifndef GCC_HASCLASSVISIBILITY -# define GCC_HASCLASSVISIBILITY -# endif -#endif - -#ifndef SWIGEXPORT -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# if defined(STATIC_LINKED) -# define SWIGEXPORT -# else -# define SWIGEXPORT __declspec(dllexport) -# endif -# else -# if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) -# define SWIGEXPORT __attribute__ ((visibility("default"))) -# else -# define SWIGEXPORT -# endif -# endif -#endif - -/* calling conventions for Windows */ -#ifndef SWIGSTDCALL -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# define SWIGSTDCALL __stdcall -# else -# define SWIGSTDCALL -# endif -#endif - -/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ -#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) -# undef _CRT_SECURE_NO_DEPRECATE -# define _CRT_SECURE_NO_DEPRECATE -#endif - - -/* Fix for jlong on some versions of gcc on Windows */ -#if defined(__GNUC__) && !defined(__INTELC__) - typedef long long __int64; -#endif - -/* Fix for jlong on 64-bit x86 Solaris */ -#if defined(__x86_64) -# ifdef _LP64 -# undef _LP64 -# endif -#endif - -#include <jni.h> -#include <stdlib.h> -#include <string.h> - - -/* Support for throwing Java exceptions */ -typedef enum { - SWIG_JavaOutOfMemoryError = 1, - SWIG_JavaIOException, - SWIG_JavaRuntimeException, - SWIG_JavaIndexOutOfBoundsException, - SWIG_JavaArithmeticException, - SWIG_JavaIllegalArgumentException, - SWIG_JavaNullPointerException, - SWIG_JavaDirectorPureVirtual, - SWIG_JavaUnknownError -} SWIG_JavaExceptionCodes; - -typedef struct { - SWIG_JavaExceptionCodes code; - const char *java_exception; -} SWIG_JavaExceptions_t; - - -static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) { - jclass excep; - static const SWIG_JavaExceptions_t java_exceptions[] = { - { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" }, - { SWIG_JavaIOException, "java/io/IOException" }, - { SWIG_JavaRuntimeException, "java/lang/RuntimeException" }, - { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" }, - { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" }, - { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" }, - { SWIG_JavaNullPointerException, "java/lang/NullPointerException" }, - { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" }, - { SWIG_JavaUnknownError, "java/lang/UnknownError" }, - { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" } }; - const SWIG_JavaExceptions_t *except_ptr = java_exceptions; - - while (except_ptr->code != code && except_ptr->code) - except_ptr++; - - (*jenv)->ExceptionClear(jenv); - excep = (*jenv)->FindClass(jenv, except_ptr->java_exception); - if (excep) - (*jenv)->ThrowNew(jenv, excep, msg); -} - - -/* Contract support */ - -#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else - - -#include "db_int.h" -#include "dbinc/txn.h" - -#ifdef HAVE_CRYPTO -#define CRYPTO_ONLY(x) (x); -#else -#define CRYPTO_ONLY(x) -#endif - - -/* don't use SWIG's array handling - save code space */ -#define SWIG_NOINCLUDE 1 - -#define DB_ENV_INTERNAL(dbenv) ((dbenv)->api2_internal) -#define DB_INTERNAL(db) ((db)->api_internal) - -#define DB_PKG "com/sleepycat/db/" - -/* Forward declarations */ -static int __dbj_throw(JNIEnv *jenv, - int err, const char *msg, jobject obj, jobject jdbenv); - -/* Global data - JVM handle, classes, fields and methods */ -static JavaVM *javavm; - -static jclass db_class, dbc_class, dbenv_class, dbt_class, dblsn_class; -static jclass dbpreplist_class, dbtxn_class; -static jclass keyrange_class; -static jclass bt_stat_class, compact_class, h_stat_class, lock_stat_class; -static jclass log_stat_class, mpool_stat_class, mpool_fstat_class; -static jclass mutex_stat_class, qam_stat_class, rep_stat_class; -static jclass repmgr_stat_class, rephost_class, seq_stat_class, txn_stat_class; -static jclass txn_active_class; -static jclass lock_class, lockreq_class; -static jclass dbex_class, deadex_class, lockex_class, memex_class; -static jclass repdupmasterex_class, rephandledeadex_class; -static jclass repholdelectionex_class, repjoinfailex_class; -static jclass repleaseexpiredex_class, repleasetimeoutex_class; -static jclass replockoutex_class, repunavailex_class; -static jclass runrecex_class, versionex_class; -static jclass filenotfoundex_class, illegalargex_class, outofmemerr_class; -static jclass bytearray_class, string_class, outputstream_class; - -static jfieldID dbc_cptr_fid; -static jfieldID dblsn_file_fid, dblsn_offset_fid; -static jfieldID dbt_data_fid, dbt_data_nio_fid, dbt_size_fid, dbt_ulen_fid; -static jfieldID dbt_dlen_fid, dbt_doff_fid, dbt_flags_fid, dbt_offset_fid; -static jfieldID kr_less_fid, kr_equal_fid, kr_greater_fid; -static jfieldID lock_cptr_fid; -static jfieldID lockreq_op_fid, lockreq_modeflag_fid, lockreq_timeout_fid; -static jfieldID lockreq_obj_fid, lockreq_lock_fid; -static jfieldID rephost_port_fid, rephost_host_fid, rephost_eid_fid; -static jfieldID rephost_status_fid; - -/* BEGIN-STAT-FIELD-DECLS */ -static jfieldID bt_stat_bt_magic_fid; -static jfieldID bt_stat_bt_version_fid; -static jfieldID bt_stat_bt_metaflags_fid; -static jfieldID bt_stat_bt_nkeys_fid; -static jfieldID bt_stat_bt_ndata_fid; -static jfieldID bt_stat_bt_pagecnt_fid; -static jfieldID bt_stat_bt_pagesize_fid; -static jfieldID bt_stat_bt_minkey_fid; -static jfieldID bt_stat_bt_re_len_fid; -static jfieldID bt_stat_bt_re_pad_fid; -static jfieldID bt_stat_bt_levels_fid; -static jfieldID bt_stat_bt_int_pg_fid; -static jfieldID bt_stat_bt_leaf_pg_fid; -static jfieldID bt_stat_bt_dup_pg_fid; -static jfieldID bt_stat_bt_over_pg_fid; -static jfieldID bt_stat_bt_empty_pg_fid; -static jfieldID bt_stat_bt_free_fid; -static jfieldID bt_stat_bt_int_pgfree_fid; -static jfieldID bt_stat_bt_leaf_pgfree_fid; -static jfieldID bt_stat_bt_dup_pgfree_fid; -static jfieldID bt_stat_bt_over_pgfree_fid; -static jfieldID compact_compact_fillpercent_fid; -static jfieldID compact_compact_timeout_fid; -static jfieldID compact_compact_pages_fid; -static jfieldID compact_compact_pages_free_fid; -static jfieldID compact_compact_pages_examine_fid; -static jfieldID compact_compact_levels_fid; -static jfieldID compact_compact_deadlock_fid; -static jfieldID compact_compact_pages_truncated_fid; -static jfieldID compact_compact_truncate_fid; -static jfieldID h_stat_hash_magic_fid; -static jfieldID h_stat_hash_version_fid; -static jfieldID h_stat_hash_metaflags_fid; -static jfieldID h_stat_hash_nkeys_fid; -static jfieldID h_stat_hash_ndata_fid; -static jfieldID h_stat_hash_pagecnt_fid; -static jfieldID h_stat_hash_pagesize_fid; -static jfieldID h_stat_hash_ffactor_fid; -static jfieldID h_stat_hash_buckets_fid; -static jfieldID h_stat_hash_free_fid; -static jfieldID h_stat_hash_bfree_fid; -static jfieldID h_stat_hash_bigpages_fid; -static jfieldID h_stat_hash_big_bfree_fid; -static jfieldID h_stat_hash_overflows_fid; -static jfieldID h_stat_hash_ovfl_free_fid; -static jfieldID h_stat_hash_dup_fid; -static jfieldID h_stat_hash_dup_free_fid; -static jfieldID lock_stat_st_id_fid; -static jfieldID lock_stat_st_cur_maxid_fid; -static jfieldID lock_stat_st_maxlocks_fid; -static jfieldID lock_stat_st_maxlockers_fid; -static jfieldID lock_stat_st_maxobjects_fid; -static jfieldID lock_stat_st_nmodes_fid; -static jfieldID lock_stat_st_nlockers_fid; -static jfieldID lock_stat_st_nlocks_fid; -static jfieldID lock_stat_st_maxnlocks_fid; -static jfieldID lock_stat_st_maxnlockers_fid; -static jfieldID lock_stat_st_nobjects_fid; -static jfieldID lock_stat_st_maxnobjects_fid; -static jfieldID lock_stat_st_nrequests_fid; -static jfieldID lock_stat_st_nreleases_fid; -static jfieldID lock_stat_st_nupgrade_fid; -static jfieldID lock_stat_st_ndowngrade_fid; -static jfieldID lock_stat_st_lock_wait_fid; -static jfieldID lock_stat_st_lock_nowait_fid; -static jfieldID lock_stat_st_ndeadlocks_fid; -static jfieldID lock_stat_st_locktimeout_fid; -static jfieldID lock_stat_st_nlocktimeouts_fid; -static jfieldID lock_stat_st_txntimeout_fid; -static jfieldID lock_stat_st_ntxntimeouts_fid; -static jfieldID lock_stat_st_objs_wait_fid; -static jfieldID lock_stat_st_objs_nowait_fid; -static jfieldID lock_stat_st_lockers_wait_fid; -static jfieldID lock_stat_st_lockers_nowait_fid; -static jfieldID lock_stat_st_locks_wait_fid; -static jfieldID lock_stat_st_locks_nowait_fid; -static jfieldID lock_stat_st_region_wait_fid; -static jfieldID lock_stat_st_region_nowait_fid; -static jfieldID lock_stat_st_hash_len_fid; -static jfieldID lock_stat_st_regsize_fid; -static jfieldID log_stat_st_magic_fid; -static jfieldID log_stat_st_version_fid; -static jfieldID log_stat_st_mode_fid; -static jfieldID log_stat_st_lg_bsize_fid; -static jfieldID log_stat_st_lg_size_fid; -static jfieldID log_stat_st_wc_bytes_fid; -static jfieldID log_stat_st_wc_mbytes_fid; -static jfieldID log_stat_st_record_fid; -static jfieldID log_stat_st_w_bytes_fid; -static jfieldID log_stat_st_w_mbytes_fid; -static jfieldID log_stat_st_wcount_fid; -static jfieldID log_stat_st_wcount_fill_fid; -static jfieldID log_stat_st_rcount_fid; -static jfieldID log_stat_st_scount_fid; -static jfieldID log_stat_st_region_wait_fid; -static jfieldID log_stat_st_region_nowait_fid; -static jfieldID log_stat_st_cur_file_fid; -static jfieldID log_stat_st_cur_offset_fid; -static jfieldID log_stat_st_disk_file_fid; -static jfieldID log_stat_st_disk_offset_fid; -static jfieldID log_stat_st_maxcommitperflush_fid; -static jfieldID log_stat_st_mincommitperflush_fid; -static jfieldID log_stat_st_regsize_fid; -static jfieldID mpool_fstat_file_name_fid; -static jfieldID mpool_fstat_st_pagesize_fid; -static jfieldID mpool_fstat_st_map_fid; -static jfieldID mpool_fstat_st_cache_hit_fid; -static jfieldID mpool_fstat_st_cache_miss_fid; -static jfieldID mpool_fstat_st_page_create_fid; -static jfieldID mpool_fstat_st_page_in_fid; -static jfieldID mpool_fstat_st_page_out_fid; -static jfieldID mpool_stat_st_gbytes_fid; -static jfieldID mpool_stat_st_bytes_fid; -static jfieldID mpool_stat_st_ncache_fid; -static jfieldID mpool_stat_st_max_ncache_fid; -static jfieldID mpool_stat_st_mmapsize_fid; -static jfieldID mpool_stat_st_maxopenfd_fid; -static jfieldID mpool_stat_st_maxwrite_fid; -static jfieldID mpool_stat_st_maxwrite_sleep_fid; -static jfieldID mpool_stat_st_pages_fid; -static jfieldID mpool_stat_st_map_fid; -static jfieldID mpool_stat_st_cache_hit_fid; -static jfieldID mpool_stat_st_cache_miss_fid; -static jfieldID mpool_stat_st_page_create_fid; -static jfieldID mpool_stat_st_page_in_fid; -static jfieldID mpool_stat_st_page_out_fid; -static jfieldID mpool_stat_st_ro_evict_fid; -static jfieldID mpool_stat_st_rw_evict_fid; -static jfieldID mpool_stat_st_page_trickle_fid; -static jfieldID mpool_stat_st_page_clean_fid; -static jfieldID mpool_stat_st_page_dirty_fid; -static jfieldID mpool_stat_st_hash_buckets_fid; -static jfieldID mpool_stat_st_hash_searches_fid; -static jfieldID mpool_stat_st_hash_longest_fid; -static jfieldID mpool_stat_st_hash_examined_fid; -static jfieldID mpool_stat_st_hash_nowait_fid; -static jfieldID mpool_stat_st_hash_wait_fid; -static jfieldID mpool_stat_st_hash_max_nowait_fid; -static jfieldID mpool_stat_st_hash_max_wait_fid; -static jfieldID mpool_stat_st_region_nowait_fid; -static jfieldID mpool_stat_st_region_wait_fid; -static jfieldID mpool_stat_st_mvcc_frozen_fid; -static jfieldID mpool_stat_st_mvcc_thawed_fid; -static jfieldID mpool_stat_st_mvcc_freed_fid; -static jfieldID mpool_stat_st_alloc_fid; -static jfieldID mpool_stat_st_alloc_buckets_fid; -static jfieldID mpool_stat_st_alloc_max_buckets_fid; -static jfieldID mpool_stat_st_alloc_pages_fid; -static jfieldID mpool_stat_st_alloc_max_pages_fid; -static jfieldID mpool_stat_st_io_wait_fid; -static jfieldID mpool_stat_st_regsize_fid; -static jfieldID mutex_stat_st_mutex_align_fid; -static jfieldID mutex_stat_st_mutex_tas_spins_fid; -static jfieldID mutex_stat_st_mutex_cnt_fid; -static jfieldID mutex_stat_st_mutex_free_fid; -static jfieldID mutex_stat_st_mutex_inuse_fid; -static jfieldID mutex_stat_st_mutex_inuse_max_fid; -static jfieldID mutex_stat_st_region_wait_fid; -static jfieldID mutex_stat_st_region_nowait_fid; -static jfieldID mutex_stat_st_regsize_fid; -static jfieldID qam_stat_qs_magic_fid; -static jfieldID qam_stat_qs_version_fid; -static jfieldID qam_stat_qs_metaflags_fid; -static jfieldID qam_stat_qs_nkeys_fid; -static jfieldID qam_stat_qs_ndata_fid; -static jfieldID qam_stat_qs_pagesize_fid; -static jfieldID qam_stat_qs_extentsize_fid; -static jfieldID qam_stat_qs_pages_fid; -static jfieldID qam_stat_qs_re_len_fid; -static jfieldID qam_stat_qs_re_pad_fid; -static jfieldID qam_stat_qs_pgfree_fid; -static jfieldID qam_stat_qs_first_recno_fid; -static jfieldID qam_stat_qs_cur_recno_fid; -static jfieldID rep_stat_st_log_queued_fid; -static jfieldID rep_stat_st_startup_complete_fid; -static jfieldID rep_stat_st_status_fid; -static jfieldID rep_stat_st_next_lsn_fid; -static jfieldID rep_stat_st_waiting_lsn_fid; -static jfieldID rep_stat_st_next_pg_fid; -static jfieldID rep_stat_st_waiting_pg_fid; -static jfieldID rep_stat_st_dupmasters_fid; -static jfieldID rep_stat_st_env_id_fid; -static jfieldID rep_stat_st_env_priority_fid; -static jfieldID rep_stat_st_bulk_fills_fid; -static jfieldID rep_stat_st_bulk_overflows_fid; -static jfieldID rep_stat_st_bulk_records_fid; -static jfieldID rep_stat_st_bulk_transfers_fid; -static jfieldID rep_stat_st_client_rerequests_fid; -static jfieldID rep_stat_st_client_svc_req_fid; -static jfieldID rep_stat_st_client_svc_miss_fid; -static jfieldID rep_stat_st_gen_fid; -static jfieldID rep_stat_st_egen_fid; -static jfieldID rep_stat_st_log_duplicated_fid; -static jfieldID rep_stat_st_log_queued_max_fid; -static jfieldID rep_stat_st_log_queued_total_fid; -static jfieldID rep_stat_st_log_records_fid; -static jfieldID rep_stat_st_log_requested_fid; -static jfieldID rep_stat_st_master_fid; -static jfieldID rep_stat_st_master_changes_fid; -static jfieldID rep_stat_st_msgs_badgen_fid; -static jfieldID rep_stat_st_msgs_processed_fid; -static jfieldID rep_stat_st_msgs_recover_fid; -static jfieldID rep_stat_st_msgs_send_failures_fid; -static jfieldID rep_stat_st_msgs_sent_fid; -static jfieldID rep_stat_st_newsites_fid; -static jfieldID rep_stat_st_nsites_fid; -static jfieldID rep_stat_st_nthrottles_fid; -static jfieldID rep_stat_st_outdated_fid; -static jfieldID rep_stat_st_pg_duplicated_fid; -static jfieldID rep_stat_st_pg_records_fid; -static jfieldID rep_stat_st_pg_requested_fid; -static jfieldID rep_stat_st_txns_applied_fid; -static jfieldID rep_stat_st_startsync_delayed_fid; -static jfieldID rep_stat_st_elections_fid; -static jfieldID rep_stat_st_elections_won_fid; -static jfieldID rep_stat_st_election_cur_winner_fid; -static jfieldID rep_stat_st_election_gen_fid; -static jfieldID rep_stat_st_election_lsn_fid; -static jfieldID rep_stat_st_election_nsites_fid; -static jfieldID rep_stat_st_election_nvotes_fid; -static jfieldID rep_stat_st_election_priority_fid; -static jfieldID rep_stat_st_election_status_fid; -static jfieldID rep_stat_st_election_tiebreaker_fid; -static jfieldID rep_stat_st_election_votes_fid; -static jfieldID rep_stat_st_election_sec_fid; -static jfieldID rep_stat_st_election_usec_fid; -static jfieldID repmgr_stat_st_perm_failed_fid; -static jfieldID repmgr_stat_st_msgs_queued_fid; -static jfieldID repmgr_stat_st_msgs_dropped_fid; -static jfieldID repmgr_stat_st_connection_drop_fid; -static jfieldID repmgr_stat_st_connect_fail_fid; -static jfieldID seq_stat_st_wait_fid; -static jfieldID seq_stat_st_nowait_fid; -static jfieldID seq_stat_st_current_fid; -static jfieldID seq_stat_st_value_fid; -static jfieldID seq_stat_st_last_value_fid; -static jfieldID seq_stat_st_min_fid; -static jfieldID seq_stat_st_max_fid; -static jfieldID seq_stat_st_cache_size_fid; -static jfieldID seq_stat_st_flags_fid; -static jfieldID txn_stat_st_nrestores_fid; -static jfieldID txn_stat_st_last_ckp_fid; -static jfieldID txn_stat_st_time_ckp_fid; -static jfieldID txn_stat_st_last_txnid_fid; -static jfieldID txn_stat_st_maxtxns_fid; -static jfieldID txn_stat_st_naborts_fid; -static jfieldID txn_stat_st_nbegins_fid; -static jfieldID txn_stat_st_ncommits_fid; -static jfieldID txn_stat_st_nactive_fid; -static jfieldID txn_stat_st_nsnapshot_fid; -static jfieldID txn_stat_st_maxnactive_fid; -static jfieldID txn_stat_st_maxnsnapshot_fid; -static jfieldID txn_stat_st_txnarray_fid; -static jfieldID txn_stat_st_region_wait_fid; -static jfieldID txn_stat_st_region_nowait_fid; -static jfieldID txn_stat_st_regsize_fid; -static jfieldID txn_active_txnid_fid; -static jfieldID txn_active_parentid_fid; -static jfieldID txn_active_pid_fid; -static jfieldID txn_active_lsn_fid; -static jfieldID txn_active_read_lsn_fid; -static jfieldID txn_active_mvcc_ref_fid; -static jfieldID txn_active_status_fid; -static jfieldID txn_active_xa_status_fid; -static jfieldID txn_active_xid_fid; -static jfieldID txn_active_name_fid; -/* END-STAT-FIELD-DECLS */ - -static jmethodID dbenv_construct, dbt_construct, dblsn_construct; -static jmethodID dbpreplist_construct, dbtxn_construct; -static jmethodID bt_stat_construct, get_err_msg_method, h_stat_construct; -static jmethodID lock_stat_construct, log_stat_construct; -static jmethodID mpool_stat_construct, mpool_fstat_construct; -static jmethodID mutex_stat_construct, qam_stat_construct; -static jmethodID rep_stat_construct, repmgr_stat_construct, seq_stat_construct; -static jmethodID txn_stat_construct, txn_active_construct; -static jmethodID dbex_construct, deadex_construct, lockex_construct; -static jmethodID memex_construct, memex_update_method; -static jmethodID repdupmasterex_construct, rephandledeadex_construct; -static jmethodID repholdelectionex_construct, repjoinfailex_construct; -static jmethodID rephost_construct, repleaseexpiredex_construct; -static jmethodID repleasetimeoutex_construct, replockoutex_construct; -static jmethodID repunavailex_construct; -static jmethodID runrecex_construct, versionex_construct; -static jmethodID filenotfoundex_construct, illegalargex_construct; -static jmethodID outofmemerr_construct; -static jmethodID lock_construct; - -static jmethodID app_dispatch_method, errcall_method, env_feedback_method; -static jmethodID msgcall_method, paniccall_method, rep_transport_method; -static jmethodID panic_event_notify_method, rep_client_event_notify_method; -static jmethodID rep_elected_event_notify_method; -static jmethodID rep_master_event_notify_method; -static jmethodID rep_new_master_event_notify_method; -static jmethodID rep_perm_failed_event_notify_method; -static jmethodID rep_startup_done_event_notify_method; -static jmethodID write_failed_event_notify_method; - -static jmethodID append_recno_method, bt_compare_method, bt_prefix_method; -static jmethodID db_feedback_method, dup_compare_method, h_compare_method; -static jmethodID h_hash_method, seckey_create_method; - -static jmethodID outputstream_write_method; - -const struct { - jclass *cl; - const char *name; -} all_classes[] = { - { &dbenv_class, DB_PKG "internal/DbEnv" }, - { &db_class, DB_PKG "internal/Db" }, - { &dbc_class, DB_PKG "internal/Dbc" }, - { &dbt_class, DB_PKG "DatabaseEntry" }, - { &dblsn_class, DB_PKG "LogSequenceNumber" }, - { &dbpreplist_class, DB_PKG "PreparedTransaction" }, - { &dbtxn_class, DB_PKG "internal/DbTxn" }, - - { &bt_stat_class, DB_PKG "BtreeStats" }, - { &compact_class, DB_PKG "CompactStats" }, - { &h_stat_class, DB_PKG "HashStats" }, - { &lock_stat_class, DB_PKG "LockStats" }, - { &log_stat_class, DB_PKG "LogStats" }, - { &mpool_fstat_class, DB_PKG "CacheFileStats" }, - { &mpool_stat_class, DB_PKG "CacheStats" }, - { &mutex_stat_class, DB_PKG "MutexStats" }, - { &qam_stat_class, DB_PKG "QueueStats" }, - { &rep_stat_class, DB_PKG "ReplicationStats" }, - { &repmgr_stat_class, DB_PKG "ReplicationManagerStats" }, - { &seq_stat_class, DB_PKG "SequenceStats" }, - { &txn_stat_class, DB_PKG "TransactionStats" }, - { &txn_active_class, DB_PKG "TransactionStats$Active" }, - - { &keyrange_class, DB_PKG "KeyRange" }, - { &lock_class, DB_PKG "internal/DbLock" }, - { &lockreq_class, DB_PKG "LockRequest" }, - - { &dbex_class, DB_PKG "DatabaseException" }, - { &deadex_class, DB_PKG "DeadlockException" }, - { &lockex_class, DB_PKG "LockNotGrantedException" }, - { &memex_class, DB_PKG "MemoryException" }, - { &repdupmasterex_class, DB_PKG "ReplicationDuplicateMasterException" }, - { &rephandledeadex_class, DB_PKG "ReplicationHandleDeadException" }, - { &repholdelectionex_class, DB_PKG "ReplicationHoldElectionException" }, - { &rephost_class, DB_PKG "ReplicationHostAddress" }, - { &repjoinfailex_class, DB_PKG "ReplicationJoinFailureException" }, - { &repleaseexpiredex_class, DB_PKG "ReplicationLeaseExpiredException" }, - { &repleasetimeoutex_class, DB_PKG "ReplicationLeaseTimeoutException" }, - { &replockoutex_class, DB_PKG "ReplicationLockoutException" }, - { &repunavailex_class, DB_PKG "ReplicationSiteUnavailableException" }, - { &runrecex_class, DB_PKG "RunRecoveryException" }, - { &versionex_class, DB_PKG "VersionMismatchException" }, - { &filenotfoundex_class, "java/io/FileNotFoundException" }, - { &illegalargex_class, "java/lang/IllegalArgumentException" }, - { &outofmemerr_class, "java/lang/OutOfMemoryError" }, - - { &bytearray_class, "[B" }, - { &string_class, "java/lang/String" }, - { &outputstream_class, "java/io/OutputStream" } -}; - -const struct { - jfieldID *fid; - jclass *cl; - const char *name; - const char *sig; -} all_fields[] = { - { &dbc_cptr_fid, &dbc_class, "swigCPtr", "J" }, - - { &dblsn_file_fid, &dblsn_class, "file", "I" }, - { &dblsn_offset_fid, &dblsn_class, "offset", "I" }, - - { &dbt_data_fid, &dbt_class, "data", "[B" }, - { &dbt_data_nio_fid, &dbt_class, "data_nio", "Ljava/nio/ByteBuffer;" }, - { &dbt_size_fid, &dbt_class, "size", "I" }, - { &dbt_ulen_fid, &dbt_class, "ulen", "I" }, - { &dbt_dlen_fid, &dbt_class, "dlen", "I" }, - { &dbt_doff_fid, &dbt_class, "doff", "I" }, - { &dbt_flags_fid, &dbt_class, "flags", "I" }, - { &dbt_offset_fid, &dbt_class, "offset", "I" }, - - { &kr_less_fid, &keyrange_class, "less", "D" }, - { &kr_equal_fid, &keyrange_class, "equal", "D" }, - { &kr_greater_fid, &keyrange_class, "greater", "D" }, - - { &lock_cptr_fid, &lock_class, "swigCPtr", "J" }, - - { &lockreq_op_fid, &lockreq_class, "op", "I" }, - { &lockreq_modeflag_fid, &lockreq_class, "modeFlag", "I" }, - { &lockreq_timeout_fid, &lockreq_class, "timeout", "I" }, - { &lockreq_obj_fid, &lockreq_class, "obj", - "L" DB_PKG "DatabaseEntry;" }, - { &lockreq_lock_fid, &lockreq_class, "lock", - "L" DB_PKG "internal/DbLock;" }, - -/* BEGIN-STAT-FIELDS */ - { &bt_stat_bt_magic_fid, &bt_stat_class, "bt_magic", "I" }, - { &bt_stat_bt_version_fid, &bt_stat_class, "bt_version", "I" }, - { &bt_stat_bt_metaflags_fid, &bt_stat_class, "bt_metaflags", "I" }, - { &bt_stat_bt_nkeys_fid, &bt_stat_class, "bt_nkeys", "I" }, - { &bt_stat_bt_ndata_fid, &bt_stat_class, "bt_ndata", "I" }, - { &bt_stat_bt_pagecnt_fid, &bt_stat_class, "bt_pagecnt", "I" }, - { &bt_stat_bt_pagesize_fid, &bt_stat_class, "bt_pagesize", "I" }, - { &bt_stat_bt_minkey_fid, &bt_stat_class, "bt_minkey", "I" }, - { &bt_stat_bt_re_len_fid, &bt_stat_class, "bt_re_len", "I" }, - { &bt_stat_bt_re_pad_fid, &bt_stat_class, "bt_re_pad", "I" }, - { &bt_stat_bt_levels_fid, &bt_stat_class, "bt_levels", "I" }, - { &bt_stat_bt_int_pg_fid, &bt_stat_class, "bt_int_pg", "I" }, - { &bt_stat_bt_leaf_pg_fid, &bt_stat_class, "bt_leaf_pg", "I" }, - { &bt_stat_bt_dup_pg_fid, &bt_stat_class, "bt_dup_pg", "I" }, - { &bt_stat_bt_over_pg_fid, &bt_stat_class, "bt_over_pg", "I" }, - { &bt_stat_bt_empty_pg_fid, &bt_stat_class, "bt_empty_pg", "I" }, - { &bt_stat_bt_free_fid, &bt_stat_class, "bt_free", "I" }, - { &bt_stat_bt_int_pgfree_fid, &bt_stat_class, "bt_int_pgfree", "I" }, - { &bt_stat_bt_leaf_pgfree_fid, &bt_stat_class, "bt_leaf_pgfree", "I" }, - { &bt_stat_bt_dup_pgfree_fid, &bt_stat_class, "bt_dup_pgfree", "I" }, - { &bt_stat_bt_over_pgfree_fid, &bt_stat_class, "bt_over_pgfree", "I" }, - { &compact_compact_fillpercent_fid, &compact_class, "compact_fillpercent", "I" }, - { &compact_compact_timeout_fid, &compact_class, "compact_timeout", "I" }, - { &compact_compact_pages_fid, &compact_class, "compact_pages", "I" }, - { &compact_compact_pages_free_fid, &compact_class, "compact_pages_free", "I" }, - { &compact_compact_pages_examine_fid, &compact_class, "compact_pages_examine", "I" }, - { &compact_compact_levels_fid, &compact_class, "compact_levels", "I" }, - { &compact_compact_deadlock_fid, &compact_class, "compact_deadlock", "I" }, - { &compact_compact_pages_truncated_fid, &compact_class, "compact_pages_truncated", "I" }, - { &compact_compact_truncate_fid, &compact_class, "compact_truncate", "I" }, - { &h_stat_hash_magic_fid, &h_stat_class, "hash_magic", "I" }, - { &h_stat_hash_version_fid, &h_stat_class, "hash_version", "I" }, - { &h_stat_hash_metaflags_fid, &h_stat_class, "hash_metaflags", "I" }, - { &h_stat_hash_nkeys_fid, &h_stat_class, "hash_nkeys", "I" }, - { &h_stat_hash_ndata_fid, &h_stat_class, "hash_ndata", "I" }, - { &h_stat_hash_pagecnt_fid, &h_stat_class, "hash_pagecnt", "I" }, - { &h_stat_hash_pagesize_fid, &h_stat_class, "hash_pagesize", "I" }, - { &h_stat_hash_ffactor_fid, &h_stat_class, "hash_ffactor", "I" }, - { &h_stat_hash_buckets_fid, &h_stat_class, "hash_buckets", "I" }, - { &h_stat_hash_free_fid, &h_stat_class, "hash_free", "I" }, - { &h_stat_hash_bfree_fid, &h_stat_class, "hash_bfree", "I" }, - { &h_stat_hash_bigpages_fid, &h_stat_class, "hash_bigpages", "I" }, - { &h_stat_hash_big_bfree_fid, &h_stat_class, "hash_big_bfree", "I" }, - { &h_stat_hash_overflows_fid, &h_stat_class, "hash_overflows", "I" }, - { &h_stat_hash_ovfl_free_fid, &h_stat_class, "hash_ovfl_free", "I" }, - { &h_stat_hash_dup_fid, &h_stat_class, "hash_dup", "I" }, - { &h_stat_hash_dup_free_fid, &h_stat_class, "hash_dup_free", "I" }, - { &lock_stat_st_id_fid, &lock_stat_class, "st_id", "I" }, - { &lock_stat_st_cur_maxid_fid, &lock_stat_class, "st_cur_maxid", "I" }, - { &lock_stat_st_maxlocks_fid, &lock_stat_class, "st_maxlocks", "I" }, - { &lock_stat_st_maxlockers_fid, &lock_stat_class, "st_maxlockers", "I" }, - { &lock_stat_st_maxobjects_fid, &lock_stat_class, "st_maxobjects", "I" }, - { &lock_stat_st_nmodes_fid, &lock_stat_class, "st_nmodes", "I" }, - { &lock_stat_st_nlockers_fid, &lock_stat_class, "st_nlockers", "I" }, - { &lock_stat_st_nlocks_fid, &lock_stat_class, "st_nlocks", "I" }, - { &lock_stat_st_maxnlocks_fid, &lock_stat_class, "st_maxnlocks", "I" }, - { &lock_stat_st_maxnlockers_fid, &lock_stat_class, "st_maxnlockers", "I" }, - { &lock_stat_st_nobjects_fid, &lock_stat_class, "st_nobjects", "I" }, - { &lock_stat_st_maxnobjects_fid, &lock_stat_class, "st_maxnobjects", "I" }, - { &lock_stat_st_nrequests_fid, &lock_stat_class, "st_nrequests", "I" }, - { &lock_stat_st_nreleases_fid, &lock_stat_class, "st_nreleases", "I" }, - { &lock_stat_st_nupgrade_fid, &lock_stat_class, "st_nupgrade", "I" }, - { &lock_stat_st_ndowngrade_fid, &lock_stat_class, "st_ndowngrade", "I" }, - { &lock_stat_st_lock_wait_fid, &lock_stat_class, "st_lock_wait", "I" }, - { &lock_stat_st_lock_nowait_fid, &lock_stat_class, "st_lock_nowait", "I" }, - { &lock_stat_st_ndeadlocks_fid, &lock_stat_class, "st_ndeadlocks", "I" }, - { &lock_stat_st_locktimeout_fid, &lock_stat_class, "st_locktimeout", "I" }, - { &lock_stat_st_nlocktimeouts_fid, &lock_stat_class, "st_nlocktimeouts", "I" }, - { &lock_stat_st_txntimeout_fid, &lock_stat_class, "st_txntimeout", "I" }, - { &lock_stat_st_ntxntimeouts_fid, &lock_stat_class, "st_ntxntimeouts", "I" }, - { &lock_stat_st_objs_wait_fid, &lock_stat_class, "st_objs_wait", "I" }, - { &lock_stat_st_objs_nowait_fid, &lock_stat_class, "st_objs_nowait", "I" }, - { &lock_stat_st_lockers_wait_fid, &lock_stat_class, "st_lockers_wait", "I" }, - { &lock_stat_st_lockers_nowait_fid, &lock_stat_class, "st_lockers_nowait", "I" }, - { &lock_stat_st_locks_wait_fid, &lock_stat_class, "st_locks_wait", "I" }, - { &lock_stat_st_locks_nowait_fid, &lock_stat_class, "st_locks_nowait", "I" }, - { &lock_stat_st_region_wait_fid, &lock_stat_class, "st_region_wait", "I" }, - { &lock_stat_st_region_nowait_fid, &lock_stat_class, "st_region_nowait", "I" }, - { &lock_stat_st_hash_len_fid, &lock_stat_class, "st_hash_len", "I" }, - { &lock_stat_st_regsize_fid, &lock_stat_class, "st_regsize", "I" }, - { &log_stat_st_magic_fid, &log_stat_class, "st_magic", "I" }, - { &log_stat_st_version_fid, &log_stat_class, "st_version", "I" }, - { &log_stat_st_mode_fid, &log_stat_class, "st_mode", "I" }, - { &log_stat_st_lg_bsize_fid, &log_stat_class, "st_lg_bsize", "I" }, - { &log_stat_st_lg_size_fid, &log_stat_class, "st_lg_size", "I" }, - { &log_stat_st_wc_bytes_fid, &log_stat_class, "st_wc_bytes", "I" }, - { &log_stat_st_wc_mbytes_fid, &log_stat_class, "st_wc_mbytes", "I" }, - { &log_stat_st_record_fid, &log_stat_class, "st_record", "I" }, - { &log_stat_st_w_bytes_fid, &log_stat_class, "st_w_bytes", "I" }, - { &log_stat_st_w_mbytes_fid, &log_stat_class, "st_w_mbytes", "I" }, - { &log_stat_st_wcount_fid, &log_stat_class, "st_wcount", "I" }, - { &log_stat_st_wcount_fill_fid, &log_stat_class, "st_wcount_fill", "I" }, - { &log_stat_st_rcount_fid, &log_stat_class, "st_rcount", "I" }, - { &log_stat_st_scount_fid, &log_stat_class, "st_scount", "I" }, - { &log_stat_st_region_wait_fid, &log_stat_class, "st_region_wait", "I" }, - { &log_stat_st_region_nowait_fid, &log_stat_class, "st_region_nowait", "I" }, - { &log_stat_st_cur_file_fid, &log_stat_class, "st_cur_file", "I" }, - { &log_stat_st_cur_offset_fid, &log_stat_class, "st_cur_offset", "I" }, - { &log_stat_st_disk_file_fid, &log_stat_class, "st_disk_file", "I" }, - { &log_stat_st_disk_offset_fid, &log_stat_class, "st_disk_offset", "I" }, - { &log_stat_st_maxcommitperflush_fid, &log_stat_class, "st_maxcommitperflush", "I" }, - { &log_stat_st_mincommitperflush_fid, &log_stat_class, "st_mincommitperflush", "I" }, - { &log_stat_st_regsize_fid, &log_stat_class, "st_regsize", "I" }, - { &mpool_fstat_file_name_fid, &mpool_fstat_class, "file_name", "Ljava/lang/String;" }, - { &mpool_fstat_st_pagesize_fid, &mpool_fstat_class, "st_pagesize", "I" }, - { &mpool_fstat_st_map_fid, &mpool_fstat_class, "st_map", "I" }, - { &mpool_fstat_st_cache_hit_fid, &mpool_fstat_class, "st_cache_hit", "I" }, - { &mpool_fstat_st_cache_miss_fid, &mpool_fstat_class, "st_cache_miss", "I" }, - { &mpool_fstat_st_page_create_fid, &mpool_fstat_class, "st_page_create", "I" }, - { &mpool_fstat_st_page_in_fid, &mpool_fstat_class, "st_page_in", "I" }, - { &mpool_fstat_st_page_out_fid, &mpool_fstat_class, "st_page_out", "I" }, - { &mpool_stat_st_gbytes_fid, &mpool_stat_class, "st_gbytes", "I" }, - { &mpool_stat_st_bytes_fid, &mpool_stat_class, "st_bytes", "I" }, - { &mpool_stat_st_ncache_fid, &mpool_stat_class, "st_ncache", "I" }, - { &mpool_stat_st_max_ncache_fid, &mpool_stat_class, "st_max_ncache", "I" }, - { &mpool_stat_st_mmapsize_fid, &mpool_stat_class, "st_mmapsize", "I" }, - { &mpool_stat_st_maxopenfd_fid, &mpool_stat_class, "st_maxopenfd", "I" }, - { &mpool_stat_st_maxwrite_fid, &mpool_stat_class, "st_maxwrite", "I" }, - { &mpool_stat_st_maxwrite_sleep_fid, &mpool_stat_class, "st_maxwrite_sleep", "I" }, - { &mpool_stat_st_pages_fid, &mpool_stat_class, "st_pages", "I" }, - { &mpool_stat_st_map_fid, &mpool_stat_class, "st_map", "I" }, - { &mpool_stat_st_cache_hit_fid, &mpool_stat_class, "st_cache_hit", "I" }, - { &mpool_stat_st_cache_miss_fid, &mpool_stat_class, "st_cache_miss", "I" }, - { &mpool_stat_st_page_create_fid, &mpool_stat_class, "st_page_create", "I" }, - { &mpool_stat_st_page_in_fid, &mpool_stat_class, "st_page_in", "I" }, - { &mpool_stat_st_page_out_fid, &mpool_stat_class, "st_page_out", "I" }, - { &mpool_stat_st_ro_evict_fid, &mpool_stat_class, "st_ro_evict", "I" }, - { &mpool_stat_st_rw_evict_fid, &mpool_stat_class, "st_rw_evict", "I" }, - { &mpool_stat_st_page_trickle_fid, &mpool_stat_class, "st_page_trickle", "I" }, - { &mpool_stat_st_page_clean_fid, &mpool_stat_class, "st_page_clean", "I" }, - { &mpool_stat_st_page_dirty_fid, &mpool_stat_class, "st_page_dirty", "I" }, - { &mpool_stat_st_hash_buckets_fid, &mpool_stat_class, "st_hash_buckets", "I" }, - { &mpool_stat_st_hash_searches_fid, &mpool_stat_class, "st_hash_searches", "I" }, - { &mpool_stat_st_hash_longest_fid, &mpool_stat_class, "st_hash_longest", "I" }, - { &mpool_stat_st_hash_examined_fid, &mpool_stat_class, "st_hash_examined", "I" }, - { &mpool_stat_st_hash_nowait_fid, &mpool_stat_class, "st_hash_nowait", "I" }, - { &mpool_stat_st_hash_wait_fid, &mpool_stat_class, "st_hash_wait", "I" }, - { &mpool_stat_st_hash_max_nowait_fid, &mpool_stat_class, "st_hash_max_nowait", "I" }, - { &mpool_stat_st_hash_max_wait_fid, &mpool_stat_class, "st_hash_max_wait", "I" }, - { &mpool_stat_st_region_nowait_fid, &mpool_stat_class, "st_region_nowait", "I" }, - { &mpool_stat_st_region_wait_fid, &mpool_stat_class, "st_region_wait", "I" }, - { &mpool_stat_st_mvcc_frozen_fid, &mpool_stat_class, "st_mvcc_frozen", "I" }, - { &mpool_stat_st_mvcc_thawed_fid, &mpool_stat_class, "st_mvcc_thawed", "I" }, - { &mpool_stat_st_mvcc_freed_fid, &mpool_stat_class, "st_mvcc_freed", "I" }, - { &mpool_stat_st_alloc_fid, &mpool_stat_class, "st_alloc", "I" }, - { &mpool_stat_st_alloc_buckets_fid, &mpool_stat_class, "st_alloc_buckets", "I" }, - { &mpool_stat_st_alloc_max_buckets_fid, &mpool_stat_class, "st_alloc_max_buckets", "I" }, - { &mpool_stat_st_alloc_pages_fid, &mpool_stat_class, "st_alloc_pages", "I" }, - { &mpool_stat_st_alloc_max_pages_fid, &mpool_stat_class, "st_alloc_max_pages", "I" }, - { &mpool_stat_st_io_wait_fid, &mpool_stat_class, "st_io_wait", "I" }, - { &mpool_stat_st_regsize_fid, &mpool_stat_class, "st_regsize", "I" }, - { &mutex_stat_st_mutex_align_fid, &mutex_stat_class, "st_mutex_align", "I" }, - { &mutex_stat_st_mutex_tas_spins_fid, &mutex_stat_class, "st_mutex_tas_spins", "I" }, - { &mutex_stat_st_mutex_cnt_fid, &mutex_stat_class, "st_mutex_cnt", "I" }, - { &mutex_stat_st_mutex_free_fid, &mutex_stat_class, "st_mutex_free", "I" }, - { &mutex_stat_st_mutex_inuse_fid, &mutex_stat_class, "st_mutex_inuse", "I" }, - { &mutex_stat_st_mutex_inuse_max_fid, &mutex_stat_class, "st_mutex_inuse_max", "I" }, - { &mutex_stat_st_region_wait_fid, &mutex_stat_class, "st_region_wait", "I" }, - { &mutex_stat_st_region_nowait_fid, &mutex_stat_class, "st_region_nowait", "I" }, - { &mutex_stat_st_regsize_fid, &mutex_stat_class, "st_regsize", "I" }, - { &qam_stat_qs_magic_fid, &qam_stat_class, "qs_magic", "I" }, - { &qam_stat_qs_version_fid, &qam_stat_class, "qs_version", "I" }, - { &qam_stat_qs_metaflags_fid, &qam_stat_class, "qs_metaflags", "I" }, - { &qam_stat_qs_nkeys_fid, &qam_stat_class, "qs_nkeys", "I" }, - { &qam_stat_qs_ndata_fid, &qam_stat_class, "qs_ndata", "I" }, - { &qam_stat_qs_pagesize_fid, &qam_stat_class, "qs_pagesize", "I" }, - { &qam_stat_qs_extentsize_fid, &qam_stat_class, "qs_extentsize", "I" }, - { &qam_stat_qs_pages_fid, &qam_stat_class, "qs_pages", "I" }, - { &qam_stat_qs_re_len_fid, &qam_stat_class, "qs_re_len", "I" }, - { &qam_stat_qs_re_pad_fid, &qam_stat_class, "qs_re_pad", "I" }, - { &qam_stat_qs_pgfree_fid, &qam_stat_class, "qs_pgfree", "I" }, - { &qam_stat_qs_first_recno_fid, &qam_stat_class, "qs_first_recno", "I" }, - { &qam_stat_qs_cur_recno_fid, &qam_stat_class, "qs_cur_recno", "I" }, - { &rep_stat_st_log_queued_fid, &rep_stat_class, "st_log_queued", "I" }, - { &rep_stat_st_startup_complete_fid, &rep_stat_class, "st_startup_complete", "I" }, - { &rep_stat_st_status_fid, &rep_stat_class, "st_status", "I" }, - { &rep_stat_st_next_lsn_fid, &rep_stat_class, "st_next_lsn", "L" DB_PKG "LogSequenceNumber;" }, - { &rep_stat_st_waiting_lsn_fid, &rep_stat_class, "st_waiting_lsn", "L" DB_PKG "LogSequenceNumber;" }, - { &rep_stat_st_next_pg_fid, &rep_stat_class, "st_next_pg", "I" }, - { &rep_stat_st_waiting_pg_fid, &rep_stat_class, "st_waiting_pg", "I" }, - { &rep_stat_st_dupmasters_fid, &rep_stat_class, "st_dupmasters", "I" }, - { &rep_stat_st_env_id_fid, &rep_stat_class, "st_env_id", "I" }, - { &rep_stat_st_env_priority_fid, &rep_stat_class, "st_env_priority", "I" }, - { &rep_stat_st_bulk_fills_fid, &rep_stat_class, "st_bulk_fills", "I" }, - { &rep_stat_st_bulk_overflows_fid, &rep_stat_class, "st_bulk_overflows", "I" }, - { &rep_stat_st_bulk_records_fid, &rep_stat_class, "st_bulk_records", "I" }, - { &rep_stat_st_bulk_transfers_fid, &rep_stat_class, "st_bulk_transfers", "I" }, - { &rep_stat_st_client_rerequests_fid, &rep_stat_class, "st_client_rerequests", "I" }, - { &rep_stat_st_client_svc_req_fid, &rep_stat_class, "st_client_svc_req", "I" }, - { &rep_stat_st_client_svc_miss_fid, &rep_stat_class, "st_client_svc_miss", "I" }, - { &rep_stat_st_gen_fid, &rep_stat_class, "st_gen", "I" }, - { &rep_stat_st_egen_fid, &rep_stat_class, "st_egen", "I" }, - { &rep_stat_st_log_duplicated_fid, &rep_stat_class, "st_log_duplicated", "I" }, - { &rep_stat_st_log_queued_max_fid, &rep_stat_class, "st_log_queued_max", "I" }, - { &rep_stat_st_log_queued_total_fid, &rep_stat_class, "st_log_queued_total", "I" }, - { &rep_stat_st_log_records_fid, &rep_stat_class, "st_log_records", "I" }, - { &rep_stat_st_log_requested_fid, &rep_stat_class, "st_log_requested", "I" }, - { &rep_stat_st_master_fid, &rep_stat_class, "st_master", "I" }, - { &rep_stat_st_master_changes_fid, &rep_stat_class, "st_master_changes", "I" }, - { &rep_stat_st_msgs_badgen_fid, &rep_stat_class, "st_msgs_badgen", "I" }, - { &rep_stat_st_msgs_processed_fid, &rep_stat_class, "st_msgs_processed", "I" }, - { &rep_stat_st_msgs_recover_fid, &rep_stat_class, "st_msgs_recover", "I" }, - { &rep_stat_st_msgs_send_failures_fid, &rep_stat_class, "st_msgs_send_failures", "I" }, - { &rep_stat_st_msgs_sent_fid, &rep_stat_class, "st_msgs_sent", "I" }, - { &rep_stat_st_newsites_fid, &rep_stat_class, "st_newsites", "I" }, - { &rep_stat_st_nsites_fid, &rep_stat_class, "st_nsites", "I" }, - { &rep_stat_st_nthrottles_fid, &rep_stat_class, "st_nthrottles", "I" }, - { &rep_stat_st_outdated_fid, &rep_stat_class, "st_outdated", "I" }, - { &rep_stat_st_pg_duplicated_fid, &rep_stat_class, "st_pg_duplicated", "I" }, - { &rep_stat_st_pg_records_fid, &rep_stat_class, "st_pg_records", "I" }, - { &rep_stat_st_pg_requested_fid, &rep_stat_class, "st_pg_requested", "I" }, - { &rep_stat_st_txns_applied_fid, &rep_stat_class, "st_txns_applied", "I" }, - { &rep_stat_st_startsync_delayed_fid, &rep_stat_class, "st_startsync_delayed", "I" }, - { &rep_stat_st_elections_fid, &rep_stat_class, "st_elections", "I" }, - { &rep_stat_st_elections_won_fid, &rep_stat_class, "st_elections_won", "I" }, - { &rep_stat_st_election_cur_winner_fid, &rep_stat_class, "st_election_cur_winner", "I" }, - { &rep_stat_st_election_gen_fid, &rep_stat_class, "st_election_gen", "I" }, - { &rep_stat_st_election_lsn_fid, &rep_stat_class, "st_election_lsn", "L" DB_PKG "LogSequenceNumber;" }, - { &rep_stat_st_election_nsites_fid, &rep_stat_class, "st_election_nsites", "I" }, - { &rep_stat_st_election_nvotes_fid, &rep_stat_class, "st_election_nvotes", "I" }, - { &rep_stat_st_election_priority_fid, &rep_stat_class, "st_election_priority", "I" }, - { &rep_stat_st_election_status_fid, &rep_stat_class, "st_election_status", "I" }, - { &rep_stat_st_election_tiebreaker_fid, &rep_stat_class, "st_election_tiebreaker", "I" }, - { &rep_stat_st_election_votes_fid, &rep_stat_class, "st_election_votes", "I" }, - { &rep_stat_st_election_sec_fid, &rep_stat_class, "st_election_sec", "I" }, - { &rep_stat_st_election_usec_fid, &rep_stat_class, "st_election_usec", "I" }, - { &repmgr_stat_st_perm_failed_fid, &repmgr_stat_class, "st_perm_failed", "I" }, - { &repmgr_stat_st_msgs_queued_fid, &repmgr_stat_class, "st_msgs_queued", "I" }, - { &repmgr_stat_st_msgs_dropped_fid, &repmgr_stat_class, "st_msgs_dropped", "I" }, - { &repmgr_stat_st_connection_drop_fid, &repmgr_stat_class, "st_connection_drop", "I" }, - { &repmgr_stat_st_connect_fail_fid, &repmgr_stat_class, "st_connect_fail", "I" }, - { &seq_stat_st_wait_fid, &seq_stat_class, "st_wait", "I" }, - { &seq_stat_st_nowait_fid, &seq_stat_class, "st_nowait", "I" }, - { &seq_stat_st_current_fid, &seq_stat_class, "st_current", "J" }, - { &seq_stat_st_value_fid, &seq_stat_class, "st_value", "J" }, - { &seq_stat_st_last_value_fid, &seq_stat_class, "st_last_value", "J" }, - { &seq_stat_st_min_fid, &seq_stat_class, "st_min", "J" }, - { &seq_stat_st_max_fid, &seq_stat_class, "st_max", "J" }, - { &seq_stat_st_cache_size_fid, &seq_stat_class, "st_cache_size", "I" }, - { &seq_stat_st_flags_fid, &seq_stat_class, "st_flags", "I" }, - { &txn_stat_st_nrestores_fid, &txn_stat_class, "st_nrestores", "I" }, - { &txn_stat_st_last_ckp_fid, &txn_stat_class, "st_last_ckp", "L" DB_PKG "LogSequenceNumber;" }, - { &txn_stat_st_time_ckp_fid, &txn_stat_class, "st_time_ckp", "J" }, - { &txn_stat_st_last_txnid_fid, &txn_stat_class, "st_last_txnid", "I" }, - { &txn_stat_st_maxtxns_fid, &txn_stat_class, "st_maxtxns", "I" }, - { &txn_stat_st_naborts_fid, &txn_stat_class, "st_naborts", "I" }, - { &txn_stat_st_nbegins_fid, &txn_stat_class, "st_nbegins", "I" }, - { &txn_stat_st_ncommits_fid, &txn_stat_class, "st_ncommits", "I" }, - { &txn_stat_st_nactive_fid, &txn_stat_class, "st_nactive", "I" }, - { &txn_stat_st_nsnapshot_fid, &txn_stat_class, "st_nsnapshot", "I" }, - { &txn_stat_st_maxnactive_fid, &txn_stat_class, "st_maxnactive", "I" }, - { &txn_stat_st_maxnsnapshot_fid, &txn_stat_class, "st_maxnsnapshot", "I" }, - { &txn_stat_st_txnarray_fid, &txn_stat_class, "st_txnarray", "[L" DB_PKG "TransactionStats$Active;" }, - { &txn_stat_st_region_wait_fid, &txn_stat_class, "st_region_wait", "I" }, - { &txn_stat_st_region_nowait_fid, &txn_stat_class, "st_region_nowait", "I" }, - { &txn_stat_st_regsize_fid, &txn_stat_class, "st_regsize", "I" }, - { &txn_active_txnid_fid, &txn_active_class, "txnid", "I" }, - { &txn_active_parentid_fid, &txn_active_class, "parentid", "I" }, - { &txn_active_pid_fid, &txn_active_class, "pid", "I" }, - { &txn_active_lsn_fid, &txn_active_class, "lsn", "L" DB_PKG "LogSequenceNumber;" }, - { &txn_active_read_lsn_fid, &txn_active_class, "read_lsn", "L" DB_PKG "LogSequenceNumber;" }, - { &txn_active_mvcc_ref_fid, &txn_active_class, "mvcc_ref", "I" }, - { &txn_active_status_fid, &txn_active_class, "status", "I" }, - { &txn_active_xa_status_fid, &txn_active_class, "xa_status", "I" }, - { &txn_active_xid_fid, &txn_active_class, "xid", "[B" }, - { &txn_active_name_fid, &txn_active_class, "name", "Ljava/lang/String;" }, -/* END-STAT-FIELDS */ - - { &rephost_port_fid, &rephost_class, "port", "I" }, - { &rephost_host_fid, &rephost_class, "host", "Ljava/lang/String;" }, - { &rephost_eid_fid, &rephost_class, "eid", "I" }, - { &rephost_status_fid, &rephost_class, "status", "I" } -}; - -const struct { - jmethodID *mid; - jclass *cl; - const char *name; - const char *sig; -} all_methods[] = { - { &dbenv_construct, &dbenv_class, "<init>", "(JZ)V" }, - { &dbt_construct, &dbt_class, "<init>", "()V" }, - { &dblsn_construct, &dblsn_class, "<init>", "(II)V" }, - { &dbpreplist_construct, &dbpreplist_class, "<init>", - "(L" DB_PKG "internal/DbTxn;[B)V" }, - { &dbtxn_construct, &dbtxn_class, "<init>", "(JZ)V" }, - - { &bt_stat_construct, &bt_stat_class, "<init>", "()V" }, - { &get_err_msg_method, &dbenv_class, "get_err_msg", - "(Ljava/lang/String;)Ljava/lang/String;" }, - { &h_stat_construct, &h_stat_class, "<init>", "()V" }, - { &lock_stat_construct, &lock_stat_class, "<init>", "()V" }, - { &log_stat_construct, &log_stat_class, "<init>", "()V" }, - { &mpool_stat_construct, &mpool_stat_class, "<init>", "()V" }, - { &mpool_fstat_construct, &mpool_fstat_class, "<init>", "()V" }, - { &mutex_stat_construct, &mutex_stat_class, "<init>", "()V" }, - { &qam_stat_construct, &qam_stat_class, "<init>", "()V" }, - { &rep_stat_construct, &rep_stat_class, "<init>", "()V" }, - { &repmgr_stat_construct, &repmgr_stat_class, "<init>", "()V" }, - { &seq_stat_construct, &seq_stat_class, "<init>", "()V" }, - { &txn_stat_construct, &txn_stat_class, "<init>", "()V" }, - { &txn_active_construct, &txn_active_class, "<init>", "()V" }, - { &rephost_construct, &rephost_class, "<init>", "()V" }, - - { &dbex_construct, &dbex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &deadex_construct, &deadex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &lockex_construct, &lockex_class, "<init>", - "(Ljava/lang/String;IIL" DB_PKG "DatabaseEntry;L" - DB_PKG "internal/DbLock;IL" DB_PKG "internal/DbEnv;)V" }, - { &memex_construct, &memex_class, "<init>", - "(Ljava/lang/String;L" DB_PKG "DatabaseEntry;IL" - DB_PKG "internal/DbEnv;)V" }, - { &memex_update_method, &memex_class, "updateDatabaseEntry", - "(L" DB_PKG "DatabaseEntry;)V" }, - { &repdupmasterex_construct, &repdupmasterex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &rephandledeadex_construct, &rephandledeadex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &repholdelectionex_construct, &repholdelectionex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &repjoinfailex_construct, &repjoinfailex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &repleaseexpiredex_construct, &repleaseexpiredex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &repleasetimeoutex_construct, &repleasetimeoutex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &replockoutex_construct, &replockoutex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &repunavailex_construct, &repunavailex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &runrecex_construct, &runrecex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &versionex_construct, &versionex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &filenotfoundex_construct, &filenotfoundex_class, "<init>", - "(Ljava/lang/String;)V" }, - { &illegalargex_construct, &illegalargex_class, "<init>", - "(Ljava/lang/String;)V" }, - { &outofmemerr_construct, &outofmemerr_class, "<init>", - "(Ljava/lang/String;)V" }, - - { &lock_construct, &lock_class, "<init>", "(JZ)V" }, - - { &app_dispatch_method, &dbenv_class, "handle_app_dispatch", - "(L" DB_PKG "DatabaseEntry;L" DB_PKG "LogSequenceNumber;I)I" }, - { &panic_event_notify_method, &dbenv_class, "handle_panic_event_notify", - "()V" }, - { &rep_client_event_notify_method, &dbenv_class, - "handle_rep_client_event_notify", "()V" }, - { &rep_elected_event_notify_method, &dbenv_class, - "handle_rep_elected_event_notify" ,"()V" }, - { &rep_master_event_notify_method, &dbenv_class, - "handle_rep_master_event_notify", "()V" }, - { &rep_new_master_event_notify_method, &dbenv_class, - "handle_rep_new_master_event_notify", "(I)V" }, - { &rep_perm_failed_event_notify_method, &dbenv_class, - "handle_rep_perm_failed_event_notify", "()V" }, - { &rep_startup_done_event_notify_method, &dbenv_class, - "handle_rep_startup_done_event_notify", "()V" }, - { &write_failed_event_notify_method, &dbenv_class, - "handle_write_failed_event_notify", "(I)V" }, - { &env_feedback_method, &dbenv_class, "handle_env_feedback", "(II)V" }, - { &errcall_method, &dbenv_class, "handle_error", - "(Ljava/lang/String;)V" }, - { &msgcall_method, &dbenv_class, "handle_message", - "(Ljava/lang/String;)V" }, - { &paniccall_method, &dbenv_class, "handle_panic", - "(L" DB_PKG "DatabaseException;)V" }, - { &rep_transport_method, &dbenv_class, "handle_rep_transport", - "(L" DB_PKG "DatabaseEntry;L" DB_PKG "DatabaseEntry;L" - DB_PKG "LogSequenceNumber;II)I" }, - - { &append_recno_method, &db_class, "handle_append_recno", - "(L" DB_PKG "DatabaseEntry;I)V" }, - { &bt_compare_method, &db_class, "handle_bt_compare", - "([B[B)I" }, - { &bt_prefix_method, &db_class, "handle_bt_prefix", - "(L" DB_PKG "DatabaseEntry;L" DB_PKG "DatabaseEntry;)I" }, - { &db_feedback_method, &db_class, "handle_db_feedback", "(II)V" }, - { &dup_compare_method, &db_class, "handle_dup_compare", - "([B[B)I" }, - { &h_compare_method, &db_class, "handle_h_compare", - "([B[B)I" }, - { &h_hash_method, &db_class, "handle_h_hash", "([BI)I" }, - { &seckey_create_method, &db_class, "handle_seckey_create", - "(L" DB_PKG "DatabaseEntry;L" DB_PKG "DatabaseEntry;)[L" - DB_PKG "DatabaseEntry;" }, - - { &outputstream_write_method, &outputstream_class, "write", "([BII)V" } -}; - -#define NELEM(x) (sizeof (x) / sizeof (x[0])) - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_initialize( - JNIEnv *jenv, jclass clazz) -{ - jclass cl; - unsigned int i, j; - - COMPQUIET(clazz, NULL); - - if ((*jenv)->GetJavaVM(jenv, &javavm) != 0) { - __db_errx(NULL, "Cannot get Java VM"); - return; - } - - for (i = 0; i < NELEM(all_classes); i++) { - cl = (*jenv)->FindClass(jenv, all_classes[i].name); - if (cl == NULL) { - fprintf(stderr, - "Failed to load class %s - check CLASSPATH\n", - all_classes[i].name); - return; - } - - /* - * Wrap classes in GlobalRefs so we keep the reference between - * calls. - */ - *all_classes[i].cl = (jclass)(*jenv)->NewGlobalRef(jenv, cl); - - if (*all_classes[i].cl == NULL) { - fprintf(stderr, - "Failed to create a global reference for %s\n", - all_classes[i].name); - return; - } - } - - /* Get field IDs */ - for (i = 0; i < NELEM(all_fields); i++) { - *all_fields[i].fid = (*jenv)->GetFieldID(jenv, - *all_fields[i].cl, all_fields[i].name, all_fields[i].sig); - - if (*all_fields[i].fid == NULL) { - fprintf(stderr, - "Failed to look up field %s with sig %s\n", - all_fields[i].name, all_fields[i].sig); - return; - } - } - - /* Get method IDs */ - for (i = 0; i < NELEM(all_methods); i++) { - *all_methods[i].mid = (*jenv)->GetMethodID(jenv, - *all_methods[i].cl, all_methods[i].name, - all_methods[i].sig); - - if (*all_methods[i].mid == NULL) { - for (j = 0; j < NELEM(all_classes); j++) - if (all_methods[i].cl == all_classes[j].cl) - break; - fprintf(stderr, - "Failed to look up method %s.%s with sig %s\n", - all_classes[j].name, all_methods[i].name, - all_methods[i].sig); - return; - } - } -} - -static JNIEnv *__dbj_get_jnienv(void) -{ - /* - * Note: Different versions of the JNI disagree on the signature for - * AttachCurrentThread. The most recent documentation seems to say - * that (JNIEnv **) is correct, but newer JNIs seem to use (void **), - * oddly enough. - */ -#ifdef JNI_VERSION_1_2 - void *jenv = 0; -#else - JNIEnv *jenv = 0; -#endif - - /* - * This should always succeed, as we are called via some Java activity. - * I think therefore I am (a thread). - */ - if ((*javavm)->AttachCurrentThread(javavm, &jenv, 0) != 0) - return (0); - - return ((JNIEnv *)jenv); -} - -static jobject __dbj_wrap_DB_LSN(JNIEnv *jenv, DB_LSN *lsn) -{ - return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct, - lsn->file, lsn->offset); -} - - -/* - * Macros to find the Java DbEnv object for methods in various classes. - * Note that "arg1" is from the code SWIG generates for the "this"/"self". - */ -#define JDBENV (arg1 ? (jobject)DB_ENV_INTERNAL(arg1) : NULL) -#define DB2JDBENV ((jobject)DB_ENV_INTERNAL(arg1->dbenv)) -#define DBC2JDBENV ((jobject)DB_ENV_INTERNAL(arg1->dbp->dbenv)) -#define TXN2JDBENV ((jobject)DB_ENV_INTERNAL(arg1->mgrp->dbenv)) - - -static jthrowable __dbj_get_except(JNIEnv *jenv, - int err, const char *msg, jobject obj, jobject jdbenv) { - jobject jmsg; - - if (msg == NULL) - msg = db_strerror(err); - - jmsg = (*jenv)->NewStringUTF(jenv, msg); - - /* Retrieve error message logged by DB */ - if (jdbenv != NULL) { - jmsg = (jstring) (*jenv)->CallNonvirtualObjectMethod(jenv, - jdbenv, dbenv_class, get_err_msg_method, jmsg); - } - - switch (err) { - case EINVAL: - return (jthrowable)(*jenv)->NewObject(jenv, - illegalargex_class, illegalargex_construct, jmsg); - - case ENOENT: - return (jthrowable)(*jenv)->NewObject(jenv, - filenotfoundex_class, filenotfoundex_construct, jmsg); - - case ENOMEM: - return (jthrowable)(*jenv)->NewObject(jenv, - outofmemerr_class, outofmemerr_construct, jmsg); - - case DB_BUFFER_SMALL: - return (jthrowable)(*jenv)->NewObject(jenv, memex_class, - memex_construct, jmsg, obj, err, jdbenv); - - case DB_REP_DUPMASTER: - return (jthrowable)(*jenv)->NewObject(jenv, - repdupmasterex_class, repdupmasterex_construct, - jmsg, err, jdbenv); - - case DB_REP_HANDLE_DEAD: - return (jthrowable)(*jenv)->NewObject(jenv, - rephandledeadex_class, rephandledeadex_construct, - jmsg, err, jdbenv); - - case DB_REP_HOLDELECTION: - return (jthrowable)(*jenv)->NewObject(jenv, - repholdelectionex_class, repholdelectionex_construct, - jmsg, err, jdbenv); - - case DB_REP_JOIN_FAILURE: - return (jthrowable)(*jenv)->NewObject(jenv, - repjoinfailex_class, repjoinfailex_construct, - jmsg, err, jdbenv); - - case DB_REP_LEASE_EXPIRED: - return (jthrowable)(*jenv)->NewObject(jenv, - repleaseexpiredex_class, repleaseexpiredex_construct, - jmsg, err, jdbenv); - - case DB_REP_LEASE_TIMEOUT: - return (jthrowable)(*jenv)->NewObject(jenv, - repleasetimeoutex_class, repleasetimeoutex_construct, - jmsg, err, jdbenv); - - case DB_REP_LOCKOUT: - return (jthrowable)(*jenv)->NewObject(jenv, - replockoutex_class, replockoutex_construct, - jmsg, err, jdbenv); - - case DB_REP_UNAVAIL: - return (jthrowable)(*jenv)->NewObject(jenv, - repunavailex_class, repunavailex_construct, - jmsg, err, jdbenv); - - case DB_RUNRECOVERY: - return (jthrowable)(*jenv)->NewObject(jenv, runrecex_class, - runrecex_construct, jmsg, err, jdbenv); - - case DB_LOCK_DEADLOCK: - return (jthrowable)(*jenv)->NewObject(jenv, deadex_class, - deadex_construct, jmsg, err, jdbenv); - - case DB_LOCK_NOTGRANTED: - return (jthrowable)(*jenv)->NewObject(jenv, lockex_class, - lockex_construct, jmsg, err, 0, NULL, NULL, 0, jdbenv); - - case DB_VERSION_MISMATCH: - return (jthrowable)(*jenv)->NewObject(jenv, versionex_class, - versionex_construct, jmsg, err, jdbenv); - - default: - return (jthrowable)(*jenv)->NewObject(jenv, dbex_class, - dbex_construct, jmsg, err, jdbenv); - } -} - -static int __dbj_throw(JNIEnv *jenv, - int err, const char *msg, jobject obj, jobject jdbenv) -{ - jthrowable t; - - /* If an exception is pending, ignore requests to throw a new one. */ - if ((*jenv)->ExceptionOccurred(jenv) == NULL) { - t = __dbj_get_except(jenv, err, msg, obj, jdbenv); - if (t == NULL) { - /* - * This is a problem - something went wrong creating an - * exception. We have to assume there is an exception - * created by the JVM that is pending as a result - * (e.g., OutOfMemoryError), but we don't want to lose - * this error, so we just call __db_errx here. - */ - if (msg == NULL) - msg = db_strerror(err); - - __db_errx(NULL, "Couldn't create exception for: '%s'", - msg); - } else - (*jenv)->Throw(jenv, t); - } - - return (err); -} - - -typedef struct __dbt_locked { - JNIEnv *jenv; - jobject jdbt; - DBT dbt; - jobject jdata_nio; - jbyteArray jarr; - jint offset; - int reuse; - u_int32_t orig_size; - jsize array_len; -} DBT_LOCKED; - -static int __dbj_dbt_memcopy(DBT *dbt, u_int32_t offset, void *buf, u_int32_t size, u_int32_t flags) { - DBT_LOCKED *ldbt = dbt->app_data; - JNIEnv *jenv = ldbt->jenv; - - if (size == 0) - return (0); - else if (!F_ISSET(dbt, DB_DBT_USERCOPY)) { - /* - * For simplicity, the Java API calls this function directly, - * so it needs to work with regular DBTs. - */ - switch (flags) { - case DB_USERCOPY_GETDATA: - memcpy(buf, (u_int8_t *)dbt->data + offset, size); - return (0); - case DB_USERCOPY_SETDATA: - memcpy((u_int8_t *)dbt->data + offset, buf, size); - return (0); - default: - return (EINVAL); - } - } - - switch (flags) { - case DB_USERCOPY_GETDATA: - (*jenv)->GetByteArrayRegion(jenv, ldbt->jarr, ldbt->offset + - offset, size, buf); - break; - case DB_USERCOPY_SETDATA: - /* - * Check whether this is the first time through the callback by relying - * on the offset being zero. - */ - if (offset == 0 && (!ldbt->reuse || - (jsize)(ldbt->offset + dbt->size) > ldbt->array_len)) { - if (ldbt->jarr != NULL) - (*jenv)->DeleteLocalRef(jenv, ldbt->jarr); - ldbt->jarr = (*jenv)->NewByteArray(jenv, (jsize)dbt->size); - if (ldbt->jarr == NULL) - return (ENOMEM); - (*jenv)->SetObjectField(jenv, ldbt->jdbt, dbt_data_fid, ldbt->jarr); - /* We've allocated a new array, start from the beginning. */ - ldbt->offset = 0; - } - (*jenv)->SetByteArrayRegion(jenv, ldbt->jarr, ldbt->offset + - offset, size, buf); - break; - default: - return (EINVAL); - } - return ((*jenv)->ExceptionOccurred(jenv) ? EINVAL : 0); -} - -static void __dbj_dbt_copyout( - JNIEnv *jenv, const DBT *dbt, jbyteArray *jarr, jobject jdbt) -{ - jbyteArray newarr = (*jenv)->NewByteArray(jenv, (jsize)dbt->size); - if (newarr == NULL) - return; /* An exception is pending */ - (*jenv)->SetByteArrayRegion(jenv, newarr, 0, (jsize)dbt->size, - (jbyte *)dbt->data); - (*jenv)->SetObjectField(jenv, jdbt, dbt_data_fid, newarr); - (*jenv)->SetIntField(jenv, jdbt, dbt_offset_fid, 0); - (*jenv)->SetIntField(jenv, jdbt, dbt_size_fid, (jint)dbt->size); - if (jarr != NULL) - *jarr = newarr; - else - (*jenv)->DeleteLocalRef(jenv, newarr); -} - -static int __dbj_dbt_copyin( - JNIEnv *jenv, DBT_LOCKED *ldbt, DBT **dbtp, jobject jdbt, int allow_null) -{ - DBT *dbt; - jlong capacity; - - memset(ldbt, 0, sizeof (*ldbt)); - ldbt->jenv = jenv; - ldbt->jdbt = jdbt; - - if (jdbt == NULL) { - if (allow_null) { - *dbtp = NULL; - return (0); - } else { - return (__dbj_throw(jenv, EINVAL, - "DatabaseEntry must not be null", NULL, NULL)); - } - } - - dbt = &ldbt->dbt; - if (dbtp != NULL) - *dbtp = dbt; - - ldbt->jdata_nio = (*jenv)->GetObjectField(jenv, jdbt, dbt_data_nio_fid); - if (ldbt->jdata_nio != NULL) - F_SET(dbt, DB_DBT_USERMEM); - else - ldbt->jarr = (jbyteArray)(*jenv)->GetObjectField(jenv, jdbt, dbt_data_fid); - ldbt->offset = (*jenv)->GetIntField(jenv, jdbt, dbt_offset_fid); - dbt->size = (*jenv)->GetIntField(jenv, jdbt, dbt_size_fid); - ldbt->orig_size = dbt->size; - dbt->flags = (*jenv)->GetIntField(jenv, jdbt, dbt_flags_fid); - - if (F_ISSET(dbt, DB_DBT_USERMEM)) - dbt->ulen = (*jenv)->GetIntField(jenv, jdbt, dbt_ulen_fid); - if (F_ISSET(dbt, DB_DBT_PARTIAL)) { - dbt->dlen = (*jenv)->GetIntField(jenv, jdbt, dbt_dlen_fid); - dbt->doff = (*jenv)->GetIntField(jenv, jdbt, dbt_doff_fid); - - if ((jint)dbt->doff < 0) - return (__dbj_throw(jenv, EINVAL, "DatabaseEntry doff illegal", - NULL, NULL)); - } - - /* - * We don't support DB_DBT_REALLOC - map anything that's not USERMEM to - * MALLOC. - */ - if (!F_ISSET(dbt, DB_DBT_USERMEM)) { - ldbt->reuse = !F_ISSET(dbt, DB_DBT_MALLOC); - F_CLR(dbt, DB_DBT_MALLOC | DB_DBT_REALLOC); - } - - /* Verify parameters before allocating or locking data. */ - if (ldbt->jdata_nio != NULL) { - capacity = (*jenv)->GetDirectBufferCapacity(jenv, - ldbt->jdata_nio); - if (capacity > (jlong)UINT32_MAX) - return (__dbj_throw(jenv, EINVAL, - "DirectBuffer may not be larger than 4GB", - NULL, NULL)); - ldbt->array_len = (u_int32_t)capacity; - } else if (ldbt->jarr == NULL) { - /* - * Some code makes the assumption that if a DBT's size or ulen - * is non-zero, there is data to copy from dbt->data. - * - * Clean up the dbt fields so we don't run into trouble. - * (Note that doff, dlen, and flags all may contain - * meaningful values.) - */ - dbt->data = NULL; - ldbt->array_len = ldbt->offset = dbt->size = dbt->ulen = 0; - } else - ldbt->array_len = (*jenv)->GetArrayLength(jenv, ldbt->jarr); - - if (F_ISSET(dbt, DB_DBT_USERMEM)) { - if (ldbt->offset < 0) - return (__dbj_throw(jenv, EINVAL, - "offset cannot be negative", - NULL, NULL)); - if (dbt->size > dbt->ulen) - return (__dbj_throw(jenv, EINVAL, - "size must be less than or equal to ulen", - NULL, NULL)); - if ((jsize)(ldbt->offset + dbt->ulen) > ldbt->array_len) - return (__dbj_throw(jenv, EINVAL, - "offset + ulen greater than array length", - NULL, NULL)); - } - - if (ldbt->jdata_nio) { - dbt->data = (*jenv)->GetDirectBufferAddress(jenv, - ldbt->jdata_nio); - dbt->data = (u_int8_t *)dbt->data + ldbt->offset; - } else if (F_ISSET(dbt, DB_DBT_USERMEM)) { - if (ldbt->jarr != NULL && - (dbt->data = (*jenv)->GetByteArrayElements(jenv, - ldbt->jarr, NULL)) == NULL) - return (EINVAL); /* an exception will be pending */ - dbt->data = (u_int8_t *)dbt->data + ldbt->offset; - } else - F_SET(dbt, DB_DBT_USERCOPY); - dbt->app_data = ldbt; - - return (0); -} - -static void __dbj_dbt_release( - JNIEnv *jenv, jobject jdbt, DBT *dbt, DBT_LOCKED *ldbt) { - jthrowable t; - - if (dbt == NULL) - return; - - if (dbt->size != ldbt->orig_size) - (*jenv)->SetIntField(jenv, jdbt, dbt_size_fid, (jint)dbt->size); - - if (F_ISSET(dbt, DB_DBT_USERMEM)) { - if (ldbt->jarr != NULL) - (*jenv)->ReleaseByteArrayElements(jenv, ldbt->jarr, - (jbyte *)dbt->data - ldbt->offset, 0); - - if (dbt->size > dbt->ulen && - (t = (*jenv)->ExceptionOccurred(jenv)) != NULL && - (*jenv)->IsInstanceOf(jenv, t, memex_class)) { - (*jenv)->CallNonvirtualVoidMethod(jenv, t, memex_class, - memex_update_method, jdbt); - /* - * We have to rethrow the exception because calling - * into Java clears it. - */ - (*jenv)->Throw(jenv, t); - } - } -} - - -struct __dbj_verify_data { - JNIEnv *jenv; - jobject streamobj; - jbyteArray bytes; - int nbytes; -}; - -static int __dbj_verify_callback(void *handle, const void *str_arg) { - char *str; - struct __dbj_verify_data *vd; - int len; - JNIEnv *jenv; - - str = (char *)str_arg; - vd = (struct __dbj_verify_data *)handle; - jenv = vd->jenv; - len = strlen(str) + 1; - if (len > vd->nbytes) { - vd->nbytes = len; - if (vd->bytes != NULL) - (*jenv)->DeleteLocalRef(jenv, vd->bytes); - if ((vd->bytes = (*jenv)->NewByteArray(jenv, (jsize)len)) - == NULL) - return (ENOMEM); - } - - if (vd->bytes != NULL) { - (*jenv)->SetByteArrayRegion(jenv, vd->bytes, 0, (jsize)len, - (jbyte*)str); - (*jenv)->CallVoidMethod(jenv, vd->streamobj, - outputstream_write_method, vd->bytes, 0, len - 1); - } - - if ((*jenv)->ExceptionOccurred(jenv) != NULL) - return (EIO); - - return (0); -} - - -JNIEXPORT void JNICALL -Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1lock_1vec(JNIEnv *jenv, - jclass jcls, jlong jdbenvp, jint locker, jint flags, jobjectArray list, - jint offset, jint count) { - DB_ENV *dbenv; - DB_LOCKREQ *lockreq; - DB_LOCKREQ *prereq; /* preprocessed requests */ - DB_LOCKREQ *failedreq; - DB_LOCK *lockp; - DBT_LOCKED *locked_dbts; - DBT *obj; - int err, alloc_err, i; - size_t bytesize, ldbtsize; - jobject jlockreq; - db_lockop_t op; - jobject jobj, jlock, jdbenv; - jlong jlockp; - int completed; - - COMPQUIET(jcls, NULL); - dbenv = *(DB_ENV **)(void *)&jdbenvp; - jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - if (dbenv == NULL) { - __dbj_throw(jenv, EINVAL, "null object", NULL, jdbenv); - return; - } - - if ((*jenv)->GetArrayLength(jenv, list) < offset + count) { - __dbj_throw(jenv, EINVAL, - "DbEnv.lock_vec array not large enough", NULL, jdbenv); - goto out0; - } - - bytesize = sizeof(DB_LOCKREQ) * count; - if ((err = __os_malloc(dbenv, bytesize, &lockreq)) != 0) { - __dbj_throw(jenv, err, NULL, NULL, jdbenv); - goto out0; - } - memset(lockreq, 0, bytesize); - - ldbtsize = sizeof(DBT_LOCKED) * count; - if ((err = __os_malloc(dbenv, ldbtsize, &locked_dbts)) != 0) { - __dbj_throw(jenv, err, NULL, NULL, jdbenv); - goto out1; - } - memset(locked_dbts, 0, ldbtsize); - prereq = &lockreq[0]; - - /* fill in the lockreq array */ - for (i = 0, prereq = &lockreq[0]; i < count; i++, prereq++) { - jlockreq = (*jenv)->GetObjectArrayElement(jenv, list, - offset + i); - if (jlockreq == NULL) { - __dbj_throw(jenv, EINVAL, - "DbEnv.lock_vec list entry is null", NULL, jdbenv); - goto out2; - } - op = (*jenv)->GetIntField(jenv, jlockreq, lockreq_op_fid); - prereq->op = op; - - switch (op) { - case DB_LOCK_GET_TIMEOUT: - /* Needed: mode, timeout, obj. Returned: lock. */ - prereq->op = (*jenv)->GetIntField(jenv, jlockreq, - lockreq_timeout_fid); - /* FALLTHROUGH */ - case DB_LOCK_GET: - /* Needed: mode, obj. Returned: lock. */ - prereq->mode = (*jenv)->GetIntField(jenv, jlockreq, - lockreq_modeflag_fid); - jobj = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_obj_fid); - if ((err = __dbj_dbt_copyin(jenv, - &locked_dbts[i], &obj, jobj, 0)) != 0 || - (err = - __os_umalloc(dbenv, obj->size, &obj->data)) != 0 || - (err = __dbj_dbt_memcopy(obj, 0, - obj->data, obj->size, DB_USERCOPY_GETDATA)) != 0) - goto out2; - prereq->obj = obj; - break; - case DB_LOCK_PUT: - /* Needed: lock. Ignored: mode, obj. */ - jlock = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_lock_fid); - if (jlock == NULL || - (jlockp = (*jenv)->GetLongField(jenv, jlock, - lock_cptr_fid)) == 0L) { - __dbj_throw(jenv, EINVAL, - "LockRequest lock field is NULL", NULL, - jdbenv); - goto out2; - } - lockp = *(DB_LOCK **)(void *)&jlockp; - prereq->lock = *lockp; - break; - case DB_LOCK_PUT_ALL: - case DB_LOCK_TIMEOUT: - /* Needed: (none). Ignored: lock, mode, obj. */ - break; - case DB_LOCK_PUT_OBJ: - /* Needed: obj. Ignored: lock, mode. */ - jobj = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_obj_fid); - if ((err = __dbj_dbt_copyin(jenv, - &locked_dbts[i], &obj, jobj, 0)) != 0 || - (err = - __os_umalloc(dbenv, obj->size, &obj->data)) != 0 || - (err = __dbj_dbt_memcopy(obj, 0, - obj->data, obj->size, DB_USERCOPY_GETDATA)) != 0) - goto out2; - prereq->obj = obj; - break; - default: - __dbj_throw(jenv, EINVAL, - "DbEnv.lock_vec bad op value", NULL, jdbenv); - goto out2; - } - } - - err = dbenv->lock_vec(dbenv, (u_int32_t)locker, (u_int32_t)flags, - lockreq, count, &failedreq); - if (err == 0) - completed = count; - else - completed = failedreq - lockreq; - - /* do post processing for any and all requests that completed */ - for (i = 0; i < completed; i++) { - op = lockreq[i].op; - if (op == DB_LOCK_PUT) { - /* - * After a successful put, the DbLock can no longer be - * used, so we release the storage related to it. - */ - jlockreq = (*jenv)->GetObjectArrayElement(jenv, - list, i + offset); - jlock = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_lock_fid); - jlockp = (*jenv)->GetLongField(jenv, jlock, - lock_cptr_fid); - lockp = *(DB_LOCK **)(void *)&jlockp; - __os_free(NULL, lockp); - (*jenv)->SetLongField(jenv, jlock, lock_cptr_fid, - (jlong)0); - } - else if (op == DB_LOCK_GET) { - /* - * Store the lock that was obtained. We need to create - * storage for it since the lockreq array only exists - * during this method call. - */ - if ((alloc_err = - __os_malloc(dbenv, sizeof(DB_LOCK), &lockp)) != 0) { - __dbj_throw(jenv, alloc_err, NULL, NULL, - jdbenv); - goto out2; - } - - *lockp = lockreq[i].lock; - *(DB_LOCK **)(void *)&jlockp = lockp; - - jlockreq = (*jenv)->GetObjectArrayElement(jenv, - list, i + offset); - jlock = (*jenv)->NewObject(jenv, lock_class, - lock_construct, jlockp, JNI_TRUE); - if (jlock == NULL) - goto out2; /* An exception is pending */ - (*jenv)->SetLongField(jenv, jlock, lock_cptr_fid, - jlockp); - (*jenv)->SetObjectField(jenv, jlockreq, - lockreq_lock_fid, jlock); - } - } - - /* If one of the locks was not granted, build the exception now. */ - if (err == DB_LOCK_NOTGRANTED && i < count) { - jlockreq = (*jenv)->GetObjectArrayElement(jenv, list, - i + offset); - jobj = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_obj_fid); - jlock = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_lock_fid); - (*jenv)->Throw(jenv, - (*jenv)->NewObject(jenv, lockex_class, lockex_construct, - (*jenv)->NewStringUTF(jenv, "DbEnv.lock_vec incomplete"), - lockreq[i].op, lockreq[i].mode, jobj, jlock, i, jdbenv)); - } else if (err != 0) - __dbj_throw(jenv, err, NULL, NULL, jdbenv); - -out2: __os_free(dbenv, locked_dbts); -out1: for (i = 0, prereq = &lockreq[0]; i < count; i++, prereq++) - if ((prereq->op == DB_LOCK_GET || prereq->op == DB_LOCK_PUT) && - prereq->obj->data != NULL) - __os_ufree(dbenv, prereq->obj->data); - __os_free(dbenv, lockreq); -out0: return; -} - - -/* - * These macros are used by code generated by the s_java script. - */ -#define JAVADB_STAT_INT(jenv, jobj, fid, statp, name) \ - (*jenv)->SetIntField(jenv, jobj, fid, (jint)statp->name) - -#define JAVADB_STAT_STRING(jenv, jobj, fid, statp, name) \ - (*jenv)->SetObjectField(jenv, jobj, fid, \ - (*jenv)->NewStringUTF(jenv, statp->name)) - -#define JAVADB_STAT_LSN(jenv, jobj, fid, statp, name) \ - (*jenv)->SetObjectField(jenv, jobj, fid, \ - __dbj_wrap_DB_LSN(jenv, &statp->name)) - -#define JAVADB_STAT_LONG(jenv, jobj, fid, statp, name) \ - (*jenv)->SetLongField(jenv, jobj, fid, \ - (jlong)statp->name) - -#define JAVADB_STAT_XID(jenv, jobj, fid, statp, name) { \ - jobject jarr = \ - (*jenv)->NewByteArray(jenv, (jsize)DB_XIDDATASIZE); \ - (*jenv)->SetByteArrayRegion(jenv, jarr, \ - 0, (jsize)DB_XIDDATASIZE, (jbyte *)statp->name); \ - (*jenv)->SetObjectField(jenv, jobj, fid, jarr); \ - } - -/* - * We build the active list separately. - */ -#define JAVADB_STAT_ACTIVE(jenv, cl, jobj, statp, name) \ - do {} while(0) - -#include "java_stat_auto.c" - - -static void __dbj_error(const DB_ENV *dbenv, - const char *prefix, const char *msg) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - COMPQUIET(prefix, NULL); - - if (jdbenv != NULL) - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, dbenv_class, - errcall_method, (*jenv)->NewStringUTF(jenv, msg)); -} - -static void __dbj_env_feedback(DB_ENV *dbenv, int opcode, int percent) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - if (jdbenv != NULL) - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, dbenv_class, - env_feedback_method, opcode, percent); -} - -static void __dbj_message(const DB_ENV *dbenv, const char *msg) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - if (jdbenv != NULL) - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, dbenv_class, - msgcall_method, (*jenv)->NewStringUTF(jenv, msg)); -} - -static void __dbj_panic(DB_ENV *dbenv, int err) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - if (jdbenv != NULL) - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, dbenv_class, - paniccall_method, - __dbj_get_except(jenv, err, NULL, NULL, jdbenv)); -} - -static int __dbj_app_dispatch(DB_ENV *dbenv, - DBT *dbt, DB_LSN *lsn, db_recops recops) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - jobject jdbt, jlsn; - jbyteArray jdbtarr; - int ret; - - if (jdbenv == NULL) - return (EINVAL); - - jdbt = (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - __dbj_dbt_copyout(jenv, dbt, &jdbtarr, jdbt); - if (jdbt == NULL) - return (ENOMEM); /* An exception is pending */ - - jlsn = (lsn == NULL) ? NULL : __dbj_wrap_DB_LSN(jenv, lsn); - - ret = (*jenv)->CallNonvirtualIntMethod(jenv, jdbenv, dbenv_class, - app_dispatch_method, jdbt, jlsn, recops); - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - ret = EINVAL; - } - - (*jenv)->DeleteLocalRef(jenv, jdbtarr); - (*jenv)->DeleteLocalRef(jenv, jdbt); - if (jlsn != NULL) - (*jenv)->DeleteLocalRef(jenv, jlsn); - - return (ret); -} - -static void __dbj_event_notify(DB_ENV *dbenv, u_int32_t event_id, void * info) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - if (jdbenv == NULL) - return ; - - switch (event_id) { - case DB_EVENT_PANIC: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, panic_event_notify_method); - break; - case DB_EVENT_REP_CLIENT: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_client_event_notify_method); - break; - case DB_EVENT_REP_ELECTED: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_elected_event_notify_method); - break; - case DB_EVENT_REP_MASTER: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_master_event_notify_method); - break; - case DB_EVENT_REP_NEWMASTER: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_new_master_event_notify_method, - *(int*)info); - break; - case DB_EVENT_REP_PERM_FAILED: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_perm_failed_event_notify_method); - break; - case DB_EVENT_REP_STARTUPDONE: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_startup_done_event_notify_method); - break; - case DB_EVENT_WRITE_FAILED: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, write_failed_event_notify_method, - *(int*)info); - break; - default: - dbenv->errx(dbenv, "Unhandled event callback in the Java API"); - DB_ASSERT(dbenv, 0); - } -} - -static int __dbj_rep_transport(DB_ENV *dbenv, - const DBT *control, const DBT *rec, const DB_LSN *lsn, int envid, - u_int32_t flags) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - jobject jcontrol, jrec, jlsn; - jbyteArray jcontrolarr, jrecarr; - int ret; - - if (jdbenv == NULL) - return (EINVAL); - - jcontrol = (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - jrec = (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - if (jcontrol == NULL || jrec == NULL) - return (ENOMEM); /* An exception is pending */ - - __dbj_dbt_copyout(jenv, control, &jcontrolarr, jcontrol); - __dbj_dbt_copyout(jenv, rec, &jrecarr, jrec); - jlsn = (lsn == NULL) ? NULL : __dbj_wrap_DB_LSN(jenv, (DB_LSN *)lsn); - - if (jcontrolarr == NULL || jrecarr == NULL) - return (ENOMEM); /* An exception is pending */ - - ret = (*jenv)->CallNonvirtualIntMethod(jenv, jdbenv, dbenv_class, - rep_transport_method, jcontrol, jrec, jlsn, envid, flags); - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - ret = EINVAL; - } - - (*jenv)->DeleteLocalRef(jenv, jrecarr); - (*jenv)->DeleteLocalRef(jenv, jcontrolarr); - (*jenv)->DeleteLocalRef(jenv, jrec); - (*jenv)->DeleteLocalRef(jenv, jcontrol); - if (jlsn != NULL) - (*jenv)->DeleteLocalRef(jenv, jlsn); - - return (ret); -} - -static int __dbj_seckey_create(DB *db, - const DBT *key, const DBT *data, DBT *result) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jobject jkey, jdata, jresult; - jobjectArray jskeys; - jsize i, num_skeys; - jbyteArray jkeyarr, jdataarr; - DBT_LOCKED lresult; - DBT *tresult; - int ret; - - if (jdb == NULL) - return (EINVAL); - - jkey = (key->app_data != NULL) ? - ((DBT_LOCKED *)key->app_data)->jdbt : - (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - jdata = (data->app_data != NULL) ? - ((DBT_LOCKED *)data->app_data)->jdbt : - (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - if (jkey == NULL || jdata == NULL) - return (ENOMEM); /* An exception is pending */ - - if (key->app_data == NULL) { - __dbj_dbt_copyout(jenv, key, &jkeyarr, jkey); - if (jkeyarr == NULL) - return (ENOMEM); /* An exception is pending */ - } - if (data->app_data == NULL) { - __dbj_dbt_copyout(jenv, data, &jdataarr, jdata); - if (jdataarr == NULL) - return (ENOMEM); /* An exception is pending */ - } - - jskeys = (jobjectArray)(*jenv)->CallNonvirtualObjectMethod(jenv, - jdb, db_class, seckey_create_method, jkey, jdata); - - if (jskeys == NULL || - (num_skeys = (*jenv)->GetArrayLength(jenv, jskeys)) == 0) { - ret = DB_DONOTINDEX; - goto err; - } else if (num_skeys == 1) { - memset(result, 0, sizeof (DBT)); - tresult = result; - } else { - if ((ret = __os_umalloc(db->dbenv, - num_skeys * sizeof (DBT), &result->data)) != 0) - goto err; - memset(result->data, 0, num_skeys * sizeof (DBT)); - result->size = num_skeys; - F_SET(result, DB_DBT_APPMALLOC | DB_DBT_MULTIPLE); - tresult = (DBT *)result->data; - } - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - ret = EINVAL; - goto err; - } - - for (i = 0; i < num_skeys; i++, tresult++) { - jresult = (*jenv)->GetObjectArrayElement(jenv, jskeys, i); - - if ((ret = - __dbj_dbt_copyin(jenv, &lresult, NULL, jresult, 0)) != 0) - goto err; - - if (lresult.dbt.size != 0) { - /* If there's data, we need to take a copy of it. */ - tresult->size = lresult.dbt.size; - if ((ret = __os_umalloc(NULL, - tresult->size, &tresult->data)) != 0) - goto err; - if ((ret = __dbj_dbt_memcopy(&lresult.dbt, 0, - tresult->data, tresult->size, - DB_USERCOPY_GETDATA)) != 0) - goto err; - __dbj_dbt_release(jenv, - jresult, &lresult.dbt, &lresult); - (*jenv)->DeleteLocalRef(jenv, lresult.jarr); - F_SET(tresult, DB_DBT_APPMALLOC); - } - - (*jenv)->DeleteLocalRef(jenv, jresult); - } - -err: if (key->app_data == NULL) { - (*jenv)->DeleteLocalRef(jenv, jkeyarr); - (*jenv)->DeleteLocalRef(jenv, jkey); - } - if (data->app_data == NULL) { - (*jenv)->DeleteLocalRef(jenv, jdataarr); - (*jenv)->DeleteLocalRef(jenv, jdata); - } - - return (ret); -} - -static int __dbj_append_recno(DB *db, DBT *dbt, db_recno_t recno) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jobject jdbt; - DBT_LOCKED lresult; - jbyteArray jdbtarr; - int ret; - - if (jdb == NULL) - return (EINVAL); - - /* - * The dbt we're passed will be from the application, but we can't - * just reuse it, since we will have already taken a copy of the data. - * Make a new DatabaseEntry object here for the callback. - */ - jdbt = (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - if (jdbt == NULL) - return (ENOMEM); /* An exception is pending */ - - __dbj_dbt_copyout(jenv, dbt, &jdbtarr, jdbt); - if (jdbtarr == NULL) - return (ENOMEM); /* An exception is pending */ - - ret = 0; - (*jenv)->CallNonvirtualVoidMethod(jenv, jdb, db_class, - append_recno_method, jdbt, recno); - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - return (EINVAL); - } - - ret = __dbj_dbt_copyin(jenv, &lresult, NULL, jdbt, 0); - memset(dbt, 0, sizeof (DBT)); - - if (ret == 0 && lresult.dbt.size != 0) { - /* If there's data, we need to take a copy of it. */ - dbt->size = lresult.dbt.size; - if ((ret = - __os_umalloc(NULL, dbt->size, &dbt->data)) != 0) - goto err; - if ((ret = __dbj_dbt_memcopy(&lresult.dbt, 0, - dbt->data, dbt->size, - DB_USERCOPY_GETDATA)) != 0) - goto err; - __dbj_dbt_release(jenv, jdbt, &lresult.dbt, &lresult); - (*jenv)->DeleteLocalRef(jenv, lresult.jarr); - F_SET(dbt, DB_DBT_APPMALLOC); - } - -err: (*jenv)->DeleteLocalRef(jenv, jdbtarr); - (*jenv)->DeleteLocalRef(jenv, jdbt); - - return (ret); -} - -/* - * Shared by __dbj_bt_compare and __dbj_h_compare - */ -static int __dbj_am_compare(DB *db, const DBT *dbt1, const DBT *dbt2, - jmethodID compare_method) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jbyteArray jdbtarr1, jdbtarr2; - int ret; - - if (jdb == NULL) - return (EINVAL); - - if (dbt1->app_data != NULL) - jdbtarr1 = ((DBT_LOCKED *)dbt1->app_data)->jarr; - else { - jdbtarr1 = (*jenv)->NewByteArray(jenv, (jsize)dbt1->size); - if (jdbtarr1 == NULL) - return (ENOMEM); - (*jenv)->SetByteArrayRegion(jenv, jdbtarr1, 0, - (jsize)dbt1->size, (jbyte *)dbt1->data); - } - - if (dbt2->app_data != NULL) - jdbtarr2 = ((DBT_LOCKED *)dbt2->app_data)->jarr; - else { - jdbtarr2 = (*jenv)->NewByteArray(jenv, (jsize)dbt2->size); - if (jdbtarr2 == NULL) - return (ENOMEM); - (*jenv)->SetByteArrayRegion(jenv, jdbtarr2, 0, - (jsize)dbt2->size, (jbyte *)dbt2->data); - } - - ret = (int)(*jenv)->CallNonvirtualIntMethod(jenv, jdb, db_class, - compare_method, jdbtarr1, jdbtarr2); - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - ret = EINVAL; - } - - if (dbt1->app_data == NULL) - (*jenv)->DeleteLocalRef(jenv, jdbtarr1); - if (dbt2->app_data == NULL) - (*jenv)->DeleteLocalRef(jenv, jdbtarr2); - - return (ret); -} - -static int __dbj_bt_compare(DB *db, const DBT *dbt1, const DBT *dbt2) -{ - return __dbj_am_compare(db, dbt1, dbt2, bt_compare_method); -} - -static size_t __dbj_bt_prefix(DB *db, const DBT *dbt1, const DBT *dbt2) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jobject jdbt1, jdbt2; - jbyteArray jdbtarr1, jdbtarr2; - int ret; - - if (jdb == NULL) - return (EINVAL); - - if (dbt1->app_data != NULL) - jdbt1 = ((DBT_LOCKED *)dbt1->app_data)->jdbt; - else { - if ((jdbt1 = - (*jenv)->NewObject(jenv, dbt_class, dbt_construct)) == NULL) - return (ENOMEM); /* An exception is pending */ - __dbj_dbt_copyout(jenv, dbt1, &jdbtarr1, jdbt1); - if (jdbtarr1 == NULL) - return (ENOMEM); /* An exception is pending */ - } - - if (dbt2->app_data != NULL) - jdbt2 = ((DBT_LOCKED *)dbt2->app_data)->jdbt; - else { - if ((jdbt2 = - (*jenv)->NewObject(jenv, dbt_class, dbt_construct)) == NULL) - return (ENOMEM); /* An exception is pending */ - __dbj_dbt_copyout(jenv, dbt2, &jdbtarr2, jdbt2); - if (jdbtarr2 == NULL) - return (ENOMEM); /* An exception is pending */ - } - - ret = (int)(*jenv)->CallNonvirtualIntMethod(jenv, jdb, db_class, - bt_prefix_method, jdbt1, jdbt2); - - if (dbt1->app_data == NULL) { - (*jenv)->DeleteLocalRef(jenv, jdbtarr1); - (*jenv)->DeleteLocalRef(jenv, jdbt1); - } - if (dbt2->app_data == NULL) { - (*jenv)->DeleteLocalRef(jenv, jdbtarr2); - (*jenv)->DeleteLocalRef(jenv, jdbt2); - } - - return (ret); -} - -static int __dbj_dup_compare(DB *db, const DBT *dbt1, const DBT *dbt2) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jbyteArray jdbtarr1, jdbtarr2; - int ret; - - if (jdb == NULL) - return (EINVAL); - - jdbtarr1 = (*jenv)->NewByteArray(jenv, (jsize)dbt1->size); - if (jdbtarr1 == NULL) - return (ENOMEM); - (*jenv)->SetByteArrayRegion(jenv, jdbtarr1, 0, (jsize)dbt1->size, - (jbyte *)dbt1->data); - - jdbtarr2 = (*jenv)->NewByteArray(jenv, (jsize)dbt2->size); - if (jdbtarr2 == NULL) - return (ENOMEM); - (*jenv)->SetByteArrayRegion(jenv, jdbtarr2, 0, (jsize)dbt2->size, - (jbyte *)dbt2->data); - - ret = (int)(*jenv)->CallNonvirtualIntMethod(jenv, jdb, db_class, - dup_compare_method, jdbtarr1, jdbtarr2); - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - ret = EINVAL; - } - - (*jenv)->DeleteLocalRef(jenv, jdbtarr2); - (*jenv)->DeleteLocalRef(jenv, jdbtarr1); - - return (ret); -} - -static void __dbj_db_feedback(DB *db, int opcode, int percent) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - - if (jdb != NULL) - (*jenv)->CallNonvirtualVoidMethod(jenv, jdb, db_class, - db_feedback_method, opcode, percent); -} - -static int __dbj_h_compare(DB *db, const DBT *dbt1, const DBT *dbt2) -{ - return __dbj_am_compare(db, dbt1, dbt2, h_compare_method); -} - -static u_int32_t __dbj_h_hash(DB *db, const void *data, u_int32_t len) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jbyteArray jarr = (*jenv)->NewByteArray(jenv, (jsize)len); - int ret; - - if (jdb == NULL) - return (EINVAL); - - if ((jarr = (*jenv)->NewByteArray(jenv, (jsize)len)) == NULL) - return (ENOMEM); /* An exception is pending */ - - (*jenv)->SetByteArrayRegion(jenv, jarr, 0, (jsize)len, (jbyte *)data); - - ret = (int)(*jenv)->CallNonvirtualIntMethod(jenv, jdb, db_class, - h_hash_method, jarr, len); - - (*jenv)->DeleteLocalRef(jenv, jarr); - - return (ret); -} - - -JNIEXPORT jlong JNICALL -Java_com_sleepycat_db_internal_db_1javaJNI_initDbEnvRef0( - JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { - DB_ENV *self = *(DB_ENV **)(void *)&jarg1; - jlong ret; - COMPQUIET(jcls, NULL); - - DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2); - *(jobject *)(void *)&ret = (jobject)DB_ENV_INTERNAL(self); - return (ret); -} - -JNIEXPORT jlong JNICALL -Java_com_sleepycat_db_internal_db_1javaJNI_initDbRef0( - JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { - DB *self = *(DB **)(void *)&jarg1; - jlong ret; - COMPQUIET(jcls, NULL); - - DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2); - *(jobject *)(void *)&ret = (jobject)DB_INTERNAL(self); - return (ret); -} - -JNIEXPORT void JNICALL -Java_com_sleepycat_db_internal_db_1javaJNI_deleteRef0( - JNIEnv *jenv, jclass jcls, jlong jarg1) { - jobject jref = *(jobject *)(void *)&jarg1; - COMPQUIET(jcls, NULL); - - if (jref != 0L) - (*jenv)->DeleteGlobalRef(jenv, jref); -} - -JNIEXPORT jlong JNICALL -Java_com_sleepycat_db_internal_db_1javaJNI_getDbEnv0( - JNIEnv *jenv, jclass jcls, jlong jarg1) { - DB *self = *(DB **)(void *)&jarg1; - jlong ret; - - COMPQUIET(jenv, NULL); - COMPQUIET(jcls, NULL); - - *(DB_ENV **)(void *)&ret = self->dbenv; - return (ret); -} - -JNIEXPORT jboolean JNICALL -Java_com_sleepycat_db_internal_DbUtil_is_1big_1endian( - JNIEnv *jenv, jclass clazz) -{ - COMPQUIET(jenv, NULL); - COMPQUIET(clazz, NULL); - - return (__db_isbigendian() ? JNI_TRUE : JNI_FALSE); -} - - -typedef int db_ret_t; -typedef int int_bool; - -struct __db_lk_conflicts { - u_int8_t *lk_conflicts; - int lk_modes; -}; - -struct __db_out_stream { - void *handle; - int (*callback) __P((void *, const void *)); -}; - -struct __db_repmgr_sites { - DB_REPMGR_SITE *sites; - u_int32_t nsites; -}; - -#define Db __db -#define Dbc __dbc -#define Dbt __db_dbt -#define DbEnv __db_env -#define DbLock __db_lock_u -#define DbLogc __db_log_cursor -#define DbLsn __db_lsn -#define DbMpoolFile __db_mpoolfile -#define DbSequence __db_sequence -#define DbTxn __db_txn - -/* Suppress a compilation warning for an unused symbol */ -void *unused = SWIG_JavaThrowException; - -SWIGINTERN struct Db *new_Db(DB_ENV *dbenv,u_int32_t flags){ - DB *self = NULL; - errno = db_create(&self, dbenv, flags); - if (errno == 0 && dbenv == NULL) - self->dbenv->dbt_usercopy = __dbj_dbt_memcopy; - return self; - } -SWIGINTERN db_ret_t Db_associate(struct Db *self,DB_TXN *txnid,DB *secondary,int (*callback)(DB *,DBT const *,DBT const *,DBT *),u_int32_t flags){ - return self->associate(self, txnid, secondary, callback, flags); - } -SWIGINTERN db_ret_t Db_compact(struct Db *self,DB_TXN *txnid,DBT *start,DBT *stop,DB_COMPACT *c_data,u_int32_t flags,DBT *end){ - return self->compact(self, txnid, start, stop, c_data, flags, - end); - } -SWIGINTERN int Db_close(struct Db *self,u_int32_t flags){ - errno = self->close(self, flags); - return errno; - } -SWIGINTERN DBC *Db_cursor(struct Db *self,DB_TXN *txnid,u_int32_t flags){ - DBC *cursorp = NULL; - errno = self->cursor(self, txnid, &cursorp, flags); - return cursorp; - } -SWIGINTERN int Db_del(struct Db *self,DB_TXN *txnid,DBT *key,u_int32_t flags){ - return self->del(self, txnid, key, flags); - } -SWIGINTERN void Db_err(struct Db *self,int error,char const *message){ - self->err(self, error, message); - } -SWIGINTERN void Db_errx(struct Db *self,char const *message){ - self->errx(self, message); - } -SWIGINTERN int Db_exists(struct Db *self,DB_TXN *txnid,DBT *key,u_int32_t flags){ - return self->exists(self, txnid, key, flags); - } -SWIGINTERN int Db_get(struct Db *self,DB_TXN *txnid,DBT *key,DBT *data,u_int32_t flags){ - return self->get(self, txnid, key, data, flags); - } -SWIGINTERN int_bool Db_get_byteswapped(struct Db *self){ - int ret = 0; - errno = self->get_byteswapped(self, &ret); - return ret; - } -SWIGINTERN jlong Db_get_cachesize(struct Db *self){ - u_int32_t gbytes = 0, bytes = 0; - errno = self->get_cachesize(self, &gbytes, &bytes, NULL); - return (jlong)gbytes * GIGABYTE + bytes; - } -SWIGINTERN u_int32_t Db_get_cachesize_ncache(struct Db *self){ - int ret = 0; - errno = self->get_cachesize(self, NULL, NULL, &ret); - return ret; - } -SWIGINTERN char const *Db_get_filename(struct Db *self){ - const char *ret = NULL; - errno = self->get_dbname(self, &ret, NULL); - return ret; - } -SWIGINTERN char const *Db_get_dbname(struct Db *self){ - const char *ret = NULL; - errno = self->get_dbname(self, NULL, &ret); - return ret; - } -SWIGINTERN u_int32_t Db_get_encrypt_flags(struct Db *self){ - u_int32_t ret = 0; - CRYPTO_ONLY(errno = self->get_encrypt_flags(self, &ret)) - return ret; - } -SWIGINTERN u_int32_t Db_get_flags(struct Db *self){ - u_int32_t ret = 0; - errno = self->get_flags(self, &ret); - return ret; - } -SWIGINTERN int Db_get_lorder(struct Db *self){ - int ret = 0; - errno = self->get_lorder(self, &ret); - return ret; - } -SWIGINTERN DB_MPOOLFILE *Db_get_mpf(struct Db *self){ - errno = 0; - return self->get_mpf(self); - } -SWIGINTERN u_int32_t Db_get_open_flags(struct Db *self){ - u_int32_t ret = 0; - errno = self->get_open_flags(self, &ret); - return ret; - } -SWIGINTERN u_int32_t Db_get_pagesize(struct Db *self){ - u_int32_t ret = 0; - errno = self->get_pagesize(self, &ret); - return ret; - } -SWIGINTERN u_int32_t Db_get_bt_minkey(struct Db *self){ - u_int32_t ret = 0; - errno = self->get_bt_minkey(self, &ret); - return ret; - } -SWIGINTERN u_int32_t Db_get_h_ffactor(struct Db *self){ - u_int32_t ret = 0; - errno = self->get_h_ffactor(self, &ret); - return ret; - } -SWIGINTERN u_int32_t Db_get_h_nelem(struct Db *self){ - u_int32_t ret = 0; - errno = self->get_h_nelem(self, &ret); - return ret; - } -SWIGINTERN int Db_get_re_delim(struct Db *self){ - int ret = 0; - errno = self->get_re_delim(self, &ret); - return ret; - } -SWIGINTERN DB_CACHE_PRIORITY Db_get_priority(struct Db *self){ - DB_CACHE_PRIORITY ret; - errno = self->get_priority(self, &ret); - return ret; - } -SWIGINTERN u_int32_t Db_get_re_len(struct Db *self){ - u_int32_t ret = 0; - errno = self->get_re_len(self, &ret); - return ret; - } -SWIGINTERN int Db_get_re_pad(struct Db *self){ - int ret = 0; - errno = self->get_re_pad(self, &ret); - return ret; - } -SWIGINTERN char const *Db_get_re_source(struct Db *self){ - const char *ret = NULL; - errno = self->get_re_source(self, &ret); - return ret; - } -SWIGINTERN u_int32_t Db_get_q_extentsize(struct Db *self){ - u_int32_t ret = 0; - errno = self->get_q_extentsize(self, &ret); - return ret; - } -SWIGINTERN int_bool Db_get_multiple(struct Db *self){ - return self->get_multiple(self); - } -SWIGINTERN int_bool Db_get_transactional(struct Db *self){ - return self->get_transactional(self); - } -SWIGINTERN DBTYPE Db_get_type(struct Db *self){ - DBTYPE type = (DBTYPE)0; - errno = self->get_type(self, &type); - return type; - } -SWIGINTERN DBC *Db_join(struct Db *self,DBC **curslist,u_int32_t flags){ - DBC *dbcp = NULL; - errno = self->join(self, curslist, &dbcp, flags); - return dbcp; - } -SWIGINTERN db_ret_t Db_key_range(struct Db *self,DB_TXN *txnid,DBT *key,DB_KEY_RANGE *key_range,u_int32_t flags){ - return self->key_range(self, txnid, key, key_range, flags); - } -SWIGINTERN db_ret_t Db_open(struct Db *self,DB_TXN *txnid,char const *file,char const *database,DBTYPE type,u_int32_t flags,int mode){ - return (self->open)(self, txnid, file, database, - type, flags, mode); - } -SWIGINTERN int Db_pget(struct Db *self,DB_TXN *txnid,DBT *key,DBT *pkey,DBT *data,u_int32_t flags){ - return self->pget(self, txnid, key, pkey, data, flags); - } -SWIGINTERN int Db_put(struct Db *self,DB_TXN *txnid,DBT *key,DBT *data,u_int32_t flags){ - return self->put(self, txnid, key, data, flags); - } -SWIGINTERN db_ret_t Db_remove(struct Db *self,char const *file,char const *database,u_int32_t flags){ - return self->remove(self, file, database, flags); - } -SWIGINTERN db_ret_t Db_rename(struct Db *self,char const *file,char const *database,char const *newname,u_int32_t flags){ - return self->rename(self, file, database, newname, flags); - } -SWIGINTERN db_ret_t Db_set_append_recno(struct Db *self,int (*db_append_recno_fcn)(DB *,DBT *,db_recno_t)){ - return self->set_append_recno(self, db_append_recno_fcn); - } -SWIGINTERN db_ret_t Db_set_bt_compare(struct Db *self,int (*bt_compare_fcn)(DB *,DBT const *,DBT const *)){ - return self->set_bt_compare(self, bt_compare_fcn); - } -SWIGINTERN db_ret_t Db_set_bt_minkey(struct Db *self,u_int32_t bt_minkey){ - return self->set_bt_minkey(self, bt_minkey); - } -SWIGINTERN db_ret_t Db_set_bt_prefix(struct Db *self,size_t (*bt_prefix_fcn)(DB *,DBT const *,DBT const *)){ - return self->set_bt_prefix(self, bt_prefix_fcn); - } -SWIGINTERN db_ret_t Db_set_cachesize(struct Db *self,jlong bytes,int ncache){ - return self->set_cachesize(self, - (u_int32_t)(bytes / GIGABYTE), - (u_int32_t)(bytes % GIGABYTE), ncache); - } -SWIGINTERN db_ret_t Db_set_dup_compare(struct Db *self,int (*dup_compare_fcn)(DB *,DBT const *,DBT const *)){ - return self->set_dup_compare(self, dup_compare_fcn); - } -SWIGINTERN db_ret_t Db_set_encrypt(struct Db *self,char const *passwd,u_int32_t flags){ - return self->set_encrypt(self, passwd, flags); - } -SWIGINTERN db_ret_t Db_set_feedback(struct Db *self,void (*db_feedback_fcn)(DB *,int,int)){ - return self->set_feedback(self, db_feedback_fcn); - } -SWIGINTERN db_ret_t Db_set_flags(struct Db *self,u_int32_t flags){ - return self->set_flags(self, flags); - } -SWIGINTERN db_ret_t Db_set_h_compare(struct Db *self,int (*h_compare_fcn)(DB *,DBT const *,DBT const *)){ - return self->set_h_compare(self, h_compare_fcn); - } -SWIGINTERN db_ret_t Db_set_h_ffactor(struct Db *self,u_int32_t h_ffactor){ - return self->set_h_ffactor(self, h_ffactor); - } -SWIGINTERN db_ret_t Db_set_h_hash(struct Db *self,u_int32_t (*h_hash_fcn)(DB *,void const *,u_int32_t)){ - return self->set_h_hash(self, h_hash_fcn); - } -SWIGINTERN db_ret_t Db_set_h_nelem(struct Db *self,u_int32_t h_nelem){ - return self->set_h_nelem(self, h_nelem); - } -SWIGINTERN db_ret_t Db_set_lorder(struct Db *self,int lorder){ - return self->set_lorder(self, lorder); - } -SWIGINTERN db_ret_t Db_set_pagesize(struct Db *self,u_int32_t pagesize){ - return self->set_pagesize(self, pagesize); - } -SWIGINTERN db_ret_t Db_set_priority(struct Db *self,DB_CACHE_PRIORITY priority){ - return self->set_priority(self, priority); - } -SWIGINTERN db_ret_t Db_set_re_delim(struct Db *self,int re_delim){ - return self->set_re_delim(self, re_delim); - } -SWIGINTERN db_ret_t Db_set_re_len(struct Db *self,u_int32_t re_len){ - return self->set_re_len(self, re_len); - } -SWIGINTERN db_ret_t Db_set_re_pad(struct Db *self,int re_pad){ - return self->set_re_pad(self, re_pad); - } -SWIGINTERN db_ret_t Db_set_re_source(struct Db *self,char *source){ - return self->set_re_source(self, source); - } -SWIGINTERN db_ret_t Db_set_q_extentsize(struct Db *self,u_int32_t extentsize){ - return self->set_q_extentsize(self, extentsize); - } -SWIGINTERN void *Db_stat(struct Db *self,DB_TXN *txnid,u_int32_t flags){ - void *statp = NULL; - errno = self->stat(self, txnid, &statp, flags); - return statp; - } -SWIGINTERN db_ret_t Db_sync(struct Db *self,u_int32_t flags){ - return self->sync(self, flags); - } -SWIGINTERN int Db_truncate(struct Db *self,DB_TXN *txnid,u_int32_t flags){ - u_int32_t count = 0; - errno = self->truncate(self, txnid, &count, flags); - return count; - } -SWIGINTERN db_ret_t Db_upgrade(struct Db *self,char const *file,u_int32_t flags){ - return self->upgrade(self, file, flags); - } -SWIGINTERN int_bool Db_verify(struct Db *self,char const *file,char const *database,struct __db_out_stream outfile,u_int32_t flags){ - /* - * We can't easily #include "dbinc/db_ext.h" because of name - * clashes, so we declare this explicitly. - */ - extern int __db_verify_internal __P((DB *, const char *, const - char *, void *, int (*)(void *, const void *), u_int32_t)); - errno = __db_verify_internal(self, file, database, - outfile.handle, outfile.callback, flags); - if (errno == DB_VERIFY_BAD) { - errno = 0; - return 0; - } else - return 1; - } -SWIGINTERN db_ret_t Dbc_close(struct Dbc *self){ - return self->close(self); - } -SWIGINTERN db_recno_t Dbc_count(struct Dbc *self,u_int32_t flags){ - db_recno_t count = 0; - errno = self->count(self, &count, flags); - return count; - } -SWIGINTERN int Dbc_del(struct Dbc *self,u_int32_t flags){ - return self->del(self, flags); - } -SWIGINTERN DBC *Dbc_dup(struct Dbc *self,u_int32_t flags){ - DBC *newcurs = NULL; - errno = self->dup(self, &newcurs, flags); - return newcurs; - } -SWIGINTERN int Dbc_get(struct Dbc *self,DBT *key,DBT *data,u_int32_t flags){ - return self->get(self, key, data, flags); - } -SWIGINTERN DB_CACHE_PRIORITY Dbc_get_priority(struct Dbc *self){ - DB_CACHE_PRIORITY ret; - errno = self->get_priority(self, &ret); - return ret; - } -SWIGINTERN int Dbc_pget(struct Dbc *self,DBT *key,DBT *pkey,DBT *data,u_int32_t flags){ - return self->pget(self, key, pkey, data, flags); - } -SWIGINTERN int Dbc_put(struct Dbc *self,DBT *key,DBT *data,u_int32_t flags){ - return self->put(self, key, data, flags); - } -SWIGINTERN db_ret_t Dbc_set_priority(struct Dbc *self,DB_CACHE_PRIORITY priority){ - return self->set_priority(self, priority); - } -SWIGINTERN struct DbEnv *new_DbEnv(u_int32_t flags){ - DB_ENV *self = NULL; - errno = db_env_create(&self, flags); - if (errno == 0) - self->dbt_usercopy = __dbj_dbt_memcopy; - return self; - } -SWIGINTERN db_ret_t DbEnv_close(struct DbEnv *self,u_int32_t flags){ - return self->close(self, flags); - } -SWIGINTERN db_ret_t DbEnv_dbremove(struct DbEnv *self,DB_TXN *txnid,char const *file,char const *database,u_int32_t flags){ - return self->dbremove(self, txnid, file, database, flags); - } -SWIGINTERN db_ret_t DbEnv_dbrename(struct DbEnv *self,DB_TXN *txnid,char const *file,char const *database,char const *newname,u_int32_t flags){ - return self->dbrename(self, - txnid, file, database, newname, flags); - } -SWIGINTERN void DbEnv_err(struct DbEnv *self,int error,char const *message){ - self->err(self, error, message); - } -SWIGINTERN void DbEnv_errx(struct DbEnv *self,char const *message){ - self->errx(self, message); - } -SWIGINTERN DB_TXN *DbEnv_cdsgroup_begin(struct DbEnv *self){ - DB_TXN *tid = NULL; - errno = self->cdsgroup_begin(self, &tid); - return tid; - } -SWIGINTERN db_ret_t DbEnv_fileid_reset(struct DbEnv *self,char const *file,u_int32_t flags){ - return self->fileid_reset(self, file, flags); - } -SWIGINTERN char const **DbEnv_get_data_dirs(struct DbEnv *self){ - const char **ret; - errno = self->get_data_dirs(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_get_encrypt_flags(struct DbEnv *self){ - u_int32_t ret = 0; - CRYPTO_ONLY(errno = self->get_encrypt_flags(self, &ret)) - return ret; - } -SWIGINTERN u_int32_t DbEnv_get_flags(struct DbEnv *self){ - u_int32_t ret; - errno = self->get_flags(self, &ret); - return ret; - } -SWIGINTERN char const *DbEnv_get_home(struct DbEnv *self){ - const char *ret; - errno = self->get_home(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_get_open_flags(struct DbEnv *self){ - u_int32_t ret; - errno = self->get_open_flags(self, &ret); - return ret; - } -SWIGINTERN long DbEnv_get_shm_key(struct DbEnv *self){ - long ret; - errno = self->get_shm_key(self, &ret); - return ret; - } -SWIGINTERN char const *DbEnv_get_tmp_dir(struct DbEnv *self){ - const char *ret; - errno = self->get_tmp_dir(self, &ret); - return ret; - } -SWIGINTERN int_bool DbEnv_get_verbose(struct DbEnv *self,u_int32_t which){ - int ret; - errno = self->get_verbose(self, which, &ret); - return ret; - } -SWIGINTERN int_bool DbEnv_is_bigendian(struct DbEnv *self){ - return self->is_bigendian(); - } -SWIGINTERN db_ret_t DbEnv_lsn_reset(struct DbEnv *self,char const *file,u_int32_t flags){ - return self->lsn_reset(self, file, flags); - } -SWIGINTERN db_ret_t DbEnv_open(struct DbEnv *self,char const *db_home,u_int32_t flags,int mode){ - return (self->open)(self, db_home, flags, mode); - } -SWIGINTERN db_ret_t DbEnv_remove(struct DbEnv *self,char const *db_home,u_int32_t flags){ - return self->remove(self, db_home, flags); - } -SWIGINTERN db_ret_t DbEnv_set_cachesize(struct DbEnv *self,jlong bytes,int ncache){ - return self->set_cachesize(self, - (u_int32_t)(bytes / GIGABYTE), - (u_int32_t)(bytes % GIGABYTE), ncache); - } -SWIGINTERN db_ret_t DbEnv_set_cache_max(struct DbEnv *self,jlong bytes){ - return self->set_cache_max(self, - (u_int32_t)(bytes / GIGABYTE), - (u_int32_t)(bytes % GIGABYTE)); - } -SWIGINTERN db_ret_t DbEnv_set_data_dir(struct DbEnv *self,char const *dir){ - return self->set_data_dir(self, dir); - } -SWIGINTERN db_ret_t DbEnv_set_intermediate_dir(struct DbEnv *self,int mode,u_int32_t flags){ - return self->set_intermediate_dir(self, mode, flags); - } -SWIGINTERN db_ret_t DbEnv_set_encrypt(struct DbEnv *self,char const *passwd,u_int32_t flags){ - return self->set_encrypt(self, passwd, flags); - } -SWIGINTERN void DbEnv_set_errcall(struct DbEnv *self,void (*db_errcall_fcn)(DB_ENV const *,char const *,char const *)){ - self->set_errcall(self, db_errcall_fcn); - } -SWIGINTERN db_ret_t DbEnv_set_flags(struct DbEnv *self,u_int32_t flags,int_bool onoff){ - return self->set_flags(self, flags, onoff); - } -SWIGINTERN db_ret_t DbEnv_set_feedback(struct DbEnv *self,void (*env_feedback_fcn)(DB_ENV *,int,int)){ - return self->set_feedback(self, env_feedback_fcn); - } -SWIGINTERN db_ret_t DbEnv_set_mp_max_openfd(struct DbEnv *self,int maxopenfd){ - return self->set_mp_max_openfd(self, maxopenfd); - } -SWIGINTERN db_ret_t DbEnv_set_mp_max_write(struct DbEnv *self,int maxwrite,db_timeout_t maxwrite_sleep){ - return self->set_mp_max_write(self, maxwrite, maxwrite_sleep); - } -SWIGINTERN db_ret_t DbEnv_set_mp_mmapsize(struct DbEnv *self,size_t mp_mmapsize){ - return self->set_mp_mmapsize(self, mp_mmapsize); - } -SWIGINTERN void DbEnv_set_msgcall(struct DbEnv *self,void (*db_msgcall_fcn)(DB_ENV const *,char const *)){ - self->set_msgcall(self, db_msgcall_fcn); - } -SWIGINTERN db_ret_t DbEnv_set_paniccall(struct DbEnv *self,void (*db_panic_fcn)(DB_ENV *,int)){ - return self->set_paniccall(self, db_panic_fcn); - } -SWIGINTERN db_ret_t DbEnv_set_rpc_server(struct DbEnv *self,char *host,long cl_timeout,long sv_timeout,u_int32_t flags){ - return self->set_rpc_server(self, NULL, host, - cl_timeout, sv_timeout, flags); - } -SWIGINTERN db_ret_t DbEnv_set_shm_key(struct DbEnv *self,long shm_key){ - return self->set_shm_key(self, shm_key); - } -SWIGINTERN db_ret_t DbEnv_set_timeout(struct DbEnv *self,db_timeout_t timeout,u_int32_t flags){ - return self->set_timeout(self, timeout, flags); - } -SWIGINTERN db_ret_t DbEnv_set_tmp_dir(struct DbEnv *self,char const *dir){ - return self->set_tmp_dir(self, dir); - } -SWIGINTERN db_ret_t DbEnv_set_tx_max(struct DbEnv *self,u_int32_t max){ - return self->set_tx_max(self, max); - } -SWIGINTERN db_ret_t DbEnv_set_app_dispatch(struct DbEnv *self,int (*tx_recover)(DB_ENV *,DBT *,DB_LSN *,db_recops)){ - return self->set_app_dispatch(self, tx_recover); - } -SWIGINTERN db_ret_t DbEnv_set_event_notify(struct DbEnv *self,void (*event_notify)(DB_ENV *,u_int32_t,void *)){ - return self->set_event_notify(self, event_notify); - } -SWIGINTERN db_ret_t DbEnv_set_tx_timestamp(struct DbEnv *self,time_t *timestamp){ - return self->set_tx_timestamp(self, timestamp); - } -SWIGINTERN db_ret_t DbEnv_set_verbose(struct DbEnv *self,u_int32_t which,int_bool onoff){ - return self->set_verbose(self, which, onoff); - } -SWIGINTERN struct __db_lk_conflicts DbEnv_get_lk_conflicts(struct DbEnv *self){ - struct __db_lk_conflicts ret; - errno = self->get_lk_conflicts(self, - (const u_int8_t **)&ret.lk_conflicts, &ret.lk_modes); - return ret; - } -SWIGINTERN u_int32_t DbEnv_get_lk_detect(struct DbEnv *self){ - u_int32_t ret; - errno = self->get_lk_detect(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_get_lk_max_locks(struct DbEnv *self){ - u_int32_t ret; - errno = self->get_lk_max_locks(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_get_lk_max_lockers(struct DbEnv *self){ - u_int32_t ret; - errno = self->get_lk_max_lockers(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_get_lk_max_objects(struct DbEnv *self){ - u_int32_t ret; - errno = self->get_lk_max_objects(self, &ret); - return ret; - } -SWIGINTERN int DbEnv_lock_detect(struct DbEnv *self,u_int32_t flags,u_int32_t atype){ - int aborted; - errno = self->lock_detect(self, flags, atype, &aborted); - return aborted; - } -SWIGINTERN DB_LOCK *DbEnv_lock_get(struct DbEnv *self,u_int32_t locker,u_int32_t flags,DBT const *object,db_lockmode_t lock_mode){ - DB_LOCK *lock = NULL; - if ((errno = __os_malloc(self, sizeof (DB_LOCK), &lock)) == 0) - errno = self->lock_get(self, locker, flags, object, - lock_mode, lock); - return lock; - } -SWIGINTERN u_int32_t DbEnv_lock_id(struct DbEnv *self){ - u_int32_t id; - errno = self->lock_id(self, &id); - return id; - } -SWIGINTERN db_ret_t DbEnv_lock_id_free(struct DbEnv *self,u_int32_t id){ - return self->lock_id_free(self, id); - } -SWIGINTERN db_ret_t DbEnv_lock_put(struct DbEnv *self,DB_LOCK *lock){ - return self->lock_put(self, lock); - } -SWIGINTERN DB_LOCK_STAT *DbEnv_lock_stat(struct DbEnv *self,u_int32_t flags){ - DB_LOCK_STAT *statp = NULL; - errno = self->lock_stat(self, &statp, flags); - return statp; - } -SWIGINTERN db_ret_t DbEnv_set_lk_conflicts(struct DbEnv *self,struct __db_lk_conflicts conflicts){ - return self->set_lk_conflicts(self, - conflicts.lk_conflicts, conflicts.lk_modes); - } -SWIGINTERN db_ret_t DbEnv_set_lk_detect(struct DbEnv *self,u_int32_t detect){ - return self->set_lk_detect(self, detect); - } -SWIGINTERN db_ret_t DbEnv_set_lk_max_lockers(struct DbEnv *self,u_int32_t max){ - return self->set_lk_max_lockers(self, max); - } -SWIGINTERN db_ret_t DbEnv_set_lk_max_locks(struct DbEnv *self,u_int32_t max){ - return self->set_lk_max_locks(self, max); - } -SWIGINTERN db_ret_t DbEnv_set_lk_max_objects(struct DbEnv *self,u_int32_t max){ - return self->set_lk_max_objects(self, max); - } -SWIGINTERN u_int32_t DbEnv_get_lg_bsize(struct DbEnv *self){ - u_int32_t ret; - errno = self->get_lg_bsize(self, &ret); - return ret; - } -SWIGINTERN char const *DbEnv_get_lg_dir(struct DbEnv *self){ - const char *ret; - errno = self->get_lg_dir(self, &ret); - return ret; - } -SWIGINTERN int DbEnv_get_lg_filemode(struct DbEnv *self){ - int ret; - errno = self->get_lg_filemode(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_get_lg_max(struct DbEnv *self){ - u_int32_t ret; - errno = self->get_lg_max(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_get_lg_regionmax(struct DbEnv *self){ - u_int32_t ret; - errno = self->get_lg_regionmax(self, &ret); - return ret; - } -SWIGINTERN char **DbEnv_log_archive(struct DbEnv *self,u_int32_t flags){ - char **list = NULL; - errno = self->log_archive(self, &list, flags); - return list; - } -SWIGINTERN int DbEnv_log_compare(DB_LSN const *lsn0,DB_LSN const *lsn1){ - return log_compare(lsn0, lsn1); - } -SWIGINTERN DB_LOGC *DbEnv_log_cursor(struct DbEnv *self,u_int32_t flags){ - DB_LOGC *cursor = NULL; - errno = self->log_cursor(self, &cursor, flags); - return cursor; - } -SWIGINTERN char *DbEnv_log_file(struct DbEnv *self,DB_LSN *lsn){ - char namebuf[DB_MAXPATHLEN]; - errno = self->log_file(self, lsn, namebuf, sizeof namebuf); - return (errno == 0) ? strdup(namebuf) : NULL; - } -SWIGINTERN db_ret_t DbEnv_log_flush(struct DbEnv *self,DB_LSN const *lsn_or_null){ - return self->log_flush(self, lsn_or_null); - } -SWIGINTERN db_ret_t DbEnv_log_put(struct DbEnv *self,DB_LSN *lsn,DBT const *data,u_int32_t flags){ - return self->log_put(self, lsn, data, flags); - } -SWIGINTERN db_ret_t DbEnv_log_print(struct DbEnv *self,DB_TXN *txn,char const *msg){ - return self->log_printf(self, txn, "%s", msg); - } -SWIGINTERN DB_LOG_STAT *DbEnv_log_stat(struct DbEnv *self,u_int32_t flags){ - DB_LOG_STAT *sp = NULL; - errno = self->log_stat(self, &sp, flags); - return sp; - } -SWIGINTERN db_ret_t DbEnv_set_lg_bsize(struct DbEnv *self,u_int32_t lg_bsize){ - return self->set_lg_bsize(self, lg_bsize); - } -SWIGINTERN db_ret_t DbEnv_set_lg_dir(struct DbEnv *self,char const *dir){ - return self->set_lg_dir(self, dir); - } -SWIGINTERN db_ret_t DbEnv_set_lg_filemode(struct DbEnv *self,int mode){ - return self->set_lg_filemode(self, mode); - } -SWIGINTERN db_ret_t DbEnv_set_lg_max(struct DbEnv *self,u_int32_t lg_max){ - return self->set_lg_max(self, lg_max); - } -SWIGINTERN db_ret_t DbEnv_set_lg_regionmax(struct DbEnv *self,u_int32_t lg_regionmax){ - return self->set_lg_regionmax(self, lg_regionmax); - } -SWIGINTERN jlong DbEnv_get_cachesize(struct DbEnv *self){ - u_int32_t gbytes, bytes; - errno = self->get_cachesize(self, &gbytes, &bytes, NULL); - return (jlong)gbytes * GIGABYTE + bytes; - } -SWIGINTERN int DbEnv_get_cachesize_ncache(struct DbEnv *self){ - int ret; - errno = self->get_cachesize(self, NULL, NULL, &ret); - return ret; - } -SWIGINTERN jlong DbEnv_get_cache_max(struct DbEnv *self){ - u_int32_t gbytes, bytes; - errno = self->get_cache_max(self, &gbytes, &bytes); - return (jlong)gbytes * GIGABYTE + bytes; - } -SWIGINTERN int DbEnv_get_mp_max_openfd(struct DbEnv *self){ - int ret; - errno = self->get_mp_max_openfd(self, &ret); - return ret; - } -SWIGINTERN int DbEnv_get_mp_max_write(struct DbEnv *self){ - int maxwrite; - db_timeout_t sleep; - errno = self->get_mp_max_write(self, &maxwrite, &sleep); - return maxwrite; - } -SWIGINTERN db_timeout_t DbEnv_get_mp_max_write_sleep(struct DbEnv *self){ - int maxwrite; - db_timeout_t sleep; - errno = self->get_mp_max_write(self, &maxwrite, &sleep); - return sleep; - } -SWIGINTERN size_t DbEnv_get_mp_mmapsize(struct DbEnv *self){ - size_t ret; - errno = self->get_mp_mmapsize(self, &ret); - return ret; - } -SWIGINTERN DB_MPOOL_STAT *DbEnv_memp_stat(struct DbEnv *self,u_int32_t flags){ - DB_MPOOL_STAT *mp_stat = NULL; - errno = self->memp_stat(self, &mp_stat, NULL, flags); - return mp_stat; - } -SWIGINTERN DB_MPOOL_FSTAT **DbEnv_memp_fstat(struct DbEnv *self,u_int32_t flags){ - DB_MPOOL_FSTAT **mp_fstat = NULL; - errno = self->memp_stat(self, NULL, &mp_fstat, flags); - return mp_fstat; - } -SWIGINTERN int DbEnv_memp_trickle(struct DbEnv *self,int percent){ - int ret; - errno = self->memp_trickle(self, percent, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_mutex_get_align(struct DbEnv *self){ - u_int32_t ret; - errno = self->mutex_get_align(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_mutex_get_increment(struct DbEnv *self){ - u_int32_t ret; - errno = self->mutex_get_increment(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_mutex_get_max(struct DbEnv *self){ - u_int32_t ret; - errno = self->mutex_get_max(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_mutex_get_tas_spins(struct DbEnv *self){ - u_int32_t ret; - errno = self->mutex_get_tas_spins(self, &ret); - return ret; - } -SWIGINTERN db_ret_t DbEnv_mutex_set_align(struct DbEnv *self,u_int32_t align){ - return self->mutex_set_align(self, align); - } -SWIGINTERN db_ret_t DbEnv_mutex_set_increment(struct DbEnv *self,u_int32_t increment){ - return self->mutex_set_increment(self, increment); - } -SWIGINTERN db_ret_t DbEnv_mutex_set_max(struct DbEnv *self,u_int32_t mutex_max){ - return self->mutex_set_increment(self, mutex_max); - } -SWIGINTERN db_ret_t DbEnv_mutex_set_tas_spins(struct DbEnv *self,u_int32_t tas_spins){ - return self->mutex_set_tas_spins(self, tas_spins); - } -SWIGINTERN DB_MUTEX_STAT *DbEnv_mutex_stat(struct DbEnv *self,u_int32_t flags){ - DB_MUTEX_STAT *statp = NULL; - errno = self->mutex_stat(self, &statp, flags); - return statp; - } -SWIGINTERN u_int32_t DbEnv_get_tx_max(struct DbEnv *self){ - u_int32_t ret; - errno = self->get_tx_max(self, &ret); - return ret; - } -SWIGINTERN time_t DbEnv_get_tx_timestamp(struct DbEnv *self){ - time_t ret; - errno = self->get_tx_timestamp(self, &ret); - return ret; - } -SWIGINTERN db_timeout_t DbEnv_get_timeout(struct DbEnv *self,u_int32_t flag){ - db_timeout_t ret; - errno = self->get_timeout(self, &ret, flag); - return ret; - } -SWIGINTERN DB_TXN *DbEnv_txn_begin(struct DbEnv *self,DB_TXN *parent,u_int32_t flags){ - DB_TXN *tid = NULL; - errno = self->txn_begin(self, parent, &tid, flags); - return tid; - } -SWIGINTERN db_ret_t DbEnv_txn_checkpoint(struct DbEnv *self,u_int32_t kbyte,u_int32_t min,u_int32_t flags){ - return self->txn_checkpoint(self, kbyte, min, flags); - } -SWIGINTERN DB_PREPLIST *DbEnv_txn_recover(struct DbEnv *self,int count,u_int32_t flags){ - DB_PREPLIST *preplist; - long retcount; - - /* Add a NULL element to terminate the array. */ - if ((errno = __os_malloc(self, - (count + 1) * sizeof(DB_PREPLIST), &preplist)) != 0) - return NULL; - - if ((errno = self->txn_recover(self, preplist, count, - &retcount, flags)) != 0) { - __os_free(self, preplist); - return NULL; - } - - preplist[retcount].txn = NULL; - return preplist; - } -SWIGINTERN DB_TXN_STAT *DbEnv_txn_stat(struct DbEnv *self,u_int32_t flags){ - DB_TXN_STAT *statp = NULL; - errno = self->txn_stat(self, &statp, flags); - return statp; - } -SWIGINTERN jlong DbEnv_rep_get_limit(struct DbEnv *self){ - u_int32_t gbytes, bytes; - errno = self->rep_get_limit(self, &gbytes, &bytes); - return (jlong)gbytes * GIGABYTE + bytes; - } -SWIGINTERN db_ret_t DbEnv_rep_elect(struct DbEnv *self,int nsites,int nvotes,u_int32_t flags){ - return self->rep_elect(self, nsites, nvotes, flags); - } -SWIGINTERN int DbEnv_rep_process_message(struct DbEnv *self,DBT *control,DBT *rec,int envid,DB_LSN *ret_lsn){ - return self->rep_process_message(self, control, rec, envid, - ret_lsn); - } -SWIGINTERN db_ret_t DbEnv_rep_flush(struct DbEnv *self){ - return self->rep_flush(self); - } -SWIGINTERN db_ret_t DbEnv_rep_set_config(struct DbEnv *self,u_int32_t which,int_bool onoff){ - return self->rep_set_config(self, which, onoff); - } -SWIGINTERN db_ret_t DbEnv_rep_set_lease(struct DbEnv *self,u_int32_t clock_scale_factor,u_int32_t flags){ - return self->rep_set_lease(self, clock_scale_factor, flags); - } -SWIGINTERN db_ret_t DbEnv_rep_start(struct DbEnv *self,DBT *cdata,u_int32_t flags){ - return self->rep_start(self, cdata, flags); - } -SWIGINTERN db_ret_t DbEnv_rep_sync(struct DbEnv *self,u_int32_t flags){ - return self->rep_sync(self, flags); - } -SWIGINTERN int_bool DbEnv_rep_get_config(struct DbEnv *self,u_int32_t which){ - int ret; - errno = self->rep_get_config(self, which, &ret); - return ret; - } -SWIGINTERN DB_REP_STAT *DbEnv_rep_stat(struct DbEnv *self,u_int32_t flags){ - DB_REP_STAT *statp = NULL; - errno = self->rep_stat(self, &statp, flags); - return statp; - } -SWIGINTERN db_ret_t DbEnv_rep_set_limit(struct DbEnv *self,jlong bytes){ - return self->rep_set_limit(self, - (u_int32_t)(bytes / GIGABYTE), - (u_int32_t)(bytes % GIGABYTE)); - } -SWIGINTERN db_ret_t DbEnv_set_rep_request(struct DbEnv *self,u_int32_t min,u_int32_t max){ - return self->set_rep_request(self, min, max); - } -SWIGINTERN db_ret_t DbEnv_rep_set_transport(struct DbEnv *self,int envid,int (*send)(DB_ENV *,DBT const *,DBT const *,DB_LSN const *,int,u_int32_t)){ - return self->rep_set_transport(self, envid, send); - } -SWIGINTERN int DbEnv_rep_get_nsites(struct DbEnv *self){ - int ret; - errno = self->rep_get_nsites(self, &ret); - return ret; - } -SWIGINTERN int DbEnv_rep_get_priority(struct DbEnv *self){ - int ret; - errno = self->rep_get_priority(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbEnv_rep_get_timeout(struct DbEnv *self,int which){ - u_int32_t ret; - errno = self->rep_get_timeout(self, which, &ret); - return ret; - } -SWIGINTERN db_ret_t DbEnv_rep_set_nsites(struct DbEnv *self,int number){ - return self->rep_set_nsites(self, number); - } -SWIGINTERN db_ret_t DbEnv_rep_set_priority(struct DbEnv *self,int priority){ - return self->rep_set_priority(self, priority); - } -SWIGINTERN db_ret_t DbEnv_rep_set_timeout(struct DbEnv *self,int which,db_timeout_t timeout){ - return self->rep_set_timeout(self, which, timeout); - } -SWIGINTERN int DbEnv_repmgr_add_remote_site(struct DbEnv *self,char const *host,u_int32_t port,u_int32_t flags){ - int eid; - errno = self->repmgr_add_remote_site(self, host, port, &eid, flags); - return eid; - } -SWIGINTERN db_ret_t DbEnv_repmgr_get_ack_policy(struct DbEnv *self){ - int ret; - errno = self->repmgr_get_ack_policy(self, &ret); - return ret; - } -SWIGINTERN db_ret_t DbEnv_repmgr_set_ack_policy(struct DbEnv *self,int policy){ - return self->repmgr_set_ack_policy(self, policy); - } -SWIGINTERN db_ret_t DbEnv_repmgr_set_local_site(struct DbEnv *self,char const *host,u_int32_t port,u_int32_t flags){ - return self->repmgr_set_local_site(self, host, port, flags); - } -SWIGINTERN struct __db_repmgr_sites DbEnv_repmgr_site_list(struct DbEnv *self){ - struct __db_repmgr_sites sites; - errno = self->repmgr_site_list(self, - &sites.nsites, &sites.sites); - return sites; - } -SWIGINTERN db_ret_t DbEnv_repmgr_start(struct DbEnv *self,int nthreads,u_int32_t flags){ - return self->repmgr_start(self, nthreads, flags); - } -SWIGINTERN DB_REPMGR_STAT *DbEnv_repmgr_stat(struct DbEnv *self,u_int32_t flags){ - DB_REPMGR_STAT *statp = NULL; - errno = self->repmgr_stat(self, &statp, flags); - return statp; - } -SWIGINTERN char const *DbEnv_strerror(int error){ - return db_strerror(error); - } -SWIGINTERN int DbEnv_get_version_major(){ - return DB_VERSION_MAJOR; - } -SWIGINTERN int DbEnv_get_version_minor(){ - return DB_VERSION_MINOR; - } -SWIGINTERN int DbEnv_get_version_patch(){ - return DB_VERSION_PATCH; - } -SWIGINTERN char const *DbEnv_get_version_string(){ - return DB_VERSION_STRING; - } -SWIGINTERN void delete_DbLock(struct DbLock *self){ - __os_free(NULL, self); - } -SWIGINTERN db_ret_t DbLogc_close(struct DbLogc *self,u_int32_t flags){ - return self->close(self, flags); - } -SWIGINTERN int DbLogc_get(struct DbLogc *self,DB_LSN *lsn,DBT *data,u_int32_t flags){ - return self->get(self, lsn, data, flags); - } -SWIGINTERN u_int32_t DbLogc_version(struct DbLogc *self,u_int32_t flags){ - u_int32_t result; - errno = self->version(self, &result, flags); - return result; - } -SWIGINTERN DB_CACHE_PRIORITY DbMpoolFile_get_priority(struct DbMpoolFile *self){ - DB_CACHE_PRIORITY ret; - errno = self->get_priority(self, &ret); - return ret; - } -SWIGINTERN db_ret_t DbMpoolFile_set_priority(struct DbMpoolFile *self,DB_CACHE_PRIORITY priority){ - return self->set_priority(self, priority); - } -SWIGINTERN u_int32_t DbMpoolFile_get_flags(struct DbMpoolFile *self){ - u_int32_t ret; - errno = self->get_flags(self, &ret); - return ret; - } -SWIGINTERN db_ret_t DbMpoolFile_set_flags(struct DbMpoolFile *self,u_int32_t flags,int_bool onoff){ - return self->set_flags(self, flags, onoff); - } -SWIGINTERN jlong DbMpoolFile_get_maxsize(struct DbMpoolFile *self){ - u_int32_t gbytes, bytes; - errno = self->get_maxsize(self, &gbytes, &bytes); - return (jlong)gbytes * GIGABYTE + bytes; - } -SWIGINTERN db_ret_t DbMpoolFile_set_maxsize(struct DbMpoolFile *self,jlong bytes){ - return self->set_maxsize(self, - (u_int32_t)(bytes / GIGABYTE), - (u_int32_t)(bytes % GIGABYTE)); - } -SWIGINTERN struct DbSequence *new_DbSequence(DB *db,u_int32_t flags){ - DB_SEQUENCE *self = NULL; - errno = db_sequence_create(&self, db, flags); - return self; - } -SWIGINTERN db_ret_t DbSequence_close(struct DbSequence *self,u_int32_t flags){ - return self->close(self, flags); - } -SWIGINTERN db_seq_t DbSequence_get(struct DbSequence *self,DB_TXN *txnid,int32_t delta,u_int32_t flags){ - db_seq_t ret = 0; - errno = self->get(self, txnid, delta, &ret, flags); - return ret; - } -SWIGINTERN int32_t DbSequence_get_cachesize(struct DbSequence *self){ - int32_t ret = 0; - errno = self->get_cachesize(self, &ret); - return ret; - } -SWIGINTERN DB *DbSequence_get_db(struct DbSequence *self){ - DB *ret = NULL; - errno = self->get_db(self, &ret); - return ret; - } -SWIGINTERN u_int32_t DbSequence_get_flags(struct DbSequence *self){ - u_int32_t ret = 0; - errno = self->get_flags(self, &ret); - return ret; - } -SWIGINTERN db_ret_t DbSequence_get_key(struct DbSequence *self,DBT *key){ - return self->get_key(self, key); - } -SWIGINTERN db_seq_t DbSequence_get_range_min(struct DbSequence *self){ - db_seq_t ret = 0; - errno = self->get_range(self, &ret, NULL); - return ret; - } -SWIGINTERN db_seq_t DbSequence_get_range_max(struct DbSequence *self){ - db_seq_t ret = 0; - errno = self->get_range(self, NULL, &ret); - return ret; - } -SWIGINTERN db_ret_t DbSequence_initial_value(struct DbSequence *self,db_seq_t val){ - return self->initial_value(self, val); - } -SWIGINTERN db_ret_t DbSequence_open(struct DbSequence *self,DB_TXN *txnid,DBT *key,u_int32_t flags){ - return (self->open)(self, txnid, key, flags); - } -SWIGINTERN db_ret_t DbSequence_remove(struct DbSequence *self,DB_TXN *txnid,u_int32_t flags){ - return self->remove(self, txnid, flags); - } -SWIGINTERN db_ret_t DbSequence_set_cachesize(struct DbSequence *self,int32_t size){ - return self->set_cachesize(self, size); - } -SWIGINTERN db_ret_t DbSequence_set_flags(struct DbSequence *self,u_int32_t flags){ - return self->set_flags(self, flags); - } -SWIGINTERN db_ret_t DbSequence_set_range(struct DbSequence *self,db_seq_t min,db_seq_t max){ - return self->set_range(self, min, max); - } -SWIGINTERN DB_SEQUENCE_STAT *DbSequence_stat(struct DbSequence *self,u_int32_t flags){ - DB_SEQUENCE_STAT *ret = NULL; - errno = self->stat(self, &ret, flags); - return ret; - } -SWIGINTERN db_ret_t DbTxn_abort(struct DbTxn *self){ - return self->abort(self); - } -SWIGINTERN db_ret_t DbTxn_commit(struct DbTxn *self,u_int32_t flags){ - return self->commit(self, flags); - } -SWIGINTERN db_ret_t DbTxn_discard(struct DbTxn *self,u_int32_t flags){ - return self->discard(self, flags); - } -SWIGINTERN char const *DbTxn_get_name(struct DbTxn *self){ - const char *name = NULL; - errno = self->get_name(self, &name); - return name; - } -SWIGINTERN u_int32_t DbTxn_id(struct DbTxn *self){ - return self->id(self); - } -SWIGINTERN db_ret_t DbTxn_prepare(struct DbTxn *self,u_int8_t *gid){ - return self->prepare(self, gid); - } -SWIGINTERN db_ret_t DbTxn_set_timeout(struct DbTxn *self,db_timeout_t timeout,u_int32_t flags){ - return self->set_timeout(self, timeout, flags); - } -SWIGINTERN db_ret_t DbTxn_set_name(struct DbTxn *self,char const *name){ - return self->set_name(self, name); - } - -#ifdef __cplusplus -extern "C" { -#endif - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_new_1Db(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jlong jresult = 0 ; - DB_ENV *arg1 = (DB_ENV *) 0 ; - u_int32_t arg2 ; - struct Db *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(DB_ENV **)&jarg1; - arg2 = (u_int32_t)jarg2; - - errno = 0; - result = (struct Db *)new_Db(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - *(struct Db **)&jresult = result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1associate(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3, jboolean jarg4, jint jarg5) { - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - DB *arg3 = (DB *) 0 ; - int (*arg4)(DB *,DBT const *,DBT const *,DBT *) = (int (*)(DB *,DBT const *,DBT const *,DBT *)) 0 ; - u_int32_t arg5 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = *(DB **)&jarg3; - - arg4 = (jarg4 == JNI_TRUE) ? __dbj_seckey_create : NULL; - - arg5 = (u_int32_t)jarg5; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_associate(arg1,arg2,arg3,arg4,arg5); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1compact(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg3, jobject jarg4, jobject jarg5, jint jarg6, jobject jarg7) { - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - DBT *arg3 = (DBT *) 0 ; - DBT *arg4 = (DBT *) 0 ; - DB_COMPACT *arg5 = (DB_COMPACT *) 0 ; - u_int32_t arg6 ; - DBT *arg7 = (DBT *) 0 ; - db_ret_t result; - DBT_LOCKED ldbt3 ; - DBT_LOCKED ldbt4 ; - DB_COMPACT compact5 ; - DBT_LOCKED ldbt7 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 1) != 0) { - return ; /* An exception will be pending. */ - } - - if (__dbj_dbt_copyin(jenv, &ldbt4, &arg4, jarg4, 1) != 0) { - return ; /* An exception will be pending. */ - } - - memset(&compact5, 0, sizeof (DB_COMPACT)); - arg5 = &compact5; - arg5->compact_fillpercent = (*jenv)->GetIntField(jenv, jarg5, - compact_compact_fillpercent_fid); - arg5->compact_timeout = (*jenv)->GetIntField(jenv, jarg5, - compact_compact_timeout_fid); - arg5->compact_pages = (*jenv)->GetIntField(jenv, jarg5, - compact_compact_pages_fid); - - arg6 = (u_int32_t)jarg6; - - if (__dbj_dbt_copyin(jenv, &ldbt7, &arg7, jarg7, 1) != 0) { - return ; /* An exception will be pending. */ - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_compact(arg1,arg2,arg3,arg4,arg5,arg6,arg7); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - __dbj_dbt_release(jenv, jarg4, arg4, &ldbt4); - __dbj_fill_compact(jenv, jarg5, arg5); - __dbj_dbt_release(jenv, jarg7, arg7, &ldbt7); -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1close0(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t arg2 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)Db_close(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1cursor(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) { - jlong jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - u_int32_t arg3 ; - DBC *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DBC *)Db_cursor(arg1,arg2,arg3); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - *(DBC **)&jresult = result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1del(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg3, jint jarg4) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - DBT *arg3 = (DBT *) 0 ; - u_int32_t arg4 ; - int result; - DBT_LOCKED ldbt3 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - result = (int)Db_del(arg1,arg2,arg3,arg4); - if (!DB_RETOK_DBDEL(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1err(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jstring jarg3) { - struct Db *arg1 = (struct Db *) 0 ; - int arg2 ; - char *arg3 = (char *) 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (int)jarg2; - arg3 = 0; - if (jarg3) { - arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0); - if (!arg3) return ; - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - Db_err(arg1,arg2,(char const *)arg3); - if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, arg3); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1errx(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - char *arg2 = (char *) 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - Db_errx(arg1,(char const *)arg2); - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1exists(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg3, jint jarg4) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - DBT *arg3 = (DBT *) 0 ; - u_int32_t arg4 ; - int result; - DBT_LOCKED ldbt3 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - result = (int)Db_exists(arg1,arg2,arg3,arg4); - if (!DB_RETOK_EXISTS(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg3, jobject jarg4, jint jarg5) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - DBT *arg3 = (DBT *) 0 ; - DBT *arg4 = (DBT *) 0 ; - u_int32_t arg5 ; - int result; - DBT_LOCKED ldbt3 ; - DBT_LOCKED ldbt4 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return 0; /* An exception will be pending. */ - } - - if (__dbj_dbt_copyin(jenv, &ldbt4, &arg4, jarg4, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg5 = (u_int32_t)jarg5; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - result = (int)Db_get(arg1,arg2,arg3,arg4,arg5); - if (!DB_RETOK_DBGET(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - __dbj_dbt_release(jenv, jarg4, arg4, &ldbt4); - return jresult; -} - - -JNIEXPORT jboolean JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1byteswapped(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jboolean jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - int_bool result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int_bool)Db_get_byteswapped(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (result) ? JNI_TRUE : JNI_FALSE; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1cachesize(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - jlong result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = Db_get_cachesize(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1cachesize_1ncache(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)Db_get_cachesize_ncache(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1filename(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jstring jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - char *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (char *)Db_get_filename(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - if(result) jresult = (*jenv)->NewStringUTF(jenv, result); - return jresult; -} - - -JNIEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1dbname(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jstring jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - char *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (char *)Db_get_dbname(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - if(result) jresult = (*jenv)->NewStringUTF(jenv, result); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1encrypt_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)Db_get_encrypt_flags(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)Db_get_flags(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1lorder(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)Db_get_lorder(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1mpf(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DB_MPOOLFILE *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_MPOOLFILE *)Db_get_mpf(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - *(DB_MPOOLFILE **)&jresult = result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1open_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)Db_get_open_flags(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1pagesize(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)Db_get_pagesize(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1bt_1minkey(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)Db_get_bt_minkey(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1h_1ffactor(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)Db_get_h_ffactor(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1h_1nelem(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)Db_get_h_nelem(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1re_1delim(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)Db_get_re_delim(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1priority(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DB_CACHE_PRIORITY result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_CACHE_PRIORITY)Db_get_priority(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1re_1len(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)Db_get_re_len(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1re_1pad(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)Db_get_re_pad(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1re_1source(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jstring jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - char *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (char *)Db_get_re_source(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - if(result) jresult = (*jenv)->NewStringUTF(jenv, result); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1q_1extentsize(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)Db_get_q_extentsize(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jboolean JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1multiple(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jboolean jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - int_bool result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - result = (int_bool)Db_get_multiple(arg1); - jresult = (result) ? JNI_TRUE : JNI_FALSE; - return jresult; -} - - -JNIEXPORT jboolean JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1transactional(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jboolean jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - int_bool result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - result = (int_bool)Db_get_transactional(arg1); - jresult = (result) ? JNI_TRUE : JNI_FALSE; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1get_1type(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DBTYPE result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DBTYPE)Db_get_type(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1join(JNIEnv *jenv, jclass jcls, jlong jarg1, jobjectArray jarg2, jint jarg3) { - jlong jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DBC **arg2 = (DBC **) 0 ; - u_int32_t arg3 ; - DBC *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - { - int i, count, err; - - count = (*jenv)->GetArrayLength(jenv, jarg2); - if ((err = __os_malloc(NULL, (count + 1) * sizeof(DBC *), &arg2)) != 0) { - __dbj_throw(jenv, err, NULL, NULL, DB2JDBENV); - return 0; - } - for (i = 0; i < count; i++) { - jobject jobj = (*jenv)->GetObjectArrayElement(jenv, jarg2, i); - /* - * A null in the array is treated as an endpoint. - */ - if (jobj == NULL) { - arg2[i] = NULL; - break; - } else { - jlong jptr = (*jenv)->GetLongField(jenv, jobj, - dbc_cptr_fid); - arg2[i] = *(DBC **)(void *)&jptr; - } - } - arg2[count] = NULL; - } - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DBC *)Db_join(arg1,arg2,arg3); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - *(DBC **)&jresult = result; - - __os_free(NULL, arg2); - - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1key_1range(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg3, jobject jarg4, jint jarg5) { - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - DBT *arg3 = (DBT *) 0 ; - DB_KEY_RANGE *arg4 = (DB_KEY_RANGE *) 0 ; - u_int32_t arg5 ; - db_ret_t result; - DBT_LOCKED ldbt3 ; - DB_KEY_RANGE range4 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return ; /* An exception will be pending. */ - } - { - arg4 = &range4; - } - arg5 = (u_int32_t)jarg5; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_key_range(arg1,arg2,arg3,arg4,arg5); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - { - (*jenv)->SetDoubleField(jenv, jarg4, kr_less_fid, arg4->less); - (*jenv)->SetDoubleField(jenv, jarg4, kr_equal_fid, arg4->equal); - (*jenv)->SetDoubleField(jenv, jarg4, kr_greater_fid, arg4->greater); - } - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1open(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jstring jarg3, jstring jarg4, jint jarg5, jint jarg6, jint jarg7) { - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - char *arg3 = (char *) 0 ; - char *arg4 = (char *) 0 ; - DBTYPE arg5 ; - u_int32_t arg6 ; - int arg7 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = 0; - if (jarg3) { - arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0); - if (!arg3) return ; - } - arg4 = 0; - if (jarg4) { - arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0); - if (!arg4) return ; - } - arg5 = (DBTYPE)jarg5; - arg6 = (u_int32_t)jarg6; - arg7 = (int)jarg7; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_open(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,arg7); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, arg3); - if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, arg4); -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1pget(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg3, jobject jarg4, jobject jarg5, jint jarg6) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - DBT *arg3 = (DBT *) 0 ; - DBT *arg4 = (DBT *) 0 ; - DBT *arg5 = (DBT *) 0 ; - u_int32_t arg6 ; - int result; - DBT_LOCKED ldbt3 ; - DBT_LOCKED ldbt4 ; - DBT_LOCKED ldbt5 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return 0; /* An exception will be pending. */ - } - - if (__dbj_dbt_copyin(jenv, &ldbt4, &arg4, jarg4, 0) != 0) { - return 0; /* An exception will be pending. */ - } - - if (__dbj_dbt_copyin(jenv, &ldbt5, &arg5, jarg5, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg6 = (u_int32_t)jarg6; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - result = (int)Db_pget(arg1,arg2,arg3,arg4,arg5,arg6); - if (!DB_RETOK_DBGET(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - __dbj_dbt_release(jenv, jarg4, arg4, &ldbt4); - __dbj_dbt_release(jenv, jarg5, arg5, &ldbt5); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1put(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg3, jobject jarg4, jint jarg5) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - DBT *arg3 = (DBT *) 0 ; - DBT *arg4 = (DBT *) 0 ; - u_int32_t arg5 ; - int result; - DBT_LOCKED ldbt3 ; - DBT_LOCKED ldbt4 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return 0; /* An exception will be pending. */ - } - - if (__dbj_dbt_copyin(jenv, &ldbt4, &arg4, jarg4, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg5 = (u_int32_t)jarg5; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - result = (int)Db_put(arg1,arg2,arg3,arg4,arg5); - if (!DB_RETOK_DBPUT(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - __dbj_dbt_release(jenv, jarg4, arg4, &ldbt4); - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1remove0(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3, jint jarg4) { - struct Db *arg1 = (struct Db *) 0 ; - char *arg2 = (char *) 0 ; - char *arg3 = (char *) 0 ; - u_int32_t arg4 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = 0; - if (jarg3) { - arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0); - if (!arg3) return ; - } - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_remove(arg1,(char const *)arg2,(char const *)arg3,arg4); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); - if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, arg3); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1rename0(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3, jstring jarg4, jint jarg5) { - struct Db *arg1 = (struct Db *) 0 ; - char *arg2 = (char *) 0 ; - char *arg3 = (char *) 0 ; - char *arg4 = (char *) 0 ; - u_int32_t arg5 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = 0; - if (jarg3) { - arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0); - if (!arg3) return ; - } - arg4 = 0; - if (jarg4) { - arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0); - if (!arg4) return ; - } - arg5 = (u_int32_t)jarg5; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_rename(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,arg5); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); - if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, arg3); - if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, arg4); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1append_1recno(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - int (*arg2)(DB *,DBT *,db_recno_t) = (int (*)(DB *,DBT *,db_recno_t)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_append_recno : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_append_recno(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1bt_1compare(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - int (*arg2)(DB *,DBT const *,DBT const *) = (int (*)(DB *,DBT const *,DBT const *)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_bt_compare : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_bt_compare(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1bt_1minkey(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_bt_minkey(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1bt_1prefix(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - size_t (*arg2)(DB *,DBT const *,DBT const *) = (size_t (*)(DB *,DBT const *,DBT const *)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_bt_prefix : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_bt_prefix(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1cachesize(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) { - struct Db *arg1 = (struct Db *) 0 ; - jlong arg2 ; - int arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = jarg2; - arg3 = (int)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_cachesize(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1dup_1compare(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - int (*arg2)(DB *,DBT const *,DBT const *) = (int (*)(DB *,DBT const *,DBT const *)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_dup_compare : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_dup_compare(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1encrypt(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3) { - struct Db *arg1 = (struct Db *) 0 ; - char *arg2 = (char *) 0 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_encrypt(arg1,(char const *)arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1feedback(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - void (*arg2)(DB *,int,int) = (void (*)(DB *,int,int)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_db_feedback : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_feedback(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_flags(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1h_1compare(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - int (*arg2)(DB *,DBT const *,DBT const *) = (int (*)(DB *,DBT const *,DBT const *)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_h_compare : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_h_compare(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1h_1ffactor(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_h_ffactor(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1h_1hash(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t (*arg2)(DB *,void const *,u_int32_t) = (u_int32_t (*)(DB *,void const *,u_int32_t)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_h_hash : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_h_hash(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1h_1nelem(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_h_nelem(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1lorder(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - int arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (int)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_lorder(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1pagesize(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_pagesize(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1priority(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - DB_CACHE_PRIORITY arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (DB_CACHE_PRIORITY)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_priority(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1re_1delim(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - int arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (int)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_re_delim(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1re_1len(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_re_len(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1re_1pad(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - int arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (int)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_re_pad(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1re_1source(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - char *arg2 = (char *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_re_source(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1set_1q_1extentsize(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_set_q_extentsize(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1stat(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) { - jobject jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - u_int32_t arg3 ; - void *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (void *)Db_stat(arg1,arg2,arg3); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - - if (result == NULL) - jresult = NULL; - else { - DB *db = (DB *)arg1; - DBTYPE dbtype; - int err; - - if ((err = db->get_type(db, &dbtype)) != 0) { - __dbj_throw(jenv, err, NULL, NULL, DB2JDBENV); - return 0; - } - - switch (dbtype) { - /* Btree and recno share the same stat structure */ - case DB_BTREE: - case DB_RECNO: - jresult = (*jenv)->NewObject(jenv, bt_stat_class, - bt_stat_construct); - if (jresult != NULL) - __dbj_fill_bt_stat(jenv, jresult, - (DB_BTREE_STAT *)result); - break; - - /* Hash stat structure */ - case DB_HASH: - jresult = (*jenv)->NewObject(jenv, h_stat_class, - h_stat_construct); - if (jresult != NULL) - __dbj_fill_h_stat(jenv, jresult, - (DB_HASH_STAT *)result); - break; - - case DB_QUEUE: - jresult = (*jenv)->NewObject(jenv, qam_stat_class, - qam_stat_construct); - if (jresult != NULL) - __dbj_fill_qam_stat(jenv, jresult, - (DB_QUEUE_STAT *)result); - break; - - /* That's all the database types we're aware of! */ - default: - __dbj_throw(jenv, EINVAL, "Db.stat only implemented for" - " BTREE, HASH, QUEUE and RECNO", NULL, DB2JDBENV); - break; - } - - __os_ufree(db->dbenv, result); - } - - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1sync(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Db *arg1 = (struct Db *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_sync(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1truncate(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) { - jint jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - u_int32_t arg3 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)Db_truncate(arg1,arg2,arg3); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1upgrade(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3) { - struct Db *arg1 = (struct Db *) 0 ; - char *arg2 = (char *) 0 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Db_upgrade(arg1,(char const *)arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, DB2JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT jboolean JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Db_1verify0(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3, jobject jarg4, jint jarg5) { - jboolean jresult = 0 ; - struct Db *arg1 = (struct Db *) 0 ; - char *arg2 = (char *) 0 ; - char *arg3 = (char *) 0 ; - struct __db_out_stream arg4 ; - u_int32_t arg5 ; - int_bool result; - struct __dbj_verify_data data4 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Db **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return 0; - } - arg3 = 0; - if (jarg3) { - arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0); - if (!arg3) return 0; - } - { - data4.jenv = jenv; - data4.streamobj = jarg4; - data4.bytes = NULL; - data4.nbytes = 0; - (&arg4)->handle = &data4; - (&arg4)->callback = __dbj_verify_callback; - } - arg5 = (u_int32_t)jarg5; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int_bool)Db_verify(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = (result) ? JNI_TRUE : JNI_FALSE; - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); - if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, arg3); - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1close0(JNIEnv *jenv, jclass jcls, jlong jarg1) { - struct Dbc *arg1 = (struct Dbc *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Dbc **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)Dbc_close(arg1); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1count(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jint jresult = 0 ; - struct Dbc *arg1 = (struct Dbc *) 0 ; - u_int32_t arg2 ; - db_recno_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Dbc **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (db_recno_t)Dbc_count(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1del(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jint jresult = 0 ; - struct Dbc *arg1 = (struct Dbc *) 0 ; - u_int32_t arg2 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Dbc **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - result = (int)Dbc_del(arg1,arg2); - if (!DB_RETOK_DBCDEL(result)) { - __dbj_throw(jenv, result, NULL, NULL, DBC2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1dup(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jlong jresult = 0 ; - struct Dbc *arg1 = (struct Dbc *) 0 ; - u_int32_t arg2 ; - DBC *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Dbc **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DBC *)Dbc_dup(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV); - } - - *(DBC **)&jresult = result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2, jobject jarg3, jint jarg4) { - jint jresult = 0 ; - struct Dbc *arg1 = (struct Dbc *) 0 ; - DBT *arg2 = (DBT *) 0 ; - DBT *arg3 = (DBT *) 0 ; - u_int32_t arg4 ; - int result; - DBT_LOCKED ldbt2 ; - DBT_LOCKED ldbt3 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Dbc **)&jarg1; - - if (__dbj_dbt_copyin(jenv, &ldbt2, &arg2, jarg2, 0) != 0) { - return 0; /* An exception will be pending. */ - } - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - result = (int)Dbc_get(arg1,arg2,arg3,arg4); - if (!DB_RETOK_DBCGET(result)) { - __dbj_throw(jenv, result, NULL, NULL, DBC2JDBENV); - } - - jresult = (jint)result; - __dbj_dbt_release(jenv, jarg2, arg2, &ldbt2); - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1get_1priority(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct Dbc *arg1 = (struct Dbc *) 0 ; - DB_CACHE_PRIORITY result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Dbc **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_CACHE_PRIORITY)Dbc_get_priority(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1pget(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2, jobject jarg3, jobject jarg4, jint jarg5) { - jint jresult = 0 ; - struct Dbc *arg1 = (struct Dbc *) 0 ; - DBT *arg2 = (DBT *) 0 ; - DBT *arg3 = (DBT *) 0 ; - DBT *arg4 = (DBT *) 0 ; - u_int32_t arg5 ; - int result; - DBT_LOCKED ldbt2 ; - DBT_LOCKED ldbt3 ; - DBT_LOCKED ldbt4 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Dbc **)&jarg1; - - if (__dbj_dbt_copyin(jenv, &ldbt2, &arg2, jarg2, 0) != 0) { - return 0; /* An exception will be pending. */ - } - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return 0; /* An exception will be pending. */ - } - - if (__dbj_dbt_copyin(jenv, &ldbt4, &arg4, jarg4, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg5 = (u_int32_t)jarg5; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - result = (int)Dbc_pget(arg1,arg2,arg3,arg4,arg5); - if (!DB_RETOK_DBCGET(result)) { - __dbj_throw(jenv, result, NULL, NULL, DBC2JDBENV); - } - - jresult = (jint)result; - __dbj_dbt_release(jenv, jarg2, arg2, &ldbt2); - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - __dbj_dbt_release(jenv, jarg4, arg4, &ldbt4); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1put(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2, jobject jarg3, jint jarg4) { - jint jresult = 0 ; - struct Dbc *arg1 = (struct Dbc *) 0 ; - DBT *arg2 = (DBT *) 0 ; - DBT *arg3 = (DBT *) 0 ; - u_int32_t arg4 ; - int result; - DBT_LOCKED ldbt2 ; - DBT_LOCKED ldbt3 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct Dbc **)&jarg1; - - if (__dbj_dbt_copyin(jenv, &ldbt2, &arg2, jarg2, 0) != 0) { - return 0; /* An exception will be pending. */ - } - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - result = (int)Dbc_put(arg1,arg2,arg3,arg4); - if (!DB_RETOK_DBCPUT(result)) { - __dbj_throw(jenv, result, NULL, NULL, DBC2JDBENV); - } - - jresult = (jint)result; - __dbj_dbt_release(jenv, jarg2, arg2, &ldbt2); - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_Dbc_1set_1priority(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct Dbc *arg1 = (struct Dbc *) 0 ; - DB_CACHE_PRIORITY arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct Dbc **)&jarg1; - arg2 = (DB_CACHE_PRIORITY)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - errno = 0; - result = (db_ret_t)Dbc_set_priority(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV); - } - -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_new_1DbEnv(JNIEnv *jenv, jclass jcls, jint jarg1) { - jlong jresult = 0 ; - u_int32_t arg1 ; - struct DbEnv *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = (u_int32_t)jarg1; - - errno = 0; - result = (struct DbEnv *)new_DbEnv(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - *(struct DbEnv **)&jresult = result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1close0(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_close(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1dbremove(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jstring jarg3, jstring jarg4, jint jarg5) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - char *arg3 = (char *) 0 ; - char *arg4 = (char *) 0 ; - u_int32_t arg5 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = 0; - if (jarg3) { - arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0); - if (!arg3) return ; - } - arg4 = 0; - if (jarg4) { - arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0); - if (!arg4) return ; - } - arg5 = (u_int32_t)jarg5; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_dbremove(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, arg3); - if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, arg4); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1dbrename(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jstring jarg3, jstring jarg4, jstring jarg5, jint jarg6) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - char *arg3 = (char *) 0 ; - char *arg4 = (char *) 0 ; - char *arg5 = (char *) 0 ; - u_int32_t arg6 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = 0; - if (jarg3) { - arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0); - if (!arg3) return ; - } - arg4 = 0; - if (jarg4) { - arg4 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg4, 0); - if (!arg4) return ; - } - arg5 = 0; - if (jarg5) { - arg5 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg5, 0); - if (!arg5) return ; - } - arg6 = (u_int32_t)jarg6; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_dbrename(arg1,arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,arg6); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, arg3); - if (arg4) (*jenv)->ReleaseStringUTFChars(jenv, jarg4, arg4); - if (arg5) (*jenv)->ReleaseStringUTFChars(jenv, jarg5, arg5); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1err(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jstring jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - char *arg3 = (char *) 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - arg3 = 0; - if (jarg3) { - arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0); - if (!arg3) return ; - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - DbEnv_err(arg1,arg2,(char const *)arg3); - if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, arg3); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1errx(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - DbEnv_errx(arg1,(char const *)arg2); - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1cdsgroup_1begin(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DB_TXN *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - result = (DB_TXN *)DbEnv_cdsgroup_begin(arg1); - *(DB_TXN **)&jresult = result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1fileid_1reset(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - result = (db_ret_t)DbEnv_fileid_reset(arg1,(char const *)arg2,arg3); - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1data_1dirs(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jobjectArray jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char **result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (char **)DbEnv_get_data_dirs(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - { - if (result != NULL) { - /*@SWIG:STRING_ARRAY_OUT@*/ int i, len; - - len = 0; - while (result[len] != NULL) - len++; - if ((jresult = (*jenv)->NewObjectArray(jenv, (jsize)len, string_class, - NULL)) == NULL) - return 0; /* an exception is pending */ - for (i = 0; i < len; i++) { - jstring str = (*jenv)->NewStringUTF(jenv, result[i]); - (*jenv)->SetObjectArrayElement(jenv, jresult, (jsize)i, str); - } - /*@SWIG@*/ - } - } - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1encrypt_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_encrypt_flags(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_flags(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1home(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jstring jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (char *)DbEnv_get_home(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - if(result) jresult = (*jenv)->NewStringUTF(jenv, result); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1open_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_open_flags(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1shm_1key(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - long result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (long)DbEnv_get_shm_key(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jlong)result; - return jresult; -} - - -JNIEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1tmp_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jstring jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (char *)DbEnv_get_tmp_dir(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - if(result) jresult = (*jenv)->NewStringUTF(jenv, result); - return jresult; -} - - -JNIEXPORT jboolean JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1verbose(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jboolean jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - int_bool result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int_bool)DbEnv_get_verbose(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (result) ? JNI_TRUE : JNI_FALSE; - return jresult; -} - - -JNIEXPORT jboolean JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1is_1bigendian(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jboolean jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int_bool result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - result = (int_bool)DbEnv_is_bigendian(arg1); - jresult = (result) ? JNI_TRUE : JNI_FALSE; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1lsn_1reset(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_lsn_reset(arg1,(char const *)arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1open(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3, jint jarg4) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - u_int32_t arg3 ; - int arg4 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = (u_int32_t)jarg3; - arg4 = (int)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_open(arg1,(char const *)arg2,arg3,arg4); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1remove0(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_remove(arg1,(char const *)arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1cachesize(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - jlong arg2 ; - int arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = jarg2; - arg3 = (int)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_cachesize(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1cache_1max(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - jlong arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_cache_max(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1data_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_data_dir(arg1,(char const *)arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1intermediate_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_intermediate_dir(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1encrypt(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_encrypt(arg1,(char const *)arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1errcall(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - void (*arg2)(DB_ENV const *,char const *,char const *) = (void (*)(DB_ENV const *,char const *,char const *)) 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_error : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - DbEnv_set_errcall(arg1,arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jboolean jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - int_bool arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - arg3 = (jarg3 == JNI_TRUE); - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_flags(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1feedback(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - void (*arg2)(DB_ENV *,int,int) = (void (*)(DB_ENV *,int,int)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_env_feedback : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_feedback(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1mp_1max_1openfd(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_mp_max_openfd(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1mp_1max_1write(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jlong jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - db_timeout_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - arg3 = (db_timeout_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_mp_max_write(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1mp_1mmapsize(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - size_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (size_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_mp_mmapsize(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1msgcall(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - void (*arg2)(DB_ENV const *,char const *) = (void (*)(DB_ENV const *,char const *)) 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_message : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - DbEnv_set_msgcall(arg1,arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1paniccall(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - void (*arg2)(DB_ENV *,int) = (void (*)(DB_ENV *,int)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_panic : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_paniccall(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1rpc_1server(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jlong jarg3, jlong jarg4, jint jarg5) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - long arg3 ; - long arg4 ; - u_int32_t arg5 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = (long)jarg3; - arg4 = (long)jarg4; - arg5 = (u_int32_t)jarg5; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_rpc_server(arg1,arg2,arg3,arg4,arg5); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1shm_1key(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - long arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (long)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_shm_key(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1timeout(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - db_timeout_t arg2 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (db_timeout_t)jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_timeout(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1tmp_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_tmp_dir(arg1,(char const *)arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1tx_1max(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_tx_max(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1app_1dispatch(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int (*arg2)(DB_ENV *,DBT *,DB_LSN *,db_recops) = (int (*)(DB_ENV *,DBT *,DB_LSN *,db_recops)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_app_dispatch : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_app_dispatch(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1event_1notify(JNIEnv *jenv, jclass jcls, jlong jarg1, jboolean jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - void (*arg2)(DB_ENV *,u_int32_t,void *) = (void (*)(DB_ENV *,u_int32_t,void *)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - arg2 = (jarg2 == JNI_TRUE) ? __dbj_event_notify : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_event_notify(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1tx_1timestamp0(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - time_t *arg2 = (time_t *) 0 ; - db_ret_t result; - time_t time2 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - time2 = (time_t)jarg2; - arg2 = &time2; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_tx_timestamp(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1verbose(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jboolean jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - int_bool arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - arg3 = (jarg3 == JNI_TRUE); - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_verbose(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1lk_1conflicts(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jobjectArray jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - struct __db_lk_conflicts result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = DbEnv_get_lk_conflicts(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - { - int i; - jbyteArray bytes; - - jresult = (*jenv)->NewObjectArray(jenv, - (jsize)(&result)->lk_modes, bytearray_class, NULL); - if (jresult == NULL) - return 0; /* an exception is pending */ - for (i = 0; i < (&result)->lk_modes; i++) { - bytes = (*jenv)->NewByteArray(jenv, (jsize)(&result)->lk_modes); - if (bytes == NULL) - return 0; /* an exception is pending */ - (*jenv)->SetByteArrayRegion(jenv, bytes, 0, (jsize)(&result)->lk_modes, - (jbyte *)((&result)->lk_conflicts + i * (&result)->lk_modes)); - (*jenv)->SetObjectArrayElement(jenv, jresult, (jsize)i, bytes); - } - } - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1lk_1detect(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_lk_detect(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1lk_1max_1locks(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_lk_max_locks(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1lk_1max_1lockers(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_lk_max_lockers(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1lk_1max_1objects(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_lk_max_objects(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1lock_1detect(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - u_int32_t arg3 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)DbEnv_lock_detect(arg1,arg2,arg3); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1lock_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3, jobject jarg4, jint jarg5) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - u_int32_t arg3 ; - DBT *arg4 = (DBT *) 0 ; - db_lockmode_t arg5 ; - DB_LOCK *result = 0 ; - DBT_LOCKED ldbt4 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - arg3 = (u_int32_t)jarg3; - - if (__dbj_dbt_copyin(jenv, &ldbt4, &arg4, jarg4, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg5 = (db_lockmode_t)jarg5; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_LOCK *)DbEnv_lock_get(arg1,arg2,arg3,(struct Dbt const *)arg4,arg5); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - *(DB_LOCK **)&jresult = result; - __dbj_dbt_release(jenv, jarg4, arg4, &ldbt4); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1lock_1id(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_lock_id(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1lock_1id_1free(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_lock_id_free(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1lock_1put(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DB_LOCK *arg2 = (DB_LOCK *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = *(DB_LOCK **)&jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_lock_put(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1lock_1stat(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jobject jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - DB_LOCK_STAT *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_LOCK_STAT *)DbEnv_lock_stat(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - - jresult = (*jenv)->NewObject(jenv, lock_stat_class, lock_stat_construct); - if (jresult != NULL) - __dbj_fill_lock_stat(jenv, jresult, result); - __os_ufree(NULL, result); - - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lk_1conflicts(JNIEnv *jenv, jclass jcls, jlong jarg1, jobjectArray jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - struct __db_lk_conflicts arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - { - int i, len, err; - size_t bytesize; - - len = (&arg2)->lk_modes = (*jenv)->GetArrayLength(jenv, jarg2); - bytesize = sizeof(u_char) * len * len; - - if ((err = __os_malloc(NULL, bytesize, &(&arg2)->lk_conflicts)) != 0) { - __dbj_throw(jenv, err, NULL, NULL, JDBENV); - return ; - } - - for (i = 0; i < len; i++) { - jobject sub_array = (*jenv)->GetObjectArrayElement(jenv, - jarg2, i); - (*jenv)->GetByteArrayRegion(jenv,(jbyteArray)sub_array, 0, len, - (jbyte *)&(&arg2)->lk_conflicts[i * len]); - } - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_lk_conflicts(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - - __os_free(NULL, (&arg2)->lk_conflicts); - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lk_1detect(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_lk_detect(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lk_1max_1lockers(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_lk_max_lockers(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lk_1max_1locks(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_lk_max_locks(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lk_1max_1objects(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_lk_max_objects(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1lg_1bsize(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_lg_bsize(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1lg_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jstring jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (char *)DbEnv_get_lg_dir(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - if(result) jresult = (*jenv)->NewStringUTF(jenv, result); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1lg_1filemode(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)DbEnv_get_lg_filemode(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1lg_1max(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_lg_max(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1lg_1regionmax(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_lg_regionmax(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log_1archive(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jobjectArray jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - char **result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (char **)DbEnv_log_archive(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - { - if (result != NULL) { - /*@SWIG:STRING_ARRAY_OUT@*/ int i, len; - - len = 0; - while (result[len] != NULL) - len++; - if ((jresult = (*jenv)->NewObjectArray(jenv, (jsize)len, string_class, - NULL)) == NULL) - return 0; /* an exception is pending */ - for (i = 0; i < len; i++) { - jstring str = (*jenv)->NewStringUTF(jenv, result[i]); - (*jenv)->SetObjectArrayElement(jenv, jresult, (jsize)i, str); - } - /*@SWIG@*/ - __os_ufree(NULL, result); - } - } - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log_1compare(JNIEnv *jenv, jclass jcls, jobject jarg1, jobject jarg2) { - jint jresult = 0 ; - DB_LSN *arg1 = (DB_LSN *) 0 ; - DB_LSN *arg2 = (DB_LSN *) 0 ; - int result; - DB_LSN lsn1 ; - DB_LSN lsn2 ; - - (void)jenv; - (void)jcls; - - if (jarg1 == NULL) { - arg1 = NULL; - } else { - arg1 = &lsn1; - arg1->file = (*jenv)->GetIntField(jenv, jarg1, dblsn_file_fid); - arg1->offset = (*jenv)->GetIntField(jenv, jarg1, - dblsn_offset_fid); - } - - - if (jarg2 == NULL) { - arg2 = NULL; - } else { - arg2 = &lsn2; - arg2->file = (*jenv)->GetIntField(jenv, jarg2, dblsn_file_fid); - arg2->offset = (*jenv)->GetIntField(jenv, jarg2, - dblsn_offset_fid); - } - - - if (arg1 == NULL) { - __dbj_throw(jenv, EINVAL, "null LogSequenceNumber", NULL, NULL); - return 0; - } - - - if (arg2 == NULL) { - __dbj_throw(jenv, EINVAL, "null LogSequenceNumber", NULL, NULL); - return 0; - } - - result = (int)DbEnv_log_compare((struct DbLsn const *)arg1,(struct DbLsn const *)arg2); - jresult = (jint)result; - - if (jarg1 != NULL) { - (*jenv)->SetIntField(jenv, jarg1, dblsn_file_fid, arg1->file); - (*jenv)->SetIntField(jenv, jarg1, - dblsn_offset_fid, arg1->offset); - } - - - if (jarg2 != NULL) { - (*jenv)->SetIntField(jenv, jarg2, dblsn_file_fid, arg2->file); - (*jenv)->SetIntField(jenv, jarg2, - dblsn_offset_fid, arg2->offset); - } - - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log_1cursor(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - DB_LOGC *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_LOGC *)DbEnv_log_cursor(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - *(DB_LOGC **)&jresult = result; - return jresult; -} - - -JNIEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log_1file(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { - jstring jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DB_LSN *arg2 = (DB_LSN *) 0 ; - char *result = 0 ; - DB_LSN lsn2 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg2 == NULL) { - arg2 = NULL; - } else { - arg2 = &lsn2; - arg2->file = (*jenv)->GetIntField(jenv, jarg2, dblsn_file_fid); - arg2->offset = (*jenv)->GetIntField(jenv, jarg2, - dblsn_offset_fid); - } - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - if (arg2 == NULL) { - __dbj_throw(jenv, EINVAL, "null LogSequenceNumber", NULL, NULL); - return 0; - } - - - errno = 0; - result = (char *)DbEnv_log_file(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - if(result) jresult = (*jenv)->NewStringUTF(jenv, result); - - if (jarg2 != NULL) { - (*jenv)->SetIntField(jenv, jarg2, dblsn_file_fid, arg2->file); - (*jenv)->SetIntField(jenv, jarg2, - dblsn_offset_fid, arg2->offset); - } - - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log_1flush(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DB_LSN *arg2 = (DB_LSN *) 0 ; - db_ret_t result; - DB_LSN lsn2 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg2 == NULL) { - arg2 = NULL; - } else { - arg2 = &lsn2; - arg2->file = (*jenv)->GetIntField(jenv, jarg2, dblsn_file_fid); - arg2->offset = (*jenv)->GetIntField(jenv, jarg2, - dblsn_offset_fid); - } - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - - result = (db_ret_t)DbEnv_log_flush(arg1,(struct DbLsn const *)arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - - if (jarg2 != NULL) { - (*jenv)->SetIntField(jenv, jarg2, dblsn_file_fid, arg2->file); - (*jenv)->SetIntField(jenv, jarg2, - dblsn_offset_fid, arg2->offset); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log_1put(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2, jobject jarg3, jint jarg4) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DB_LSN *arg2 = (DB_LSN *) 0 ; - DBT *arg3 = (DBT *) 0 ; - u_int32_t arg4 ; - db_ret_t result; - DB_LSN lsn2 ; - DBT_LOCKED ldbt3 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg2 == NULL) { - arg2 = NULL; - } else { - arg2 = &lsn2; - arg2->file = (*jenv)->GetIntField(jenv, jarg2, dblsn_file_fid); - arg2->offset = (*jenv)->GetIntField(jenv, jarg2, - dblsn_offset_fid); - } - - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return ; /* An exception will be pending. */ - } - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - if (arg2 == NULL) { - __dbj_throw(jenv, EINVAL, "null LogSequenceNumber", NULL, NULL); - return ; - } - - - result = (db_ret_t)DbEnv_log_put(arg1,arg2,(struct Dbt const *)arg3,arg4); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - - if (jarg2 != NULL) { - (*jenv)->SetIntField(jenv, jarg2, dblsn_file_fid, arg2->file); - (*jenv)->SetIntField(jenv, jarg2, - dblsn_offset_fid, arg2->offset); - } - - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log_1print(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jstring jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - char *arg3 = (char *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = 0; - if (jarg3) { - arg3 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg3, 0); - if (!arg3) return ; - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_log_print(arg1,arg2,(char const *)arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg3) (*jenv)->ReleaseStringUTFChars(jenv, jarg3, arg3); -} - - -JNIEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1log_1stat(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jobject jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - DB_LOG_STAT *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_LOG_STAT *)DbEnv_log_stat(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - - jresult = (*jenv)->NewObject(jenv, log_stat_class, log_stat_construct); - if (jresult != NULL) - __dbj_fill_log_stat(jenv, jresult, result); - __os_ufree(NULL, result); - - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lg_1bsize(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_lg_bsize(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lg_1dir(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_lg_dir(arg1,(char const *)arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lg_1filemode(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_lg_filemode(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lg_1max(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_lg_max(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1lg_1regionmax(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_lg_regionmax(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1cachesize(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - jlong result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = DbEnv_get_cachesize(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1cachesize_1ncache(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)DbEnv_get_cachesize_ncache(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1cache_1max(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - jlong result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = DbEnv_get_cache_max(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1mp_1max_1openfd(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)DbEnv_get_mp_max_openfd(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1mp_1max_1write(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)DbEnv_get_mp_max_write(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1mp_1max_1write_1sleep(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - db_timeout_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (db_timeout_t)DbEnv_get_mp_max_write_sleep(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jlong)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1mp_1mmapsize(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - size_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = DbEnv_get_mp_mmapsize(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jlong)result; - return jresult; -} - - -JNIEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1memp_1stat(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jobject jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - DB_MPOOL_STAT *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_MPOOL_STAT *)DbEnv_memp_stat(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - - jresult = (*jenv)->NewObject(jenv, mpool_stat_class, mpool_stat_construct); - if (jresult != NULL) - __dbj_fill_mpool_stat(jenv, jresult, result); - __os_ufree(NULL, result); - - return jresult; -} - - -JNIEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1memp_1fstat(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jobjectArray jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - DB_MPOOL_FSTAT **result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_MPOOL_FSTAT **)DbEnv_memp_fstat(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - { - int i, len; - - len = 0; - while (result[len] != NULL) - len++; - jresult = (*jenv)->NewObjectArray(jenv, (jsize)len, - mpool_fstat_class, 0); - if (jresult == NULL) { - __os_ufree(NULL, result); - return 0; - } - for (i = 0; i < len; i++) { - jobject obj = (*jenv)->NewObject(jenv, mpool_fstat_class, - mpool_fstat_construct); - if (obj == NULL) { - __os_ufree(NULL, result); - return 0; /* an exception is pending */ - } - (*jenv)->SetObjectArrayElement(jenv, jresult, i, obj); - __dbj_fill_mpool_fstat(jenv, obj, result[i]); - } - __os_ufree(NULL, result); - } - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1memp_1trickle(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)DbEnv_memp_trickle(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mutex_1get_1align(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_mutex_get_align(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mutex_1get_1increment(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_mutex_get_increment(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mutex_1get_1max(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_mutex_get_max(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mutex_1get_1tas_1spins(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_mutex_get_tas_spins(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mutex_1set_1align(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_mutex_set_align(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mutex_1set_1increment(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_mutex_set_increment(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mutex_1set_1max(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_mutex_set_max(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mutex_1set_1tas_1spins(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_mutex_set_tas_spins(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1mutex_1stat(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jobject jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - DB_MUTEX_STAT *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_MUTEX_STAT *)DbEnv_mutex_stat(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - - jresult = (*jenv)->NewObject(jenv, mutex_stat_class, mutex_stat_construct); - if (jresult != NULL) - __dbj_fill_mutex_stat(jenv, jresult, result); - __os_ufree(NULL, result); - - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1tx_1max(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_get_tx_max(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1tx_1timestamp(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - time_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = DbEnv_get_tx_timestamp(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jlong)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1timeout(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_timeout_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (db_timeout_t)DbEnv_get_timeout(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jlong)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1txn_1begin(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - u_int32_t arg3 ; - DB_TXN *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_TXN *)DbEnv_txn_begin(arg1,arg2,arg3); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - *(DB_TXN **)&jresult = result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1txn_1checkpoint(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3, jint jarg4) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - u_int32_t arg3 ; - u_int32_t arg4 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - arg3 = (u_int32_t)jarg3; - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_txn_checkpoint(arg1,arg2,arg3,arg4); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1txn_1recover(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) { - jobjectArray jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - u_int32_t arg3 ; - DB_PREPLIST *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_PREPLIST *)DbEnv_txn_recover(arg1,arg2,arg3); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - { - int i, len; - - len = 0; - while (result[len].txn != NULL) - len++; - jresult = (*jenv)->NewObjectArray(jenv, (jsize)len, dbpreplist_class, - NULL); - if (jresult == NULL) - return 0; /* an exception is pending */ - for (i = 0; i < len; i++) { - jobject jtxn = (*jenv)->NewObject(jenv, dbtxn_class, - dbtxn_construct, result[i].txn, JNI_FALSE); - jobject bytearr = (*jenv)->NewByteArray(jenv, - (jsize)sizeof(result[i].gid)); - jobject obj = (*jenv)->NewObject(jenv, dbpreplist_class, - dbpreplist_construct, jtxn, bytearr); - - if (jtxn == NULL || bytearr == NULL || obj == NULL) - return 0; /* An exception is pending */ - - (*jenv)->SetByteArrayRegion(jenv, bytearr, 0, - (jsize)sizeof(result[i].gid), (jbyte *)result[i].gid); - (*jenv)->SetObjectArrayElement(jenv, jresult, i, obj); - } - __os_ufree(NULL, result); - } - return jresult; -} - - -JNIEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1txn_1stat(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jobject jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - DB_TXN_STAT *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_TXN_STAT *)DbEnv_txn_stat(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - { - unsigned int i; - jobjectArray actives; - jresult = (*jenv)->NewObject(jenv, txn_stat_class, txn_stat_construct); - if (jresult != NULL) - __dbj_fill_txn_stat(jenv, jresult, result); - - actives = (*jenv)->NewObjectArray(jenv, (jsize)result->st_nactive, - txn_active_class, 0); - if (actives == NULL) { - __os_ufree(NULL, result); - return 0; - } - (*jenv)->SetObjectField(jenv, jresult, - txn_stat_st_txnarray_fid, actives); - for (i = 0; i < result->st_nactive; i++) { - jobject obj = (*jenv)->NewObject(jenv, txn_active_class, - txn_active_construct); - if (obj == NULL) { - __os_ufree(NULL, result); - return 0; /* an exception is pending */ - } - (*jenv)->SetObjectArrayElement(jenv, actives, (jsize)i, obj); - __dbj_fill_txn_active(jenv, obj, &result->st_txnarray[i]); - } - __os_ufree(NULL, result); - } - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1get_1limit(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - jlong result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = DbEnv_rep_get_limit(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1elect(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3, jint jarg4) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - int arg3 ; - u_int32_t arg4 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - arg3 = (int)jarg3; - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_elect(arg1,arg2,arg3,arg4); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1process_1message(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2, jobject jarg3, jint jarg4, jobject jarg5) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DBT *arg2 = (DBT *) 0 ; - DBT *arg3 = (DBT *) 0 ; - int arg4 ; - DB_LSN *arg5 = (DB_LSN *) 0 ; - int result; - DBT_LOCKED ldbt2 ; - DBT_LOCKED ldbt3 ; - DB_LSN lsn5 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (__dbj_dbt_copyin(jenv, &ldbt2, &arg2, jarg2, 0) != 0) { - return 0; /* An exception will be pending. */ - } - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg4 = (int)jarg4; - - if (jarg5 == NULL) { - arg5 = NULL; - } else { - arg5 = &lsn5; - arg5->file = (*jenv)->GetIntField(jenv, jarg5, dblsn_file_fid); - arg5->offset = (*jenv)->GetIntField(jenv, jarg5, - dblsn_offset_fid); - } - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - if (arg5 == NULL) { - __dbj_throw(jenv, EINVAL, "null LogSequenceNumber", NULL, NULL); - return 0; - } - - - result = (int)DbEnv_rep_process_message(arg1,arg2,arg3,arg4,arg5); - if (!DB_RETOK_REPPMSG(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - __dbj_dbt_release(jenv, jarg2, arg2, &ldbt2); - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - - if (jarg5 != NULL) { - (*jenv)->SetIntField(jenv, jarg5, dblsn_file_fid, arg5->file); - (*jenv)->SetIntField(jenv, jarg5, - dblsn_offset_fid, arg5->offset); - } - - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1flush(JNIEnv *jenv, jclass jcls, jlong jarg1) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_flush(arg1); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1set_1config(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jboolean jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - int_bool arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - arg3 = (jarg3 == JNI_TRUE); - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_set_config(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1set_1lease(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_set_lease(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1start(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - DBT *arg2 = (DBT *) 0 ; - u_int32_t arg3 ; - db_ret_t result; - DBT_LOCKED ldbt2 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (__dbj_dbt_copyin(jenv, &ldbt2, &arg2, jarg2, 1) != 0) { - return ; /* An exception will be pending. */ - } - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_start(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - __dbj_dbt_release(jenv, jarg2, arg2, &ldbt2); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1sync(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_sync(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jboolean JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1get_1config(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jboolean jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - int_bool result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int_bool)DbEnv_rep_get_config(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (result) ? JNI_TRUE : JNI_FALSE; - return jresult; -} - - -JNIEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1stat(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jobject jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - DB_REP_STAT *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_REP_STAT *)DbEnv_rep_stat(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - - jresult = (*jenv)->NewObject(jenv, rep_stat_class, rep_stat_construct); - if (jresult != NULL) - __dbj_fill_rep_stat(jenv, jresult, result); - __os_ufree(NULL, result); - - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1set_1limit(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - jlong arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_set_limit(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1set_1rep_1request(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_set_rep_request(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1set_1transport(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jboolean jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - int (*arg3)(DB_ENV *,DBT const *,DBT const *,DB_LSN const *,int,u_int32_t) = (int (*)(DB_ENV *,DBT const *,DBT const *,DB_LSN const *,int,u_int32_t)) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - - arg3 = (jarg3 == JNI_TRUE) ? __dbj_rep_transport : NULL; - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_set_transport(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1get_1nsites(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)DbEnv_rep_get_nsites(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1get_1priority(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)DbEnv_rep_get_priority(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1get_1timeout(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbEnv_rep_get_timeout(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1set_1nsites(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_set_nsites(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1set_1priority(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_set_priority(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1rep_1set_1timeout(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jlong jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - db_timeout_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - arg3 = (db_timeout_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_rep_set_timeout(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1add_1remote_1site(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3, jint jarg4) { - jint jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - u_int32_t arg3 ; - u_int32_t arg4 ; - int result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return 0; - } - arg3 = (u_int32_t)jarg3; - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int)DbEnv_repmgr_add_remote_site(arg1,(char const *)arg2,arg3,arg4); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - jresult = (jint)result; - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1get_1ack_1policy(JNIEnv *jenv, jclass jcls, jlong jarg1) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_repmgr_get_ack_policy(arg1); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1set_1ack_1policy(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_repmgr_set_ack_policy(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1set_1local_1site(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jint jarg3, jint jarg4) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - char *arg2 = (char *) 0 ; - u_int32_t arg3 ; - u_int32_t arg4 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - arg3 = (u_int32_t)jarg3; - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_repmgr_set_local_site(arg1,(char const *)arg2,arg3,arg4); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -JNIEXPORT jobjectArray JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1site_1list(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jobjectArray jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - struct __db_repmgr_sites result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = DbEnv_repmgr_site_list(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - { - int i, len; - - len = (&result)->nsites; - jresult = (*jenv)->NewObjectArray(jenv, (jsize)len, rephost_class, - NULL); - if (jresult == NULL) - return 0; /* an exception is pending */ - for (i = 0; i < len; i++) { - jobject jrep_addr = (*jenv)->NewObject(jenv, - rephost_class, rephost_construct); - - (*jenv)->SetObjectField(jenv, jrep_addr, rephost_host_fid, - (*jenv)->NewStringUTF(jenv, (&result)->sites[i].host)); - (*jenv)->SetIntField(jenv, jrep_addr, rephost_port_fid, - (&result)->sites[i].port); - (*jenv)->SetIntField(jenv, jrep_addr, rephost_eid_fid, - (&result)->sites[i].eid); - (*jenv)->SetIntField(jenv, jrep_addr, rephost_status_fid, - (&result)->sites[i].status); - - if (jrep_addr == NULL) - return 0; /* An exception is pending */ - - (*jenv)->SetObjectArrayElement(jenv, jresult, i, jrep_addr); - } - __os_ufree(NULL, (&result)->sites); - } - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1start(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jint jarg3) { - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - int arg2 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (int)jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbEnv_repmgr_start(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, JDBENV); - } - -} - - -JNIEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1repmgr_1stat(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jobject jresult = 0 ; - struct DbEnv *arg1 = (struct DbEnv *) 0 ; - u_int32_t arg2 ; - DB_REPMGR_STAT *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbEnv **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_REPMGR_STAT *)DbEnv_repmgr_stat(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } - - - jresult = (*jenv)->NewObject(jenv, repmgr_stat_class, repmgr_stat_construct); - if (jresult != NULL) - __dbj_fill_repmgr_stat(jenv, jresult, result); - __os_ufree(NULL, result); - - return jresult; -} - - -JNIEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1strerror(JNIEnv *jenv, jclass jcls, jint jarg1) { - jstring jresult = 0 ; - int arg1 ; - char *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = (int)jarg1; - result = (char *)DbEnv_strerror(arg1); - if(result) jresult = (*jenv)->NewStringUTF(jenv, result); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1version_1major(JNIEnv *jenv, jclass jcls) { - jint jresult = 0 ; - int result; - - (void)jenv; - (void)jcls; - result = (int)DbEnv_get_version_major(); - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1version_1minor(JNIEnv *jenv, jclass jcls) { - jint jresult = 0 ; - int result; - - (void)jenv; - (void)jcls; - result = (int)DbEnv_get_version_minor(); - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1version_1patch(JNIEnv *jenv, jclass jcls) { - jint jresult = 0 ; - int result; - - (void)jenv; - (void)jcls; - result = (int)DbEnv_get_version_patch(); - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1get_1version_1string(JNIEnv *jenv, jclass jcls) { - jstring jresult = 0 ; - char *result = 0 ; - - (void)jenv; - (void)jcls; - result = (char *)DbEnv_get_version_string(); - if(result) jresult = (*jenv)->NewStringUTF(jenv, result); - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_delete_1DbLock(JNIEnv *jenv, jclass jcls, jlong jarg1) { - struct DbLock *arg1 = (struct DbLock *) 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbLock **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - delete_DbLock(arg1); - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbLogc_1close0(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbLogc *arg1 = (struct DbLogc *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbLogc **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbLogc_close(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbLogc_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2, jobject jarg3, jint jarg4) { - jint jresult = 0 ; - struct DbLogc *arg1 = (struct DbLogc *) 0 ; - DB_LSN *arg2 = (DB_LSN *) 0 ; - DBT *arg3 = (DBT *) 0 ; - u_int32_t arg4 ; - int result; - DB_LSN lsn2 ; - DBT_LOCKED ldbt3 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbLogc **)&jarg1; - - if (jarg2 == NULL) { - arg2 = NULL; - } else { - arg2 = &lsn2; - arg2->file = (*jenv)->GetIntField(jenv, jarg2, dblsn_file_fid); - arg2->offset = (*jenv)->GetIntField(jenv, jarg2, - dblsn_offset_fid); - } - - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return 0; /* An exception will be pending. */ - } - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - if (arg2 == NULL) { - __dbj_throw(jenv, EINVAL, "null LogSequenceNumber", NULL, NULL); - return 0; - } - - - result = (int)DbLogc_get(arg1,arg2,arg3,arg4); - if (!DB_RETOK_LGGET(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - - jresult = (jint)result; - - if (jarg2 != NULL) { - (*jenv)->SetIntField(jenv, jarg2, dblsn_file_fid, arg2->file); - (*jenv)->SetIntField(jenv, jarg2, - dblsn_offset_fid, arg2->offset); - } - - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbLogc_1version(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jint jresult = 0 ; - struct DbLogc *arg1 = (struct DbLogc *) 0 ; - u_int32_t arg2 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbLogc **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbLogc_version(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbMpoolFile_1get_1priority(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbMpoolFile *arg1 = (struct DbMpoolFile *) 0 ; - DB_CACHE_PRIORITY result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbMpoolFile **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_CACHE_PRIORITY)DbMpoolFile_get_priority(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbMpoolFile_1set_1priority(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbMpoolFile *arg1 = (struct DbMpoolFile *) 0 ; - DB_CACHE_PRIORITY arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbMpoolFile **)&jarg1; - arg2 = (DB_CACHE_PRIORITY)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbMpoolFile_set_priority(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbMpoolFile_1get_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbMpoolFile *arg1 = (struct DbMpoolFile *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbMpoolFile **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbMpoolFile_get_flags(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbMpoolFile_1set_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2, jboolean jarg3) { - struct DbMpoolFile *arg1 = (struct DbMpoolFile *) 0 ; - u_int32_t arg2 ; - int_bool arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbMpoolFile **)&jarg1; - arg2 = (u_int32_t)jarg2; - arg3 = (jarg3 == JNI_TRUE); - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbMpoolFile_set_flags(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbMpoolFile_1get_1maxsize(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbMpoolFile *arg1 = (struct DbMpoolFile *) 0 ; - jlong result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbMpoolFile **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = DbMpoolFile_get_maxsize(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbMpoolFile_1set_1maxsize(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) { - struct DbMpoolFile *arg1 = (struct DbMpoolFile *) 0 ; - jlong arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbMpoolFile **)&jarg1; - arg2 = jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbMpoolFile_set_maxsize(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_new_1DbSequence(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jlong jresult = 0 ; - DB *arg1 = (DB *) 0 ; - u_int32_t arg2 ; - struct DbSequence *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(DB **)&jarg1; - arg2 = (u_int32_t)jarg2; - - errno = 0; - result = (struct DbSequence *)new_DbSequence(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - *(struct DbSequence **)&jresult = result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1close0(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbSequence_close(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3, jint jarg4) { - jlong jresult = 0 ; - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - int32_t arg3 ; - u_int32_t arg4 ; - db_seq_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = (int32_t)jarg3; - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (db_seq_t)DbSequence_get(arg1,arg2,arg3,arg4); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = (jlong)result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1get_1cachesize(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (int32_t)DbSequence_get_cachesize(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1get_1db(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - DB *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB *)DbSequence_get_db(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - *(DB **)&jresult = result; - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1get_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (u_int32_t)DbSequence_get_flags(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1get_1key(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - DBT *arg2 = (DBT *) 0 ; - db_ret_t result; - DBT_LOCKED ldbt2 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - - if (__dbj_dbt_copyin(jenv, &ldbt2, &arg2, jarg2, 0) != 0) { - return ; /* An exception will be pending. */ - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbSequence_get_key(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - - __dbj_dbt_release(jenv, jarg2, arg2, &ldbt2); -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1get_1range_1min(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - db_seq_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (db_seq_t)DbSequence_get_range_min(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = (jlong)result; - return jresult; -} - - -JNIEXPORT jlong JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1get_1range_1max(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong jresult = 0 ; - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - db_seq_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (db_seq_t)DbSequence_get_range_max(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - jresult = (jlong)result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1initial_1value(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) { - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - db_seq_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - arg2 = (db_seq_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbSequence_initial_value(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1open(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jobject jarg3, jint jarg4) { - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - DBT *arg3 = (DBT *) 0 ; - u_int32_t arg4 ; - db_ret_t result; - DBT_LOCKED ldbt3 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - - if (__dbj_dbt_copyin(jenv, &ldbt3, &arg3, jarg3, 0) != 0) { - return ; /* An exception will be pending. */ - } - arg4 = (u_int32_t)jarg4; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbSequence_open(arg1,arg2,arg3,arg4); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - - __dbj_dbt_release(jenv, jarg3, arg3, &ldbt3); -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1remove0(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) { - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - DB_TXN *arg2 = (DB_TXN *) 0 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - arg2 = *(DB_TXN **)&jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbSequence_remove(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1set_1cachesize(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - arg2 = (int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbSequence_set_cachesize(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1set_1flags(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbSequence_set_flags(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1set_1range(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3) { - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - db_seq_t arg2 ; - db_seq_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - arg2 = (db_seq_t)jarg2; - arg3 = (db_seq_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbSequence_set_range(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT jobject JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbSequence_1stat(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - jobject jresult = 0 ; - struct DbSequence *arg1 = (struct DbSequence *) 0 ; - u_int32_t arg2 ; - DB_SEQUENCE_STAT *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbSequence **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (DB_SEQUENCE_STAT *)DbSequence_stat(arg1,arg2); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, NULL); - } - - - jresult = (*jenv)->NewObject(jenv, seq_stat_class, seq_stat_construct); - if (jresult != NULL) - __dbj_fill_seq_stat(jenv, jresult, result); - __os_ufree(NULL, result); - - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1abort0(JNIEnv *jenv, jclass jcls, jlong jarg1) { - struct DbTxn *arg1 = (struct DbTxn *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbTxn **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbTxn_abort(arg1); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1commit0(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbTxn *arg1 = (struct DbTxn *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbTxn **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbTxn_commit(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1discard0(JNIEnv *jenv, jclass jcls, jlong jarg1, jint jarg2) { - struct DbTxn *arg1 = (struct DbTxn *) 0 ; - u_int32_t arg2 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbTxn **)&jarg1; - arg2 = (u_int32_t)jarg2; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbTxn_discard(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, NULL); - } - -} - - -JNIEXPORT jstring JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1get_1name(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jstring jresult = 0 ; - struct DbTxn *arg1 = (struct DbTxn *) 0 ; - char *result = 0 ; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbTxn **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - - errno = 0; - result = (char *)DbTxn_get_name(arg1); - if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, TXN2JDBENV); - } - - if(result) jresult = (*jenv)->NewStringUTF(jenv, result); - return jresult; -} - - -JNIEXPORT jint JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1id(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jint jresult = 0 ; - struct DbTxn *arg1 = (struct DbTxn *) 0 ; - u_int32_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbTxn **)&jarg1; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return 0; - } - result = (u_int32_t)DbTxn_id(arg1); - jresult = (jint)result; - return jresult; -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1prepare(JNIEnv *jenv, jclass jcls, jlong jarg1, jbyteArray jarg2) { - struct DbTxn *arg1 = (struct DbTxn *) 0 ; - u_int8_t *arg2 = (u_int8_t *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbTxn **)&jarg1; - - arg2 = (u_int8_t *)(*jenv)->GetByteArrayElements(jenv, jarg2, NULL); - - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - if ((*jenv)->GetArrayLength(jenv, jarg2) < DB_XIDDATASIZE) { - __dbj_throw(jenv, EINVAL, - "DbTxn.prepare gid array must be >= 128 bytes", NULL, - TXN2JDBENV); - return ; - } - - - result = (db_ret_t)DbTxn_prepare(arg1,arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, TXN2JDBENV); - } - - - (*jenv)->ReleaseByteArrayElements(jenv, jarg2, (jbyte *)arg2, 0); - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1set_1timeout(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jint jarg3) { - struct DbTxn *arg1 = (struct DbTxn *) 0 ; - db_timeout_t arg2 ; - u_int32_t arg3 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbTxn **)&jarg1; - arg2 = (db_timeout_t)jarg2; - arg3 = (u_int32_t)jarg3; - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbTxn_set_timeout(arg1,arg2,arg3); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, TXN2JDBENV); - } - -} - - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_DbTxn_1set_1name(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) { - struct DbTxn *arg1 = (struct DbTxn *) 0 ; - char *arg2 = (char *) 0 ; - db_ret_t result; - - (void)jenv; - (void)jcls; - arg1 = *(struct DbTxn **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0); - if (!arg2) return ; - } - - if (jarg1 == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return ; - } - - result = (db_ret_t)DbTxn_set_name(arg1,(char const *)arg2); - if (!DB_RETOK_STD(result)) { - __dbj_throw(jenv, result, NULL, NULL, TXN2JDBENV); - } - - if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, arg2); -} - - -#ifdef __cplusplus -} -#endif - diff --git a/db/libdb_java/java-post.pl b/db/libdb_java/java-post.pl deleted file mode 100644 index f54d39259..000000000 --- a/db/libdb_java/java-post.pl +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env perl -p - -# Hide some symbols -s!public (class db_java|[^(]* delete|[^(]* [A-Za-z_]*0\()!/* package */ $1!; - -# Mark methods that don't throw exceptions -s!public [^(]*get_version_[a-z]*\([^)]*\)!$& /* no exception */!; -s!public [^(]*[ _]err[a-z_]*\([^)]*\)!$& /* no exception */!; -s!public [^(]*[ _]msg[a-z_]*\([^)]*\)!$& /* no exception */!; -s!public [^(]*[ _]message[a-z_]*\([^)]*\)!$& /* no exception */!; -s!public [^(]*[ _]strerror\([^)]*\)!$& /* no exception */!; -s!public [^(]*log_compare\([^)]*\)!$& /* no exception */!; -s!public [^(]* feedback\([^)]*\)!$& /* no exception */!; - -# Mark methods that throw special exceptions -m/DbSequence/ || s!(public [^(]*(open|remove|rename)0?\([^)]*\))( {|;)!$1 throws com.sleepycat.db.DatabaseException, java.io.FileNotFoundException$3!; - -# Everything else throws a DbException -s!(public [^(]*\([^)]*\))(;| {)!$1 throws com.sleepycat.db.DatabaseException$2!; - -# Add initialize methods for Java parts of Db and DbEnv -s!\.new_DbEnv\(.*$!$&\n initialize();!; -s!\.new_Db\(.*$!$&\n initialize(dbenv);!; diff --git a/db/libdb_java/java_callbacks.i b/db/libdb_java/java_callbacks.i deleted file mode 100644 index c5dfcbbda..000000000 --- a/db/libdb_java/java_callbacks.i +++ /dev/null @@ -1,567 +0,0 @@ -/* Callbacks */ -%define JAVA_CALLBACK(_sig, _jclass, _name) -JAVA_TYPEMAP(_sig, _jclass, jboolean) -%typemap(jtype) _sig "boolean" -%typemap(javain) _sig %{ (_name##_handler = $javainput) != null %} - -/* - * The Java object is stored in the Db or DbEnv class. - * Here we only care whether it is non-NULL. - */ -%typemap(in) _sig %{ - $1 = ($input == JNI_TRUE) ? __dbj_##_name : NULL; -%} -%enddef - -%{ -static void __dbj_error(const DB_ENV *dbenv, - const char *prefix, const char *msg) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - COMPQUIET(prefix, NULL); - - if (jdbenv != NULL) - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, dbenv_class, - errcall_method, (*jenv)->NewStringUTF(jenv, msg)); -} - -static void __dbj_env_feedback(DB_ENV *dbenv, int opcode, int percent) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - if (jdbenv != NULL) - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, dbenv_class, - env_feedback_method, opcode, percent); -} - -static void __dbj_message(const DB_ENV *dbenv, const char *msg) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - if (jdbenv != NULL) - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, dbenv_class, - msgcall_method, (*jenv)->NewStringUTF(jenv, msg)); -} - -static void __dbj_panic(DB_ENV *dbenv, int err) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - if (jdbenv != NULL) - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, dbenv_class, - paniccall_method, - __dbj_get_except(jenv, err, NULL, NULL, jdbenv)); -} - -static int __dbj_app_dispatch(DB_ENV *dbenv, - DBT *dbt, DB_LSN *lsn, db_recops recops) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - jobject jdbt, jlsn; - jbyteArray jdbtarr; - int ret; - - if (jdbenv == NULL) - return (EINVAL); - - jdbt = (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - __dbj_dbt_copyout(jenv, dbt, &jdbtarr, jdbt); - if (jdbt == NULL) - return (ENOMEM); /* An exception is pending */ - - jlsn = (lsn == NULL) ? NULL : __dbj_wrap_DB_LSN(jenv, lsn); - - ret = (*jenv)->CallNonvirtualIntMethod(jenv, jdbenv, dbenv_class, - app_dispatch_method, jdbt, jlsn, recops); - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - ret = EINVAL; - } - - (*jenv)->DeleteLocalRef(jenv, jdbtarr); - (*jenv)->DeleteLocalRef(jenv, jdbt); - if (jlsn != NULL) - (*jenv)->DeleteLocalRef(jenv, jlsn); - - return (ret); -} - -static void __dbj_event_notify(DB_ENV *dbenv, u_int32_t event_id, void * info) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - if (jdbenv == NULL) - return ; - - switch (event_id) { - case DB_EVENT_PANIC: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, panic_event_notify_method); - break; - case DB_EVENT_REP_CLIENT: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_client_event_notify_method); - break; - case DB_EVENT_REP_ELECTED: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_elected_event_notify_method); - break; - case DB_EVENT_REP_MASTER: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_master_event_notify_method); - break; - case DB_EVENT_REP_NEWMASTER: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_new_master_event_notify_method, - *(int*)info); - break; - case DB_EVENT_REP_PERM_FAILED: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_perm_failed_event_notify_method); - break; - case DB_EVENT_REP_STARTUPDONE: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, rep_startup_done_event_notify_method); - break; - case DB_EVENT_WRITE_FAILED: - (*jenv)->CallNonvirtualVoidMethod(jenv, jdbenv, - dbenv_class, write_failed_event_notify_method, - *(int*)info); - break; - default: - dbenv->errx(dbenv, "Unhandled event callback in the Java API"); - DB_ASSERT(dbenv, 0); - } -} - -static int __dbj_rep_transport(DB_ENV *dbenv, - const DBT *control, const DBT *rec, const DB_LSN *lsn, int envid, - u_int32_t flags) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - jobject jcontrol, jrec, jlsn; - jbyteArray jcontrolarr, jrecarr; - int ret; - - if (jdbenv == NULL) - return (EINVAL); - - jcontrol = (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - jrec = (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - if (jcontrol == NULL || jrec == NULL) - return (ENOMEM); /* An exception is pending */ - - __dbj_dbt_copyout(jenv, control, &jcontrolarr, jcontrol); - __dbj_dbt_copyout(jenv, rec, &jrecarr, jrec); - jlsn = (lsn == NULL) ? NULL : __dbj_wrap_DB_LSN(jenv, (DB_LSN *)lsn); - - if (jcontrolarr == NULL || jrecarr == NULL) - return (ENOMEM); /* An exception is pending */ - - ret = (*jenv)->CallNonvirtualIntMethod(jenv, jdbenv, dbenv_class, - rep_transport_method, jcontrol, jrec, jlsn, envid, flags); - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - ret = EINVAL; - } - - (*jenv)->DeleteLocalRef(jenv, jrecarr); - (*jenv)->DeleteLocalRef(jenv, jcontrolarr); - (*jenv)->DeleteLocalRef(jenv, jrec); - (*jenv)->DeleteLocalRef(jenv, jcontrol); - if (jlsn != NULL) - (*jenv)->DeleteLocalRef(jenv, jlsn); - - return (ret); -} - -static int __dbj_seckey_create(DB *db, - const DBT *key, const DBT *data, DBT *result) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jobject jkey, jdata, jresult; - jobjectArray jskeys; - jsize i, num_skeys; - jbyteArray jkeyarr, jdataarr; - DBT_LOCKED lresult; - DBT *tresult; - int ret; - - if (jdb == NULL) - return (EINVAL); - - jkey = (key->app_data != NULL) ? - ((DBT_LOCKED *)key->app_data)->jdbt : - (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - jdata = (data->app_data != NULL) ? - ((DBT_LOCKED *)data->app_data)->jdbt : - (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - if (jkey == NULL || jdata == NULL) - return (ENOMEM); /* An exception is pending */ - - if (key->app_data == NULL) { - __dbj_dbt_copyout(jenv, key, &jkeyarr, jkey); - if (jkeyarr == NULL) - return (ENOMEM); /* An exception is pending */ - } - if (data->app_data == NULL) { - __dbj_dbt_copyout(jenv, data, &jdataarr, jdata); - if (jdataarr == NULL) - return (ENOMEM); /* An exception is pending */ - } - - jskeys = (jobjectArray)(*jenv)->CallNonvirtualObjectMethod(jenv, - jdb, db_class, seckey_create_method, jkey, jdata); - - if (jskeys == NULL || - (num_skeys = (*jenv)->GetArrayLength(jenv, jskeys)) == 0) { - ret = DB_DONOTINDEX; - goto err; - } else if (num_skeys == 1) { - memset(result, 0, sizeof (DBT)); - tresult = result; - } else { - if ((ret = __os_umalloc(db->dbenv, - num_skeys * sizeof (DBT), &result->data)) != 0) - goto err; - memset(result->data, 0, num_skeys * sizeof (DBT)); - result->size = num_skeys; - F_SET(result, DB_DBT_APPMALLOC | DB_DBT_MULTIPLE); - tresult = (DBT *)result->data; - } - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - ret = EINVAL; - goto err; - } - - for (i = 0; i < num_skeys; i++, tresult++) { - jresult = (*jenv)->GetObjectArrayElement(jenv, jskeys, i); - - if ((ret = - __dbj_dbt_copyin(jenv, &lresult, NULL, jresult, 0)) != 0) - goto err; - - if (lresult.dbt.size != 0) { - /* If there's data, we need to take a copy of it. */ - tresult->size = lresult.dbt.size; - if ((ret = __os_umalloc(NULL, - tresult->size, &tresult->data)) != 0) - goto err; - if ((ret = __dbj_dbt_memcopy(&lresult.dbt, 0, - tresult->data, tresult->size, - DB_USERCOPY_GETDATA)) != 0) - goto err; - __dbj_dbt_release(jenv, - jresult, &lresult.dbt, &lresult); - (*jenv)->DeleteLocalRef(jenv, lresult.jarr); - F_SET(tresult, DB_DBT_APPMALLOC); - } - - (*jenv)->DeleteLocalRef(jenv, jresult); - } - -err: if (key->app_data == NULL) { - (*jenv)->DeleteLocalRef(jenv, jkeyarr); - (*jenv)->DeleteLocalRef(jenv, jkey); - } - if (data->app_data == NULL) { - (*jenv)->DeleteLocalRef(jenv, jdataarr); - (*jenv)->DeleteLocalRef(jenv, jdata); - } - - return (ret); -} - -static int __dbj_append_recno(DB *db, DBT *dbt, db_recno_t recno) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jobject jdbt; - DBT_LOCKED lresult; - jbyteArray jdbtarr; - int ret; - - if (jdb == NULL) - return (EINVAL); - - /* - * The dbt we're passed will be from the application, but we can't - * just reuse it, since we will have already taken a copy of the data. - * Make a new DatabaseEntry object here for the callback. - */ - jdbt = (*jenv)->NewObject(jenv, dbt_class, dbt_construct); - if (jdbt == NULL) - return (ENOMEM); /* An exception is pending */ - - __dbj_dbt_copyout(jenv, dbt, &jdbtarr, jdbt); - if (jdbtarr == NULL) - return (ENOMEM); /* An exception is pending */ - - ret = 0; - (*jenv)->CallNonvirtualVoidMethod(jenv, jdb, db_class, - append_recno_method, jdbt, recno); - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - return (EINVAL); - } - - ret = __dbj_dbt_copyin(jenv, &lresult, NULL, jdbt, 0); - memset(dbt, 0, sizeof (DBT)); - - if (ret == 0 && lresult.dbt.size != 0) { - /* If there's data, we need to take a copy of it. */ - dbt->size = lresult.dbt.size; - if ((ret = - __os_umalloc(NULL, dbt->size, &dbt->data)) != 0) - goto err; - if ((ret = __dbj_dbt_memcopy(&lresult.dbt, 0, - dbt->data, dbt->size, - DB_USERCOPY_GETDATA)) != 0) - goto err; - __dbj_dbt_release(jenv, jdbt, &lresult.dbt, &lresult); - (*jenv)->DeleteLocalRef(jenv, lresult.jarr); - F_SET(dbt, DB_DBT_APPMALLOC); - } - -err: (*jenv)->DeleteLocalRef(jenv, jdbtarr); - (*jenv)->DeleteLocalRef(jenv, jdbt); - - return (ret); -} - -/* - * Shared by __dbj_bt_compare and __dbj_h_compare - */ -static int __dbj_am_compare(DB *db, const DBT *dbt1, const DBT *dbt2, - jmethodID compare_method) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jbyteArray jdbtarr1, jdbtarr2; - int ret; - - if (jdb == NULL) - return (EINVAL); - - if (dbt1->app_data != NULL) - jdbtarr1 = ((DBT_LOCKED *)dbt1->app_data)->jarr; - else { - jdbtarr1 = (*jenv)->NewByteArray(jenv, (jsize)dbt1->size); - if (jdbtarr1 == NULL) - return (ENOMEM); - (*jenv)->SetByteArrayRegion(jenv, jdbtarr1, 0, - (jsize)dbt1->size, (jbyte *)dbt1->data); - } - - if (dbt2->app_data != NULL) - jdbtarr2 = ((DBT_LOCKED *)dbt2->app_data)->jarr; - else { - jdbtarr2 = (*jenv)->NewByteArray(jenv, (jsize)dbt2->size); - if (jdbtarr2 == NULL) - return (ENOMEM); - (*jenv)->SetByteArrayRegion(jenv, jdbtarr2, 0, - (jsize)dbt2->size, (jbyte *)dbt2->data); - } - - ret = (int)(*jenv)->CallNonvirtualIntMethod(jenv, jdb, db_class, - compare_method, jdbtarr1, jdbtarr2); - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - ret = EINVAL; - } - - if (dbt1->app_data == NULL) - (*jenv)->DeleteLocalRef(jenv, jdbtarr1); - if (dbt2->app_data == NULL) - (*jenv)->DeleteLocalRef(jenv, jdbtarr2); - - return (ret); -} - -static int __dbj_bt_compare(DB *db, const DBT *dbt1, const DBT *dbt2) -{ - return __dbj_am_compare(db, dbt1, dbt2, bt_compare_method); -} - -static size_t __dbj_bt_prefix(DB *db, const DBT *dbt1, const DBT *dbt2) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jobject jdbt1, jdbt2; - jbyteArray jdbtarr1, jdbtarr2; - int ret; - - if (jdb == NULL) - return (EINVAL); - - if (dbt1->app_data != NULL) - jdbt1 = ((DBT_LOCKED *)dbt1->app_data)->jdbt; - else { - if ((jdbt1 = - (*jenv)->NewObject(jenv, dbt_class, dbt_construct)) == NULL) - return (ENOMEM); /* An exception is pending */ - __dbj_dbt_copyout(jenv, dbt1, &jdbtarr1, jdbt1); - if (jdbtarr1 == NULL) - return (ENOMEM); /* An exception is pending */ - } - - if (dbt2->app_data != NULL) - jdbt2 = ((DBT_LOCKED *)dbt2->app_data)->jdbt; - else { - if ((jdbt2 = - (*jenv)->NewObject(jenv, dbt_class, dbt_construct)) == NULL) - return (ENOMEM); /* An exception is pending */ - __dbj_dbt_copyout(jenv, dbt2, &jdbtarr2, jdbt2); - if (jdbtarr2 == NULL) - return (ENOMEM); /* An exception is pending */ - } - - ret = (int)(*jenv)->CallNonvirtualIntMethod(jenv, jdb, db_class, - bt_prefix_method, jdbt1, jdbt2); - - if (dbt1->app_data == NULL) { - (*jenv)->DeleteLocalRef(jenv, jdbtarr1); - (*jenv)->DeleteLocalRef(jenv, jdbt1); - } - if (dbt2->app_data == NULL) { - (*jenv)->DeleteLocalRef(jenv, jdbtarr2); - (*jenv)->DeleteLocalRef(jenv, jdbt2); - } - - return (ret); -} - -static int __dbj_dup_compare(DB *db, const DBT *dbt1, const DBT *dbt2) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jbyteArray jdbtarr1, jdbtarr2; - int ret; - - if (jdb == NULL) - return (EINVAL); - - jdbtarr1 = (*jenv)->NewByteArray(jenv, (jsize)dbt1->size); - if (jdbtarr1 == NULL) - return (ENOMEM); - (*jenv)->SetByteArrayRegion(jenv, jdbtarr1, 0, (jsize)dbt1->size, - (jbyte *)dbt1->data); - - jdbtarr2 = (*jenv)->NewByteArray(jenv, (jsize)dbt2->size); - if (jdbtarr2 == NULL) - return (ENOMEM); - (*jenv)->SetByteArrayRegion(jenv, jdbtarr2, 0, (jsize)dbt2->size, - (jbyte *)dbt2->data); - - ret = (int)(*jenv)->CallNonvirtualIntMethod(jenv, jdb, db_class, - dup_compare_method, jdbtarr1, jdbtarr2); - - if ((*jenv)->ExceptionOccurred(jenv)) { - /* The exception will be thrown, so this could be any error. */ - ret = EINVAL; - } - - (*jenv)->DeleteLocalRef(jenv, jdbtarr2); - (*jenv)->DeleteLocalRef(jenv, jdbtarr1); - - return (ret); -} - -static void __dbj_db_feedback(DB *db, int opcode, int percent) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - - if (jdb != NULL) - (*jenv)->CallNonvirtualVoidMethod(jenv, jdb, db_class, - db_feedback_method, opcode, percent); -} - -static int __dbj_h_compare(DB *db, const DBT *dbt1, const DBT *dbt2) -{ - return __dbj_am_compare(db, dbt1, dbt2, h_compare_method); -} - -static u_int32_t __dbj_h_hash(DB *db, const void *data, u_int32_t len) -{ - JNIEnv *jenv = __dbj_get_jnienv(); - jobject jdb = (jobject)DB_INTERNAL(db); - jbyteArray jarr = (*jenv)->NewByteArray(jenv, (jsize)len); - int ret; - - if (jdb == NULL) - return (EINVAL); - - if ((jarr = (*jenv)->NewByteArray(jenv, (jsize)len)) == NULL) - return (ENOMEM); /* An exception is pending */ - - (*jenv)->SetByteArrayRegion(jenv, jarr, 0, (jsize)len, (jbyte *)data); - - ret = (int)(*jenv)->CallNonvirtualIntMethod(jenv, jdb, db_class, - h_hash_method, jarr, len); - - (*jenv)->DeleteLocalRef(jenv, jarr); - - return (ret); -} -%} - -JAVA_CALLBACK(void (*db_errcall_fcn)(const DB_ENV *, - const char *, const char *), com.sleepycat.db.ErrorHandler, error) -JAVA_CALLBACK(void (*env_feedback_fcn)(DB_ENV *, int, int), - com.sleepycat.db.FeedbackHandler, env_feedback) -JAVA_CALLBACK(void (*db_msgcall_fcn)(const DB_ENV *, const char *), - com.sleepycat.db.MessageHandler, message) -JAVA_CALLBACK(void (*db_panic_fcn)(DB_ENV *, int), - com.sleepycat.db.PanicHandler, panic) -JAVA_CALLBACK(void (*event_notify)(DB_ENV *, u_int32_t, void *), - com.sleepycat.db.EventHandler, event_notify) -JAVA_CALLBACK(int (*tx_recover)(DB_ENV *, DBT *, DB_LSN *, db_recops), - com.sleepycat.db.LogRecordHandler, app_dispatch) -JAVA_CALLBACK(int (*send)(DB_ENV *, const DBT *, const DBT *, - const DB_LSN *, int, u_int32_t), - com.sleepycat.db.ReplicationTransport, rep_transport) - -/* - * Db.associate is a special case, because the handler must be set in the - * secondary DB - that's what we have in the callback. In addition, there - * are two flavors of callback (single key and multi-key), so we need to - * check for both types when working out whether the C callback should - * be NULL. Note that this implies that the multi-key callback will be set - * on the secondary database *before* associate is called. - */ -JAVA_CALLBACK(int (*callback)(DB *, const DBT *, const DBT *, DBT *), - com.sleepycat.db.SecondaryKeyCreator, seckey_create) -%typemap(javain) int (*callback)(DB *, const DBT *, const DBT *, DBT *) - %{ (secondary.seckey_create_handler = $javainput) != null || - (secondary.secmultikey_create_handler != null) %} - -JAVA_CALLBACK(int (*db_append_recno_fcn)(DB *, DBT *, db_recno_t), - com.sleepycat.db.RecordNumberAppender, append_recno) -JAVA_CALLBACK(int (*bt_compare_fcn)(DB *, const DBT *, const DBT *), - java.util.Comparator, bt_compare) -JAVA_CALLBACK(size_t (*bt_prefix_fcn)(DB *, const DBT *, const DBT *), - com.sleepycat.db.BtreePrefixCalculator, bt_prefix) -JAVA_CALLBACK(int (*dup_compare_fcn)(DB *, const DBT *, const DBT *), - java.util.Comparator, dup_compare) -JAVA_CALLBACK(void (*db_feedback_fcn)(DB *, int, int), - com.sleepycat.db.FeedbackHandler, db_feedback) -JAVA_CALLBACK(int (*h_compare_fcn)(DB *, const DBT *, const DBT *), - java.util.Comparator, h_compare) -JAVA_CALLBACK(u_int32_t (*h_hash_fcn)(DB *, const void *, u_int32_t), - com.sleepycat.db.Hasher, h_hash) diff --git a/db/libdb_java/java_except.i b/db/libdb_java/java_except.i deleted file mode 100644 index f15e5580f..000000000 --- a/db/libdb_java/java_except.i +++ /dev/null @@ -1,180 +0,0 @@ -%{ -/* - * Macros to find the Java DbEnv object for methods in various classes. - * Note that "arg1" is from the code SWIG generates for the "this"/"self". - */ -#define JDBENV (arg1 ? (jobject)DB_ENV_INTERNAL(arg1) : NULL) -#define DB2JDBENV ((jobject)DB_ENV_INTERNAL(arg1->dbenv)) -#define DBC2JDBENV ((jobject)DB_ENV_INTERNAL(arg1->dbp->dbenv)) -#define TXN2JDBENV ((jobject)DB_ENV_INTERNAL(arg1->mgrp->dbenv)) -%} - -/* Common case exception handling */ -%typemap(check) SWIGTYPE *self %{ - if ($input == 0) { - __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL); - return $null; - }%} - -%define JAVA_EXCEPT_NONE -%exception %{ $action %} -%enddef - -/* Most methods return an error code. */ -%define JAVA_EXCEPT(_retcheck, _jdbenv) -%exception %{ - $action - if (!_retcheck(result)) { - __dbj_throw(jenv, result, NULL, NULL, _jdbenv); - } -%} -%enddef - -/* For everything else, errno is set in db.i. */ -%define JAVA_EXCEPT_ERRNO(_retcheck, _jdbenv) -%exception %{ - errno = 0; - $action - if (!_retcheck(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, _jdbenv); - } -%} -%enddef - -/* And then there are these (extra) special cases. */ -%exception __db_env::lock_get %{ - errno = 0; - $action - if (errno == DB_LOCK_NOTGRANTED) { - (*jenv)->Throw(jenv, - (*jenv)->NewObject(jenv, lockex_class, lockex_construct, - (*jenv)->NewStringUTF(jenv, "DbEnv.lock_get not granted"), - DB_LOCK_GET, arg5, jarg4, NULL, -1, JDBENV)); - } else if (!DB_RETOK_STD(errno)) { - __dbj_throw(jenv, errno, NULL, NULL, JDBENV); - } -%} - -%{ -static jthrowable __dbj_get_except(JNIEnv *jenv, - int err, const char *msg, jobject obj, jobject jdbenv) { - jobject jmsg; - - if (msg == NULL) - msg = db_strerror(err); - - jmsg = (*jenv)->NewStringUTF(jenv, msg); - - /* Retrieve error message logged by DB */ - if (jdbenv != NULL) { - jmsg = (jstring) (*jenv)->CallNonvirtualObjectMethod(jenv, - jdbenv, dbenv_class, get_err_msg_method, jmsg); - } - - switch (err) { - case EINVAL: - return (jthrowable)(*jenv)->NewObject(jenv, - illegalargex_class, illegalargex_construct, jmsg); - - case ENOENT: - return (jthrowable)(*jenv)->NewObject(jenv, - filenotfoundex_class, filenotfoundex_construct, jmsg); - - case ENOMEM: - return (jthrowable)(*jenv)->NewObject(jenv, - outofmemerr_class, outofmemerr_construct, jmsg); - - case DB_BUFFER_SMALL: - return (jthrowable)(*jenv)->NewObject(jenv, memex_class, - memex_construct, jmsg, obj, err, jdbenv); - - case DB_REP_DUPMASTER: - return (jthrowable)(*jenv)->NewObject(jenv, - repdupmasterex_class, repdupmasterex_construct, - jmsg, err, jdbenv); - - case DB_REP_HANDLE_DEAD: - return (jthrowable)(*jenv)->NewObject(jenv, - rephandledeadex_class, rephandledeadex_construct, - jmsg, err, jdbenv); - - case DB_REP_HOLDELECTION: - return (jthrowable)(*jenv)->NewObject(jenv, - repholdelectionex_class, repholdelectionex_construct, - jmsg, err, jdbenv); - - case DB_REP_JOIN_FAILURE: - return (jthrowable)(*jenv)->NewObject(jenv, - repjoinfailex_class, repjoinfailex_construct, - jmsg, err, jdbenv); - - case DB_REP_LEASE_EXPIRED: - return (jthrowable)(*jenv)->NewObject(jenv, - repleaseexpiredex_class, repleaseexpiredex_construct, - jmsg, err, jdbenv); - - case DB_REP_LEASE_TIMEOUT: - return (jthrowable)(*jenv)->NewObject(jenv, - repleasetimeoutex_class, repleasetimeoutex_construct, - jmsg, err, jdbenv); - - case DB_REP_LOCKOUT: - return (jthrowable)(*jenv)->NewObject(jenv, - replockoutex_class, replockoutex_construct, - jmsg, err, jdbenv); - - case DB_REP_UNAVAIL: - return (jthrowable)(*jenv)->NewObject(jenv, - repunavailex_class, repunavailex_construct, - jmsg, err, jdbenv); - - case DB_RUNRECOVERY: - return (jthrowable)(*jenv)->NewObject(jenv, runrecex_class, - runrecex_construct, jmsg, err, jdbenv); - - case DB_LOCK_DEADLOCK: - return (jthrowable)(*jenv)->NewObject(jenv, deadex_class, - deadex_construct, jmsg, err, jdbenv); - - case DB_LOCK_NOTGRANTED: - return (jthrowable)(*jenv)->NewObject(jenv, lockex_class, - lockex_construct, jmsg, err, 0, NULL, NULL, 0, jdbenv); - - case DB_VERSION_MISMATCH: - return (jthrowable)(*jenv)->NewObject(jenv, versionex_class, - versionex_construct, jmsg, err, jdbenv); - - default: - return (jthrowable)(*jenv)->NewObject(jenv, dbex_class, - dbex_construct, jmsg, err, jdbenv); - } -} - -static int __dbj_throw(JNIEnv *jenv, - int err, const char *msg, jobject obj, jobject jdbenv) -{ - jthrowable t; - - /* If an exception is pending, ignore requests to throw a new one. */ - if ((*jenv)->ExceptionOccurred(jenv) == NULL) { - t = __dbj_get_except(jenv, err, msg, obj, jdbenv); - if (t == NULL) { - /* - * This is a problem - something went wrong creating an - * exception. We have to assume there is an exception - * created by the JVM that is pending as a result - * (e.g., OutOfMemoryError), but we don't want to lose - * this error, so we just call __db_errx here. - */ - if (msg == NULL) - msg = db_strerror(err); - - __db_errx(NULL, "Couldn't create exception for: '%s'", - msg); - } else - (*jenv)->Throw(jenv, t); - } - - return (err); -} -%} diff --git a/db/libdb_java/java_stat.i b/db/libdb_java/java_stat.i deleted file mode 100644 index 409e2488e..000000000 --- a/db/libdb_java/java_stat.i +++ /dev/null @@ -1,176 +0,0 @@ -/* Statistics classes */ -%{ -/* - * These macros are used by code generated by the s_java script. - */ -#define JAVADB_STAT_INT(jenv, jobj, fid, statp, name) \ - (*jenv)->SetIntField(jenv, jobj, fid, (jint)statp->name) - -#define JAVADB_STAT_STRING(jenv, jobj, fid, statp, name) \ - (*jenv)->SetObjectField(jenv, jobj, fid, \ - (*jenv)->NewStringUTF(jenv, statp->name)) - -#define JAVADB_STAT_LSN(jenv, jobj, fid, statp, name) \ - (*jenv)->SetObjectField(jenv, jobj, fid, \ - __dbj_wrap_DB_LSN(jenv, &statp->name)) - -#define JAVADB_STAT_LONG(jenv, jobj, fid, statp, name) \ - (*jenv)->SetLongField(jenv, jobj, fid, \ - (jlong)statp->name) - -#define JAVADB_STAT_XID(jenv, jobj, fid, statp, name) { \ - jobject jarr = \ - (*jenv)->NewByteArray(jenv, (jsize)DB_XIDDATASIZE); \ - (*jenv)->SetByteArrayRegion(jenv, jarr, \ - 0, (jsize)DB_XIDDATASIZE, (jbyte *)statp->name); \ - (*jenv)->SetObjectField(jenv, jobj, fid, jarr); \ - } - -/* - * We build the active list separately. - */ -#define JAVADB_STAT_ACTIVE(jenv, cl, jobj, statp, name) \ - do {} while(0) - -#include "java_stat_auto.c" -%} - -%define JAVA_STAT_CLASS(_ctype, _jtype, _name) -JAVA_TYPEMAP(_ctype, _jtype, jobject) -%typemap(out) _ctype %{ - $result = (*jenv)->NewObject(jenv, _name##_class, _name##_construct); - if ($result != NULL) - __dbj_fill_##_name(jenv, $result, $1); - __os_ufree(NULL, $1); -%} -%enddef - -JAVA_STAT_CLASS(DB_COMPACT *, com.sleepycat.db.CompactStats, compact) -%typemap(freearg) DB_COMPACT * %{ __dbj_fill_compact(jenv, $input, $1); %} -%typemap(in) DB_COMPACT * (DB_COMPACT compact) %{ - memset(&compact, 0, sizeof (DB_COMPACT)); - $1 = &compact; - $1->compact_fillpercent = (*jenv)->GetIntField(jenv, $input, - compact_compact_fillpercent_fid); - $1->compact_timeout = (*jenv)->GetIntField(jenv, $input, - compact_compact_timeout_fid); - $1->compact_pages = (*jenv)->GetIntField(jenv, $input, - compact_compact_pages_fid); -%} - -JAVA_STAT_CLASS(DB_LOCK_STAT *, com.sleepycat.db.LockStats, lock_stat) -JAVA_STAT_CLASS(DB_LOG_STAT *, com.sleepycat.db.LogStats, log_stat) -JAVA_STAT_CLASS(DB_MPOOL_STAT *, com.sleepycat.db.CacheStats, mpool_stat) - -JAVA_TYPEMAP(DB_MPOOL_FSTAT **, com.sleepycat.db.CacheFileStats[], jobjectArray) -%typemap(out) DB_MPOOL_FSTAT ** { - int i, len; - - len = 0; - while ($1[len] != NULL) - len++; - $result = (*jenv)->NewObjectArray(jenv, (jsize)len, - mpool_fstat_class, 0); - if ($result == NULL) { - __os_ufree(NULL, $1); - return $null; - } - for (i = 0; i < len; i++) { - jobject obj = (*jenv)->NewObject(jenv, mpool_fstat_class, - mpool_fstat_construct); - if (obj == NULL) { - __os_ufree(NULL, $1); - return $null; /* an exception is pending */ - } - (*jenv)->SetObjectArrayElement(jenv, $result, i, obj); - __dbj_fill_mpool_fstat(jenv, obj, $1[i]); - } - __os_ufree(NULL, $1); -} - -JAVA_STAT_CLASS(DB_MUTEX_STAT *, com.sleepycat.db.MutexStats, mutex_stat) -JAVA_STAT_CLASS(DB_REP_STAT *, com.sleepycat.db.ReplicationStats, rep_stat) -JAVA_STAT_CLASS(DB_REPMGR_STAT *, com.sleepycat.db.ReplicationManagerStats, repmgr_stat) -JAVA_STAT_CLASS(DB_SEQUENCE_STAT *, com.sleepycat.db.SequenceStats, seq_stat) -JAVA_TYPEMAP(DB_TXN_STAT *, com.sleepycat.db.TransactionStats, jobject) -%typemap(out) DB_TXN_STAT * { - unsigned int i; - jobjectArray actives; - $result = (*jenv)->NewObject(jenv, txn_stat_class, txn_stat_construct); - if ($result != NULL) - __dbj_fill_txn_stat(jenv, $result, $1); - - actives = (*jenv)->NewObjectArray(jenv, (jsize)$1->st_nactive, - txn_active_class, 0); - if (actives == NULL) { - __os_ufree(NULL, $1); - return $null; - } - (*jenv)->SetObjectField(jenv, $result, - txn_stat_st_txnarray_fid, actives); - for (i = 0; i < $1->st_nactive; i++) { - jobject obj = (*jenv)->NewObject(jenv, txn_active_class, - txn_active_construct); - if (obj == NULL) { - __os_ufree(NULL, $1); - return $null; /* an exception is pending */ - } - (*jenv)->SetObjectArrayElement(jenv, actives, (jsize)i, obj); - __dbj_fill_txn_active(jenv, obj, &$1->st_txnarray[i]); - } - __os_ufree(NULL, $1); -} - -/* Db.stat return - special case */ -%typemap(out) void * %{ - if ($1 == NULL) - $result = NULL; - else { - DB *db = (DB *)arg1; - DBTYPE dbtype; - int err; - - if ((err = db->get_type(db, &dbtype)) != 0) { - __dbj_throw(jenv, err, NULL, NULL, DB2JDBENV); - return $null; - } - - switch (dbtype) { - /* Btree and recno share the same stat structure */ - case DB_BTREE: - case DB_RECNO: - $result = (*jenv)->NewObject(jenv, bt_stat_class, - bt_stat_construct); - if ($result != NULL) - __dbj_fill_bt_stat(jenv, $result, - (DB_BTREE_STAT *)$1); - break; - - /* Hash stat structure */ - case DB_HASH: - $result = (*jenv)->NewObject(jenv, h_stat_class, - h_stat_construct); - if ($result != NULL) - __dbj_fill_h_stat(jenv, $result, - (DB_HASH_STAT *)$1); - break; - - case DB_QUEUE: - $result = (*jenv)->NewObject(jenv, qam_stat_class, - qam_stat_construct); - if ($result != NULL) - __dbj_fill_qam_stat(jenv, $result, - (DB_QUEUE_STAT *)$1); - break; - - /* That's all the database types we're aware of! */ - default: - __dbj_throw(jenv, EINVAL, "Db.stat only implemented for" - " BTREE, HASH, QUEUE and RECNO", NULL, DB2JDBENV); - break; - } - - __os_ufree(db->dbenv, $1); - } -%} - diff --git a/db/libdb_java/java_stat_auto.c b/db/libdb_java/java_stat_auto.c deleted file mode 100644 index e7c7dfcb2..000000000 --- a/db/libdb_java/java_stat_auto.c +++ /dev/null @@ -1,329 +0,0 @@ -/*- - * DO NOT EDIT: automatically built by dist/s_java_stat. - * - * See the file LICENSE for redistribution information. - * - * Copyright (c) 2002,2007 Oracle. All rights reserved. - */ -static int __dbj_fill_bt_stat(JNIEnv *jnienv, - jobject jobj, struct __db_bt_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_magic_fid, statp, bt_magic); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_version_fid, statp, bt_version); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_metaflags_fid, statp, bt_metaflags); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_nkeys_fid, statp, bt_nkeys); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_ndata_fid, statp, bt_ndata); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_pagecnt_fid, statp, bt_pagecnt); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_pagesize_fid, statp, bt_pagesize); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_minkey_fid, statp, bt_minkey); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_re_len_fid, statp, bt_re_len); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_re_pad_fid, statp, bt_re_pad); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_levels_fid, statp, bt_levels); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_int_pg_fid, statp, bt_int_pg); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_leaf_pg_fid, statp, bt_leaf_pg); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_dup_pg_fid, statp, bt_dup_pg); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_over_pg_fid, statp, bt_over_pg); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_empty_pg_fid, statp, bt_empty_pg); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_free_fid, statp, bt_free); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_int_pgfree_fid, statp, bt_int_pgfree); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_leaf_pgfree_fid, statp, bt_leaf_pgfree); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_dup_pgfree_fid, statp, bt_dup_pgfree); - JAVADB_STAT_INT(jnienv, jobj, bt_stat_bt_over_pgfree_fid, statp, bt_over_pgfree); - return (0); -} -static int __dbj_fill_compact(JNIEnv *jnienv, - jobject jobj, struct __db_compact *statp) { - JAVADB_STAT_INT(jnienv, jobj, compact_compact_fillpercent_fid, statp, compact_fillpercent); - JAVADB_STAT_INT(jnienv, jobj, compact_compact_timeout_fid, statp, compact_timeout); - JAVADB_STAT_INT(jnienv, jobj, compact_compact_pages_fid, statp, compact_pages); - JAVADB_STAT_INT(jnienv, jobj, compact_compact_pages_free_fid, statp, compact_pages_free); - JAVADB_STAT_INT(jnienv, jobj, compact_compact_pages_examine_fid, statp, compact_pages_examine); - JAVADB_STAT_INT(jnienv, jobj, compact_compact_levels_fid, statp, compact_levels); - JAVADB_STAT_INT(jnienv, jobj, compact_compact_deadlock_fid, statp, compact_deadlock); - JAVADB_STAT_INT(jnienv, jobj, compact_compact_pages_truncated_fid, statp, compact_pages_truncated); - JAVADB_STAT_INT(jnienv, jobj, compact_compact_truncate_fid, statp, compact_truncate); - return (0); -} -static int __dbj_fill_h_stat(JNIEnv *jnienv, - jobject jobj, struct __db_h_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_magic_fid, statp, hash_magic); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_version_fid, statp, hash_version); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_metaflags_fid, statp, hash_metaflags); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_nkeys_fid, statp, hash_nkeys); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_ndata_fid, statp, hash_ndata); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_pagecnt_fid, statp, hash_pagecnt); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_pagesize_fid, statp, hash_pagesize); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_ffactor_fid, statp, hash_ffactor); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_buckets_fid, statp, hash_buckets); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_free_fid, statp, hash_free); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_bfree_fid, statp, hash_bfree); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_bigpages_fid, statp, hash_bigpages); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_big_bfree_fid, statp, hash_big_bfree); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_overflows_fid, statp, hash_overflows); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_ovfl_free_fid, statp, hash_ovfl_free); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_dup_fid, statp, hash_dup); - JAVADB_STAT_INT(jnienv, jobj, h_stat_hash_dup_free_fid, statp, hash_dup_free); - return (0); -} -static int __dbj_fill_lock_stat(JNIEnv *jnienv, - jobject jobj, struct __db_lock_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_id_fid, statp, st_id); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_cur_maxid_fid, statp, st_cur_maxid); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_maxlocks_fid, statp, st_maxlocks); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_maxlockers_fid, statp, st_maxlockers); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_maxobjects_fid, statp, st_maxobjects); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_nmodes_fid, statp, st_nmodes); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_nlockers_fid, statp, st_nlockers); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_nlocks_fid, statp, st_nlocks); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_maxnlocks_fid, statp, st_maxnlocks); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_maxnlockers_fid, statp, st_maxnlockers); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_nobjects_fid, statp, st_nobjects); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_maxnobjects_fid, statp, st_maxnobjects); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_nrequests_fid, statp, st_nrequests); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_nreleases_fid, statp, st_nreleases); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_nupgrade_fid, statp, st_nupgrade); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_ndowngrade_fid, statp, st_ndowngrade); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_lock_wait_fid, statp, st_lock_wait); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_lock_nowait_fid, statp, st_lock_nowait); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_ndeadlocks_fid, statp, st_ndeadlocks); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_locktimeout_fid, statp, st_locktimeout); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_nlocktimeouts_fid, statp, st_nlocktimeouts); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_txntimeout_fid, statp, st_txntimeout); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_ntxntimeouts_fid, statp, st_ntxntimeouts); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_objs_wait_fid, statp, st_objs_wait); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_objs_nowait_fid, statp, st_objs_nowait); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_lockers_wait_fid, statp, st_lockers_wait); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_lockers_nowait_fid, statp, st_lockers_nowait); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_locks_wait_fid, statp, st_locks_wait); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_locks_nowait_fid, statp, st_locks_nowait); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_region_wait_fid, statp, st_region_wait); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_region_nowait_fid, statp, st_region_nowait); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_hash_len_fid, statp, st_hash_len); - JAVADB_STAT_INT(jnienv, jobj, lock_stat_st_regsize_fid, statp, st_regsize); - return (0); -} -static int __dbj_fill_log_stat(JNIEnv *jnienv, - jobject jobj, struct __db_log_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_magic_fid, statp, st_magic); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_version_fid, statp, st_version); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_mode_fid, statp, st_mode); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_lg_bsize_fid, statp, st_lg_bsize); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_lg_size_fid, statp, st_lg_size); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_wc_bytes_fid, statp, st_wc_bytes); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_wc_mbytes_fid, statp, st_wc_mbytes); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_record_fid, statp, st_record); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_w_bytes_fid, statp, st_w_bytes); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_w_mbytes_fid, statp, st_w_mbytes); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_wcount_fid, statp, st_wcount); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_wcount_fill_fid, statp, st_wcount_fill); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_rcount_fid, statp, st_rcount); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_scount_fid, statp, st_scount); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_region_wait_fid, statp, st_region_wait); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_region_nowait_fid, statp, st_region_nowait); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_cur_file_fid, statp, st_cur_file); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_cur_offset_fid, statp, st_cur_offset); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_disk_file_fid, statp, st_disk_file); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_disk_offset_fid, statp, st_disk_offset); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_maxcommitperflush_fid, statp, st_maxcommitperflush); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_mincommitperflush_fid, statp, st_mincommitperflush); - JAVADB_STAT_INT(jnienv, jobj, log_stat_st_regsize_fid, statp, st_regsize); - return (0); -} -static int __dbj_fill_mpool_fstat(JNIEnv *jnienv, - jobject jobj, struct __db_mpool_fstat *statp) { - JAVADB_STAT_STRING(jnienv, jobj, mpool_fstat_file_name_fid, statp, file_name); - JAVADB_STAT_INT(jnienv, jobj, mpool_fstat_st_pagesize_fid, statp, st_pagesize); - JAVADB_STAT_INT(jnienv, jobj, mpool_fstat_st_map_fid, statp, st_map); - JAVADB_STAT_INT(jnienv, jobj, mpool_fstat_st_cache_hit_fid, statp, st_cache_hit); - JAVADB_STAT_INT(jnienv, jobj, mpool_fstat_st_cache_miss_fid, statp, st_cache_miss); - JAVADB_STAT_INT(jnienv, jobj, mpool_fstat_st_page_create_fid, statp, st_page_create); - JAVADB_STAT_INT(jnienv, jobj, mpool_fstat_st_page_in_fid, statp, st_page_in); - JAVADB_STAT_INT(jnienv, jobj, mpool_fstat_st_page_out_fid, statp, st_page_out); - return (0); -} -static int __dbj_fill_mpool_stat(JNIEnv *jnienv, - jobject jobj, struct __db_mpool_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_gbytes_fid, statp, st_gbytes); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_bytes_fid, statp, st_bytes); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_ncache_fid, statp, st_ncache); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_max_ncache_fid, statp, st_max_ncache); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_mmapsize_fid, statp, st_mmapsize); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_maxopenfd_fid, statp, st_maxopenfd); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_maxwrite_fid, statp, st_maxwrite); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_maxwrite_sleep_fid, statp, st_maxwrite_sleep); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_pages_fid, statp, st_pages); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_map_fid, statp, st_map); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_cache_hit_fid, statp, st_cache_hit); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_cache_miss_fid, statp, st_cache_miss); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_page_create_fid, statp, st_page_create); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_page_in_fid, statp, st_page_in); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_page_out_fid, statp, st_page_out); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_ro_evict_fid, statp, st_ro_evict); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_rw_evict_fid, statp, st_rw_evict); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_page_trickle_fid, statp, st_page_trickle); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_page_clean_fid, statp, st_page_clean); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_page_dirty_fid, statp, st_page_dirty); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_hash_buckets_fid, statp, st_hash_buckets); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_hash_searches_fid, statp, st_hash_searches); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_hash_longest_fid, statp, st_hash_longest); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_hash_examined_fid, statp, st_hash_examined); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_hash_nowait_fid, statp, st_hash_nowait); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_hash_wait_fid, statp, st_hash_wait); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_hash_max_nowait_fid, statp, st_hash_max_nowait); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_hash_max_wait_fid, statp, st_hash_max_wait); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_region_nowait_fid, statp, st_region_nowait); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_region_wait_fid, statp, st_region_wait); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_mvcc_frozen_fid, statp, st_mvcc_frozen); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_mvcc_thawed_fid, statp, st_mvcc_thawed); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_mvcc_freed_fid, statp, st_mvcc_freed); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_alloc_fid, statp, st_alloc); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_alloc_buckets_fid, statp, st_alloc_buckets); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_alloc_max_buckets_fid, statp, st_alloc_max_buckets); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_alloc_pages_fid, statp, st_alloc_pages); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_alloc_max_pages_fid, statp, st_alloc_max_pages); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_io_wait_fid, statp, st_io_wait); - JAVADB_STAT_INT(jnienv, jobj, mpool_stat_st_regsize_fid, statp, st_regsize); - return (0); -} -static int __dbj_fill_mutex_stat(JNIEnv *jnienv, - jobject jobj, struct __db_mutex_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, mutex_stat_st_mutex_align_fid, statp, st_mutex_align); - JAVADB_STAT_INT(jnienv, jobj, mutex_stat_st_mutex_tas_spins_fid, statp, st_mutex_tas_spins); - JAVADB_STAT_INT(jnienv, jobj, mutex_stat_st_mutex_cnt_fid, statp, st_mutex_cnt); - JAVADB_STAT_INT(jnienv, jobj, mutex_stat_st_mutex_free_fid, statp, st_mutex_free); - JAVADB_STAT_INT(jnienv, jobj, mutex_stat_st_mutex_inuse_fid, statp, st_mutex_inuse); - JAVADB_STAT_INT(jnienv, jobj, mutex_stat_st_mutex_inuse_max_fid, statp, st_mutex_inuse_max); - JAVADB_STAT_INT(jnienv, jobj, mutex_stat_st_region_wait_fid, statp, st_region_wait); - JAVADB_STAT_INT(jnienv, jobj, mutex_stat_st_region_nowait_fid, statp, st_region_nowait); - JAVADB_STAT_INT(jnienv, jobj, mutex_stat_st_regsize_fid, statp, st_regsize); - return (0); -} -static int __dbj_fill_qam_stat(JNIEnv *jnienv, - jobject jobj, struct __db_qam_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_magic_fid, statp, qs_magic); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_version_fid, statp, qs_version); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_metaflags_fid, statp, qs_metaflags); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_nkeys_fid, statp, qs_nkeys); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_ndata_fid, statp, qs_ndata); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_pagesize_fid, statp, qs_pagesize); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_extentsize_fid, statp, qs_extentsize); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_pages_fid, statp, qs_pages); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_re_len_fid, statp, qs_re_len); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_re_pad_fid, statp, qs_re_pad); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_pgfree_fid, statp, qs_pgfree); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_first_recno_fid, statp, qs_first_recno); - JAVADB_STAT_INT(jnienv, jobj, qam_stat_qs_cur_recno_fid, statp, qs_cur_recno); - return (0); -} -static int __dbj_fill_rep_stat(JNIEnv *jnienv, - jobject jobj, struct __db_rep_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_log_queued_fid, statp, st_log_queued); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_startup_complete_fid, statp, st_startup_complete); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_status_fid, statp, st_status); - JAVADB_STAT_LSN(jnienv, jobj, rep_stat_st_next_lsn_fid, statp, st_next_lsn); - JAVADB_STAT_LSN(jnienv, jobj, rep_stat_st_waiting_lsn_fid, statp, st_waiting_lsn); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_next_pg_fid, statp, st_next_pg); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_waiting_pg_fid, statp, st_waiting_pg); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_dupmasters_fid, statp, st_dupmasters); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_env_id_fid, statp, st_env_id); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_env_priority_fid, statp, st_env_priority); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_bulk_fills_fid, statp, st_bulk_fills); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_bulk_overflows_fid, statp, st_bulk_overflows); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_bulk_records_fid, statp, st_bulk_records); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_bulk_transfers_fid, statp, st_bulk_transfers); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_client_rerequests_fid, statp, st_client_rerequests); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_client_svc_req_fid, statp, st_client_svc_req); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_client_svc_miss_fid, statp, st_client_svc_miss); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_gen_fid, statp, st_gen); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_egen_fid, statp, st_egen); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_log_duplicated_fid, statp, st_log_duplicated); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_log_queued_max_fid, statp, st_log_queued_max); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_log_queued_total_fid, statp, st_log_queued_total); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_log_records_fid, statp, st_log_records); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_log_requested_fid, statp, st_log_requested); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_master_fid, statp, st_master); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_master_changes_fid, statp, st_master_changes); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_msgs_badgen_fid, statp, st_msgs_badgen); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_msgs_processed_fid, statp, st_msgs_processed); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_msgs_recover_fid, statp, st_msgs_recover); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_msgs_send_failures_fid, statp, st_msgs_send_failures); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_msgs_sent_fid, statp, st_msgs_sent); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_newsites_fid, statp, st_newsites); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_nsites_fid, statp, st_nsites); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_nthrottles_fid, statp, st_nthrottles); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_outdated_fid, statp, st_outdated); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_pg_duplicated_fid, statp, st_pg_duplicated); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_pg_records_fid, statp, st_pg_records); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_pg_requested_fid, statp, st_pg_requested); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_txns_applied_fid, statp, st_txns_applied); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_startsync_delayed_fid, statp, st_startsync_delayed); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_elections_fid, statp, st_elections); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_elections_won_fid, statp, st_elections_won); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_election_cur_winner_fid, statp, st_election_cur_winner); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_election_gen_fid, statp, st_election_gen); - JAVADB_STAT_LSN(jnienv, jobj, rep_stat_st_election_lsn_fid, statp, st_election_lsn); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_election_nsites_fid, statp, st_election_nsites); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_election_nvotes_fid, statp, st_election_nvotes); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_election_priority_fid, statp, st_election_priority); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_election_status_fid, statp, st_election_status); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_election_tiebreaker_fid, statp, st_election_tiebreaker); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_election_votes_fid, statp, st_election_votes); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_election_sec_fid, statp, st_election_sec); - JAVADB_STAT_INT(jnienv, jobj, rep_stat_st_election_usec_fid, statp, st_election_usec); - return (0); -} -static int __dbj_fill_repmgr_stat(JNIEnv *jnienv, - jobject jobj, struct __db_repmgr_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_perm_failed_fid, statp, st_perm_failed); - JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_msgs_queued_fid, statp, st_msgs_queued); - JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_msgs_dropped_fid, statp, st_msgs_dropped); - JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_connection_drop_fid, statp, st_connection_drop); - JAVADB_STAT_INT(jnienv, jobj, repmgr_stat_st_connect_fail_fid, statp, st_connect_fail); - return (0); -} -static int __dbj_fill_seq_stat(JNIEnv *jnienv, - jobject jobj, struct __db_seq_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, seq_stat_st_wait_fid, statp, st_wait); - JAVADB_STAT_INT(jnienv, jobj, seq_stat_st_nowait_fid, statp, st_nowait); - JAVADB_STAT_LONG(jnienv, jobj, seq_stat_st_current_fid, statp, st_current); - JAVADB_STAT_LONG(jnienv, jobj, seq_stat_st_value_fid, statp, st_value); - JAVADB_STAT_LONG(jnienv, jobj, seq_stat_st_last_value_fid, statp, st_last_value); - JAVADB_STAT_LONG(jnienv, jobj, seq_stat_st_min_fid, statp, st_min); - JAVADB_STAT_LONG(jnienv, jobj, seq_stat_st_max_fid, statp, st_max); - JAVADB_STAT_INT(jnienv, jobj, seq_stat_st_cache_size_fid, statp, st_cache_size); - JAVADB_STAT_INT(jnienv, jobj, seq_stat_st_flags_fid, statp, st_flags); - return (0); -} -static int __dbj_fill_txn_stat(JNIEnv *jnienv, - jobject jobj, struct __db_txn_stat *statp) { - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_nrestores_fid, statp, st_nrestores); - JAVADB_STAT_LSN(jnienv, jobj, txn_stat_st_last_ckp_fid, statp, st_last_ckp); - JAVADB_STAT_LONG(jnienv, jobj, txn_stat_st_time_ckp_fid, statp, st_time_ckp); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_last_txnid_fid, statp, st_last_txnid); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_maxtxns_fid, statp, st_maxtxns); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_naborts_fid, statp, st_naborts); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_nbegins_fid, statp, st_nbegins); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_ncommits_fid, statp, st_ncommits); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_nactive_fid, statp, st_nactive); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_nsnapshot_fid, statp, st_nsnapshot); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_maxnactive_fid, statp, st_maxnactive); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_maxnsnapshot_fid, statp, st_maxnsnapshot); - JAVADB_STAT_ACTIVE(jnienv, jobj, txn_stat_st_txnarray_fid, statp, st_txnarray); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_region_wait_fid, statp, st_region_wait); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_region_nowait_fid, statp, st_region_nowait); - JAVADB_STAT_INT(jnienv, jobj, txn_stat_st_regsize_fid, statp, st_regsize); - return (0); -} -static int __dbj_fill_txn_active(JNIEnv *jnienv, - jobject jobj, struct __db_txn_active *statp) { - JAVADB_STAT_INT(jnienv, jobj, txn_active_txnid_fid, statp, txnid); - JAVADB_STAT_INT(jnienv, jobj, txn_active_parentid_fid, statp, parentid); - JAVADB_STAT_INT(jnienv, jobj, txn_active_pid_fid, statp, pid); - JAVADB_STAT_LSN(jnienv, jobj, txn_active_lsn_fid, statp, lsn); - JAVADB_STAT_LSN(jnienv, jobj, txn_active_read_lsn_fid, statp, read_lsn); - JAVADB_STAT_INT(jnienv, jobj, txn_active_mvcc_ref_fid, statp, mvcc_ref); - JAVADB_STAT_INT(jnienv, jobj, txn_active_status_fid, statp, status); - JAVADB_STAT_INT(jnienv, jobj, txn_active_xa_status_fid, statp, xa_status); - JAVADB_STAT_XID(jnienv, jobj, txn_active_xid_fid, statp, xid); - JAVADB_STAT_STRING(jnienv, jobj, txn_active_name_fid, statp, name); - return (0); -} diff --git a/db/libdb_java/java_typemaps.i b/db/libdb_java/java_typemaps.i deleted file mode 100644 index 2dd41f7c2..000000000 --- a/db/libdb_java/java_typemaps.i +++ /dev/null @@ -1,757 +0,0 @@ -/* Typemaps */ -%define JAVA_TYPEMAP(_ctype, _jtype, _jnitype) -%typemap(jstype) _ctype #_jtype -%typemap(jtype) _ctype #_jtype -%typemap(jni) _ctype #_jnitype -%typemap(out) _ctype %{ $result = (_jnitype)$1; %} -%typemap(javain) _ctype "$javainput" -%typemap(javaout) _ctype { return $jnicall; } -%enddef - -JAVA_TYPEMAP(int32_t, int, jint) -JAVA_TYPEMAP(u_int32_t, int, jint) -JAVA_TYPEMAP(u_int32_t pagesize, long, jlong) -JAVA_TYPEMAP(long, long, jlong) -JAVA_TYPEMAP(db_seq_t, long, jlong) -JAVA_TYPEMAP(pid_t, long, jlong) -#ifndef SWIGJAVA -JAVA_TYPEMAP(db_threadid_t, long, jlong) -#endif -JAVA_TYPEMAP(db_timeout_t, long, jlong) -JAVA_TYPEMAP(size_t, long, jlong) -JAVA_TYPEMAP(db_ret_t, void, void) -%typemap(javaout) db_ret_t { $jnicall; } -%typemap(out) db_ret_t "" - -JAVA_TYPEMAP(int_bool, boolean, jboolean) -%typemap(in) int_bool %{ $1 = ($input == JNI_TRUE); %} -%typemap(out) int_bool %{ $result = ($1) ? JNI_TRUE : JNI_FALSE; %} - -/* Dbt handling */ -JAVA_TYPEMAP(DBT *, com.sleepycat.db.DatabaseEntry, jobject) - -%{ -typedef struct __dbt_locked { - JNIEnv *jenv; - jobject jdbt; - DBT dbt; - jobject jdata_nio; - jbyteArray jarr; - jint offset; - int reuse; - u_int32_t orig_size; - jsize array_len; -} DBT_LOCKED; - -static int __dbj_dbt_memcopy(DBT *dbt, u_int32_t offset, void *buf, u_int32_t size, u_int32_t flags) { - DBT_LOCKED *ldbt = dbt->app_data; - JNIEnv *jenv = ldbt->jenv; - - if (size == 0) - return (0); - else if (!F_ISSET(dbt, DB_DBT_USERCOPY)) { - /* - * For simplicity, the Java API calls this function directly, - * so it needs to work with regular DBTs. - */ - switch (flags) { - case DB_USERCOPY_GETDATA: - memcpy(buf, (u_int8_t *)dbt->data + offset, size); - return (0); - case DB_USERCOPY_SETDATA: - memcpy((u_int8_t *)dbt->data + offset, buf, size); - return (0); - default: - return (EINVAL); - } - } - - switch (flags) { - case DB_USERCOPY_GETDATA: - (*jenv)->GetByteArrayRegion(jenv, ldbt->jarr, ldbt->offset + - offset, size, buf); - break; - case DB_USERCOPY_SETDATA: - /* - * Check whether this is the first time through the callback by relying - * on the offset being zero. - */ - if (offset == 0 && (!ldbt->reuse || - (jsize)(ldbt->offset + dbt->size) > ldbt->array_len)) { - if (ldbt->jarr != NULL) - (*jenv)->DeleteLocalRef(jenv, ldbt->jarr); - ldbt->jarr = (*jenv)->NewByteArray(jenv, (jsize)dbt->size); - if (ldbt->jarr == NULL) - return (ENOMEM); - (*jenv)->SetObjectField(jenv, ldbt->jdbt, dbt_data_fid, ldbt->jarr); - /* We've allocated a new array, start from the beginning. */ - ldbt->offset = 0; - } - (*jenv)->SetByteArrayRegion(jenv, ldbt->jarr, ldbt->offset + - offset, size, buf); - break; - default: - return (EINVAL); - } - return ((*jenv)->ExceptionOccurred(jenv) ? EINVAL : 0); -} - -static void __dbj_dbt_copyout( - JNIEnv *jenv, const DBT *dbt, jbyteArray *jarr, jobject jdbt) -{ - jbyteArray newarr = (*jenv)->NewByteArray(jenv, (jsize)dbt->size); - if (newarr == NULL) - return; /* An exception is pending */ - (*jenv)->SetByteArrayRegion(jenv, newarr, 0, (jsize)dbt->size, - (jbyte *)dbt->data); - (*jenv)->SetObjectField(jenv, jdbt, dbt_data_fid, newarr); - (*jenv)->SetIntField(jenv, jdbt, dbt_offset_fid, 0); - (*jenv)->SetIntField(jenv, jdbt, dbt_size_fid, (jint)dbt->size); - if (jarr != NULL) - *jarr = newarr; - else - (*jenv)->DeleteLocalRef(jenv, newarr); -} - -static int __dbj_dbt_copyin( - JNIEnv *jenv, DBT_LOCKED *ldbt, DBT **dbtp, jobject jdbt, int allow_null) -{ - DBT *dbt; - jlong capacity; - - memset(ldbt, 0, sizeof (*ldbt)); - ldbt->jenv = jenv; - ldbt->jdbt = jdbt; - - if (jdbt == NULL) { - if (allow_null) { - *dbtp = NULL; - return (0); - } else { - return (__dbj_throw(jenv, EINVAL, - "DatabaseEntry must not be null", NULL, NULL)); - } - } - - dbt = &ldbt->dbt; - if (dbtp != NULL) - *dbtp = dbt; - - ldbt->jdata_nio = (*jenv)->GetObjectField(jenv, jdbt, dbt_data_nio_fid); - if (ldbt->jdata_nio != NULL) - F_SET(dbt, DB_DBT_USERMEM); - else - ldbt->jarr = (jbyteArray)(*jenv)->GetObjectField(jenv, jdbt, dbt_data_fid); - ldbt->offset = (*jenv)->GetIntField(jenv, jdbt, dbt_offset_fid); - dbt->size = (*jenv)->GetIntField(jenv, jdbt, dbt_size_fid); - ldbt->orig_size = dbt->size; - dbt->flags = (*jenv)->GetIntField(jenv, jdbt, dbt_flags_fid); - - if (F_ISSET(dbt, DB_DBT_USERMEM)) - dbt->ulen = (*jenv)->GetIntField(jenv, jdbt, dbt_ulen_fid); - if (F_ISSET(dbt, DB_DBT_PARTIAL)) { - dbt->dlen = (*jenv)->GetIntField(jenv, jdbt, dbt_dlen_fid); - dbt->doff = (*jenv)->GetIntField(jenv, jdbt, dbt_doff_fid); - - if ((jint)dbt->doff < 0) - return (__dbj_throw(jenv, EINVAL, "DatabaseEntry doff illegal", - NULL, NULL)); - } - - /* - * We don't support DB_DBT_REALLOC - map anything that's not USERMEM to - * MALLOC. - */ - if (!F_ISSET(dbt, DB_DBT_USERMEM)) { - ldbt->reuse = !F_ISSET(dbt, DB_DBT_MALLOC); - F_CLR(dbt, DB_DBT_MALLOC | DB_DBT_REALLOC); - } - - /* Verify parameters before allocating or locking data. */ - if (ldbt->jdata_nio != NULL) { - capacity = (*jenv)->GetDirectBufferCapacity(jenv, - ldbt->jdata_nio); - if (capacity > (jlong)UINT32_MAX) - return (__dbj_throw(jenv, EINVAL, - "DirectBuffer may not be larger than 4GB", - NULL, NULL)); - ldbt->array_len = (u_int32_t)capacity; - } else if (ldbt->jarr == NULL) { - /* - * Some code makes the assumption that if a DBT's size or ulen - * is non-zero, there is data to copy from dbt->data. - * - * Clean up the dbt fields so we don't run into trouble. - * (Note that doff, dlen, and flags all may contain - * meaningful values.) - */ - dbt->data = NULL; - ldbt->array_len = ldbt->offset = dbt->size = dbt->ulen = 0; - } else - ldbt->array_len = (*jenv)->GetArrayLength(jenv, ldbt->jarr); - - if (F_ISSET(dbt, DB_DBT_USERMEM)) { - if (ldbt->offset < 0) - return (__dbj_throw(jenv, EINVAL, - "offset cannot be negative", - NULL, NULL)); - if (dbt->size > dbt->ulen) - return (__dbj_throw(jenv, EINVAL, - "size must be less than or equal to ulen", - NULL, NULL)); - if ((jsize)(ldbt->offset + dbt->ulen) > ldbt->array_len) - return (__dbj_throw(jenv, EINVAL, - "offset + ulen greater than array length", - NULL, NULL)); - } - - if (ldbt->jdata_nio) { - dbt->data = (*jenv)->GetDirectBufferAddress(jenv, - ldbt->jdata_nio); - dbt->data = (u_int8_t *)dbt->data + ldbt->offset; - } else if (F_ISSET(dbt, DB_DBT_USERMEM)) { - if (ldbt->jarr != NULL && - (dbt->data = (*jenv)->GetByteArrayElements(jenv, - ldbt->jarr, NULL)) == NULL) - return (EINVAL); /* an exception will be pending */ - dbt->data = (u_int8_t *)dbt->data + ldbt->offset; - } else - F_SET(dbt, DB_DBT_USERCOPY); - dbt->app_data = ldbt; - - return (0); -} - -static void __dbj_dbt_release( - JNIEnv *jenv, jobject jdbt, DBT *dbt, DBT_LOCKED *ldbt) { - jthrowable t; - - if (dbt == NULL) - return; - - if (dbt->size != ldbt->orig_size) - (*jenv)->SetIntField(jenv, jdbt, dbt_size_fid, (jint)dbt->size); - - if (F_ISSET(dbt, DB_DBT_USERMEM)) { - if (ldbt->jarr != NULL) - (*jenv)->ReleaseByteArrayElements(jenv, ldbt->jarr, - (jbyte *)dbt->data - ldbt->offset, 0); - - if (dbt->size > dbt->ulen && - (t = (*jenv)->ExceptionOccurred(jenv)) != NULL && - (*jenv)->IsInstanceOf(jenv, t, memex_class)) { - (*jenv)->CallNonvirtualVoidMethod(jenv, t, memex_class, - memex_update_method, jdbt); - /* - * We have to rethrow the exception because calling - * into Java clears it. - */ - (*jenv)->Throw(jenv, t); - } - } -} -%} - -%typemap(in) DBT * (DBT_LOCKED ldbt) %{ - if (__dbj_dbt_copyin(jenv, &ldbt, &$1, $input, 0) != 0) { - return $null; /* An exception will be pending. */ - }%} - -/* Special cases for DBTs that may be null: DbEnv.rep_start and Db.compact */ -%typemap(in) DBT *data_or_null (DBT_LOCKED ldbt) %{ - if (__dbj_dbt_copyin(jenv, &ldbt, &$1, $input, 1) != 0) { - return $null; /* An exception will be pending. */ - }%} - -%apply DBT *data_or_null {DBT *cdata, DBT *start, DBT *stop, DBT *end}; - -%typemap(freearg) DBT * %{ __dbj_dbt_release(jenv, $input, $1, &ldbt$argnum); %} - -/* DbLsn handling */ -JAVA_TYPEMAP(DB_LSN *, com.sleepycat.db.LogSequenceNumber, jobject) - -%typemap(check) DB_LSN *lsn_or_null "" - -%typemap(check) DB_LSN * %{ - if ($1 == NULL) { - __dbj_throw(jenv, EINVAL, "null LogSequenceNumber", NULL, NULL); - return $null; - } -%} - -%typemap(in) DB_LSN * (DB_LSN lsn) %{ - if ($input == NULL) { - $1 = NULL; - } else { - $1 = &lsn; - $1->file = (*jenv)->GetIntField(jenv, $input, dblsn_file_fid); - $1->offset = (*jenv)->GetIntField(jenv, $input, - dblsn_offset_fid); - } -%} - -%typemap(freearg) DB_LSN * %{ - if ($input != NULL) { - (*jenv)->SetIntField(jenv, $input, dblsn_file_fid, $1->file); - (*jenv)->SetIntField(jenv, $input, - dblsn_offset_fid, $1->offset); - } -%} - -/* Various typemaps */ -JAVA_TYPEMAP(time_t, long, jlong) -JAVA_TYPEMAP(time_t *, long, jlong) -%typemap(in) time_t * (time_t time) %{ - time = (time_t)$input; - $1 = &time; -%} - -JAVA_TYPEMAP(DB_KEY_RANGE *, com.sleepycat.db.KeyRange, jobject) -%typemap(in) DB_KEY_RANGE * (DB_KEY_RANGE range) { - $1 = ⦥ -} -%typemap(argout) DB_KEY_RANGE * { - (*jenv)->SetDoubleField(jenv, $input, kr_less_fid, $1->less); - (*jenv)->SetDoubleField(jenv, $input, kr_equal_fid, $1->equal); - (*jenv)->SetDoubleField(jenv, $input, kr_greater_fid, $1->greater); -} - -JAVA_TYPEMAP(DBC **, Dbc[], jobjectArray) -%typemap(in) DBC ** { - int i, count, err; - - count = (*jenv)->GetArrayLength(jenv, $input); - if ((err = __os_malloc(NULL, (count + 1) * sizeof(DBC *), &$1)) != 0) { - __dbj_throw(jenv, err, NULL, NULL, DB2JDBENV); - return $null; - } - for (i = 0; i < count; i++) { - jobject jobj = (*jenv)->GetObjectArrayElement(jenv, $input, i); - /* - * A null in the array is treated as an endpoint. - */ - if (jobj == NULL) { - $1[i] = NULL; - break; - } else { - jlong jptr = (*jenv)->GetLongField(jenv, jobj, - dbc_cptr_fid); - $1[i] = *(DBC **)(void *)&jptr; - } - } - $1[count] = NULL; -} - -%typemap(freearg) DBC ** %{ - __os_free(NULL, $1); -%} - -JAVA_TYPEMAP(u_int8_t *gid, byte[], jbyteArray) -%typemap(check) u_int8_t *gid %{ - if ((*jenv)->GetArrayLength(jenv, $input) < DB_XIDDATASIZE) { - __dbj_throw(jenv, EINVAL, - "DbTxn.prepare gid array must be >= 128 bytes", NULL, - TXN2JDBENV); - return $null; - } -%} - -%typemap(in) u_int8_t *gid %{ - $1 = (u_int8_t *)(*jenv)->GetByteArrayElements(jenv, $input, NULL); -%} - -%typemap(freearg) u_int8_t *gid %{ - (*jenv)->ReleaseByteArrayElements(jenv, $input, (jbyte *)$1, 0); -%} - -%define STRING_ARRAY_OUT - int i, len; - - len = 0; - while ($1[len] != NULL) - len++; - if (($result = (*jenv)->NewObjectArray(jenv, (jsize)len, string_class, - NULL)) == NULL) - return $null; /* an exception is pending */ - for (i = 0; i < len; i++) { - jstring str = (*jenv)->NewStringUTF(jenv, $1[i]); - (*jenv)->SetObjectArrayElement(jenv, $result, (jsize)i, str); - } -%enddef - -JAVA_TYPEMAP(char **, String[], jobjectArray) -%typemap(out) const char ** { - if ($1 != NULL) { - STRING_ARRAY_OUT - } -} -%typemap(out) char ** { - if ($1 != NULL) { - STRING_ARRAY_OUT - __os_ufree(NULL, $1); - } -} - -JAVA_TYPEMAP(struct __db_lk_conflicts, byte[][], jobjectArray) -%typemap(in) struct __db_lk_conflicts { - int i, len, err; - size_t bytesize; - - len = $1.lk_modes = (*jenv)->GetArrayLength(jenv, $input); - bytesize = sizeof(u_char) * len * len; - - if ((err = __os_malloc(NULL, bytesize, &$1.lk_conflicts)) != 0) { - __dbj_throw(jenv, err, NULL, NULL, JDBENV); - return $null; - } - - for (i = 0; i < len; i++) { - jobject sub_array = (*jenv)->GetObjectArrayElement(jenv, - $input, i); - (*jenv)->GetByteArrayRegion(jenv,(jbyteArray)sub_array, 0, len, - (jbyte *)&$1.lk_conflicts[i * len]); - } -} - -%typemap(freearg) struct __db_lk_conflicts %{ - __os_free(NULL, $1.lk_conflicts); -%} - -%typemap(out) struct __db_lk_conflicts { - int i; - jbyteArray bytes; - - $result = (*jenv)->NewObjectArray(jenv, - (jsize)$1.lk_modes, bytearray_class, NULL); - if ($result == NULL) - return $null; /* an exception is pending */ - for (i = 0; i < $1.lk_modes; i++) { - bytes = (*jenv)->NewByteArray(jenv, (jsize)$1.lk_modes); - if (bytes == NULL) - return $null; /* an exception is pending */ - (*jenv)->SetByteArrayRegion(jenv, bytes, 0, (jsize)$1.lk_modes, - (jbyte *)($1.lk_conflicts + i * $1.lk_modes)); - (*jenv)->SetObjectArrayElement(jenv, $result, (jsize)i, bytes); - } -} - -%{ -struct __dbj_verify_data { - JNIEnv *jenv; - jobject streamobj; - jbyteArray bytes; - int nbytes; -}; - -static int __dbj_verify_callback(void *handle, const void *str_arg) { - char *str; - struct __dbj_verify_data *vd; - int len; - JNIEnv *jenv; - - str = (char *)str_arg; - vd = (struct __dbj_verify_data *)handle; - jenv = vd->jenv; - len = strlen(str) + 1; - if (len > vd->nbytes) { - vd->nbytes = len; - if (vd->bytes != NULL) - (*jenv)->DeleteLocalRef(jenv, vd->bytes); - if ((vd->bytes = (*jenv)->NewByteArray(jenv, (jsize)len)) - == NULL) - return (ENOMEM); - } - - if (vd->bytes != NULL) { - (*jenv)->SetByteArrayRegion(jenv, vd->bytes, 0, (jsize)len, - (jbyte*)str); - (*jenv)->CallVoidMethod(jenv, vd->streamobj, - outputstream_write_method, vd->bytes, 0, len - 1); - } - - if ((*jenv)->ExceptionOccurred(jenv) != NULL) - return (EIO); - - return (0); -} -%} - -JAVA_TYPEMAP(struct __db_out_stream, java.io.OutputStream, jobject) -%typemap(in) struct __db_out_stream (struct __dbj_verify_data data) { - data.jenv = jenv; - data.streamobj = $input; - data.bytes = NULL; - data.nbytes = 0; - $1.handle = &data; - $1.callback = __dbj_verify_callback; -} - -JAVA_TYPEMAP(DB_PREPLIST *, com.sleepycat.db.PreparedTransaction[], - jobjectArray) -%typemap(out) DB_PREPLIST * { - int i, len; - - len = 0; - while ($1[len].txn != NULL) - len++; - $result = (*jenv)->NewObjectArray(jenv, (jsize)len, dbpreplist_class, - NULL); - if ($result == NULL) - return $null; /* an exception is pending */ - for (i = 0; i < len; i++) { - jobject jtxn = (*jenv)->NewObject(jenv, dbtxn_class, - dbtxn_construct, $1[i].txn, JNI_FALSE); - jobject bytearr = (*jenv)->NewByteArray(jenv, - (jsize)sizeof($1[i].gid)); - jobject obj = (*jenv)->NewObject(jenv, dbpreplist_class, - dbpreplist_construct, jtxn, bytearr); - - if (jtxn == NULL || bytearr == NULL || obj == NULL) - return $null; /* An exception is pending */ - - (*jenv)->SetByteArrayRegion(jenv, bytearr, 0, - (jsize)sizeof($1[i].gid), (jbyte *)$1[i].gid); - (*jenv)->SetObjectArrayElement(jenv, $result, i, obj); - } - __os_ufree(NULL, $1); -} - -JAVA_TYPEMAP(DB_LOCKREQ *, com.sleepycat.db.LockRequest[], jobjectArray) - -%native(DbEnv_lock_vec) void DbEnv_lock_vec(DB_ENV *dbenv, u_int32_t locker, - u_int32_t flags, DB_LOCKREQ *list, int offset, int nlist); -%{ -JNIEXPORT void JNICALL -Java_com_sleepycat_db_internal_db_1javaJNI_DbEnv_1lock_1vec(JNIEnv *jenv, - jclass jcls, jlong jdbenvp, jint locker, jint flags, jobjectArray list, - jint offset, jint count) { - DB_ENV *dbenv; - DB_LOCKREQ *lockreq; - DB_LOCKREQ *prereq; /* preprocessed requests */ - DB_LOCKREQ *failedreq; - DB_LOCK *lockp; - DBT_LOCKED *locked_dbts; - DBT *obj; - int err, alloc_err, i; - size_t bytesize, ldbtsize; - jobject jlockreq; - db_lockop_t op; - jobject jobj, jlock, jdbenv; - jlong jlockp; - int completed; - - COMPQUIET(jcls, NULL); - dbenv = *(DB_ENV **)(void *)&jdbenvp; - jdbenv = (jobject)DB_ENV_INTERNAL(dbenv); - - if (dbenv == NULL) { - __dbj_throw(jenv, EINVAL, "null object", NULL, jdbenv); - return; - } - - if ((*jenv)->GetArrayLength(jenv, list) < offset + count) { - __dbj_throw(jenv, EINVAL, - "DbEnv.lock_vec array not large enough", NULL, jdbenv); - goto out0; - } - - bytesize = sizeof(DB_LOCKREQ) * count; - if ((err = __os_malloc(dbenv, bytesize, &lockreq)) != 0) { - __dbj_throw(jenv, err, NULL, NULL, jdbenv); - goto out0; - } - memset(lockreq, 0, bytesize); - - ldbtsize = sizeof(DBT_LOCKED) * count; - if ((err = __os_malloc(dbenv, ldbtsize, &locked_dbts)) != 0) { - __dbj_throw(jenv, err, NULL, NULL, jdbenv); - goto out1; - } - memset(locked_dbts, 0, ldbtsize); - prereq = &lockreq[0]; - - /* fill in the lockreq array */ - for (i = 0, prereq = &lockreq[0]; i < count; i++, prereq++) { - jlockreq = (*jenv)->GetObjectArrayElement(jenv, list, - offset + i); - if (jlockreq == NULL) { - __dbj_throw(jenv, EINVAL, - "DbEnv.lock_vec list entry is null", NULL, jdbenv); - goto out2; - } - op = (*jenv)->GetIntField(jenv, jlockreq, lockreq_op_fid); - prereq->op = op; - - switch (op) { - case DB_LOCK_GET_TIMEOUT: - /* Needed: mode, timeout, obj. Returned: lock. */ - prereq->op = (*jenv)->GetIntField(jenv, jlockreq, - lockreq_timeout_fid); - /* FALLTHROUGH */ - case DB_LOCK_GET: - /* Needed: mode, obj. Returned: lock. */ - prereq->mode = (*jenv)->GetIntField(jenv, jlockreq, - lockreq_modeflag_fid); - jobj = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_obj_fid); - if ((err = __dbj_dbt_copyin(jenv, - &locked_dbts[i], &obj, jobj, 0)) != 0 || - (err = - __os_umalloc(dbenv, obj->size, &obj->data)) != 0 || - (err = __dbj_dbt_memcopy(obj, 0, - obj->data, obj->size, DB_USERCOPY_GETDATA)) != 0) - goto out2; - prereq->obj = obj; - break; - case DB_LOCK_PUT: - /* Needed: lock. Ignored: mode, obj. */ - jlock = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_lock_fid); - if (jlock == NULL || - (jlockp = (*jenv)->GetLongField(jenv, jlock, - lock_cptr_fid)) == 0L) { - __dbj_throw(jenv, EINVAL, - "LockRequest lock field is NULL", NULL, - jdbenv); - goto out2; - } - lockp = *(DB_LOCK **)(void *)&jlockp; - prereq->lock = *lockp; - break; - case DB_LOCK_PUT_ALL: - case DB_LOCK_TIMEOUT: - /* Needed: (none). Ignored: lock, mode, obj. */ - break; - case DB_LOCK_PUT_OBJ: - /* Needed: obj. Ignored: lock, mode. */ - jobj = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_obj_fid); - if ((err = __dbj_dbt_copyin(jenv, - &locked_dbts[i], &obj, jobj, 0)) != 0 || - (err = - __os_umalloc(dbenv, obj->size, &obj->data)) != 0 || - (err = __dbj_dbt_memcopy(obj, 0, - obj->data, obj->size, DB_USERCOPY_GETDATA)) != 0) - goto out2; - prereq->obj = obj; - break; - default: - __dbj_throw(jenv, EINVAL, - "DbEnv.lock_vec bad op value", NULL, jdbenv); - goto out2; - } - } - - err = dbenv->lock_vec(dbenv, (u_int32_t)locker, (u_int32_t)flags, - lockreq, count, &failedreq); - if (err == 0) - completed = count; - else - completed = failedreq - lockreq; - - /* do post processing for any and all requests that completed */ - for (i = 0; i < completed; i++) { - op = lockreq[i].op; - if (op == DB_LOCK_PUT) { - /* - * After a successful put, the DbLock can no longer be - * used, so we release the storage related to it. - */ - jlockreq = (*jenv)->GetObjectArrayElement(jenv, - list, i + offset); - jlock = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_lock_fid); - jlockp = (*jenv)->GetLongField(jenv, jlock, - lock_cptr_fid); - lockp = *(DB_LOCK **)(void *)&jlockp; - __os_free(NULL, lockp); - (*jenv)->SetLongField(jenv, jlock, lock_cptr_fid, - (jlong)0); - } - else if (op == DB_LOCK_GET) { - /* - * Store the lock that was obtained. We need to create - * storage for it since the lockreq array only exists - * during this method call. - */ - if ((alloc_err = - __os_malloc(dbenv, sizeof(DB_LOCK), &lockp)) != 0) { - __dbj_throw(jenv, alloc_err, NULL, NULL, - jdbenv); - goto out2; - } - - *lockp = lockreq[i].lock; - *(DB_LOCK **)(void *)&jlockp = lockp; - - jlockreq = (*jenv)->GetObjectArrayElement(jenv, - list, i + offset); - jlock = (*jenv)->NewObject(jenv, lock_class, - lock_construct, jlockp, JNI_TRUE); - if (jlock == NULL) - goto out2; /* An exception is pending */ - (*jenv)->SetLongField(jenv, jlock, lock_cptr_fid, - jlockp); - (*jenv)->SetObjectField(jenv, jlockreq, - lockreq_lock_fid, jlock); - } - } - - /* If one of the locks was not granted, build the exception now. */ - if (err == DB_LOCK_NOTGRANTED && i < count) { - jlockreq = (*jenv)->GetObjectArrayElement(jenv, list, - i + offset); - jobj = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_obj_fid); - jlock = (*jenv)->GetObjectField(jenv, jlockreq, - lockreq_lock_fid); - (*jenv)->Throw(jenv, - (*jenv)->NewObject(jenv, lockex_class, lockex_construct, - (*jenv)->NewStringUTF(jenv, "DbEnv.lock_vec incomplete"), - lockreq[i].op, lockreq[i].mode, jobj, jlock, i, jdbenv)); - } else if (err != 0) - __dbj_throw(jenv, err, NULL, NULL, jdbenv); - -out2: __os_free(dbenv, locked_dbts); -out1: for (i = 0, prereq = &lockreq[0]; i < count; i++, prereq++) - if ((prereq->op == DB_LOCK_GET || prereq->op == DB_LOCK_PUT) && - prereq->obj->data != NULL) - __os_ufree(dbenv, prereq->obj->data); - __os_free(dbenv, lockreq); -out0: return; -} -%} - -JAVA_TYPEMAP(struct __db_repmgr_sites, - com.sleepycat.db.ReplicationHostAddress[], jobjectArray) -%typemap(out) struct __db_repmgr_sites -{ - int i, len; - - len = $1.nsites; - $result = (*jenv)->NewObjectArray(jenv, (jsize)len, rephost_class, - NULL); - if ($result == NULL) - return $null; /* an exception is pending */ - for (i = 0; i < len; i++) { - jobject jrep_addr = (*jenv)->NewObject(jenv, - rephost_class, rephost_construct); - - (*jenv)->SetObjectField(jenv, jrep_addr, rephost_host_fid, - (*jenv)->NewStringUTF(jenv, $1.sites[i].host)); - (*jenv)->SetIntField(jenv, jrep_addr, rephost_port_fid, - $1.sites[i].port); - (*jenv)->SetIntField(jenv, jrep_addr, rephost_eid_fid, - $1.sites[i].eid); - (*jenv)->SetIntField(jenv, jrep_addr, rephost_status_fid, - $1.sites[i].status); - - if (jrep_addr == NULL) - return $null; /* An exception is pending */ - - (*jenv)->SetObjectArrayElement(jenv, $result, i, jrep_addr); - } - __os_ufree(NULL, $1.sites); -} - -JAVA_TYPEMAP(void *, Object, jobject) diff --git a/db/libdb_java/java_util.i b/db/libdb_java/java_util.i deleted file mode 100644 index 0313b853a..000000000 --- a/db/libdb_java/java_util.i +++ /dev/null @@ -1,995 +0,0 @@ -%pragma(java) jniclasscode=%{ - static { - /* An alternate library name can be specified via a property. */ - String libname; - int v_major, v_minor, v_patch; - - v_major = DbConstants.DB_VERSION_MAJOR; - v_minor = DbConstants.DB_VERSION_MINOR; - v_patch = DbConstants.DB_VERSION_PATCH; - - if ((libname = - System.getProperty("sleepycat.db.libfile")) != null) - System.load(libname); - else if ((libname = - System.getProperty("sleepycat.db.libname")) != null) - System.loadLibrary(libname); - else { - String os = System.getProperty("os.name"); - if (os != null && os.startsWith("Windows")) { - /* - * On Windows, library name is something like - * "libdb_java42.dll" or "libdb_java42d.dll". - */ - libname = "libdb_java" + v_major + v_minor; - - try { - System.loadLibrary(libname); - } catch (UnsatisfiedLinkError e) { - try { - libname += "d"; - System.loadLibrary(libname); - } catch (UnsatisfiedLinkError e2) { - throw e; - } - } - } else { - /* - * On UNIX, library name is something like - * "libdb_java-3.0.so". - */ - System.loadLibrary("db_java-" + - v_major + "." + v_minor); - } - } - - initialize(); - - if (DbEnv_get_version_major() != v_major || - DbEnv_get_version_minor() != v_minor || - DbEnv_get_version_patch() != v_patch) - throw new RuntimeException( - "Berkeley DB library version " + - DbEnv_get_version_major() + "." + - DbEnv_get_version_minor() + "." + - DbEnv_get_version_patch() + - " doesn't match Java class library version " + - v_major + "." + v_minor + "." + v_patch); - } - - static native final void initialize(); -%} - -%{ -/* don't use SWIG's array handling - save code space */ -#define SWIG_NOINCLUDE 1 - -#define DB_ENV_INTERNAL(dbenv) ((dbenv)->api2_internal) -#define DB_INTERNAL(db) ((db)->api_internal) - -#define DB_PKG "com/sleepycat/db/" - -/* Forward declarations */ -static int __dbj_throw(JNIEnv *jenv, - int err, const char *msg, jobject obj, jobject jdbenv); - -/* Global data - JVM handle, classes, fields and methods */ -static JavaVM *javavm; - -static jclass db_class, dbc_class, dbenv_class, dbt_class, dblsn_class; -static jclass dbpreplist_class, dbtxn_class; -static jclass keyrange_class; -static jclass bt_stat_class, compact_class, h_stat_class, lock_stat_class; -static jclass log_stat_class, mpool_stat_class, mpool_fstat_class; -static jclass mutex_stat_class, qam_stat_class, rep_stat_class; -static jclass repmgr_stat_class, rephost_class, seq_stat_class, txn_stat_class; -static jclass txn_active_class; -static jclass lock_class, lockreq_class; -static jclass dbex_class, deadex_class, lockex_class, memex_class; -static jclass repdupmasterex_class, rephandledeadex_class; -static jclass repholdelectionex_class, repjoinfailex_class; -static jclass repleaseexpiredex_class, repleasetimeoutex_class; -static jclass replockoutex_class, repunavailex_class; -static jclass runrecex_class, versionex_class; -static jclass filenotfoundex_class, illegalargex_class, outofmemerr_class; -static jclass bytearray_class, string_class, outputstream_class; - -static jfieldID dbc_cptr_fid; -static jfieldID dblsn_file_fid, dblsn_offset_fid; -static jfieldID dbt_data_fid, dbt_data_nio_fid, dbt_size_fid, dbt_ulen_fid; -static jfieldID dbt_dlen_fid, dbt_doff_fid, dbt_flags_fid, dbt_offset_fid; -static jfieldID kr_less_fid, kr_equal_fid, kr_greater_fid; -static jfieldID lock_cptr_fid; -static jfieldID lockreq_op_fid, lockreq_modeflag_fid, lockreq_timeout_fid; -static jfieldID lockreq_obj_fid, lockreq_lock_fid; -static jfieldID rephost_port_fid, rephost_host_fid, rephost_eid_fid; -static jfieldID rephost_status_fid; - -/* BEGIN-STAT-FIELD-DECLS */ -static jfieldID bt_stat_bt_magic_fid; -static jfieldID bt_stat_bt_version_fid; -static jfieldID bt_stat_bt_metaflags_fid; -static jfieldID bt_stat_bt_nkeys_fid; -static jfieldID bt_stat_bt_ndata_fid; -static jfieldID bt_stat_bt_pagecnt_fid; -static jfieldID bt_stat_bt_pagesize_fid; -static jfieldID bt_stat_bt_minkey_fid; -static jfieldID bt_stat_bt_re_len_fid; -static jfieldID bt_stat_bt_re_pad_fid; -static jfieldID bt_stat_bt_levels_fid; -static jfieldID bt_stat_bt_int_pg_fid; -static jfieldID bt_stat_bt_leaf_pg_fid; -static jfieldID bt_stat_bt_dup_pg_fid; -static jfieldID bt_stat_bt_over_pg_fid; -static jfieldID bt_stat_bt_empty_pg_fid; -static jfieldID bt_stat_bt_free_fid; -static jfieldID bt_stat_bt_int_pgfree_fid; -static jfieldID bt_stat_bt_leaf_pgfree_fid; -static jfieldID bt_stat_bt_dup_pgfree_fid; -static jfieldID bt_stat_bt_over_pgfree_fid; -static jfieldID compact_compact_fillpercent_fid; -static jfieldID compact_compact_timeout_fid; -static jfieldID compact_compact_pages_fid; -static jfieldID compact_compact_pages_free_fid; -static jfieldID compact_compact_pages_examine_fid; -static jfieldID compact_compact_levels_fid; -static jfieldID compact_compact_deadlock_fid; -static jfieldID compact_compact_pages_truncated_fid; -static jfieldID compact_compact_truncate_fid; -static jfieldID h_stat_hash_magic_fid; -static jfieldID h_stat_hash_version_fid; -static jfieldID h_stat_hash_metaflags_fid; -static jfieldID h_stat_hash_nkeys_fid; -static jfieldID h_stat_hash_ndata_fid; -static jfieldID h_stat_hash_pagecnt_fid; -static jfieldID h_stat_hash_pagesize_fid; -static jfieldID h_stat_hash_ffactor_fid; -static jfieldID h_stat_hash_buckets_fid; -static jfieldID h_stat_hash_free_fid; -static jfieldID h_stat_hash_bfree_fid; -static jfieldID h_stat_hash_bigpages_fid; -static jfieldID h_stat_hash_big_bfree_fid; -static jfieldID h_stat_hash_overflows_fid; -static jfieldID h_stat_hash_ovfl_free_fid; -static jfieldID h_stat_hash_dup_fid; -static jfieldID h_stat_hash_dup_free_fid; -static jfieldID lock_stat_st_id_fid; -static jfieldID lock_stat_st_cur_maxid_fid; -static jfieldID lock_stat_st_maxlocks_fid; -static jfieldID lock_stat_st_maxlockers_fid; -static jfieldID lock_stat_st_maxobjects_fid; -static jfieldID lock_stat_st_nmodes_fid; -static jfieldID lock_stat_st_nlockers_fid; -static jfieldID lock_stat_st_nlocks_fid; -static jfieldID lock_stat_st_maxnlocks_fid; -static jfieldID lock_stat_st_maxnlockers_fid; -static jfieldID lock_stat_st_nobjects_fid; -static jfieldID lock_stat_st_maxnobjects_fid; -static jfieldID lock_stat_st_nrequests_fid; -static jfieldID lock_stat_st_nreleases_fid; -static jfieldID lock_stat_st_nupgrade_fid; -static jfieldID lock_stat_st_ndowngrade_fid; -static jfieldID lock_stat_st_lock_wait_fid; -static jfieldID lock_stat_st_lock_nowait_fid; -static jfieldID lock_stat_st_ndeadlocks_fid; -static jfieldID lock_stat_st_locktimeout_fid; -static jfieldID lock_stat_st_nlocktimeouts_fid; -static jfieldID lock_stat_st_txntimeout_fid; -static jfieldID lock_stat_st_ntxntimeouts_fid; -static jfieldID lock_stat_st_objs_wait_fid; -static jfieldID lock_stat_st_objs_nowait_fid; -static jfieldID lock_stat_st_lockers_wait_fid; -static jfieldID lock_stat_st_lockers_nowait_fid; -static jfieldID lock_stat_st_locks_wait_fid; -static jfieldID lock_stat_st_locks_nowait_fid; -static jfieldID lock_stat_st_region_wait_fid; -static jfieldID lock_stat_st_region_nowait_fid; -static jfieldID lock_stat_st_hash_len_fid; -static jfieldID lock_stat_st_regsize_fid; -static jfieldID log_stat_st_magic_fid; -static jfieldID log_stat_st_version_fid; -static jfieldID log_stat_st_mode_fid; -static jfieldID log_stat_st_lg_bsize_fid; -static jfieldID log_stat_st_lg_size_fid; -static jfieldID log_stat_st_wc_bytes_fid; -static jfieldID log_stat_st_wc_mbytes_fid; -static jfieldID log_stat_st_record_fid; -static jfieldID log_stat_st_w_bytes_fid; -static jfieldID log_stat_st_w_mbytes_fid; -static jfieldID log_stat_st_wcount_fid; -static jfieldID log_stat_st_wcount_fill_fid; -static jfieldID log_stat_st_rcount_fid; -static jfieldID log_stat_st_scount_fid; -static jfieldID log_stat_st_region_wait_fid; -static jfieldID log_stat_st_region_nowait_fid; -static jfieldID log_stat_st_cur_file_fid; -static jfieldID log_stat_st_cur_offset_fid; -static jfieldID log_stat_st_disk_file_fid; -static jfieldID log_stat_st_disk_offset_fid; -static jfieldID log_stat_st_maxcommitperflush_fid; -static jfieldID log_stat_st_mincommitperflush_fid; -static jfieldID log_stat_st_regsize_fid; -static jfieldID mpool_fstat_file_name_fid; -static jfieldID mpool_fstat_st_pagesize_fid; -static jfieldID mpool_fstat_st_map_fid; -static jfieldID mpool_fstat_st_cache_hit_fid; -static jfieldID mpool_fstat_st_cache_miss_fid; -static jfieldID mpool_fstat_st_page_create_fid; -static jfieldID mpool_fstat_st_page_in_fid; -static jfieldID mpool_fstat_st_page_out_fid; -static jfieldID mpool_stat_st_gbytes_fid; -static jfieldID mpool_stat_st_bytes_fid; -static jfieldID mpool_stat_st_ncache_fid; -static jfieldID mpool_stat_st_max_ncache_fid; -static jfieldID mpool_stat_st_mmapsize_fid; -static jfieldID mpool_stat_st_maxopenfd_fid; -static jfieldID mpool_stat_st_maxwrite_fid; -static jfieldID mpool_stat_st_maxwrite_sleep_fid; -static jfieldID mpool_stat_st_pages_fid; -static jfieldID mpool_stat_st_map_fid; -static jfieldID mpool_stat_st_cache_hit_fid; -static jfieldID mpool_stat_st_cache_miss_fid; -static jfieldID mpool_stat_st_page_create_fid; -static jfieldID mpool_stat_st_page_in_fid; -static jfieldID mpool_stat_st_page_out_fid; -static jfieldID mpool_stat_st_ro_evict_fid; -static jfieldID mpool_stat_st_rw_evict_fid; -static jfieldID mpool_stat_st_page_trickle_fid; -static jfieldID mpool_stat_st_page_clean_fid; -static jfieldID mpool_stat_st_page_dirty_fid; -static jfieldID mpool_stat_st_hash_buckets_fid; -static jfieldID mpool_stat_st_hash_searches_fid; -static jfieldID mpool_stat_st_hash_longest_fid; -static jfieldID mpool_stat_st_hash_examined_fid; -static jfieldID mpool_stat_st_hash_nowait_fid; -static jfieldID mpool_stat_st_hash_wait_fid; -static jfieldID mpool_stat_st_hash_max_nowait_fid; -static jfieldID mpool_stat_st_hash_max_wait_fid; -static jfieldID mpool_stat_st_region_nowait_fid; -static jfieldID mpool_stat_st_region_wait_fid; -static jfieldID mpool_stat_st_mvcc_frozen_fid; -static jfieldID mpool_stat_st_mvcc_thawed_fid; -static jfieldID mpool_stat_st_mvcc_freed_fid; -static jfieldID mpool_stat_st_alloc_fid; -static jfieldID mpool_stat_st_alloc_buckets_fid; -static jfieldID mpool_stat_st_alloc_max_buckets_fid; -static jfieldID mpool_stat_st_alloc_pages_fid; -static jfieldID mpool_stat_st_alloc_max_pages_fid; -static jfieldID mpool_stat_st_io_wait_fid; -static jfieldID mpool_stat_st_regsize_fid; -static jfieldID mutex_stat_st_mutex_align_fid; -static jfieldID mutex_stat_st_mutex_tas_spins_fid; -static jfieldID mutex_stat_st_mutex_cnt_fid; -static jfieldID mutex_stat_st_mutex_free_fid; -static jfieldID mutex_stat_st_mutex_inuse_fid; -static jfieldID mutex_stat_st_mutex_inuse_max_fid; -static jfieldID mutex_stat_st_region_wait_fid; -static jfieldID mutex_stat_st_region_nowait_fid; -static jfieldID mutex_stat_st_regsize_fid; -static jfieldID qam_stat_qs_magic_fid; -static jfieldID qam_stat_qs_version_fid; -static jfieldID qam_stat_qs_metaflags_fid; -static jfieldID qam_stat_qs_nkeys_fid; -static jfieldID qam_stat_qs_ndata_fid; -static jfieldID qam_stat_qs_pagesize_fid; -static jfieldID qam_stat_qs_extentsize_fid; -static jfieldID qam_stat_qs_pages_fid; -static jfieldID qam_stat_qs_re_len_fid; -static jfieldID qam_stat_qs_re_pad_fid; -static jfieldID qam_stat_qs_pgfree_fid; -static jfieldID qam_stat_qs_first_recno_fid; -static jfieldID qam_stat_qs_cur_recno_fid; -static jfieldID rep_stat_st_log_queued_fid; -static jfieldID rep_stat_st_startup_complete_fid; -static jfieldID rep_stat_st_status_fid; -static jfieldID rep_stat_st_next_lsn_fid; -static jfieldID rep_stat_st_waiting_lsn_fid; -static jfieldID rep_stat_st_next_pg_fid; -static jfieldID rep_stat_st_waiting_pg_fid; -static jfieldID rep_stat_st_dupmasters_fid; -static jfieldID rep_stat_st_env_id_fid; -static jfieldID rep_stat_st_env_priority_fid; -static jfieldID rep_stat_st_bulk_fills_fid; -static jfieldID rep_stat_st_bulk_overflows_fid; -static jfieldID rep_stat_st_bulk_records_fid; -static jfieldID rep_stat_st_bulk_transfers_fid; -static jfieldID rep_stat_st_client_rerequests_fid; -static jfieldID rep_stat_st_client_svc_req_fid; -static jfieldID rep_stat_st_client_svc_miss_fid; -static jfieldID rep_stat_st_gen_fid; -static jfieldID rep_stat_st_egen_fid; -static jfieldID rep_stat_st_log_duplicated_fid; -static jfieldID rep_stat_st_log_queued_max_fid; -static jfieldID rep_stat_st_log_queued_total_fid; -static jfieldID rep_stat_st_log_records_fid; -static jfieldID rep_stat_st_log_requested_fid; -static jfieldID rep_stat_st_master_fid; -static jfieldID rep_stat_st_master_changes_fid; -static jfieldID rep_stat_st_msgs_badgen_fid; -static jfieldID rep_stat_st_msgs_processed_fid; -static jfieldID rep_stat_st_msgs_recover_fid; -static jfieldID rep_stat_st_msgs_send_failures_fid; -static jfieldID rep_stat_st_msgs_sent_fid; -static jfieldID rep_stat_st_newsites_fid; -static jfieldID rep_stat_st_nsites_fid; -static jfieldID rep_stat_st_nthrottles_fid; -static jfieldID rep_stat_st_outdated_fid; -static jfieldID rep_stat_st_pg_duplicated_fid; -static jfieldID rep_stat_st_pg_records_fid; -static jfieldID rep_stat_st_pg_requested_fid; -static jfieldID rep_stat_st_txns_applied_fid; -static jfieldID rep_stat_st_startsync_delayed_fid; -static jfieldID rep_stat_st_elections_fid; -static jfieldID rep_stat_st_elections_won_fid; -static jfieldID rep_stat_st_election_cur_winner_fid; -static jfieldID rep_stat_st_election_gen_fid; -static jfieldID rep_stat_st_election_lsn_fid; -static jfieldID rep_stat_st_election_nsites_fid; -static jfieldID rep_stat_st_election_nvotes_fid; -static jfieldID rep_stat_st_election_priority_fid; -static jfieldID rep_stat_st_election_status_fid; -static jfieldID rep_stat_st_election_tiebreaker_fid; -static jfieldID rep_stat_st_election_votes_fid; -static jfieldID rep_stat_st_election_sec_fid; -static jfieldID rep_stat_st_election_usec_fid; -static jfieldID repmgr_stat_st_perm_failed_fid; -static jfieldID repmgr_stat_st_msgs_queued_fid; -static jfieldID repmgr_stat_st_msgs_dropped_fid; -static jfieldID repmgr_stat_st_connection_drop_fid; -static jfieldID repmgr_stat_st_connect_fail_fid; -static jfieldID seq_stat_st_wait_fid; -static jfieldID seq_stat_st_nowait_fid; -static jfieldID seq_stat_st_current_fid; -static jfieldID seq_stat_st_value_fid; -static jfieldID seq_stat_st_last_value_fid; -static jfieldID seq_stat_st_min_fid; -static jfieldID seq_stat_st_max_fid; -static jfieldID seq_stat_st_cache_size_fid; -static jfieldID seq_stat_st_flags_fid; -static jfieldID txn_stat_st_nrestores_fid; -static jfieldID txn_stat_st_last_ckp_fid; -static jfieldID txn_stat_st_time_ckp_fid; -static jfieldID txn_stat_st_last_txnid_fid; -static jfieldID txn_stat_st_maxtxns_fid; -static jfieldID txn_stat_st_naborts_fid; -static jfieldID txn_stat_st_nbegins_fid; -static jfieldID txn_stat_st_ncommits_fid; -static jfieldID txn_stat_st_nactive_fid; -static jfieldID txn_stat_st_nsnapshot_fid; -static jfieldID txn_stat_st_maxnactive_fid; -static jfieldID txn_stat_st_maxnsnapshot_fid; -static jfieldID txn_stat_st_txnarray_fid; -static jfieldID txn_stat_st_region_wait_fid; -static jfieldID txn_stat_st_region_nowait_fid; -static jfieldID txn_stat_st_regsize_fid; -static jfieldID txn_active_txnid_fid; -static jfieldID txn_active_parentid_fid; -static jfieldID txn_active_pid_fid; -static jfieldID txn_active_lsn_fid; -static jfieldID txn_active_read_lsn_fid; -static jfieldID txn_active_mvcc_ref_fid; -static jfieldID txn_active_status_fid; -static jfieldID txn_active_xa_status_fid; -static jfieldID txn_active_xid_fid; -static jfieldID txn_active_name_fid; -/* END-STAT-FIELD-DECLS */ - -static jmethodID dbenv_construct, dbt_construct, dblsn_construct; -static jmethodID dbpreplist_construct, dbtxn_construct; -static jmethodID bt_stat_construct, get_err_msg_method, h_stat_construct; -static jmethodID lock_stat_construct, log_stat_construct; -static jmethodID mpool_stat_construct, mpool_fstat_construct; -static jmethodID mutex_stat_construct, qam_stat_construct; -static jmethodID rep_stat_construct, repmgr_stat_construct, seq_stat_construct; -static jmethodID txn_stat_construct, txn_active_construct; -static jmethodID dbex_construct, deadex_construct, lockex_construct; -static jmethodID memex_construct, memex_update_method; -static jmethodID repdupmasterex_construct, rephandledeadex_construct; -static jmethodID repholdelectionex_construct, repjoinfailex_construct; -static jmethodID rephost_construct, repleaseexpiredex_construct; -static jmethodID repleasetimeoutex_construct, replockoutex_construct; -static jmethodID repunavailex_construct; -static jmethodID runrecex_construct, versionex_construct; -static jmethodID filenotfoundex_construct, illegalargex_construct; -static jmethodID outofmemerr_construct; -static jmethodID lock_construct; - -static jmethodID app_dispatch_method, errcall_method, env_feedback_method; -static jmethodID msgcall_method, paniccall_method, rep_transport_method; -static jmethodID panic_event_notify_method, rep_client_event_notify_method; -static jmethodID rep_elected_event_notify_method; -static jmethodID rep_master_event_notify_method; -static jmethodID rep_new_master_event_notify_method; -static jmethodID rep_perm_failed_event_notify_method; -static jmethodID rep_startup_done_event_notify_method; -static jmethodID write_failed_event_notify_method; - -static jmethodID append_recno_method, bt_compare_method, bt_prefix_method; -static jmethodID db_feedback_method, dup_compare_method, h_compare_method; -static jmethodID h_hash_method, seckey_create_method; - -static jmethodID outputstream_write_method; - -const struct { - jclass *cl; - const char *name; -} all_classes[] = { - { &dbenv_class, DB_PKG "internal/DbEnv" }, - { &db_class, DB_PKG "internal/Db" }, - { &dbc_class, DB_PKG "internal/Dbc" }, - { &dbt_class, DB_PKG "DatabaseEntry" }, - { &dblsn_class, DB_PKG "LogSequenceNumber" }, - { &dbpreplist_class, DB_PKG "PreparedTransaction" }, - { &dbtxn_class, DB_PKG "internal/DbTxn" }, - - { &bt_stat_class, DB_PKG "BtreeStats" }, - { &compact_class, DB_PKG "CompactStats" }, - { &h_stat_class, DB_PKG "HashStats" }, - { &lock_stat_class, DB_PKG "LockStats" }, - { &log_stat_class, DB_PKG "LogStats" }, - { &mpool_fstat_class, DB_PKG "CacheFileStats" }, - { &mpool_stat_class, DB_PKG "CacheStats" }, - { &mutex_stat_class, DB_PKG "MutexStats" }, - { &qam_stat_class, DB_PKG "QueueStats" }, - { &rep_stat_class, DB_PKG "ReplicationStats" }, - { &repmgr_stat_class, DB_PKG "ReplicationManagerStats" }, - { &seq_stat_class, DB_PKG "SequenceStats" }, - { &txn_stat_class, DB_PKG "TransactionStats" }, - { &txn_active_class, DB_PKG "TransactionStats$Active" }, - - { &keyrange_class, DB_PKG "KeyRange" }, - { &lock_class, DB_PKG "internal/DbLock" }, - { &lockreq_class, DB_PKG "LockRequest" }, - - { &dbex_class, DB_PKG "DatabaseException" }, - { &deadex_class, DB_PKG "DeadlockException" }, - { &lockex_class, DB_PKG "LockNotGrantedException" }, - { &memex_class, DB_PKG "MemoryException" }, - { &repdupmasterex_class, DB_PKG "ReplicationDuplicateMasterException" }, - { &rephandledeadex_class, DB_PKG "ReplicationHandleDeadException" }, - { &repholdelectionex_class, DB_PKG "ReplicationHoldElectionException" }, - { &rephost_class, DB_PKG "ReplicationHostAddress" }, - { &repjoinfailex_class, DB_PKG "ReplicationJoinFailureException" }, - { &repleaseexpiredex_class, DB_PKG "ReplicationLeaseExpiredException" }, - { &repleasetimeoutex_class, DB_PKG "ReplicationLeaseTimeoutException" }, - { &replockoutex_class, DB_PKG "ReplicationLockoutException" }, - { &repunavailex_class, DB_PKG "ReplicationSiteUnavailableException" }, - { &runrecex_class, DB_PKG "RunRecoveryException" }, - { &versionex_class, DB_PKG "VersionMismatchException" }, - { &filenotfoundex_class, "java/io/FileNotFoundException" }, - { &illegalargex_class, "java/lang/IllegalArgumentException" }, - { &outofmemerr_class, "java/lang/OutOfMemoryError" }, - - { &bytearray_class, "[B" }, - { &string_class, "java/lang/String" }, - { &outputstream_class, "java/io/OutputStream" } -}; - -const struct { - jfieldID *fid; - jclass *cl; - const char *name; - const char *sig; -} all_fields[] = { - { &dbc_cptr_fid, &dbc_class, "swigCPtr", "J" }, - - { &dblsn_file_fid, &dblsn_class, "file", "I" }, - { &dblsn_offset_fid, &dblsn_class, "offset", "I" }, - - { &dbt_data_fid, &dbt_class, "data", "[B" }, - { &dbt_data_nio_fid, &dbt_class, "data_nio", "Ljava/nio/ByteBuffer;" }, - { &dbt_size_fid, &dbt_class, "size", "I" }, - { &dbt_ulen_fid, &dbt_class, "ulen", "I" }, - { &dbt_dlen_fid, &dbt_class, "dlen", "I" }, - { &dbt_doff_fid, &dbt_class, "doff", "I" }, - { &dbt_flags_fid, &dbt_class, "flags", "I" }, - { &dbt_offset_fid, &dbt_class, "offset", "I" }, - - { &kr_less_fid, &keyrange_class, "less", "D" }, - { &kr_equal_fid, &keyrange_class, "equal", "D" }, - { &kr_greater_fid, &keyrange_class, "greater", "D" }, - - { &lock_cptr_fid, &lock_class, "swigCPtr", "J" }, - - { &lockreq_op_fid, &lockreq_class, "op", "I" }, - { &lockreq_modeflag_fid, &lockreq_class, "modeFlag", "I" }, - { &lockreq_timeout_fid, &lockreq_class, "timeout", "I" }, - { &lockreq_obj_fid, &lockreq_class, "obj", - "L" DB_PKG "DatabaseEntry;" }, - { &lockreq_lock_fid, &lockreq_class, "lock", - "L" DB_PKG "internal/DbLock;" }, - -/* BEGIN-STAT-FIELDS */ - { &bt_stat_bt_magic_fid, &bt_stat_class, "bt_magic", "I" }, - { &bt_stat_bt_version_fid, &bt_stat_class, "bt_version", "I" }, - { &bt_stat_bt_metaflags_fid, &bt_stat_class, "bt_metaflags", "I" }, - { &bt_stat_bt_nkeys_fid, &bt_stat_class, "bt_nkeys", "I" }, - { &bt_stat_bt_ndata_fid, &bt_stat_class, "bt_ndata", "I" }, - { &bt_stat_bt_pagecnt_fid, &bt_stat_class, "bt_pagecnt", "I" }, - { &bt_stat_bt_pagesize_fid, &bt_stat_class, "bt_pagesize", "I" }, - { &bt_stat_bt_minkey_fid, &bt_stat_class, "bt_minkey", "I" }, - { &bt_stat_bt_re_len_fid, &bt_stat_class, "bt_re_len", "I" }, - { &bt_stat_bt_re_pad_fid, &bt_stat_class, "bt_re_pad", "I" }, - { &bt_stat_bt_levels_fid, &bt_stat_class, "bt_levels", "I" }, - { &bt_stat_bt_int_pg_fid, &bt_stat_class, "bt_int_pg", "I" }, - { &bt_stat_bt_leaf_pg_fid, &bt_stat_class, "bt_leaf_pg", "I" }, - { &bt_stat_bt_dup_pg_fid, &bt_stat_class, "bt_dup_pg", "I" }, - { &bt_stat_bt_over_pg_fid, &bt_stat_class, "bt_over_pg", "I" }, - { &bt_stat_bt_empty_pg_fid, &bt_stat_class, "bt_empty_pg", "I" }, - { &bt_stat_bt_free_fid, &bt_stat_class, "bt_free", "I" }, - { &bt_stat_bt_int_pgfree_fid, &bt_stat_class, "bt_int_pgfree", "I" }, - { &bt_stat_bt_leaf_pgfree_fid, &bt_stat_class, "bt_leaf_pgfree", "I" }, - { &bt_stat_bt_dup_pgfree_fid, &bt_stat_class, "bt_dup_pgfree", "I" }, - { &bt_stat_bt_over_pgfree_fid, &bt_stat_class, "bt_over_pgfree", "I" }, - { &compact_compact_fillpercent_fid, &compact_class, "compact_fillpercent", "I" }, - { &compact_compact_timeout_fid, &compact_class, "compact_timeout", "I" }, - { &compact_compact_pages_fid, &compact_class, "compact_pages", "I" }, - { &compact_compact_pages_free_fid, &compact_class, "compact_pages_free", "I" }, - { &compact_compact_pages_examine_fid, &compact_class, "compact_pages_examine", "I" }, - { &compact_compact_levels_fid, &compact_class, "compact_levels", "I" }, - { &compact_compact_deadlock_fid, &compact_class, "compact_deadlock", "I" }, - { &compact_compact_pages_truncated_fid, &compact_class, "compact_pages_truncated", "I" }, - { &compact_compact_truncate_fid, &compact_class, "compact_truncate", "I" }, - { &h_stat_hash_magic_fid, &h_stat_class, "hash_magic", "I" }, - { &h_stat_hash_version_fid, &h_stat_class, "hash_version", "I" }, - { &h_stat_hash_metaflags_fid, &h_stat_class, "hash_metaflags", "I" }, - { &h_stat_hash_nkeys_fid, &h_stat_class, "hash_nkeys", "I" }, - { &h_stat_hash_ndata_fid, &h_stat_class, "hash_ndata", "I" }, - { &h_stat_hash_pagecnt_fid, &h_stat_class, "hash_pagecnt", "I" }, - { &h_stat_hash_pagesize_fid, &h_stat_class, "hash_pagesize", "I" }, - { &h_stat_hash_ffactor_fid, &h_stat_class, "hash_ffactor", "I" }, - { &h_stat_hash_buckets_fid, &h_stat_class, "hash_buckets", "I" }, - { &h_stat_hash_free_fid, &h_stat_class, "hash_free", "I" }, - { &h_stat_hash_bfree_fid, &h_stat_class, "hash_bfree", "I" }, - { &h_stat_hash_bigpages_fid, &h_stat_class, "hash_bigpages", "I" }, - { &h_stat_hash_big_bfree_fid, &h_stat_class, "hash_big_bfree", "I" }, - { &h_stat_hash_overflows_fid, &h_stat_class, "hash_overflows", "I" }, - { &h_stat_hash_ovfl_free_fid, &h_stat_class, "hash_ovfl_free", "I" }, - { &h_stat_hash_dup_fid, &h_stat_class, "hash_dup", "I" }, - { &h_stat_hash_dup_free_fid, &h_stat_class, "hash_dup_free", "I" }, - { &lock_stat_st_id_fid, &lock_stat_class, "st_id", "I" }, - { &lock_stat_st_cur_maxid_fid, &lock_stat_class, "st_cur_maxid", "I" }, - { &lock_stat_st_maxlocks_fid, &lock_stat_class, "st_maxlocks", "I" }, - { &lock_stat_st_maxlockers_fid, &lock_stat_class, "st_maxlockers", "I" }, - { &lock_stat_st_maxobjects_fid, &lock_stat_class, "st_maxobjects", "I" }, - { &lock_stat_st_nmodes_fid, &lock_stat_class, "st_nmodes", "I" }, - { &lock_stat_st_nlockers_fid, &lock_stat_class, "st_nlockers", "I" }, - { &lock_stat_st_nlocks_fid, &lock_stat_class, "st_nlocks", "I" }, - { &lock_stat_st_maxnlocks_fid, &lock_stat_class, "st_maxnlocks", "I" }, - { &lock_stat_st_maxnlockers_fid, &lock_stat_class, "st_maxnlockers", "I" }, - { &lock_stat_st_nobjects_fid, &lock_stat_class, "st_nobjects", "I" }, - { &lock_stat_st_maxnobjects_fid, &lock_stat_class, "st_maxnobjects", "I" }, - { &lock_stat_st_nrequests_fid, &lock_stat_class, "st_nrequests", "I" }, - { &lock_stat_st_nreleases_fid, &lock_stat_class, "st_nreleases", "I" }, - { &lock_stat_st_nupgrade_fid, &lock_stat_class, "st_nupgrade", "I" }, - { &lock_stat_st_ndowngrade_fid, &lock_stat_class, "st_ndowngrade", "I" }, - { &lock_stat_st_lock_wait_fid, &lock_stat_class, "st_lock_wait", "I" }, - { &lock_stat_st_lock_nowait_fid, &lock_stat_class, "st_lock_nowait", "I" }, - { &lock_stat_st_ndeadlocks_fid, &lock_stat_class, "st_ndeadlocks", "I" }, - { &lock_stat_st_locktimeout_fid, &lock_stat_class, "st_locktimeout", "I" }, - { &lock_stat_st_nlocktimeouts_fid, &lock_stat_class, "st_nlocktimeouts", "I" }, - { &lock_stat_st_txntimeout_fid, &lock_stat_class, "st_txntimeout", "I" }, - { &lock_stat_st_ntxntimeouts_fid, &lock_stat_class, "st_ntxntimeouts", "I" }, - { &lock_stat_st_objs_wait_fid, &lock_stat_class, "st_objs_wait", "I" }, - { &lock_stat_st_objs_nowait_fid, &lock_stat_class, "st_objs_nowait", "I" }, - { &lock_stat_st_lockers_wait_fid, &lock_stat_class, "st_lockers_wait", "I" }, - { &lock_stat_st_lockers_nowait_fid, &lock_stat_class, "st_lockers_nowait", "I" }, - { &lock_stat_st_locks_wait_fid, &lock_stat_class, "st_locks_wait", "I" }, - { &lock_stat_st_locks_nowait_fid, &lock_stat_class, "st_locks_nowait", "I" }, - { &lock_stat_st_region_wait_fid, &lock_stat_class, "st_region_wait", "I" }, - { &lock_stat_st_region_nowait_fid, &lock_stat_class, "st_region_nowait", "I" }, - { &lock_stat_st_hash_len_fid, &lock_stat_class, "st_hash_len", "I" }, - { &lock_stat_st_regsize_fid, &lock_stat_class, "st_regsize", "I" }, - { &log_stat_st_magic_fid, &log_stat_class, "st_magic", "I" }, - { &log_stat_st_version_fid, &log_stat_class, "st_version", "I" }, - { &log_stat_st_mode_fid, &log_stat_class, "st_mode", "I" }, - { &log_stat_st_lg_bsize_fid, &log_stat_class, "st_lg_bsize", "I" }, - { &log_stat_st_lg_size_fid, &log_stat_class, "st_lg_size", "I" }, - { &log_stat_st_wc_bytes_fid, &log_stat_class, "st_wc_bytes", "I" }, - { &log_stat_st_wc_mbytes_fid, &log_stat_class, "st_wc_mbytes", "I" }, - { &log_stat_st_record_fid, &log_stat_class, "st_record", "I" }, - { &log_stat_st_w_bytes_fid, &log_stat_class, "st_w_bytes", "I" }, - { &log_stat_st_w_mbytes_fid, &log_stat_class, "st_w_mbytes", "I" }, - { &log_stat_st_wcount_fid, &log_stat_class, "st_wcount", "I" }, - { &log_stat_st_wcount_fill_fid, &log_stat_class, "st_wcount_fill", "I" }, - { &log_stat_st_rcount_fid, &log_stat_class, "st_rcount", "I" }, - { &log_stat_st_scount_fid, &log_stat_class, "st_scount", "I" }, - { &log_stat_st_region_wait_fid, &log_stat_class, "st_region_wait", "I" }, - { &log_stat_st_region_nowait_fid, &log_stat_class, "st_region_nowait", "I" }, - { &log_stat_st_cur_file_fid, &log_stat_class, "st_cur_file", "I" }, - { &log_stat_st_cur_offset_fid, &log_stat_class, "st_cur_offset", "I" }, - { &log_stat_st_disk_file_fid, &log_stat_class, "st_disk_file", "I" }, - { &log_stat_st_disk_offset_fid, &log_stat_class, "st_disk_offset", "I" }, - { &log_stat_st_maxcommitperflush_fid, &log_stat_class, "st_maxcommitperflush", "I" }, - { &log_stat_st_mincommitperflush_fid, &log_stat_class, "st_mincommitperflush", "I" }, - { &log_stat_st_regsize_fid, &log_stat_class, "st_regsize", "I" }, - { &mpool_fstat_file_name_fid, &mpool_fstat_class, "file_name", "Ljava/lang/String;" }, - { &mpool_fstat_st_pagesize_fid, &mpool_fstat_class, "st_pagesize", "I" }, - { &mpool_fstat_st_map_fid, &mpool_fstat_class, "st_map", "I" }, - { &mpool_fstat_st_cache_hit_fid, &mpool_fstat_class, "st_cache_hit", "I" }, - { &mpool_fstat_st_cache_miss_fid, &mpool_fstat_class, "st_cache_miss", "I" }, - { &mpool_fstat_st_page_create_fid, &mpool_fstat_class, "st_page_create", "I" }, - { &mpool_fstat_st_page_in_fid, &mpool_fstat_class, "st_page_in", "I" }, - { &mpool_fstat_st_page_out_fid, &mpool_fstat_class, "st_page_out", "I" }, - { &mpool_stat_st_gbytes_fid, &mpool_stat_class, "st_gbytes", "I" }, - { &mpool_stat_st_bytes_fid, &mpool_stat_class, "st_bytes", "I" }, - { &mpool_stat_st_ncache_fid, &mpool_stat_class, "st_ncache", "I" }, - { &mpool_stat_st_max_ncache_fid, &mpool_stat_class, "st_max_ncache", "I" }, - { &mpool_stat_st_mmapsize_fid, &mpool_stat_class, "st_mmapsize", "I" }, - { &mpool_stat_st_maxopenfd_fid, &mpool_stat_class, "st_maxopenfd", "I" }, - { &mpool_stat_st_maxwrite_fid, &mpool_stat_class, "st_maxwrite", "I" }, - { &mpool_stat_st_maxwrite_sleep_fid, &mpool_stat_class, "st_maxwrite_sleep", "I" }, - { &mpool_stat_st_pages_fid, &mpool_stat_class, "st_pages", "I" }, - { &mpool_stat_st_map_fid, &mpool_stat_class, "st_map", "I" }, - { &mpool_stat_st_cache_hit_fid, &mpool_stat_class, "st_cache_hit", "I" }, - { &mpool_stat_st_cache_miss_fid, &mpool_stat_class, "st_cache_miss", "I" }, - { &mpool_stat_st_page_create_fid, &mpool_stat_class, "st_page_create", "I" }, - { &mpool_stat_st_page_in_fid, &mpool_stat_class, "st_page_in", "I" }, - { &mpool_stat_st_page_out_fid, &mpool_stat_class, "st_page_out", "I" }, - { &mpool_stat_st_ro_evict_fid, &mpool_stat_class, "st_ro_evict", "I" }, - { &mpool_stat_st_rw_evict_fid, &mpool_stat_class, "st_rw_evict", "I" }, - { &mpool_stat_st_page_trickle_fid, &mpool_stat_class, "st_page_trickle", "I" }, - { &mpool_stat_st_page_clean_fid, &mpool_stat_class, "st_page_clean", "I" }, - { &mpool_stat_st_page_dirty_fid, &mpool_stat_class, "st_page_dirty", "I" }, - { &mpool_stat_st_hash_buckets_fid, &mpool_stat_class, "st_hash_buckets", "I" }, - { &mpool_stat_st_hash_searches_fid, &mpool_stat_class, "st_hash_searches", "I" }, - { &mpool_stat_st_hash_longest_fid, &mpool_stat_class, "st_hash_longest", "I" }, - { &mpool_stat_st_hash_examined_fid, &mpool_stat_class, "st_hash_examined", "I" }, - { &mpool_stat_st_hash_nowait_fid, &mpool_stat_class, "st_hash_nowait", "I" }, - { &mpool_stat_st_hash_wait_fid, &mpool_stat_class, "st_hash_wait", "I" }, - { &mpool_stat_st_hash_max_nowait_fid, &mpool_stat_class, "st_hash_max_nowait", "I" }, - { &mpool_stat_st_hash_max_wait_fid, &mpool_stat_class, "st_hash_max_wait", "I" }, - { &mpool_stat_st_region_nowait_fid, &mpool_stat_class, "st_region_nowait", "I" }, - { &mpool_stat_st_region_wait_fid, &mpool_stat_class, "st_region_wait", "I" }, - { &mpool_stat_st_mvcc_frozen_fid, &mpool_stat_class, "st_mvcc_frozen", "I" }, - { &mpool_stat_st_mvcc_thawed_fid, &mpool_stat_class, "st_mvcc_thawed", "I" }, - { &mpool_stat_st_mvcc_freed_fid, &mpool_stat_class, "st_mvcc_freed", "I" }, - { &mpool_stat_st_alloc_fid, &mpool_stat_class, "st_alloc", "I" }, - { &mpool_stat_st_alloc_buckets_fid, &mpool_stat_class, "st_alloc_buckets", "I" }, - { &mpool_stat_st_alloc_max_buckets_fid, &mpool_stat_class, "st_alloc_max_buckets", "I" }, - { &mpool_stat_st_alloc_pages_fid, &mpool_stat_class, "st_alloc_pages", "I" }, - { &mpool_stat_st_alloc_max_pages_fid, &mpool_stat_class, "st_alloc_max_pages", "I" }, - { &mpool_stat_st_io_wait_fid, &mpool_stat_class, "st_io_wait", "I" }, - { &mpool_stat_st_regsize_fid, &mpool_stat_class, "st_regsize", "I" }, - { &mutex_stat_st_mutex_align_fid, &mutex_stat_class, "st_mutex_align", "I" }, - { &mutex_stat_st_mutex_tas_spins_fid, &mutex_stat_class, "st_mutex_tas_spins", "I" }, - { &mutex_stat_st_mutex_cnt_fid, &mutex_stat_class, "st_mutex_cnt", "I" }, - { &mutex_stat_st_mutex_free_fid, &mutex_stat_class, "st_mutex_free", "I" }, - { &mutex_stat_st_mutex_inuse_fid, &mutex_stat_class, "st_mutex_inuse", "I" }, - { &mutex_stat_st_mutex_inuse_max_fid, &mutex_stat_class, "st_mutex_inuse_max", "I" }, - { &mutex_stat_st_region_wait_fid, &mutex_stat_class, "st_region_wait", "I" }, - { &mutex_stat_st_region_nowait_fid, &mutex_stat_class, "st_region_nowait", "I" }, - { &mutex_stat_st_regsize_fid, &mutex_stat_class, "st_regsize", "I" }, - { &qam_stat_qs_magic_fid, &qam_stat_class, "qs_magic", "I" }, - { &qam_stat_qs_version_fid, &qam_stat_class, "qs_version", "I" }, - { &qam_stat_qs_metaflags_fid, &qam_stat_class, "qs_metaflags", "I" }, - { &qam_stat_qs_nkeys_fid, &qam_stat_class, "qs_nkeys", "I" }, - { &qam_stat_qs_ndata_fid, &qam_stat_class, "qs_ndata", "I" }, - { &qam_stat_qs_pagesize_fid, &qam_stat_class, "qs_pagesize", "I" }, - { &qam_stat_qs_extentsize_fid, &qam_stat_class, "qs_extentsize", "I" }, - { &qam_stat_qs_pages_fid, &qam_stat_class, "qs_pages", "I" }, - { &qam_stat_qs_re_len_fid, &qam_stat_class, "qs_re_len", "I" }, - { &qam_stat_qs_re_pad_fid, &qam_stat_class, "qs_re_pad", "I" }, - { &qam_stat_qs_pgfree_fid, &qam_stat_class, "qs_pgfree", "I" }, - { &qam_stat_qs_first_recno_fid, &qam_stat_class, "qs_first_recno", "I" }, - { &qam_stat_qs_cur_recno_fid, &qam_stat_class, "qs_cur_recno", "I" }, - { &rep_stat_st_log_queued_fid, &rep_stat_class, "st_log_queued", "I" }, - { &rep_stat_st_startup_complete_fid, &rep_stat_class, "st_startup_complete", "I" }, - { &rep_stat_st_status_fid, &rep_stat_class, "st_status", "I" }, - { &rep_stat_st_next_lsn_fid, &rep_stat_class, "st_next_lsn", "L" DB_PKG "LogSequenceNumber;" }, - { &rep_stat_st_waiting_lsn_fid, &rep_stat_class, "st_waiting_lsn", "L" DB_PKG "LogSequenceNumber;" }, - { &rep_stat_st_next_pg_fid, &rep_stat_class, "st_next_pg", "I" }, - { &rep_stat_st_waiting_pg_fid, &rep_stat_class, "st_waiting_pg", "I" }, - { &rep_stat_st_dupmasters_fid, &rep_stat_class, "st_dupmasters", "I" }, - { &rep_stat_st_env_id_fid, &rep_stat_class, "st_env_id", "I" }, - { &rep_stat_st_env_priority_fid, &rep_stat_class, "st_env_priority", "I" }, - { &rep_stat_st_bulk_fills_fid, &rep_stat_class, "st_bulk_fills", "I" }, - { &rep_stat_st_bulk_overflows_fid, &rep_stat_class, "st_bulk_overflows", "I" }, - { &rep_stat_st_bulk_records_fid, &rep_stat_class, "st_bulk_records", "I" }, - { &rep_stat_st_bulk_transfers_fid, &rep_stat_class, "st_bulk_transfers", "I" }, - { &rep_stat_st_client_rerequests_fid, &rep_stat_class, "st_client_rerequests", "I" }, - { &rep_stat_st_client_svc_req_fid, &rep_stat_class, "st_client_svc_req", "I" }, - { &rep_stat_st_client_svc_miss_fid, &rep_stat_class, "st_client_svc_miss", "I" }, - { &rep_stat_st_gen_fid, &rep_stat_class, "st_gen", "I" }, - { &rep_stat_st_egen_fid, &rep_stat_class, "st_egen", "I" }, - { &rep_stat_st_log_duplicated_fid, &rep_stat_class, "st_log_duplicated", "I" }, - { &rep_stat_st_log_queued_max_fid, &rep_stat_class, "st_log_queued_max", "I" }, - { &rep_stat_st_log_queued_total_fid, &rep_stat_class, "st_log_queued_total", "I" }, - { &rep_stat_st_log_records_fid, &rep_stat_class, "st_log_records", "I" }, - { &rep_stat_st_log_requested_fid, &rep_stat_class, "st_log_requested", "I" }, - { &rep_stat_st_master_fid, &rep_stat_class, "st_master", "I" }, - { &rep_stat_st_master_changes_fid, &rep_stat_class, "st_master_changes", "I" }, - { &rep_stat_st_msgs_badgen_fid, &rep_stat_class, "st_msgs_badgen", "I" }, - { &rep_stat_st_msgs_processed_fid, &rep_stat_class, "st_msgs_processed", "I" }, - { &rep_stat_st_msgs_recover_fid, &rep_stat_class, "st_msgs_recover", "I" }, - { &rep_stat_st_msgs_send_failures_fid, &rep_stat_class, "st_msgs_send_failures", "I" }, - { &rep_stat_st_msgs_sent_fid, &rep_stat_class, "st_msgs_sent", "I" }, - { &rep_stat_st_newsites_fid, &rep_stat_class, "st_newsites", "I" }, - { &rep_stat_st_nsites_fid, &rep_stat_class, "st_nsites", "I" }, - { &rep_stat_st_nthrottles_fid, &rep_stat_class, "st_nthrottles", "I" }, - { &rep_stat_st_outdated_fid, &rep_stat_class, "st_outdated", "I" }, - { &rep_stat_st_pg_duplicated_fid, &rep_stat_class, "st_pg_duplicated", "I" }, - { &rep_stat_st_pg_records_fid, &rep_stat_class, "st_pg_records", "I" }, - { &rep_stat_st_pg_requested_fid, &rep_stat_class, "st_pg_requested", "I" }, - { &rep_stat_st_txns_applied_fid, &rep_stat_class, "st_txns_applied", "I" }, - { &rep_stat_st_startsync_delayed_fid, &rep_stat_class, "st_startsync_delayed", "I" }, - { &rep_stat_st_elections_fid, &rep_stat_class, "st_elections", "I" }, - { &rep_stat_st_elections_won_fid, &rep_stat_class, "st_elections_won", "I" }, - { &rep_stat_st_election_cur_winner_fid, &rep_stat_class, "st_election_cur_winner", "I" }, - { &rep_stat_st_election_gen_fid, &rep_stat_class, "st_election_gen", "I" }, - { &rep_stat_st_election_lsn_fid, &rep_stat_class, "st_election_lsn", "L" DB_PKG "LogSequenceNumber;" }, - { &rep_stat_st_election_nsites_fid, &rep_stat_class, "st_election_nsites", "I" }, - { &rep_stat_st_election_nvotes_fid, &rep_stat_class, "st_election_nvotes", "I" }, - { &rep_stat_st_election_priority_fid, &rep_stat_class, "st_election_priority", "I" }, - { &rep_stat_st_election_status_fid, &rep_stat_class, "st_election_status", "I" }, - { &rep_stat_st_election_tiebreaker_fid, &rep_stat_class, "st_election_tiebreaker", "I" }, - { &rep_stat_st_election_votes_fid, &rep_stat_class, "st_election_votes", "I" }, - { &rep_stat_st_election_sec_fid, &rep_stat_class, "st_election_sec", "I" }, - { &rep_stat_st_election_usec_fid, &rep_stat_class, "st_election_usec", "I" }, - { &repmgr_stat_st_perm_failed_fid, &repmgr_stat_class, "st_perm_failed", "I" }, - { &repmgr_stat_st_msgs_queued_fid, &repmgr_stat_class, "st_msgs_queued", "I" }, - { &repmgr_stat_st_msgs_dropped_fid, &repmgr_stat_class, "st_msgs_dropped", "I" }, - { &repmgr_stat_st_connection_drop_fid, &repmgr_stat_class, "st_connection_drop", "I" }, - { &repmgr_stat_st_connect_fail_fid, &repmgr_stat_class, "st_connect_fail", "I" }, - { &seq_stat_st_wait_fid, &seq_stat_class, "st_wait", "I" }, - { &seq_stat_st_nowait_fid, &seq_stat_class, "st_nowait", "I" }, - { &seq_stat_st_current_fid, &seq_stat_class, "st_current", "J" }, - { &seq_stat_st_value_fid, &seq_stat_class, "st_value", "J" }, - { &seq_stat_st_last_value_fid, &seq_stat_class, "st_last_value", "J" }, - { &seq_stat_st_min_fid, &seq_stat_class, "st_min", "J" }, - { &seq_stat_st_max_fid, &seq_stat_class, "st_max", "J" }, - { &seq_stat_st_cache_size_fid, &seq_stat_class, "st_cache_size", "I" }, - { &seq_stat_st_flags_fid, &seq_stat_class, "st_flags", "I" }, - { &txn_stat_st_nrestores_fid, &txn_stat_class, "st_nrestores", "I" }, - { &txn_stat_st_last_ckp_fid, &txn_stat_class, "st_last_ckp", "L" DB_PKG "LogSequenceNumber;" }, - { &txn_stat_st_time_ckp_fid, &txn_stat_class, "st_time_ckp", "J" }, - { &txn_stat_st_last_txnid_fid, &txn_stat_class, "st_last_txnid", "I" }, - { &txn_stat_st_maxtxns_fid, &txn_stat_class, "st_maxtxns", "I" }, - { &txn_stat_st_naborts_fid, &txn_stat_class, "st_naborts", "I" }, - { &txn_stat_st_nbegins_fid, &txn_stat_class, "st_nbegins", "I" }, - { &txn_stat_st_ncommits_fid, &txn_stat_class, "st_ncommits", "I" }, - { &txn_stat_st_nactive_fid, &txn_stat_class, "st_nactive", "I" }, - { &txn_stat_st_nsnapshot_fid, &txn_stat_class, "st_nsnapshot", "I" }, - { &txn_stat_st_maxnactive_fid, &txn_stat_class, "st_maxnactive", "I" }, - { &txn_stat_st_maxnsnapshot_fid, &txn_stat_class, "st_maxnsnapshot", "I" }, - { &txn_stat_st_txnarray_fid, &txn_stat_class, "st_txnarray", "[L" DB_PKG "TransactionStats$Active;" }, - { &txn_stat_st_region_wait_fid, &txn_stat_class, "st_region_wait", "I" }, - { &txn_stat_st_region_nowait_fid, &txn_stat_class, "st_region_nowait", "I" }, - { &txn_stat_st_regsize_fid, &txn_stat_class, "st_regsize", "I" }, - { &txn_active_txnid_fid, &txn_active_class, "txnid", "I" }, - { &txn_active_parentid_fid, &txn_active_class, "parentid", "I" }, - { &txn_active_pid_fid, &txn_active_class, "pid", "I" }, - { &txn_active_lsn_fid, &txn_active_class, "lsn", "L" DB_PKG "LogSequenceNumber;" }, - { &txn_active_read_lsn_fid, &txn_active_class, "read_lsn", "L" DB_PKG "LogSequenceNumber;" }, - { &txn_active_mvcc_ref_fid, &txn_active_class, "mvcc_ref", "I" }, - { &txn_active_status_fid, &txn_active_class, "status", "I" }, - { &txn_active_xa_status_fid, &txn_active_class, "xa_status", "I" }, - { &txn_active_xid_fid, &txn_active_class, "xid", "[B" }, - { &txn_active_name_fid, &txn_active_class, "name", "Ljava/lang/String;" }, -/* END-STAT-FIELDS */ - - { &rephost_port_fid, &rephost_class, "port", "I" }, - { &rephost_host_fid, &rephost_class, "host", "Ljava/lang/String;" }, - { &rephost_eid_fid, &rephost_class, "eid", "I" }, - { &rephost_status_fid, &rephost_class, "status", "I" } -}; - -const struct { - jmethodID *mid; - jclass *cl; - const char *name; - const char *sig; -} all_methods[] = { - { &dbenv_construct, &dbenv_class, "<init>", "(JZ)V" }, - { &dbt_construct, &dbt_class, "<init>", "()V" }, - { &dblsn_construct, &dblsn_class, "<init>", "(II)V" }, - { &dbpreplist_construct, &dbpreplist_class, "<init>", - "(L" DB_PKG "internal/DbTxn;[B)V" }, - { &dbtxn_construct, &dbtxn_class, "<init>", "(JZ)V" }, - - { &bt_stat_construct, &bt_stat_class, "<init>", "()V" }, - { &get_err_msg_method, &dbenv_class, "get_err_msg", - "(Ljava/lang/String;)Ljava/lang/String;" }, - { &h_stat_construct, &h_stat_class, "<init>", "()V" }, - { &lock_stat_construct, &lock_stat_class, "<init>", "()V" }, - { &log_stat_construct, &log_stat_class, "<init>", "()V" }, - { &mpool_stat_construct, &mpool_stat_class, "<init>", "()V" }, - { &mpool_fstat_construct, &mpool_fstat_class, "<init>", "()V" }, - { &mutex_stat_construct, &mutex_stat_class, "<init>", "()V" }, - { &qam_stat_construct, &qam_stat_class, "<init>", "()V" }, - { &rep_stat_construct, &rep_stat_class, "<init>", "()V" }, - { &repmgr_stat_construct, &repmgr_stat_class, "<init>", "()V" }, - { &seq_stat_construct, &seq_stat_class, "<init>", "()V" }, - { &txn_stat_construct, &txn_stat_class, "<init>", "()V" }, - { &txn_active_construct, &txn_active_class, "<init>", "()V" }, - { &rephost_construct, &rephost_class, "<init>", "()V" }, - - { &dbex_construct, &dbex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &deadex_construct, &deadex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &lockex_construct, &lockex_class, "<init>", - "(Ljava/lang/String;IIL" DB_PKG "DatabaseEntry;L" - DB_PKG "internal/DbLock;IL" DB_PKG "internal/DbEnv;)V" }, - { &memex_construct, &memex_class, "<init>", - "(Ljava/lang/String;L" DB_PKG "DatabaseEntry;IL" - DB_PKG "internal/DbEnv;)V" }, - { &memex_update_method, &memex_class, "updateDatabaseEntry", - "(L" DB_PKG "DatabaseEntry;)V" }, - { &repdupmasterex_construct, &repdupmasterex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &rephandledeadex_construct, &rephandledeadex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &repholdelectionex_construct, &repholdelectionex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &repjoinfailex_construct, &repjoinfailex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &repleaseexpiredex_construct, &repleaseexpiredex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &repleasetimeoutex_construct, &repleasetimeoutex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &replockoutex_construct, &replockoutex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &repunavailex_construct, &repunavailex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &runrecex_construct, &runrecex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &versionex_construct, &versionex_class, "<init>", - "(Ljava/lang/String;IL" DB_PKG "internal/DbEnv;)V" }, - { &filenotfoundex_construct, &filenotfoundex_class, "<init>", - "(Ljava/lang/String;)V" }, - { &illegalargex_construct, &illegalargex_class, "<init>", - "(Ljava/lang/String;)V" }, - { &outofmemerr_construct, &outofmemerr_class, "<init>", - "(Ljava/lang/String;)V" }, - - { &lock_construct, &lock_class, "<init>", "(JZ)V" }, - - { &app_dispatch_method, &dbenv_class, "handle_app_dispatch", - "(L" DB_PKG "DatabaseEntry;L" DB_PKG "LogSequenceNumber;I)I" }, - { &panic_event_notify_method, &dbenv_class, "handle_panic_event_notify", - "()V" }, - { &rep_client_event_notify_method, &dbenv_class, - "handle_rep_client_event_notify", "()V" }, - { &rep_elected_event_notify_method, &dbenv_class, - "handle_rep_elected_event_notify" ,"()V" }, - { &rep_master_event_notify_method, &dbenv_class, - "handle_rep_master_event_notify", "()V" }, - { &rep_new_master_event_notify_method, &dbenv_class, - "handle_rep_new_master_event_notify", "(I)V" }, - { &rep_perm_failed_event_notify_method, &dbenv_class, - "handle_rep_perm_failed_event_notify", "()V" }, - { &rep_startup_done_event_notify_method, &dbenv_class, - "handle_rep_startup_done_event_notify", "()V" }, - { &write_failed_event_notify_method, &dbenv_class, - "handle_write_failed_event_notify", "(I)V" }, - { &env_feedback_method, &dbenv_class, "handle_env_feedback", "(II)V" }, - { &errcall_method, &dbenv_class, "handle_error", - "(Ljava/lang/String;)V" }, - { &msgcall_method, &dbenv_class, "handle_message", - "(Ljava/lang/String;)V" }, - { &paniccall_method, &dbenv_class, "handle_panic", - "(L" DB_PKG "DatabaseException;)V" }, - { &rep_transport_method, &dbenv_class, "handle_rep_transport", - "(L" DB_PKG "DatabaseEntry;L" DB_PKG "DatabaseEntry;L" - DB_PKG "LogSequenceNumber;II)I" }, - - { &append_recno_method, &db_class, "handle_append_recno", - "(L" DB_PKG "DatabaseEntry;I)V" }, - { &bt_compare_method, &db_class, "handle_bt_compare", - "([B[B)I" }, - { &bt_prefix_method, &db_class, "handle_bt_prefix", - "(L" DB_PKG "DatabaseEntry;L" DB_PKG "DatabaseEntry;)I" }, - { &db_feedback_method, &db_class, "handle_db_feedback", "(II)V" }, - { &dup_compare_method, &db_class, "handle_dup_compare", - "([B[B)I" }, - { &h_compare_method, &db_class, "handle_h_compare", - "([B[B)I" }, - { &h_hash_method, &db_class, "handle_h_hash", "([BI)I" }, - { &seckey_create_method, &db_class, "handle_seckey_create", - "(L" DB_PKG "DatabaseEntry;L" DB_PKG "DatabaseEntry;)[L" - DB_PKG "DatabaseEntry;" }, - - { &outputstream_write_method, &outputstream_class, "write", "([BII)V" } -}; - -#define NELEM(x) (sizeof (x) / sizeof (x[0])) - -JNIEXPORT void JNICALL Java_com_sleepycat_db_internal_db_1javaJNI_initialize( - JNIEnv *jenv, jclass clazz) -{ - jclass cl; - unsigned int i, j; - - COMPQUIET(clazz, NULL); - - if ((*jenv)->GetJavaVM(jenv, &javavm) != 0) { - __db_errx(NULL, "Cannot get Java VM"); - return; - } - - for (i = 0; i < NELEM(all_classes); i++) { - cl = (*jenv)->FindClass(jenv, all_classes[i].name); - if (cl == NULL) { - fprintf(stderr, - "Failed to load class %s - check CLASSPATH\n", - all_classes[i].name); - return; - } - - /* - * Wrap classes in GlobalRefs so we keep the reference between - * calls. - */ - *all_classes[i].cl = (jclass)(*jenv)->NewGlobalRef(jenv, cl); - - if (*all_classes[i].cl == NULL) { - fprintf(stderr, - "Failed to create a global reference for %s\n", - all_classes[i].name); - return; - } - } - - /* Get field IDs */ - for (i = 0; i < NELEM(all_fields); i++) { - *all_fields[i].fid = (*jenv)->GetFieldID(jenv, - *all_fields[i].cl, all_fields[i].name, all_fields[i].sig); - - if (*all_fields[i].fid == NULL) { - fprintf(stderr, - "Failed to look up field %s with sig %s\n", - all_fields[i].name, all_fields[i].sig); - return; - } - } - - /* Get method IDs */ - for (i = 0; i < NELEM(all_methods); i++) { - *all_methods[i].mid = (*jenv)->GetMethodID(jenv, - *all_methods[i].cl, all_methods[i].name, - all_methods[i].sig); - - if (*all_methods[i].mid == NULL) { - for (j = 0; j < NELEM(all_classes); j++) - if (all_methods[i].cl == all_classes[j].cl) - break; - fprintf(stderr, - "Failed to look up method %s.%s with sig %s\n", - all_classes[j].name, all_methods[i].name, - all_methods[i].sig); - return; - } - } -} - -static JNIEnv *__dbj_get_jnienv(void) -{ - /* - * Note: Different versions of the JNI disagree on the signature for - * AttachCurrentThread. The most recent documentation seems to say - * that (JNIEnv **) is correct, but newer JNIs seem to use (void **), - * oddly enough. - */ -#ifdef JNI_VERSION_1_2 - void *jenv = 0; -#else - JNIEnv *jenv = 0; -#endif - - /* - * This should always succeed, as we are called via some Java activity. - * I think therefore I am (a thread). - */ - if ((*javavm)->AttachCurrentThread(javavm, &jenv, 0) != 0) - return (0); - - return ((JNIEnv *)jenv); -} - -static jobject __dbj_wrap_DB_LSN(JNIEnv *jenv, DB_LSN *lsn) -{ - return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct, - lsn->file, lsn->offset); -} -%} |