#include "types.h"
#include "rpc/rpc.h"
-class rsm_client_protocol {
- public:
- enum status : status_t {OK, ERR, NOTPRIMARY, BUSY};
- enum rpc_numbers : proc_t {
- invoke = 0x9001,
- members,
- };
+namespace rsm_client_protocol {
+ enum status : rpc_protocol::status {OK, ERR, NOTPRIMARY, BUSY};
+ REMOTE_PROCEDURE_BASE(0x9000);
+ REMOTE_PROCEDURE(1, invoke, (string &, rpc_protocol::proc_id_t, string));
+ REMOTE_PROCEDURE(2, members, (vector<string> &, int));
};
struct viewstamp {
MARSHALLABLE(viewstamp)
-class rsm_protocol {
- public:
- enum status : status_t { OK, ERR, BUSY};
- enum rpc_numbers : proc_t {
- invoke = 0xa001,
- transferreq,
- transferdonereq,
- joinreq,
- };
-
- struct transferres {
- string state;
- viewstamp last;
-
- MEMBERS(state, last)
- };
+namespace rsm_protocol {
+ enum status : rpc_protocol::status { OK, ERR, BUSY};
+
+ struct transferres {
+ string state;
+ viewstamp last;
+
+ MEMBERS(state, last)
+ };
+
+ REMOTE_PROCEDURE_BASE(0xa000);
+ REMOTE_PROCEDURE(1, invoke, (int &, rpc_protocol::proc_id_t, viewstamp, string));
+ REMOTE_PROCEDURE(2, transferreq, (transferres &, string, viewstamp, unsigned));
+ REMOTE_PROCEDURE(3, transferdonereq, (int &, string, unsigned));
+ REMOTE_PROCEDURE(4, joinreq, (string &, string, viewstamp));
};
MARSHALLABLE(rsm_protocol::transferres)
-class rsm_test_protocol {
- public:
- enum status : status_t {OK, ERR};
- enum rpc_numbers : proc_t {
- net_repair = 0x12001,
- breakpoint = 0x12002,
- };
+namespace rsm_test_protocol {
+ enum status : rpc_protocol::status {OK, ERR};
+ REMOTE_PROCEDURE_BASE(0x12000);
+ REMOTE_PROCEDURE(1, net_repair, (status &, int));
+ REMOTE_PROCEDURE(2, breakpoint, (status &, int));
};
#endif