package lbms.plugins.mldht.kad.messages;
import java.nio.ByteBuffer;
import java.util.Map;
import the8472.bencode.BEncoder;
public class GetResponse extends AbstractLookupResponse {
public GetResponse(byte[] mtid) {
super(mtid, Method.GET, Type.RSP_MSG);
}
@Override
public Map<String,Object> getInnerMap() {
Map<String, Object> map = super.getInnerMap();
if(signature != null)
map.put("sig", signature);
if(key != null)
map.put("k", key);
if(sequenceNumber > -1)
map.put("seq", sequenceNumber);
if(rawValue != null)
map.put("v", new BEncoder.RawData(rawValue));
return map;
};
ByteBuffer rawValue;
byte[] signature;
long sequenceNumber = -1;
byte[] key;
public ByteBuffer getRawValue() {
return rawValue;
}
public void setRawValue(ByteBuffer rawValue) {
this.rawValue = rawValue;
}
public byte[] getSignature() {
return signature;
}
public void setSignature(byte[] signature) {
this.signature = signature;
}
public long getSequenceNumber() {
return sequenceNumber;
}
public void setSequenceNumber(long sequenceNumber) {
this.sequenceNumber = sequenceNumber;
}
public byte[] getPubkey() {
return key;
}
public void setKey(byte[] key) {
this.key = key;
}
@Override
public String toString() {
return super.toString() +
(rawValue != null ? "rawval: " + rawValue.remaining() + "bytes " : "") +
(signature != null ? "sig: " + signature.length + "bytes " : "") +
(sequenceNumber != -1 ? "seq: " + sequenceNumber + " " : "") +
(key != null ? "key: " + key.length + "bytes " : "")
;
}
}