SnapshotableDeque provides an implementation of Deque.See: Description
| Interface | Description |
|---|---|
| INodeEventHandler<E> |
An interface to consume update-notifications of nodes
|
| Class | Description |
|---|---|
| DequeNode<E> |
In Snapshotable Deques a Node wraps one element.
|
| DequeNode.Link<E> |
Internal helper class link the elements / nodes between themselves
|
| DequeSnapshot<E> |
A Snapshot of
SnapshotableDeque implements Collection. |
| SnapshotableDeque<E> |
A threadsafe and snapshotable
Deque. |
| SnapshotableDeque.ClearCompleteForwardBranch<E> |
Internal helper class
|
| SnapshotableDeque.Eyebolt<E> |
Internal helper class to reference begin or end of branch.
|
| SnapshotableDeque.SnapshotVersion<E> |
Internal helper class to manage versions
|
| Enum | Description |
|---|---|
| SnapshotableDeque.LinkMode |
SnapshotableDeque provides an implementation of Deque. Iterating through deque requires creating a DequeSnapshot. A snapshot is immutable regardless of possible changes in source deque.
Unlike CopyOnWriteArrayList a SnapshotableDeque never creates a deep copy of content, neither when modifying, nor when reading or creating a snapshot.
Iterating through a snapshot requires no locks inside of snapshot or source deque. The goal is to prevent a big performance slump for very large deques. This is realized by versionable linked lists with different branches inside of deque.
It is recommend to close snapshots after use to remove unneeded version-branches.
Copyright © 2020. All rights reserved.