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) {};
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
320 class crit_same_inode_data :
public criterium
323 crit_same_inode_data() {};
324 crit_same_inode_data(
const crit_same_inode_data & ref) =
default;
325 crit_same_inode_data(crit_same_inode_data && ref)
noexcept =
default;
326 crit_same_inode_data & operator = (
const crit_same_inode_data & ref) =
default;
327 crit_same_inode_data & operator = (crit_same_inode_data && ref)
noexcept =
default;
328 ~crit_same_inode_data() =
default;
338 class crit_in_place_EA_present :
public criterium
341 crit_in_place_EA_present() {};
342 crit_in_place_EA_present(
const crit_in_place_EA_present & ref) =
default;
343 crit_in_place_EA_present(crit_in_place_EA_present && ref)
noexcept =
default;
344 crit_in_place_EA_present & operator = (
const crit_in_place_EA_present & ref) =
default;
345 crit_in_place_EA_present & operator = (crit_in_place_EA_present && ref)
noexcept =
default;
346 ~crit_in_place_EA_present() =
default;
360 class crit_in_place_EA_more_recent :
public criterium
363 crit_in_place_EA_more_recent(
const infinint & hourshift = 0) : x_hourshift(hourshift) {};
364 crit_in_place_EA_more_recent(
const crit_in_place_EA_more_recent & ref) =
default;
365 crit_in_place_EA_more_recent(crit_in_place_EA_more_recent && ref)
noexcept =
default;
366 crit_in_place_EA_more_recent & operator = (
const crit_in_place_EA_more_recent & ref) =
default;
367 crit_in_place_EA_more_recent & operator = (crit_in_place_EA_more_recent && ref)
noexcept =
default;
368 ~crit_in_place_EA_more_recent() =
default;
384 class crit_in_place_EA_more_recent_or_equal_to :
public criterium
387 crit_in_place_EA_more_recent_or_equal_to(
const infinint & date,
const infinint & hourshift = 0) : x_hourshift(hourshift), x_date(date) {};
388 crit_in_place_EA_more_recent_or_equal_to(
const crit_in_place_EA_more_recent_or_equal_to & ref) =
default;
389 crit_in_place_EA_more_recent_or_equal_to(crit_in_place_EA_more_recent_or_equal_to && ref)
noexcept =
default;
390 crit_in_place_EA_more_recent_or_equal_to & operator = (
const crit_in_place_EA_more_recent_or_equal_to & ref) =
default;
391 crit_in_place_EA_more_recent_or_equal_to & operator = (crit_in_place_EA_more_recent_or_equal_to && ref)
noexcept =
default;
392 ~crit_in_place_EA_more_recent_or_equal_to() =
default;
407 class crit_in_place_more_EA :
public criterium
410 crit_in_place_more_EA() {};
411 crit_in_place_more_EA(
const crit_in_place_more_EA & ref) =
default;
412 crit_in_place_more_EA(crit_in_place_more_EA && ref)
noexcept =
default;
413 crit_in_place_more_EA & operator = (
const crit_in_place_more_EA & ref) =
default;
414 crit_in_place_more_EA & operator = (crit_in_place_more_EA && ref)
noexcept =
default;
415 ~crit_in_place_more_EA() =
default;
427 class crit_in_place_EA_bigger :
public crit_in_place_more_EA
430 crit_in_place_EA_bigger() {};
431 crit_in_place_EA_bigger(
const crit_in_place_EA_bigger & ref) =
default;
432 crit_in_place_EA_bigger(crit_in_place_EA_bigger && ref)
noexcept =
default;
433 crit_in_place_EA_bigger & operator = (
const crit_in_place_EA_bigger & ref) =
default;
434 crit_in_place_EA_bigger & operator = (crit_in_place_EA_bigger && ref)
noexcept =
default;
435 ~crit_in_place_EA_bigger() =
default;
446 class crit_in_place_EA_saved :
public criterium
449 crit_in_place_EA_saved() {};
450 crit_in_place_EA_saved(
const crit_in_place_EA_saved & ref) =
default;
451 crit_in_place_EA_saved(crit_in_place_EA_saved && ref)
noexcept =
default;
452 crit_in_place_EA_saved & operator = (
const crit_in_place_EA_saved & ref) =
default;
453 crit_in_place_EA_saved & operator = (crit_in_place_EA_saved && ref)
noexcept =
default;
454 ~crit_in_place_EA_saved() =
default;
466 class crit_same_type :
public criterium
470 crit_same_type(
const crit_same_type & ref) =
default;
471 crit_same_type(crit_same_type && ref)
noexcept =
default;
472 crit_same_type & operator = (
const crit_same_type & ref) =
default;
473 crit_same_type & operator = (crit_same_type && ref)
noexcept =
default;
474 ~crit_same_type() =
default;
483 class crit_not :
public criterium
486 crit_not(
const criterium & crit) { x_crit = crit.clone();
if(x_crit ==
nullptr)
throw Ememory(
"crit_not::crit_not"); };
487 crit_not(
const crit_not & ref): criterium(ref) { copy_from(ref); };
488 crit_not(crit_not && ref)
noexcept: criterium(std::move(ref)) { x_crit =
nullptr; std::swap(x_crit, ref.x_crit); };
489 crit_not & operator = (
const crit_not & ref) { destroy(); copy_from(ref);
return *
this; };
490 crit_not & operator = (crit_not && ref)
noexcept { criterium::operator = (std::move(ref)); std::swap(x_crit, ref.x_crit);
return *
this; };
491 ~crit_not() { destroy(); };
500 void copy_from(
const crit_not & ref);
501 void destroy() {
if(x_crit !=
nullptr) {
delete x_crit; x_crit =
nullptr; } };
506 class crit_and :
public criterium
509 crit_and() { clear(); };
510 crit_and(
const crit_and & ref) : criterium(ref) { copy_from(ref); };
511 crit_and(crit_and && ref) =
default;
512 crit_and & operator = (
const crit_and & ref) { detruit(); copy_from(ref);
return *
this; };
513 crit_and & operator = (crit_and && ref)
noexcept =
default;
514 ~crit_and() { detruit(); };
516 void add_crit(
const criterium & ref);
517 void clear() { detruit(); };
526 std::deque<criterium *> operand;
529 void copy_from(
const crit_and & ref);
533 class crit_or :
public crit_and
536 crit_or() { clear(); };
537 crit_or(
const crit_or & ref) =
default;
538 crit_or(crit_or && ref) =
default;
539 crit_or & operator = (
const crit_or & ref) =
default;
540 crit_or & operator = (crit_or && ref)
noexcept =
default;
541 ~crit_or() =
default;
543 virtual bool evaluate(
const cat_nomme & first,
const cat_nomme & second)
const override;
544 virtual criterium *clone()
const override {
return new (std::nothrow) crit_or(*
this); };
548 class crit_invert :
public crit_not
551 crit_invert(
const criterium & crit) : crit_not(crit) {};
552 crit_invert(
const crit_invert & ref) =
default;
553 crit_invert(crit_invert && ref)
noexcept =
default;
554 crit_invert & operator = (
const crit_invert & ref) =
default;
555 crit_invert & operator = (crit_invert && ref)
noexcept =
default;
556 ~crit_invert() =
default;
558 virtual bool evaluate(
const cat_nomme & first,
const cat_nomme & second)
const override {
return x_crit->evaluate(second, first); };
559 virtual criterium *clone()
const override {
return new (std::nothrow) crit_invert(*
this); };
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
returns true if the space used by EA of the first entry is greater or equal to the space used by the ...
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
returns true if the EA of the first entry is more recent or equal to the fixed date given in argument...
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
returns true if the EA of the first entry is more recent or equal to the one of the second entry
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
returns true if the in place entry has its EA saved (not just marked as saved) in the archve of refer...
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
returns true if the data of the first entry is bigger or equal to the one of the second entry
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
return true if the entry is a dirty file (or hard linked dirty file)
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
If the in_place entry is not an inode its date is considered equal to zero. Comparison is done on mti...
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
returns true if the data of the first entry is more recent or of the same date of the one of the seco...
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
if the entry is not an inode the result is also true
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
return true if the entry is a sparse file (or hard linked sparse file)
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
return true if the entry has delta signature
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
returns true if the first entry is a cat_directory (whatever is the second)
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
returns true if the first entry is a plain file (whatever is the second)
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
returns true if the first entry is a inode with several hard links (whatever is the second entry)
virtual criterium * clone() const override
clone construction method
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
returns true if the first entry is an inode (whatever is the second)
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
returns true if the first entry has more or even EA (in number not in size) than the second entry
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
returns true if both inputs are inode of the same type (file/pipe/device/...) and share inode informa...
virtual bool evaluate(const cat_nomme &first, const cat_nomme &second) const override
criterum interface method
virtual criterium * clone() const override
clone construction method
returns true if the two entries are of the same type (plain-file/char dev/block dev/named pipe/symlin...
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
include macro defined by the configure script and some specific additional ones
libdar namespace encapsulate all libdar symbols
contains all the excetion class thrown by libdar
switch module to limitint (32 ou 64 bits integers) or infinint