1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-06-17 13:22:00 +03:00

Client context documentation, refactoring.

This commit is contained in:
Teemu Ollakka
2018-04-27 17:03:09 +03:00
parent 28026ea4fc
commit c1f8f2c37d
10 changed files with 303 additions and 195 deletions

View File

@ -215,6 +215,55 @@ void trrep::server_context::sst_received(const wsrep_gtid_t& gtid)
provider_->sst_received(gtid, 0);
}
void trrep::server_context::wait_until_state(
enum trrep::server_context::state state) const
{
trrep::unique_lock<trrep::mutex> lock(mutex_);
while (state_ != state)
{
cond_.wait(lock);
}
}
void trrep::server_context::on_connect()
{
std::cout << "Server " << name_ << " connected to cluster" << "\n";
trrep::unique_lock<trrep::mutex> lock(mutex_);
state_ = s_connected;
cond_.notify_all();
}
void trrep::server_context::on_view(const trrep::view& view)
{
std::cout << "================================================\nView:\n"
<< "id: " << view.id() << "\n"
<< "status: " << view.status() << "\n"
<< "own_index: " << view.own_index() << "\n"
<< "final: " << view.final() << "\n"
<< "members: \n";
const std::vector<trrep::view::member>& members(view.members());
for (std::vector<trrep::view::member>::const_iterator i(members.begin());
i != members.end(); ++i)
{
std::cout << "id: " << i->id() << " "
<< "name: " << i->name() << "\n";
}
std::cout << "=================================================\n";
trrep::unique_lock<trrep::mutex> lock(mutex_);
if (view.final())
{
state_ = s_disconnected;
cond_.notify_all();
}
}
void trrep::server_context::on_sync()
{
std::cout << "Synced with group" << "\n";
trrep::unique_lock<trrep::mutex> lock(mutex_);
state_ = s_synced;
cond_.notify_all();
}
int trrep::server_context::on_apply(
trrep::client_context& client_context,