Elements
6.2
A C++ base framework for the Euclid Software.
ElementsServices
src
lib
DataSync.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2012-2020 Euclid Science Ground Segment
3
*
4
* This library is free software; you can redistribute it and/or modify it under
5
* the terms of the GNU Lesser General Public License as published by the Free
6
* Software Foundation; either version 3.0 of the License, or (at your option)
7
* any later version.
8
*
9
* This library is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12
* details.
13
*
14
* You should have received a copy of the GNU Lesser General Public License
15
* along with this library; if not, write to the Free Software Foundation, Inc.,
16
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#include "
ElementsServices/DataSync.h
"
20
#include "
ElementsServices/DataSync/DataSynchronizer.h
"
21
#include "
ElementsServices/DataSync/DataSynchronizerMaker.h
"
22
23
namespace
Elements
{
24
inline
namespace
Services {
25
namespace
DataSync {
26
27
DataSync::DataSync
(
path
connectionFile,
path
dependencyFile)
28
: m_connectionConfig(connectionFile)
29
, m_distantRoot(m_connectionConfig.distantRoot)
30
, m_localRoot(m_connectionConfig.localRoot)
31
, m_dependencyConfig(m_distantRoot, m_localRoot, dependencyFile) {}
32
33
void
DataSync::download() {
34
const
auto
& synchronizer =
createSynchronizer
(
m_connectionConfig
,
m_dependencyConfig
);
35
synchronizer->downloadAllFiles();
36
}
37
38
void
DataSync::downloadWithFallback(
path
connectionFile) {
39
try
{
40
download
();
41
}
catch
(
std::exception
&
e
) {
42
m_connectionConfig
=
ConnectionConfiguration
(connectionFile);
43
download
();
44
}
45
}
46
47
path
DataSync::absolutePath(
path
relativePath) {
48
return
m_localRoot
/ relativePath;
49
}
50
51
}
// namespace DataSync
52
}
// namespace Services
53
}
// namespace Elements
DataSynchronizerMaker.h
std::exception
STL class.
Elements::Services::DataSync::createSynchronizer
ELEMENTS_API std::shared_ptr< DataSynchronizer > createSynchronizer(ConnectionConfiguration connection, DependencyConfiguration dependency)
Definition:
DataSynchronizerMaker.cpp:27
Elements::Services::DataSync::DataSync::m_dependencyConfig
DependencyConfiguration m_dependencyConfig
Definition:
DataSync.h:97
DataSync.h
Elements::Services::DataSync::DataSync
A class to download test data from a data repository prior to the unit test run.
Definition:
DataSync.h:47
Elements::Services::DataSync::DataSync::m_connectionConfig
ConnectionConfiguration m_connectionConfig
Definition:
DataSync.h:94
Elements::Services::DataSync::DataSync::download
void download()
Download the test data.
Definition:
DataSync.cpp:33
DataSynchronizer.h
Elements::Services::DataSync::DataSync::m_localRoot
path m_localRoot
Definition:
DataSync.h:96
Elements::Kernel::Units::e
constexpr double e
The base of the natural logarithm .
Definition:
MathConstants.h:51
Elements::Services::DataSync::ConnectionConfiguration
The connection configuration mainly holds:
Definition:
ConnectionConfiguration.h:75
Elements
Definition:
callBackExample.h:35
Elements::Services::DataSync::path
Path::Item path
importing the path item from ElementsKernel
Definition:
DataSyncUtils.h:41
Generated by
1.8.17