Disk ARchive 2.7.16
Full featured and portable backup and archiving tool
Loading...
Searching...
No Matches
delta_sig_block_size.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 DELTA_SIG_BLOCK_SIZE_HPP
27#define DELTA_SIG_BLOCK_SIZE_HPP
28
29#include "../my_config.h"
30
31extern "C"
32{
33} // end extern "C"
34
35#include "infinint.hpp"
36
37
38namespace libdar
39{
41
44
45
47 {
57
58 fs_function_t fs_function; //< the function to use to calculate the signature block len
63
64 // definitions to help using the struct
65
68 delta_sig_block_size(delta_sig_block_size && ref) noexcept = default;
69 delta_sig_block_size & operator = (const delta_sig_block_size & ref) = default;
70 delta_sig_block_size & operator = (delta_sig_block_size && ref) noexcept = default;
71 ~delta_sig_block_size() = default;
72
73 bool operator == (const delta_sig_block_size & ref) const;
74
76 void reset();
77
79 bool equals_default() { return (*this) == delta_sig_block_size(); };
80
82 void check() const;
83
85
88 U_I calculate(const infinint & filesize) const;
89
90 };
91
92
93} // end of namespace
94
95#endif
the arbitrary large positive integer class
switch module to limitint (32 ou 64 bits integers) or infinint
include macro defined by the configure script and some specific additional ones
libdar namespace encapsulate all libdar symbols
Definition archive.hpp:47
defines how to calculate delta signature block size based of file size to delta sign
infinint multiplier
function dependently used multiplier
U_I min_block_len
calculated block len will never be lower than that
void check() const
check the sanity of the provided values
fs_function_t
defines the function to use to derivate block size from file size
@ square3
block size if proportional to filesize^3
@ square2
block size is proportional to filesize^2
@ log2
block size is proportional to log2(file size)
@ fixed
block size is independant from file size
@ linear
block size if proportionnal to file size
delta_sig_block_size(const delta_sig_block_size &ref)=default
set the structure to defaults value
U_I calculate(const infinint &filesize) const
calculate the value of the block size given the file size
bool equals_default()
whether structure has default values
infinint divisor
function dependently used divisor
U_I max_block_len
calculated block len will never be higer than that except if this field is set to zero (disabling thi...
void reset()
reset to default value