All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.rocksdb.RocksObject Maven / Gradle / Ivy

// 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).

package org.rocksdb;

/**
 * RocksObject is an implementation of {@link AbstractNativeReference} which
 * has an immutable and therefore thread-safe reference to the underlying
 * native C++ RocksDB object.
 * 

* RocksObject is the base-class of almost all RocksDB classes that have a * pointer to some underlying native C++ {@code rocksdb} object.

*

* The use of {@code RocksObject} should always be preferred over * {@link RocksMutableObject}.

*/ public abstract class RocksObject extends AbstractImmutableNativeReference { /** * An immutable reference to the value of the C++ pointer pointing to some * underlying native RocksDB C++ object. */ protected final long nativeHandle_; protected RocksObject(final long nativeHandle) { super(true); this.nativeHandle_ = nativeHandle; } /** * Deletes underlying C++ object pointer. */ @Override protected void disposeInternal() { disposeInternal(nativeHandle_); } protected abstract void disposeInternal(final long handle); public long getNativeHandle() { return nativeHandle_; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy