| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 |
- // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
- // This source code is licensed under both the GPLv2 (found in the
- // COPYING file in the root directory) and Apache 2.0 License
- // (found in the LICENSE.Apache file in the root directory).
- //
- // This file implements the "bridge" between Java and C++ and enables
- // calling C++ ROCKSDB_NAMESPACE::EnvOptions methods
- // from Java side.
- #include <jni.h>
- #include "include/org_rocksdb_EnvOptions.h"
- #include "rocksdb/env.h"
- #define ENV_OPTIONS_SET_BOOL(_jhandle, _opt) \
- reinterpret_cast<ROCKSDB_NAMESPACE::EnvOptions *>(_jhandle)->_opt = \
- static_cast<bool>(_opt)
- #define ENV_OPTIONS_SET_SIZE_T(_jhandle, _opt) \
- reinterpret_cast<ROCKSDB_NAMESPACE::EnvOptions *>(_jhandle)->_opt = \
- static_cast<size_t>(_opt)
- #define ENV_OPTIONS_SET_UINT64_T(_jhandle, _opt) \
- reinterpret_cast<ROCKSDB_NAMESPACE::EnvOptions *>(_jhandle)->_opt = \
- static_cast<uint64_t>(_opt)
- #define ENV_OPTIONS_GET(_jhandle, _opt) \
- reinterpret_cast<ROCKSDB_NAMESPACE::EnvOptions *>(_jhandle)->_opt
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: newEnvOptions
- * Signature: ()J
- */
- jlong Java_org_rocksdb_EnvOptions_newEnvOptions__(
- JNIEnv*, jclass) {
- auto *env_opt = new ROCKSDB_NAMESPACE::EnvOptions();
- return reinterpret_cast<jlong>(env_opt);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: newEnvOptions
- * Signature: (J)J
- */
- jlong Java_org_rocksdb_EnvOptions_newEnvOptions__J(
- JNIEnv*, jclass, jlong jdboptions_handle) {
- auto *db_options =
- reinterpret_cast<ROCKSDB_NAMESPACE::DBOptions *>(jdboptions_handle);
- auto *env_opt = new ROCKSDB_NAMESPACE::EnvOptions(*db_options);
- return reinterpret_cast<jlong>(env_opt);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: disposeInternal
- * Signature: (J)V
- */
- void Java_org_rocksdb_EnvOptions_disposeInternal(
- JNIEnv*, jobject, jlong jhandle) {
- auto *eo = reinterpret_cast<ROCKSDB_NAMESPACE::EnvOptions *>(jhandle);
- assert(eo != nullptr);
- delete eo;
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setUseMmapReads
- * Signature: (JZ)V
- */
- void Java_org_rocksdb_EnvOptions_setUseMmapReads(
- JNIEnv*, jobject, jlong jhandle, jboolean use_mmap_reads) {
- ENV_OPTIONS_SET_BOOL(jhandle, use_mmap_reads);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: useMmapReads
- * Signature: (J)Z
- */
- jboolean Java_org_rocksdb_EnvOptions_useMmapReads(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, use_mmap_reads);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setUseMmapWrites
- * Signature: (JZ)V
- */
- void Java_org_rocksdb_EnvOptions_setUseMmapWrites(
- JNIEnv*, jobject, jlong jhandle, jboolean use_mmap_writes) {
- ENV_OPTIONS_SET_BOOL(jhandle, use_mmap_writes);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: useMmapWrites
- * Signature: (J)Z
- */
- jboolean Java_org_rocksdb_EnvOptions_useMmapWrites(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, use_mmap_writes);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setUseDirectReads
- * Signature: (JZ)V
- */
- void Java_org_rocksdb_EnvOptions_setUseDirectReads(
- JNIEnv*, jobject, jlong jhandle, jboolean use_direct_reads) {
- ENV_OPTIONS_SET_BOOL(jhandle, use_direct_reads);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: useDirectReads
- * Signature: (J)Z
- */
- jboolean Java_org_rocksdb_EnvOptions_useDirectReads(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, use_direct_reads);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setUseDirectWrites
- * Signature: (JZ)V
- */
- void Java_org_rocksdb_EnvOptions_setUseDirectWrites(
- JNIEnv*, jobject, jlong jhandle, jboolean use_direct_writes) {
- ENV_OPTIONS_SET_BOOL(jhandle, use_direct_writes);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: useDirectWrites
- * Signature: (J)Z
- */
- jboolean Java_org_rocksdb_EnvOptions_useDirectWrites(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, use_direct_writes);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setAllowFallocate
- * Signature: (JZ)V
- */
- void Java_org_rocksdb_EnvOptions_setAllowFallocate(
- JNIEnv*, jobject, jlong jhandle, jboolean allow_fallocate) {
- ENV_OPTIONS_SET_BOOL(jhandle, allow_fallocate);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: allowFallocate
- * Signature: (J)Z
- */
- jboolean Java_org_rocksdb_EnvOptions_allowFallocate(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, allow_fallocate);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setSetFdCloexec
- * Signature: (JZ)V
- */
- void Java_org_rocksdb_EnvOptions_setSetFdCloexec(
- JNIEnv*, jobject, jlong jhandle, jboolean set_fd_cloexec) {
- ENV_OPTIONS_SET_BOOL(jhandle, set_fd_cloexec);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setFdCloexec
- * Signature: (J)Z
- */
- jboolean Java_org_rocksdb_EnvOptions_setFdCloexec(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, set_fd_cloexec);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setBytesPerSync
- * Signature: (JJ)V
- */
- void Java_org_rocksdb_EnvOptions_setBytesPerSync(
- JNIEnv*, jobject, jlong jhandle, jlong bytes_per_sync) {
- ENV_OPTIONS_SET_UINT64_T(jhandle, bytes_per_sync);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: bytesPerSync
- * Signature: (J)J
- */
- jlong Java_org_rocksdb_EnvOptions_bytesPerSync(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, bytes_per_sync);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setFallocateWithKeepSize
- * Signature: (JZ)V
- */
- void Java_org_rocksdb_EnvOptions_setFallocateWithKeepSize(
- JNIEnv*, jobject, jlong jhandle, jboolean fallocate_with_keep_size) {
- ENV_OPTIONS_SET_BOOL(jhandle, fallocate_with_keep_size);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: fallocateWithKeepSize
- * Signature: (J)Z
- */
- jboolean Java_org_rocksdb_EnvOptions_fallocateWithKeepSize(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, fallocate_with_keep_size);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setCompactionReadaheadSize
- * Signature: (JJ)V
- */
- void Java_org_rocksdb_EnvOptions_setCompactionReadaheadSize(
- JNIEnv*, jobject, jlong jhandle, jlong compaction_readahead_size) {
- ENV_OPTIONS_SET_SIZE_T(jhandle, compaction_readahead_size);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: compactionReadaheadSize
- * Signature: (J)J
- */
- jlong Java_org_rocksdb_EnvOptions_compactionReadaheadSize(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, compaction_readahead_size);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setRandomAccessMaxBufferSize
- * Signature: (JJ)V
- */
- void Java_org_rocksdb_EnvOptions_setRandomAccessMaxBufferSize(
- JNIEnv*, jobject, jlong jhandle, jlong random_access_max_buffer_size) {
- ENV_OPTIONS_SET_SIZE_T(jhandle, random_access_max_buffer_size);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: randomAccessMaxBufferSize
- * Signature: (J)J
- */
- jlong Java_org_rocksdb_EnvOptions_randomAccessMaxBufferSize(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, random_access_max_buffer_size);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setWritableFileMaxBufferSize
- * Signature: (JJ)V
- */
- void Java_org_rocksdb_EnvOptions_setWritableFileMaxBufferSize(
- JNIEnv*, jobject, jlong jhandle, jlong writable_file_max_buffer_size) {
- ENV_OPTIONS_SET_SIZE_T(jhandle, writable_file_max_buffer_size);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: writableFileMaxBufferSize
- * Signature: (J)J
- */
- jlong Java_org_rocksdb_EnvOptions_writableFileMaxBufferSize(
- JNIEnv*, jobject, jlong jhandle) {
- return ENV_OPTIONS_GET(jhandle, writable_file_max_buffer_size);
- }
- /*
- * Class: org_rocksdb_EnvOptions
- * Method: setRateLimiter
- * Signature: (JJ)V
- */
- void Java_org_rocksdb_EnvOptions_setRateLimiter(
- JNIEnv*, jobject, jlong jhandle, jlong rl_handle) {
- auto *sptr_rate_limiter =
- reinterpret_cast<std::shared_ptr<ROCKSDB_NAMESPACE::RateLimiter> *>(
- rl_handle);
- auto *env_opt = reinterpret_cast<ROCKSDB_NAMESPACE::EnvOptions *>(jhandle);
- env_opt->rate_limiter = sptr_rate_limiter->get();
- }
|