mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Summary: Add RocksObject, the base class of all java objects which has a c++ pointer. While the finalizer of a RocksObject will release its c++ resource, it is suggested to call its RocksObject.dispose() to manually release its c++ resource. Existing RocksDB java classes are now extending RocksObject. Test Plan: make rocksdbjava make jtest make jdb_bench Reviewers: haobo, dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18411
45 lines
1.3 KiB
Java
45 lines
1.3 KiB
Java
// 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.
|
|
|
|
package org.rocksdb;
|
|
|
|
/**
|
|
* BackupableDBOptions to control the behavior of a backupable database.
|
|
* It will be used during the creation of a BackupableDB.
|
|
*
|
|
* Note that dispose() must be called before an Options instance
|
|
* become out-of-scope to release the allocated memory in c++.
|
|
*/
|
|
public class BackupableDBOptions extends RocksObject {
|
|
public BackupableDBOptions(String path) {
|
|
super();
|
|
newBackupableDBOptions(path);
|
|
}
|
|
|
|
/**
|
|
* Returns the path to the BackupableDB directory.
|
|
*
|
|
* @return the path to the BackupableDB directory.
|
|
*/
|
|
public String backupDir() {
|
|
assert(isInitialized());
|
|
return backupDir(nativeHandle_);
|
|
}
|
|
|
|
/**
|
|
* Release the memory allocated for the current instance
|
|
* in the c++ side.
|
|
*/
|
|
@Override public synchronized void dispose() {
|
|
if (isInitialized()) {
|
|
dispose(nativeHandle_);
|
|
}
|
|
}
|
|
|
|
private native void newBackupableDBOptions(String path);
|
|
private native String backupDir(long handle);
|
|
private native void dispose(long handle);
|
|
}
|