Disk ARchive: libdar::tlv Class Reference

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

Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
libdar::tlv Class Reference
Private

`#include <tlv.hpp>`

Inherits libdar::memory_file.

## Public Member Functions
| tlv (generic_file &f)
| tlv (const tlv &ref)=default
| tlv (tlv &&ref) noexcept=default
tlv & | operator= (const tlv &ref)=default
tlv & | operator= (tlv &&ref) noexcept=default
void | setup (generic_file &f)
| same as the constructor but on an existing object
void | dump (generic_file &f) const
| dumps the tlv contents to file
U_16 | get_type () const
void | set_type (U_16 val)
| get the TLV type
Public Member Functions inherited from libdar::memory_file
| memory_file ()
| Constructors & Destructor.
| memory_file (const memory_file &ref)=default
| memory_file (memory_file &&ref) noexcept=default
memory_file & | operator= (const memory_file &ref)=default
memory_file & | operator= (memory_file &&ref) noexcept=default
void | reset ()
infinint | size () const
virtual bool | skippable (skippability direction, const infinint &amount) override
| whether the implementation is able to skip
virtual bool | skip (const infinint &pos) override
| skip at the absolute position
virtual bool | skip_to_eof () override
| skip to the end of file
virtual bool | skip_relative (S_I x) override
| skip relatively to the current position
virtual bool | truncatable (const infinint &pos) const override
| whether the implementation is able to truncate to the given position
virtual infinint | get_position () const override
| get the current read/write position
Public Member Functions inherited from libdar::generic_file
| generic_file (gf_mode m)
| main constructor
| generic_file (const generic_file &ref)
| copy constructor
| generic_file (generic_file &&ref) noexcept
| move constructor
generic_file & | operator= (const generic_file &ref)
| assignment operator
generic_file & | operator= (generic_file &&ref) noexcept
| move operator
| ~generic_file () noexcept(false)
| virtual destructor,
void | terminate ()
| destructor-like call, except that it is allowed to throw exceptions
bool | operator== (generic_file &ref)
bool | operator!= (generic_file &ref)
gf_mode | get_mode () const
| retreive the openning mode for this object
void | read_ahead (const infinint &amount)
void | ignore_read_ahead (bool mode)
virtual U_I | read (char *a, U_I size) override
| read data from the generic_file inherited from proto_generic_file
virtual void | write (const char *a, U_I size) override
| write data to the generic_file inherited from proto_generic_file
void | write (const std::string &arg)
| write a string to the generic_file
S_I | read_back (char &a)
| skip back one char, read on char and skip back one char
S_I | read_forward (char &a)
| read one char
virtual void | truncate (const infinint &pos)
| truncate file at the given offset
virtual void | copy_to (generic_file &ref)
| copy all data from current position to the object in argument
virtual void | copy_to (generic_file &ref, const infinint &crc_size, crc *&value)
| copy all data from the current position to the object in argument and computes a CRC value of the transmitted data
U_32 | copy_to (generic_file &ref, U_32 size)
| small copy (up to 4GB) with CRC calculation
infinint | copy_to (generic_file &ref, infinint size)
| copy the given amount to the object in argument
bool | diff (generic_file &f, const infinint &me_read_ahead, const infinint &you_read_ahead, const infinint &crc_size, crc *&value)
| compares the contents with the object in argument
bool | diff (generic_file &f, const infinint &me_read_ahead, const infinint &you_read_ahead, const infinint &crc_size, crc *&value, infinint &err_offset)
void | reset_crc (const infinint &width)
| reset CRC on read or writen data
bool | crc_status () const
| to known whether CRC calculation is activated or not
crc * | get_crc ()
| get CRC of the transfered date since last reset
void | sync_write ()
| write any pending data
void | flush_read ()
| be ready to read at current position, reseting all pending data for reading, cached and in compression engine for example
Public Member Functions inherited from libdar::proto_generic_file
| proto_generic_file (const proto_generic_file &ref)=default
| copy constructor
| proto_generic_file (proto_generic_file &&ref) noexcept=default
| move constructor
proto_generic_file & | operator= (const proto_generic_file &ref)=default
| assignment operator
proto_generic_file & | operator= (proto_generic_file &&ref) noexcept=default
| move operator
virtual | ~proto_generic_file () noexcept(false)
| virtual destructor

## Private Member Functions
void | init (generic_file &f)

## Private Attributes
U_16 | type
| set the TLV type

## Additional Inherited Members
Public Types inherited from libdar::generic_file
enum | skippability { skip_backward , skip_forward }
Protected Member Functions inherited from libdar::memory_file
virtual void | inherited_read_ahead (const infinint &amount) override
| tells the object that several calls to read() will follow to probably obtain at least the given amount of data
virtual U_I | inherited_read (char *a, U_I size) override
| implementation of read() operation
virtual void | inherited_write (const char *a, U_I size) override
| implementation of the write() operation
virtual void | inherited_truncate (const infinint &pos) override
| truncate file at the give offset
virtual void | inherited_sync_write () override
| write down any pending data
virtual void | inherited_flush_read () override
| reset internal engine, flush caches in order to read the data at current position
virtual void | inherited_terminate () override
| destructor-like call, except that it is allowed to throw exceptions
Protected Member Functions inherited from libdar::generic_file
void | set_mode (gf_mode x)
bool | is_terminated () const

## Detailed Description

Type Length Value Structure

this structure holds arbitrary type of data this is used in particular for the slice header

Note
  a tlv is a memory_file, that way it holds the *V*alue and *L*ength of the data. Only the *T*ype field needs to be added to the memory_file datastructure

Definition at line 43 of file tlv.hpp.

## Constructor & Destructor Documentation

## ◆ tlv() [1/2]

libdar::tlv::tlv | ( |  | ) |
| inline

Definition at line 49 of file tlv.hpp.

## ◆ tlv() [2/2]

libdar::tlv::tlv | ( | generic_file & | f | ) |
| inline

Definition at line 50 of file tlv.hpp.

## Member Function Documentation

## ◆ get_type()

U_16 libdar::tlv::get_type | ( |  | ) | const
| inline

Definition at line 62 of file tlv.hpp.

## ◆ set_type()

void libdar::tlv::set_type | ( | U_16 | val | ) |
| inline

get the TLV type

Definition at line 63 of file tlv.hpp.

References type.

## Member Data Documentation

## ◆ type

U_16 libdar::tlv::type
| private

set the TLV type

Definition at line 66 of file tlv.hpp.

Referenced by dump(), and set_type().

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

- tlv.hpp