transaction_log.cc 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
  2. // This source code is licensed under both the GPLv2 (found in the
  3. // COPYING file in the root directory) and Apache 2.0 License
  4. // (found in the LICENSE.Apache file in the root directory).
  5. //
  6. // This file implements the "bridge" between Java and C++ and enables
  7. // calling c++ ROCKSDB_NAMESPACE::Iterator methods from Java side.
  8. #include <jni.h>
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include "include/org_rocksdb_TransactionLogIterator.h"
  12. #include "rocksdb/transaction_log.h"
  13. #include "rocksjni/portal.h"
  14. /*
  15. * Class: org_rocksdb_TransactionLogIterator
  16. * Method: disposeInternal
  17. * Signature: (J)V
  18. */
  19. void Java_org_rocksdb_TransactionLogIterator_disposeInternal(JNIEnv* /*env*/,
  20. jobject /*jobj*/,
  21. jlong handle) {
  22. delete reinterpret_cast<ROCKSDB_NAMESPACE::TransactionLogIterator*>(handle);
  23. }
  24. /*
  25. * Class: org_rocksdb_TransactionLogIterator
  26. * Method: isValid
  27. * Signature: (J)Z
  28. */
  29. jboolean Java_org_rocksdb_TransactionLogIterator_isValid(JNIEnv* /*env*/,
  30. jobject /*jobj*/,
  31. jlong handle) {
  32. return reinterpret_cast<ROCKSDB_NAMESPACE::TransactionLogIterator*>(handle)
  33. ->Valid();
  34. }
  35. /*
  36. * Class: org_rocksdb_TransactionLogIterator
  37. * Method: next
  38. * Signature: (J)V
  39. */
  40. void Java_org_rocksdb_TransactionLogIterator_next(JNIEnv* /*env*/,
  41. jobject /*jobj*/,
  42. jlong handle) {
  43. reinterpret_cast<ROCKSDB_NAMESPACE::TransactionLogIterator*>(handle)->Next();
  44. }
  45. /*
  46. * Class: org_rocksdb_TransactionLogIterator
  47. * Method: status
  48. * Signature: (J)V
  49. */
  50. void Java_org_rocksdb_TransactionLogIterator_status(JNIEnv* env,
  51. jobject /*jobj*/,
  52. jlong handle) {
  53. ROCKSDB_NAMESPACE::Status s =
  54. reinterpret_cast<ROCKSDB_NAMESPACE::TransactionLogIterator*>(handle)
  55. ->status();
  56. if (!s.ok()) {
  57. ROCKSDB_NAMESPACE::RocksDBExceptionJni::ThrowNew(env, s);
  58. }
  59. }
  60. /*
  61. * Class: org_rocksdb_TransactionLogIterator
  62. * Method: getBatch
  63. * Signature: (J)Lorg/rocksdb/TransactionLogIterator$BatchResult
  64. */
  65. jobject Java_org_rocksdb_TransactionLogIterator_getBatch(JNIEnv* env,
  66. jobject /*jobj*/,
  67. jlong handle) {
  68. ROCKSDB_NAMESPACE::BatchResult batch_result =
  69. reinterpret_cast<ROCKSDB_NAMESPACE::TransactionLogIterator*>(handle)
  70. ->GetBatch();
  71. return ROCKSDB_NAMESPACE::BatchResultJni::construct(env, batch_result);
  72. }