package jade.core.messaging;
import jade.core.AID;
import jade.core.IMTPException;
import jade.core.ServiceException;
import jade.core.ServiceHelper;
/**
* ServiceHelper provided by the MessagingService to make additional messaging features
* available to agents
*/
public interface MessagingHelper extends ServiceHelper {
/**
* The interface to be implemented by classes that need to be notified about
* aliases creation/deletion
*/
public static interface AliasListener {
void handleNewAlias(AID alias, AID agent);
void handleDeadAlias(AID alias, AID agent);
}
/**
* Create a new alias of the agent associated to this helper
* @param alias The alias to be created
*/
void createAlias(String alias) throws IMTPException, ServiceException;
/**
* Delete an alias of the agent associated to this helper
* @param alias The alias to be deleted
*/
void deleteAlias(String alias) throws IMTPException, ServiceException;
/**
* Register a listener that will be notified about alias creation/deletion.
* This methods can only be invoked in a Main Container. Invoking that method
* in a peripheral container results in a ServiceException
* @param l The listener to be registered
*/
void registerAliasListener(AliasListener l) throws ServiceException;
/**
* De-register a listener previously registered to be notified about alias creation/deletion.
* This methods can only be invoked in a Main Container. Invoking that method
* in a peripheral container results in a ServiceException
* @param l The listener to be de-registered
*/
void deregisterAliasListener(AliasListener l) throws ServiceException;
}