UNIVERS
15.3
UNIVERS base processing software API
|
#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 |
DbLineEntry & | operator[] (DbIndex line) const |
Static Public Member Functions | |
static void | good_line_range (DbIndex line1, DbIndex line2, DbIndex line[2]) |
Хранилище строк таблицы ЛБД. Не осуществляет собственно операции загрузки, изменения, сохранения строк в файле. Но обеспечивает выделение памяти и управления ею.
DbBufStorage::DbBufStorage | ( | unsigned | nItemSize | ) |
Создать пустое хранилище строк длиной nItemSize байт.
|
virtual |
Разрушить хранилище.
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 |
Упорядочить заданную пару индексов строк так, чтобы line[1]>=line[0]
void DbBufStorage::insert_line | ( | DbIndex | line, |
DbIndex | lines_cnt | ||
) |
Вставить указанное количество строк начиная с указанной.
void* DbBufStorage::line_pointer | ( | DbIndex | line | ) | const |
Возвратить указатель на место хранения указанной строки.
|
inline |
Количество строк в таблице.
DbIndex DbBufStorage::max_lines_in_cluster | ( | ) | 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.