]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/rocksjni/write_buffer_manager.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / rocksdb / java / rocksjni / write_buffer_manager.cc
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 #include "rocksdb/write_buffer_manager.h"
7
8 #include <jni.h>
9
10 #include "include/org_rocksdb_WriteBufferManager.h"
11 #include "rocksdb/cache.h"
12 #include "rocksjni/cplusplus_to_java_convert.h"
13
14 /*
15 * Class: org_rocksdb_WriteBufferManager
16 * Method: newWriteBufferManager
17 * Signature: (JJ)J
18 */
19 jlong Java_org_rocksdb_WriteBufferManager_newWriteBufferManager(
20 JNIEnv* /*env*/, jclass /*jclazz*/, jlong jbuffer_size, jlong jcache_handle,
21 jboolean allow_stall) {
22 auto* cache_ptr =
23 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::Cache>*>(
24 jcache_handle);
25 auto* write_buffer_manager =
26 new std::shared_ptr<ROCKSDB_NAMESPACE::WriteBufferManager>(
27 std::make_shared<ROCKSDB_NAMESPACE::WriteBufferManager>(
28 jbuffer_size, *cache_ptr, allow_stall));
29 return GET_CPLUSPLUS_POINTER(write_buffer_manager);
30 }
31
32 /*
33 * Class: org_rocksdb_WriteBufferManager
34 * Method: disposeInternal
35 * Signature: (J)V
36 */
37 void Java_org_rocksdb_WriteBufferManager_disposeInternal(JNIEnv* /*env*/,
38 jobject /*jobj*/,
39 jlong jhandle) {
40 auto* write_buffer_manager =
41 reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::WriteBufferManager>*>(
42 jhandle);
43 assert(write_buffer_manager != nullptr);
44 delete write_buffer_manager;
45 }