1 // Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. 2 package org.rocksdb; 3 4 /** 5 * The config for vector memtable representation. 6 */ 7 public class VectorMemTableConfig extends MemTableConfig { 8 public static final int DEFAULT_RESERVED_SIZE = 0; 9 10 /** 11 * VectorMemTableConfig constructor 12 */ VectorMemTableConfig()13 public VectorMemTableConfig() { 14 reservedSize_ = DEFAULT_RESERVED_SIZE; 15 } 16 17 /** 18 * Set the initial size of the vector that will be used 19 * by the memtable created based on this config. 20 * 21 * @param size the initial size of the vector. 22 * @return the reference to the current config. 23 */ setReservedSize(final int size)24 public VectorMemTableConfig setReservedSize(final int size) { 25 reservedSize_ = size; 26 return this; 27 } 28 29 /** 30 * Returns the initial size of the vector used by the memtable 31 * created based on this config. 32 * 33 * @return the initial size of the vector. 34 */ reservedSize()35 public int reservedSize() { 36 return reservedSize_; 37 } 38 newMemTableFactoryHandle()39 @Override protected long newMemTableFactoryHandle() { 40 return newMemTableFactoryHandle(reservedSize_); 41 } 42 newMemTableFactoryHandle(long reservedSize)43 private native long newMemTableFactoryHandle(long reservedSize) 44 throws IllegalArgumentException; 45 private int reservedSize_; 46 } 47