class paxos_change {
public:
virtual void paxos_commit(unsigned instance, const value_t & v) = 0;
- virtual ~paxos_change() {}
+ virtual ~paxos_change();
};
extern bool isamember(const node_t & m, const nodes_t & nodes);
class proposer_acceptor {
private:
- mutex proposer_mutex;
- mutex acceptor_mutex;
+ std::mutex proposer_mutex, acceptor_mutex;
paxos_change *delegate;
node_t me;
- rpcs pxs{(in_port_t)stoi(me)};
+ rpcs pxs{(in_port_t)std::stoi(me)};
bool break1 = false;
bool break2 = false;
prop_t accepted = {0, me}; // number of highest proposal accepted
value_t accepted_value; // value of highest proposal accepted
unsigned instance_h = 0; // number of the highest instance we have decided
- map<unsigned,value_t> values; // vals of each instance
+ std::map<unsigned,value_t> values; // vals of each instance
friend class log;
class log l = {this, me};
unsigned instance() { return instance_h; }
const value_t & value(unsigned instance) { return values[instance]; }
string dump() { return l.dump(); }
- void restore(const string &s) { l.restore(s); l.logread(); }
+ void restore(const string & s) { l.restore(s); l.logread(); }
rpcs *get_rpcs() { return &pxs; }
bool run(unsigned instance, const nodes_t & cnodes, const value_t & v);