##// END OF EJS Templates
Uses previous class to generate data source's name (uses server's name)
Uses previous class to generate data source's name (uses server's name)

File last commit:

r1146:f38fedd3e3cb
r1147:ca11941ca506
Show More
AmdaServer.cpp
45 lines | 1.4 KiB | text/x-c | CppLexer
#include "AmdaServer.h"
Q_LOGGING_CATEGORY(LOG_AmdaServer, "AmdaServer")
namespace {
/// Default AMDA server
struct AmdaDefaultServer : public AmdaServer {
public:
QString name() const override { return QStringLiteral("AMDA (default)"); }
QString url() const override { return QStringLiteral("amda.irap.omp.eu"); }
};
/// Alternative AMDA server (tests)
struct AmdaTestServer : public AmdaServer {
public:
QString name() const override { return QStringLiteral("AMDA (test)"); }
QString url() const override { return QStringLiteral("amdatest.irap.omp.eu"); }
};
/// @return an AMDA server instance created from the name of the server passed in parameter. If the
/// name does not match any known server, a default server instance is created
std::unique_ptr<AmdaServer> createInstance(const QString &server)
{
if (server == QString{"amdatest"}) {
return std::make_unique<AmdaTestServer>();
}
else {
if (server != QString{"default"}) {
qCWarning(LOG_AmdaServer())
<< QObject::tr("Unknown server '%1': default AMDA server will be used").arg(server);
}
return std::make_unique<AmdaDefaultServer>();
}
}
} // namespace
AmdaServer &AmdaServer::instance()
{
// Creates instance depending on the SCIQLOP_AMDA_SERVER value at compile time
static auto instance = createInstance(SCIQLOP_AMDA_SERVER);
return *instance;
}