public interface ISharedComponentControlHelper extends IComponentControlHelper
We have purposefully created specific helper interface for the control of the IComponent. That's because
the designer of the component might want to hide its start/stop/kill method (e.g. they should not be accessible
by anyone). This is typical when using ISharedComponentController to automatically start/stop the component
based on its dependencies.
So if you want to hide these methods from the public interface of your component, than create private inner class inside your component and implement how the component is starting/stopping/killing itself possibly by recalling private methods of the component.
This helper is similar but quite different from the simpler IComponentControlHelper as it covers more lifecycle cases
which ISharedComponent has over simple IComponent.
| Modifier and Type | Method and Description |
|---|---|
void |
kill()
Kills the component in ruthless way.
|
void |
localKill(IAgentId agentId)
Kills the component for the agent identified by 'agentId'.
|
void |
localPause(IAgentId agentId)
Pauses the component for agent identified by 'agentId'.
|
void |
localPrePause(IAgentId agentId)
Called before the
IPausingEvent of the component is broadcast into ILifecycleBus of
the agent identified by 'agentId'. |
void |
localPreResume(IAgentId agentId)
Called before the
IResumingEvent of the component is broadcast into ILifecycleBus of
the agent identified by 'agentId'. |
void |
localPreStart(IAgentId agentId)
Called before the
IStartingEvent of the component is broadcast into ILifecycleBus of
the agent identified by 'agentId'. |
void |
localPreStartPaused(IAgentId agentId)
Called before
IStartingPausedEvent of the component is broadcast into ILifecycleBus of
the agent identified by 'agentId'. |
void |
localPreStop(IAgentId agentId)
Called before the
IStoppingEvent of the component is broadcast into ILifecycleBus of
the agent identified by 'agentId'. |
void |
localReset(IAgentId agentId)
Called whenever
IResetEvent is caught at the ILifecycleBus of the agent identified by 'agentId'. |
void |
localResume(IAgentId agentId)
Resumes the component for the agent identified by 'agentId'.
|
void |
localStart(IAgentId agentId)
The component is being started inside the
ILifecycleBus of the agent identified by 'agentId'. |
void |
localStartPaused(IAgentId agentId)
Starts the component for the agent identified by 'agentId' but it assumes that the component just prepares whatever data
structures it needs / make connections / handshake whatever it needs with the environment / etc.
|
void |
localStop(IAgentId agentId)
Stops the component for the agent identified by 'agentId'.
|
void |
pause()
Pauses the component.
|
void |
prePause()
Called whenever there is no running dependencies and the rest is going to be paused or is paused.
|
void |
preResume()
Called whenever some of paused dependencies is starting / is started.
|
void |
preStart()
Called whenever starting dependencies of some (first) agent becomes satisfied.
|
void |
preStartPaused()
Called whenever starting dependencies of some (first) agent becomes satisfied, should start the component
into paused state.
|
void |
preStop()
Called whenever there is no running dependencies and the rest is going to be stopped.
|
void |
reset()
Called whenever
IResetEvent is caught in any of stopped bus. |
void |
resume()
Resumes the component.
|
void |
start()
Called to start the component whenever starting dependencies of some (first) agent becomes satisfied.
|
void |
startPaused()
Starts the component whenever starting dependencies of some (first) agent becomes satisfied.
|
void |
stop()
Stops the component.
|
void preStart()
throws cz.cuni.amis.utils.exception.PogamutException
Similar to IComponentControlHelper.preStart() (sort of a global version).
This method or preStartPaused() method is called prior to
any localXXX() methods are called. Which means that you are always informed that your component
should start before it "accepts" starts from respective agents.
NOTE: this method does not have much meaning for ISharedComponent as method start()
is called right after ... nothing is taking place between these two calls.
preStart in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid start()
throws cz.cuni.amis.utils.exception.PogamutException
Similar to IComponentControlHelper.start() (sort of a global version).
This method or startPaused() method is called prior to
any localXXX() methods are called. Which means that you are always informed that your component
should start before it "accepts" starts from respective agents.
start in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid preStartPaused()
throws cz.cuni.amis.utils.exception.PogamutException
You may need to prepare some stuff before starting event is generated.
Similar to IComponentControlHelper.preStartPaused() (sort of a global version).
NOTE: this method does not have much meaning for ISharedComponent as method startPaused()
is called right after ... nothing is taking place between these two calls.
preStartPaused in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid startPaused()
throws cz.cuni.amis.utils.exception.PogamutException
Similar to IComponentControlHelper.startPaused() (sort of a global version).
startPaused in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid prePause()
throws cz.cuni.amis.utils.exception.PogamutException
Similar to IComponentControlHelper.prePause() (sort of a global version).
NOTE: this method does not have much meaning for ISharedComponent as method pause()
is called right after ... nothing is taking place between these two calls.
prePause in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid pause()
throws cz.cuni.amis.utils.exception.PogamutException
Called whenever IPausingEvent is caught from one of the dependencies.
Similar to IComponentControlHelper.pause() (sort of a global version).
pause in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid preResume()
throws cz.cuni.amis.utils.exception.PogamutException
Similar to IComponentControlHelper.preResume() (sort of a global version).
NOTE: this method does not have much meaning for ISharedComponent as method resume()
is called right after ... nothing is taking place between these two calls.
preResume in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid resume()
throws cz.cuni.amis.utils.exception.PogamutException
Similar to IComponentControlHelper.resume() (sort of a global version).
resume in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid preStop()
throws cz.cuni.amis.utils.exception.PogamutException
Similar to IComponentControlHelper.preStop() (sort of a global version).
preStop in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid stop()
throws cz.cuni.amis.utils.exception.PogamutException
Similar to IComponentControlHelper.stop() (sort of a global version).
NOTE: this method does not have much meaning for ISharedComponent as method stop()
is called right after ... nothing is taking place between these two calls.
stop in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid kill()
Called whenever IFatalErrorEvent is caught in any agent's bus.
Must not throw any exception whatsoever.
Similar to IComponentControlHelper.kill() (sort of a global version).
kill in interface IComponentControlHelpervoid reset()
throws cz.cuni.amis.utils.exception.PogamutException
IResetEvent is caught in any of stopped bus.
It should reinitialize data structures of the
component so it can be started again.
Should throw an exception in case that the component can't be reseted.
Similar to IComponentControlHelper.reset() (sort of a global version).
reset in interface IComponentControlHelpercz.cuni.amis.utils.exception.PogamutExceptionvoid localPreStart(IAgentId agentId) throws cz.cuni.amis.utils.exception.PogamutException
IStartingEvent of the component is broadcast into ILifecycleBus of
the agent identified by 'agentId'.
You may need to prepare some stuff before starting event is generated
agentId - cz.cuni.amis.utils.exception.PogamutExceptionvoid localStart(IAgentId agentId) throws cz.cuni.amis.utils.exception.PogamutException
ILifecycleBus of the agent identified by 'agentId'.
It should throw exception, if it can not start for the particular agent.cz.cuni.amis.utils.exception.PogamutExceptionvoid localPreStartPaused(IAgentId agentId) throws cz.cuni.amis.utils.exception.PogamutException
IStartingPausedEvent of the component is broadcast into ILifecycleBus of
the agent identified by 'agentId'.
You may need to prepare some stuff before starting event is generated.
agentId - cz.cuni.amis.utils.exception.PogamutExceptionvoid localStartPaused(IAgentId agentId) throws cz.cuni.amis.utils.exception.PogamutException
It should not let the agent to perform designers work (i.e., UT2004 bots should not start playing in the game).
After this call, the component should behave as it would have been paused with IComponentControlHelper.pause().
agentId - cz.cuni.amis.utils.exception.PogamutExceptionvoid localPrePause(IAgentId agentId) throws cz.cuni.amis.utils.exception.PogamutException
IPausingEvent of the component is broadcast into ILifecycleBus of
the agent identified by 'agentId'.
You may need to pre-clean some stuff.
agentId - cz.cuni.amis.utils.exception.PogamutExceptionvoid localPause(IAgentId agentId) throws cz.cuni.amis.utils.exception.PogamutException
Called whenever IPausingEvent is caught from one of the dependencies of the given agent.
agentId - cz.cuni.amis.utils.exception.PogamutExceptionvoid localPreResume(IAgentId agentId) throws cz.cuni.amis.utils.exception.PogamutException
IResumingEvent of the component is broadcast into ILifecycleBus of
the agent identified by 'agentId'.
You may need to pre-clean some stuff.
agentId - cz.cuni.amis.utils.exception.PogamutExceptionvoid localResume(IAgentId agentId) throws cz.cuni.amis.utils.exception.PogamutException
Called whenever IPausingEvent is caught from one of the dependencies of the given agent.
agentId - cz.cuni.amis.utils.exception.PogamutExceptionvoid localPreStop(IAgentId agentId) throws cz.cuni.amis.utils.exception.PogamutException
IStoppingEvent of the component is broadcast into ILifecycleBus of
the agent identified by 'agentId'.
You may need to pre-clean some stuff.
agentId - cz.cuni.amis.utils.exception.PogamutExceptionvoid localStop(IAgentId agentId) throws cz.cuni.amis.utils.exception.PogamutException
It should throw an exception if the component can't be stopped for the given agent.
agentId - cz.cuni.amis.utils.exception.PogamutExceptionvoid localKill(IAgentId agentId)
Called whenever IFatalErrorEvent is caught for a given agent.
Must not throw any exception whatsoever.
agentId - void localReset(IAgentId agentId)
IResetEvent is caught at the ILifecycleBus of the agent identified by 'agentId'.
It should reinitialize data structures of the component so it can be usable by the given agent again.
Should throw an exception in case that the component can't be reseted for a given agent.
agentId - cz.cuni.amis.utils.exception.PogamutExceptionCopyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.