edits
[iotcloud.git] / version2 / src / C / Abort.cc
1 #include "Abort.h"
2 #include "ByteBuffer.h"
3
4 Abort::Abort(Slot * slot, int64_t _transactionClientLocalSequenceNumber, int64_t _transactionSequenceNumber ,  int64_t _transactionMachineId, int64_t _transactionArbitrator, int64_t _arbitratorLocalSequenceNumber) :
5   Entry(slot),
6   transactionClientLocalSequenceNumber(_transactionClientLocalSequenceNumber),
7   transactionSequenceNumber(_transactionSequenceNumber),
8   transactionMachineId(_transactionMachineId),
9   transactionArbitrator(_transactionArbitrator),
10   arbitratorLocalSequenceNumber(_arbitratorLocalSequenceNumber),
11   abortId(new Pair<int64_t, int64_t>(transactionMachineId, transactionClientLocalSequenceNumber)) {
12 }
13
14 Abort::Abort(Slot * slot, int64_t _transactionClientLocalSequenceNumber, int64_t _transactionSequenceNumber, int64_t _sequenceNumber ,  int64_t _transactionMachineId, int64_t _transactionArbitrator, int64_t _arbitratorLocalSequenceNumber) :
15   Entry(slot),
16   transactionClientLocalSequenceNumber(_transactionClientLocalSequenceNumber),
17   transactionSequenceNumber(_transactionSequenceNumber),
18   sequenceNumber(_sequenceNumber),
19   transactionMachineId(_transactionMachineId),
20   transactionArbitrator(_transactionArbitrator),
21   arbitratorLocalSequenceNumber(_arbitratorLocalSequenceNumber),
22   abortId(new Pair<int64_t, int64_t>(transactionMachineId, transactionClientLocalSequenceNumber)) {
23 }
24
25 Entry * Abortdecode(Slot * slot, ByteBuffer * bb) {
26   int64_t transactionClientLocalSequenceNumber = bb->getLong();
27   int64_t transactionSequenceNumber = bb->getLong();
28   int64_t sequenceNumber = bb->getLong();
29   int64_t transactionMachineId = bb->getLong();
30   int64_t transactionArbitrator = bb->getLong();
31   int64_t arbitratorLocalSequenceNumber = bb->getLong();
32   
33   return new Abort(slot, transactionClientLocalSequenceNumber, transactionSequenceNumber, sequenceNumber, transactionMachineId, transactionArbitrator, arbitratorLocalSequenceNumber);
34 }
35
36 void Abort::encode(ByteBuffer * bb) {
37   bb->put(TypeAbort);
38   bb->putLong(transactionClientLocalSequenceNumber);
39   bb->putLong(transactionSequenceNumber);
40   bb->putLong(sequenceNumber);
41   bb->putLong(transactionMachineId);
42   bb->putLong(transactionArbitrator);
43   bb->putLong(arbitratorLocalSequenceNumber);
44 }