public boolean putNotifyNoCursors(@NotNull final Transaction txn, @NotNull final ByteIterable key, @NotNull final ByteIterable value) { return EnvironmentImpl.throwIfReadonly(txn, "Can't put in read-only transaction").getMutableTree(this).put(key, value); }
void storeCreated(@NotNull final StoreImpl store) { getMutableTree(store); createdStores.put(store.getName(), store.getMetaInfo()); }
@Override public boolean add(@NotNull final Transaction txn, @NotNull final ByteIterable key, @NotNull final ByteIterable value) { final ITreeMutable mutableTree = EnvironmentImpl.throwIfReadonly(txn, "Can't add in read-only transaction").getMutableTree(this); if (mutableTree.add(key, value)) { TreeCursorMutable.notifyCursors(mutableTree); return true; } return false; }
@Override public void putRight(@NotNull final Transaction txn, @NotNull final ByteIterable key, @NotNull final ByteIterable value) { final ITreeMutable mutableTree = EnvironmentImpl.throwIfReadonly(txn, "Can't put in read-only transaction").getMutableTree(this); mutableTree.putRight(key, value); TreeCursorMutable.notifyCursors(mutableTree); }
@Override public boolean put(@NotNull final Transaction txn, @NotNull final ByteIterable key, @NotNull final ByteIterable value) { final ITreeMutable mutableTree = EnvironmentImpl.throwIfReadonly(txn, "Can't put in read-only transaction").getMutableTree(this); if (mutableTree.put(key, value)) { TreeCursorMutable.notifyCursors(mutableTree); return true; } return false; }
@Override public boolean delete(@NotNull final Transaction txn, @NotNull final ByteIterable key) { final ITreeMutable mutableTree = EnvironmentImpl.throwIfReadonly(txn, "Can't delete in read-only transaction").getMutableTree(this); if (mutableTree.delete(key)) { TreeCursorMutable.notifyCursors(mutableTree); return true; } return false; }
public void reclaim(@NotNull final Transaction transaction, @NotNull final RandomAccessLoggable loggable, @NotNull final Iterator<RandomAccessLoggable> loggables) { final ReadWriteTransaction txn = EnvironmentImpl.throwIfReadonly(transaction, "Can't reclaim in read-only transaction"); final boolean wasTreeCreated = txn.hasTreeMutable(this); if (!txn.getMutableTree(this).reclaim(loggable, loggables) && !wasTreeCreated) { txn.removeTreeMutable(this); } }
@Override public boolean deleteCurrent() { final ReadWriteTransaction txn = EnvironmentImpl.throwIfReadonly(this.txn, "Can't delete a key/value pair of cursor in read-only transaction"); if (treeCursor == null) { treeCursor = txn.getMutableTree(store).openCursor(); } else { if (!treeCursor.isMutable()) { final ByteIterable key = treeCursor.getKey(); final ByteIterable value = treeCursor.getValue(); final ITreeCursor newCursor = txn.getMutableTree(store).openCursor(); if (newCursor.getSearchBoth(key, value)) { treeCursor = newCursor; // navigated to same pair, ready to delete } else { throw new ConcurrentModificationException(CANT_DELETE_MODIFIED_MSG); } } } return treeCursor.deleteCurrent(); }
result = createStore(name, metaInfo); final ReadWriteTransaction tx = throwIfReadonly(txn, "Can't create a store in read-only transaction"); tx.getMutableTree(result); tx.storeCreated(result); } else {