123456789101112131415161718192021222324252627282930313233343536 |
- package at.acdp.urweb.sclient;
- import at.acdp.urweb.sclient.data.IJsonObject;
- import at.acdp.urweb.sclient.data.LogHolder;
- public class URLog {
- private final static int LENGTH = 100;
- private static LogHolder[] list = new LogHolder[LENGTH];
- private static int pos = 0;
- public static void add(IJsonObject jo) {
- synchronized (list) {
- String type = jo.getClass().getSimpleName();
- list[++pos % LENGTH] = new LogHolder(type, jo);
- }
- }
- public static LogEntries get(int from) {
- from %= LENGTH;
- int to = pos % LENGTH;
- synchronized (list) {
- int length = to - from;
- if (from > to) {
- var ret = new LogHolder[LENGTH - from + to];
- System.arraycopy(list, from, ret, 0, LENGTH - from);
- System.arraycopy(list, 0, ret, LENGTH - from, to);
- return new LogEntries(ret, pos);
- } else {
- var ret = new LogHolder[length];
- System.arraycopy(list, from, ret, 0, length);
- return new LogEntries(ret, pos);
- }
- }
- }
- }
|