#include "paxos.h"
-#include "handle.h"
+
+using namespace std::placeholders;
paxos_change::~paxos_change() {}
bool isamember(const node_t & m, const nodes_t & nodes) {
- return find(nodes.begin(), nodes.end(), m) != nodes.end();
+ return std::find(nodes.begin(), nodes.end(), m) != nodes.end();
}
// check if l2 contains a majority of the elements of l1
bool majority(const nodes_t & l1, const nodes_t & l2) {
- auto overlap = (size_t)count_if(l1.begin(), l1.end(), std::bind(isamember, _1, l2));
+ auto overlap = (size_t)std::count_if(
+ l1.begin(), l1.end(), std::bind(isamember, _1, l2));
return overlap >= (l1.size() >> 1) + 1;
}
}
stable = false;
bool r = false;
- proposal.n = max(promise.n, proposal.n) + 1;
+ proposal.n = std::max(promise.n, proposal.n) + 1;
nodes_t accepts;
value_t v;
if (prepare(instance, accepts, cur_nodes, v)) {
prepareres res;
prop_t highest_n_a{0, ""};
for (auto i : nodes) {
- handle h(i);
- rpcc *r = h.safebind();
+ auto r = rpcc::bind_cached(i);
if (!r)
continue;
auto status = (paxos_protocol::status)r->call_timeout(
void proposer_acceptor::accept(unsigned instance, nodes_t & accepts,
const nodes_t & nodes, const value_t & v) {
for (auto i : nodes) {
- handle h(i);
- rpcc *r = h.safebind();
+ auto r = rpcc::bind_cached(i);
if (!r)
continue;
bool accept = false;
void proposer_acceptor::decide(unsigned instance, const nodes_t & accepts, const value_t & v) {
for (auto i : accepts) {
- handle h(i);
- rpcc *r = h.safebind();
+ auto r = rpcc::bind_cached(i);
if (!r)
continue;
int res = 0;