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

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

#include <header_flags.hpp>

+ Collaboration diagram for libdar::header_flags:

Public Member Functions

 header_flags (generic_file &f)
 
 header_flags (const header_flags &ref)=default
 
 header_flags (header_flags &&ref) noexcept=default
 
header_flagsoperator= (const header_flags &ref)=default
 
header_flagsoperator= (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: