edits
[iotcloud.git] / version2 / src / C / NewKey.cc
index 745f22d977d31d072ff9dc35b4a5a44147e9cfdd..a3a1a87c8dbe81007c5711b0b1a219b83c85116d 100644 (file)
@@ -1,59 +1,37 @@
+#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;
+}
 
-/**
- * This Entry records the abort sent by a given machine.
- * @author Ali Younis <ayounis@uci.edu>
- * @version 1.0
- */
-
-
-class NewKey extends Entry {
-       IoTString key;
-       int64_t machineid;
-
-       NewKey(Slot slot, IoTString _key, int64_t _machineid) {
-               super(slot);
-               key = _key;
-               machineid = _machineid;
-       }
-
-       int64_t getMachineID() {
-               return machineid;
-       }
-
-       IoTString getKey() {
-               return key;
-       }
-
-       void setSlot(Slot s) {
-               parentslot = s;
-       }
-
-       static Entry decode(Slot slot, ByteBuffer bb) {
-               int keylength = bb.getInt();
-               char[] key = new char[keylength];
-               bb.get(key);
-               int64_t machineid = bb.getLong();
-
-               return new NewKey(slot, IoTString.shallow(key), machineid);
-       }
-
-       void encode(ByteBuffer bb) {
-               bb.put(Entry.TypeNewKey);
-               bb.putInt(key.length());
-               bb.put(key.internalBytes());
-               bb.putLong(machineid);
-       }
+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;
+}
 
-       int getSize() {
-               return sizeof(int64_t) + sizeof(char) + sizeof(int32_t) + key.length();
-       }
+Entry *NewKey::getCopy(Slot *s) { return new NewKey(s, new IoTString(key), machineid); }
 
-       char getType() {
-               return Entry.TypeNewKey;
-       }
+void NewKey::encode(ByteBuffer *bb) {
+       bb->put(TypeNewKey);
+       bb->putInt(key->length());
+       bb->put(key->internalBytes());
+       bb->putLong(machineid);
+}
 
-       Entry getCopy(Slot s) {
-               return new NewKey(s, key, machineid);
-       }
+int NewKey::getSize() {
+       return sizeof(int64_t) + sizeof(char) + sizeof(int32_t) + key->length();
 }