package im.rosetta.network.codec; import io.orprotocol.ProtocolException; import io.orprotocol.buffer.Buffer; import io.orprotocol.codec.Codec; import io.orprotocol.tlv.read.TlvReader; import io.orprotocol.tlv.write.TlvWriter; import im.rosetta.network.packet.PacketSearch; // Auto-generated by RCC (Rosetta Code Compiler). Do not edit manually. public class PacketSearchCodec implements Codec { private static final int F_PRIVATE_KEY = 1; private static final int F_SEARCH = 2; private static final int F_SEARCH_INFO = 3; @Override public PacketSearch decode(Buffer data, int version) throws ProtocolException { byte[] payload = data.readBytes(data.remaining()); TlvReader reader = new TlvReader(payload); PacketSearch packet = new PacketSearch(); if (version >= 1) { packet.privateKey = reader.getString(F_PRIVATE_KEY); } if (version >= 1) { packet.search = reader.getString(F_SEARCH); } if (version >= 1) { packet.searchInfo = SearchInfoCodec.decodeList(reader.getBytesList(F_SEARCH_INFO), version); } return packet; } @Override public byte[] encode(PacketSearch packet, int version) throws ProtocolException { TlvWriter writer = new TlvWriter(); if (version >= 1) { if (packet.privateKey != null) writer.writeString(F_PRIVATE_KEY, packet.privateKey); } if (version >= 1) { if (packet.search != null) writer.writeString(F_SEARCH, packet.search); } if (version >= 1) { if (packet.searchInfo != null) writer.writeBytesList(F_SEARCH_INFO, SearchInfoCodec.encodeList(packet.searchInfo, version)); } return writer.toByteArray(); } }