cern::laser::util::buffer::SynchroBufferAdapter Class Reference

Collaboration diagram for cern::laser::util::buffer::SynchroBufferAdapter:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 SynchroBufferAdapter (SynchroBufferListener listener, SynchroBuffer buffer)
void push (Object object)
void push (Collection collection)
void enable ()
void disable ()
void close ()

Private Member Functions

SynchroBufferListener createSynchroBufferListener ()
void fire ()
Thread createPullingThread ()
void semNotify ()
void semWait ()
boolean isEmpty ()
boolean isEnabled ()
void setEnabled (boolean value)
boolean isClosed ()
void setClosed (boolean value)
void setFiring (boolean value)
boolean isFiring ()

Private Attributes

List queue
SynchroBuffer adaptee
SynchroBufferListener listener
Thread pullingThread
Boolean enabled = Boolean.TRUE
Boolean closed = Boolean.FALSE
Boolean firing = Boolean.FALSE
Boolean semaphore = Boolean.FALSE

Static Private Attributes

static final Logger LOGGER = Logger.getLogger(SynchroBufferAdapter.class.getName())

Detailed Description

A buffering utility class. It is an adapter for a SynchroBuffer instance allowing to detach the buffer consumer thread from the SynchroBuffer itself for slow consumers.

Author:
F.Calderini

Constructor & Destructor Documentation

cern::laser::util::buffer::SynchroBufferAdapter::SynchroBufferAdapter ( SynchroBufferListener  listener,
SynchroBuffer  buffer 
) [inline]

Constructor. The listener is disabled by default.

Parameters:
listener the buffer listener
buffer the SynchroBuffer instance

References adaptee, createPullingThread(), createSynchroBufferListener(), pullingThread, queue, and cern::laser::util::buffer::SynchroBuffer::setSynchroBufferListener().


Member Function Documentation

void cern::laser::util::buffer::SynchroBufferAdapter::close (  )  [inline]
Thread cern::laser::util::buffer::SynchroBufferAdapter::createPullingThread (  )  [inline, private]

Thread method.

References fire(), isClosed(), isEmpty(), isEnabled(), and semWait().

Referenced by SynchroBufferAdapter().

SynchroBufferListener cern::laser::util::buffer::SynchroBufferAdapter::createSynchroBufferListener (  )  [inline, private]

SynchroBufferListener method.

References queue, and semNotify().

Referenced by SynchroBufferAdapter().

void cern::laser::util::buffer::SynchroBufferAdapter::disable (  )  [inline]

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

References adaptee, cern::laser::util::buffer::SynchroBuffer::disable(), LOGGER, and setEnabled().

void cern::laser::util::buffer::SynchroBufferAdapter::enable (  )  [inline]

Enable the listener. The listener is disabled by default.

References adaptee, cern::laser::util::buffer::SynchroBuffer::enable(), LOGGER, and setEnabled().

void cern::laser::util::buffer::SynchroBufferAdapter::fire (  )  [inline, private]
boolean cern::laser::util::buffer::SynchroBufferAdapter::isClosed (  )  [inline, private]

References closed.

Referenced by createPullingThread().

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

References queue.

Referenced by close(), createPullingThread(), and fire().

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

References enabled.

Referenced by close(), createPullingThread(), and fire().

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

References firing.

Referenced by close().

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

Push a collection of objects into the buffer.

Parameters:
collection the collection of objects to push

References adaptee, and cern::laser::util::buffer::SynchroBuffer::push().

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

Push an object into the buffer.

Parameters:
object the object to push

References adaptee, and cern::laser::util::buffer::SynchroBuffer::push().

void cern::laser::util::buffer::SynchroBufferAdapter::semNotify (  )  [inline, private]

References semaphore.

Referenced by close(), createSynchroBufferListener(), and setEnabled().

void cern::laser::util::buffer::SynchroBufferAdapter::semWait (  )  [inline, private]

References semaphore.

Referenced by createPullingThread().

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

References closed.

Referenced by close().

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

References enabled, and semNotify().

Referenced by disable(), and enable().

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

References firing.

Referenced by fire().


Member Data Documentation

Referenced by isClosed(), and setClosed().

Referenced by isEnabled(), and setEnabled().

Referenced by isFiring(), and setFiring().

Referenced by fire().

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

Referenced by close(), disable(), and enable().

Referenced by SynchroBufferAdapter().

Referenced by semNotify(), and semWait().


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

Generated by  doxygen 1.6.2