Disk ARchive
2.6.8
Full featured and portable backup and archiving tool
src
libdar
erreurs_ext.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
#ifndef ERREURS_EXT_HPP
27
#define ERREURS_EXT_HPP
28
29
#include "
erreurs.hpp
"
30
#include "
infinint.hpp
"
31
32
namespace
libdar
33
{
34
37
38
40
41
class
Ethread_cancel_with_attr
:
public
Ethread_cancel
42
{
43
public :
44
Ethread_cancel_with_attr
(
bool
now, U_64 x_flag,
const
infinint
& attr);
45
Ethread_cancel_with_attr
(
const
Ethread_cancel_with_attr
& ref):
Ethread_cancel
(ref) { copy_from(ref); };
46
Ethread_cancel_with_attr
(
Ethread_cancel_with_attr
&& ref) noexcept :
Ethread_cancel
(std::move(ref)) { x_attr =
nullptr
; std::swap(x_attr, ref.x_attr); };
47
Ethread_cancel_with_attr
& operator = (
const
Ethread_cancel_with_attr
& ref) { detruit(); copy_from(ref);
return
*
this
; };
48
Ethread_cancel_with_attr
& operator = (
Ethread_cancel_with_attr
&& ref) noexcept;
49
~
Ethread_cancel_with_attr
() { detruit(); };
50
51
const
infinint
get_attr()
const
{
return
*x_attr; };
52
53
private :
54
// infinint may throw Ebug exception from destructor.
55
// Having a field of type infinint lead this class
56
// to have a default destructor throwing Ebug too
57
// which implies Egeneric to have the same which
58
// makes circular dependency as Ebug cannot be defined
59
// before Egeneric. Here is the reason why we use a infinint* here
60
infinint
*x_attr;
61
62
void
detruit();
63
void
copy_from(
const
Ethread_cancel_with_attr
& ref);
64
};
65
67
68
}
// end of namespace
69
70
#endif
libdar::Ethread_cancel_with_attr
Ethread_cancel with infinint attribute.
Definition:
erreurs_ext.hpp:41
infinint.hpp
switch module to limitint (32 ou 64 bits integers) or infinint
libdar::infinint
the arbitrary large positive integer class
Definition:
real_infinint.hpp:61
erreurs.hpp
contains all the excetion class thrown by libdar
libdar::Ethread_cancel
exception used when the thread libdar is running in is asked to stop
Definition:
erreurs.hpp:382
libdar
libdar namespace encapsulate all libdar symbols
Definition:
archive.hpp:46
Generated on Tue Feb 11 2020 16:50:43 for Disk ARchive by
1.8.16