Disk ARchive  2.7.15
Full featured and portable backup and archiving tool
Public Types | Public Member Functions | Public Attributes | List of all members
libdar::delta_sig_block_size Struct Reference

defines how to calculate delta signature block size based of file size to delta sign More...

#include <delta_sig_block_size.hpp>

+ Collaboration diagram for libdar::delta_sig_block_size:

Public Types

enum  fs_function_t {
  fixed , linear , log2 , square2 ,
  square3
}
 defines the function to use to derivate block size from file size More...
 

Public Member Functions

 delta_sig_block_size (const delta_sig_block_size &ref)=default
 set the structure to defaults value
 
 delta_sig_block_size (delta_sig_block_size &&ref) noexcept=default
 
delta_sig_block_sizeoperator= (const delta_sig_block_size &ref)=default
 
delta_sig_block_sizeoperator= (delta_sig_block_size &&ref) noexcept=default
 
bool operator== (const delta_sig_block_size &ref) const
 
void reset ()
 reset to default value
 
bool equals_default ()
 whether structure has default values
 
void check () const
 check the sanity of the provided values
 
U_I calculate (const infinint &filesize) const
 calculate the value of the block size given the file size More...
 

Public Attributes

fs_function_t fs_function
 
infinint multiplier
 function dependently used multiplier
 
infinint divisor
 function dependently used divisor
 
U_I min_block_len
 calculated block len will never be lower than that
 
U_I max_block_len
 calculated block len will never be higer than that except if this field is set to zero (disabling this ceiling check)
 

Detailed Description

defines how to calculate delta signature block size based of file size to delta sign

Note
the global formula is block_size = multiplicator/divisor*fs_function(filesize)
of course, divisor cannot be null

Definition at line 46 of file delta_sig_block_size.hpp.

Member Enumeration Documentation

◆ fs_function_t

defines the function to use to derivate block size from file size

Enumerator
fixed 

block size is independant from file size

linear 

block size if proportionnal to file size

log2 

block size is proportional to log2(file size)

square2 

block size is proportional to filesize^2

square3 

block size if proportional to filesize^3

Definition at line 49 of file delta_sig_block_size.hpp.

Member Function Documentation

◆ calculate()

U_I libdar::delta_sig_block_size::calculate ( const infinint filesize) const

calculate the value of the block size given the file size

Parameters
[in]filesizeis the size of the file which delta signature to be calculated
Returns
the block len to use for delta signature

The documentation for this struct was generated from the following file: