java_Dbt.c
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*-
  2.  * See the file LICENSE for redistribution information.
  3.  *
  4.  * Copyright (c) 1997-2002
  5.  * Sleepycat Software.  All rights reserved.
  6.  */
  7. #include "db_config.h"
  8. #ifndef lint
  9. static const char revid[] = "$Id: java_Dbt.c,v 11.18 2002/06/20 11:11:55 mjc Exp $";
  10. #endif /* not lint */
  11. #include <jni.h>
  12. #include <errno.h>
  13. #include <stdlib.h>
  14. #include <string.h>
  15. #include "db_int.h"
  16. #include "java_util.h"
  17. #include "com_sleepycat_db_Dbt.h"
  18. JNIEXPORT void JNICALL Java_com_sleepycat_db_Dbt_init
  19.   (JNIEnv *jnienv, jobject jthis)
  20. {
  21. DBT_JAVAINFO *dbtji;
  22. dbtji = dbjit_construct();
  23. set_private_dbobj(jnienv, name_DBT, jthis, dbtji);
  24. }
  25. JNIEXPORT jbyteArray JNICALL Java_com_sleepycat_db_Dbt_create_1data
  26.   (JNIEnv *jnienv, jobject jthis)
  27. {
  28. DBT_JAVAINFO *db_this;
  29. jbyteArray arr = NULL;
  30. int len;
  31. db_this = get_DBT_JAVAINFO(jnienv, jthis);
  32. if (verify_non_null(jnienv, db_this)) {
  33. len = db_this->dbt.size;
  34. if ((arr = (*jnienv)->NewByteArray(jnienv, len)) == NULL)
  35. goto out;
  36. (*jnienv)->SetByteArrayRegion(jnienv, arr, 0, len,
  37.       db_this->dbt.data);
  38. }
  39. out: return (arr);
  40. }
  41. JNIEXPORT void JNICALL Java_com_sleepycat_db_Dbt_finalize
  42.   (JNIEnv *jnienv, jobject jthis)
  43. {
  44. DBT_JAVAINFO *dbtji;
  45. dbtji = get_DBT_JAVAINFO(jnienv, jthis);
  46. if (dbtji) {
  47. /* Free any data related to DBT here */
  48. dbjit_destroy(dbtji);
  49. }
  50. }