| Disk ARchive 2.6.11 Full featured and portable backup and archiving tool

Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
libdar::list_entry Class Reference
API

`#include <list_entry.hpp>`

## Public Member Functions
| list_entry (const list_entry &ref)=default
| list_entry (list_entry &&ref)=default
list_entry & | operator= (const list_entry &ref)=default
list_entry & | operator= (list_entry &&ref) noexcept=default
bool | is_eod () const
| method used to know whether the returned entry signals a End of Directory More...
const std::string & | get_name () const
unsigned char | get_type () const
bool | is_dir () const
bool | is_file () const
bool | is_symlink () const
bool | is_char_device () const
bool | is_block_device () const
bool | is_unix_socket () const
bool | is_named_pipe () const
bool | is_hard_linked () const
bool | is_removed_entry () const
bool | is_door_inode () const
bool | is_empty_dir () const
unsigned char | get_removed_type () const
| valid only for removed_entries
bool | has_data_present_in_the_archive () const
std::string | get_data_flag () const
saved_status | get_data_status () const
bool | has_EA () const
bool | has_EA_saved_in_the_archive () const
std::string | get_ea_flag () const
ea_saved_status | get_ea_status () const
bool | has_FSA () const
bool | has_FSA_saved_in_the_archive () const
std::string | get_fsa_flag () const
std::string | get_uid (bool try_resolving_name=false) const
std::string | get_gid (bool try_resolving_name=false) const
std::string | get_perm () const
std::string | get_last_access () const
std::string | get_last_modif () const
std::string | get_last_change () const
std::string | get_removal_date () const
| for removed_entry only
time_t | get_last_access_s () const
time_t | get_last_modif_s () const
time_t | get_last_change_s () const
time_t | get_removal_date_s () const
| for removed_entry only
void | get_last_access (datetime::time_unit tu, time_t &second, time_t &fraction) const
| yet an alternative method to get last access time More...
void | get_last_modif (datetime::time_unit tu, time_t &second, time_t &fraction) const
| yet an alternative method to get the last modification date (see get_last_access() for details)
void | get_last_change (datetime::time_unit tu, time_t &second, time_t &fraction) const
| yet an alternative method to get the last change date (see get_last_access() for details)
std::string | get_file_size (bool size_in_bytes=true) const
std::string | get_compression_ratio () const
std::string | get_compression_ratio_flag () const
bool | is_sparse () const
std::string | get_sparse_flag () const
std::string | get_compression_algo () const
bool | is_dirty () const
std::string | get_link_target () const
std::string | get_major () const
std::string | get_minor () const
const range & | get_slices () const
| provides slice information More...
bool | has_delta_signature () const
std::string | get_delta_flag () const
bool | get_archive_offset_for_data (infinint &val) const
| offset in byte where to find first byte of data More...
bool | get_archive_offset_for_data (U_64 &val) const
std::string | get_archive_offset_for_data () const
bool | get_storage_size_for_data (infinint &val) const
| amount of byte used to store the file's data More...
bool | get_storage_size_for_data (U_64 &val) const
std::string | get_storage_size_for_data (bool size_in_bytes=true) const
bool | get_archive_offset_for_EA (infinint &val) const
| offset in byte whert to find the first byte of Extended Attributes More...
bool | get_archive_offset_for_EA (U_64 &val) const
std::string | get_archive_offset_for_EA () const
bool | get_storage_size_for_EA (infinint &val) const
| amount of byte used to store the file's EA
bool | get_storage_size_for_EA (U_64 &val) const
std::string | get_storage_size_for_EA () const
bool | get_archive_offset_for_FSA (infinint &val) const
| offset in byte where to find the first byte of Filesystem Specific Attributes More...
bool | get_archive_offset_for_FSA (U_64 &val) const
std::string | get_archive_offset_for_FSA () const
bool | get_storage_size_for_FSA (infinint &val) const
| amount of byte used to store the file's FSA
bool | get_storage_size_for_FSA (U_64 &val) const
std::string | get_storage_size_for_FSA () const
void | get_ea_reset_read () const
| reset the reading of Extended Attributes names More...
bool | get_ea_read_next (std::string &key) const
| read the next Extended Attribute name More...
std::string | get_etiquette () const
fsa_scope | get_fsa_scope () const
| this is the hard-link ID, only valid for hard linked entries
std::string | get_data_crc () const
std::string | get_delta_patch_base_crc () const
std::string | get_delta_patch_result_crc () const
void | set_name (const std::string &val)
void | set_type (unsigned char val)
void | set_removed_type (unsigned char val)
void | set_hard_link (bool val)
void | set_uid (const infinint &val)
void | set_gid (const infinint &val)
void | set_perm (U_16 val)
void | set_last_access (const datetime &val)
void | set_last_modif (const datetime &val)
void | set_removal_date (const datetime &val)
void | set_saved_status (saved_status val)
void | set_ea_status (ea_saved_status val)
void | set_last_change (const datetime &val)
void | set_fsa_status (fsa_saved_status val)
void | set_file_size (const infinint &val)
void | set_is_sparse_file (bool val)
void | set_compression_algo (compression val)
void | set_dirtiness (bool val)
void | set_link_target (const std::string &val)
void | set_major (int val)
void | set_minor (int val)
void | set_slices (const range &sl)
void | set_delta_sig (bool val)
void | set_archive_offset_for_data (const infinint &val)
void | set_storage_size_for_data (const infinint &val)
void | set_archive_offset_for_EA (const infinint &val)
void | set_storage_size_for_EA (const infinint &val)
void | set_archive_offset_for_FSA (const infinint &val)
void | set_storage_size_for_FSA (const infinint &val)
void | set_ea (const ea_attributs &arg)
void | set_etiquette (const infinint &arg)
void | set_fsa_scope (const fsa_scope &arg)
void | set_data_crc (const crc &ptr)
void | set_delta_patch_base_crc (const crc &ptr)
void | set_delta_patch_result_crc (const crc &ptr)
void | set_empty_dir (bool val)
void | clear ()

## Static Private Member Functions
static time_t | datetime2time_t (const datetime &val)

## Private Attributes
std::string | my_name
bool | hard_link
unsigned char | type
infinint | uid
infinint | gid
U_16 | perm
datetime | last_access
datetime | last_modif
| also used to store removal_date for removed entries
saved_status | data_status
ea_saved_status | ea_status
datetime | last_change
fsa_saved_status | fsa_status
fsa_scope | fsa_sc
infinint | file_size
bool | sparse_file
compression | compression_algo
bool | dirty
std::string | target
| target[0] used to store signature of removed entry for removed entries
int | major
int | minor
range | slices
bool | delta_sig
infinint | offset_for_data
infinint | storage_size_for_data
infinint | offset_for_EA
infinint | storage_size_for_EA
infinint | offset_for_FSA
infinint | storage_size_for_FSA
std::deque< std::string > | ea
std::deque< std::string >::const_iterator | it_ea
infinint | etiquette
| hard link identification
std::string | data_crc
std::string | patch_base_crc
std::string | patch_result_crc
bool | empty_dir

## Detailed Description

the list_entry class provides mean to get information about a particular entry in the archive

it provides methods for libdar to fill up such object and methods for API user to read the information. Each information uses its own method, thus it will require several call to different method to get the full description of the object. This has the advantage to let the possiblity to add new fields in the future without breaking anything in API, and in consequences in user programs.

Definition at line 59 of file list_entry.hpp.

## Member Function Documentation

## ◆ get_archive_offset_for_data()

bool libdar::list_entry::get_archive_offset_for_data | ( | infinint & | val | ) | const
| inline

offset in byte where to find first byte of data

Note
  : return false if no data is present, else set the argument
  : offset is counted whatever is the number of slice as if there all slice were sticked toghether. But the first bytes of each slice do not count as they hold the slice header. This one is variable but can be known using the archive::get_first_slice_header_size() and archive::get_non_first_slice_header_size() methods from the current archive class. If encryption is used it is not possible to translate precisely from archive offset to slice offset, the encryption layer depending on the algorithm used may introduce an additional shift between clear data offset an corresponding ciphered data offset.
  if an U_64 cannot handle such large value, false is returned, you should use the infinint of std::string version of this method

Definition at line 168 of file list_entry.hpp.

References libdar::infinint::is_zero().

## ◆ get_archive_offset_for_EA()

bool libdar::list_entry::get_archive_offset_for_EA | ( | infinint & | val | ) | const
| inline

offset in byte whert to find the first byte of Extended Attributes

Note
  see note for get_archive_offset_for_data(infinint)
  if an U_64 cannot handle such large value, false is returned, you should use the infinint of std::string version of this method

Definition at line 185 of file list_entry.hpp.

References libdar::infinint::is_zero().

## ◆ get_archive_offset_for_FSA()

bool libdar::list_entry::get_archive_offset_for_FSA | ( | infinint & | val | ) | const
| inline

offset in byte where to find the first byte of Filesystem Specific Attributes

Note
  see note for get_archive_offset_for_data(infinint)
  if an U_64 cannot handle such large value, false is returned, you should use the infinint of std::string version of this method

Definition at line 199 of file list_entry.hpp.

References libdar::infinint::is_zero().

## ◆ get_ea_read_next()

bool libdar::list_entry::get_ea_read_next | ( | std::string & | key | ) | const

read the next Extended Attribute name

Parameters

  [out] | key | is set to the EA name

Returns
  true if some other attribute can be read, false if this one is the last

Note
  to have list_entry objects filled with this information you need to activate it in archive options listing (archive::op_listing) of set fetch_ea to true in archive::get_children_of() and in archive_get_children_in_table()

## ◆ get_ea_reset_read()

void libdar::list_entry::get_ea_reset_read | ( |  | ) | const
| inline

reset the reading of Extended Attributes names

Note
  see get_ea_read_next()

Definition at line 211 of file list_entry.hpp.

## ◆ get_last_access()

void libdar::list_entry::get_last_access | ( | datetime::time_unit | tu,
|  | time_t & | second,
|  | time_t & | fraction
| ) |  | const
| inline

yet an alternative method to get last access time

Parameters

  [in] | tu | time unit to be used to store fraction (libdar::datetime::tu_microsecond, libdar::datetime::tu_nanosecond,...)
  [out] | second | integer number of second
  [out] | fraction | remaining part of the time (expressed as tu unit) to be added to "second" to get the exact time

Definition at line 125 of file list_entry.hpp.

References libdar::datetime::get_value().

## ◆ get_slices()

const range& libdar::list_entry::get_slices | ( |  | ) | const
| inline

provides slice information

Note
  you must activate slice lookup from archive options for this field to me set by libdar, this operation has a additional cost in storage and computation

Definition at line 152 of file list_entry.hpp.

## ◆ get_storage_size_for_data()

bool libdar::list_entry::get_storage_size_for_data | ( | infinint & | val | ) | const
| inline

amount of byte used to store the file's data

Note
  if an U_64 cannot handle such large value, false is returned, you should use the infinint of std::string version of this method

Definition at line 176 of file list_entry.hpp.

References libdar::infinint::is_zero().

## ◆ is_eod()

bool libdar::list_entry::is_eod | ( |  | ) | const
| inline

method used to know whether the returned entry signals a End of Directory

Note
  such entry does not contain any valid information, it signals the next entry will be taken from the parent directory, instead of the current directory. Such entry is necessary for archive::op_listing

Definition at line 74 of file list_entry.hpp.

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

- list_entry.hpp