Disk ARchive  2.7.15
Full featured and portable backup and archiving tool
libdar_slave.hpp
Go to the documentation of this file.
1 /*********************************************************************/
2 // dar - disk archive - a backup/restoration program
3 // Copyright (C) 2002-2024 Denis Corbin
4 //
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 //
19 // to contact the author, see the AUTHOR file
20 /*********************************************************************/
21 
25 
26 #ifndef LIBDAR_SLAVE_HPP
27 #define LIBDAR_SLAVE_HPP
28 
29 #include "../my_config.h"
30 
31 #include <memory>
32 
33 #include "infinint.hpp"
34 #include "user_interaction.hpp"
35 
36 namespace libdar
37 {
38 
41 
42 
44 
46  {
47  public:
49 
67  libdar_slave(std::shared_ptr<user_interaction> & dialog,
68  const std::string & folder,
69  const std::string & basename,
70  const std::string & extension,
71  bool input_pipe_is_fd,
72  const std::string & input_pipe,
73  bool output_pipe_is_fd,
74  const std::string & output_pipe,
75  const std::string & execute,
76  const infinint & min_digits);
77  libdar_slave(const libdar_slave & ref) = delete;
78  libdar_slave(libdar_slave && ref) noexcept = default;
79  libdar_slave & operator = (const libdar_slave & ref) = delete;
80  libdar_slave & operator = (libdar_slave && ref) noexcept = default;
81  ~libdar_slave();
82 
84 
88  void run();
89 
90  private:
91  class i_libdar_slave;
92  std::unique_ptr<i_libdar_slave> pimpl;
93 
94  };
95 
97 
98 } // end of namespace
99 
100 #endif
the arbitrary large positive integer class
class implementing the dar_slave feature
void run()
enslave this object to the dar process through the created pipes
libdar_slave(std::shared_ptr< user_interaction > &dialog, const std::string &folder, const std::string &basename, const std::string &extension, bool input_pipe_is_fd, const std::string &input_pipe, bool output_pipe_is_fd, const std::string &output_pipe, const std::string &execute, const infinint &min_digits)
libdar_slave constructor
switch module to limitint (32 ou 64 bits integers) or infinint
libdar namespace encapsulate all libdar symbols
Definition: archive.hpp:47
defines the interaction interface between libdar and users.