
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()) |
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.
| cern::laser::util::buffer::SynchroBufferAdapter::SynchroBufferAdapter | ( | SynchroBufferListener | listener, | |
| SynchroBuffer | buffer | |||
| ) | [inline] |
Constructor. The listener is disabled by default.
| listener | the buffer listener | |
| buffer | the SynchroBuffer instance |
References adaptee, createPullingThread(), createSynchroBufferListener(), pullingThread, queue, and cern::laser::util::buffer::SynchroBuffer::setSynchroBufferListener().
| void cern::laser::util::buffer::SynchroBufferAdapter::close | ( | ) | [inline] |
Close the buffer and deallocate resources.
References adaptee, cern::laser::util::buffer::SynchroBuffer::close(), isEmpty(), isEnabled(), isFiring(), LOGGER, semNotify(), and setClosed().
| 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] |
References isEmpty(), isEnabled(), listener, cern::laser::util::buffer::SynchroBufferListener::pull(), queue, and setFiring().
Referenced by createPullingThread().
| 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] |
| void cern::laser::util::buffer::SynchroBufferAdapter::push | ( | Collection | collection | ) | [inline] |
Push a collection of objects into the buffer.
| 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.
| 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] |
| void cern::laser::util::buffer::SynchroBufferAdapter::setEnabled | ( | boolean | value | ) | [inline, private] |
References enabled, and semNotify().
| void cern::laser::util::buffer::SynchroBufferAdapter::setFiring | ( | boolean | value | ) | [inline, private] |
Referenced by close(), disable(), enable(), push(), and SynchroBufferAdapter().
Boolean cern::laser::util::buffer::SynchroBufferAdapter::closed = Boolean.FALSE [private] |
Referenced by isClosed(), and setClosed().
Boolean cern::laser::util::buffer::SynchroBufferAdapter::enabled = Boolean.TRUE [private] |
Referenced by isEnabled(), and setEnabled().
Boolean cern::laser::util::buffer::SynchroBufferAdapter::firing = Boolean.FALSE [private] |
Referenced by isFiring(), and setFiring().
Referenced by fire().
final Logger cern::laser::util::buffer::SynchroBufferAdapter::LOGGER = Logger.getLogger(SynchroBufferAdapter.class.getName()) [static, private] |
Thread cern::laser::util::buffer::SynchroBufferAdapter::pullingThread [private] |
Referenced by SynchroBufferAdapter().
List cern::laser::util::buffer::SynchroBufferAdapter::queue [private] |
Referenced by createSynchroBufferListener(), fire(), isEmpty(), and SynchroBufferAdapter().
Boolean cern::laser::util::buffer::SynchroBufferAdapter::semaphore = Boolean.FALSE [private] |
Referenced by semNotify(), and semWait().
1.6.2