All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jadex.bdiv3x.runtime.IEventbase Maven / Gradle / Ivy

package jadex.bdiv3x.runtime;

import jadex.commons.future.IFuture;



/**
 *  Interface for an event base.
 */
public interface IEventbase extends IElement
{
	/**
	 *  Send a message after some delay.
	 *  @param me	The message event.
	 *  @return The filter to wait for an answer.
	 */
	public IFuture sendMessage(IMessageEvent me);

	/**
	 *  Dispatch an event.
	 *  @param event The event.
	 */
	public void dispatchInternalEvent(IInternalEvent event);

	/**
	 *  Create a new message event.
	 *  @return The new message event.
	 */
	public IMessageEvent createMessageEvent(String type);

	/**
	 *  Create a reply to a message event.
	 *  @param event	The received message event.
	 *  @param msgeventtype	The reply message event type.
	 *  @return The reply event.
	 */
	public IMessageEvent createReply(IMessageEvent event, String msgeventtype);
	
	/**
	 *  Create a new intenal event.
	 *  @return The new intenal event.
	 */
	public IInternalEvent createInternalEvent(String type);

	/**
	 *  Create a legacy internal event (not explicitly defined in ADF).
	 *  @return The new internal event.
	 *  @deprecated Convenience method for easy conversion to the new Jadex version.
	 *  Will be removed in later releases.
	 * /
	public IInternalEvent createInternalEvent(String type, Object content);*/

	/**
	 *  Register a new event model.
	 *  @param mevent The event model.
	 */
//	public void registerEvent(IMEvent mevent);

	/**
	 *  Register a new event reference model.
	 *  @param meventref The event reference model.
	 */
//	public void registerEventReference(IMEventReference meventref);

	/**
	 *  Deregister an event model.
	 *  @param mevent The event model.
	 */
//	public void deregisterEvent(IMEvent mevent);

	/**
	 *  Deregister an event reference model.
	 *  @param meventref The event reference model.
	 */
//	public void deregisterEventReference(IMEventReference meventref);
	
//	/**
//	 *  Register a conversation or reply_with to be able
//	 *  to send back answers to the source capability.
//	 *  @param msgevent The message event.
//	 *  todo: indexing for msgevents for speed.
//	 */
//	public void registerMessageEvent(IMessageEvent mevent);
//	
//	/**
//	 *  Remove a registered message event.
//	 *  @param msgevent The message event.
//	 */
//	public void deregisterMessageEvent(IMessageEvent mevent);
		
	//-------- listeners --------

//	/**
//	 *  Add a internal event listener.
//	 *  @param type	The internal event type.
//	 *  @param listener The internal event listener.
//	 *  @param async True, if the notification should be done on a separate thread.
//	 */
//	public void addInternalEventListener(String type, IInternalEventListener listener);
//	
//	/**
//	 *  Remove a internal event listener.
//	 *  @param type	The internal event type.
//	 *  @param listener The internal event listener.
//	 */
//	public void removeInternalEventListener(String type, IInternalEventListener listener);
//	
//	/**
//	 *  Add a message event listener.
//	 *  @param type	The message event type.
//	 *  @param listener The message event listener.
//	 *  @param async True, if the notification should be done on a separate thread.
//	 */
//	public void addMessageEventListener(String type, IMessageEventListener listener);
//	
//	/**
//	 *  Remove a message event listener.
//	 *  @param type	The message event type.
//	 *  @param listener The message event listener.
//	 */
//	public void removeMessageEventListener(String type, IMessageEventListener listener);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy