]>
git.proxmox.com Git - ceph.git/blob - 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).
6 #include "rocksdb/write_buffer_manager.h"
10 #include "include/org_rocksdb_WriteBufferManager.h"
11 #include "rocksdb/cache.h"
12 #include "rocksjni/cplusplus_to_java_convert.h"
15 * Class: org_rocksdb_WriteBufferManager
16 * Method: newWriteBufferManager
19 jlong
Java_org_rocksdb_WriteBufferManager_newWriteBufferManager(
20 JNIEnv
* /*env*/, jclass
/*jclazz*/, jlong jbuffer_size
, jlong jcache_handle
,
21 jboolean allow_stall
) {
23 reinterpret_cast<std::shared_ptr
<ROCKSDB_NAMESPACE::Cache
>*>(
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
);
33 * Class: org_rocksdb_WriteBufferManager
34 * Method: disposeInternal
37 void Java_org_rocksdb_WriteBufferManager_disposeInternal(JNIEnv
* /*env*/,
40 auto* write_buffer_manager
=
41 reinterpret_cast<std::shared_ptr
<ROCKSDB_NAMESPACE::WriteBufferManager
>*>(
43 assert(write_buffer_manager
!= nullptr);
44 delete write_buffer_manager
;