1 #ifndef lock_protocol_h
2 #define lock_protocol_h
7 typedef string callback_t;
9 namespace lock_protocol {
10 enum status : rpc_protocol::status { OK, RETRY, RPCERR, NOENT, IOERR };
11 using lockid_t = string;
12 using xid_t = uint64_t;
13 REMOTE_PROCEDURE_BASE(0x7000);
14 REMOTE_PROCEDURE(1, acquire, (int &, lockid_t, callback_t, xid_t));
15 REMOTE_PROCEDURE(2, release, (int &, lockid_t, callback_t, xid_t));
16 REMOTE_PROCEDURE(3, stat, (int &, lockid_t, callback_t));
19 namespace rlock_protocol {
20 using lockid_t = lock_protocol::lockid_t;
21 using xid_t = lock_protocol::xid_t;
22 enum status : rpc_protocol::status { OK, RPCERR };
23 REMOTE_PROCEDURE_BASE(0x8000);
24 REMOTE_PROCEDURE(1, revoke, (int &, lockid_t, xid_t));
25 REMOTE_PROCEDURE(2, retry, (int &, lockid_t, xid_t));