package fm.liu.timo.mysql.packet; import java.nio.ByteBuffer; import fm.liu.timo.net.connection.FrontendConnection; public abstract class ResultSetPacket extends MySQLServerPacket { /** * 对于结果集包,禁止直接调用不关联buffer的write方法 */ public void write(FrontendConnection c) { throw new RuntimeException("ResultSetPacket not support write(FrontendConnection c)"); } /** * 把数据包写到buffer中,如果buffer满了就把buffer通过前端连接写出 (writeSocketIfFull=true)。 */ public ByteBuffer write(ByteBuffer buffer, FrontendConnection c) { int size = calcPacketSize(); buffer = c.checkWriteBuffer(buffer, MySQLPacket.PACKET_HEADER_SIZE + size); write(buffer, size); return buffer; } }