Disk ARchive 2.8.1
Full featured and portable backup and archiving tool
Loading...
Searching...
No Matches
criterium.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 CRITERIUM_HPP
27#define CRITERIUM_HPP
28
29#include "../my_config.h"
30
31#include <deque>
32#include "erreurs.hpp"
33#include "infinint.hpp"
34
35namespace libdar
36{
37
40
42 class cat_nomme;
43
45
50
51 class criterium
52 {
53 public:
54 criterium() {};
55 criterium(const criterium & ref) = default;
56 criterium(criterium && ref) noexcept = default;
57 criterium & operator = (const criterium & ref) = default;
58 criterium & operator = (criterium && ref) noexcept = default;
59 virtual ~criterium() noexcept(false) {};
60
62
66 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const = 0;
67
69
73 virtual criterium *clone() const = 0;
74 };
75
76 // //////////////////////////////////////////////////////////
77 // ////////// a set of criterium classes follows ////////////
78 // //////////////////////////////////////////////////////////
79
80
82
85
86 class crit_in_place_is_inode : public criterium
87 {
88 public:
89 crit_in_place_is_inode() {};
90 crit_in_place_is_inode(const crit_in_place_is_inode & ref) = default;
91 crit_in_place_is_inode(crit_in_place_is_inode && ref) noexcept = default;
92 crit_in_place_is_inode & operator = (const crit_in_place_is_inode & ref) = default;
93 crit_in_place_is_inode & operator = (crit_in_place_is_inode && ref) noexcept = default;
94 ~crit_in_place_is_inode() = default;
95
96 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
97 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_is_inode(*this); };
98 };
99
100
102
103 class crit_in_place_is_dir : public criterium
104 {
105 public:
106 crit_in_place_is_dir() {};
107 crit_in_place_is_dir(const crit_in_place_is_dir & ref) = default;
108 crit_in_place_is_dir(crit_in_place_is_dir && ref) noexcept = default;
109 crit_in_place_is_dir & operator = (const crit_in_place_is_dir & ref) = default;
110 crit_in_place_is_dir & operator = (crit_in_place_is_dir && ref) noexcept = default;
111 ~crit_in_place_is_dir() = default;
112
113 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
114 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_is_dir(*this); };
115 };
116
117
119
120 class crit_in_place_is_file : public criterium
121 {
122 public:
123 crit_in_place_is_file() {};
124 crit_in_place_is_file(const crit_in_place_is_file & ref) = default;
125 crit_in_place_is_file(crit_in_place_is_file && ref) noexcept = default;
126 crit_in_place_is_file & operator = (const crit_in_place_is_file & ref) = default;
127 crit_in_place_is_file & operator = (crit_in_place_is_file && ref) noexcept = default;
128 ~crit_in_place_is_file() = default;
129
130 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
131 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_is_file(*this); };
132 };
133
135
137
138 class crit_in_place_is_hardlinked_inode : public criterium
139 {
140 public:
141 crit_in_place_is_hardlinked_inode() {};
142 crit_in_place_is_hardlinked_inode(const crit_in_place_is_hardlinked_inode & ref) = default;
143 crit_in_place_is_hardlinked_inode(crit_in_place_is_hardlinked_inode && ref) noexcept = default;
144 crit_in_place_is_hardlinked_inode & operator = (const crit_in_place_is_hardlinked_inode & ref) = default;
145 crit_in_place_is_hardlinked_inode & operator = (crit_in_place_is_hardlinked_inode && ref) noexcept = default;
146 ~crit_in_place_is_hardlinked_inode() = default;
147
148 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
149 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_is_hardlinked_inode(*this); };
150 };
151
152
156
157 class crit_in_place_is_new_hardlinked_inode : public criterium
158 {
159 public:
160 crit_in_place_is_new_hardlinked_inode() {};
161 crit_in_place_is_new_hardlinked_inode(const crit_in_place_is_new_hardlinked_inode & ref) = default;
162 crit_in_place_is_new_hardlinked_inode(crit_in_place_is_new_hardlinked_inode && ref) noexcept = default;
163 crit_in_place_is_new_hardlinked_inode & operator = (const crit_in_place_is_new_hardlinked_inode & ref) = default;
164 crit_in_place_is_new_hardlinked_inode & operator = (crit_in_place_is_new_hardlinked_inode && ref) noexcept = default;
165 ~crit_in_place_is_new_hardlinked_inode() = default;
166
167 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
168 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_is_new_hardlinked_inode(*this); };
169 };
170
171
173
175
176 class crit_in_place_data_more_recent : public criterium
177 {
178 public:
179 crit_in_place_data_more_recent(const infinint & hourshift = 0) : x_hourshift(hourshift) {};
180 crit_in_place_data_more_recent(const crit_in_place_data_more_recent & ref) = default;
181 crit_in_place_data_more_recent(crit_in_place_data_more_recent && ref) noexcept = default;
182 crit_in_place_data_more_recent & operator = (const crit_in_place_data_more_recent & ref) = default;
183 crit_in_place_data_more_recent & operator = (crit_in_place_data_more_recent && ref) noexcept = default;
184 ~crit_in_place_data_more_recent() = default;
185
186 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
187 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_data_more_recent(*this); };
188
189 private:
190 infinint x_hourshift;
191 };
192
193
196
198
199
200 class crit_in_place_data_more_recent_or_equal_to : public criterium
201 {
202 public:
203 crit_in_place_data_more_recent_or_equal_to(const infinint & date, const infinint & hourshift = 0) : x_hourshift(hourshift), x_date(date) {};
204 crit_in_place_data_more_recent_or_equal_to(const crit_in_place_data_more_recent_or_equal_to & ref) = default;
205 crit_in_place_data_more_recent_or_equal_to(crit_in_place_data_more_recent_or_equal_to && ref) noexcept = default;
206 crit_in_place_data_more_recent_or_equal_to & operator = (const crit_in_place_data_more_recent_or_equal_to & ref) = default;
207 crit_in_place_data_more_recent_or_equal_to & operator = (crit_in_place_data_more_recent_or_equal_to && ref) noexcept = default;
208 ~crit_in_place_data_more_recent_or_equal_to() = default;
209
210 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
211 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_data_more_recent_or_equal_to(*this); };
212
213 private:
214 infinint x_hourshift;
215 infinint x_date;
216 };
217
218
220
222
223 class crit_in_place_data_bigger : public criterium
224 {
225 public:
226 crit_in_place_data_bigger() {};
227 crit_in_place_data_bigger(const crit_in_place_data_bigger & ref) = default;
228 crit_in_place_data_bigger(crit_in_place_data_bigger && ref) noexcept = default;
229 crit_in_place_data_bigger & operator = (const crit_in_place_data_bigger & ref) = default;
230 crit_in_place_data_bigger & operator = (crit_in_place_data_bigger && ref) noexcept = default;
231 ~crit_in_place_data_bigger() = default;
232
233 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
234 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_data_bigger(*this); };
235 };
236
237
238
241
243
244 class crit_in_place_data_saved : public criterium
245 {
246 public:
247 crit_in_place_data_saved() {};
248 crit_in_place_data_saved(const crit_in_place_data_saved & ref) = default;
249 crit_in_place_data_saved(crit_in_place_data_saved && ref) noexcept = default;
250 crit_in_place_data_saved & operator = (const crit_in_place_data_saved & ref) = default;
251 crit_in_place_data_saved & operator = (crit_in_place_data_saved && ref) noexcept = default;
252 ~crit_in_place_data_saved() = default;
253
254 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
255 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_data_saved(*this); };
256 };
257
258
260
261 class crit_in_place_data_dirty : public criterium
262 {
263 public:
264 crit_in_place_data_dirty() {};
265 crit_in_place_data_dirty(const crit_in_place_data_dirty & ref) = default;
266 crit_in_place_data_dirty(crit_in_place_data_dirty && ref) noexcept = default;
267 crit_in_place_data_dirty & operator = (const crit_in_place_data_dirty & ref) = default;
268 crit_in_place_data_dirty & operator = (crit_in_place_data_dirty && ref) noexcept = default;
269 ~crit_in_place_data_dirty() = default;
270
271 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
272 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_data_dirty(*this); };
273 };
274
276
277 class crit_in_place_data_sparse : public criterium
278 {
279 public:
280 crit_in_place_data_sparse() {};
281 crit_in_place_data_sparse(const crit_in_place_data_sparse & ref) = default;
282 crit_in_place_data_sparse(crit_in_place_data_sparse && ref) noexcept = default;
283 crit_in_place_data_sparse & operator = (const crit_in_place_data_sparse & ref) = default;
284 crit_in_place_data_sparse & operator = (crit_in_place_data_sparse && ref) noexcept = default;
285 ~crit_in_place_data_sparse() = default;
286
287 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
288 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_data_sparse(*this); };
289 };
290
291
293
294 class crit_in_place_has_delta_sig : public criterium
295 {
296 public:
297 crit_in_place_has_delta_sig() {};
298 crit_in_place_has_delta_sig(const crit_in_place_has_delta_sig & ref) = default;
299 crit_in_place_has_delta_sig(crit_in_place_has_delta_sig && ref) noexcept = default;
300 crit_in_place_has_delta_sig & operator = (const crit_in_place_has_delta_sig & ref) = default;
301 crit_in_place_has_delta_sig & operator = (crit_in_place_has_delta_sig && ref) noexcept = default;
302 ~crit_in_place_has_delta_sig() = default;
303
304 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
305 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_has_delta_sig(*this); };
306 };
307
308 class crit_in_place_is_binary_patch : public criterium
309 {
310 public:
311 crit_in_place_is_binary_patch() {};
312 crit_in_place_is_binary_patch(const crit_in_place_is_binary_patch & ref) = default;
313 crit_in_place_is_binary_patch(crit_in_place_is_binary_patch && ref) noexcept = default;
314 crit_in_place_is_binary_patch & operator = (const crit_in_place_is_binary_patch & ref) = default;
315 crit_in_place_is_binary_patch & operator = (crit_in_place_is_binary_patch && ref) noexcept = default;
316 ~crit_in_place_is_binary_patch() = default;
317
318 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
319 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_is_binary_patch(*this); };
320 };
321
323
333
334 class crit_same_inode_data : public criterium
335 {
336 public:
337 crit_same_inode_data() {};
338 crit_same_inode_data(const crit_same_inode_data & ref) = default;
339 crit_same_inode_data(crit_same_inode_data && ref) noexcept = default;
340 crit_same_inode_data & operator = (const crit_same_inode_data & ref) = default;
341 crit_same_inode_data & operator = (crit_same_inode_data && ref) noexcept = default;
342 ~crit_same_inode_data() = default;
343
344 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
345 virtual criterium *clone() const override { return new (std::nothrow) crit_same_inode_data(*this); };
346 };
347
348
351
352 class crit_in_place_EA_present : public criterium
353 {
354 public:
355 crit_in_place_EA_present() {};
356 crit_in_place_EA_present(const crit_in_place_EA_present & ref) = default;
357 crit_in_place_EA_present(crit_in_place_EA_present && ref) noexcept = default;
358 crit_in_place_EA_present & operator = (const crit_in_place_EA_present & ref) = default;
359 crit_in_place_EA_present & operator = (crit_in_place_EA_present && ref) noexcept = default;
360 ~crit_in_place_EA_present() = default;
361
362 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
363 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_EA_present(*this); };
364 };
365
366
368
373
374 class crit_in_place_EA_more_recent : public criterium
375 {
376 public:
377 crit_in_place_EA_more_recent(const infinint & hourshift = 0) : x_hourshift(hourshift) {};
378 crit_in_place_EA_more_recent(const crit_in_place_EA_more_recent & ref) = default;
379 crit_in_place_EA_more_recent(crit_in_place_EA_more_recent && ref) noexcept = default;
380 crit_in_place_EA_more_recent & operator = (const crit_in_place_EA_more_recent & ref) = default;
381 crit_in_place_EA_more_recent & operator = (crit_in_place_EA_more_recent && ref) noexcept = default;
382 ~crit_in_place_EA_more_recent() = default;
383
384
385 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
386 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_EA_more_recent(*this); };
387
388 private:
389 infinint x_hourshift;
390 };
391
392
394
397
398 class crit_in_place_EA_more_recent_or_equal_to : public criterium
399 {
400 public:
401 crit_in_place_EA_more_recent_or_equal_to(const infinint & date, const infinint & hourshift = 0) : x_hourshift(hourshift), x_date(date) {};
402 crit_in_place_EA_more_recent_or_equal_to(const crit_in_place_EA_more_recent_or_equal_to & ref) = default;
403 crit_in_place_EA_more_recent_or_equal_to(crit_in_place_EA_more_recent_or_equal_to && ref) noexcept = default;
404 crit_in_place_EA_more_recent_or_equal_to & operator = (const crit_in_place_EA_more_recent_or_equal_to & ref) = default;
405 crit_in_place_EA_more_recent_or_equal_to & operator = (crit_in_place_EA_more_recent_or_equal_to && ref) noexcept = default;
406 ~crit_in_place_EA_more_recent_or_equal_to() = default;
407
408 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
409 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_EA_more_recent_or_equal_to(*this); };
410
411 private:
412 infinint x_hourshift;
413 infinint x_date;
414 };
415
416
418
420
421 class crit_in_place_more_EA : public criterium
422 {
423 public:
424 crit_in_place_more_EA() {};
425 crit_in_place_more_EA(const crit_in_place_more_EA & ref) = default;
426 crit_in_place_more_EA(crit_in_place_more_EA && ref) noexcept = default;
427 crit_in_place_more_EA & operator = (const crit_in_place_more_EA & ref) = default;
428 crit_in_place_more_EA & operator = (crit_in_place_more_EA && ref) noexcept = default;
429 ~crit_in_place_more_EA() = default;
430
431 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
432 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_more_EA(*this); };
433 };
434
435
436
438
440
441 class crit_in_place_EA_bigger : public crit_in_place_more_EA
442 {
443 public:
444 crit_in_place_EA_bigger() {};
445 crit_in_place_EA_bigger(const crit_in_place_EA_bigger & ref) = default;
446 crit_in_place_EA_bigger(crit_in_place_EA_bigger && ref) noexcept = default;
447 crit_in_place_EA_bigger & operator = (const crit_in_place_EA_bigger & ref) = default;
448 crit_in_place_EA_bigger & operator = (crit_in_place_EA_bigger && ref) noexcept = default;
449 ~crit_in_place_EA_bigger() = default;
450
451 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
452 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_EA_bigger(*this); };
453 };
454
455
457
459
460 class crit_in_place_EA_saved : public criterium
461 {
462 public:
463 crit_in_place_EA_saved() {};
464 crit_in_place_EA_saved(const crit_in_place_EA_saved & ref) = default;
465 crit_in_place_EA_saved(crit_in_place_EA_saved && ref) noexcept = default;
466 crit_in_place_EA_saved & operator = (const crit_in_place_EA_saved & ref) = default;
467 crit_in_place_EA_saved & operator = (crit_in_place_EA_saved && ref) noexcept = default;
468 ~crit_in_place_EA_saved() = default;
469
470 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
471 virtual criterium *clone() const override { return new (std::nothrow) crit_in_place_EA_saved(*this); };
472 };
473
474
476
479
480 class crit_same_type : public criterium
481 {
482 public:
483 crit_same_type() {};
484 crit_same_type(const crit_same_type & ref) = default;
485 crit_same_type(crit_same_type && ref) noexcept = default;
486 crit_same_type & operator = (const crit_same_type & ref) = default;
487 crit_same_type & operator = (crit_same_type && ref) noexcept = default;
488 ~crit_same_type() = default;
489
490 virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override;
491 virtual criterium *clone() const override { return new (std::nothrow) crit_same_type(*this); };
492 };
493
494
496
497 class crit_not : public criterium
498 {
499 public:
500 crit_not(const criterium & crit) { x_crit = crit.clone(); if(x_crit == nullptr) throw Ememory("crit_not::crit_not"); };
501 crit_not(const crit_not & ref): criterium(ref) { copy_from(ref); };
502 crit_not(crit_not && ref) noexcept: criterium(std::move(ref)) { x_crit = nullptr; std::swap(x_crit, ref.x_crit); };
503 crit_not & operator = (const crit_not & ref) { destroy(); copy_from(ref); return *this; };
504 crit_not & operator = (crit_not && ref) noexcept { criterium::operator = (std::move(ref)); std::swap(x_crit, ref.x_crit); return *this; };
505 ~crit_not() { destroy(); };
506
507 virtual bool evaluate(const cat_nomme & first, const cat_nomme & second) const override { return ! x_crit->evaluate(first, second); };
508 virtual criterium *clone() const override { return new (std::nothrow) crit_not(*this); };
509
510 protected:
511 const criterium *x_crit;
512
513 private:
514 void copy_from(const crit_not & ref);
515 void destroy() { if(x_crit != nullptr) { delete x_crit; x_crit = nullptr; } };
516 };
517
519
520 class crit_and : public criterium
521 {
522 public:
523 crit_and() { clear(); };
524 crit_and(const crit_and & ref) : criterium(ref) { copy_from(ref); };
525 crit_and(crit_and && ref) = default; // moving the deque<criterium *> while the pointed to object are untouched
526 crit_and & operator = (const crit_and & ref) { detruit(); copy_from(ref); return *this; };
527 crit_and & operator = (crit_and && ref) noexcept = default; // moving the deque<criterium *> while the pointed to object are untouched
528 ~crit_and() { detruit(); };
529
530 void add_crit(const criterium & ref);
531 void clear() { detruit(); };
532
534 void gobe(crit_and & to_be_voided);
535
536 virtual bool evaluate(const cat_nomme & first, const cat_nomme & second) const override;
537 virtual criterium *clone() const override { return new (std::nothrow) crit_and(*this); };
538
539 protected:
540 std::deque<criterium *> operand;
541
542 private:
543 void copy_from(const crit_and & ref);
544 void detruit();
545 };
546
547 class crit_or : public crit_and
548 {
549 public:
550 crit_or() { clear(); };
551 crit_or(const crit_or & ref) = default;
552 crit_or(crit_or && ref) = default;
553 crit_or & operator = (const crit_or & ref) = default;
554 crit_or & operator = (crit_or && ref) noexcept = default;
555 ~crit_or() = default;
556
557 virtual bool evaluate(const cat_nomme & first, const cat_nomme & second) const override;
558 virtual criterium *clone() const override { return new (std::nothrow) crit_or(*this); };
559
560 };
561
562 class crit_invert : public crit_not
563 {
564 public:
565 crit_invert(const criterium & crit) : crit_not(crit) {};
566 crit_invert(const crit_invert & ref) = default;
567 crit_invert(crit_invert && ref) noexcept = default;
568 crit_invert & operator = (const crit_invert & ref) = default;
569 crit_invert & operator = (crit_invert && ref) noexcept = default;
570 ~crit_invert() = default;
571
572 virtual bool evaluate(const cat_nomme & first, const cat_nomme & second) const override { return x_crit->evaluate(second, first); };
573 virtual criterium *clone() const override { return new (std::nothrow) crit_invert(*this); };
574 };
575
577
578} // end of namespace
579
580#endif
exception used when memory has been exhausted
Definition erreurs.hpp:127
the base class for all entry that have a name
Definition cat_nomme.hpp:45
realises the AND operator
virtual criterium * clone() const override
clone construction method
void gobe(crit_and &to_be_voided)
this call merges to the current call the arguments of another "crit_and", the given argument is clear...
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
Definition criterium.hpp:97
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
realises the negation of the criterium given in argument to its constructor
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
the generic criterium class, parent of all criterium
Definition criterium.hpp:52
virtual criterium * clone() const =0
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const =0
criterum interface method
the arbitrary large positive integer class
contains all the excetion class thrown by libdar
switch module to limitint (32 ou 64 bits integers) or infinint
include macro defined by the configure script and some specific additional ones
libdar namespace encapsulate all libdar symbols
Definition archive.hpp:47