- protected:
- rpcc *cl;
- public:
- lock_client(std::string d);
- virtual ~lock_client() {};
- virtual lock_protocol::status acquire(lock_protocol::lockid_t);
- virtual lock_protocol::status release(lock_protocol::lockid_t);
- virtual lock_protocol::status stat(lock_protocol::lockid_t);
+ private:
+ rpcc *cl;
+ thread releaser_thread;
+ rsm_client *rsmc;
+ lock_release_user *lu;
+ in_port_t rlock_port;
+ string hostname;
+ string id;
+ mutex xid_mutex;
+ lock_protocol::xid_t next_xid;
+ fifo<lock_protocol::lockid_t> release_fifo;
+ mutex lock_table_lock;
+ lock_map lock_table;
+ lock_state &get_lock_state(lock_protocol::lockid_t lid);
+ public:
+ static in_port_t last_port;
+ lock_client(string xdst, lock_release_user *l = 0);
+ ~lock_client() {}
+ lock_protocol::status acquire(lock_protocol::lockid_t);
+ lock_protocol::status release(lock_protocol::lockid_t);
+ int stat(lock_protocol::lockid_t);
+ void releaser();
+ rlock_protocol::status revoke_handler(int &, lock_protocol::lockid_t, lock_protocol::xid_t);
+ rlock_protocol::status retry_handler(int &, lock_protocol::lockid_t, lock_protocol::xid_t);