|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||

java.lang.Objectcz.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.usar2004.communication.worldview.USAR2004WorldView
cz.cuni.amis.pogamut.usar2004.communication.worldview.USAR2004SyncLockableWorldView
public class USAR2004SyncLockableWorldView
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().
lock() method here blocks until the END message of the batch is hit, then the world view is considered to be fully locked and let the lock() continue. You may use it to create correct sync bot. (just lock() the world view before your logic and unlock() the world view after the logic finishes)
The world view is unlocked from the beginning.
The locking mechanism starts to work with the first BeginMessage. (To let all other events to be processed automatically during the handshake.)
, Jimmy
UT2004LockableWorldView| Field Summary | |
|---|---|
static 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 | |
|---|---|
USAR2004SyncLockableWorldView(cz.cuni.amis.pogamut.base.component.controller.ComponentDependencies dependencies,
cz.cuni.amis.pogamut.base.communication.mediator.IMediator mediator,
cz.cuni.amis.pogamut.base.component.bus.IComponentBus bus,
cz.cuni.amis.pogamut.base.utils.logging.IAgentLogger log)
|
|
| Method Summary | |
|---|---|
boolean |
isInLock()
|
boolean |
isLocked()
|
void |
lock()
When the world view is locked - no batches are processes until unlocked. |
void |
notify(cz.cuni.amis.pogamut.base.communication.translator.event.IWorldChangeEvent event)
Implements locking logic. |
protected void |
prePause()
|
protected void |
preStop()
|
protected void |
resume()
|
protected void |
start(boolean startPaused)
|
protected void |
stop()
|
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.VisionWorldView |
|---|
addVisibleObject, cleanUp, getAllVisible, getAllVisible, getVisible, getVisible, objectAppeared, objectCreated, objectDestroyed, objectDisappeared, objectUpdatedEvent, removeVisibleObject |
| Methods inherited from class cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldView |
|---|
innerNotify, notifyAfterPropagation, notifyImmediately, objectUpdated, raiseEvent |
| Methods inherited from class cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView |
|---|
addEventListener, addObjectListener, addObjectListener, addObjectListener, addObjectListener, addWorldObject, get, get, get, getAll, getAll, getComponentId, getEventBus, getLog, getSingle, isListening, isListening, isListening, isListening, isListening, isListening, isPaused, isRunning, kill, pause, removeEventListener, removeListener, removeObjectListener, removeObjectListener, removeObjectListener, removeObjectListener, removeWorldObject, reset, 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.base3d.worldview.IVisionWorldView |
|---|
getAllVisible, getAllVisible, getVisible, getVisible |
| Methods inherited from interface cz.cuni.amis.pogamut.base.communication.worldview.IWorldView |
|---|
addEventListener, addObjectListener, addObjectListener, addObjectListener, addObjectListener, get, 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 |
|---|
notifyAfterPropagation, notifyImmediately |
| Methods inherited from interface cz.cuni.amis.pogamut.base.component.IComponent |
|---|
getComponentId |
| Field Detail |
|---|
public static final String WORLDVIEW_DEPENDENCY
| Constructor Detail |
|---|
@Inject
public USAR2004SyncLockableWorldView(cz.cuni.amis.pogamut.base.component.controller.ComponentDependencies dependencies,
cz.cuni.amis.pogamut.base.communication.mediator.IMediator mediator,
cz.cuni.amis.pogamut.base.component.bus.IComponentBus bus,
cz.cuni.amis.pogamut.base.utils.logging.IAgentLogger log)
| Method Detail |
|---|
public void lock()
throws cz.cuni.amis.utils.exception.PogamutInterruptedException,
cz.cuni.amis.pogamut.base.component.bus.exception.ComponentNotRunningException
lock in interface cz.cuni.amis.pogamut.base.communication.worldview.ILockableWorldViewcz.cuni.amis.utils.exception.PogamutInterruptedException
cz.cuni.amis.pogamut.base.component.bus.exception.ComponentNotRunningException
public void unlock()
throws cz.cuni.amis.pogamut.base.component.bus.exception.ComponentNotRunningException
unlock in interface cz.cuni.amis.pogamut.base.communication.worldview.ILockableWorldViewcz.cuni.amis.pogamut.base.component.bus.exception.ComponentNotRunningExceptionpublic boolean isLocked()
isLocked in interface cz.cuni.amis.pogamut.base.communication.worldview.ILockableWorldViewpublic boolean isInLock()
public void notify(cz.cuni.amis.pogamut.base.communication.translator.event.IWorldChangeEvent event)
notify in interface cz.cuni.amis.pogamut.base.communication.worldview.IWorldChangeEventInputnotify in class cz.cuni.amis.pogamut.base.communication.worldview.impl.EventDrivenWorldViewprotected void start(boolean startPaused)
start in class cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldViewprotected void preStop()
preStop in class cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldViewprotected void prePause()
prePause in class cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldViewprotected void resume()
resume in class cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldViewprotected void stop()
stop in class cz.cuni.amis.pogamut.base.communication.worldview.impl.AbstractWorldView
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||