package jadex.micro;
import jadex.bridge.IComponentStep;
import jadex.bridge.IExternalAccess;
import jadex.bridge.MessageType;
import jadex.commons.IFuture;
import java.util.Map;
/**
* External access interface for micro agents.
*/
public interface IMicroExternalAccess extends IExternalAccess
{
/**
* Send a message.
* @param me The message.
* @param mt The message type.
*/
public IFuture sendMessage(Map me, MessageType mt);
// /**
// * Schedule a step of the agent.
// * May safely be called from external threads.
// * @param step Code to be executed as a step of the agent.
// */
// public IFuture scheduleStep(ICommand com);
// /**
// * Schedule a step of the agent.
// * May safely be called from external threads.
// * @param step Code to be executed as a step of the agent.
// * @return The result of the step.
// */
// public IFuture scheduleResultStep(IResultCommand com);
// todo: support with IResultCommand also?!
/**
* Wait for an specified amount of time.
* @param time The time.
* @param run The runnable.
*/
public IFuture waitFor(final long time, IComponentStep step);
// todo: support with IResultCommand also?!
/**
* Wait for the next tick.
* @param time The time.
*/
public IFuture waitForTick(IComponentStep step);
}