Содержание материала

 

Секционное хранилище

 

Секционное хранилище хранит данные в кусочно-линейном буфере состоящем из участков одинакового размера. Хранилище не требует указания максимальной емкости, но взамен не позволяет обращаться к элементам как к массиву данных.

 

Block - список указателей на блоки, из которых состоит хранилище.

BlockSize - размер блоков, измеряемый в числе хранимых элементов.

 

Create - конструктор, в котором необходимо указать размер хранимого элемента в байтах и размер блока хранения.

Code:

// TSectionStorage

// Секционное хранилище

type

TSectionStorage = class(TBaseStorage)

public

   property Blocks: TList read FBlocks;

   property BlockSize: Cardinal read FBlockSize;

public

   procedure Clear; override;

   procedure AddItems(Items: Pointer; Count: Cardinal); override;

   procedure SetItems(Items: Pointer; Index, Count: Cardinal); override;

   procedure GetItems(Items: Pointer; Index, Count: Cardinal); override;

   procedure SaveStream(Stream: TStream; Compression: Integer); override;

   procedure LoadStream(Stream: TStream; Compression: Integer; Count:

     Cardinal);

     override;

public

   constructor Create(AItemSize: Cardinal; ABlockSize: Cardinal);

   destructor Destroy; override;

end;

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить