1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-06-16 02:01:44 +03:00

Refactored provider specific code out of server_context.cpp

This commit is contained in:
Teemu Ollakka
2018-06-12 10:52:56 +03:00
parent 97d9f93648
commit d6f185c278
7 changed files with 270 additions and 224 deletions

View File

@ -3,9 +3,41 @@
//
#include "wsrep/provider.hpp"
#include "wsrep/logger.hpp"
#include "mock_provider.hpp"
#include "wsrep_provider_v26.hpp"
wsrep::provider* wsrep::provider::make_provider(
const std::string&)
wsrep::server_context& server_context,
const std::string& provider_spec,
const std::string& provider_options)
{
try
{
if (provider_spec == "mock")
{
return new wsrep::mock_provider(server_context);
}
else
{
return new wsrep::wsrep_provider_v26(
server_context, provider_options, provider_spec);
}
}
catch (const wsrep::runtime_error& e)
{
wsrep::log_error() << "Failed to create a new provider '"
<< provider_spec << "'"
<< " with options '" << provider_options
<< "':" << e.what();
}
catch (...)
{
wsrep::log_error() << "Caught unknown exception when trying to "
<< "create a new provider '"
<< provider_spec << "'"
<< " with options '" << provider_options;
}
return 0;
}