Example usage for org.apache.commons.collections.buffer BoundedBuffer decorate

List of usage examples for org.apache.commons.collections.buffer BoundedBuffer decorate

Introduction

In this page you can find the example usage for org.apache.commons.collections.buffer BoundedBuffer decorate.

Prototype

public static BoundedBuffer decorate(Buffer buffer, int maximumSize, long timeout) 

Source Link

Document

Factory method to create a bounded buffer that blocks for a maximum amount of time.

Usage

From source file:edu.illinois.enforcemop.examples.apache.collections.TestBoundedBuffer.java

/**@TO-DO How do we handle timed events? */
@Test//from  ww w .ja  v a  2s .  c o m
//  @Schedule(name = "addToFullBufferRemoveViaIterator", sequence = "[beforeAdd:afterAdd]@main->beforeRemove@removeThread")
public void testAddToFullBufferRemoveViaIterator() {
    final Buffer bounded = BoundedBuffer.decorate(new UnboundedFifoBuffer(), 1, 500);
    bounded.add("Hello");
    new NonDelayedIteratorRemove(bounded, 100, "removeThread").start();
    /* @Event("beforeAdd")*/
    bounded.add("World");
    /* @Event("afterAdd")*/
    assertEquals(1, bounded.size());
    assertEquals("World", bounded.get());

}

From source file:edu.illinois.enforcemop.examples.apache.collections.TestBoundedBuffer.java

@Test
//  @Schedule(name = "default", sequence = "[beforeAdd:afterAdd]@main->beforeRemove@removeThread")
public void testAddAllToFullBufferRemoveViaIterator() {
    final Buffer bounded = BoundedBuffer.decorate(new UnboundedFifoBuffer(), 2, 500);
    bounded.add("Hello");
    bounded.add("World");
    new NonDelayedIteratorRemove(bounded, 100, 2, "removeThread").start();
    /* @Event("beforeAdd")*/
    bounded.addAll(Arrays.asList(new String[] { "Foo", "Bar" }));
    /* @Event("afterAdd")*/
    assertEquals(2, bounded.size());//w w  w .ja  v  a2s .co  m
    assertEquals("Foo", bounded.remove());
    assertEquals("Bar", bounded.remove());
}

From source file:edu.illinois.enforcemop.examples.apache.collections.TestBoundedBuffer.java

@Test
// @Schedule(name = "addToFullBufferWithTimeout", sequence = "[beforeAdd:afterAdd]@main->beforeRemove@removeThread,afterRemove@removeThread->afterAdd@main")
public void testAddToFullBufferWithTimeout() {
    final Buffer bounded = BoundedBuffer.decorate(new UnboundedFifoBuffer(), 1, 500);
    bounded.add("Hello");
    new NonDelayedRemove(bounded, 100, "removeThread").start();
    /* @Event("beforeAdd")*/
    bounded.add("World");
    /* @Event("afterAdd")*/
    assertEquals(1, bounded.size());//from   www  .  j  av a2  s .c  o m
    assertEquals("World", bounded.get());
    try {
        bounded.add("!");
        fail();
    } catch (BufferOverflowException e) {
    }
}