зеркало из https://github.com/mozilla/gecko-dev.git
120 строки
3.1 KiB
C++
120 строки
3.1 KiB
C++
/*-
|
|
* See the file LICENSE for redistribution information.
|
|
*
|
|
* Copyright (c) 1997, 1998
|
|
* Sleepycat Software. All rights reserved.
|
|
*/
|
|
#include "config.h"
|
|
|
|
#ifndef lint
|
|
static const char sccsid[] = "@(#)java_DbTxnMgr.cpp 10.2 (Sleepycat) 4/10/98";
|
|
#endif /* not lint */
|
|
|
|
#include <jni.h>
|
|
#include <errno.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#include "db.h"
|
|
#include "java_util.h"
|
|
#include "com_sleepycat_db_DbTxnMgr.h"
|
|
|
|
JNIEXPORT jobject JNICALL Java_com_sleepycat_db_DbTxnMgr_begin
|
|
(JNIEnv *jnienv, jobject jthis, /*DbTxn*/ jobject pid)
|
|
{
|
|
int err;
|
|
DB_TXNMGR *dbtxnmgr = get_DB_TXNMGR(jnienv, jthis);
|
|
if (!verify_non_null(jnienv, dbtxnmgr))
|
|
return 0;
|
|
DB_TXN *dbpid = get_DB_TXN(jnienv, pid);
|
|
DB_TXN *result = 0;
|
|
|
|
err = txn_begin(dbtxnmgr, dbpid, &result);
|
|
if (!verify_return(jnienv, err))
|
|
return 0;
|
|
return get_DbTxn(jnienv, result);
|
|
}
|
|
|
|
JNIEXPORT void JNICALL Java_com_sleepycat_db_DbTxnMgr_checkpoint
|
|
(JNIEnv *jnienv, jobject jthis, jint kbyte, jint min)
|
|
{
|
|
int err;
|
|
DB_TXNMGR *dbtxnmgr = get_DB_TXNMGR(jnienv, jthis);
|
|
|
|
if (!verify_non_null(jnienv, dbtxnmgr))
|
|
return;
|
|
err = txn_checkpoint(dbtxnmgr, kbyte, min);
|
|
verify_return(jnienv, err);
|
|
}
|
|
|
|
JNIEXPORT void JNICALL Java_com_sleepycat_db_DbTxnMgr_close
|
|
(JNIEnv *jnienv, jobject jthis)
|
|
{
|
|
int err;
|
|
DB_TXNMGR *dbtxnmgr = get_DB_TXNMGR(jnienv, jthis);
|
|
|
|
if (!verify_non_null(jnienv, dbtxnmgr))
|
|
return;
|
|
err = txn_close(dbtxnmgr);
|
|
if (verify_return(jnienv, err))
|
|
{
|
|
set_private_info(jnienv, name_DB_TXNMGR, jthis, 0);
|
|
}
|
|
}
|
|
|
|
JNIEXPORT jobject JNICALL Java_com_sleepycat_db_DbTxnMgr_stat
|
|
(JNIEnv *jnienv, jobject jthis)
|
|
{
|
|
int err;
|
|
DB_TXNMGR *dbtxnmgr = get_DB_TXNMGR(jnienv, jthis);
|
|
DB_TXN_STAT *statp = 0;
|
|
|
|
err = txn_stat(dbtxnmgr, &statp, 0);
|
|
if (!verify_return(jnienv, err))
|
|
return 0;
|
|
return get_DbTxnStat(jnienv, statp);
|
|
}
|
|
|
|
JNIEXPORT jobject JNICALL Java_com_sleepycat_db_DbTxnMgr_open
|
|
(JNIEnv *jnienv, jclass jthis_class, jstring dir,
|
|
jint flags, jint mode, jobject dbenv)
|
|
{
|
|
int err;
|
|
jobject retval = NULL;
|
|
DB_TXNMGR *dbtxnmgr;
|
|
DB_ENV *db_dbenv = get_DB_ENV(jnienv, dbenv);
|
|
LockedString dbdir(jnienv, dir);
|
|
|
|
if (verify_non_null(jnienv, db_dbenv)) {
|
|
err = txn_open(dbdir.string, flags, mode, db_dbenv, &dbtxnmgr);
|
|
if (verify_return(jnienv, err)) {
|
|
retval = create_default_object(jnienv, name_DB_TXNMGR);
|
|
set_private_info(jnienv, name_DB_TXNMGR, retval, dbtxnmgr);
|
|
}
|
|
}
|
|
return retval;
|
|
}
|
|
|
|
JNIEXPORT void JNICALL Java_com_sleepycat_db_DbTxnMgr_unlink
|
|
(JNIEnv *jnienv, jclass jthis_class, jstring dir, jint force,
|
|
/*DbEnv*/ jobject dbenv)
|
|
{
|
|
int err;
|
|
DB_ENV *db_dbenv = get_DB_ENV(jnienv, dbenv);
|
|
LockedString dbdir(jnienv, dir);
|
|
|
|
if (verify_non_null(jnienv, db_dbenv)) {
|
|
err = txn_unlink(dbdir.string, force, db_dbenv);
|
|
verify_return(jnienv, err);
|
|
}
|
|
}
|
|
|
|
JNIEXPORT void JNICALL Java_com_sleepycat_db_DbTxnMgr_finalize
|
|
(JNIEnv *jnienv, jobject jthis)
|
|
{
|
|
DB_TXNMGR *dbtxnmgr = get_DB_TXNMGR(jnienv, jthis);
|
|
if (dbtxnmgr) {
|
|
// Free any data related to DB_TXNMGR here
|
|
}
|
|
}
|