org.jactr.modules.pm.common.afferent
Class DefaultAfferentObjectListener
java.lang.Object
org.jactr.modules.pm.common.afferent.DefaultAfferentObjectListener
- All Implemented Interfaces:
- java.lang.Runnable, org.commonreality.event.ICommonRealityListener, org.commonreality.object.manager.event.IAfferentListener, org.commonreality.object.manager.event.IObjectListener<org.commonreality.object.IAfferentObject>
- Direct Known Subclasses:
- DelayableAfferentObjectListener
public class DefaultAfferentObjectListener
- extends java.lang.Object
- implements org.commonreality.object.manager.event.IAfferentListener, java.lang.Runnable
default afferent listener that instead of routing events directly, queues
them up and then posts a process event to handle the events. This way, if
afferent events are coming faster than the listener can actually process
them, they get queued so that only the most recent update needs to be
processed
- Author:
- developer
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DefaultAfferentObjectListener
public DefaultAfferentObjectListener(org.commonreality.agents.IAgent agent,
java.util.concurrent.Executor executor)
add
public void add(IAfferentObjectListener encoder)
remove
public void remove(IAfferentObjectListener encoder)
processExistingObjects
public void processExistingObjects()
run
public final void run()
- actually process the new adds, updates, and removes
- Specified by:
run in interface java.lang.Runnable
getPendingUpdates
public int getPendingUpdates()
- number of updates queued
- Returns:
getLastChangeTime
public double getLastChangeTime()
objectsAdded
public void objectsAdded(org.commonreality.object.manager.event.IObjectEvent<org.commonreality.object.IAfferentObject,?> addEvent)
- Specified by:
objectsAdded in interface org.commonreality.object.manager.event.IObjectListener<org.commonreality.object.IAfferentObject>
- See Also:
IObjectListener.objectsAdded(org.commonreality.object.manager.event.IObjectEvent)
objectsRemoved
public void objectsRemoved(org.commonreality.object.manager.event.IObjectEvent<org.commonreality.object.IAfferentObject,?> removeEvent)
- Specified by:
objectsRemoved in interface org.commonreality.object.manager.event.IObjectListener<org.commonreality.object.IAfferentObject>
- See Also:
IObjectListener.objectsRemoved(org.commonreality.object.manager.event.IObjectEvent)
objectsUpdated
public void objectsUpdated(org.commonreality.object.manager.event.IObjectEvent<org.commonreality.object.IAfferentObject,?> updateEvent)
- Specified by:
objectsUpdated in interface org.commonreality.object.manager.event.IObjectListener<org.commonreality.object.IAfferentObject>
- See Also:
IObjectListener.objectsUpdated(org.commonreality.object.manager.event.IObjectEvent)