package jade.imtp.leap.nio; //#J2ME_EXCLUDE_FILE import java.io.IOException; import java.nio.ByteBuffer; /** * A buffertransformer is responsible for the preparation of data read from a socket or data to be written to a socket. Implementers are * responsible for preparing ({@link ByteBuffer#flip() }) the data returned. * @author Eduard Drenth: Logica, 24-sep-2009 * */ public interface BufferTransformer { /** * implementers can transform data available read from the socket. Any data left in the socketData argument will used in subsequent * {@link NIOJICPConnection#readPacket() } calls. * @param socketData * @return a buffer containing the transformed data * @throws IOException will be handled by the {@link BEManagementService} and if applicable {@link NIOMediator} */ public ByteBuffer postprocessBufferRead(ByteBuffer socketData) throws IOException; /** * implementers can transform the bytes before they are sent. When data in the dataToSend argument are left a IOException will be thrown by * {@link NIOJICPConnection#writePacket(jade.imtp.leap.JICP.JICPPacket) }. * @param dataToSend * @return the ByteBuffer to send * @throws IOException will be handled by the {@link BEManagementService} and if applicable {@link NIOMediator} */ public ByteBuffer preprocessBufferToWrite(ByteBuffer dataToSend) throws IOException; }