Disk ARchive  2.7.14
Full featured and portable backup and archiving tool
libdar.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 
22  // NOTE : The following comments are used by doxygen to generate the documentation of reference
23 
33 
52 
58 
63 
67 
68 
69 #ifndef LIBDAR_HPP
70 #define LIBDAR_HPP
71 
72 #include "../my_config.h"
73 
74  // the mandatory libdar initialization routine
75 #include "get_version.hpp"
76 
77  // archive class abstraction, this is a good starting point to create and read dar archives
78 #include "archive.hpp"
79 
80  // dar_manager API
81 #include "database.hpp"
82 
83  // dar_xform API
84 #include "libdar_xform.hpp"
85 
86  // dar_slave API
87 #include "libdar_slave.hpp"
88 
89  // common set of exception used within libdar
90 #include "erreurs.hpp"
91 
92  // if you want to know which feature has been activated at compilation time
94 
95  // for remote reposity you will need to create such object and pass it where needed
96 #include "entrepot_libcurl.hpp"
97 
98  // for local filesystem, you should not need to create such object to call libdar as it is the default repo used
99 #include "entrepot_local.hpp"
100 
101  // the options class to give non default parameter to the archive class
103 
104  // if you want to bind user input/output to shell command line
105 #include "shell_interaction.hpp"
106 
107  // if you want to bind user intput/output to your own provided callback functions
109 
110  // this is a trivial way to ignore user input/output
112 
113  // to redirect to a shell_interaction user I/O object any type of user interaction
115 
116  // to be able to properly cancel a running libdar thread
117 #include "thread_cancellation.hpp"
118 
119  // for even more flexibility you can create your own class inherited from class user_interaction
120  // (see user_interaction.hpp include file)
121 
122 
123 #endif
the archive class is defined in this module
this file contains shell_interaction options class for listing
nested namespace containing routines that give features activated at compile time
this file holds the database class definition
defines the implementation for remote filesystem entrepot using libcurl
defines the implementation for local filesystem entrepot The entrepot_local correspond to the local f...
contains all the excetion class thrown by libdar
routine to initialize libdar and manage its running threads
API for dar_slave functionnality.
API for dar_xform functionnality.
user_interaction class used by default
wrapper class that given a user_interaction send it the shell_interaction formatted output
to be able to cancel libdar operation while running in a given thread.
defines the interaction between libdar and a non communcant "blind" user
defines the interaction between libdar and the user based on callback functions