2 import java.nio.ByteBuffer;
5 * KeyValue entry for Slot.
6 * @author Brian Demsky <bdemsky@uci.edu>
10 class KeyValue extends Entry {
11 private IoTString key;
12 private IoTString value;
14 KeyValue(Slot slot, IoTString _key, IoTString _value) {
24 IoTString getValue() {
28 static Entry decode(Slot slot, ByteBuffer bb) {
29 int keylength=bb.getInt();
30 int valuelength=bb.getInt();
31 byte[] key=new byte[keylength];
32 byte[] value=new byte[valuelength];
35 return new KeyValue(slot, IoTString.shallow(key), IoTString.shallow(value));
38 void encode(ByteBuffer bb) {
39 bb.put(Entry.TypeKeyValue);
40 bb.putInt(key.length());
41 bb.putInt(value.length());
42 bb.put(key.internalBytes());
43 bb.put(value.internalBytes());
47 return 2*Integer.BYTES+key.length()+value.length()+Byte.BYTES;
51 return Entry.TypeKeyValue;
54 public String toString() {
55 return value.toString();
58 Entry getCopy(Slot s) {
59 return new KeyValue(s, key, value);