projects
/
invirt/third/libt4.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Simplifications and clean-ups
[invirt/third/libt4.git]
/
rpc
/
rpc_protocol.h
diff --git
a/rpc/rpc_protocol.h
b/rpc/rpc_protocol.h
index
881de9b
..
80089ff
100644
(file)
--- a/
rpc/rpc_protocol.h
+++ b/
rpc/rpc_protocol.h
@@
-8,11
+8,13
@@
namespace rpc_protocol {
using status = int32_t;
using rpc_sz_t = uint32_t;
using status = int32_t;
using rpc_sz_t = uint32_t;
+ using nonce_t = uint32_t;
+ using xid_t = int32_t;
enum : status {
timeout_failure = -1,
enum : status {
timeout_failure = -1,
- unmarshal_args_failure = -2,
- unmarshal_reply_failure = -3,
+ unmarshall_args_failure = -2,
+ unmarshall_reply_failure = -3,
atmostonce_failure = -4,
oldsrv_failure = -5,
bind_failure = -6,
atmostonce_failure = -4,
oldsrv_failure = -5,
bind_failure = -6,
@@
-20,17
+22,17
@@
namespace rpc_protocol {
};
struct request_header {
};
struct request_header {
- int xid;
+ xid_t xid;
proc_id_t proc;
proc_id_t proc;
- unsigned int clt_nonce;
- unsigned int srv_nonce;
- int xid_rep;
+ nonce_t clt_nonce;
+ nonce_t srv_nonce;
+ xid_t xid_rep;
MEMBERS(xid, proc, clt_nonce, srv_nonce, xid_rep)
};
struct reply_header {
MEMBERS(xid, proc, clt_nonce, srv_nonce, xid_rep)
};
struct reply_header {
- int xid;
+ xid_t xid;
int ret;
MEMBERS(xid, ret)
int ret;
MEMBERS(xid, ret)
@@
-42,18
+44,16
@@
namespace rpc_protocol {
proc_id_t id;
};
proc_id_t id;
};
- const size_t RPC_HEADER_SZ = max(sizeof(request_header), sizeof(reply_header)) + sizeof(rpc_sz_t);
+ union header_t { request_header req; reply_header rep; };
+ const size_t RPC_HEADER_SZ = sizeof(header_t) + sizeof(rpc_sz_t);
const size_t DEFAULT_RPC_SZ = 1024; // size of initial buffer allocation
const size_t DEFAULT_RPC_SZ = 1024; // size of initial buffer allocation
- const size_t MAX_PDU = 10<<20; //maximum PDF is 10M
+ const size_t MAX_PDU = 10<<20; // maximum PDF is 10M
-#define REMOTE_PROCEDURE_BASE(_base_) enum proc_no : ::rpc_protocol::proc_id_t { base = _base_ };
-#define REMOTE_PROCEDURE(_offset_, _name_, _args_) static constexpr ::rpc_protocol::proc_t<status _args_> _name_{base + _offset_};
+#define REMOTE_PROCEDURE_BASE(_base_) static constexpr rpc_protocol::proc_id_t base = _base_
+#define REMOTE_PROCEDURE(_offset_, _name_, _args_) static constexpr rpc_protocol::proc_t<status _args_> _name_{base + _offset_}
REMOTE_PROCEDURE_BASE(0);
REMOTE_PROCEDURE_BASE(0);
- REMOTE_PROCEDURE(1, bind, (unsigned int &, int)); // handler number reserved for bind
-};
-
-ENDIAN_SWAPPABLE(rpc_protocol::request_header)
-ENDIAN_SWAPPABLE(rpc_protocol::reply_header)
+ REMOTE_PROCEDURE(1, bind, (nonce_t &)); // handler number reserved for bind
+}
#endif
#endif