@Override public boolean put(Event<T> event) { Clock clock = event.getClock(); int size = _events.size(); if(size == 0 && _minClock.before(clock)) { _minClock = clock; _maxClock = clock; } if(size < _capacity && _maxClock.beforeEqual(clock)) { _events.add(event); _maxClock = clock; return true; } return false; }
@Override public long getOffset(Clock sinceClock) { if(_minClock.before(sinceClock) && !sinceClock.after(_maxClock)) { int i = 0; for(; i < _events.size(); i++) { Event<T> e = _events.get(i); Occurred occ = sinceClock.compareTo(e.getClock()); if(occ == Occurred.EQUICONCURRENTLY) { break; } else if(occ == Occurred.BEFORE || occ == Occurred.CONCURRENTLY) { i--; break; } } return _origin + i; } return -1; }
@Override public boolean put(Event<T> event) { Clock clock = event.getClock(); int size = _events.size(); if(size == 0 && _minClock.before(clock)) { _minClock = clock; _maxClock = clock; } if(size < _capacity && _maxClock.beforeEqual(clock)) { _events.add(event); _maxClock = clock; return true; } return false; }
@Override public long getOffset(Clock sinceClock) { if(_minClock.before(sinceClock) && !sinceClock.after(_maxClock)) { int i = 0; for(; i < _events.size(); i++) { Event<T> e = _events.get(i); Occurred occ = sinceClock.compareTo(e.getClock()); if(occ == Occurred.EQUICONCURRENTLY) { break; } else if(occ == Occurred.BEFORE || occ == Occurred.CONCURRENTLY) { i--; break; } } return _origin + i; } return -1; }
if(b2.getMaxClock().before(sinceClock)) { if(b1.getMinClock().compareTo(sinceClock) == Occurred.EQUICONCURRENTLY) { return new SimplePosition(getId(), b1.getOrigin(), b1.getMinClock());
if(b2.getMaxClock().before(sinceClock)) { if(b1.getMinClock().compareTo(sinceClock) == Occurred.EQUICONCURRENTLY) { return new SimplePosition(getId(), b1.getOrigin(), b1.getMinClock());