package io.mycat.backend.postgresql.packet; import java.nio.ByteBuffer; public class ParameterStatus extends PostgreSQLPacket { /** * 数据包长度 */ private int length; private String key; private String value; @Override public int getLength() { return length; } @Override public char getMarker() { return PacketMarker.B_ParameterStatus.getValue(); } public static ParameterStatus parse(ByteBuffer buffer, int offset) { if ((char) buffer.get(offset) != PacketMarker.B_ParameterStatus.getValue()) { throw new IllegalArgumentException("this packet not is ParameterStatus"); } ParameterStatus ps = new ParameterStatus(); ps.length = buffer.getInt(offset + 1); byte[] bs = new byte[ps.length - 4]; for (int i = 0; i < bs.length; i++) { bs[i] = buffer.get(offset + 1 + 4 + i); } String _val = new String(bs, UTF8); String[] vs = _val.split(" "); ps.key = vs[0]; ps.value = _val.substring(ps.key.length()); return ps; } public String getKey() { return key; } public String getValue() { return value; } }