C3D Kernel  104065
Классы | Макросы | Определения типов | Перечисления | Функции
Файл io_tape.h

Сериализация: чтение и запись потоковых классов. Подробнее...

Классы

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
 Массив регистрации потоковых классов. Подробнее...

Макросы

#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_
#define DECLARE_NEW_DELETE_CLASS(Class)
 Объявление функций new, delete и операторов доступа.
#define IMP_PERSISTENT_NEW_DELETE_CLASS(Class)
 Реализация функций new, delete и операторов доступа.
#define DECLARE_NEW_DELETE_CLASS_EX(Class)
#define IMP_PERSISTENT_NEW_DELETE_CLASS_EX(Class)
#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(AppID, Class)
#define IMP_PERSISTENT_RO_CLASS_NEW_DEL(AppID, Class)
 Аналог макроса IMP_PERSISTENT_RO_CLASS с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков.
#define IMP_A_PERSISTENT_CLASS(AppID, Class)
#define IMP_A_PERSISTENT_CLASS_FROM_BASE(AppID, Class, Base)
#define IMP_PERSISTENT_CLASS_FROM_BASE(AppID, Class, Base)
#define IMP_PERSISTENT_CLASS_FROM_BASE_NEW_DEL(AppID, Class, Base)
 Аналог макроса IMP_PERSISTENT_CLASS_FROM_BASE с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков.
#define IMP_PERSISTENT_CLASS_WD(AppID, Class)
#define IMP_PERSISTENT_CLASS_WD_NEW_DEL(AppID, Class)
 Аналог макроса IMP_PERSISTENT_CLASS_WD с возможностью перегрузки операторов new/delete, обеспечивающий последовательное обращение к функциям выделения/освобождения памяти из разных потоков.
#define IMP_A_PERSISTENT_CLASS_WD(AppID, Class)

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

typedef TapeBase *CALL_DECLARATION BUILD_FUNC (void)
 Шаблон функции создания нового экземпляра.
typedef void *CALL_DECLARATION CAST_FUNC (const TapeBase *)
 Шаблон функции преобразования.
typedef void *typedef void (CALL_DECLARATION *WRITE_FUNC)(writer &out
 Шаблон функции записи экземпляра.

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

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пособы записи указателей. Подробнее...

Функции

typedef void (CALL_DECLARATION *READ_FUNC)(reader &in
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.
reader__readChar (reader &ps, char *&s)
reader__readWchar (reader &ps, TCHAR *&s)
reader__readWcharT (reader &ps, wchar_t *&s)
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 в память в зависимости от версии потока.
ClassDescriptor GetPackedClassName (const ClassDescriptor &, const VersionContainer &ver)
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)
 Прочитать информацию о кластере.
size_t WriteClusterBody (void *out, VERSION version, const Cluster &obj)
size_t ReadClusterBody (void *in, VERSION version, Cluster &obj)

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


Макросы

#define IMP_PERSISTENT_RO_CLASS (   AppID,
  Class 
)
Макроопределение:
#define IMP_A_PERSISTENT_CLASS (   AppID,
  Class 
)
Макроопределение:
#define IMP_A_PERSISTENT_CLASS_FROM_BASE (   AppID,
  Class,
  Base 
)
Макроопределение:
void Class::Read( reader & in, Class * obj ) {                 \
    Base::Read( in, obj );                                       \
  }                                                              \
  void Class::Write( writer & out, const Class * obj ) {         \
    Base::Write( out, obj );                                     \
  }                                                              \
  IMP_PERSISTENT_NEW_DELETE_CLASS( Class )                       \
  IMP_CLASS_DESC_FUNC( AppID, Class )
#define IMP_PERSISTENT_CLASS_FROM_BASE (   AppID,
  Class,
  Base 
)
Макроопределение:
IMP_PERSISTENT_REGISTRATION( AppID, Class );               \
  IMP_A_PERSISTENT_CLASS_FROM_BASE( AppID, Class, Base )
#define IMP_PERSISTENT_CLASS_WD (   AppID,
  Class 
)
Макроопределение:
IMP_PERSISTENT_REGISTRATION( AppID, Class );      \
  void Class::Read( reader &, Class * )         {}  \
  void Class::Write( writer &, const Class * )  {}  \
  IMP_PERSISTENT_NEW_DELETE_CLASS( Class )          \
  IMP_CLASS_DESC_FUNC( AppID, Class )
#define IMP_A_PERSISTENT_CLASS_WD (   AppID,
  Class 
)
Макроопределение:
void Class::Read( reader &, Class * )         {}  \
  void Class::Write( writer &, const Class * )  {}  \
  IMP_PERSISTENT_NEW_DELETE_CLASS( Class )          \
  IMP_CLASS_DESC_FUNC( AppID, Class )

Функции

ClassDescriptor GetPackedClassName ( const ClassDescriptor ,
const VersionContainer ver 
)

Получить упакованное имя класса по значению хэша записанному в поток

Аргументы:
[in]hash- Значение хэша.
[in]ver- Версия потока в котором записан хэш.
Возвращает:
Возвращает упакованное имя класса.
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы