mirror of https://github.com/micromata/borgbackup-butler.git

Kai Reinhard
14.20.2021 5e39c0040ddde260831a5b9f73c0bbfec3738f94
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package de.micromata.borgbutler.server.logging;
 
import java.util.ArrayList;
import java.util.Iterator;
 
public class FiFoBuffer<T> {
    private ArrayList<T> list;
    private int maxSize;
 
    public FiFoBuffer(int maxSize) {
        this.maxSize = maxSize;
        list = new ArrayList<>(maxSize);
    }
 
    public void add(T element) {
        synchronized (list) {
            if (list.size() >= maxSize) {
                Iterator<T> it = list.iterator();
                it.next();
                it.remove();
            }
            list.add(element);
        }
    }
 
    public T get(int index) {
        synchronized (list) {
            if (index <= 0 || index >= list.size()) {
                return null;
            }
            return list.get(index);
        }
    }
 
    public int getSize() {
        return list.size();
    }
}