madkit.kernel
Interface ReferenceableAgent

All Known Implementing Classes:
AbstractBee, Ant, Ball, Bee, BeeEnvironment, BeeWorldViewer, BlackHole, BluePlayer, Brain, CMExplorer, CMHome, CMRocketLauncher, CreationObserver, Creator, DebugViewer, FlavorViewer, FlavorViewer2, Gas, GasObserver, gecko_team_fortress, gecko_team_spy, gecko_team_warrior, GGG_Explorer, GGG_Home, GGG_RocketLauncher, GGG_WB, GGG_WB_Mobile, GridInitializer, GridPlayer, HomeKiller, JessBrain, LifeViewer, LifeViewer2, LifeViewer3, MapViewer, Mosquito, Observer, OlivXavBase, OlivXavDetector, OlivXavMissileLauncher, Ovni, PatchInitializer, Player, Predator, Prey, PythonBrain, QueenBee, RastaRocket, RedPlayer, ScriptedBrain, SoccerObserver, SoccerViewer, SpecialViewer, Star, Termite, Turtle, TurtleEnvironment, Viewer, Virus, Virus2, VirusObserver, Walker, WarbotEnvironment

public interface ReferenceableAgent

The ability for a MadKit agent to be spied or scheduled in synchronous mode is enabled by implementing the AccessibleAgent interface. Class that do not implement this interface will not be returned by the kernel to Watchers or Schedulers, and thus will not be able to play in reactive/synchronous systems. Note that this interface is empty. It is the responsability of the developer to decide if a MadKit agent can appear in reactive systems. As reactive system MadKit implementation envolves direct references manipulation, that could be a potential security hole for "classical" agents. Developers of reactive systems should not inherit from Agent or a subclass but from AbstractAgent. The Agent class defines a threaded implementation for agents, which is a definitive overkill for reactive systems in most cases. Just use a AbstractAgent subclass and appropriate Schedulers.

Version:
1.0
Author:
Olivier Gutknecht



Copyright © Madkit Team (O. Gutknecht, J. Ferber, F. Michel et al.) All Rights Reserved.