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:
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user