void addAllWithPrefix(List<SBTreeEntry<V>> entries, String bucketPrefix) { final int bucketPrefixSize; if (encryption == null) { final byte[] serializedPrefix = keySerializer.serializeNativeAsWhole(bucketPrefix); setBinaryValue(BUCKET_PREFIX_OFFSET, serializedPrefix); bucketPrefixSize = serializedPrefix.length; } else { final byte[] serializedPrefix = keySerializer.serializeNativeAsWhole(bucketPrefix); final byte[] encryptedPrefix = encryption.encrypt(serializedPrefix); setIntValue(BUCKET_PREFIX_OFFSET, encryptedPrefix.length); setBinaryValue(BUCKET_PREFIX_OFFSET + OIntegerSerializer.INT_SIZE, encryptedPrefix); bucketPrefixSize = encryptedPrefix.length + OIntegerSerializer.INT_SIZE; } calculateOffsets(bucketPrefixSize); setIntValue(freePointerOffset, MAX_PAGE_SIZE_BYTES); setIntValue(sizeOffset, 0); setByteValue(isLeafOffset, (byte) (isLeaf ? 1 : 0)); setLongValue(treeSizeOffset, 0); this.bucketPrefix = bucketPrefix; for (int i = 0; i < entries.size(); i++) { final SBTreeEntry<V> entry = entries.get(i); addEntry(i, entry, false); } }
@SuppressFBWarnings("EI_EXPOSE_REP2") OPrefixBTreeBucket(OCacheEntry cacheEntry, boolean isLeaf, OBinarySerializer<String> keySerializer, OBinarySerializer<V> valueSerializer, OEncryption encryption, String bucketPrefix) { super(cacheEntry); this.isLeaf = isLeaf; this.keySerializer = keySerializer; this.valueSerializer = valueSerializer; this.encryption = encryption; final int bucketPrefixSize; if (encryption == null) { final byte[] serializedPrefix = keySerializer.serializeNativeAsWhole(bucketPrefix); setBinaryValue(BUCKET_PREFIX_OFFSET, serializedPrefix); bucketPrefixSize = serializedPrefix.length; } else { final byte[] serializedPrefix = keySerializer.serializeNativeAsWhole(bucketPrefix); final byte[] encryptedPrefix = encryption.encrypt(serializedPrefix); setIntValue(BUCKET_PREFIX_OFFSET, encryptedPrefix.length); setBinaryValue(BUCKET_PREFIX_OFFSET + OIntegerSerializer.INT_SIZE, encryptedPrefix); bucketPrefixSize = encryptedPrefix.length + OIntegerSerializer.INT_SIZE; } this.bucketPrefix = bucketPrefix; calculateOffsets(bucketPrefixSize); setIntValue(freePointerOffset, MAX_PAGE_SIZE_BYTES); setIntValue(sizeOffset, 0); setByteValue(isLeafOffset, (byte) (isLeaf ? 1 : 0)); setLongValue(treeSizeOffset, 0); }
void shrinkWithPrefix(final int newSize, final String bucketPrefix) { List<SBTreeEntry<V>> treeEntries = new ArrayList<>(newSize); for (int i = 0; i < newSize; i++) { treeEntries.add(getEntry(i)); } final long treeSize = getLongValue(treeSizeOffset); final int bucketPrefixSize; if (encryption == null) { final byte[] serializedPrefix = keySerializer.serializeNativeAsWhole(bucketPrefix); setBinaryValue(BUCKET_PREFIX_OFFSET, serializedPrefix); bucketPrefixSize = serializedPrefix.length; } else { final byte[] serializedPrefix = keySerializer.serializeNativeAsWhole(bucketPrefix); final byte[] encryptedPrefix = encryption.encrypt(serializedPrefix); setIntValue(BUCKET_PREFIX_OFFSET, encryptedPrefix.length); setBinaryValue(BUCKET_PREFIX_OFFSET + OIntegerSerializer.INT_SIZE, encryptedPrefix); bucketPrefixSize = encryptedPrefix.length + OIntegerSerializer.INT_SIZE; } calculateOffsets(bucketPrefixSize); this.bucketPrefix = bucketPrefix; setIntValue(freePointerOffset, MAX_PAGE_SIZE_BYTES); setIntValue(sizeOffset, 0); setByteValue(isLeafOffset, (byte) (isLeaf ? 1 : 0)); setLongValue(treeSizeOffset, treeSize); int index = 0; for (SBTreeEntry<V> entry : treeEntries) { addEntry(index, entry, false); index++; } }
final String key = treeEntry.key.substring(bucketPrefix.length()); final byte[] serializedKey = keySerializer.serializeNativeAsWhole(key, OType.STRING); final int keySize; byte[] encryptedKey = null; byte[] serializedValue = valueSerializer.serializeNativeAsWhole(treeEntry.value.getValue());
public boolean addEntry(final int index, final SBTreeEntry<K> treeEntry, final boolean updateNeighbors) { final byte[] serializedKey = keySerializer.serializeNativeAsWhole(treeEntry.key, (Object[]) keyTypes); final int keySize; byte[] encryptedKey = null;
final byte[] serializedKey = keySerializer.serializeNativeAsWhole(key, (Object[]) keyTypes);
public boolean addEntry(int index, SBTreeEntry<K, V> treeEntry, boolean updateNeighbors) throws IOException { final byte[] serializedKey = keySerializer.serializeNativeAsWhole(treeEntry.key, (Object[]) keyTypes); final int keySize; byte[] encryptedKey = null;
final byte[] serializedKey = keySerializer.serializeNativeAsWhole(key, (Object[]) keyTypes);
final byte[] serializedKey = keySerializer.serializeNativeAsWhole(key, (Object[]) keyTypes);