--- /dev/null
+#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 *NewKey_decode(Slot *slot, ByteBuffer *bb) {
+ int keylength = bb->getInt();
+ Array<char> *key = new Array<char>(keylength);
+ bb->get(key);
+ int64_t machineid = bb->getLong();
+ IoTString *str = IoTString_shallow(key);
+ NewKey *newkey = new NewKey(slot, str, machineid);
+ delete str;
+ return newkey;
+}
+
+Entry *NewKey::getCopy(Slot *s) { return new NewKey(s, key, machineid); }
+
+void NewKey::encode(ByteBuffer *bb) {
+ bb->put(TypeNewKey);
+ bb->putInt(key->length());
+ bb->put(key->internalBytes());
+ bb->putLong(machineid);
+}
+
+int NewKey::getSize() {
+ return sizeof(int64_t) + sizeof(char) + sizeof(int32_t) + key->length();
+}