package fm.liu.timo.server.session.handler; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import fm.liu.timo.mysql.packet.OkPacket; import fm.liu.timo.net.connection.BackendConnection; import fm.liu.timo.server.session.Session; /** * @author liuhuanting */ public class SavepointHandler extends SessionResultHandler { private OkPacket ok; public SavepointHandler(Session session, int count, OkPacket ok) { this.session = session; this.ok = ok; this.count = new AtomicInteger(count); } @Override public void ok(byte[] ok, BackendConnection con) { session.release(con); if (decrement()) { if (this.failed()) { session.clear(); onError(); return; } this.ok.write(session.getFront()); } } @Override public void error(byte[] error, BackendConnection con) { session.clear(); session.getFront().write(error); } @Override public void field(byte[] header, List<byte[]> fields, byte[] eof, BackendConnection con) {} @Override public void row(byte[] row, BackendConnection con) {} @Override public void eof(byte[] eof, BackendConnection con) {} }