Loading...
Searching...
No Matches
libdar::header_flags Class Reference
Private

manages the flag field used for now in the archive header More...

`#include <header_flags.hpp>`

## Public Member Functions

| header_flags (generic_file &f)
| header_flags (const header_flags &ref)=default
| header_flags (header_flags &&ref) noexcept=default
header_flags & | operator= (const header_flags &ref)=default
header_flags & | operator= (header_flags &&ref) noexcept=default
void | set_bits (U_I bitfield)
| add all the bits set to 1 in the argument
void | unset_bits (U_I bitfield)
| remove all the bits set to in in the argument
bool | is_set (U_I bitfield) const
| return true if all bits of the argument set to 1, are set in this header_flags
void | read (generic_file &f)
| set the header_flags from a generic_file
void | dump (generic_file &f) const
| dump the header_flags to generic_file
void | clear ()
| clear all flags
bool | is_all_cleared ()
| whether all bits are cleared

## Static Private Member Functions

static bool | has_an_lsb_set (U_I bitfield)

## Private Attributes

U_I | bits
| future implementation could rely on infinint for a arbitrary large bitfield

## Detailed Description

manages the flag field used for now in the archive header

Note
  historically flags were used a usual constant bitfield expression when 7 different bits were used came the question about adding more than one bit in the future. This last bit (0x01) has been reserved to flag that the bit field had a extra byte to take into account. By extension, the 0x0100 bit has been reserved to scale beyond 2 bytes or 14 different possible bits. In consequence, you cannot set or unset a bitfield having one of its byte with its least significant bit set (0x01, 0x0100, 0x1000,...). the use a meaning of each bit is left outside of this class to ease this class reuse in other context if the need arises in the future.

Definition at line 49 of file header_flags.hpp.

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

- header_flags.hpp