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

#include <DbHandle.H>

Inheritance diagram for DbHandle:
DbTable DbPointer DbName dbNameStruct

Public Member Functions

 DbHandle (const char *szProject, const dbNameStruct &dbns, DbAccess dbac)
 
 DbHandle (DbHandle &dbh)
 
virtual ~DbHandle ()
 
void change_access_mode (DbAccess new_dbac)
 
DbAccess access_mode () const
 
LockId db_lock_id () const
 
void restore_lock ()
 
void flush ()
 
const char * project () const
 
virtual void insert_line (DbIndex line, DbIndex lines_cnt=1, Logic bInit=TRUE)
 
virtual void remove_lines (DbIndex line1, DbIndex line2)
 
virtual unsigned valid_n2i (const char *column) const
 
- Public Member Functions inherited from DbTable
 DbTable (const DbTTDesc &dbtt, DbIndex quant=DB_QUANT, DbIndex start_volume=DB_START_VOLUME)
 
 DbTable (DbTable &dbt)
 
virtual ~DbTable ()
 
const DbTTDesctable_format () const
 
virtual DbIndex lines_count () const
 
virtual DbIndex lines_range (DbIndex line1, DbIndex line2, DbIndex *line=NULL) const
 
virtual void get_value (const char *column, DbIndex line, void *ptr)
 
virtual void get_values (const char *column, DbIndex start_line, DbIndex lines_cnt, void *ptr)
 
virtual Logic check_empty_value (const char *column, DbIndex line)
 
virtual UnitId get_unit (const char *column) const
 
virtual const DmnDescAr & get_domains ()
 
virtual DbDomainDesc get_domain (const char *column) const
 
virtual Compar compare_lines (const char *column, DbIndex line1, DbIndex line2)
 
const char * tt_name () const
 
Logic is_modified () const
 
Logic is_modifiable () const
 
virtual void clean ()
 
virtual void set_value (const char *column, DbIndex line, const void *ptr)
 
virtual void set_values (const char *column, DbIndex start_line, DbIndex lines_cnt, const void *ptr)
 
virtual void set_empty_value (const char *column, DbIndex line)
 
virtual void set_unit (const char *column, UnitId unid)
 
virtual void exchange_lines (DbIndex line1, DbIndex line2)
 
virtual void merge (DbTable &src)
 
virtual void copy_lines (DbIndex iWhere, DbTable &src, DbIndex iFrom, DbIndex nLines)
 
virtual void modify ()
 
virtual void not_modified ()
 
virtual void set_modifiability (Logic bFlag)
 
void read_leader (int fd, ByteOrder &eBO, DbIndex &nLineCnt, unsigned &nDmnsCnt)
 
void append_table (int fd, ByteOrder eBO, DbIndex nLineCnt)
 
void read (int fd)
 
void write_leader (int fd, ByteOrder eBO, DbIndex nLineCnt)
 
void record_table (int fd, ByteOrder eBO, DbIndex iStartLine, DbIndex nLineCnt)
 
void write (int fd)
 
void set_preread_size (size_t nSize)
 
size_t get_preread_size () const
 
void write_changed ()
 
void load_all_lines ()
 
MutexId * mutex () const
 
- Public Member Functions inherited from DbPointer
 DbPointer ()
 
 DbPointer (const DbPointer &dbp)
 
 DbPointer (const dbPointer &dbptr)
 
 DbPointer (const char *szProject, const DbName &dbn)
 
 operator dbPointer () const
 
DbPointeroperator= (const DbPointer &dbp)
 
DbPointeroperator= (const dbPointer &dbptr)
 
void set_project (const char *szProject)
 
void unset_project ()
 
const char * get_project () const
 
virtual Logic is_empty () const
 
- Public Member Functions inherited from DbName
 DbName ()
 
 DbName (const dbNameStruct &dbns)
 
 DbName (const char *szFileName)
 
const char * symbolic_name () const
 
const dbNameStructstruct_name () const
 
DbNameoperator= (const dbNameStruct &dbns)
 
DbNameoperator= (const DbName &dbn)
 
DbNameoperator= (const char *szFileName)
 
void set_table (const char *szTableType)
 
void set_well (const char *szWellName)
 
void set_sp (int nSP)
 
void set_mod (int nMod)
 
void set_list_flag (Logic bList)
 
void unset_table ()
 
void unset_well ()
 
void unset_sp ()
 
void unset_mod ()
 
const char * get_table () const
 
const char * get_well () const
 
int get_sp () const
 
int get_mod () const
 
Logic get_list_flag () const
 

Protected Member Functions

int unique_dbmod ()
 
virtual void read_line_seq (DbIndex line1, DbIndex line2)
 
virtual void write_line_seq (DbIndex line1, DbIndex line2)
 
- Protected Member Functions inherited from DbTable
virtual void read_lines (DbIndex line1, DbIndex line2)
 
virtual void write_lines (DbIndex line1, DbIndex line2)
 
virtual void load_lines (DbIndex line1, DbIndex line2)
 
virtual void change_lines (DbIndex line1, DbIndex line2)
 
unsigned n2i (const char *column) const
 
void * i2ptr (unsigned dmn_i, DbIndex line) const
 
size_t i2size (unsigned dmn_i) const
 
- Protected Member Functions inherited from DbName
virtual void rebuild_fname ()
 

Protected Attributes

DbAccess dbaccess
 
int fildes
 
LockId lock_id
 
DbFilefilstor
 
ByteOrder file_bo
 
Logic heModifyData_added
 
- Protected Attributes inherited from DbTable
DbTTDesc fmt
 
DbBufStorage dtable
 
DbFileDomainAttrdmn_attrs
 
unsigned nFileDmnsCnt
 

Detailed Description

Унифицированный класс, задающий правила доступа, именования и размещения файла БД.

Constructor & Destructor Documentation

DbHandle::DbHandle ( const char *  szProject,
const dbNameStruct dbns,
DbAccess  dbac 
)

Создать таблицу с указанным именем указанного типа в памяти. В зависимости от способа доступа поля dbNameStruct имеют следующий смысл:

    table       well    sp  mod
------------------+---------------+-------+-------+---------------
DbMemory        Опция      Опция  Опция  Не используется
DbReadOnlyFile  Обязательно    Опция  Опция  Обязательно
DbReadWriteFile Обязательно    Опция  Опция  Обязательно
DbCreateFile    Обязательно    Опция  Опция  Опция
------------------+---------------+-------+-------+---------------

Для способа доступа DbMemory проект можно не указывать (NULL).

DbHandle::DbHandle ( DbHandle dbh)

Создать копию таблицы в памяти.

virtual DbHandle::~DbHandle ( )
virtual

Сохранить изменения в файле для DbReadWriteFile, DbCreateFile

Member Function Documentation

DbAccess DbHandle::access_mode ( ) const

Получить режим, в котором открыта таблица ЛБД.

void DbHandle::change_access_mode ( DbAccess  new_dbac)

Изменить режим доступа к таблице базы данных. Данная операция изменяет тип блокировки таблицы за исключением DbMemory. Изменение типа на DbCreateFile аналогична изменению на DbReadWriteFile.

LockId DbHandle::db_lock_id ( ) const

Возвратить идентификатор блокировки (неопределенное число, если таблица открыта в режиме DB_MEMORY).

void DbHandle::flush ( )

Записать таблицу в файл, если способ доступа позволяется это сделать.

virtual void DbHandle::insert_line ( DbIndex  line,
DbIndex  lines_cnt = 1,
Logic  bInit = TRUE 
)
virtual

Вставить в таблицу строку (строки) перед указанной line. Если указана строка last, то после последней. Если аргумент bInit TRUE, то требуется инициализация строк.

Reimplemented from DbTable.

const char* DbHandle::project ( ) const

Проект, в котором создана таблица.

virtual void DbHandle::read_line_seq ( DbIndex  line1,
DbIndex  line2 
)
protectedvirtual

Безусловно прочитать из файла на диске указанные строки [line1..line2]. Гарантируется, что в памяти строки идут последовательно.

Reimplemented from DbTable.

virtual void DbHandle::remove_lines ( DbIndex  line1,
DbIndex  line2 
)
virtual

Удалить из таблицы указанный диапазон строк [line1..line2]

Reimplemented from DbTable.

void DbHandle::restore_lock ( )

Восстановить блокировку (полезно в том случае, если она была потеряна). Функция db_lock_id() будет возвращать новый идентификатор.

int DbHandle::unique_dbmod ( )
protected

Дополнить заданную маску dbsname уникальным в проекте номером mod и создать файл с полученным именем.

virtual unsigned DbHandle::valid_n2i ( const char *  column) const
virtual

Получить индекс домена по имени и проверить его на соответствие формату конкретной таблицы БД - кидает ERROR__DB_DMN_NOT_FOUND

Reimplemented from DbTable.

virtual void DbHandle::write_line_seq ( DbIndex  line1,
DbIndex  line2 
)
protectedvirtual

Безусловно сохранить в файл на диске указанные строки [line1..line2]. Гарантируется, что в памяти строки идут последовательно.

Reimplemented from DbTable.

Member Data Documentation

DbAccess DbHandle::dbaccess
protected

Способ доступа к таблице.

int DbHandle::fildes
protected

Открытый файл таблицы ЛБД. Для DbMemory равен EOF

ByteOrder DbHandle::file_bo
protected

Тип архитектуры процессора, в которой читаются/пишутся данные на диске.

DbFile* DbHandle::filstor
protected

Доступ к файлу.

Logic DbHandle::heModifyData_added
protected

Признак того, что в историю обработки однажды уже заносилось событие о модификации данного объекта БД

LockId DbHandle::lock_id
protected

Идентификатор блокировки.


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