X-Git-Url: http://xvm.mit.edu/gitweb/invirt/third/libt4.git/blobdiff_plain/5a5c578e2e358a121cdb9234a6cb11c4ecfbf323..8b9d106fcc61fc84712c97d4db060d8302cc63fd:/lock_server.h diff --git a/lock_server.h b/lock_server.h index 381c527..69ac2b8 100644 --- a/lock_server.h +++ b/lock_server.h @@ -19,8 +19,12 @@ public: map old_requests; mutex m; lock_state& operator=(const lock_state&); + + MEMBERS(held, held_by, wanted_by) }; +MARSHALLABLE(lock_state) + typedef map lock_map; class lock_server : public rsm_state_transfer { @@ -31,16 +35,16 @@ class lock_server : public rsm_state_transfer { lock_state &get_lock_state(lock_protocol::lockid_t lid); fifo retry_fifo; fifo revoke_fifo; - class rsm *rsm; + rsm *rsm_; public: - lock_server(class rsm *rsm = 0); + lock_server(rsm *r = 0); lock_protocol::status stat(int &, lock_protocol::lockid_t); void revoker(); void retryer(); string marshal_state(); - void unmarshal_state(string state); - int acquire(int &, lock_protocol::lockid_t, string id, lock_protocol::xid_t); - int release(int &, lock_protocol::lockid_t, string id, lock_protocol::xid_t); + void unmarshal_state(const string & state); + int acquire(int &, lock_protocol::lockid_t, const callback_t & id, lock_protocol::xid_t); + int release(int &, lock_protocol::lockid_t, const callback_t & id, lock_protocol::xid_t); }; #endif