⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java_dbenv.c

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 C
📖 第 1 页 / 共 3 页
字号:
		dbtp = NULL;	err = dbenv->rep_start(dbenv, dbtp, flags);	verify_return(jnienv, err, 0);out:	if (cookie != NULL)		locked_dbt_put(&ldbt, jnienv, dbenv);}JNIEXPORT jobject JNICALL Java_com_sleepycat_db_DbEnv_rep_1stat  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint flags){	int err;	DB_ENV *dbenv = get_DB_ENV(jnienv, jthis);	DB_REP_STAT *statp = NULL;	jobject retval = NULL;	jclass dbclass;	if (!verify_non_null(jnienv, dbenv))		return (NULL);	err = dbenv->rep_stat(dbenv, &statp, (u_int32_t)flags);	if (verify_return(jnienv, err, 0)) {		if ((dbclass = get_class(jnienv, name_DB_REP_STAT)) == NULL ||		    (retval =		      create_default_object(jnienv, name_DB_REP_STAT)) == NULL)			goto err;	/* An exception has been posted. */		__jv_fill_rep_stat(jnienv, dbclass, retval, statp);err:		__os_ufree(dbenv, statp);	}	return (retval);}JNIEXPORT void JNICALLJava_com_sleepycat_db_DbEnv_set_1rep_1limit  (JNIEnv *jnienv, /* DbEnv */ jobject jthis, jint gbytes, jint bytes){	DB_ENV *dbenv;	int err;	dbenv = get_DB_ENV(jnienv, jthis);	if (verify_non_null(jnienv, dbenv)) {		err = dbenv->set_rep_limit(dbenv,		    (u_int32_t)gbytes, (u_int32_t)bytes);		verify_return(jnienv, err, 0);	}}JNIEXPORT void JNICALL  Java_com_sleepycat_db_DbEnv_rep_1transport_1changed  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint envid,   /* DbRepTransport */ jobject jreptransport){	DB_ENV *dbenv;	DB_ENV_JAVAINFO *dbenvinfo;	dbenv = get_DB_ENV(jnienv, jthis);	dbenvinfo = get_DB_ENV_JAVAINFO(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv) ||	    !verify_non_null(jnienv, dbenvinfo) ||	    !verify_non_null(jnienv, jreptransport))		return;	dbjie_set_rep_transport_object(dbenvinfo,	    jnienv, dbenv, envid, jreptransport);}JNIEXPORT void JNICALL  Java_com_sleepycat_db_DbEnv_set_1rpc_1server  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, /*DbClient*/ jobject jclient,   jstring jhost, jlong tsec, jlong ssec, jint flags){	int err;	DB_ENV *dbenv = get_DB_ENV(jnienv, jthis);	const char *host = (*jnienv)->GetStringUTFChars(jnienv, jhost, NULL);	if (jclient != NULL) {		report_exception(jnienv, "DbEnv.set_rpc_server client arg "				 "must be null; reserved for future use",				 EINVAL, 0);		return;	}	if (verify_non_null(jnienv, dbenv)) {		err = dbenv->set_rpc_server(dbenv, NULL, host,					(long)tsec, (long)ssec, flags);		/* Throw an exception if the call failed. */		verify_return(jnienv, err, 0);	}}JAVADB_METHOD(DbEnv_set_1shm_1key, (JAVADB_ARGS, jlong shm_key), DB_ENV,    set_shm_key, (c_this, (long)shm_key))JNIEXPORT void JNICALL  Java_com_sleepycat_db_DbEnv__1set_1tx_1timestamp  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jlong seconds){	int err;	DB_ENV *dbenv = get_DB_ENV(jnienv, jthis);	time_t time = seconds;	if (verify_non_null(jnienv, dbenv)) {		err = dbenv->set_tx_timestamp(dbenv, &time);		/* Throw an exception if the call failed. */		verify_return(jnienv, err, 0);	}}JAVADB_METHOD(DbEnv_set_1verbose,    (JAVADB_ARGS, jint which, jboolean onoff), DB_ENV,    set_verbose, (c_this, which, onoff ? 1 : 0))/*static*/JNIEXPORT jint JNICALL Java_com_sleepycat_db_DbEnv_get_1version_1major  (JNIEnv * jnienv, jclass this_class){	COMPQUIET(jnienv, NULL);	COMPQUIET(this_class, NULL);	return (DB_VERSION_MAJOR);}/*static*/JNIEXPORT jint JNICALL Java_com_sleepycat_db_DbEnv_get_1version_1minor  (JNIEnv * jnienv, jclass this_class){	COMPQUIET(jnienv, NULL);	COMPQUIET(this_class, NULL);	return (DB_VERSION_MINOR);}/*static*/JNIEXPORT jint JNICALL Java_com_sleepycat_db_DbEnv_get_1version_1patch  (JNIEnv * jnienv, jclass this_class){	COMPQUIET(jnienv, NULL);	COMPQUIET(this_class, NULL);	return (DB_VERSION_PATCH);}/*static*/JNIEXPORT jstring JNICALL Java_com_sleepycat_db_DbEnv_get_1version_1string  (JNIEnv *jnienv, jclass this_class){	COMPQUIET(this_class, NULL);	return ((*jnienv)->NewStringUTF(jnienv, DB_VERSION_STRING));}JNIEXPORT jint JNICALL Java_com_sleepycat_db_DbEnv_lock_1id  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis){	int err;	u_int32_t id;	DB_ENV *dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		return (-1);	err = dbenv->lock_id(dbenv, &id);	verify_return(jnienv, err, 0);	return (id);}JAVADB_METHOD(DbEnv_lock_1id_1free, (JAVADB_ARGS, jint id), DB_ENV,    lock_id_free, (c_this, id))JNIEXPORT jobject JNICALL Java_com_sleepycat_db_DbEnv_lock_1stat  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint flags){	int err;	DB_ENV *dbenv = get_DB_ENV(jnienv, jthis);	DB_LOCK_STAT *statp = NULL;	jobject retval = NULL;	jclass dbclass;	if (!verify_non_null(jnienv, dbenv))		return (NULL);	err = dbenv->lock_stat(dbenv, &statp, (u_int32_t)flags);	if (verify_return(jnienv, err, 0)) {		if ((dbclass = get_class(jnienv, name_DB_LOCK_STAT)) == NULL ||		    (retval =		      create_default_object(jnienv, name_DB_LOCK_STAT)) == NULL)			goto err;	/* An exception has been posted. */		__jv_fill_lock_stat(jnienv, dbclass, retval, statp);err:		__os_ufree(dbenv, statp);	}	return (retval);}JNIEXPORT jint JNICALL Java_com_sleepycat_db_DbEnv_lock_1detect  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint atype, jint flags){	int err;	DB_ENV *dbenv = get_DB_ENV(jnienv, jthis);	int aborted;	if (!verify_non_null(jnienv, dbenv))		return (0);	err = dbenv->lock_detect(dbenv, atype, flags, &aborted);	verify_return(jnienv, err, 0);	return (aborted);}JNIEXPORT /*DbLock*/ jobject JNICALL Java_com_sleepycat_db_DbEnv_lock_1get  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, /*u_int32_t*/ jint locker,   jint flags, /*const Dbt*/ jobject obj, /*db_lockmode_t*/ jint lock_mode){	int err;	DB_ENV *dbenv;	DB_LOCK *dblock;	LOCKED_DBT lobj;	/*DbLock*/ jobject retval;	dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		return (NULL);	if ((err = __os_malloc(dbenv, sizeof(DB_LOCK), &dblock)) != 0)		if (!verify_return(jnienv, err, 0))			return (NULL);	memset(dblock, 0, sizeof(DB_LOCK));	err = 0;	retval = NULL;	if (locked_dbt_get(&lobj, jnienv, dbenv, obj, inOp) != 0)		goto out;	err = dbenv->lock_get(dbenv, locker, flags, &lobj.javainfo->dbt,		       (db_lockmode_t)lock_mode, dblock);	if (err == DB_LOCK_NOTGRANTED)		report_notgranted_exception(jnienv,					    "DbEnv.lock_get not granted",					    DB_LOCK_GET, lock_mode, obj,					    NULL, -1);	else if (verify_return(jnienv, err, 0)) {		retval = create_default_object(jnienv, name_DB_LOCK);		set_private_dbobj(jnienv, name_DB_LOCK, retval, dblock);	} out:	locked_dbt_put(&lobj, jnienv, dbenv);	return (retval);}JNIEXPORT void JNICALL Java_com_sleepycat_db_DbEnv_lock_1vec  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, /*u_int32_t*/ jint locker,   jint flags, /*const Dbt*/ jobjectArray list, jint offset, jint count){	DB_ENV *dbenv;	DB_LOCKREQ *lockreq;	DB_LOCKREQ *prereq;	/* preprocessed requests */	DB_LOCKREQ *failedreq;	DB_LOCK *lockp;	LOCKED_DBT *locked_dbts;	int err;	int alloc_err;	int i;	size_t bytesize;	size_t ldbtsize;	jobject jlockreq;	db_lockop_t op;	jobject jobj;	jobject jlock;	int completed;	dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		goto out0;	if ((*jnienv)->GetArrayLength(jnienv, list) < offset + count) {		report_exception(jnienv,				 "DbEnv.lock_vec array not large enough",				 0, 0);		goto out0;	}	bytesize = sizeof(DB_LOCKREQ) * count;	if ((err = __os_malloc(dbenv, bytesize, &lockreq)) != 0) {		verify_return(jnienv, err, 0);		goto out0;	}	memset(lockreq, 0, bytesize);	ldbtsize = sizeof(LOCKED_DBT) * count;	if ((err = __os_malloc(dbenv, ldbtsize, &locked_dbts)) != 0) {		verify_return(jnienv, err, 0);		goto out1;	}	memset(lockreq, 0, ldbtsize);	prereq = &lockreq[0];	/* fill in the lockreq array */	for (i = 0, prereq = &lockreq[0]; i < count; i++, prereq++) {		jlockreq = (*jnienv)->GetObjectArrayElement(jnienv, list,		    offset + i);		if (jlockreq == NULL) {			report_exception(jnienv,					 "DbEnv.lock_vec list entry is null",					 0, 0);			goto out2;		}		op = (*jnienv)->GetIntField(jnienv, jlockreq,		    fid_DbLockRequest_op);		prereq->op = op;		switch (op) {		case DB_LOCK_GET_TIMEOUT:			/* Needed: mode, timeout, obj.  Returned: lock. */			prereq->op = (*jnienv)->GetIntField(jnienv, jlockreq,			    fid_DbLockRequest_timeout);			/* FALLTHROUGH */		case DB_LOCK_GET:			/* Needed: mode, obj.  Returned: lock. */			prereq->mode = (*jnienv)->GetIntField(jnienv, jlockreq,			    fid_DbLockRequest_mode);			jobj = (*jnienv)->GetObjectField(jnienv, jlockreq,			    fid_DbLockRequest_obj);			if ((err = locked_dbt_get(&locked_dbts[i], jnienv,			    dbenv, jobj, inOp)) != 0)				goto out2;			prereq->obj = &locked_dbts[i].javainfo->dbt;			break;		case DB_LOCK_PUT:			/* Needed: lock.  Ignored: mode, obj. */			jlock = (*jnienv)->GetObjectField(jnienv, jlockreq,				fid_DbLockRequest_lock);			if (!verify_non_null(jnienv, jlock))				goto out2;			lockp = get_DB_LOCK(jnienv, jlock);			if (!verify_non_null(jnienv, lockp))				goto out2;			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 = (*jnienv)->GetObjectField(jnienv, jlockreq,				fid_DbLockRequest_obj);			if ((err = locked_dbt_get(&locked_dbts[i], jnienv,					   dbenv, jobj, inOp)) != 0)				goto out2;			prereq->obj = &locked_dbts[i].javainfo->dbt;			break;		default:			report_exception(jnienv,					 "DbEnv.lock_vec bad op value",					 0, 0);			goto out2;		}	}	err = dbenv->lock_vec(dbenv, locker, 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 = (*jnienv)->GetObjectArrayElement(jnienv,			    list, i + offset);			jlock = (*jnienv)->GetObjectField(jnienv, jlockreq,				fid_DbLockRequest_lock);			lockp = get_DB_LOCK(jnienv, jlock);			__os_free(NULL, lockp);			set_private_dbobj(jnienv, name_DB_LOCK, jlock, 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.			 */			alloc_err = __os_malloc(dbenv, sizeof(DB_LOCK), &lockp);			if (!verify_return(jnienv, alloc_err, 0))				goto out2;			*lockp = lockreq[i].lock;			jlockreq = (*jnienv)->GetObjectArrayElement(jnienv,			    list, i + offset);			jlock = create_default_object(jnienv, name_DB_LOCK);			set_private_dbobj(jnienv, name_DB_LOCK, jlock, lockp);			(*jnienv)->SetObjectField(jnienv, jlockreq,						  fid_DbLockRequest_lock,						  jlock);		}	}	/* If one of the locks was not granted, build the exception now. */	if (err == DB_LOCK_NOTGRANTED && i < count) {		jlockreq = (*jnienv)->GetObjectArrayElement(jnienv,							    list, i + offset);		jobj = (*jnienv)->GetObjectField(jnienv, jlockreq,						 fid_DbLockRequest_obj);		jlock = (*jnienv)->GetObjectField(jnienv, jlockreq,						  fid_DbLockRequest_lock);		report_notgranted_exception(jnienv,					    "DbEnv.lock_vec incomplete",					    lockreq[i].op,					    lockreq[i].mode,					    jobj,					    jlock,					    i);	}	else		verify_return(jnienv, err, 0); out2:	/* Free the dbts that we have locked */	for (i = 0 ; i < (prereq - lockreq); i++) {		if ((op = lockreq[i].op) == DB_LOCK_GET ||		    op == DB_LOCK_PUT_OBJ)			locked_dbt_put(&locked_dbts[i], jnienv, dbenv);	}	__os_free(dbenv, locked_dbts); out1:	__os_free(dbenv, lockreq); out0:	return;}JNIEXPORT void JNICALL Java_com_sleepycat_db_DbEnv_lock_1put  (JNIEnv *jnienv, jobject jthis, /*DbLock*/ jobject jlock){	int err;	DB_ENV *dbenv;	DB_LOCK *dblock;	dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		return;	dblock = get_DB_LOCK(jnienv, jlock);	if (!verify_non_null(jnienv, dblock))		return;	err = dbenv->lock_put(dbenv, dblock);	if (verify_return(jnienv, err, 0)) {		/*		 * After a successful put, the DbLock can no longer		 * be used, so we release the storage related to it		 * (allocated in DbEnv.lock_get()).		 */		__os_free(NULL, dblock);		set_private_dbobj(jnienv, name_DB_LOCK, jlock, 0);	}}JNIEXPORT jobjectArray JNICALL Java_com_sleepycat_db_DbEnv_log_1archive  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint flags){	int err, len, i;	char** ret;	jclass stringClass;	jobjectArray strarray;	DB_ENV *dbenv;	dbenv = get_DB_ENV(jnienv, jthis);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -