Class dd::Record

Материал из ISPWiki
Перейти к: навигация, поиск

Класс dd::Record

Данный класс является абстрактным


Описание:

class dd::Record


Потомки:


Открытые члены (кратко)

void SetOldValues ( RecordPtr values )
virtual string KeyVal ( RecordPtr )
bool First ()
virtual void New ()

Защищённые члены (кратко)

virtual string DummyString () const

поле с таким значение будет считаться удаленным


void CheckData ()

убедиться, что dd_data указывает на существующий элемент


bool Lock ()

стать владельцем кэша


void Reload ()

стать владельцем и, если удалось, перечитать содержимое

Приватные члены (кратко)

virtual size_t AddField ( const string &name , Field * fld )

Методы

void SetOldValues ( RecordPtr values )

Данная функция/метод является inline функцией

Обработчики событий

Before выполняется до фиксации изменений. Тут можно изменить значения полей и это не приведет к повторному вызову Post. Post при этом вызывать НЕ НАДО.

After - вызывается, когда все действия уже завершены. Так, как если бы обработчик был вызван непосредственно после вызова Post или Delete

onBeforeNew и onAfterNew по умолчанию вызывают onBeforePost и onAfterPost соответственно

virtual string KeyVal ( RecordPtr )

Методы для навигации по списку записей

bool First ()

First, Next, Find - перечитать кэш New, Delete SetField - перечитать кэш, если он еще не заблокирован на запись (предварительно заблокировав) Post - мы уже застолбили кэш

Переносим сюда работу с лочками, CacheDataSet оставляем только сами объекты + c_owner необходим, чтобы определять, что показывать

virtual void New ()

Методы для редактирования

virtual size_t AddField ( const string &name , Field * fld )

Данный метод является приватным

если использовать RwLock - может Deadlock случиться т.к. будет нарушен порядок установки блокировок Функции для работы с полями Вызываются методами класса Field

virtual string DummyString () const

Данный метод является защищённым

поле с таким значение будет считаться удаленным

void CheckData ()

Данный метод является защищённым

убедиться, что dd_data указывает на существующий элемент

bool Lock ()

Данный метод является защищённым

стать владельцем кэша

void Reload ()

Данный метод является защищённым

стать владельцем и, если удалось, перечитать содержимое