mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-07-30 07:23:07 +03:00
Refactored server_service out of server_state.
This commit is contained in:
@ -7,6 +7,7 @@ add_executable(dbsim
|
||||
db_client_service.cpp
|
||||
db_params.cpp
|
||||
db_server.cpp
|
||||
db_server_service.cpp
|
||||
db_server_state.cpp
|
||||
db_simulator.cpp
|
||||
db_storage_engine.cpp
|
||||
|
@ -3,6 +3,7 @@
|
||||
//
|
||||
|
||||
#include "db_server.hpp"
|
||||
#include "db_server_service.hpp"
|
||||
#include "db_client.hpp"
|
||||
#include "db_simulator.hpp"
|
||||
|
||||
@ -16,7 +17,9 @@ db::server::server(simulator& simulator,
|
||||
, storage_engine_(simulator_.params())
|
||||
, mutex_()
|
||||
, cond_()
|
||||
, server_state_(*this, name, server_id, address, "dbsim_" + name + "_data")
|
||||
, server_service_(*this)
|
||||
, server_state_(*this, server_service_,
|
||||
name, server_id, address, "dbsim_" + name + "_data")
|
||||
, last_client_id_(0)
|
||||
, last_transaction_id_(0)
|
||||
, appliers_()
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
#include "db_storage_engine.hpp"
|
||||
#include "db_server_state.hpp"
|
||||
#include "db_server_service.hpp"
|
||||
|
||||
#include <boost/thread.hpp>
|
||||
|
||||
@ -51,6 +52,7 @@ namespace db
|
||||
db::storage_engine storage_engine_;
|
||||
wsrep::default_mutex mutex_;
|
||||
wsrep::default_condition_variable cond_;
|
||||
db::server_service server_service_;
|
||||
db::server_state server_state_;
|
||||
std::atomic<size_t> last_client_id_;
|
||||
std::atomic<size_t> last_transaction_id_;
|
||||
|
60
dbsim/db_server_service.cpp
Normal file
60
dbsim/db_server_service.cpp
Normal file
@ -0,0 +1,60 @@
|
||||
//
|
||||
// Copyright (C) 2018 Codership Oy <info@codership.com>
|
||||
//
|
||||
|
||||
#include "db_server_service.hpp"
|
||||
#include "db_server.hpp"
|
||||
|
||||
#include "wsrep/logger.hpp"
|
||||
|
||||
db::server_service::server_service(db::server& server)
|
||||
: server_(server)
|
||||
{ }
|
||||
|
||||
wsrep::client_state* db::server_service::local_client_state()
|
||||
{
|
||||
return server_.local_client_state();
|
||||
}
|
||||
|
||||
wsrep::client_state* db::server_service::streaming_applier_client_state()
|
||||
{
|
||||
return server_.streaming_applier_client_state();
|
||||
}
|
||||
|
||||
void db::server_service::release_client_state(
|
||||
wsrep::client_state* client_state)
|
||||
{
|
||||
server_.release_client_state(client_state);
|
||||
}
|
||||
|
||||
bool db::server_service::sst_before_init() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string db::server_service::sst_request()
|
||||
{
|
||||
return server_.server_state().id();
|
||||
}
|
||||
|
||||
int db::server_service::start_sst(
|
||||
const std::string& request, const wsrep::gtid& gtid, bool bypass)
|
||||
{
|
||||
server_.donate_sst(request, gtid, bypass);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void db::server_service::background_rollback(wsrep::client_state&)
|
||||
{
|
||||
}
|
||||
|
||||
void db::server_service::log_dummy_write_set(
|
||||
wsrep::client_state&, const wsrep::ws_meta& meta)
|
||||
{
|
||||
wsrep::log_info() << "Dummy write set: " << meta.seqno();
|
||||
}
|
||||
|
||||
void db::server_service::log_view(wsrep::client_state&, const wsrep::view&)
|
||||
{
|
||||
wsrep::log_info() << "View";
|
||||
}
|
33
dbsim/db_server_service.hpp
Normal file
33
dbsim/db_server_service.hpp
Normal file
@ -0,0 +1,33 @@
|
||||
//
|
||||
// Copyright (C) 2018 Codership Oy <info@codership.com>
|
||||
//
|
||||
|
||||
#ifndef WSREP_DB_SERVER_SERVICE_HPP
|
||||
#define WSREP_DB_SERVER_SERVICE_HPP
|
||||
|
||||
#include "wsrep/server_service.hpp"
|
||||
#include <string>
|
||||
|
||||
namespace db
|
||||
{
|
||||
class server;
|
||||
class server_service : public wsrep::server_service
|
||||
{
|
||||
public:
|
||||
server_service(db::server& server);
|
||||
wsrep::client_state* local_client_state() override;
|
||||
wsrep::client_state* streaming_applier_client_state() override;
|
||||
void release_client_state(wsrep::client_state*) override;
|
||||
bool sst_before_init() const override;
|
||||
int start_sst(const std::string&, const wsrep::gtid&, bool) override;
|
||||
std::string sst_request() override;
|
||||
void background_rollback(wsrep::client_state&) override;
|
||||
void log_dummy_write_set(wsrep::client_state&, const wsrep::ws_meta&)
|
||||
override;
|
||||
void log_view(wsrep::client_state&, const wsrep::view&) override;
|
||||
private:
|
||||
db::server& server_;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // WSREP_DB_SERVER_SERVICE_HPP
|
@ -7,50 +7,3 @@
|
||||
|
||||
#include "wsrep/logger.hpp"
|
||||
|
||||
wsrep::client_state* db::server_state::local_client_state()
|
||||
{
|
||||
return server_.local_client_state();
|
||||
}
|
||||
|
||||
wsrep::client_state* db::server_state::streaming_applier_client_state()
|
||||
{
|
||||
return server_.streaming_applier_client_state();
|
||||
}
|
||||
|
||||
void db::server_state::release_client_state(
|
||||
wsrep::client_state* client_state)
|
||||
{
|
||||
server_.release_client_state(client_state);
|
||||
}
|
||||
|
||||
bool db::server_state::sst_before_init() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string db::server_state::sst_request()
|
||||
{
|
||||
return id();
|
||||
}
|
||||
|
||||
int db::server_state::start_sst(
|
||||
const std::string& request, const wsrep::gtid& gtid, bool bypass)
|
||||
{
|
||||
server_.donate_sst(request, gtid, bypass);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void db::server_state::background_rollback(wsrep::client_state&)
|
||||
{
|
||||
}
|
||||
|
||||
void db::server_state::log_dummy_write_set(
|
||||
wsrep::client_state&, const wsrep::ws_meta& meta)
|
||||
{
|
||||
wsrep::log_info() << "Dummy write set: " << meta.seqno();
|
||||
}
|
||||
|
||||
void db::server_state::log_view(wsrep::client_state&, const wsrep::view&)
|
||||
{
|
||||
wsrep::log_info() << "View";
|
||||
}
|
||||
|
@ -6,6 +6,7 @@
|
||||
#define WSREP_DB_SERVER_CONTEXT_HPP
|
||||
|
||||
#include "wsrep/server_state.hpp"
|
||||
#include "wsrep/server_service.hpp"
|
||||
#include "wsrep/client_state.hpp"
|
||||
|
||||
#include <atomic>
|
||||
@ -17,13 +18,15 @@ namespace db
|
||||
{
|
||||
public:
|
||||
server_state(db::server& server,
|
||||
const std::string& name,
|
||||
const std::string& server_id,
|
||||
const std::string& address,
|
||||
const std::string& working_dir)
|
||||
wsrep::server_service& server_service,
|
||||
const std::string& name,
|
||||
const std::string& server_id,
|
||||
const std::string& address,
|
||||
const std::string& working_dir)
|
||||
: wsrep::server_state(
|
||||
mutex_,
|
||||
cond_,
|
||||
server_service,
|
||||
name,
|
||||
server_id,
|
||||
address,
|
||||
@ -33,16 +36,6 @@ namespace db
|
||||
, cond_()
|
||||
, server_(server)
|
||||
{ }
|
||||
wsrep::client_state* local_client_state() override;
|
||||
wsrep::client_state* streaming_applier_client_state() override;
|
||||
void release_client_state(wsrep::client_state*) override;
|
||||
bool sst_before_init() const override;
|
||||
int start_sst(const std::string&, const wsrep::gtid&, bool) override;
|
||||
std::string sst_request() override;
|
||||
void background_rollback(wsrep::client_state&) override;
|
||||
void log_dummy_write_set(wsrep::client_state&, const wsrep::ws_meta&)
|
||||
override;
|
||||
void log_view(wsrep::client_state&, const wsrep::view&) override;
|
||||
private:
|
||||
wsrep::default_mutex mutex_;
|
||||
wsrep::default_condition_variable cond_;
|
||||
|
Reference in New Issue
Block a user