#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 createInstance(const QString &server) { if (server == QString{"amdatest"}) { return std::make_unique(); } 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(); } } } // 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; }