3 * KeyValue entry for Slot.
4 * @author Brian Demsky <bdemsky@uci.edu>
8 KeyValue *KeyValue_decode(ByteBuffer *bb) {
9 int keylength = bb->getInt();
10 int valuelength = bb->getInt();
11 Array<char> *key = new Array<char> *(keylength);
14 if (valuelength != 0) {
15 Array<char> *value = new Array<char>(valuelength);
17 return new KeyValue(IoTString_shallow(key), IoTString_shallow(value));
20 return new KeyValue(IoTString_shallow(key), NULL);
23 void KeyValue::encode(ByteBuffer *bb) {
24 bb->putInt(key->length());
27 bb->putInt(value->length());
32 bb->put(key->internalBytes());
35 bb->put(value->internalBytes());
39 int KeyValue::getSize() {
41 return 2 * sizeof(int32_t) + key->length() + value->length();
44 return 2 * sizeof(int32_t) + key.length();
47 KeyValue *KeyValue::getCopy() {
48 return new KeyValue(key, value);