-class SlotBuffer {
- static final int DEFAULT_SIZE = 16;
-
- private Slot[] array;
- private int head;
- private int tail;
- public int64_t oldestseqn;
-
- SlotBuffer() {
- array = new Slot[DEFAULT_SIZE + 1];
- head = tail = 0;
- oldestseqn = 0;
- }
-
- int size() {
- if (head >= tail)
- return head - tail;
- return (array.length + head) - tail;
- }
-
- int capacity() {
- return array.length - 1;
- }
-
- void resize(int newsize) {
- if (newsize == (array.length - 1))
- return;
-
- Slot[] newarray = new Slot[newsize + 1];
- int currsize = size();
- int index = tail;
- for (int i = 0; i < currsize; i++) {
- newarray[i] = array[index];
- if ((++index) == array.length)
- index = 0;
- }
- array = newarray;
- tail = 0;
- head = currsize;
- }
-
- private void incrementHead() {
- head++;
- if (head >= array.length)
- head = 0;
- }
-
- private void incrementTail() {
- tail++;
- if (tail >= array.length)
- tail = 0;
- }
-
- void putSlot(Slot s) {
-
- int64_t checkNum = (getNewestSeqNum() + 1);