Add HMAC
[iotcloud.git] / version2 / backup / src / java / iotcloud / Abort.java
1 package iotcloud;
2
3 import java.nio.ByteBuffer;
4
5 /**
6  * This Entry records the abort sent by a given machine.
7  * @author Ali Younis <ayounis@uci.edu>
8  * @version 1.0
9  */
10
11
12 class Abort extends Entry {
13         private long seqnumtrans;
14         private long machineid;
15         private long transarbitrator;
16
17
18         public Abort(Slot slot, long _seqnumtrans,  long _machineid, long _transarbitrator) {
19                 super(slot);
20                 seqnumtrans = _seqnumtrans;
21                 machineid = _machineid;
22                 transarbitrator = _transarbitrator;
23         }
24
25         public long getMachineID() {
26                 return machineid;
27         }
28
29         public long getTransSequenceNumber() {
30                 return seqnumtrans;
31         }
32
33
34         public long getTransArbitrator() {
35                 return transarbitrator;
36         }
37
38         static Entry decode(Slot slot, ByteBuffer bb) {
39                 long seqnumtrans = bb.getLong();
40                 long machineid = bb.getLong();
41                 long transarbitrator = bb.getLong();
42                 return new Abort(slot, seqnumtrans,  machineid, transarbitrator);
43         }
44
45         public void encode(ByteBuffer bb) {
46                 bb.put(Entry.TypeAbort);
47                 bb.putLong(seqnumtrans);
48                 bb.putLong(machineid);
49                 bb.putLong(transarbitrator);
50         }
51
52         public int getSize() {
53                 return (3 * Long.BYTES) + Byte.BYTES;
54         }
55
56         public byte getType() {
57                 return Entry.TypeAbort;
58         }
59
60         public Entry getCopy(Slot s) {
61                 return new Abort(s, seqnumtrans, machineid, transarbitrator);
62         }
63 }