Elements  6.0.1
A C++ base framework for the Euclid Software.
IrodsSynchronizer.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 Elements {
24 inline namespace Services {
25 namespace DataSync {
26 
28  return checkCall("iget --help");
29 }
30 
32  const DependencyConfiguration& dependency)
33  : DataSynchronizer(connection, dependency) {
34  if (not irodsIsInstalled()) {
35  throw std::runtime_error("You are trying to use iRODS, "
36  "but it does not seem to be installed.");
37  }
38 }
39 
41  std::string cmd = "irsync i:";
42  cmd += distantFile.string() + " " + localFile.string();
43  return cmd;
44 }
45 
46 } // namespace DataSync
47 } // namespace Services
48 } // namespace Elements
The connection configuration mainly holds:
Base class to synchronize test data.
The dependency configurations holds, for each test file to be retrieved:
IrodsSynchronizer(const ConnectionConfiguration &connection, const DependencyConfiguration &dependency)
std::string createDownloadCommand(path distantFile, path localFile) const override
ELEMENTS_API bool irodsIsInstalled()
Check whether the iRODS client is installed.
Path::Item path
importing the path item from ElementsKernel
Definition: DataSyncUtils.h:41
ELEMENTS_API bool checkCall(const std::string &command)