cz.cuni.amis.pogamut.ut2004.communication.worldview
Class UT2004LockableWorldView
java.lang.Object
cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView
cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView
cz.cuni.amis.pogamut.base3d.worldview.impl.VisionWorldView
cz.cuni.amis.pogamut.base3d.worldview.impl.BatchAwareWorldView
cz.cuni.amis.pogamut.ut2004.communication.worldview.UT2004WorldView
cz.cuni.amis.pogamut.ut2004.communication.worldview.UT2004LockableWorldView
- All Implemented Interfaces:
- ILockableWorldView, IWorldChangeEventInput, IWorldView, IComponent, ILockableVisionWorldView, IVisionWorldView
public class UT2004LockableWorldView
- extends UT2004WorldView
- implements ILockableVisionWorldView
Lockable word view.
Contains GameBots2004 correct locking of the worldview.
All messages are processed always in batches (all messages between EndMessages are one batch) meaning that the world view is always
correct!
When worldview is lock()ed it postpones the events until unlock()ed, which is triggering
raising all events that came from the lock().
The world view is unlocked from the beginning.
All those locking mechanisms start working when the first BEGIN message comes.
Method Summary |
boolean |
hasBatchesToProcess()
|
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.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 |
WORLDVIEW_DEPENDENCY
public static final java.lang.String WORLDVIEW_DEPENDENCY
- See Also:
- Constant Field Values
UT2004LockableWorldView
@Inject
public UT2004LockableWorldView(ComponentDependencies dependencies,
IMediator mediator,
IComponentBus bus,
IAgentLogger log)
lock
public void lock()
throws ComponentNotRunningException
- When the world view is locked - no batches are processes until unlocked.
- Specified by:
lock
in interface ILockableWorldView
- Throws:
ComponentNotRunningException
unlock
public void unlock()
throws ComponentNotRunningException
- 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
- Throws:
ComponentNotRunningException
isLocked
public boolean isLocked()
- Description copied from interface:
ILockableWorldView
- Whether the worldview is locked.
- Specified by:
isLocked
in interface ILockableWorldView
- Returns:
hasBatchesToProcess
public boolean hasBatchesToProcess()
notify
public void notify(IWorldChangeEvent event)
- Implements locking logic.
- Specified by:
notify
in interface IWorldChangeEventInput
- Overrides:
notify
in class BatchAwareWorldView