Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
org.ros.internal.transport.queue.MessageDispatcher< T > Class Reference
Inheritance diagram for org.ros.internal.transport.queue.MessageDispatcher< T >:
Inheritance graph
[legend]

List of all members.

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)

Detailed Description

Author:
damonkohler@google.com (Damon Kohler)
Parameters:
<T>the message type

Definition at line 36 of file MessageDispatcher.java.


Constructor & Destructor Documentation

org.ros.internal.transport.queue.MessageDispatcher< T >.MessageDispatcher ( CircularBlockingDeque< LazyMessage< T >>  lazyMessages,
ExecutorService  executorService 
) [inline]

Definition at line 53 of file MessageDispatcher.java.


Member Function Documentation

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.

See also:
ListenerGroup::add(Object, int)

Definition at line 69 of file MessageDispatcher.java.

boolean org.ros.internal.transport.queue.MessageDispatcher< T >.getLatchMode ( ) [inline]
Returns:
 true 
if latch mode is enabled,
 false 
otherwise

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.

Parameters:
lazyMessagethe LazyMessage to signal MessageListeners with
Returns:
the newly allocated SignalRunnable

Definition at line 90 of file MessageDispatcher.java.

void org.ros.internal.transport.queue.MessageDispatcher< T >.setLatchMode ( boolean  enabled) [inline]
Parameters:
enabled
 true 
if latch mode should be enabled,
 false 
otherwise

Definition at line 104 of file MessageDispatcher.java.


Member Data Documentation

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.


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


rosjava_core
Author(s):
autogenerated on Wed Aug 26 2015 16:06:51