X-Git-Url: http://xvm.mit.edu/gitweb/invirt/third/libt4.git/blobdiff_plain/5a5c578e2e358a121cdb9234a6cb11c4ecfbf323..f0dcb6b97d6d40f67698d1f71ac26970f1776f82:/lock_protocol.h diff --git a/lock_protocol.h b/lock_protocol.h index 1e45ddc..5589c07 100644 --- a/lock_protocol.h +++ b/lock_protocol.h @@ -6,24 +6,24 @@ #include "types.h" #include "rpc/rpc.h" -class lock_protocol { - public: - enum status : status_t { OK, RETRY, RPCERR, NOENT, IOERR }; - using lockid_t = string; - using xid_t = uint64_t; - enum rpc_numbers : proc_t { - acquire = 0x7001, - release, - stat, - }; +typedef string callback_t; + +namespace lock_protocol { + enum status : rpc_protocol::status { OK, RETRY, RPCERR, NOENT, IOERR }; + using lockid_t = string; + using xid_t = uint64_t; + REMOTE_PROCEDURE_BASE(0x7000); + REMOTE_PROCEDURE(1, acquire, (int &, lockid_t, callback_t, xid_t)); + REMOTE_PROCEDURE(2, release, (int &, lockid_t, callback_t, xid_t)); + REMOTE_PROCEDURE(3, stat, (int &, lockid_t, callback_t)); }; -class rlock_protocol { - public: - enum status : status_t { OK, RPCERR }; - enum rpc_numbers : proc_t { - revoke = 0x8001, - retry, - }; +namespace rlock_protocol { + using lockid_t = lock_protocol::lockid_t; + using xid_t = lock_protocol::xid_t; + enum status : rpc_protocol::status { OK, RPCERR }; + REMOTE_PROCEDURE_BASE(0x8000); + REMOTE_PROCEDURE(1, revoke, (int &, lockid_t, xid_t)); + REMOTE_PROCEDURE(2, retry, (int &, lockid_t, xid_t)); }; #endif