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) {};
73 virtual criterium *
clone()
const = 0;
86 class crit_in_place_is_inode :
public criterium
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;
97 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_is_inode(*
this); };
103 class crit_in_place_is_dir :
public criterium
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;
114 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_is_dir(*
this); };
120 class crit_in_place_is_file :
public criterium
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;
131 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_is_file(*
this); };
138 class crit_in_place_is_hardlinked_inode :
public criterium
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;
149 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_is_hardlinked_inode(*
this); };
157 class crit_in_place_is_new_hardlinked_inode :
public criterium
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;
168 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_is_new_hardlinked_inode(*
this); };
176 class crit_in_place_data_more_recent :
public criterium
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;
187 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_data_more_recent(*
this); };
200 class crit_in_place_data_more_recent_or_equal_to :
public criterium
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;
211 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_data_more_recent_or_equal_to(*
this); };
223 class crit_in_place_data_bigger :
public criterium
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;
234 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_data_bigger(*
this); };
244 class crit_in_place_data_saved :
public criterium
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;
255 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_data_saved(*
this); };
261 class crit_in_place_data_dirty :
public criterium
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;
272 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_data_dirty(*
this); };
277 class crit_in_place_data_sparse :
public criterium
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;
288 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_data_sparse(*
this); };
294 class crit_in_place_has_delta_sig :
public criterium
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;
305 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_has_delta_sig(*
this); };
308 class crit_in_place_is_binary_patch :
public criterium
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;
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); };
334 class crit_same_inode_data :
public criterium
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;
345 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_same_inode_data(*
this); };
352 class crit_in_place_EA_present :
public criterium
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;
363 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_EA_present(*
this); };
374 class crit_in_place_EA_more_recent :
public criterium
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;
386 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_EA_more_recent(*
this); };
398 class crit_in_place_EA_more_recent_or_equal_to :
public criterium
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;
409 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_EA_more_recent_or_equal_to(*
this); };
421 class crit_in_place_more_EA :
public criterium
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;
432 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_more_EA(*
this); };
441 class crit_in_place_EA_bigger :
public crit_in_place_more_EA
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;
452 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_EA_bigger(*
this); };
460 class crit_in_place_EA_saved :
public criterium
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;
471 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_in_place_EA_saved(*
this); };
480 class crit_same_type :
public criterium
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;
491 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_same_type(*
this); };
497 class crit_not :
public criterium
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(); };
508 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_not(*
this); };
514 void copy_from(
const crit_not & ref);
515 void destroy() {
if(x_crit !=
nullptr) {
delete x_crit; x_crit =
nullptr; } };
520 class crit_and :
public criterium
523 crit_and() { clear(); };
524 crit_and(
const crit_and & ref) : criterium(ref) { copy_from(ref); };
525 crit_and(crit_and && ref) =
default;
526 crit_and & operator = (
const crit_and & ref) { detruit(); copy_from(ref);
return *
this; };
527 crit_and & operator = (crit_and && ref)
noexcept =
default;
528 ~crit_and() { detruit(); };
530 void add_crit(
const criterium & ref);
531 void clear() { detruit(); };
534 void gobe(crit_and & to_be_voided);
537 virtual criterium *
clone()
const override {
return new (std::nothrow) crit_and(*
this); };
540 std::deque<criterium *> operand;
543 void copy_from(
const crit_and & ref);
547 class crit_or :
public crit_and
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;
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); };
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;
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); };
exception used when memory has been exhausted
the base class for all entry that have a name
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
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
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