Disk ARchive  2.7.14
Full featured and portable backup and archiving tool
Public Member Functions | Private Member Functions | Private Attributes | List of all members
libdar::archive_options_isolate Class Reference

class holding optional parameters used to isolate an existing archive More...

#include <archive_options.hpp>

Inherited by libdar5::archive_options_isolate.

+ Collaboration diagram for libdar::archive_options_isolate:

Public Member Functions

 archive_options_isolate (const archive_options_isolate &ref)
 
 archive_options_isolate (archive_options_isolate &&ref) noexcept
 
archive_options_isolateoperator= (const archive_options_isolate &ref)
 
archive_options_isolateoperator= (archive_options_isolate &&ref) noexcept
 
void clear ()
 
void set_allow_over (bool allow_over)
 whether overwritting is allowed
 
void set_warn_over (bool warn_over)
 whether a warning shall be issued before overwriting
 
void set_info_details (bool info_details)
 whether the user needs detailed output of the operation
 
void set_pause (const infinint &pause)
 Pause beteween slices. Set to zero does not pause at all, set to 1 makes libdar pauses each slice, set to 2 makes libdar pause each 2 slices and so on.
 
void set_compression (compression algo)
 the compression algorithm used
 
void set_compression_level (U_I compression_level)
 the compression level (from 1 to 9)
 
void set_compression_block_size (U_I compression_block_size)
 set the compression block size
 
void set_slicing (const infinint &file_size, const infinint &first_file_size=0)
 define the archive slicing More...
 
void set_execute (const std::string &execute)
 command to execute after each slice creation More...
 
void set_crypto_algo (crypto_algo crypto)
 cypher to use
 
void set_crypto_pass (const secu_string &pass)
 password / passphrase to encrypt the data with (empty string for interactive question)
 
void set_crypto_size (U_32 crypto_size)
 size of the encryption by block to use
 
void set_gnupg_recipients (const std::vector< std::string > &gnupg_recipients)
 
void set_gnupg_signatories (const std::vector< std::string > &gnupg_signatories)
 
void set_empty (bool empty)
 whether to make a dry-run operation
 
void set_slice_permission (const std::string &slice_permission)
 if not an empty string set the slice permission according to the octal value given.
 
void set_slice_user_ownership (const std::string &slice_user_ownership)
 if not an empty string set the user ownership of slices accordingly
 
void set_slice_group_ownership (const std::string &slice_group_ownership)
 if not an empty string set the group ownership of slices accordingly
 
void set_user_comment (const std::string &comment)
 specify a user comment in the archive (always in clear text!)
 
void set_hash_algo (hash_algo hash)
 specify whether to produce a hash file of the slice and which hash algo to use
 
void set_slice_min_digits (infinint val)
 defines the minimum digit a slice must have concerning its number, zeros will be prepended as much as necessary to respect this
 
void set_sequential_marks (bool sequential)
 whether to add escape sequence aka tape marks to allow sequential reading of the archive
 
void set_entrepot (const std::shared_ptr< entrepot > &entr)
 defines the protocol to use for slices
 
void set_multi_threaded (bool val)
 whether libdar is allowed to created several thread to work possibily faster on multicore CPU (require libthreadar) More...
 
void set_multi_threaded_crypto (U_I num)
 how much thread libdar will use for cryptography (need libthreadar to be effective)
 
void set_multi_threaded_compress (U_I num)
 how much thread libdar will use for compression (need libthreadar too and compression_block_size > 0)
 
void set_delta_signature (bool val)
 whether signature to base binary delta on the future has to be calculated and stored beside saved files
 
void set_delta_mask (const mask &delta_mask)
 whether to derogate to defaut delta file consideration while calculation delta signatures
 
void set_delta_sig_min_size (const infinint &val)
 
void set_iteration_count (const infinint &val)
 key derivation
 
void set_kdf_hash (hash_algo algo)
 hash algo used for key derivation
 
void set_sig_block_len (delta_sig_block_size val)
 block size to use to build delta signatures
 
bool get_allow_over () const
 
bool get_warn_over () const
 
bool get_info_details () const
 
const infinintget_pause () const
 
compression get_compression () const
 
U_I get_compression_level () const
 
U_I get_compression_block_size () const
 
const infinintget_slice_size () const
 
const infinintget_first_slice_size () const
 
const std::string & get_execute () const
 
crypto_algo get_crypto_algo () const
 
const secu_stringget_crypto_pass () const
 
U_32 get_crypto_size () const
 
const std::vector< std::string > & get_gnupg_recipients () const
 
const std::vector< std::string > & get_gnupg_signatories () const
 
bool get_empty () const
 
const std::string & get_slice_permission () const
 
const std::string & get_slice_user_ownership () const
 
const std::string & get_slice_group_ownership () const
 
const std::string & get_user_comment () const
 
hash_algo get_hash_algo () const
 
infinint get_slice_min_digits () const
 
bool get_sequential_marks () const
 
const std::shared_ptr< entrepot > & get_entrepot () const
 
U_I get_multi_threaded_crypto () const
 
U_I get_multi_threaded_compress () const
 
bool get_delta_signature () const
 
const maskget_delta_mask () const
 
bool get_has_delta_mask_been_set () const
 
const infinintget_delta_sig_min_size () const
 
const infinintget_iteration_count () const
 
hash_algo get_kdf_hash () const
 
delta_sig_block_size get_sig_block_len () const
 

Private Member Functions

void copy_from (const archive_options_isolate &ref)
 
void move_from (archive_options_isolate &&ref) noexcept
 
void destroy () noexcept
 
void nullifyptr () noexcept
 

Private Attributes

bool x_allow_over
 
bool x_warn_over
 
bool x_info_details
 
infinint x_pause
 
compression x_algo
 
U_I x_compression_level
 
U_I x_compression_block_size
 
infinint x_file_size
 
infinint x_first_file_size
 
std::string x_execute
 
crypto_algo x_crypto
 
secu_string x_pass
 
U_32 x_crypto_size
 
std::vector< std::string > x_gnupg_recipients
 
std::vector< std::string > x_gnupg_signatories
 
bool x_empty
 
std::string x_slice_permission
 
std::string x_slice_user_ownership
 
std::string x_slice_group_ownership
 
std::string x_user_comment
 
hash_algo x_hash
 
infinint x_slice_min_digits
 
bool x_sequential_marks
 
std::shared_ptr< entrepotx_entrepot
 
U_I x_multi_threaded_crypto
 
U_I x_multi_threaded_compress
 
bool x_delta_signature
 
maskx_delta_mask
 
bool has_delta_mask_been_set
 
infinint x_delta_sig_min_size
 
infinint x_iteration_count
 
hash_algo x_kdf_hash
 
delta_sig_block_size x_sig_block_len
 

Detailed Description

class holding optional parameters used to isolate an existing archive

Definition at line 749 of file archive_options.hpp.

Member Function Documentation

◆ set_delta_sig_min_size()

void libdar::archive_options_isolate::set_delta_sig_min_size ( const infinint val)
inline

whether to never calculate delta signature for files which size is smaller or equal to the given argument

Note
by default a min size of 10 kiB is used

Definition at line 883 of file archive_options.hpp.

◆ set_execute()

void libdar::archive_options_isolate::set_execute ( const std::string &  execute)
inline

command to execute after each slice creation

several macros are available:

  • %n : the number of the just created slice
  • %N : the slice number with padded zeros according to slice_min_digits given option
  • %b : the archive basename
  • %p : the slices path
  • %e : the archive extension (usually "dar")
  • %c : the archive context ("init", "operation" or "last_slice") see dar(1) man page for more details
  • %%% : substitued by %%

Definition at line 812 of file archive_options.hpp.

◆ set_gnupg_recipients()

void libdar::archive_options_isolate::set_gnupg_recipients ( const std::vector< std::string > &  gnupg_recipients)
inline

set the list of recipients that will be able to read the archive

Note
more details for the same option of archive_options_create
since release 2.7.0 if a given std::string in the list contains an '@' the string is assumed to be an email and search is done in the keyring for that field type, else it is assumed to be a keyid.

Definition at line 827 of file archive_options.hpp.

◆ set_gnupg_signatories()

void libdar::archive_options_isolate::set_gnupg_signatories ( const std::vector< std::string > &  gnupg_signatories)
inline

the private keys matching the email of the provided list are used to sign the archive random key

Note
since release 2.7.0 if a given std::string in the list contains an '@' the string is assumed to be an email and search is done in the keyring for that field type, else it is assumed to be a keyid.

Definition at line 832 of file archive_options.hpp.

◆ set_multi_threaded()

void libdar::archive_options_isolate::set_multi_threaded ( bool  val)
inline

whether libdar is allowed to created several thread to work possibily faster on multicore CPU (require libthreadar)

Deprecated:
this call is deprecated, see set_multi_threaded_*() more specific calls
Note
setting this to true is equivalent to calling set_mutli_threaded_crypto(2)

Definition at line 865 of file archive_options.hpp.

◆ set_slicing()

void libdar::archive_options_isolate::set_slicing ( const infinint file_size,
const infinint first_file_size = 0 
)
inline

define the archive slicing

Parameters
[in]file_sizeset the slice size in byte (0 for a single slice whatever its size is)
[in]first_file_sizeset the first file size
Note
if not specified or set to zero, first_file_size is considered equal to file_size

Definition at line 792 of file archive_options.hpp.


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