org.jacorb.orb
Class BufferManager

java.lang.Object
  extended by org.jacorb.orb.BufferManager

public final class BufferManager
extends java.lang.Object

A BufferManager is used to share a pool of buffers and to implement a buffer allocation policy. This reduces the number of memory allocations and deallocations and the overall memory footprint. Buffers are generally created on demand. The BufferManager uses a singleton pattern, so will only be a single shared BuffferManager across all ORBs in a process.

Version:
$Id: BufferManager.java,v 1.29 2009-04-25 10:10:35 andre.spiegel Exp $
Author:
Gerald Brose, FU Berlin

Method Summary
static void configure(org.jacorb.config.Configuration configuration)
          configures the BufferManager, in turn configures the singleton.
 byte[] getBuffer(int initial)
           
 byte[] getBuffer(int initial, boolean cdrStr)
          getBuffer returns a new buffer.
static BufferManager getInstance()
          May only be called after configure()
 byte[] getPreferredMemoryBuffer()
           
 void release()
           
 void returnBuffer(byte[] current)
           
 void returnBuffer(byte[] current, boolean cdrStr)
          Describe returnBuffer method here.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

configure

public static void configure(org.jacorb.config.Configuration configuration)
configures the BufferManager, in turn configures the singleton. Must be called before getInstance() !


getInstance

public static BufferManager getInstance()
                                 throws BAD_INV_ORDER
May only be called after configure()

Throws:
BAD_INV_ORDER - if not previously configured

getPreferredMemoryBuffer

public byte[] getPreferredMemoryBuffer()

getBuffer

public byte[] getBuffer(int initial)

getBuffer

public byte[] getBuffer(int initial,
                        boolean cdrStr)
getBuffer returns a new buffer.

Parameters:
initial - an int value
cdrStr - a boolean value to denote if CDROuputStream is caller (may use cache in this situation)
Returns:
a byte[] value

returnBuffer

public void returnBuffer(byte[] current)

returnBuffer

public void returnBuffer(byte[] current,
                         boolean cdrStr)
Describe returnBuffer method here.

Parameters:
current - a byte[] value
cdrStr - a boolean value value to denote if CDROuputStream is caller (may use cache in this situation)

release

public void release()