X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=blobdiff_plain;f=src%2Fjava%2Fiotcloud%2FKeyValue.java;h=ac1975930bb5e6853ae559c6c269a77896ea6020;hp=39125e27d41b1fc2a07a3dc9f52bb7e493f91381;hb=89e8371e2ca27ce4f581596497b786eb0a209678;hpb=021c91a082ea8c5f22b368ddca3926d97101279c;ds=sidebyside diff --git a/src/java/iotcloud/KeyValue.java b/src/java/iotcloud/KeyValue.java index 39125e2..ac19759 100644 --- a/src/java/iotcloud/KeyValue.java +++ b/src/java/iotcloud/KeyValue.java @@ -2,32 +2,46 @@ package iotcloud; import java.nio.ByteBuffer; class KeyValue extends Entry { - byte[] key; - byte[] value; - KeyValue(byte[] _key, byte[] _value) { + private IoTString key; + private IoTString value; + + KeyValue(Slot slot, IoTString _key, IoTString _value) { + super(slot); key=_key; value=_value; } + + IoTString getKey() { + return key; + } + + IoTString getValue() { + return value; + } - static Entry decode(ByteBuffer bb) { + static Entry decode(Slot slot, ByteBuffer bb) { int keylength=bb.getInt(); int valuelength=bb.getInt(); byte[] key=new byte[keylength]; byte[] value=new byte[valuelength]; bb.get(key); bb.get(value); - return new KeyValue(key, value); + return new KeyValue(slot, IoTString.shallow(key), IoTString.shallow(value)); } void encode(ByteBuffer bb) { bb.put(Entry.TypeKeyValue); - bb.putInt(key.length); - bb.putInt(value.length); - bb.put(key); - bb.put(value); + bb.putInt(key.length()); + bb.putInt(value.length()); + bb.put(key.internalBytes()); + bb.put(value.internalBytes()); } int getSize() { - return 2*Integer.BYTES+key.length+value.length+Byte.BYTES; + return 2*Integer.BYTES+key.length()+value.length()+Byte.BYTES; + } + + byte getType() { + return Entry.TypeKeyValue; } }