Disk ARchive  2.5.11
Full featured and portable backup and archiving tool
cat_lien.hpp
Go to the documentation of this file.
1 /*********************************************************************/
2 // dar - disk archive - a backup/restoration program
3 // Copyright (C) 2002-2052 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 //
19 // to contact the author : http://dar.linux.free.fr/email.html
20 /*********************************************************************/
21 
25 
26 #ifndef CAT_LIEN_HPP
27 #define CAT_LIEN_HPP
28 
29 #include "../my_config.h"
30 
31 extern "C"
32 {
33 } // end extern "C"
34 
35 #include "cat_inode.hpp"
36 #include "cat_tools.hpp"
37 
38 namespace libdar
39 {
40 
43 
45  class cat_lien : public cat_inode
46  {
47  public :
48  cat_lien(const infinint & uid, const infinint & gid, U_16 perm,
49  const datetime & last_access,
50  const datetime & last_modif,
51  const datetime & last_change,
52  const std::string & name,
53  const std::string & target,
54  const infinint & fs_device);
55  cat_lien(user_interaction & dialog,
56  const smart_pointer<pile_descriptor> & pdesc,
57  const archive_version & reading_ver,
58  saved_status saved,
59  bool small);
60 
61  bool operator == (const cat_entree & ref) const;
62 
63  const std::string & get_target() const;
64  void set_target(std::string x);
65 
66  // using the method is_more_recent_than() from cat_inode
67  // using method has_changed_since() from cat_inode class
68 
70  unsigned char signature() const { return mk_signature('l', get_saved_status()); };
71 
73  cat_entree *clone() const { return new (get_pool()) cat_lien(*this); };
74 
75  protected :
76  void sub_compare(const cat_inode & other, bool isolated_mode) const;
77  void inherited_dump(const pile_descriptor & pdesc, bool small) const;
78 
79  private :
80  std::string points_to;
81  };
82 
84 
85 } // end of namespace
86 
87 #endif
memory_pool * get_pool() const
Definition: on_pool.hpp:144
cat_entree * clone() const
inherited from cat_entree
Definition: cat_lien.hpp:73
void inherited_dump(const pile_descriptor &pdesc, bool small) const
inherited class may overload this method but shall first call the parent&#39;s inherited_dump() in the ov...
the symbolic link inode class
Definition: cat_lien.hpp:45
This is a pure virtual class that is used by libdar when interaction with the user is required...
unsigned char signature() const
inherited from cat_entree
Definition: cat_lien.hpp:70
bool operator==(const cat_entree &ref) const
returns true if the two object have the same content
the root class for all cat_inode
Definition: cat_inode.hpp:54
base object for all inode types, managed EA and FSA, dates, permissions, ownership, ...
the arbitrary large positive integer class
the root class from all other inherite for any entry in the catalogue
Definition: cat_entree.hpp:85
set of routines used by catalogue related classes
libdar namespace encapsulate all libdar symbols
Definition: archive.hpp:47