5 #include "lock_protocol.h"
9 typedef string callback_t;
10 typedef pair<callback_t, lock_protocol::xid_t> holder_t;
15 lock_state(const lock_state &other);
18 list<holder_t> wanted_by;
19 map<callback_t, lock_protocol::xid_t> old_requests;
21 lock_state& operator=(const lock_state&);
24 typedef map<lock_protocol::lockid_t, lock_state> lock_map;
26 class lock_server : public rsm_state_transfer {
29 mutex lock_table_lock;
31 lock_state &get_lock_state(lock_protocol::lockid_t lid);
32 fifo<lock_protocol::lockid_t> retry_fifo;
33 fifo<lock_protocol::lockid_t> revoke_fifo;
36 lock_server(class rsm *rsm = 0);
37 lock_protocol::status stat(int &, lock_protocol::lockid_t);
40 string marshal_state();
41 void unmarshal_state(string state);
42 int acquire(int &, lock_protocol::lockid_t, string id, lock_protocol::xid_t);
43 int release(int &, lock_protocol::lockid_t, string id, lock_protocol::xid_t);