edits
[iotcloud.git] / version2 / src / C / Abort.h
1 #ifndef ABORT_H
2 #define ABORT_H
3 #include "common.h"
4 #include "Entry.h"
5 #include "Pair.h"
6
7 class Abort : public Entry {
8 private:
9         int64_t transactionClientLocalSequenceNumber;
10         int64_t transactionSequenceNumber;
11         int64_t sequenceNumber;
12         int64_t transactionMachineId;
13         int64_t transactionArbitrator;
14         int64_t arbitratorLocalSequenceNumber;
15         Pair<int64_t, int64_t> *abortId;
16
17 public:
18         Abort(Slot *slot, int64_t _transactionClientLocalSequenceNumber, int64_t _transactionSequenceNumber,  int64_t _transactionMachineId, int64_t _transactionArbitrator, int64_t _arbitratorLocalSequenceNumber);
19         Abort(Slot *slot, int64_t _transactionClientLocalSequenceNumber, int64_t _transactionSequenceNumber, int64_t _sequenceNumber,  int64_t _transactionMachineId, int64_t _transactionArbitrator, int64_t _arbitratorLocalSequenceNumber);
20
21         Pair<int64_t, int64_t> *getAbortId() {return abortId;}
22
23         int64_t getTransactionMachineId() { return transactionMachineId; }
24         int64_t getTransactionSequenceNumber()  { return transactionSequenceNumber; }
25         int64_t getTransactionClientLocalSequenceNumber() { return transactionClientLocalSequenceNumber; }
26         int64_t getArbitratorLocalSequenceNumber() { return arbitratorLocalSequenceNumber; }
27         void setSlot(Slot *s) { parentslot = s; }
28         int64_t getSequenceNumber() { return sequenceNumber;  }
29         void setSequenceNumber(int64_t _sequenceNumber) { sequenceNumber = _sequenceNumber; }
30         int64_t getTransactionArbitrator() { return transactionArbitrator; }
31
32         void encode(ByteBuffer *bb);
33         int getSize() { return (6 * sizeof(uint64_t)) + sizeof(char); }
34         char getType() { return TypeAbort; }
35         Entry *getCopy(Slot *s) { return new Abort(s, transactionClientLocalSequenceNumber, transactionSequenceNumber, sequenceNumber, transactionMachineId, transactionArbitrator, arbitratorLocalSequenceNumber); }
36 };
37
38 Entry *Abort_decode(Slot *slot, ByteBuffer *bb);
39 #endif