Aegis  4.25.D505
/home/archives/aegis/branch.4/branch.25/delta28933.505/aefind/function/stat.h
Go to the documentation of this file.
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 :