/*
 * 
 */
package cz.vutbr.feec.session.gnp;

import cz.vutbr.feec.packets.ttp.FTAPacket;
import cz.vutbr.feec.packets.ttp.FTCPacket;
import cz.vutbr.feec.packets.ttp.FTSPacket;
import cz.vutbr.feec.packets.ttp.LMSPacket;
import cz.vutbr.feec.packets.ttp.LMVPacket;

/**
 * The listener interface for receiving send/receive events.
 * The class that is interested in processing a event
 * event implements this interface, and the object created
 * with that class is registered with a component using the
 * component's <code>addEventListener<code> method. When
 * the event event occurs, that object's appropriate
 * method is invoked.
 * 
 * @see EventEvent
 */
public interface EventListener {
	
	/**
	 * Received the FTA packet.
	 * 
	 * @param packet the packet
	 */
	public void received(FTAPacket packet);

	/**
	 * Sent the FTA packet.
	 * 
	 * @param packet the packet
	 */
	public void sent(FTAPacket packet);

	/**
	 * Received the FT packet.
	 * 
	 * @param packet the packet
	 */
	public void received(FTCPacket packet);

	/**
	 * Sent the FTC packet.
	 * 
	 * @param packet the packet
	 */
	public void sent(FTCPacket packet);

	/**
	 * Received the LMS packet.
	 * 
	 * @param packet the packet
	 */
	public void received(LMSPacket packet);

	/**
	 * Sent the LMS packet.
	 * 
	 * @param packet the packet
	 */
	public void sent(LMSPacket packet);

	/**
	 * Received the LMV packet.
	 * 
	 * @param packet the packet
	 */
	public void received(LMVPacket packet);

	/**
	 * Sent the LMV packet.
	 * 
	 * @param packet the packet
	 */
	public void sent(LMVPacket packet);

	/**
	 * Received the FTS packet.
	 * 
	 * @param packet the packet
	 */
	public void received(FTSPacket packet);

	/**
	 * Sent FTS packet.
	 * 
	 * @param packet the packet
	 */
	public void sent(FTSPacket packet);

}
