java_DbTxn.c
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*-
  2.  * See the file LICENSE for redistribution information.
  3.  *
  4.  * Copyright (c) 1997, 1998, 1999, 2000
  5.  * Sleepycat Software.  All rights reserved.
  6.  */
  7. #include "db_config.h"
  8. #ifndef lint
  9. static const char revid[] = "$Id: java_DbTxn.c,v 11.3 2000/09/18 18:32:25 dda Exp $";
  10. #endif /* not lint */
  11. #include <jni.h>
  12. #include <errno.h>
  13. #include <stdlib.h>
  14. #include <string.h>
  15. #include "db.h"
  16. #include "java_util.h"
  17. #include "com_sleepycat_db_DbTxn.h"
  18. JNIEXPORT void JNICALL Java_com_sleepycat_db_DbTxn_abort
  19.   (JNIEnv *jnienv, jobject jthis)
  20. {
  21. int err;
  22. DB_TXN *dbtxn = get_DB_TXN(jnienv, jthis);
  23. if (!verify_non_null(jnienv, dbtxn))
  24. return;
  25. err = txn_abort(dbtxn);
  26. verify_return(jnienv, err, 0);
  27. }
  28. JNIEXPORT void JNICALL Java_com_sleepycat_db_DbTxn_commit
  29.   (JNIEnv *jnienv, jobject jthis, jint flags)
  30. {
  31. int err;
  32. DB_TXN *dbtxn = get_DB_TXN(jnienv, jthis);
  33. if (!verify_non_null(jnienv, dbtxn))
  34. return;
  35. err = txn_commit(dbtxn, flags);
  36. verify_return(jnienv, err, 0);
  37. }
  38. JNIEXPORT jint JNICALL Java_com_sleepycat_db_DbTxn_id
  39.   (JNIEnv *jnienv, jobject jthis)
  40. {
  41. int retval = 0;
  42. DB_TXN *dbtxn = get_DB_TXN(jnienv, jthis);
  43. if (!verify_non_null(jnienv, dbtxn))
  44. return (-1);
  45. /* No error to check for from txn_id */
  46. retval = txn_id(dbtxn);
  47. return (retval);
  48. }
  49. JNIEXPORT void JNICALL Java_com_sleepycat_db_DbTxn_prepare
  50.   (JNIEnv *jnienv, jobject jthis)
  51. {
  52. int err;
  53. DB_TXN *dbtxn = get_DB_TXN(jnienv, jthis);
  54. if (!verify_non_null(jnienv, dbtxn))
  55. return;
  56. err = txn_prepare(dbtxn);
  57. verify_return(jnienv, err, 0);
  58. }
  59. JNIEXPORT void JNICALL Java_com_sleepycat_db_DbTxn_finalize
  60.   (JNIEnv *jnienv, jobject jthis)
  61. {
  62. DB_TXN *dbtxn = get_DB_TXN(jnienv, jthis);
  63. if (dbtxn) {
  64. /* Free any data related to DB_TXN here
  65.  * Note: we don't make a policy of doing
  66.  * a commit or abort here.  The txnmgr
  67.  * should be closed, and DB will clean up.
  68.  */
  69. }
  70. }