C3D Toolkit  Kernel - 106477, Vision - 190409.106477
+ Граф связей класса Работа с потоками:

Классы

class  Cluster
 Кластер. Подробнее...
 
class  FileSpace
 Файловое пространство. Подробнее...
 
struct  ClusterReference
 Позиция в кластере для чтения/записи. Подробнее...
 
class  iobuf_Seq
 Потоковый буфер, обеспечивает только последовательную запись, без возможности удалить или перезаписать файл. Подробнее...
 
class  membuf
 Потоковый буфер памяти. Подробнее...
 
class  ClassDescriptor
 Упакованное имя класса. Подробнее...
 
class  TapeBase
 Базовый класс для потоковых классов. Подробнее...
 
class  TapeClass
 "Обертка" для одного потокового класса. Подробнее...
 
class  TapeRegistrator
 Массив для регистрации объектов при чтении/записи. Подробнее...
 
class  TapeRegistratorEx
 Массив для регистрации объектов с сохраненим информации о позиции чтения/записи. Подробнее...
 
class  tape
 Базовый класс потока для реализации чтения и записи. Подробнее...
 
class  reader
 Поток для чтения. Подробнее...
 
class  ScopedReadProgress
 Индикатор прогресса в области видимости для reader. Подробнее...
 
class  reader_ex
 Поток для чтения с возможностью чтения из нескольких FileSpaces по заданным позициям. Подробнее...
 
class  writer
 Поток для записи. Подробнее...
 
class  writer_ex
 Поток для записи в разные FileSpaces. Подробнее...
 
class  rw
 Поток для чтения и записи. Подробнее...
 
class  TapeManager
 Менеджер потоков. Подробнее...
 
struct  TapeClassContainer
 Массив регистрации потоковых классов. Подробнее...
 
class  c3d::IModelTreeNode
 Узел дерева модели. Подробнее...
 
class  c3d::IModelTree
 Обобщенное дерево модели. Подробнее...
 
class  c3d::IEmbodimentTree
 Дерево Исполнений. Подробнее...
 
class  VersionContainer
 Контейнер версий. Подробнее...
 
class  c3d::MbTreeNode
 Узел дерева. Подробнее...
 
class  c3d::MbModelTree
 Дерево геометрической модели. Подробнее...
 
class  c3d::ItemDataBase
 Базовый класс для пользовательских данных узла дерева. Подробнее...
 
class  c3d::ItemDataBool
 Свойство типа bool. Подробнее...
 
class  c3d::ItemDataInteger
 Свойство типа integer. Подробнее...
 
class  c3d::ItemDataDouble
 Свойство типа double. Подробнее...
 
class  c3d::ItemDataString
 Свойство типа string. Подробнее...
 
class  c3d::ItemAttrBool
 Данные атрибута bool. Подробнее...
 
class  c3d::ItemAttrInteger
 Данные атрибута integer. Подробнее...
 
class  c3d::ItemAttrDouble
 Данные атрибута double. Подробнее...
 
class  c3d::ItemAttrString
 Данные атрибута string. Подробнее...
 
class  c3d::ItemAttrProductInfo
 Данные атрибута MbProductInfo. Подробнее...
 
class  c3d::ItemAttrInt64
 Данные атрибута int64. Подробнее...
 
class  c3d::ItemAttrIdentifier
 Данные атрибута Идентификатор. Подробнее...
 
class  c3d::ItemAttrColor
 Данные атрибута Цвет. Подробнее...
 
class  c3d::ItemAttrWidth
 Данные атрибута Толщина. Подробнее...
 
class  c3d::ItemAttrStyle
 Данные атрибута Стиль. Подробнее...
 
class  c3d::ItemAttrSelected
 Данные атрибута Селектированность. Подробнее...
 
class  c3d::ItemAttrVisible
 Данные атрибута Видимость. Подробнее...
 
class  c3d::ItemAttrChanged
 Данные атрибута Изменённость. Подробнее...
 
class  c3d::ItemAttrDencity
 Данные атрибута Плотность. Подробнее...
 
class  c3d::ItemAttrUpdateStamp
 Данные атрибута Метка времени обновления. Подробнее...
 
class  c3d::ItemAttrAnchor
 Данные атрибута Якорь. Подробнее...
 
class  c3d::ItemAttrEmbodiment
 Данные атрибута исполнения. Подробнее...
 
class  c3d::UserDataMap
 Контейнер для пользовательских данных узла дерева. Подробнее...
 
struct  c3d::MbItemData
 Данные узла дерева. Подробнее...
 

Макросы

#define EOF   (-1)
 Конец файла.
 
#define DECLARE_PERSISTENT_OPS(Class)
 Дружественные операторы чтения и записи указателей и ссылок.
 
#define DECLARE_PERSISTENT_OPS_B(Class)
 Объявление операторов чтения и записи указателей и ссылок.
 
#define IMPL_PERSISTENT_OPS(Class)
 Операторы чтения и записи указателей и ссылок.
 
#define DECLARE_PERSISTENT_RO_OPS(Class)
 Операторы чтения указателей и ссылок для класса без записи.
 
#define DECLARE_PERSISTENT_FUNCS(Class)
 Функции чтения и записи.
 
#define DECLARE_PERSISTENT_RO_FUNCS(Class)
 Функции чтения для класса без записи.
 
#define DECLARE_CLASS_DESC_FUNC(Class)
 Функции получения дескриптора класса.
 
#define IMP_CLASS_DESC_FUNC(AppID, Class)
 Функции получения дескриптора (хэш + APP UID) класса.
 
#define DECLARE_PERSISTENT_CTOR(Class)
 Конструктор для потокового класса.
 
#define IMP_PERSISTENT_CTOR(Class)   Class::Class( TapeInit ) {}
 Конструктор для потокового класса.
 
#define IMP_PERSISTENT_CTOR1(Class, Base)   Class::Class( TapeInit ) : Base( tapeInit ) {}
 Конструктор для класса с одной потоковой базой.
 
#define IMP_PERSISTENT_CTOR2(Class, Base1, Base2)   Class::Class( TapeInit ) : Base1( tapeInit ), Base2( tapeInit ) {}
 Конструктор для класса с двумя потоковыми базами.
 
#define IMP_PERSISTENT_REGISTRATION(AppID, Class)
 Конструирование нового экземпляра класса. Подробнее...
 
#define IMP_PERSISTENT_RO_REGISTRATION(AppID, Class)
 Конструирование нового экземпляра класса для класса без записи.
 
#define __OVERLOAD_MEMORY_ALLOCATE_FREE_
 Переменная включает перегрузку операторов new/delete, обеспечивающую последовательное обращение к функциям выделения/освобождения памяти из разных потоков. Подробнее...
 
#define DECLARE_NEW_DELETE_CLASS(Class)
 Объявление функций new, delete и операторов доступа.
 
#define IMP_PERSISTENT_NEW_DELETE_CLASS(Class)
 Реализация функций new, delete и операторов доступа.
 
#define DECLARE_NEW_DELETE_CLASS_EX(Class)
 Объявление операторов new и delete, обеспечивающих последовательное обращение к функциям выделения/освобождения памяти из разных потоков. Перегружаются все стандартные операторы new и delete.
 
#define IMP_PERSISTENT_NEW_DELETE_CLASS_EX(Class)
 Реализация операторов new и delete, обеспечивающая последовательное обращение к функциям выделения/освобождения памяти из разных потоков. Перегружаются все стандартные операторы new и delete.
 
#define DECLARE_PERSISTENT_CLASS(Class)
 Объявление класса Class поточным. Подробнее...
 
#define DECLARE_PERSISTENT_CLASS_NEW_DEL(Class)
 Аналог макроса DECLARE_PERSISTENT_CLASS с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков. Подробнее...
 
#define IMP_PERSISTENT_CLASS(AppID, Class)
 Реализация объявления DECLARE_PERSISTENT_CLASS. Подробнее...
 
#define IMP_PERSISTENT_CLASS_NEW_DEL(AppID, Class)
 Аналог макроса IMP_PERSISTENT_CLASS с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков. Подробнее...
 
#define IMP_PERSISTENT_RO_CLASS_NEW_DEL(AppID, Class)
 Аналог макроса IMP_PERSISTENT_RO_CLASS с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков. Подробнее...
 
#define IMP_PERSISTENT_CLASS_FROM_BASE_NEW_DEL(AppID, Class, Base)
 Аналог макроса IMP_PERSISTENT_CLASS_FROM_BASE с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков. Подробнее...
 
#define IMP_PERSISTENT_CLASS_WD_NEW_DEL(AppID, Class)
 Аналог макроса IMP_PERSISTENT_CLASS_WD с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков. Подробнее...
 

Определения типов

typedef TapeBase *(CALL_DECLARATIONBUILD_FUNC) (void)
 Шаблон функции создания нового экземпляра.
 
typedef void *(CALL_DECLARATIONCAST_FUNC) (const TapeBase *)
 Шаблон функции преобразования. Подробнее...
 
typedef void(CALL_DECLARATIONREAD_FUNC) (reader &in, void *)
 
typedef void(CALL_DECLARATIONWRITE_FUNC) (writer &out, void *)
 Шаблон функции записи экземпляра.
 

Перечисления

enum  RegistrableRec { noRegistrable, registrable }
 Типы регистрации объектов. Подробнее...
 
enum  TapeInit { tapeInit }
 Типы инициализации объектов. Подробнее...
 
enum  TapePointerType {
  tpt_Null = 0x00, tpt_Indexed16 = 0x01, tpt_Object = 0x02, tpt_Indexed8 = 0x03,
  tpt_Indexed32 = 0x04, tpt_Indexed64 = 0x05, tpt_DetachedObject = 0x06, tpt_ObjectCatalog = 0x07
}
 Cпособы записи указателей. Подробнее...
 
enum  c3d::MbeItemDataType
 Тип пользовательских данных узла дерева модели. Подробнее...
 

Функции

bool IsEqualSArrayItems (const Cluster &, const Cluster &)
 
size_t LenCOUNT (VERSION version)
 Длина данных size_t в потоке.
 
size_t SizeOfFileSpace (VERSION version, size_t cnt, bool calcFull)
 Размер данных FileSpace в потоке указанной версии.
 
size_t getMemLen (const Cluster &c, VERSION)
 Размер данных кластера. Подробнее...
 
size_t getMemLen (const FileSpace &s, VERSION version)
 Размер данных файла. Подробнее...
 
bool IsGoodFile (const FileSpace &file, const iobuf_Seq &owner)
 Проверить массив кластеров файла. Подробнее...
 
iobufcreateiobuf (const TCHAR *fileName)
 Прочитать буфер с диска.
 
bool writeiobuftodisk (const TCHAR *fileName, membuf &buf)
 Записать буфер на диск.
 
template<class Base >
void ReadBase (reader &in, Base *base)
 Функция чтения базового класса.
 
template<class Base >
void WriteBase (writer &out, const Base *base)
 Функция записи базового класса.
 
template<class Base >
void ReadVBase (reader &in, Base *base)
 Функция чтения виртуального базового класса.
 
template<class Base >
void WriteVBase (writer &out, const Base *base)
 Функция записи виртуального базового класса.
 
const char * pureName (const char *name)
 Удаление пробелов и записей перед пробелами.
 
uint16 hash (const char *name)
 Упаковать строку(имя класса) в uint16.
 
writeroperator<< (writer &ps, bool i)
 Запись bool в поток.
 
readeroperator>> (reader &ps, bool &i)
 Чтение bool в поток.
 
writeroperator<< (writer &ps, signed int i)
 Запись signed int в поток.
 
writeroperator<< (writer &ps, unsigned int i)
 Запись unsigned int в поток.
 
readeroperator>> (reader &ps, signed int &i)
 Чтение signed int в поток.
 
readeroperator>> (reader &ps, unsigned int &i)
 Чтение unsigned int в поток.
 
writeroperator<< (writer &ps, int64 val)
 Запись int32 в поток. Подробнее...
 
readeroperator>> (reader &ps, int64 &val)
 Чтение int64 в поток.
 
readeroperator>> (reader &ps, signed char &ch)
 Чтение signed char в поток.
 
readeroperator>> (reader &ps, unsigned char &ch)
 Чтение unsigned char в поток.
 
readeroperator>> (reader &ps, char &ch)
 Чтение char в поток.
 
readeroperator>> (reader &ps, signed short &sh)
 Чтение signed short в поток.
 
readeroperator>> (reader &ps, unsigned short &sh)
 Чтение unsigned short в поток.
 
readeroperator>> (reader &ps, float &f)
 Чтение float в поток.
 
readeroperator>> (reader &ps, double &d)
 Чтение double в поток.
 
readeroperator>> (reader &ps, long double &l)
 Чтение long double из потока.
 
template<class _Class >
readeroperator>> (reader &ps, SPtr< _Class > &sPtr)
 Чтение smart-указателя из потока.
 
template<class _Class >
writeroperator<< (writer &ps, const SPtr< _Class > &sPtr)
 Запись smart-указателя в поток.
 
writeroperator<< (writer &ps, signed char ch)
 Запись signed char в поток.
 
writeroperator<< (writer &ps, unsigned char ch)
 Запись unsigned char в поток.
 
writeroperator<< (writer &ps, char ch)
 Запись char в поток.
 
writeroperator<< (writer &ps, signed short sh)
 Запись signed short в поток.
 
writeroperator<< (writer &ps, unsigned short sh)
 Запись unsigned short в поток.
 
writeroperator<< (writer &ps, float f)
 Запись float в поток.
 
writeroperator<< (writer &ps, const double &d)
 Запись double в поток.
 
writeroperator<< (writer &ps, const long double &l)
 Запись long double в поток.
 
void WriteTCHAR (writer &out, const TCHAR *ts, bool directSingleByte=false)
 Записать TCHAR строку в поток.
 
void ReadTCHAR (reader &in, TCHAR *&ts, bool directSingleByte=false)
 Прочитать TCHAR строку из потока.
 
void WriteWcharT (writer &out, const wchar_t *ts)
 Записать wchar_t строку в поток.
 
void ReadWcharT (reader &in, wchar_t *&ts)
 Прочитать TCHAR строку из потока.
 
void WriteCOUNT (writer &out, size_t count)
 Запись size_t в зависимости от версии потока.
 
void WriteINT_T (writer &out, ptrdiff_t count)
 Запись ptrdiff_t в зависимости от версии потока.
 
size_t ReadCOUNT (reader &in, bool uint_val=true)
 Чтение size_t в зависимости от версии потока.
 
ptrdiff_t ReadINT_T (reader &in, bool uint_val=true)
 Чтение ptrdiff_t в зависимости от версии потока.
 
void WriteCOUNT (void *out, VERSION version, size_t count)
 Запись size_t в память в зависимости от версии потока.
 
void WriteCOUNT (void *out, VERSION version, ptrdiff_t count)
 Запись ptrdiff_t в память в зависимости от версии потока.
 
size_t ReadCOUNT (void *in, VERSION version)
 Чтение size_t в память в зависимости от версии потока.
 
void WriteSimpleName (writer &out, const SimpleName &s)
 Запись простого имени.
 
SimpleName ReadSimpleName (reader &in)
 Чтение простого имени.
 
writeroperator<< (writer &out, const StrHash &strHash)
 Оператор записи хэша. Подробнее...
 
readeroperator>> (reader &in, StrHash &strHash)
 Оператор чтения хэша. Подробнее...
 
writeroperator<< (writer &ps, const std::string &s)
 Запись строки в поток.
 
readeroperator>> (reader &ps, std::string &s)
 Чтение строки из потока.
 
writeroperator<< (writer &ps, const std::wstring &s)
 Запись строки в поток.
 
readeroperator>> (reader &ps, std::wstring &s)
 Чтение строки из потока.
 
writeroperator<< (writer &ps, const std::wstring *s)
 Запись строки в поток.
 
void ReadCluster (reader &in, uint16 clusterSize, Cluster &cl)
 Прочитать кластер. Подробнее...
 
void WriteCluster (writer &out, const Cluster &cl)
 Записать кластер. Подробнее...
 
size_t WriteClusterInfo (void *out, VERSION version, const Cluster &obj)
 Записать информацию о кластере.
 
size_t ReadClusterInfo (void *in, VERSION version, Cluster &obj)
 Прочитать информацию о кластере.
 
readeroperator>> (reader &, VersionContainer &)
 Оператор чтения контейнера версий. Подробнее...
 
writeroperator<< (writer &, const VersionContainer &)
 Оператор записи контейнера версий. Подробнее...
 

Переменные

const uint16 DEFCLSIZE = 0x1000
 Размер кластера по умолчанию.
 

Подробное описание

Макросы

◆ IMP_PERSISTENT_REGISTRATION

#define IMP_PERSISTENT_REGISTRATION (   AppID,
  Class 
)
Макроопределение:
TapeBase * CALL_DECLARATION make ## _ ## Class () { \
return new Class(tapeInit); \
} \
void * CALL_DECLARATION cast ## _ ## Class ( const TapeBase * obj ) { \
return dynamic_cast<Class *>(const_cast<TapeBase *>(obj) ); \
} \
\
TapeClass r ## Class( \
typeid(Class).name(), \
AppID, \
(BUILD_FUNC) make ## _ ## Class, \
(CAST_FUNC ) cast ## _ ## Class, \
(READ_FUNC ) Class::Read, \
(WRITE_FUNC) Class::Write \
)
Базовый класс для потоковых классов.
Definition: io_tape.h:328
#define CALL_DECLARATION
Определение CALL_DECLARATION.
Definition: math_define.h:122
TapeBase *(CALL_DECLARATION * BUILD_FUNC)(void)
Шаблон функции создания нового экземпляра.
Definition: io_tape.h:365
void *(CALL_DECLARATION * CAST_FUNC)(const TapeBase *)
Шаблон функции преобразования.
Definition: io_tape.h:375
По умолчанию.
Definition: io_tape.h:256
void(CALL_DECLARATION * READ_FUNC)(reader &in, void *)
Definition: io_tape.h:383
void(CALL_DECLARATION * WRITE_FUNC)(writer &out, void *)
Шаблон функции записи экземпляра.
Definition: io_tape.h:388

Конструирование нового экземпляра класса.

Конструирование нового экземпляра класса.
Определяются функция конструирования нового экземпляра класса, функция преобразования от указателя на TapeBase к указателю на класс и класс (не экземпляр!) добавляется в массив потоковых путем создания переменной r ## Class типа TapeClass (а в конструкторе TapeClass производится добавление в массив потоковых классов). Символ ## - это указание препроцессору о необходимости "склейки" текущего идентификатора с последующим.

◆ __OVERLOAD_MEMORY_ALLOCATE_FREE_

#define __OVERLOAD_MEMORY_ALLOCATE_FREE_

Переменная включает перегрузку операторов new/delete, обеспечивающую последовательное обращение к функциям выделения/освобождения памяти из разных потоков.

Переменная включает перегрузку операторов new/delete, обеспечивающую последовательное обращение к функциям выделения/освобождения памяти из разных потоков.

◆ DECLARE_PERSISTENT_CLASS

#define DECLARE_PERSISTENT_CLASS (   Class)
Макроопределение:
DECLARE_PERSISTENT_OPS( Class ); \
DECLARE_PERSISTENT_CTOR( Class ); \
DECLARE_NEW_DELETE_CLASS( Class ); \
DECLARE_CLASS_DESC_FUNC(Class)
#define DECLARE_PERSISTENT_FUNCS(Class)
Функции чтения и записи.
Definition: io_tape.h:1310

Объявление класса Class поточным.

Объявление класс Class поточным. Устанавливается в декларации класса в файле *.h. Декларирует операторы <<, >>, а также функции Read и Write, которые должны быть определены в любом файле *.cpp Class должен наследовать от TapeBase. Для этого класса должен быть определен конструктор чтения, а его тело должно быть в .cpp файле.

◆ DECLARE_PERSISTENT_CLASS_NEW_DEL

#define DECLARE_PERSISTENT_CLASS_NEW_DEL (   Class)
Макроопределение:
DECLARE_NEW_DELETE_CLASS_EX( Class )
#define DECLARE_PERSISTENT_CLASS(Class)
Объявление класса Class поточным.
Definition: io_tape.h:1668

Аналог макроса DECLARE_PERSISTENT_CLASS с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков.

Аналог макроса DECLARE_PERSISTENT_CLASS с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков (включается переменной __OVERLOAD_MEMORY_ALLOCATE_FREE_).

◆ IMP_PERSISTENT_CLASS

#define IMP_PERSISTENT_CLASS (   AppID,
  Class 
)
Макроопределение:
IMP_PERSISTENT_REGISTRATION( AppID, Class ); \
IMP_PERSISTENT_NEW_DELETE_CLASS( Class ); \
IMP_CLASS_DESC_FUNC( AppID, Class )
#define IMP_PERSISTENT_REGISTRATION(AppID, Class)
Конструирование нового экземпляра класса.
Definition: io_tape.h:1385

Реализация объявления DECLARE_PERSISTENT_CLASS.

Реализация объявления DECLARE_PERSISTENT_CLASS. Описывает необходимые действия для поточного класса. Устанавливается в любой .cpp файл. Class должен наследовать от TapeBase. Должны быть реализованы функции чтения Read и записи Write.

◆ IMP_PERSISTENT_CLASS_NEW_DEL

#define IMP_PERSISTENT_CLASS_NEW_DEL (   AppID,
  Class 
)
Макроопределение:
IMP_PERSISTENT_CLASS( AppID, Class ); \
IMP_PERSISTENT_NEW_DELETE_CLASS_EX( Class );
#define IMP_PERSISTENT_CLASS(AppID, Class)
Реализация объявления DECLARE_PERSISTENT_CLASS.
Definition: io_tape.h:1727

Аналог макроса IMP_PERSISTENT_CLASS с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков.

Аналог макроса IMP_PERSISTENT_CLASS с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков (включается переменной __OVERLOAD_MEMORY_ALLOCATE_FREE_).

◆ IMP_PERSISTENT_RO_CLASS_NEW_DEL

#define IMP_PERSISTENT_RO_CLASS_NEW_DEL (   AppID,
  Class 
)
Макроопределение:
IMP_PERSISTENT_RO_CLASS( AppID, Class ); \
IMP_PERSISTENT_NEW_DELETE_CLASS_EX( Class )

Аналог макроса IMP_PERSISTENT_RO_CLASS с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков.

Аналог макроса IMP_PERSISTENT_RO_CLASS с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков (включается переменной __OVERLOAD_MEMORY_ALLOCATE_FREE_).

◆ IMP_PERSISTENT_CLASS_FROM_BASE_NEW_DEL

#define IMP_PERSISTENT_CLASS_FROM_BASE_NEW_DEL (   AppID,
  Class,
  Base 
)
Макроопределение:
IMP_PERSISTENT_CLASS_FROM_BASE( AppID, Class, Base ) \
IMP_PERSISTENT_NEW_DELETE_CLASS_EX( Class )

Аналог макроса IMP_PERSISTENT_CLASS_FROM_BASE с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков.

Аналог макроса IMP_PERSISTENT_CLASS_FROM_BASE с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков (включается переменной __OVERLOAD_MEMORY_ALLOCATE_FREE_).

◆ IMP_PERSISTENT_CLASS_WD_NEW_DEL

#define IMP_PERSISTENT_CLASS_WD_NEW_DEL (   AppID,
  Class 
)
Макроопределение:
IMP_PERSISTENT_CLASS_WD( AppID, Class ); \
IMP_PERSISTENT_NEW_DELETE_CLASS_EX( Class )

Аналог макроса IMP_PERSISTENT_CLASS_WD с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков.

Аналог макроса IMP_PERSISTENT_CLASS_WD с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков (включается переменной __OVERLOAD_MEMORY_ALLOCATE_FREE_).

Типы

◆ CAST_FUNC

typedef void*(CALL_DECLARATION * CAST_FUNC) (const TapeBase *)

Шаблон функции преобразования.

Шаблон функции преобразования из указателя на TapeBase к указателю на класс.

◆ READ_FUNC

typedef void(CALL_DECLARATION * READ_FUNC) (reader &in, void *)

Шаблон функции чтения экземпляра.

Перечисления

◆ RegistrableRec

Типы регистрации объектов.

Типы регистрации потоковых объектов.

Элементы перечислений
noRegistrable 

Нерегистрируемый объект.

registrable 

Регистрируемый объект.

◆ TapeInit

enum TapeInit

Типы инициализации объектов.

Типы регистрации потоковых объектов.

Элементы перечислений
tapeInit 

По умолчанию.

◆ TapePointerType

Cпособы записи указателей.

Cпособы записи указателей.

Элементы перечислений
tpt_Null 

Нулевой указатель.

tpt_Indexed16 

Индекс указателя в массиве регистрации (2 байта).

tpt_Object 

Тело объекта.

tpt_Indexed8 

Индекс указателя в массиве регистрации (1 байт).

tpt_Indexed32 

Индекс указателя в массиве регистрации (4 байта).

tpt_Indexed64 

Индекс указателя в массиве регистрации (8 байт).

tpt_DetachedObject 

Тело объекта в отдельном FileSpace.

tpt_ObjectCatalog 

Каталог объектов в отдельном FileSpace.

◆ MbeItemDataType

Тип пользовательских данных узла дерева модели.

Тип пользовательских данных узла дерева модели.

Функции

◆ IsEqualSArrayItems()

bool IsEqualSArrayItems ( const Cluster ,
const Cluster  
)
inline

Сравнить два кластера.

◆ getMemLen() [1/2]

size_t getMemLen ( const Cluster c,
VERSION   
)
inline

Размер данных кластера.

Размер данных кластера в потоке указанной версии.

◆ getMemLen() [2/2]

size_t getMemLen ( const FileSpace s,
VERSION  version 
)
inline

Размер данных файла.

Размер данных файлового пространства в потоке указанной версии.

◆ IsGoodFile()

bool IsGoodFile ( const FileSpace file,
const iobuf_Seq owner 
)
inline

Проверить массив кластеров файла.

Проверить массив кластеров, из которых состоит этот файл.

◆ operator<<() [1/3]

writer& operator<< ( writer ps,
int64  val 
)
inline

Запись int32 в поток.

Запись uint32 в поток. Чтение int32 в поток. Чтение uint32 в поток. Запись int64 в поток.

◆ operator<<() [2/3]

writer& operator<< ( writer out,
const StrHash strHash 
)
inline

Оператор записи хэша.

Оператор записи.

◆ operator>>() [1/2]

reader& operator>> ( reader in,
StrHash strHash 
)
inline

Оператор чтения хэша.

Оператор чтения.

◆ ReadCluster()

void ReadCluster ( reader in,
uint16  clusterSize,
Cluster cl 
)
inline

Прочитать кластер.

Записать кластер.

◆ WriteCluster()

void WriteCluster ( writer out,
const Cluster cl 
)
inline

Записать кластер.

Прочитать кластер.

◆ operator>>() [2/2]

reader& operator>> ( reader ,
VersionContainer  
)

Оператор чтения контейнера версий.

Оператор чтения.

◆ operator<<() [3/3]

writer& operator<< ( writer ,
const VersionContainer  
)

Оператор записи контейнера версий.

Оператор записи.