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

📄 java_dbenv.c

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 C
📖 第 1 页 / 共 3 页
字号:
	strarray = NULL;	if (!verify_non_null(jnienv, dbenv))		return (0);	err = dbenv->log_archive(dbenv, &ret, flags);	if (!verify_return(jnienv, err, 0))		return (0);	if (ret != NULL) {		len = 0;		while (ret[len] != NULL)			len++;		stringClass = (*jnienv)->FindClass(jnienv, "java/lang/String");		if ((strarray = (*jnienv)->NewObjectArray(jnienv,		    len, stringClass, 0)) == NULL)			goto out;		for (i=0; i<len; i++) {			jstring str = (*jnienv)->NewStringUTF(jnienv, ret[i]);			(*jnienv)->SetObjectArrayElement(jnienv, strarray,			     i, str);		}	}out:	return (strarray);}JNIEXPORT jint JNICALL Java_com_sleepycat_db_DbEnv_log_1compare  (JNIEnv *jnienv, jclass jthis_class,   /*DbLsn*/ jobject lsn0, /*DbLsn*/ jobject lsn1){	DB_LSN *dblsn0;	DB_LSN *dblsn1;	COMPQUIET(jthis_class, NULL);	dblsn0 = get_DB_LSN(jnienv, lsn0);	dblsn1 = get_DB_LSN(jnienv, lsn1);	return (log_compare(dblsn0, dblsn1));}JNIEXPORT jobject JNICALL Java_com_sleepycat_db_DbEnv_log_1cursor  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint flags){	int err;	DB_LOGC *dblogc;	DB_ENV *dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		return (NULL);	err = dbenv->log_cursor(dbenv, &dblogc, flags);	verify_return(jnienv, err, 0);	return (get_DbLogc(jnienv, dblogc));}JNIEXPORT jstring JNICALL Java_com_sleepycat_db_DbEnv_log_1file  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, /*DbLsn*/ jobject lsn){	int err;	DB_ENV *dbenv = get_DB_ENV(jnienv, jthis);	DB_LSN *dblsn = get_DB_LSN(jnienv, lsn);	char filename[FILENAME_MAX+1] = "";	if (!verify_non_null(jnienv, dbenv))		return (NULL);	err = dbenv->log_file(dbenv, dblsn, filename, FILENAME_MAX);	verify_return(jnienv, err, 0);	filename[FILENAME_MAX] = '\0'; /* just to be sure */	return (get_java_string(jnienv, filename));}JAVADB_METHOD(DbEnv_log_1flush,    (JAVADB_ARGS, /*DbLsn*/ jobject lsn), DB_ENV,    log_flush, (c_this, get_DB_LSN(jnienv, lsn)))JNIEXPORT void JNICALL Java_com_sleepycat_db_DbEnv_log_1put  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, /*DbLsn*/ jobject lsn,   /*DbDbt*/ jobject data, jint flags){	int err;	DB_ENV *dbenv;	DB_LSN *dblsn;	LOCKED_DBT ldata;	dbenv = get_DB_ENV(jnienv, jthis);	dblsn = get_DB_LSN(jnienv, lsn);	if (!verify_non_null(jnienv, dbenv))		return;	/* log_put's DB_LSN argument may not be NULL. */	if (!verify_non_null(jnienv, dblsn))		return;	if (locked_dbt_get(&ldata, jnienv, dbenv, data, inOp) != 0)		goto out;	err = dbenv->log_put(dbenv, dblsn, &ldata.javainfo->dbt, flags);	verify_return(jnienv, err, 0); out:	locked_dbt_put(&ldata, jnienv, dbenv);}JNIEXPORT jobject JNICALL Java_com_sleepycat_db_DbEnv_log_1stat  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint flags){	int err;	DB_ENV *dbenv;	DB_LOG_STAT *statp;	jobject retval;	jclass dbclass;	retval = NULL;	statp = NULL;	dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		return (NULL);	err = dbenv->log_stat(dbenv, &statp, (u_int32_t)flags);	if (verify_return(jnienv, err, 0)) {		if ((dbclass = get_class(jnienv, name_DB_LOG_STAT)) == NULL ||		    (retval =		       create_default_object(jnienv, name_DB_LOG_STAT)) == NULL)			goto err;	/* An exception has been posted. */		__jv_fill_log_stat(jnienv, dbclass, retval, statp);err:		__os_ufree(dbenv, statp);	}	return (retval);}JNIEXPORT jobject JNICALL Java_com_sleepycat_db_DbEnv_memp_1stat  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint flags){	int err;	jclass dbclass;	DB_ENV *dbenv;	DB_MPOOL_STAT *statp;	jobject retval;	retval = NULL;	statp = NULL;	dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		return (NULL);	err = dbenv->memp_stat(dbenv, &statp, 0, (u_int32_t)flags);	if (verify_return(jnienv, err, 0)) {		if ((dbclass = get_class(jnienv, name_DB_MPOOL_STAT)) == NULL ||		    (retval =		     create_default_object(jnienv, name_DB_MPOOL_STAT)) == NULL)			goto err;	/* An exception has been posted. */		__jv_fill_mpool_stat(jnienv, dbclass, retval, statp);err:		__os_ufree(dbenv, statp);	}	return (retval);}JNIEXPORT jobjectArray JNICALL Java_com_sleepycat_db_DbEnv_memp_1fstat  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint flags){	int err, i, len;	jclass fstat_class;	DB_ENV *dbenv;	DB_MPOOL_FSTAT **fstatp;	jobjectArray retval;	jfieldID filename_id;	jstring jfilename;	fstatp = NULL;	retval = NULL;	dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		return (NULL);	err = dbenv->memp_stat(dbenv, 0, &fstatp, (u_int32_t)flags);	if (verify_return(jnienv, err, 0)) {		len = 0;		while (fstatp[len] != NULL)			len++;		if ((fstat_class =			get_class(jnienv, name_DB_MPOOL_FSTAT)) == NULL ||		    (retval = (*jnienv)->NewObjectArray(jnienv, len,			fstat_class, 0)) == NULL)			goto err;		for (i=0; i<len; i++) {			jobject obj;			if ((obj = create_default_object(jnienv,			    name_DB_MPOOL_FSTAT)) == NULL)				goto err;			(*jnienv)->SetObjectArrayElement(jnienv, retval,			    i, obj);			/* Set the string field. */			filename_id = (*jnienv)->GetFieldID(jnienv,			    fstat_class, "file_name", string_signature);			jfilename = get_java_string(jnienv,			    fstatp[i]->file_name);			(*jnienv)->SetObjectField(jnienv, obj,			    filename_id, jfilename);			set_int_field(jnienv, fstat_class, obj,			    "st_pagesize", fstatp[i]->st_pagesize);			set_int_field(jnienv, fstat_class, obj,			    "st_cache_hit", fstatp[i]->st_cache_hit);			set_int_field(jnienv, fstat_class, obj,			    "st_cache_miss", fstatp[i]->st_cache_miss);			set_int_field(jnienv, fstat_class, obj,			    "st_map", fstatp[i]->st_map);			set_int_field(jnienv, fstat_class, obj,			    "st_page_create", fstatp[i]->st_page_create);			set_int_field(jnienv, fstat_class, obj,			    "st_page_in", fstatp[i]->st_page_in);			set_int_field(jnienv, fstat_class, obj,			    "st_page_out", fstatp[i]->st_page_out);			__os_ufree(dbenv, fstatp[i]);		}err:		__os_ufree(dbenv, fstatp);	}	return (retval);}JNIEXPORT jint JNICALL Java_com_sleepycat_db_DbEnv_memp_1trickle  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint pct){	int err;	DB_ENV *dbenv = get_DB_ENV(jnienv, jthis);	int result = 0;	if (verify_non_null(jnienv, dbenv)) {		err = dbenv->memp_trickle(dbenv, pct, &result);		verify_return(jnienv, err, 0);	}	return (result);}JNIEXPORT jobject JNICALL Java_com_sleepycat_db_DbEnv_txn_1begin  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, /*DbTxn*/ jobject pid, jint flags){	int err;	DB_TXN *dbpid, *result;	DB_ENV *dbenv;	dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		return (0);	dbpid = get_DB_TXN(jnienv, pid);	result = 0;	err = dbenv->txn_begin(dbenv, dbpid, &result, flags);	if (!verify_return(jnienv, err, 0))		return (0);	return (get_DbTxn(jnienv, result));}JAVADB_METHOD(DbEnv_txn_1checkpoint,    (JAVADB_ARGS, jint kbyte, jint min, jint flags), DB_ENV,    txn_checkpoint, (c_this, kbyte, min, flags))JNIEXPORT void JNICALL Java_com_sleepycat_db_DbEnv_app_1dispatch_1changed  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, /*DbFeedback*/ jobject jappdispatch){	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))		return;	dbjie_set_app_dispatch_object(dbenvinfo, jnienv, dbenv, jappdispatch);}JNIEXPORT jobjectArray JNICALL Java_com_sleepycat_db_DbEnv_txn_1recover  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint count, jint flags){	int err;	DB_ENV *dbenv;	DB_PREPLIST *preps;	long retcount;	int i;	char signature[128];	size_t bytesize;	jobject retval;	jobject obj;	jobject txnobj;	jbyteArray bytearr;	jclass preplist_class;	jfieldID txn_fieldid;	jfieldID gid_fieldid;	retval = NULL;	dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		return (NULL);	/*	 * We need to allocate some local storage for the	 * returned preplist, and that requires us to do	 * our own argument validation.	 */	if (count <= 0) {		verify_return(jnienv, EINVAL, 0);		goto out;	}	bytesize = sizeof(DB_PREPLIST) * count;	if ((err = __os_malloc(dbenv, bytesize, &preps)) != 0) {		verify_return(jnienv, err, 0);		goto out;	}	err = dbenv->txn_recover(dbenv, preps, count, &retcount, flags);	if (verify_return(jnienv, err, 0)) {		if ((preplist_class =		    get_class(jnienv, name_DB_PREPLIST)) == NULL ||		    (retval = (*jnienv)->NewObjectArray(jnienv, retcount,		    preplist_class, 0)) == NULL)			goto err;		(void)snprintf(signature, sizeof(signature),		    "L%s%s;", DB_PACKAGE_NAME, name_DB_TXN);		txn_fieldid = (*jnienv)->GetFieldID(jnienv, preplist_class,						    "txn", signature);		gid_fieldid = (*jnienv)->GetFieldID(jnienv, preplist_class,						    "gid", "[B");		for (i=0; i<retcount; i++) {			/*			 * First, make a blank DbPreplist object			 * and set the array entry.			 */			if ((obj = create_default_object(jnienv,			    name_DB_PREPLIST)) == NULL)				goto err;			(*jnienv)->SetObjectArrayElement(jnienv,			    retval, i, obj);			/* Set the txn field. */			txnobj = get_DbTxn(jnienv, preps[i].txn);			(*jnienv)->SetObjectField(jnienv,			    obj, txn_fieldid, txnobj);			/* Build the gid array and set the field. */			if ((bytearr = (*jnienv)->NewByteArray(jnienv,			    sizeof(preps[i].gid))) == NULL)				goto err;			(*jnienv)->SetByteArrayRegion(jnienv, bytearr, 0,			    sizeof(preps[i].gid), (jbyte *)&preps[i].gid[0]);			(*jnienv)->SetObjectField(jnienv, obj,			    gid_fieldid, bytearr);		}	}err:	__os_free(dbenv, preps);out:	return (retval);}JNIEXPORT jobject JNICALL Java_com_sleepycat_db_DbEnv_txn_1stat  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jint flags){	int err;	DB_ENV *dbenv;	DB_TXN_STAT *statp;	jobject retval, obj;	jclass dbclass, active_class;	char active_signature[512];	jfieldID arrid;	jobjectArray actives;	unsigned int i;	retval = NULL;	statp = NULL;	dbenv = get_DB_ENV(jnienv, jthis);	if (!verify_non_null(jnienv, dbenv))		return (NULL);	err = dbenv->txn_stat(dbenv, &statp, (u_int32_t)flags);	if (verify_return(jnienv, err, 0)) {		if ((dbclass = get_class(jnienv, name_DB_TXN_STAT)) == NULL ||		    (retval =		       create_default_object(jnienv, name_DB_TXN_STAT)) == NULL)			goto err;		/* Set the individual fields */		__jv_fill_txn_stat(jnienv, dbclass, retval, statp);		if ((active_class =		    get_class(jnienv, name_DB_TXN_STAT_ACTIVE)) == NULL ||		    (actives = (*jnienv)->NewObjectArray(jnienv,		    statp->st_nactive, active_class, 0)) == NULL)			goto err;		/*		 * Set the st_txnarray field.  This is a little more involved		 * than other fields, since the type is an array, so none		 * of our utility functions help.		 */		(void)snprintf(active_signature, sizeof(active_signature),		    "[L%s%s;", DB_PACKAGE_NAME, name_DB_TXN_STAT_ACTIVE);		arrid = (*jnienv)->GetFieldID(jnienv, dbclass, "st_txnarray",					      active_signature);		(*jnienv)->SetObjectField(jnienv, retval, arrid, actives);		/* Now fill the in the elements of st_txnarray. */		for (i=0; i<statp->st_nactive; i++) {			obj = create_default_object(jnienv,						name_DB_TXN_STAT_ACTIVE);			(*jnienv)->SetObjectArrayElement(jnienv,						actives, i, obj);			set_int_field(jnienv, active_class, obj,				      "txnid", statp->st_txnarray[i].txnid);			set_int_field(jnienv, active_class, obj, "parentid",				      statp->st_txnarray[i].parentid);			set_lsn_field(jnienv, active_class, obj,				      "lsn", statp->st_txnarray[i].lsn);		}err:		__os_ufree(dbenv, statp);	}	return (retval);}/* See discussion on errpfx, errcall in DB_ENV_JAVAINFO */JNIEXPORT void JNICALL Java_com_sleepycat_db_DbEnv__1set_1errcall  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jobject errcall){	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)) {		dbjie_set_errcall(dbenvinfo, jnienv, errcall);	}}JNIEXPORT void JNICALL Java_com_sleepycat_db_DbEnv__1set_1errpfx  (JNIEnv *jnienv, /*DbEnv*/ jobject jthis, jstring str){	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)) {		dbjie_set_errpfx(dbenvinfo, jnienv, str);	}}JNIEXPORT void JNICALL Java_com_sleepycat_db_DbEnv__1finalize    (JNIEnv *jnienv, /*DbEnv*/ jobject jthis,     jobject /*DbErrcall*/ errcall, jstring errpfx){	DB_ENV *dbenv;	DB_ENV_JAVAINFO *envinfo;	dbenv = get_DB_ENV(jnienv, jthis);	envinfo = get_DB_ENV_JAVAINFO(jnienv, jthis);	DB_ASSERT(envinfo != NULL);	/* Note:  We detect and report unclosed DbEnvs. */	if (dbenv != NULL && envinfo != NULL && !dbjie_is_dbopen(envinfo)) {		/* If this error occurs, this object was never closed. */		report_errcall(jnienv, errcall, errpfx,			       "DbEnv.finalize: open DbEnv object destroyed");	}	/* Shouldn't see this object again, but just in case */	set_private_dbobj(jnienv, name_DB_ENV, jthis, 0);	set_private_info(jnienv, name_DB_ENV, jthis, 0);	dbjie_destroy(envinfo, jnienv);}

⌨️ 快捷键说明

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