Скачиваний:
31
Добавлен:
01.05.2014
Размер:
1 Кб
Скачать
unit SerializableObject;

interface

  uses
    Classes;

  type
    TDMSerializableObject = class
      procedure serializeObject( ostream : TStream ); virtual; abstract;
      procedure deserializeObject( istream : TStream ); virtual; abstract;
      procedure serializeString(const ostream: TStream; const value: string);
      procedure serializeInteger(const ostream: TStream; const value: integer);
      procedure deserializeString(const istream: TStream; var value: string);
      procedure deserializeInteger(const istream: TStream; var value: integer);
    end;

implementation

{ TDMSerializableObject }

  procedure TDMSerializableObject.deserializeInteger(const istream: TStream; var value: integer);
  begin
    istream.Read(value, sizeof(value));
  end;

  procedure TDMSerializableObject.deserializeString(const istream: TStream; var value: string);
  var
    len: Integer;
  begin
    istream.Read(len, sizeof(len));
    SetLength(value, len);
    istream.Read(value, len);
  end;

  procedure TDMSerializableObject.serializeInteger(const ostream: TStream; const value: integer);
  begin
    ostream.Write(value, sizeof(value));
  end;

  procedure TDMSerializableObject.serializeString(const ostream: TStream; const value: string);
  var
    len: Integer;
  begin
    len := length(value);
    ostream.Write(len, sizeof(len));
    ostream.Write(value, len);
  end;

end.
Соседние файлы в папке DMCore