edits
[iotcloud.git] / version2 / src / C / NewKey.cc
index c6afe550743d7104abba059b0d45249510f37ae8..25798394ec7f37bc752a896e91dacaba8445a031 100644 (file)
@@ -1,5 +1,16 @@
 #include "NewKey.h"
 #include "ByteBuffer.h"
+#include "IoTString.h"
+
+NewKey::NewKey(Slot *slot, IoTString *_key, int64_t _machineid) :
+       Entry(slot),
+       key(new IoTString(_key)),
+       machineid(_machineid) {
+}
+
+NewKey::~NewKey() {
+       delete key;
+}
 
 Entry *decode(Slot *slot, ByteBuffer *bb) {
        int keylength = bb->getInt();
@@ -7,9 +18,11 @@ Entry *decode(Slot *slot, ByteBuffer *bb) {
        bb->get(key);
        int64_t machineid = bb->getLong();
 
-       return new NewKey(slot, IoTString.shallow(key), machineid);
+       return new NewKey(slot, IoTString_shallow(key), machineid);
 }
 
+Entry *NewKey::getCopy(Slot *s) { return new NewKey(s, new IoTString(key), machineid); }
+
 void NewKey::encode(ByteBuffer *bb) {
        bb->put(TypeNewKey);
        bb->putInt(key->length());
@@ -18,5 +31,5 @@ void NewKey::encode(ByteBuffer *bb) {
 }
 
 int NewKey::getSize() {
-       return sizeof(int64_t) + sizeof(char) + sizeof(int32_t) + key.length();
+       return sizeof(int64_t) + sizeof(char) + sizeof(int32_t) + key->length();
 }