7 class rsm_client_protocol {
9 enum status : status_t {OK, ERR, NOTPRIMARY, BUSY};
10 enum rpc_numbers : proc_t {
17 viewstamp (unsigned int _vid = 0, unsigned int _seqno = 0) : vid(_vid), seqno(_seqno) {}
20 inline void operator++(int) { seqno++; }
25 enum status : status_t { OK, ERR, BUSY};
26 enum rpc_numbers : proc_t {
39 inline bool operator==(viewstamp a, viewstamp b) { return tie(a.vid, a.seqno) == tie(b.vid, b.seqno); }
40 inline bool operator>(viewstamp a, viewstamp b) { return tie(a.vid, a.seqno) > tie(b.vid, b.seqno); }
41 inline bool operator!=(viewstamp a, viewstamp b) { return tie(a.vid, a.seqno) != tie(b.vid, b.seqno); }
43 inline marshall& operator<<(marshall &m, viewstamp v) {
44 return m << v.vid << v.seqno;
47 inline unmarshall& operator>>(unmarshall &u, viewstamp &v) {
48 return u >> v.vid >> v.seqno;
51 inline marshall & operator<<(marshall &m, rsm_protocol::transferres r) {
52 return m << r.state << r.last;
55 inline unmarshall & operator>>(unmarshall &u, rsm_protocol::transferres &r) {
56 return u >> r.state >> r.last;
59 class rsm_test_protocol {
61 enum status : status_t {OK, ERR};
62 enum rpc_numbers : proc_t {