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

arbitrary large storage structure More...

#include <storage.hpp>

+ Collaboration diagram for libdar::storage:

Public Member Functions

 storage (U_32 size)
 
 storage (const infinint &size)
 
 storage (proto_generic_file &f, const infinint &size)
 
 storage (const storage &ref)
 
 storage (storage &&ref) noexcept
 
storageoperator= (const storage &val)
 
storageoperator= (storage &&val) noexcept
 
bool operator< (const storage &ref) const noexcept
 
bool operator== (const storage &ref) const noexcept
 
bool operator> (const storage &ref) const noexcept
 
bool operator<= (const storage &ref) const noexcept
 
bool operator>= (const storage &ref) const noexcept
 
bool operator!= (const storage &ref) const noexcept
 
unsigned char & operator[] (infinint position)
 
unsigned char operator[] (const infinint &position) const
 
infinint size () const noexcept
 
void clear (unsigned char val=0) noexcept
 
void dump (proto_generic_file &f) const
 
iterator begin () const
 
iterator end () const
 
iterator rbegin () const
 
iterator rend () const
 
U_I write (iterator &it, unsigned char *a, U_I size)
 write data to the storage at the location pointed to by it More...
 
U_I read (iterator &it, unsigned char *a, U_I size) const
 
bool write (iterator &it, unsigned char a)
 
bool read (iterator &it, unsigned char &a) const
 
void insert_null_bytes_at_iterator (iterator it, U_I size)
 
void insert_const_bytes_at_iterator (iterator it, unsigned char a, U_I size)
 
void insert_bytes_at_iterator (iterator it, unsigned char *a, U_I size)
 
void insert_as_much_as_necessary_const_byte_to_be_as_wider_as (const storage &ref, const iterator &it, unsigned char value)
 
void remove_bytes_at_iterator (iterator it, U_I number)
 
void remove_bytes_at_iterator (iterator it, infinint number)
 
void truncate (const infinint &pos)
 

Private Member Functions

void copy_from (const storage &ref)
 
void move_from (storage &&ref) noexcept
 
S_32 difference (const storage &ref) const
 
void reduce ()
 
void insert_bytes_at_iterator_cmn (iterator it, bool constant, unsigned char *a, U_I size)
 
void fusionne (struct cellule *a_first, struct cellule *a_last, struct cellule *b_first, struct cellule *b_last, struct cellule *&res_first, struct cellule *&res_last)
 

Static Private Member Functions

static void detruit (struct cellule *c)
 
static void make_alloc (U_32 size, struct cellule *&begin, struct cellule *&end)
 
static void make_alloc (infinint size, cellule *&begin, struct cellule *&end)
 

Private Attributes

struct cellule * first
 
struct cellule * last
 

Friends

class storage::iterator
 

Detailed Description

arbitrary large storage structure

used to store infinint

Definition at line 52 of file storage.hpp.

Constructor & Destructor Documentation

◆ storage() [1/3]

libdar::storage::storage ( U_32  size)
inline

Definition at line 64 of file storage.hpp.

◆ storage() [2/3]

libdar::storage::storage ( const storage ref)
inline

Definition at line 67 of file storage.hpp.

◆ storage() [3/3]

libdar::storage::storage ( storage &&  ref)
inlinenoexcept

Definition at line 68 of file storage.hpp.

◆ ~storage()

libdar::storage::~storage ( )
inline

Definition at line 71 of file storage.hpp.

Member Function Documentation

◆ begin()

iterator libdar::storage::begin ( ) const
inline

Definition at line 145 of file storage.hpp.

◆ end()

iterator libdar::storage::end ( ) const
inline

Definition at line 147 of file storage.hpp.

◆ operator!=()

bool libdar::storage::operator!= ( const storage ref) const
inlinenoexcept

Definition at line 83 of file storage.hpp.

◆ operator<()

bool libdar::storage::operator< ( const storage ref) const
inlinenoexcept

Definition at line 73 of file storage.hpp.

◆ operator<=()

bool libdar::storage::operator<= ( const storage ref) const
inlinenoexcept

Definition at line 79 of file storage.hpp.

◆ operator=() [1/2]

storage & libdar::storage::operator= ( const storage val)
inline

Definition at line 69 of file storage.hpp.

◆ operator=() [2/2]

storage & libdar::storage::operator= ( storage &&  val)
inlinenoexcept

Definition at line 70 of file storage.hpp.

◆ operator==()

bool libdar::storage::operator== ( const storage ref) const
inlinenoexcept

Definition at line 75 of file storage.hpp.

◆ operator>()

bool libdar::storage::operator> ( const storage ref) const
inlinenoexcept

Definition at line 77 of file storage.hpp.

◆ operator>=()

bool libdar::storage::operator>= ( const storage ref) const
inlinenoexcept

Definition at line 81 of file storage.hpp.

◆ rbegin()

iterator libdar::storage::rbegin ( ) const
inline

Definition at line 154 of file storage.hpp.

◆ read()

bool libdar::storage::read ( iterator &  it,
unsigned char &  a 
) const
inline

Definition at line 168 of file storage.hpp.

◆ rend()

iterator libdar::storage::rend ( ) const
inline

Definition at line 156 of file storage.hpp.

◆ write() [1/2]

U_I libdar::storage::write ( iterator &  it,
unsigned char *  a,
U_I  size 
)

write data to the storage at the location pointed to by it

Parameters
[in,out]itwhere to write data to, at the end this iterator points just after the data that has been wrote
[in]agives to the address where is located the data to write to the storage object
[in]sizehow much bytes to write to the storage

◆ write() [2/2]

bool libdar::storage::write ( iterator &  it,
unsigned char  a 
)
inline

Definition at line 166 of file storage.hpp.

Friends And Related Function Documentation

◆ storage::iterator

friend class storage::iterator
friend

Definition at line 195 of file storage.hpp.

Member Data Documentation

◆ first

struct cellule* libdar::storage::first
private

Definition at line 181 of file storage.hpp.

◆ last

struct cellule * libdar::storage::last
private

Definition at line 181 of file storage.hpp.


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