Interface Revisions
- All Known Implementing Classes:
- MemoryStoreRevisions,- ReadOnlyRevisions,- TarRevisions
public interface Revisions
Revisions instances provide read and write access to
 the current head state. Implementations are thread safe
 and all setters act atomically.
 This is a low level API and it is the callers and implementors responsibility to ensure all record id passed to or returned from methods of this interface are the ids of node states.
- 
Nested Class SummaryNested ClassesModifier and TypeInterfaceDescriptionstatic interfaceImplementation specific options for thesetHeadmethods.
- 
Method SummaryModifier and TypeMethodDescription@NotNull RecordIdgetHead()Returns the record id of the head state.@NotNull RecordIdReturns the persisted to disk record id of the head state.setHead(@NotNull Function<RecordId, RecordId> newHead, @NotNull Revisions.Option... options) Atomically set the record id of the current head state to the value returned from thenewHeadfunction when called with the record id of the current head.booleansetHead(@NotNull RecordId expected, @NotNull RecordId head, @NotNull Revisions.Option... options) Atomically set the record id of the current head state to the givenheadstate if the current head state matches theexpectedvalue.
- 
Method Details- 
getHeadReturns the record id of the head state. The returned id is a valid id for aSegmentNodeState.- Returns:
- id of the head state
 
- 
getPersistedHeadReturns the persisted to disk record id of the head state. The returned id is a valid id for aSegmentNodeState.- Returns:
- id of the head state
 
- 
setHeadboolean setHead(@NotNull @NotNull RecordId expected, @NotNull @NotNull RecordId head, @NotNull @NotNull Revisions.Option... options) Atomically set the record id of the current head state to the givenheadstate if the current head state matches theexpectedvalue.All record ids must be valid ids for SegmentNodeStates.The locking behaviour of this method regarding implementation specific. - Parameters:
- expected- the expected head for the update to take place
- head- the new head to update to
- options- implementation specific options
- Returns:
- trueif the current head was successfully updated,- falseotherwise.
 
- 
setHeadRecordId setHead(@NotNull @NotNull Function<RecordId, RecordId> newHead, @NotNull @NotNull Revisions.Option... options) throws InterruptedExceptionAtomically set the record id of the current head state to the value returned from thenewHeadfunction when called with the record id of the current head.All record ids must be valid ids for SegmentNodeStates.The behaviour of this method regarding locking and handling nullvalues returned bynewHeadis implementation specific.- Parameters:
- newHead- function mapping an record id to the record id to which the current head id should be set.
- options- implementation specific options
- Returns:
- the record id of the root node if the current head was successfully
                 updated, nullotherwise.
- Throws:
- InterruptedException- Blocking implementations may throw this exception whe interrupted.
 
 
-