Interface WriteableTransaction
-
- All Superinterfaces:
ReadableTransaction
public interface WriteableTransaction extends ReadableTransaction
Represents a writeable transaction on a storage engine.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classWriteableTransaction.WriteTransactionOptionOptions applicable to aWriteableTransaction.-
Nested classes/interfaces inherited from interface org.opends.server.backends.pluggable.spi.ReadableTransaction
ReadableTransaction.ReadOption
-
-
Method Summary
All Methods Instance Methods Default Methods Modifier and Type Method Description default voidcreateTreeIfAbsent(TreeName name)Ensures that the tree identified by the provided name exists, creating it if it does not.default booleandelete(TreeName treeName, ByteString key)Deletes the record with the provided key, in the tree whose name is provided.default voiddeleteTree(TreeName name)Deletes the tree identified by the provided name if it exists.default voidput(TreeName treeName, ByteString key, ByteString value)Adds a record with the provided key and value, replacing any existing record having the same key.default booleanupdate(TreeName treeName, ByteString key, UpdateFunction f)Atomically adds, deletes, or replaces a record with the provided key according to the new value computed by the update function.-
Methods inherited from interface org.opends.server.backends.pluggable.spi.ReadableTransaction
getRecordCount, openCursor, read
-
-
-
-
Method Detail
-
createTreeIfAbsent
default void createTreeIfAbsent(TreeName name)
Ensures that the tree identified by the provided name exists, creating it if it does not.- Parameters:
name- the tree name- Throws:
ReadOnlyStorageException- If the tree specified by the name does not exist and cannot be created as a result of the underlying storage being opened in read-only mode.- See Also:
Storage.open(AccessMode)
-
deleteTree
default void deleteTree(TreeName name)
Deletes the tree identified by the provided name if it exists. Otherwise, do nothing.- Parameters:
name- the tree name- Throws:
ReadOnlyStorageException- if the underlying storage has been opened in read-only mode.- See Also:
Storage.open(AccessMode)
-
put
default void put(TreeName treeName, ByteString key, ByteString value)
Adds a record with the provided key and value, replacing any existing record having the same key.- Parameters:
treeName- the tree name. If the tree does not exist, it will be created.key- the key of the new recordvalue- the value of the new record- Throws:
ReadOnlyStorageException- if the underlying storage has been opened in read-only mode.- See Also:
Storage.open(AccessMode)
-
update
default boolean update(TreeName treeName, ByteString key, UpdateFunction f)
Atomically adds, deletes, or replaces a record with the provided key according to the new value computed by the update function.- Parameters:
treeName- the tree name. If the tree does not exist, it will be created.key- the key of the new recordf- the update function- Returns:
trueif an update was performed,falseotherwise- Throws:
ReadOnlyStorageException- if the underlying storage has been opened in read-only mode.- See Also:
UpdateFunction.computeNewValue(ByteString),Storage.open(AccessMode)
-
delete
default boolean delete(TreeName treeName, ByteString key)
Deletes the record with the provided key, in the tree whose name is provided.- Parameters:
treeName- the tree name. If the tree does not exist, it will be created.key- the key of the record to delete- Returns:
trueif the record could be deleted,falseotherwise- Throws:
ReadOnlyStorageException- if the underlying storage has been opened in read-only mode.- See Also:
Storage.open(AccessMode)
-
-