|
Aegis
4.25.D505
|
00001 // 00002 // aegis - project change supervisor 00003 // Copyright (C) 1997, 2002, 2005-2008, 2012 Peter Miller 00004 // 00005 // This program is free software; you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License as published by 00007 // the Free Software Foundation; either version 3 of the License, or 00008 // (at your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with this program. If not, see 00017 // <http://www.gnu.org/licenses/>. 00018 // 00019 00020 #ifndef AEFIND_FUNCTION_STAT_H 00021 #define AEFIND_FUNCTION_STAT_H 00022 00023 #include <aefind/tree/monadic.h> 00024 00025 class tree_list; // forward 00026 00031 class tree_atime: 00032 public tree_monadic 00033 { 00034 public: 00038 virtual ~tree_atime(); 00039 00040 private: 00045 tree_atime(const pointer &arg); 00046 00047 public: 00055 static pointer create(const pointer &arg); 00056 00064 static pointer create_l(const tree_list &args); 00065 00066 protected: 00067 // See base class for documentation. 00068 const char *name() const; 00069 00070 // See base class for documentation. 00071 rpt_value::pointer evaluate(string_ty *, string_ty *, string_ty *, 00072 struct stat *) const; 00073 00074 // See base class for documentation. 00075 tree::pointer optimize() const; 00076 00077 private: 00081 tree_atime(); 00082 00086 tree_atime(const tree_atime &); 00087 00091 tree_atime &operator=(const tree_atime &); 00092 }; 00093 00094 00099 class tree_ctime: 00100 public tree_monadic 00101 { 00102 public: 00106 virtual ~tree_ctime(); 00107 00108 private: 00113 tree_ctime(const pointer &arg); 00114 00115 public: 00123 static pointer create(const pointer &arg); 00124 00132 static pointer create_l(const tree_list &args); 00133 00134 protected: 00135 // See base class for documentation. 00136 const char *name() const; 00137 00138 // See base class for documentation. 00139 rpt_value::pointer evaluate(string_ty *, string_ty *, string_ty *, 00140 struct stat *) const; 00141 00142 // See base class for documentation. 00143 tree::pointer optimize() const; 00144 00145 private: 00149 tree_ctime(); 00150 00154 tree_ctime(const tree_ctime &); 00155 00159 tree_ctime &operator=(const tree_ctime &); 00160 }; 00161 00162 00167 class tree_gid: 00168 public tree_monadic 00169 { 00170 public: 00174 virtual ~tree_gid(); 00175 00176 private: 00181 tree_gid(const pointer &arg); 00182 00183 public: 00191 static pointer create(const pointer &arg); 00192 00200 static pointer create_l(const tree_list &args); 00201 00202 protected: 00203 // See base class for documentation. 00204 const char *name() const; 00205 00206 // See base class for documentation. 00207 rpt_value::pointer evaluate(string_ty *, string_ty *, string_ty *, 00208 struct stat *) const; 00209 00210 // See base class for documentation. 00211 tree::pointer optimize() const; 00212 00213 private: 00217 tree_gid(); 00218 00222 tree_gid(const tree_gid &); 00223 00227 tree_gid &operator=(const tree_gid &); 00228 }; 00229 00230 00235 class tree_ino: 00236 public tree_monadic 00237 { 00238 public: 00242 virtual ~tree_ino(); 00243 00244 private: 00249 tree_ino(const pointer &arg); 00250 00251 public: 00259 static pointer create(const pointer &arg); 00260 00268 static pointer create_l(const tree_list &args); 00269 00270 protected: 00271 // See base class for documentation. 00272 const char *name() const; 00273 00274 // See base class for documentation. 00275 rpt_value::pointer evaluate(string_ty *, string_ty *, string_ty *, 00276 struct stat *) const; 00277 00278 // See base class for documentation. 00279 tree::pointer optimize() const; 00280 00281 private: 00285 tree_ino(); 00286 00290 tree_ino(const tree_ino &); 00291 00295 tree_ino &operator=(const tree_ino &); 00296 }; 00297 00298 00303 class tree_mode: 00304 public tree_monadic 00305 { 00306 public: 00310 virtual ~tree_mode(); 00311 00312 private: 00317 tree_mode(const pointer &arg); 00318 00319 public: 00327 static pointer create(const pointer &arg); 00328 00336 static pointer create_l(const tree_list &args); 00337 00338 protected: 00339 // See base class for documentation. 00340 const char *name() const; 00341 00342 // See base class for documentation. 00343 rpt_value::pointer evaluate(string_ty *, string_ty *, string_ty *, 00344 struct stat *) const; 00345 00346 // See base class for documentation. 00347 tree::pointer optimize() const; 00348 00349 private: 00353 tree_mode(); 00354 00358 tree_mode(const tree_mode &); 00359 00363 tree_mode &operator=(const tree_mode &); 00364 }; 00365 00366 00371 class tree_mtime: 00372 public tree_monadic 00373 { 00374 public: 00378 virtual ~tree_mtime(); 00379 00380 private: 00385 tree_mtime(const pointer &arg); 00386 00387 public: 00395 static pointer create(const pointer &arg); 00396 00404 static pointer create_l(const tree_list &args); 00405 00406 protected: 00407 // See base class for documentation. 00408 const char *name() const; 00409 00410 // See base class for documentation. 00411 rpt_value::pointer evaluate(string_ty *, string_ty *, string_ty *, 00412 struct stat *) const; 00413 00414 // See base class for documentation. 00415 tree::pointer optimize() const; 00416 00417 private: 00421 tree_mtime(); 00422 00426 tree_mtime(const tree_mtime &); 00427 00431 tree_mtime &operator=(const tree_mtime &); 00432 }; 00433 00434 00439 class tree_nlink: 00440 public tree_monadic 00441 { 00442 public: 00446 virtual ~tree_nlink(); 00447 00448 private: 00453 tree_nlink(const pointer &arg); 00454 00455 public: 00463 static pointer create(const pointer &arg); 00464 00472 static pointer create_l(const tree_list &args); 00473 00474 protected: 00475 // See base class for documentation. 00476 const char *name() const; 00477 00478 // See base class for documentation. 00479 rpt_value::pointer evaluate(string_ty *, string_ty *, string_ty *, 00480 struct stat *) const; 00481 00482 // See base class for documentation. 00483 tree::pointer optimize() const; 00484 00485 private: 00489 tree_nlink(); 00490 00494 tree_nlink(const tree_nlink &); 00495 00499 tree_nlink &operator=(const tree_nlink &); 00500 }; 00501 00502 00507 class tree_size: 00508 public tree_monadic 00509 { 00510 public: 00514 virtual ~tree_size(); 00515 00516 private: 00521 tree_size(const pointer &arg); 00522 00523 public: 00531 static pointer create(const pointer &arg); 00532 00540 static pointer create_l(const tree_list &args); 00541 00542 protected: 00543 // See base class for documentation. 00544 const char *name() const; 00545 00546 // See base class for documentation. 00547 rpt_value::pointer evaluate(string_ty *, string_ty *, string_ty *, 00548 struct stat *) const; 00549 00550 // See base class for documentation. 00551 tree::pointer optimize() const; 00552 00553 private: 00557 tree_size(); 00558 00562 tree_size(const tree_size &); 00563 00567 tree_size &operator=(const tree_size &); 00568 }; 00569 00570 00575 class tree_uid: 00576 public tree_monadic 00577 { 00578 public: 00582 virtual ~tree_uid(); 00583 00584 private: 00589 tree_uid(const pointer &arg); 00590 00591 public: 00599 static pointer create(const pointer &arg); 00600 00608 static pointer create_l(const tree_list &args); 00609 00610 protected: 00611 // See base class for documentation. 00612 const char *name() const; 00613 00614 // See base class for documentation. 00615 rpt_value::pointer evaluate(string_ty *, string_ty *, string_ty *, 00616 struct stat *) const; 00617 00618 // See base class for documentation. 00619 tree::pointer optimize() const; 00620 00621 private: 00625 tree_uid(); 00626 00630 tree_uid(const tree_uid &); 00631 00635 tree_uid &operator=(const tree_uid &); 00636 }; 00637 00638 00643 class tree_type: 00644 public tree_monadic 00645 { 00646 public: 00650 virtual ~tree_type(); 00651 00652 private: 00657 tree_type(const pointer &arg); 00658 00659 public: 00667 static pointer create(const pointer &arg); 00668 00676 static pointer create_l(const tree_list &args); 00677 00678 protected: 00679 // See base class for documentation. 00680 const char *name() const; 00681 00682 // See base class for documentation. 00683 rpt_value::pointer evaluate(string_ty *, string_ty *, string_ty *, 00684 struct stat *) const; 00685 00686 // See base class for documentation. 00687 tree::pointer optimize() const; 00688 00689 private: 00693 tree_type(); 00694 00698 tree_type(const tree_type &); 00699 00703 tree_type &operator=(const tree_type &); 00704 }; 00705 00706 #endif // AEFIND_FUNCTION_STAT_H 00707 // vim: set ts=8 sw=4 et :
1.7.6.1