package io.mycat.backend.postgresql.packet;
import io.mycat.backend.postgresql.utils.PIOUtils;
import java.nio.ByteBuffer;
// CancelRequest (F)
// Int32(16)
// 以字节计的消息长度。包括长度本身。
//
// Int32(80877102)
// 取消请求代码。选这个值是为了在高16位包含 1234, 低16位包含 5678。(为避免混乱,这个代码必须与协议版本号不同.)
//
// Int32
// 目标后端的进程号(PID)。
//
// Int32
// 目标后端的密钥(secret key)。
/***
* 取消请求
*
* @author Coollf
*
*/
public class CancelRequest extends PostgreSQLPacket {
private int length = 16;
private int cancelCode = 80877102;
private int pid;
private int secretKey;
public CancelRequest(int pid, int secretKey) {
this.pid = pid;
this.secretKey = secretKey;
}
@Override
public int getLength() {
return length;
}
@Override
public char getMarker() {
return 0;
}
public void write(ByteBuffer buffer) {
PIOUtils.SendInteger4(length, buffer);
PIOUtils.SendInteger4(cancelCode, buffer);
PIOUtils.SendInteger4(pid, buffer);
PIOUtils.SendInteger4(secretKey, buffer);
}
}