package lsr.common.nio;
import java.nio.ByteBuffer;
/**
* Represents object responsible for handling one packet. It provides
* <code>ByteBuffer</code> which will be filled up with data by
* <code>ReaderAndWriter</code>. When the entire buffer will be received, then
* finished method is called by <code>ReaderAndWriter</code>.
*
* @see ByteBuffer
* @see ReaderAndWriter
*/
public interface PacketHandler {
/**
* Returns byte buffer which should be filled with data to process it.
*
* @return byte buffer
*/
ByteBuffer getByteBuffer();
/**
* Process received packet of data. This is called after filling entire byte
* buffer with data.
*
* @throws InterruptedException
*/
void finished() throws InterruptedException;
}