Elements  5.8
A C++ base framework for the Euclid Software.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
WebdavSynchronizer.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 <string>
20 
22 
23 namespace ElementsServices {
24 namespace DataSync {
25 
27  return checkCall ("wget -h");
28 }
29 
31  const ConnectionConfiguration& connection,
32  const DependencyConfiguration& dependency) :
33  DataSynchronizer(connection, dependency) {
34  if (not webdavIsInstalled()) {
35  throw std::runtime_error(
36  "You are trying to use WebDAV, "
37  "but it does not seem to be installed.");
38  }
39 }
40 
42  path distantFile,
43  path localFile) const {
44  std::string cmd = "wget --no-check-certificate ";
45  cmd += " --user=" + m_connection.user;
46  cmd += " --password=" + m_connection.password;
47  cmd += " -O " + localFile.string();
48  cmd += " " + m_connection.hostUrl + "/" + distantFile.string();
49  cmd += " --tries " + std::to_string(m_connection.tries);
50  return cmd;
51 }
52 
53 } // namespace DataSync
54 } // namespace ElementsServices
std::string createDownloadCommand(path distantFile, path localFile) const override
The dependency configurations holds, for each test file to be retrieved:
T to_string(T...args)
STL class.
Base class to synchronize test data.
boost::filesystem::path path
Definition: DataSyncUtils.h:33
WebdavSynchronizer(const ConnectionConfiguration &connection, const DependencyConfiguration &dependency)
ELEMENTS_API bool webdavIsInstalled()
Check whether the WebDAV client is installed.
The connection configuration mainly holds:
ELEMENTS_API bool checkCall(std::string command)