LibUDB  1.0.1
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
UDBase Class Reference

The UDBase class. More...

#include <UDBase.h>

Public Member Functions

 UDBase (const UDBase &other)
 
 UDBase (UDBase &&other)
 
UDBaseoperator= (const UDBase &other)
 
UDBaseoperator= (UDBase &&other)
 
UDBaseoperator+= (const UDBase &other)
 
void writeToBuffer (std::vector< char > &result)
 
void readFromBuffer (const std::vector< char > &buf, const size_t &offset=0, const size_t &bytes_to_read=0)
 
void writeToFile (const std::filesystem::path &f_path)
 
void readFromFile (const std::filesystem::path &f_path)
 
std::vector< UDBElement > * getRawBase () const
 
void addElement (const UDBElement &el)
 
void addElements (const std::vector< UDBElement > &elements)
 
virtual void removeElement (const UDBElement &el)
 
virtual void removeElements (std::function< bool(const UDBElement &)> predicate)
 
virtual void replaceElement (const UDBElement &old_el, const UDBElement &new_el)
 
void clearBase ()
 
void shrinkToFit ()
 
virtual UDBase searchElement (std::function< bool(const UDBElement &)> search_function)
 
virtual UDBase searchElement (std::function< void(const UDBElement &, UDBase &)> search_function)
 
virtual std::vector< UDBElementsearchElementV (std::function< bool(const UDBElement &)> search_function)
 
virtual void sortBase (std::function< bool(const UDBElement &, const UDBElement &)> sort_function)
 
size_t baseSize () const
 
size_t calculateWriteSize ()
 
std::vector< UDBasesplitBase (const size_t &bytes_limit, const size_t &minimum_elements=size_t(1))
 

Static Public Member Functions

static UDBase convertToBase (const std::vector< UDBElement > &elements)
 

Protected Member Functions

void readFromBufferInner (const std::vector< char > &buf, const size_t &offset, const size_t &bytes_to_read)
 
void writeToBufferInner (std::vector< char > &result)
 

Protected Attributes

std::vector< UDBElementbase
 Internal base object.
 
std::string base_version = "UDB 1.0"
 Base version string used to identify base in buffers and files.
 

Detailed Description

The UDBase class.

This class contains methods for database managing.

Constructor & Destructor Documentation

◆ UDBase() [1/2]

UDBase::UDBase ( const UDBase other)

Copy constructor.

Parameters
otherUDBase object.

◆ UDBase() [2/2]

UDBase::UDBase ( UDBase &&  other)

Move constructor.

Parameters
otherUDBase object.

Member Function Documentation

◆ addElement()

void UDBase::addElement ( const UDBElement el)

Adds element to base.

Parameters
elElement to be added.

◆ addElements()

void UDBase::addElements ( const std::vector< UDBElement > &  elements)

Adds elements to base.

Parameters
elementsVector of elements to be added.

◆ baseSize()

size_t UDBase::baseSize ( ) const

Returns number of elements in database.

Returns
Number of elements.

◆ calculateWriteSize()

size_t UDBase::calculateWriteSize ( )

Calculates size of buffer, wich can be return by writeToBuffer() method.

Returns
Possible size of buffer.

◆ clearBase()

void UDBase::clearBase ( )

Removes all elements from base.

◆ convertToBase()

static UDBase UDBase::convertToBase ( const std::vector< UDBElement > &  elements)
static

Converts vector of UDBElement objects to base.

Parameters
elementsElements to be converted.
Returns
UDBase object.

◆ getRawBase()

std::vector<UDBElement>* UDBase::getRawBase ( ) const

Returns pointer to internal base vector object.

Returns
Pointer to internal vector.

◆ operator+=()

UDBase& UDBase::operator+= ( const UDBase other)

Appends other UDBase object values to current database.

Parameters
otherUDBase object to be appended.
Returns
reference to UDBase object.

◆ operator=() [1/2]

UDBase& UDBase::operator= ( const UDBase other)
Parameters
otherUDBase object
Returns
reference to UDBase object.

◆ operator=() [2/2]

UDBase& UDBase::operator= ( UDBase &&  other)
Parameters
otherUDBase object.
Returns
reference to UDBase object.

◆ readFromBuffer()

void UDBase::readFromBuffer ( const std::vector< char > &  buf,
const size_t &  offset = 0,
const size_t &  bytes_to_read = 0 
)

Tries to read database from given buffer.

Note
This method can throw std::exception in case of errors.
Parameters
bufBuffer database should be read from.
offsetPosition in buffer reading should be started from (default value is 0).
bytes_to_readQuantity of bytes to be read. If it is 0 (default), reads whole buffer starting from offset.

◆ readFromBufferInner()

void UDBase::readFromBufferInner ( const std::vector< char > &  buf,
const size_t &  offset,
const size_t &  bytes_to_read 
)
protected

Internal method used in readFromBuffer() and readFromFile() methods.

Parameters
bufBuffer base to be read from.
offsetNumber of byte reading to be started from.
bytes_to_readNumber of bytes to be read.

◆ readFromFile()

void UDBase::readFromFile ( const std::filesystem::path &  f_path)

Tries to read database from file.

Note
This method can throw std::exception in case of errors.
Parameters
f_pathAbsolute path to file database should be read from.

◆ removeElement()

virtual void UDBase::removeElement ( const UDBElement el)
virtual

Removes from base all elements equal to el.

Parameters
elElement to be removed.

◆ removeElements()

virtual void UDBase::removeElements ( std::function< bool(const UDBElement &)>  predicate)
virtual

Removes elements from base according to predicate function conditions.

Note
This method can throw std::exception in case of errors.
Parameters
predicateFunction to check removing conditions.

◆ replaceElement()

virtual void UDBase::replaceElement ( const UDBElement old_el,
const UDBElement new_el 
)
virtual

Replaces all elements equal to old_el by new_el.

Parameters
old_elElement to be replaced.
new_elElement to be replaced by.

◆ searchElement() [1/2]

virtual UDBase UDBase::searchElement ( std::function< bool(const UDBElement &)>  search_function)
virtual

Returns all elements that match the conditions specified in the search_function.

Parameters
search_functionFunction to check conditions.
Returns
Base with found elements.

◆ searchElement() [2/2]

virtual UDBase UDBase::searchElement ( std::function< void(const UDBElement &, UDBase &)>  search_function)
virtual

Returns all elements added to UDBase parameter of search_function.

Parameters
search_functionFunction to add elements to result;
Returns
Base with found elements.

◆ searchElementV()

virtual std::vector<UDBElement> UDBase::searchElementV ( std::function< bool(const UDBElement &)>  search_function)
virtual

Returns all elements that match the conditions specified in the search_function.

Parameters
search_functionFunction to check conditions.
Returns
Vector with found elements.

◆ shrinkToFit()

void UDBase::shrinkToFit ( )

Reduces memory usage by freeing unused memory in internal containers.

◆ sortBase()

virtual void UDBase::sortBase ( std::function< bool(const UDBElement &, const UDBElement &)>  sort_function)
virtual

Sorts base (quicksort algorithm).

Parameters
sort_functionFunction to compare elements.

◆ splitBase()

std::vector<UDBase> UDBase::splitBase ( const size_t &  bytes_limit,
const size_t &  minimum_elements = size_t(1) 
)

Splits base into bases of smaller size.

Parameters
bytes_limitMaximum permitted size of smaller base.
minimum_elementsMinimum elements in smaller base (default value is 1).
Returns

◆ writeToBuffer()

void UDBase::writeToBuffer ( std::vector< char > &  result)

Writes database to result buffer.

Parameters
resultVector base to be written to.

◆ writeToBufferInner()

void UDBase::writeToBufferInner ( std::vector< char > &  result)
protected

Internal method used in writeToBuffer() and writeToFile() methods.

Parameters
resultVecto base to be written to.

◆ writeToFile()

void UDBase::writeToFile ( const std::filesystem::path &  f_path)

Writes database to file.

Note
This method can throw std::exception in case of errors.
Parameters
f_pathAbsolute path to file database should be written to.