X-Git-Url: http://xvm.mit.edu/gitweb/invirt/third/libt4.git/blobdiff_plain/a4175b2e216a20b86cc872dea8a08005c60617a5..dfe8486473094c0769fd1922329c3f0dfd8f43c0:/lock_server_cache_rsm.cc?ds=sidebyside diff --git a/lock_server_cache_rsm.cc b/lock_server_cache_rsm.cc index c3f75e8..0e43ec5 100644 --- a/lock_server_cache_rsm.cc +++ b/lock_server_cache_rsm.cc @@ -20,6 +20,10 @@ lock_state::lock_state(): { } +lock_state::lock_state(const lock_state &other) { + *this = other; +} + lock_state& lock_state::operator=(const lock_state& o) { held = o.held; held_by = o.held_by; @@ -34,50 +38,14 @@ ostringstream & operator<<(ostringstream &o, const pair &d) { return o; } -template -marshall & operator<<(marshall &m, const list &d) { - m << vector(d.begin(), d.end()); - return m; -} - -template -unmarshall & operator>>(unmarshall &u, list &d) { - vector v; - u >> v; - d.assign(v.begin(), v.end()); - return u; -} - - -template -marshall & operator<<(marshall &m, const pair &d) { - m << d.first; - m << d.second; - return m; -} - -template -unmarshall & operator>>(unmarshall &u, pair &d) { - u >> d.first; - u >> d.second; - return u; -} - marshall & operator<<(marshall &m, const lock_state &d) { - m << d.held; - m << d.held_by; - m << d.wanted_by; - return m; + return m << d.held << d.held_by << d.wanted_by; } unmarshall & operator>>(unmarshall &u, lock_state &d) { - u >> d.held; - u >> d.held_by; - u >> d.wanted_by; - return u; + return u >> d.held >> d.held_by >> d.wanted_by; } - lock_state & lock_server_cache_rsm::get_lock_state(lock_protocol::lockid_t lid) { lock sl(lock_table_lock); // by the semantics of map, this will create