6 class rsm_client_protocol {
8 enum status : status_t {OK, ERR, NOTPRIMARY, BUSY};
9 enum rpc_numbers : proc_t {
16 viewstamp (unsigned int _vid = 0, unsigned int _seqno = 0) : vid(_vid), seqno(_seqno) {}
19 inline void operator++(int) { seqno++; }
24 enum status : status_t { OK, ERR, BUSY};
25 enum rpc_numbers : proc_t {
42 inline bool operator==(viewstamp a, viewstamp b) {
43 return a.vid == b.vid && a.seqno == b.seqno;
46 inline bool operator>(viewstamp a, viewstamp b) {
47 return (a.vid > b.vid) || ((a.vid == b.vid) && a.seqno > b.seqno);
50 inline bool operator!=(viewstamp a, viewstamp b) {
51 return a.vid != b.vid || a.seqno != b.seqno;
54 inline marshall& operator<<(marshall &m, viewstamp v) {
55 return m << v.vid << v.seqno;
58 inline unmarshall& operator>>(unmarshall &u, viewstamp &v) {
59 return u >> v.vid >> v.seqno;
62 inline marshall & operator<<(marshall &m, rsm_protocol::transferres r) {
63 return m << r.state << r.last;
66 inline unmarshall & operator>>(unmarshall &u, rsm_protocol::transferres &r) {
67 return u >> r.state >> r.last;
70 inline marshall & operator<<(marshall &m, rsm_protocol::joinres r) {
74 inline unmarshall & operator>>(unmarshall &u, rsm_protocol::joinres &r) {
78 class rsm_test_protocol {
80 enum status : status_t {OK, ERR};
81 enum rpc_numbers : proc_t {