write_buffer_manager.cc 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. #include <jni.h>
  6. #include "include/org_rocksdb_WriteBufferManager.h"
  7. #include "rocksdb/cache.h"
  8. #include "rocksdb/write_buffer_manager.h"
  9. /*
  10. * Class: org_rocksdb_WriteBufferManager
  11. * Method: newWriteBufferManager
  12. * Signature: (JJ)J
  13. */
  14. jlong Java_org_rocksdb_WriteBufferManager_newWriteBufferManager(
  15. JNIEnv* /*env*/, jclass /*jclazz*/, jlong jbuffer_size, jlong jcache_handle) {
  16. auto* cache_ptr =
  17. reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::Cache>*>(
  18. jcache_handle);
  19. auto* write_buffer_manager =
  20. new std::shared_ptr<ROCKSDB_NAMESPACE::WriteBufferManager>(
  21. std::make_shared<ROCKSDB_NAMESPACE::WriteBufferManager>(jbuffer_size,
  22. *cache_ptr));
  23. return reinterpret_cast<jlong>(write_buffer_manager);
  24. }
  25. /*
  26. * Class: org_rocksdb_WriteBufferManager
  27. * Method: disposeInternal
  28. * Signature: (J)V
  29. */
  30. void Java_org_rocksdb_WriteBufferManager_disposeInternal(
  31. JNIEnv* /*env*/, jobject /*jobj*/, jlong jhandle) {
  32. auto* write_buffer_manager =
  33. reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::WriteBufferManager>*>(
  34. jhandle);
  35. assert(write_buffer_manager != nullptr);
  36. delete write_buffer_manager;
  37. }