+#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();
}