Disk ARchive  2.7.14
Full featured and portable backup and archiving tool
cat_door.hpp
Go to the documentation of this file.
1 /*********************************************************************/
2 // dar - disk archive - a backup/restoration program
3 // Copyright (C) 2002-2024 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 //
19 // to contact the author, see the AUTHOR file
20 /*********************************************************************/
21 
25 
26 #ifndef CAT_DOOR_HPP
27 #define CAT_DOOR_HPP
28 
29 #include "../my_config.h"
30 
31 extern "C"
32 {
33 } // end extern "C"
34 
35 #include "cat_file.hpp"
36 
37 namespace libdar
38 {
39 
42 
43 
45  class cat_door : public cat_file
46  {
47  public:
48  cat_door(const infinint & xuid,
49  const infinint & xgid,
50  U_16 xperm,
51  const datetime & last_access,
52  const datetime & last_modif,
53  const datetime & last_change,
54  const std::string & src,
55  const path & che,
56  const infinint & fs_device) : cat_file(xuid, xgid, xperm, last_access, last_modif,
57  last_change, src, che, 0, fs_device, false) {};
58  cat_door(const std::shared_ptr<user_interaction> & dialog,
59  const smart_pointer<pile_descriptor> & pdesc,
60  const archive_version & reading_ver,
62  compression default_algo,
63  bool small) : cat_file(dialog, pdesc, reading_ver, saved, default_algo, small) {};
64 
65  cat_door(const cat_door & ref) = default;
66  cat_door(cat_door && ref) = delete;
67  cat_door & operator = (const cat_door & ref) = delete;
68  cat_door & operator = (cat_door && ref) = delete;
69  ~cat_door() = default;
70 
71  virtual bool operator == (const cat_entree & ref) const override;
72 
73  virtual unsigned char signature() const override { return 'o'; };
74  virtual std::string get_description() const override { return "door"; };
75 
76 
77  // inherited from class cat_file
79  std::shared_ptr<memory_file> delta_sig,
80  U_I signature_block_size,
81  std::shared_ptr<memory_file> delta_ref,
82  const crc**checksum) const override;
83 
84  };
85 
87 
88 } // end of namespace
89 
90 #endif
91 
class used to record plain files in a catalogue
class archive_version manages the version of the archive format
the class for Door IPC (mainly for Solaris)
Definition: cat_door.hpp:46
virtual std::string get_description() const override
inherited class designation
Definition: cat_door.hpp:74
virtual bool operator==(const cat_entree &ref) const override
not used
virtual generic_file * get_data(get_data_mode mode, std::shared_ptr< memory_file > delta_sig, U_I signature_block_size, std::shared_ptr< memory_file > delta_ref, const crc **checksum) const override
returns a newly allocated object in read_only mode
virtual unsigned char signature() const override
inherited class signature
Definition: cat_door.hpp:73
the root class from all other inherite for any entry in the catalogue
Definition: cat_entree.hpp:60
the plain file class
Definition: cat_file.hpp:49
get_data_mode
how to get data from archive
Definition: cat_file.hpp:54
cat_delta_signature * delta_sig
delta signature and associated CRC
Definition: cat_file.hpp:262
pure virtual class defining interface of a CRC object
Definition: crc.hpp:47
stores time information
Definition: datetime.hpp:59
this is the interface class from which all other data transfer classes inherit
the arbitrary large positive integer class
the class path is here to manipulate paths in the Unix notation: using'/'
Definition: path.hpp:51
compression
the different compression algorithm available
Definition: compression.hpp:46
saved_status
data saved status for an entry
Definition: cat_status.hpp:45
@ saved
inode is saved in the archive
libdar namespace encapsulate all libdar symbols
Definition: archive.hpp:47