JInternalFrame internalFrame
AbstractAgent agent
AbstractAgent myAgent
JLabel network
JDesktopPane desktopPane
OutputStream out
JTextArea outField
AbstractAgent myAgent
ButtonGroup logGroup
ButtonGroup warningGroup
Action myAction
AbstractAgent myAgent
AgentClassFilter filter
AbstractAgent myAgent
AbstractAgent myAgent
AtomicReference<V> state
int _hashCode
boolean hasGUI
String name
AtomicBoolean alive
BlockingQueue<E> messageBox
AgentLogger logger
logger
should be used to print messages and trace the agent's life cycle.
According to a log level, the messages will be displayed in the console and/or the GUI
and/or a file according to the settings.
Thanks to the logging mechanism of the SDK, various log level could be used.
The following idiom should be used because Logger
is set to null
when AgentLogger.setLevel(Level)
is used with Level.OFF
. This allows
to efficiently optimize the runtime speed when they are a lot of agents
(e.g. in a simulation mode). Indeed, thanks to this idiom, useless strings will not
be built, thus saving a lot of time.
if (logger != null) logger.info("info message");
AbstractAgent.getLogger()
should not be used here because it always returns a non null
logger.Thread myThread
madkit.kernel.AgentExecutor agentExecutor
boolean isDaemon
KernelAddress kernelAddress
int _hashCode
madkit.kernel.Role roleObject
String cgr
int id
KernelAddress origin
AgentAddress receiver
AgentAddress sender
ConversationID conversationID
Scheduler.SimulationState simulationState
Set<E> activators
Action run
Action step
Action speedUp
Action speedDown
int delay
DefaultBoundedRangeModel speedModel
double GVT
double simulationDuration
madkit.kernel.GVTModel gvtModel
Object content
AbstractAgent source
Message message
AgentAddress source
JComponent displayPane
boolean synchronousPainting
boolean renderingOn
JFrame frame
int renderingInterval
int counter
Action rendering
Action synchroPainting
JToolBar toolBar
Fabien Michel, Olivier Gutknecht, Jacques Ferber