Package etch.util.core.nio

Examples of etch.util.core.nio.ByteBufferPool$Notify


  /** @throws Exception */
  @Test
  public void construct11() throws Exception
  {
    ByteBufferPool p = new ByteBufferPool( 101, 103, 105, 0, 0 );
    assertEquals( 101, p.bufferSize() );
    assertEquals( 103, p.min() );
    assertEquals( 105, p.limit() );
    assertEquals( 0, p.interval() );
    assertEquals( 0, p.length() );
    p.shutdown();
  }
View Full Code Here


 
  /** @throws Exception */
  @Test
  public void alloc1() throws Exception
  {
    ByteBufferPool p = new ByteBufferPool( 4096, 0, 10, 0, 0 );
    ByteBuffer b = p.alloc( null );
    assertNotNull( b );
    assertEquals( 4096, b.limit() );
    assertEquals( 1, p.used() );
    p.release( b );
    assertEquals( 0, p.used() );
  }
View Full Code Here

 
  /** @throws Exception */
  @Test
  public void alloc2() throws Exception
  {
    ByteBufferPool p = new ByteBufferPool( 1024, 0, 10, 0, 0 );
    ByteBuffer b = p.alloc( null );
    assertNotNull( b );
    assertEquals( 1024, b.limit() );
    assertEquals( 1, p.used() );
    p.release( b );
    assertEquals( 0, p.used() );
  }
View Full Code Here

 
  /** @throws Exception */
  @Test
  public void alloc3() throws Exception
  {
    ByteBufferPool p = new ByteBufferPool( 4096, 0, 10, 0, 0 );
    ByteBuffer[] b = p.alloc( null, 2 );
    assertNotNull( b );
    assertEquals( 2, b.length );
    assertNotNull( b[0] );
    assertEquals( 4096, b[0].limit() );
    assertNotNull( b[1] );
    assertEquals( 4096, b[1].limit() );
    assertEquals( 2, p.used() );
    p.release( b );
    assertEquals( 0, p.used() );
  }
View Full Code Here

  /** @throws Exception */
  @Test( expected = IOException.class )
  public void alloc4() throws Exception
  {
    // out of buffers
    ByteBufferPool p = new ByteBufferPool( 1024, 0, 1, 0, 0 );
    p.alloc( null );
    p.alloc( null );
  }
View Full Code Here

  /** @throws Exception */
  @Test
  public void alloc5() throws Exception
  {
    // slower because of no pooling.
    ByteBufferPool p = new ByteBufferPool( 1024, 0, 1, 0, 0 );
    for (int i = 0; i < 100000; i++)
      p.release( p.alloc( null ) );
    assertEquals( 0, p.used() );
  }
View Full Code Here

  /** @throws Exception */
  @Test
  public void alloc6() throws Exception
  {
    // faster because of pooling.
    ByteBufferPool p = new ByteBufferPool( 1024, 1, 1, 0, 0 );
    for (int i = 0; i < 100000; i++)
      p.release( p.alloc( null ) );
    assertEquals( 0, p.used() );
  }
View Full Code Here

 
  /** @throws Exception */
  @Test
  public void notify1() throws Exception
  {
    ByteBufferPool p = new ByteBufferPool( 1024, 1, 1, 0, 0 );
    MyNotify n1 = new MyNotify();
    MyNotify n2 = new MyNotify();
   
    ByteBuffer b1 = p.alloc( n1 );
    assertNotNull( b1 );
    assertEquals( 1, p.used() );
    Thread.sleep( 15 );
    assertFalse( n1.available );
    assertFalse( n2.available );
   
    ByteBuffer b2 = p.alloc( n2 );
    assertNull( b2 );
    assertEquals( 1, p.used() );
    Thread.sleep( 15 );
    assertFalse( n1.available );
    assertFalse( n2.available );
   
    // the alloc of b2 failed, but n2 should be registered to be notified
    // when a block is freed. release of b1 should notify n2 of availability
   
    p.release( b1 );
    b1 = null;
    assertEquals( 0, p.used() );
    Thread.sleep( 15 );
    assertFalse( n1.available );
    assertTrue( n2.available );
   
    n2.available = false;
    b2 = p.alloc( n2 );
    assertNotNull( b2 );
    assertEquals( 1, p.used() );
    Thread.sleep( 15 );
    assertFalse( n1.available );
    assertFalse( n2.available );
   
    p.release( b2 );
    b2 = null;
    assertEquals( 0, p.used() );
    Thread.sleep( 15 );
    assertFalse( n1.available );
    assertFalse( n2.available );
  }
View Full Code Here

    @Override
    protected synchronized void store(NotificationMessageHolderType messageHolder) {
        try {
            initSession();
            Notify notify = new Notify();
            notify.getNotificationMessage().add(messageHolder);
            StringWriter writer = new StringWriter();
            jaxbContext.createMarshaller().marshal(notify, writer);
            Message message = session.createTextMessage(writer.toString());
            producer.send(message);
        } catch (JMSException e) {
View Full Code Here

                if (msg == null) {
                    break;
                }
                TextMessage txtMsg = (TextMessage) msg;
                StringReader reader = new StringReader(txtMsg.getText());
                Notify notify = (Notify) jaxbContext.createUnmarshaller().unmarshal(reader);
                messages.addAll(notify.getNotificationMessage());
            }
            return messages;
        } catch (JMSException e) {
            log.info("Error retrieving messages", e);
            if (jmsSession != null) {
View Full Code Here

TOP

Related Classes of etch.util.core.nio.ByteBufferPool$Notify

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.