| Disk ARchive 2.7.19 Full featured and portable backup and archiving tool

Loading...
Searching...
No Matches
archive_options5.hpp
Go to the documentation of this file.
1/*********************************************************************/
2// dar - disk archive - a backup/restoration program
3// Copyright (C) 2002-2025 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 ARCHIVE_OPTIONS5_HPP
27#define ARCHIVE_OPTIONS5_HPP
28
29#include "archive_options.hpp"
30#include "archive_options_listing_shell.hpp"
31
32 namespace libdar5
33{
34
35 // ///////////////////////////////////////////////////////
36 // //////////// OPTIONS FOR OPENNING AN ARCHIVE //////////
37 // ///////////////////////////////////////////////////////
38
41
42 using libdar::entrepot;
43
44 class archive_options_read: public libdar::archive_options_read
45 {
46 public:
47 void set_entrepot(const entrepot & entr)
48 {
49 std::shared_ptr<libdar::entrepot> tmp(entr.clone());
50 if(!tmp)
51 throw Ememory("libdar5::archive_options_create::set_entrepot");
52 libdar::archive_options_read::set_entrepot(tmp);
53 }
54
55 void set_ref_entrepot(const entrepot & entr)
56 {
57 std::shared_ptr<libdar::entrepot> tmp(entr.clone());
58 if(!tmp)
59 throw Ememory("libdar5::archive_options_create::set_ref_entrepot");
60 libdar::archive_options_read::set_ref_entrepot(tmp);
61 }
62 };
63
64
65 // ///////////////////////////////////////////////////////
66 // /////// OPTIONS FOR CREATING AN ARCHIVE ///////////////
67 // ///////////////////////////////////////////////////////
68
69 class archive_options_create: public libdar::archive_options_create
70 {
71 public:
72 using libdar::archive_options_create::archive_options_create;
73
75
89 void set_reference(libdar::archive *ref_arch)
90 {
91 libdar::archive_options_create::set_reference(
92 std::shared_ptr<libdar::archive>(ref_arch,
93 [](libdar::archive* ptr) {} )
94 // the custom deleter must not delete the object pointed to by
95 // by ref, this is why it does nothing
96 );
97 };
98
99 void set_entrepot(const entrepot & entr)
100 {
101 std::shared_ptr<libdar::entrepot> tmp(entr.clone());
102 if(!tmp)
103 throw Ememory("libdar5::archive_options_create::set_entrepot");
104 libdar::archive_options_create::set_entrepot(tmp);
105 }
106
107 };
108
109 // ///////////////////////////////////////////////////////
110 // ////////// OPTIONS FOR ISOLATING A CATALOGUE //////////
111 // ///////////////////////////////////////////////////////
112
113
114 class archive_options_isolate: public libdar::archive_options_isolate
115 {
116 void set_entrepot(const entrepot & entr)
117 {
118 std::shared_ptr<libdar::entrepot> tmp(entr.clone());
119 if(!tmp)
120 throw Ememory("libdar5::archive_options_create::set_entrepot");
121 libdar::archive_options_isolate::set_entrepot(tmp);
122 }
123 };
124
125 // ///////////////////////////////////////////////////////
126 // //////// OPTONS FOR MERGING ARCHIVES //////////////////
127 // ///////////////////////////////////////////////////////
128
129 class archive_options_merge: public libdar::archive_options_merge
130 {
131 public:
132
133 using libdar::archive_options_merge::archive_options_merge;
134
135 void set_auxilliary_ref(libdar::archive *ref)
136 {
137 libdar::archive_options_merge::set_auxiliary_ref(
138 std::shared_ptr<libdar::archive>(ref,
139 [](libdar::archive* ptr) {})
140 // the custom deleter must not delete the object pointed to by
141 // by ref, this is why it does nothing
142 );
143 };
144
145 void set_entrepot(const entrepot & entr)
146 {
147 std::shared_ptr<libdar::entrepot> tmp(entr.clone());
148 if(!tmp)
149 throw Ememory("libdar5::archive_options_create::set_entrepot");
150 libdar::archive_options_merge::set_entrepot(tmp);
151 }
152 };
153
154
155 // ///////////////////////////////////////////////////////
156 // //////// OPTONS FOR EXTRACTING FILES FROM ARCHIVE /////
157 // ///////////////////////////////////////////////////////
158
159 using libdar::archive_options_extract;
160
161
162 // ///////////////////////////////////////////////////////
163 // //////// OPTIONS FOR LISTING AN ARCHIVE ///////////////
164 // ///////////////////////////////////////////////////////
165
166 class archive_options_listing: public libdar::archive_options_listing_shell
167 {
168 public:
169 using libdar::archive_options_listing_shell::archive_options_listing_shell;
170 };
171
172
173 // ///////////////////////////////////////////////////////
174 // //////// OPTONS FOR DIFFING AN ARCHIVE ////////////////
175 // ///////////////////////////////////////////////////////
176
177 using libdar::archive_options_diff;
178
179
180 // ///////////////////////////////////////////////////////
181 // //////// OPTONS FOR TESTING AN ARCHIVE ////////////////
182 // ///////////////////////////////////////////////////////
183
184 using libdar::archive_options_test;
185
186
187 // ///////////////////////////////////////////////////////
188 // /////// OPTIONS FOR REPAIRING AN ARCHIVE //////////////
189 // ///////////////////////////////////////////////////////
190
191 using libdar::archive_options_repair;
192
194
195} // end of namespace
196
197#endif
archive_options.hpp
this file contains a set of classes used to transmit options to archive operation
archive_options_listing_shell.hpp
this file contains shell_interaction options class for listing
libdar::archive_options_create
class holding optional parameters used to create an archive
Definition archive_options.hpp:288
libdar::archive_options_create::set_entrepot
void set_entrepot(const std::shared_ptr< entrepot > &entr)
defines the protocol to use for slices
Definition archive_options.hpp:538
libdar::archive_options_create::set_reference
void set_reference(std::shared_ptr< archive > ref_arch)
set the archive to take as reference (nullptr for a full backup)
Definition archive_options.hpp:311
libdar::archive_options_extract
class holding optional parameters used to extract files from an existing archive
Definition archive_options.hpp:1312
libdar::archive_options_isolate
class holding optional parameters used to isolate an existing archive
Definition archive_options.hpp:758
libdar::archive_options_isolate::set_entrepot
void set_entrepot(const std::shared_ptr< entrepot > &entr)
defines the protocol to use for slices
Definition archive_options.hpp:867
libdar::archive_options_listing_shell
class holding optional shell specific parameters used to list the contents of an existing archive
Definition archive_options_listing_shell.hpp:48
libdar::archive_options_merge
class holding optional parameters used to proceed to the merge operation
Definition archive_options.hpp:989
libdar::archive_options_merge::set_entrepot
void set_entrepot(const std::shared_ptr< entrepot > &entr)
defines the protocol to use for slices
Definition archive_options.hpp:1154
libdar::archive_options_read
class holding optional parameters used to read an existing archive
Definition archive_options.hpp:65
libdar::archive_options_read::set_entrepot
void set_entrepot(const std::shared_ptr< entrepot > &entr)
defines the protocol to use to retrieve slices
Definition archive_options.hpp:155
libdar::archive_options_read::set_ref_entrepot
void set_ref_entrepot(const std::shared_ptr< entrepot > &entr)
defines the protocol to use to retrieve slices of the reference archive (where the external catalogue...
Definition archive_options.hpp:208
libdar::archive_options_repair
class holding optional parameters used to create an archive
Definition archive_options.hpp:1776
libdar::archive_options_test
class holding optional parameters used to test the structure coherence of an existing archive
Definition archive_options.hpp:1693
libdar::archive
the archive class realizes the most general operations on archives
Definition archive.hpp:65
libdar::entrepot
the Entrepot interface
Definition entrepot.hpp:56
libdar5
libdar5 namespace encapsulate all libdar symbols
Definition archive5.hpp:37