Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

cern::laser::util::buffer::SynchroBuffer Class Reference

Collaboration diagram for cern::laser::util::buffer::SynchroBuffer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SynchroBuffer (long minWindowSize, long maxWindowSize, int windowGrowthFactor, int duplicatePolicy)
 SynchroBuffer ()
void push (Object object)
void push (Collection collection)
void setSynchroBufferListener (SynchroBufferListener listener)
void enable ()
void disable ()
void close ()

Static Public Attributes

final int DUPLICATE_OK = 1
final int DUPLICATE_REPLACE = 2
final int DUPLICATE_DISCARD = 3

Private Member Functions

void init (long minSize, long maxSize, int growthFactor, int policy)
Thread createCheckingThread ()
long fire ()
boolean isClosed ()
void setClosed (boolean value)
void setFiring (boolean value)
boolean isFiring ()
boolean isEmpty ()
boolean isEnabled ()
void setEnabled (boolean value)

Private Attributes

long minWindowSize
long maxWindowSize
int windowGrowthFactor
int duplicatePolicy
Thread checkingThread
Boolean closed = Boolean.FALSE
Boolean firing = Boolean.FALSE
Boolean enabled = Boolean.FALSE
SynchroBufferListener listener = null
List buffer = null

Static Private Attributes

final Logger LOGGER = Logger.getLogger(SynchroBuffer.class.getName())

Detailed Description

A buffering utility class.
Author:
F.Calderini


Constructor & Destructor Documentation

cern::laser::util::buffer::SynchroBuffer::SynchroBuffer long  minWindowSize,
long  maxWindowSize,
int  windowGrowthFactor,
int  duplicatePolicy
[inline]
 

Constructor.

Parameters:
minWindowSize the buffer window min size (msec)
maxWindowSize the buffer window max size (msec)
windowGrowthFactor the buffer window growth factor (size = minWindowSize + msg/sec x windowGrowthFactor)
duplicatePolicy the buffer object duplication policy

cern::laser::util::buffer::SynchroBuffer::SynchroBuffer  )  [inline]
 

Default constructor. Initialisation is made via properties. It reads the configuration from the resource config file specified via the system property syncrobuffer.properties. If not defined, it looks for the default config file synchrobuffer-config.properties. System properties override the configuration loaded from the properties file. Configuration properties are :

  • synchrobuffer.minwindowsize (msec, default 500)
  • synchrobuffer.maxwindowsize (msec, default 5000)
  • synchrobuffer.windowgrowthfactor (windowSize = minWindowSize + msg/sec x windowGrowthFactor, default 100)
  • synchrobuffer.duplicatepolicy (default SynchroBuffer.DUPLICATES_OK)


Member Function Documentation

void cern::laser::util::buffer::SynchroBuffer::close  )  [inline]
 

Close the buffer and deallocate resources.

Thread cern::laser::util::buffer::SynchroBuffer::createCheckingThread  )  [inline, private]
 

void cern::laser::util::buffer::SynchroBuffer::disable  )  [inline]
 

Disable the listener. Pushed object are kept in the buffer and delivered when the listener is enabled.

void cern::laser::util::buffer::SynchroBuffer::enable  )  [inline]
 

Enable the listener. The listener is disabled by default.

long cern::laser::util::buffer::SynchroBuffer::fire  )  [inline, private]
 

void cern::laser::util::buffer::SynchroBuffer::init long  minSize,
long  maxSize,
int  growthFactor,
int  policy
[inline, private]
 

boolean cern::laser::util::buffer::SynchroBuffer::isClosed  )  [inline, private]
 

boolean cern::laser::util::buffer::SynchroBuffer::isEmpty  )  [inline, private]
 

boolean cern::laser::util::buffer::SynchroBuffer::isEnabled  )  [inline, private]
 

boolean cern::laser::util::buffer::SynchroBuffer::isFiring  )  [inline, private]
 

void cern::laser::util::buffer::SynchroBuffer::push Collection  collection  )  [inline]
 

Push a collection of objects into the buffer.

Parameters:
collection the collection of objects to push

void cern::laser::util::buffer::SynchroBuffer::push Object  object  )  [inline]
 

Push an object into the buffer. If the duplicate policy is DUPLICATE_DISCARD the object is discarded if the buffer already contains it. If the duplicate policy is DUPLICATE_REPLACE the object replaces any previously pushed duplicated instance. The object is appended otherwise. Equals method is used to determine duplications.

Parameters:
o the object to push

void cern::laser::util::buffer::SynchroBuffer::setClosed boolean  value  )  [inline, private]
 

void cern::laser::util::buffer::SynchroBuffer::setEnabled boolean  value  )  [inline, private]
 

void cern::laser::util::buffer::SynchroBuffer::setFiring boolean  value  )  [inline, private]
 

void cern::laser::util::buffer::SynchroBuffer::setSynchroBufferListener SynchroBufferListener  listener  )  [inline]
 

Set the buffer consumer listener.

Parameters:
listener the listener


Member Data Documentation

List cern::laser::util::buffer::SynchroBuffer::buffer = null [private]
 

The buffer

Thread cern::laser::util::buffer::SynchroBuffer::checkingThread [private]
 

Boolean cern::laser::util::buffer::SynchroBuffer::closed = Boolean.FALSE [private]
 

final int cern::laser::util::buffer::SynchroBuffer::DUPLICATE_DISCARD = 3 [static]
 

Discards duplicated objects.

final int cern::laser::util::buffer::SynchroBuffer::DUPLICATE_OK = 1 [static]
 

Allows object duplication.

final int cern::laser::util::buffer::SynchroBuffer::DUPLICATE_REPLACE = 2 [static]
 

Replaces duplicated objects.

int cern::laser::util::buffer::SynchroBuffer::duplicatePolicy [private]
 

Boolean cern::laser::util::buffer::SynchroBuffer::enabled = Boolean.FALSE [private]
 

Boolean cern::laser::util::buffer::SynchroBuffer::firing = Boolean.FALSE [private]
 

SynchroBufferListener cern::laser::util::buffer::SynchroBuffer::listener = null [private]
 

final Logger cern::laser::util::buffer::SynchroBuffer::LOGGER = Logger.getLogger(SynchroBuffer.class.getName()) [static, private]
 

long cern::laser::util::buffer::SynchroBuffer::maxWindowSize [private]
 

long cern::laser::util::buffer::SynchroBuffer::minWindowSize [private]
 

int cern::laser::util::buffer::SynchroBuffer::windowGrowthFactor [private]
 


The documentation for this class was generated from the following file:
Generated on Thu Apr 30 03:09:49 2009 for ACS Java API by doxygen 1.3.8