edits
[iotcloud.git] / version2 / src / C / RejectedMessage.cc
index b09fbe9149e750dddbb8f32c3daf2aa8074629bf..7cbac36b82704aa38699c5885f59c3547cf24d9f 100644 (file)
@@ -1,3 +1,5 @@
+#include "RejectedMessage.h"
+#include "ByteBuffer.h"
 
 /**
  * Entry for tracking messages that the server rejected.  We have to
@@ -7,91 +9,26 @@
  * @version 1.0
  */
 
+Entry * RejectedMessage_decode(Slot * slot, ByteBuffer * bb) {
+       int64_t sequencenum=bb.getLong();
+       int64_t machineid=bb.getLong();
+       int64_t oldseqnum=bb.getLong();
+       int64_t newseqnum=bb.getLong();
+       char equalto=bb.get();
+       return new RejectedMessage(slot,sequencenum, machineid, oldseqnum, newseqnum, equalto==1);
+}
 
-class RejectedMessage extends Entry {
-       /* Sequence number */
-       int64_t sequencenum;
-       
-
-       /* Machine identifier */
-       int64_t machineid;
-       /* Oldest sequence number in range */
-       int64_t oldseqnum;
-       /* Newest sequence number in range */
-       int64_t newseqnum;
-       /* Is the machine identifier of the relevant slots equal to (or not
-        * equal to) the specified machine identifier. */
-       bool equalto;
-       /* Set of machines that have not received notification. */
-       HashSet<Long> watchset;
-
-       RejectedMessage(Slot slot, int64_t _sequencenum, int64_t _machineid, int64_t _oldseqnum, int64_t _newseqnum, bool _equalto) {
-               super(slot);
-               sequencenum = _sequencenum;
-               machineid=_machineid;
-               oldseqnum=_oldseqnum;
-               newseqnum=_newseqnum;
-               equalto=_equalto;
-       }
-
-       int64_t getOldSeqNum() {
-               return oldseqnum;
-       }
-
-       int64_t getNewSeqNum() {
-               return newseqnum;
-       }
-
-       bool getEqual() {
-               return equalto;
-       }
-
-       int64_t getMachineID() {
-               return machineid;
-       }
-
-
-       int64_t getSequenceNumber() {
-               return sequencenum;
-       }
-
-       static Entry decode(Slot slot, ByteBuffer bb) {
-               int64_t sequencenum=bb.getLong();
-               int64_t machineid=bb.getLong();
-               int64_t oldseqnum=bb.getLong();
-               int64_t newseqnum=bb.getLong();
-               char equalto=bb.get();
-               return new RejectedMessage(slot,sequencenum, machineid, oldseqnum, newseqnum, equalto==1);
-       }
-
-       void setWatchSet(HashSet<Long> _watchset) {
-               watchset=_watchset;
-       }
-
-       void removeWatcher(int64_t machineid) {
-               if (watchset.remove(machineid))
-                       if (watchset.isEmpty())
-                               setDead();
-       }
-
-       void encode(ByteBuffer bb) {
-               bb.put(Entry.TypeRejectedMessage);
-               bb.putLong(sequencenum);
-               bb.putLong(machineid);
-               bb.putLong(oldseqnum);
-               bb.putLong(newseqnum);
-               bb.put(equalto?(char)1:(char)0);
-       }
-
-       int getSize() {
-               return 4*sizeof(int64_t) + 2*sizeof(char);
-       }
+void RejectedMessage::removeWatcher(int64_t machineid) {
+       if (watchset.remove(machineid))
+               if (watchset.isEmpty())
+                       setDead();
+}
 
-       char getType() {
-               return Entry.TypeRejectedMessage;
-       }
-       
-       Entry getCopy(Slot s) {
-               return new RejectedMessage(s,sequencenum, machineid, oldseqnum, newseqnum, equalto);
-       }
+void RejectedMessage::encode(ByteBuffer * bb) {
+       bb.put(TypeRejectedMessage);
+       bb->putLong(sequencenum);
+       bb->putLong(machineid);
+       bb->putLong(oldseqnum);
+       bb->putLong(newseqnum);
+       bb->put(equalto?(char)1:(char)0);
 }