{
osindepended.fileformats — модуль для реализации файловых форматов.
Copyright © 2021 Малик Разработчик
Это свободная программа: вы можете перераспространять её и/или
изменять её на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
в каком она была опубликована Фондом свободного программного обеспечения;
либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она может быть полезна,
но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
общественной лицензии GNU.
Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
вместе с этой программой. Если это не так, см.
<http://www.gnu.org/licenses/>.
}
unit osindepended.fileformats;
{$MODE DELPHI}
interface
uses
pascalx.lang,
pascalx.io;
{$ASMMODE INTEL,CALLING REGISTER,TYPEINFO ON}
{%region public }
type
DataHolder = interface;
DataDecoder = interface;
DataEncoder = interface;
InvalidStreamException = class;
EmptyDataHolderException = class;
InvalidDataFormatException = class;
UnsupportedDataException = class;
FullDataHolderException = class;
DataHolder = interface(_Interface) ['{5E5A45F1-919C-47AD-965F-2D3E077AB6EE}']
function isEmpty(): boolean;
procedure clear();
end;
DataDecoder = interface(DataHolder) ['{5E5A45F1-919C-47AD-965F-2D3E077AB6EF}']
procedure loadFromInputStream(stream: Input);
procedure loadFromDataInputStream(stream: DataInput);
end;
DataEncoder = interface(DataHolder) ['{5E5A45F1-919C-47AD-965F-2D3E077AB6F0}']
procedure saveToOutputStream(stream: Output);
procedure saveToDataOutputStream(stream: DataOutput);
end;
InvalidStreamException = class(IOException);
EmptyDataHolderException = class(IOException);
InvalidDataFormatException = class(IOException);
UnsupportedDataException = class(IOException);
FullDataHolderException = class(UnsupportedDataException);
resourcestring
msgInvalidStream = 'Недопустимый поток данных';
msgEmptyDataHolder = 'Нет данных для кодирования';
msgUnsupportedData = 'Данные не поддерживаются';
msgInvalidDataFormat = 'Недопустимый формат данных';
msgFullDataHolder = 'Переполнение данных';
{%endregion}
implementation
initialization
classInfoAdd([
typeInfo(DataHolder),
typeInfo(DataDecoder),
typeInfo(DataEncoder)
]);
end.