# Package madkit.kernel

package madkit.kernel
Provides classes that are fundamental to the design of MaDKit applications. This package is the heart of MaDKit. Especially, it contains the agent main classes: `AbstractAgent` and `Agent`. `AbstractAgent` is not threaded while `Agent` is. The former is useful to develop simulation applications and the later could be used where you need autonomy of execution.

Since:
  MaDKit 1.0
Version:
  5.0
Author:
  Fabien Michel, Olivier Gutknecht, Jacques Ferber

- Class
  Description
  AbstractAgent
  The super class of all MaDKit agents, v 5.
  AbstractAgent.ReturnCode
  This class enumerates all the return codes which could be obtained with essential methods of the `AbstractAgent` and `Agent` classes.
  AbstractAgent.State
  An agent state.
  Activator<A extends AbstractAgent>
  This class defines a tool for scheduling mechanism.
  Agent
  The super class of all MaDKit threaded agents, v 5.
  AgentAddress
  Identifies an agent within the artificial society.
  AgentLogger
  This class defines a logger specialized for MaDKit agents.
  ConversationID
  This class represents the conversation ID to which a message belongs.
  Gatekeeper
  This interface is implemented by objects which are used to verify if an agent is allowed to play a certain role in a group.
  KernelAddress
  This class represents a unique identifier for MaDKit kernel.
  KernelException
  Thrown to indicate that the agent is trying to use a method while not launched or already dead.
  Madkit
  MaDKit 5 booter class.
  Madkit.BooleanOption
  Option used to activate or disable features on startup.
  Madkit.LevelOption
  MaDKit options valued with a string representing a `Level` value.
  Madkit.Option
  MaDKit options which are valued with a string representing parameters.
  MadkitClassLoader
  The MadkitClassLoader is the class loader used by MaDKit.
  MadkitOption
  Every regular MaDKit Options implements this interface.
  MadkitProperties
  The properties object used within MaDKit.
  Message
  The generic MaDKit message class.
  Probe<A extends AbstractAgent>
  This class defines a watcher's generic probe.
  Scheduler
  Scheduler is the core agent for defining multi-agent based simulations.
  Scheduler.SimulationState
  A simulation state.
  Scheduler.SimulationTime
  Watcher
  This class defines a generic watcher agent.