// Start accepting synchronization request (statetransferreq) now!
insync = true;
cfg->get_view(vid_insync, backups);
- backups.erase(find(backups.begin(), backups.end(), cfg->myaddr()));
+ backups.erase(std::find(backups.begin(), backups.end(), cfg->myaddr()));
LOG << "backups " << backups;
sync_cond.wait(rsm_mutex_lock);
insync = false;
rsm_mutex_lock.lock();
}
if (cl == 0 || ret != rsm_protocol::OK) {
- LOG << "couldn't reach " << m << " " << hex << cl << " " << dec << ret;
+ LOG << "couldn't reach " << m << " " << std::hex << cl << " " << std::dec << ret;
return false;
}
if (stf && last_myvs != r.last) {
}
if (cl == 0 || ret != rsm_protocol::OK) {
- LOG << "couldn't reach " << m << " " << hex << cl << " " << dec << ret;
+ LOG << "couldn't reach " << m << " " << std::hex << cl << " " << std::dec << ret;
return false;
}
LOG << "succeeded " << log;
r = marshall(ret, rep.content()).content();
}
+static void logHexString(locked_ostream && log, const string & s) {
+ log << std::setfill('0') << std::setw(2) << std::hex;
+ for (size_t i=0; i<s.size(); i++)
+ log << (unsigned int)(unsigned char)s[i];
+}
+
//
// Clients call client_invoke to invoke a procedure on the replicated state
// machine: the primary receives the request, assigns it a sequence
// machine.
//
rsm_client_protocol::status rsm::client_invoke(string & r, rpc_protocol::proc_id_t procno, const string & req) {
- LOG << "invoke procno 0x" << hex << procno;
+ LOG << "invoke procno 0x" << std::hex << procno;
lock ml(invoke_mutex);
vector<string> m;
string myaddr;
partition1(rsm_mutex_lock);
}
}
- {
- auto && log = LOG << setfill('0') << setw(2) << hex;
- for (size_t i=0; i<req.size(); i++)
- log << (unsigned int)(unsigned char)req[i];
- }
+ logHexString(LOG, req);
execute(procno, req, r);
- {
- auto && log = LOG << setfill('0') << setw(2) << hex;
- for (size_t i=0; i<r.size(); i++)
- log << (unsigned int)(unsigned char)r[i];
- }
+ logHexString(LOG, r);
last_myvs = vs;
return rsm_client_protocol::OK;
}
// according to requests' seqno
rsm_protocol::status rsm::invoke(int &, rpc_protocol::proc_id_t proc, viewstamp vs, const string & req) {
- LOG << "invoke procno 0x" << hex << proc;
+ LOG << "invoke procno 0x" << std::hex << proc;
lock ml(invoke_mutex);
vector<string> m;
string myaddr;
if (primary == myaddr)
return rsm_protocol::ERR;
cfg->get_view(vid_commit, m);
- if (find(m.begin(), m.end(), myaddr) == m.end())
+ if (std::find(m.begin(), m.end(), myaddr) == m.end())
return rsm_protocol::ERR;
// check sequence number
LOG << "Checking sequence number";
lock ml(rsm_mutex);
if (!insync || vid != vid_insync)
return rsm_protocol::BUSY;
- backups.erase(find(backups.begin(), backups.end(), m));
+ backups.erase(std::find(backups.begin(), backups.end(), m));
if (backups.empty())
sync_cond.notify_one();
return rsm_protocol::OK;