package DBProxy.MySQL.Protocol;
import java.util.ArrayList;
public class OK extends Packet {
public long affectedRows = 0;
public long lastInsertId = 0;
public long statusFlags = 0;
public long warnings = 0;
public void setStatusFlag(long flag) {
this.statusFlags |= flag;
}
public void removeStatusFlag(long flag) {
this.statusFlags &= ~flag;
}
public void toggleStatusFlag(long flag) {
this.statusFlags ^= flag;
}
public boolean hasStatusFlag(long flag) {
return ((this.statusFlags & flag) == flag);
}
public ArrayList<byte[]> getPayload() {
ArrayList<byte[]> payload = new ArrayList<byte[]>();
payload.add(Proto.build_byte(Flags.OK));
payload.add(Proto.build_lenenc_int(this.affectedRows));
payload.add(Proto.build_lenenc_int(this.lastInsertId));
payload.add(Proto.build_fixed_int(2, this.statusFlags));
payload.add(Proto.build_fixed_int(2, this.warnings));
return payload;
}
public static OK loadFromPacket(byte[] packet) {
OK obj = new OK();
Proto proto = new Proto(packet, 3);
obj.sequenceId = proto.get_fixed_int(1);
proto.get_filler(1);
obj.affectedRows = proto.get_lenenc_int();
obj.lastInsertId = proto.get_lenenc_int();
obj.statusFlags = proto.get_fixed_int(2);
obj.warnings = proto.get_fixed_int(2);
return obj;
}
}