Public Member Functions | |
void | addListener (MessageListener< T > messageListener, int limit) |
boolean | getLatchMode () |
void | loop () throws InterruptedException |
MessageDispatcher (CircularBlockingDeque< LazyMessage< T >> lazyMessages, ExecutorService executorService) | |
void | setLatchMode (boolean enabled) |
Protected Member Functions | |
void | handleInterruptedException (InterruptedException e) |
Private Member Functions | |
SignalRunnable < MessageListener< T > > | newSignalRunnable (final LazyMessage< T > lazyMessage) |
Private Attributes | |
LazyMessage< T > | latchedMessage |
boolean | latchMode |
final CircularBlockingDeque < LazyMessage< T > > | lazyMessages |
final ListenerGroup < MessageListener< T > > | messageListeners |
final Object | mutex |
Static Private Attributes | |
static final boolean | DEBUG = false |
static final Log | log = LogFactory.getLog(MessageDispatcher.class) |
<T> | the message type |
Definition at line 36 of file MessageDispatcher.java.
org.ros.internal.transport.queue.MessageDispatcher< T >.MessageDispatcher | ( | CircularBlockingDeque< LazyMessage< T >> | lazyMessages, |
ExecutorService | executorService | ||
) | [inline] |
Definition at line 53 of file MessageDispatcher.java.
void org.ros.internal.transport.queue.MessageDispatcher< T >.addListener | ( | MessageListener< T > | messageListener, |
int | limit | ||
) | [inline] |
Adds the specified MessageListener to the internal ListenerGroup. If latchMode is
true
, the latchedMessage will be immediately dispatched to the specified MessageListener.
Definition at line 69 of file MessageDispatcher.java.
boolean org.ros.internal.transport.queue.MessageDispatcher< T >.getLatchMode | ( | ) | [inline] |
true
false
Definition at line 111 of file MessageDispatcher.java.
void org.ros.internal.transport.queue.MessageDispatcher< T >.handleInterruptedException | ( | InterruptedException | e | ) | [inline, protected] |
An InterruptedException was thrown.
Reimplemented from org.ros.concurrent.CancellableLoop.
Definition at line 128 of file MessageDispatcher.java.
void org.ros.internal.transport.queue.MessageDispatcher< T >.loop | ( | ) | throws InterruptedException [inline, virtual] |
The body of the loop. This will run continuously until the CancellableLoop has been interrupted externally or by calling cancel().
Implements org.ros.concurrent.CancellableLoop.
Definition at line 116 of file MessageDispatcher.java.
SignalRunnable<MessageListener<T> > org.ros.internal.transport.queue.MessageDispatcher< T >.newSignalRunnable | ( | final LazyMessage< T > | lazyMessage | ) | [inline, private] |
Returns a newly allocated SignalRunnable for the specified LazyMessage.
lazyMessage | the LazyMessage to signal MessageListeners with |
Definition at line 90 of file MessageDispatcher.java.
void org.ros.internal.transport.queue.MessageDispatcher< T >.setLatchMode | ( | boolean | enabled | ) | [inline] |
enabled | true
false
|
Definition at line 104 of file MessageDispatcher.java.
final boolean org.ros.internal.transport.queue.MessageDispatcher< T >.DEBUG = false [static, private] |
Definition at line 38 of file MessageDispatcher.java.
LazyMessage<T> org.ros.internal.transport.queue.MessageDispatcher< T >.latchedMessage [private] |
Definition at line 51 of file MessageDispatcher.java.
boolean org.ros.internal.transport.queue.MessageDispatcher< T >.latchMode [private] |
Definition at line 50 of file MessageDispatcher.java.
final CircularBlockingDeque<LazyMessage<T> > org.ros.internal.transport.queue.MessageDispatcher< T >.lazyMessages [private] |
Definition at line 41 of file MessageDispatcher.java.
final Log org.ros.internal.transport.queue.MessageDispatcher< T >.log = LogFactory.getLog(MessageDispatcher.class) [static, private] |
Definition at line 39 of file MessageDispatcher.java.
final ListenerGroup<MessageListener<T> > org.ros.internal.transport.queue.MessageDispatcher< T >.messageListeners [private] |
Definition at line 42 of file MessageDispatcher.java.
final Object org.ros.internal.transport.queue.MessageDispatcher< T >.mutex [private] |
Ensures that a messages are not dispatched twice when adding a listener while latch mode is enabled.
Reimplemented from org.ros.concurrent.CancellableLoop.
Definition at line 48 of file MessageDispatcher.java.