#ifndef lock_server_h
#define lock_server_h
-#include <string>
-
-#include <map>
-#include <vector>
+#include "types.h"
#include "lock_protocol.h"
-#include "rpc/rpc.h"
-#include "rsm_state_transfer.h"
#include "rsm.h"
#include "rpc/fifo.h"
-#include "lock.h"
-
-using std::string;
-using std::pair;
-using std::list;
-using std::map;
-typedef string callback;
-typedef pair<callback, lock_protocol::xid_t> holder;
+typedef string callback_t;
+typedef pair<callback_t, lock_protocol::xid_t> holder_t;
class lock_state {
public:
lock_state();
lock_state(const lock_state &other);
bool held;
- holder held_by;
- list<holder> wanted_by;
- map<callback, lock_protocol::xid_t> old_requests;
+ holder_t held_by;
+ list<holder_t> wanted_by;
+ map<callback_t, lock_protocol::xid_t> old_requests;
mutex m;
lock_state& operator=(const lock_state&);
+
+ MEMBERS(held, held_by, wanted_by)
};
+MARSHALLABLE(lock_state)
+
typedef map<lock_protocol::lockid_t, lock_state> lock_map;
class lock_server : public rsm_state_transfer {
lock_state &get_lock_state(lock_protocol::lockid_t lid);
fifo<lock_protocol::lockid_t> retry_fifo;
fifo<lock_protocol::lockid_t> 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();