UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Public Member Functions | List of all members
DbBufStorage Class Reference

#include <DbBufStorage.H>

Public Member Functions

 DbBufStorage (unsigned nItemSize)
 
virtual ~DbBufStorage ()
 
void set_item_size (unsigned nItemSize)
 
DbIndex max_lines_in_cluster () const
 
void preload_lines (DbIndex line1, DbIndex line2)
 
void change_lines (DbIndex line1, DbIndex line2)
 
void insert_line (DbIndex line, DbIndex lines_cnt)
 
void remove_lines (DbIndex line1, DbIndex line2)
 
void exchange_lines (DbIndex line1, DbIndex line2)
 
void clean_storage ()
 
void * line_pointer (DbIndex line) const
 
void sequent_lines (DbIndex line1, DbIndex line2, DbIndexAr &arLine, DbIndexAr &arCnt) const
 
void print_self ()
 
DbIndex lines_count () const
 
DbLineEntryoperator[] (DbIndex line) const
 

Static Public Member Functions

static void good_line_range (DbIndex line1, DbIndex line2, DbIndex line[2])
 

Detailed Description

Хранилище строк таблицы ЛБД. Не осуществляет собственно операции загрузки, изменения, сохранения строк в файле. Но обеспечивает выделение памяти и управления ею.

Constructor & Destructor Documentation

DbBufStorage::DbBufStorage ( unsigned  nItemSize)

Создать пустое хранилище строк длиной nItemSize байт.

virtual DbBufStorage::~DbBufStorage ( )
virtual

Разрушить хранилище.

Member Function Documentation

void DbBufStorage::change_lines ( DbIndex  line1,
DbIndex  line2 
)

Изменить указанные строки line1..line2 в памяти.

void DbBufStorage::clean_storage ( )

Очистить хранилище.

void DbBufStorage::exchange_lines ( DbIndex  line1,
DbIndex  line2 
)

Поменять указанные строки line1 и line2 местами.

static void DbBufStorage::good_line_range ( DbIndex  line1,
DbIndex  line2,
DbIndex  line[2] 
)
static

Упорядочить заданную пару индексов строк так, чтобы line[1]>=line[0]

void DbBufStorage::insert_line ( DbIndex  line,
DbIndex  lines_cnt 
)

Вставить указанное количество строк начиная с указанной.

void* DbBufStorage::line_pointer ( DbIndex  line) const

Возвратить указатель на место хранения указанной строки.

DbIndex DbBufStorage::lines_count ( ) const
inline

Количество строк в таблице.

DbIndex DbBufStorage::max_lines_in_cluster ( ) const

Получить максимально допустимый размер кластера в строках. При этом размер кластера может превышать указанный предел в том случае, если этот кластер создан за одну операцию добавления строк.

DbLineEntry & DbBufStorage::operator[] ( DbIndex  line) const
inline

Атрибуты каждой строки.

void DbBufStorage::preload_lines ( DbIndex  line1,
DbIndex  line2 
)

Подготовить указанные строки line1..line2 к загрузке в память.

void DbBufStorage::print_self ( )

Распечатать содержимое хранилища.

void DbBufStorage::remove_lines ( DbIndex  line1,
DbIndex  line2 
)

Удалить указанные строки line1..line2 в памяти.

void DbBufStorage::sequent_lines ( DbIndex  line1,
DbIndex  line2,
DbIndexAr arLine,
DbIndexAr arCnt 
) const

Возвратить в массивах arLine, arCnt участки диапазона строк line1..line2, расположенные в памяти последовательно.

void DbBufStorage::set_item_size ( unsigned  nItemSize)

Изменить размер строки на указанный. Это возможно только в случае пустого хранилица. Если хранилище не пустое, то произойден исключительная ситуация с кодом ERROR__MISMATCH.


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