-#include "KeyValue.h"
-#include "ByteBuffer.h"
-#include "IoTString.h"
-/**
- * KeyValue entry for Slot.
- * @author Brian Demsky <bdemsky@uci.edu>
- * @version 1.0
- */
-
-KeyValue::~KeyValue() {
- delete key;
- delete value;
-}
-
-KeyValue *KeyValue_decode(ByteBuffer *bb) {
- int keylength = bb->getInt();
- int valuelength = bb->getInt();
- Array<char> *key = new Array<char>(keylength);
- bb->get(key);
-
- if (valuelength != 0) {
- Array<char> *value = new Array<char>(valuelength);
- bb->get(value);
- return new KeyValue(IoTString_shallow(key), IoTString_shallow(value));
- }
-
- return new KeyValue(IoTString_shallow(key), NULL);
-}
-
-void KeyValue::encode(ByteBuffer *bb) {
- bb->putInt(key->length());
- if (value != NULL) {
- bb->putInt(value->length());
- } else {
- bb->putInt(0);
- }
- bb->put(key->internalBytes());
- if (value != NULL) {
- bb->put(value->internalBytes());
- }
-}
-
-int KeyValue::getSize() {
- if (value != NULL)
- return 2 * sizeof(int32_t) + key->length() + value->length();
- return 2 * sizeof(int32_t) + key->length();
-}
-
-KeyValue *KeyValue::getCopy() {
- return new KeyValue(new IoTString(key), new IoTString(value));
-}