Disk ARchive  2.6.13
Full featured and portable backup and archiving tool
compile_time_features.hpp
Go to the documentation of this file.
1 /*********************************************************************/
2 // dar - disk archive - a backup/restoration program
3 // Copyright (C) 2002-2020 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 : http://dar.linux.free.fr/email.html
20 /*********************************************************************/
21 
25 
26 
27 #ifndef COMPILE_TIME_FEATURES_HPP
28 #define COMPILE_TIME_FEATURES_HPP
29 
30 #include "../my_config.h"
31 
32 namespace libdar
33 {
34 
37 
39 
43 
44  namespace compile_time
45  {
47  bool ea() noexcept;
48 
50  bool largefile() noexcept;
51 
53  bool nodump() noexcept;
54 
56 
59  bool special_alloc() noexcept;
60 
62 
64  U_I bits() noexcept;
65 
67  bool thread_safe() noexcept;
68 
70  bool libz() noexcept;
71 
73  bool libbz2() noexcept;
74 
76  bool liblzo() noexcept;
77 
79  bool libxz() noexcept;
80 
82  bool libgcrypt() noexcept;
83 
85  bool furtive_read() noexcept;
86 
88  enum endian
89  {
90  big = 'B', //< big endian
91  little = 'L', //< little endian
92  error = 'E' //< neither big nor little endian! (libdar cannot run on such system)
93  };
94 
96  endian system_endian() noexcept;
97 
99  bool posix_fadvise() noexcept;
100 
102  bool fast_dir() noexcept;
103 
105  bool FSA_linux_extX() noexcept;
106 
108  bool FSA_birthtime() noexcept;
109 
111  bool microsecond_read() noexcept;
112 
114  bool microsecond_write() noexcept;
115 
117  bool symlink_restore_dates() noexcept;
118 
120  bool public_key_cipher() noexcept;
121 
123  bool libthreadar() noexcept;
124 
126  std::string libthreadar_version() noexcept;
127 
129  bool librsync() noexcept;
130 
132  bool remote_repository() noexcept;
133 
134  } // end of compile_time namespace
135 
137 
138 } // end of libdar namespace
139 
140 #endif
endian system_endian() noexcept
returns the detected integer endian of the system
bool FSA_linux_extX() noexcept
returns whether libdar has been built with support for linux ext2/3/4 FSA
bool remote_repository() noexcept
returns whether remote repository feature is available
bool libthreadar() noexcept
returns whether libthreadar linking will be done, allowing libdar to span several threads
endian
type used to return the endian nature of the current system
bool libz() noexcept
returns whether libdar is dependent on libz and if so has gzip compression/decompression available
bool librsync() noexcept
returns whether delta compression is available and delta diff stuff with it
bool libxz() noexcept
returns whether libdar is dependent on liblxz/liblzma and if so has xz compression/decompression avai...
bool largefile() noexcept
returns whether largefile (>2GiB) support has been activated at compilation time
bool symlink_restore_dates() noexcept
returns whether libdar is able to restore dates of symlinks
bool libbz2() noexcept
returns whether libdar is dependent on libbz2 and if so has bzip2 compression/decompression available
bool liblzo() noexcept
returns whether libdar is dependent on liblzo and if so has lzo compression/decompression available
bool furtive_read() noexcept
returns whether libdar can support furtive read mode when run by privileged user
bool public_key_cipher() noexcept
returns whether public key cipher (relying on gpgme) are available
bool libgcrypt() noexcept
returns whether libdar is dependent on libgcrypt and if so has strong encryption and hashing features...
bool microsecond_write() noexcept
returns whether libdar is able to write timestamps at a microsecond accuracy
U_I bits() noexcept
returns the internal integer type used
std::string libthreadar_version() noexcept
return libthreadar version or empty string libthreadar is not available
bool FSA_birthtime() noexcept
returns whether libdar has been built with support for HFS+ FSA
bool special_alloc() noexcept
returns whether special allocation support has been activated at compilation time
bool fast_dir() noexcept
returns whether libdar has been built with speed optimization for last directory
bool posix_fadvise() noexcept
returns true if libdar has support for posix_fadvise activated available
bool thread_safe() noexcept
returns whether the current libdar is thread safe
bool microsecond_read() noexcept
returns whether libdar is able to read timestamps at a microsecond accuracy
bool ea() noexcept
returns whether EA support has been activated at compilation time
bool nodump() noexcept
returns whether nodump flag support has been activated at compilation time
libdar namespace encapsulate all libdar symbols
Definition: archive.hpp:47