##// END OF EJS Templates
Determines AMDA server at compile time
Alexandre Leroux -
r1146:f38fedd3e3cb
parent child
Show More
@@ -7,6 +7,11
7
7
8 Q_DECLARE_LOGGING_CATEGORY(LOG_AmdaServer)
8 Q_DECLARE_LOGGING_CATEGORY(LOG_AmdaServer)
9
9
10 // Directive used to determine the active AMDA server
11 #ifndef SCIQLOP_AMDA_SERVER
12 #define SCIQLOP_AMDA_SERVER "default"
13 #endif
14
10 /**
15 /**
11 * @brief The AmdaServer class represents the server used to retrieve AMDA data (singleton).
16 * @brief The AmdaServer class represents the server used to retrieve AMDA data (singleton).
12 *
17 *
@@ -18,9 +18,28 public:
18 QString url() const override { return QStringLiteral("amdatest.irap.omp.eu"); }
18 QString url() const override { return QStringLiteral("amdatest.irap.omp.eu"); }
19 };
19 };
20
20
21 /// @return an AMDA server instance created from the name of the server passed in parameter. If the
22 /// name does not match any known server, a default server instance is created
23 std::unique_ptr<AmdaServer> createInstance(const QString &server)
24 {
25 if (server == QString{"amdatest"}) {
26 return std::make_unique<AmdaTestServer>();
27 }
28 else {
29 if (server != QString{"default"}) {
30 qCWarning(LOG_AmdaServer())
31 << QObject::tr("Unknown server '%1': default AMDA server will be used").arg(server);
32 }
33
34 return std::make_unique<AmdaDefaultServer>();
35 }
36 }
37
21 } // namespace
38 } // namespace
22
39
23 AmdaServer &AmdaServer::instance()
40 AmdaServer &AmdaServer::instance()
24 {
41 {
25 /// @todo ALX
42 // Creates instance depending on the SCIQLOP_AMDA_SERVER value at compile time
43 static auto instance = createInstance(SCIQLOP_AMDA_SERVER);
44 return *instance;
26 }
45 }
General Comments 0
You need to be logged in to leave comments. Login now