Revision e6e259b8abbe2b275237c4f6ebd749f71f5768dc authored by Yueh-Hsuan Chiang on 16 June 2014, 23:26:46 UTC, committed by Yueh-Hsuan Chiang on 16 June 2014, 23:26:46 UTC
Summary: Include max_write_buffer_number >= 2 to SanitizeOptions.

Test Plan: make all check

Reviewers: haobo, sdong, igor, ljin

Reviewed By: ljin

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D19077
1 parent cadc1ad
Raw File
env.cc
// Copyright (c) 2014, Facebook, Inc.  All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
//
// This file implements the "bridge" between Java and C++ and enables
// calling c++ rocksdb::Env methods from Java side.

#include "include/org_rocksdb_RocksEnv.h"
#include "rocksdb/env.h"

/*
 * Class:     org_rocksdb_RocksEnv
 * Method:    getDefaultEnvInternal
 * Signature: ()J
 */
jlong Java_org_rocksdb_RocksEnv_getDefaultEnvInternal(
    JNIEnv* env, jclass jclass) {
  return reinterpret_cast<jlong>(rocksdb::Env::Default());
}

/*
 * Class:     org_rocksdb_RocksEnv
 * Method:    setBackgroundThreads
 * Signature: (JII)V
 */
void Java_org_rocksdb_RocksEnv_setBackgroundThreads(
    JNIEnv* env, jobject jobj, jlong jhandle,
    jint num, jint priority) {
  auto* rocks_env = reinterpret_cast<rocksdb::Env*>(jhandle);
  switch (priority) {
    case org_rocksdb_RocksEnv_FLUSH_POOL:
      rocks_env->SetBackgroundThreads(num, rocksdb::Env::Priority::LOW);
      break;
    case org_rocksdb_RocksEnv_COMPACTION_POOL:
      rocks_env->SetBackgroundThreads(num, rocksdb::Env::Priority::HIGH);
      break;
  }
}

/*
 * Class:     org_rocksdb_RocksEnv
 * Method:    getThreadPoolQueueLen
 * Signature: (JI)I
 */
jint Java_org_rocksdb_RocksEnv_getThreadPoolQueueLen(
    JNIEnv* env, jobject jobj, jlong jhandle, jint pool_id) {
  auto* rocks_env = reinterpret_cast<rocksdb::Env*>(jhandle);
  switch (pool_id) {
    case org_rocksdb_RocksEnv_FLUSH_POOL:
      return rocks_env->GetThreadPoolQueueLen(rocksdb::Env::Priority::LOW);
    case org_rocksdb_RocksEnv_COMPACTION_POOL:
      return rocks_env->GetThreadPoolQueueLen(rocksdb::Env::Priority::HIGH);
  }
  return 0;
}

/*
 * Class:     org_rocksdb_RocksEnv
 * Method:    disposeInternal
 * Signature: (J)V
 */
void Java_org_rocksdb_RocksEnv_disposeInternal(
    JNIEnv* env, jobject jobj, jlong jhandle) {
  delete reinterpret_cast<rocksdb::Env*>(jhandle);
}
back to top