MEMBERS(xid, ret)
};
- template <typename Signature>
struct proc_t {
- using signature = Signature;
proc_id_t id;
+ const char * name;
+ };
+
+ template <typename Signature>
+ struct proc_checked_t : proc_t {
+ using signature = Signature;
+ constexpr inline proc_checked_t(proc_id_t id, const char * name) : proc_t{id, name} {}
};
union header_t { request_header req; reply_header rep; };
const size_t DEFAULT_RPC_SZ = 1024; // size of initial buffer allocation
const size_t MAX_PDU = 10<<20; // maximum PDF is 10M
-#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_}
+#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_checked_t<status _args_> _name_{base + _offset_, #_name_}
REMOTE_PROCEDURE_BASE(0);
REMOTE_PROCEDURE(1, bind, (nonce_t &)); // handler number reserved for bind