public void testRemoveError4() throws Exception { // based on bug 33071 CircularFifoBuffer fifo = new CircularFifoBuffer(5); fifo.add("1"); fifo.add("2"); fifo.add("3"); fifo.add("4"); fifo.add("5"); // end=0 fifo.add("6"); // end=1 fifo.add("7"); // end=2 assertEquals("[3, 4, 5, 6, 7]", fifo.toString()); fifo.remove("4"); // remove element in middle of array, after start assertEquals("[3, 5, 6, 7]", fifo.toString()); }
public int secondsSinceOldestModification() { long modifiedTimeMillis = ((Long) lastModifiedTimesMillis.get()).longValue(); return (int) ((now() - modifiedTimeMillis) / MILLIS_IN_SEC); }
public NthLastModifiedTimeTracker(int numTimesToTrack) { if (numTimesToTrack < 1) { throw new IllegalArgumentException( "numTimesToTrack must be greater than zero (you requested " + numTimesToTrack + ")"); } lastModifiedTimesMillis = new CircularFifoBuffer(numTimesToTrack); initLastModifiedTimesMillis(); }
CircularFifoBuffer buffer = new CircularFifoBuffer(window); buffer.add(num); } catch (NumberFormatException e) { if (buffer.size() > 0) { System.out.println("Moving avg is: " + (sum / buffer.size()));
//maps username to last 5 messages Map<String,CircularFifoBuffer> map = new HashMap<String,CircularFifoBuffer>(); //putting the values if(map.get(username) == null){ CircularFifoBuffer last5messages = new CircularFifoBuffer(5); last5messages.add(message); map.put(last5messages); }else{ //similar code }
/** * Collects values from supplier in specified periods of time, and compares last n samples every * iteration. If all n samples are equal(), returns the value. If last n samples don't match * before max iterations threshold is reached, returns last collected sample. * * @param samplesSupplier supplier of value to wait for, * @param samplingPeriod milliseconds period between taking each sample, * @param sampleQueueSize defines the last n elements that are to be compared, * @param maxSamplesThreshold max number of samples before return * @return last collected sample */ public static <T> T waitForValue(Supplier<T> samplesSupplier, int samplingPeriod, int sampleQueueSize, int maxSamplesThreshold) { CircularFifoBuffer samplesQueue = new CircularFifoBuffer(sampleQueueSize); int samplesTaken = 0; while (!isThresholdReached(samplesTaken, maxSamplesThreshold) && !areAllSamplesEqual(samplesQueue)) { CurrentThread.sleep(samplingPeriod); T nextSample = samplesSupplier.get(); samplesQueue.add(nextSample); ++samplesTaken; } return (T) samplesQueue.get(); }
public void testRepeatedSerialization() throws Exception { CircularFifoBuffer b = new CircularFifoBuffer(2); b.add("a"); assertEquals(1, b.size()); assertEquals(true, b.contains("a")); new ByteArrayInputStream(bos.toByteArray())).readObject(); assertEquals(1, b2.size()); assertEquals(true, b2.contains("a")); b2.add("b"); assertEquals(2, b2.size()); assertEquals(true, b2.contains("a")); assertEquals(true, b2.contains("b")); new ByteArrayInputStream(bos.toByteArray())).readObject(); assertEquals(2, b3.size()); assertEquals(true, b3.contains("a")); assertEquals(true, b3.contains("b")); b3.add("c"); assertEquals(2, b3.size()); assertEquals(true, b3.contains("b")); assertEquals(true, b3.contains("c"));
private void updateLastModifiedTime() { lastModifiedTimesMillis.add(now()); }
@Override public void execute(Tuple input) { long minute = input.getLongByField(Field.TIMESTAMP_MINUTES); MutableLong count = counts.get(minute); if (count == null) { if (buffer.isFull()) { long oldMinute = (Long) buffer.remove(); counts.remove(oldMinute); } count = new MutableLong(1); counts.put(minute, count); buffer.add(minute); } else { count.increment(); } collector.emit(input, new Values(minute, count.longValue())); collector.ack(input); }
/** * Tests that the removal operation actually removes the first element. */ public void testCircularFifoBufferRemove() { resetFull(); int size = confirmed.size(); for (int i = 0; i < size; i++) { Object o1 = ((CircularFifoBuffer) collection).remove(); Object o2 = ((ArrayList) confirmed).remove(0); assertEquals("Removed objects should be equal", o1, o2); verify(); } try { ((CircularFifoBuffer) collection).remove(); fail("Empty buffer should raise Underflow."); } catch (BufferUnderflowException e) { // expected } }
public List<String> getLogLines() { List<String> logLines = new ArrayList<>(buffer.size()); Layout layout = this.getLayout(); for (Object aBuffer : buffer) { LoggingEvent loggingEvent = (LoggingEvent) aBuffer; logLines.add(layout.format(loggingEvent)); } return logLines; }
public boolean isFull() { return buffer.isFull(); }
public int maxSize() { return buffer.maxSize(); }
protected MemoryAppender(String name, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions, int bufferSize) { super(name, filter, layout, ignoreExceptions); this.bufferSize = bufferSize; this.buffer = BufferUtils.synchronizedBuffer(new CircularFifoBuffer(bufferSize)); }
int window = Integer.parseInt(args[3]); CircularFifoBuffer buffer = new CircularFifoBuffer(window); movingAvg.configure(brokers, groupId); buffer.add(num); } catch (NumberFormatException e) { if (buffer.size() > 0) { System.out.println("Moving avg is: " + (sum / buffer.size()));