C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122
Файл io_buffer.h

Сериализация: буфер потока, работа с диском, хранитель версий. Подробнее...

Классы

class  Cluster
 Кластер. Подробнее...
 
class  FileSpace
 Файловое пространство. Подробнее...
 
struct  ClusterReference
 Позиция в кластере для чтения/записи. Подробнее...
 
class  iobuf_Seq
 Потоковый буфер, обеспечивает только последовательную запись, без возможности удалить или перезаписать файл. Подробнее...
 
class  iobuf
 Потоковый буфер с произвольным доступом , расширяет функциональность iobuf_Seq возможностью удаления и перезаписи файлов. Подробнее...
 

Макросы

#define EOF   (-1)
 Конец файла.
 

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

typedef ptrdiff_t io::pos
 Рабочая переменная (позиция, длина, количество).
 
typedef ptrdiff_t io::off
 Начало кластера (смещение (при работе с диском) или адрес (при работе с памятью)).
 

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

enum  io::mode_flags {
  io::in = 0x0001, io::out = 0x0002, io::trunc = 0x0004, io::speedOnClose = 0x0008,
  io::delIfEmpty = 0x0010, io::delOnClose = 0x0020, io::recovery = 0x0040, io::appSpecial = 0x0080,
  io::createNew = 0x0100, io::createAlways = 0x0200, io::openExisting = 0x0300, io::openAlways = 0x0400,
  io::truncExisting = 0x0500
}
 Режимы потоковых операций. Подробнее...
 
enum  io::dir { io::beg = 0, io::cur = 1, io::end = 2 }
 Направление поиска. Подробнее...
 
enum  io::state {
  io::good = 0x00000000L, io::eof = 0x00000001L, io::outOfRead = 0x00000002L, io::outOfMemory = 0x00000004L,
  io::fail = 0x00000008L, io::badData = 0x00000010L, io::notFound = 0x00000020L, io::accessViolation = 0x00000040L,
  io::cantOpenStore = 0x00000080L, io::cantCreateStore = 0x00000100L, io::badSig = 0x00000200L, io::cantReadCatalog = 0x00000400L,
  io::cantWriteCatalog = 0x00000800L, io::cantFind = 0x00001000L, io::cantRead = 0x00002000L, io::cantWrite = 0x00004000L,
  io::badClassId = 0x00008000L, io::doubledClassId = 0x00010000L, io::verViolation = 0x00040000L, io::hardFail = 0x00080000L,
  io::closed = 0x00100000L, io::writeProtect = 0x00200000L, io::cantWriteObject = 0x00400000L, io::underflow64to32 = 0x00800000L,
  io::encrypted = 0x01000000L, io::skippedUnknown = 0x02000000L, io::readAborted = 0x04000000L, io::allMask = 0xffffffffL
}
 Флаги состояния потока. Подробнее...
 

Функции

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)
 Проверить массив кластеров файла. Подробнее...
 

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

Сериализация: буфер потока, работа с диском, хранитель версий.

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

◆ mode_flags

Режимы потоковых операций.

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

Открыть для чтения.

out 

Открыть для записи.

trunc 

Открыть существующий файл и удалить его содержимое.

speedOnClose 

Упорядочить при закрытии.

delIfEmpty 

Удалить файл, если он оказался пустым.

delOnClose 

Удалить файл при закрытии.

recovery 

Режим восстановления.

appSpecial 

Вспомогательный флаг приложения.

createNew 

Создать новый файл. Выдается ошибка, если такой файл уже существует.

createAlways 

Создать новый файл. Если такой файл уже существует, то он перезаписывается.

openExisting 

Открыть существующий файл. Выдается ошибка, если файл не существует.

openAlways 

Открыть существующий файл. Если файл не существует, то создается новый.

truncExisting 

Открыть файл с удалением его содержимого.

◆ dir

enum io::dir

Направление поиска.

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

С начала файла.

cur 

С текущей позиций от начала к концу файла.

end 

С конца файла.

◆ state

enum io::state

Флаги состояния потока.

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

Все в порядке (никакие биты не выставлены).

eof 

Конец файл.

outOfRead 

Выход за пределы файла.

outOfMemory 

Не получилось выделить необходимую память.

fail 

Ошибка операции ввода-вывода.

badData 

Неверная структура файла.

notFound 

Файл не найден.

accessViolation 

Доступ запрещен.

cantOpenStore 

Не получилось открыть хранилище.

cantCreateStore 

Не получилось создать хранилище.

badSig 

Нет подписи или подпись чужая.

cantReadCatalog 

Не получилось прочитать каталог хранилища.

cantWriteCatalog 

Не получилось записать каталог хранилища.

cantFind 

Не получилось найти файл в каталоге.

cantRead 

Не получилось прочитать файл.

cantWrite 

Не получилось записать файл.

badClassId 

Прочитанный идентификатор класса не найден в базе данных.

doubledClassId 

Попытка повторной регистрации идентификатора класса.

verViolation 

Версия файла старше версии задачи.

hardFail 

Ошибка файловой операции.

closed 

Буфер закрыт.

writeProtect 

У файла установлен атрибут "Только чтение".

cantWriteObject 

Не могу записать объект (версия потока младше версии появления нового класса объектов).

underflow64to32 

Не могу прочитать файл с 64-битными данными в 32-битной задаче (потеря старшего слова uint32 при чтении uin64 в 32-битной задаче).

encrypted 

Файл защищен или закодирован.

skippedUnknown 

Файл в расширенном формате прочитан частично (неизвестные объекты пропущены).

readAborted 

Чтение файла прервано пользователем.

allMask 

Все ошибки.