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

static final int DUPLICATE_OK = 1
static final int DUPLICATE_REPLACE = 2
static 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

static 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

References init().

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)

References init().


Member Function Documentation

void cern::laser::util::buffer::SynchroBuffer::close (  )  [inline]
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.

References setEnabled().

Referenced by cern::laser::util::buffer::SynchroBufferAdapter::disable(), cern::laser::guiplatform::util::SearchProxyBuffer::disable(), and cern::laser::guiplatform::util::ProxyBuffer::disable().

void cern::laser::util::buffer::SynchroBuffer::enable (  )  [inline]
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]

References closed.

Referenced by createCheckingThread(), and push().

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

References buffer.

Referenced by close(), and createCheckingThread().

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

References enabled.

Referenced by close(), and createCheckingThread().

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

References firing.

Referenced by close().

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

References buffer, duplicatePolicy, isClosed(), and 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

References buffer, duplicatePolicy, and isClosed().

Referenced by cern::laser::guiplatform::explorer::ACChildrenMap::addNode(), cern::laser::guiplatform::util::ProxyBuffer::onAlarm(), cern::laser::business::cache::AlarmCacheListenerImpl::onAlarmChange(), cern::laser::guiplatform::util::SearchProxyBuffer::onSearchAlarm(), cern::laser::util::buffer::SynchroBufferAdapter::push(), push(), cern::laser::source::alarmsysteminterface::impl::AlarmSystemInterfaceProxy::push(), and cern::laser::guiplatform::explorer::ACChildrenMap::removeNode().

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

References closed.

Referenced by close().

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

References enabled.

Referenced by disable(), and enable().

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

References firing.

Referenced by fire().

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

Member Data Documentation

The buffer

Referenced by createCheckingThread(), fire(), init(), isEmpty(), and push().

Referenced by init().

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

Referenced by isClosed(), and setClosed().

Discards duplicated objects.

Allows object duplication.

Replaces duplicated objects.

Referenced by init(), and push().

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

Referenced by isEnabled(), and setEnabled().

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

Referenced by isFiring(), and setFiring().

Referenced by fire().

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

Referenced by createCheckingThread(), and init().

Referenced by close(), createCheckingThread(), and init().

Referenced by createCheckingThread(), and init().


The documentation for this class was generated from the following file:

Generated by  doxygen 1.6.2