cz.cuni.amis.pogamut.base3d.worldview.impl
Class LockableBatchAwareWorldView

java.lang.Object
  extended by cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView
      extended by cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView
          extended by cz.cuni.amis.pogamut.base3d.worldview.impl.VisionWorldView
              extended by cz.cuni.amis.pogamut.base3d.worldview.impl.BatchAwareWorldView
                  extended by cz.cuni.amis.pogamut.base3d.worldview.impl.LockableBatchAwareWorldView
All Implemented Interfaces:
ILockableWorldView, IWorldChangeEventInput, IWorldView, IComponent, IVisionWorldView

public abstract class LockableBatchAwareWorldView
extends BatchAwareWorldView
implements ILockableWorldView


Field Summary
static java.lang.String WORLDVIEW_DEPENDENCY
           
 
Fields inherited from class cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView
notifyEventsList, receiveEventProcessing
 
Fields inherited from class cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView
COMPONENT_ID, control, controller, eventBus, log
 
Constructor Summary
LockableBatchAwareWorldView(ComponentDependencies dependencies, IComponentBus bus, IAgentLogger log)
           
 
Method Summary
protected abstract  boolean isBatchBeginEvent(IWorldChangeEvent evt)
          Is this event a batch begin event? It is needed for the locking to be working correctly.
 boolean isLocked()
          Whether the worldview is locked.
 void lock()
          When the world view is locked - no batches are processes until unlocked.
 void notify(IWorldChangeEvent event)
          Implements locking logic.
 void unlock()
          Unlocks the world view - triggers processing of all events till the last EndMessage that came between lock() / unlock() calls.
 
Methods inherited from class cz.cuni.amis.pogamut.base3d.worldview.impl.BatchAwareWorldView
batchAwareWorldViewNotify, hasObjectsToProcess, isBatchEndEvent, notifyImmediately, objectAppeared, objectDisappeared, setDisappearedFlag
 
Methods inherited from class cz.cuni.amis.pogamut.base3d.worldview.impl.VisionWorldView
addVisibleObject, cleanUp, getAllVisible, getAllVisible, getVisible, getVisible, objectCreated, objectDestroyed, objectUpdatedEvent, removeVisibleObject
 
Methods inherited from class cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView
innerNotify, objectUpdated, raiseEvent
 
Methods inherited from class cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView
addEventListener, addObjectListener, addObjectListener, addObjectListener, addObjectListener, addWorldObject, get, get, getAll, getAll, getComponentId, getEventBus, getLog, getSingle, isListening, isListening, isListening, isListening, isListening, isListening, isPaused, isRunning, kill, pause, prePause, preStop, removeEventListener, removeListener, removeObjectListener, removeObjectListener, removeObjectListener, removeObjectListener, removeWorldObject, reset, resume, start, stop, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface cz.cuni.amis.pogamut.base.communication.worldview.IWorldView
addEventListener, addObjectListener, addObjectListener, addObjectListener, addObjectListener, get, get, getAll, getAll, getEventBus, getSingle, isListening, isListening, isListening, isListening, isListening, isListening, removeEventListener, removeListener, removeObjectListener, removeObjectListener, removeObjectListener, removeObjectListener
 
Methods inherited from interface cz.cuni.amis.pogamut.base.communication.worldview.IWorldChangeEventInput
notifyImmediately
 
Methods inherited from interface cz.cuni.amis.pogamut.base.component.IComponent
getComponentId
 

Field Detail

WORLDVIEW_DEPENDENCY

public static final java.lang.String WORLDVIEW_DEPENDENCY
See Also:
Constant Field Values
Constructor Detail

LockableBatchAwareWorldView

public LockableBatchAwareWorldView(ComponentDependencies dependencies,
                                   IComponentBus bus,
                                   IAgentLogger log)
Method Detail

isBatchBeginEvent

protected abstract boolean isBatchBeginEvent(IWorldChangeEvent evt)
Is this event a batch begin event? It is needed for the locking to be working correctly.

Specified by:
isBatchBeginEvent in class BatchAwareWorldView
Parameters:
evt -
Returns:
true if this is a batch ending event

lock

public void lock()
When the world view is locked - no batches are processes until unlocked.

Specified by:
lock in interface ILockableWorldView

unlock

public void unlock()
Unlocks the world view - triggers processing of all events till the last EndMessage that came between lock() / unlock() calls.

Specified by:
unlock in interface ILockableWorldView

isLocked

public boolean isLocked()
Description copied from interface: ILockableWorldView
Whether the worldview is locked.

Specified by:
isLocked in interface ILockableWorldView
Returns:

notify

public void notify(IWorldChangeEvent event)
Implements locking logic.

Specified by:
notify in interface IWorldChangeEventInput
Overrides:
notify in class BatchAwareWorldView