Cosmetic improvements.
[invirt/third/libt4.git] / rsm_protocol.h
index 1601bcb..9cd60bd 100644 (file)
@@ -4,17 +4,14 @@
 #include "types.h"
 #include "rpc/rpc.h"
 
 #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 {
 };
 
 struct viewstamp {
-    viewstamp (unsigned int _vid = 0, unsigned int _seqno = 0) : vid(_vid), seqno(_seqno) {}
     unsigned int vid;
     unsigned int seqno;
     inline void operator++(int) { seqno++; }
     unsigned int vid;
     unsigned int seqno;
     inline void operator++(int) { seqno++; }
@@ -23,35 +20,32 @@ struct viewstamp {
     LEXICOGRAPHIC_COMPARISON(viewstamp)
 };
 
     LEXICOGRAPHIC_COMPARISON(viewstamp)
 };
 
-MARSHALLABLE(viewstamp)
+MARSHALLABLE_STRUCT(viewstamp)
 
 
-class rsm_protocol {
-    public:
-        enum status : status_t { OK, ERR, BUSY};
-        enum rpc_numbers : proc_t {
-            invoke = 0xa001,
-            transferreq,
-            transferdonereq,
-            joinreq,
-        };
+namespace rsm_protocol {
+    enum status : rpc_protocol::status { OK, ERR, BUSY};
 
 
-        struct transferres {
-            string state;
-            viewstamp last;
+    struct transferres {
+        string state;
+        viewstamp last;
 
 
-            MEMBERS(state, 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)
+MARSHALLABLE_STRUCT(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 
 };
 
 #endif