Load/Save data from raw buffer

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2588 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2012-10-31 12:23:50 +00:00
parent 0484197d39
commit e6dea1efeb

View File

@ -819,8 +819,10 @@ type
function Equal(const ACompareTo : TBaseRemotable) : Boolean;override;
procedure LoadFromStream(AStream : TStream);
procedure LoadFromFile(const AFileName : string);
procedure LoadFromBuffer(const ABuffer; const ABufferLen : Integer);
procedure SaveToStream(AStream : TStream);
procedure SaveToFile(const AFileName : string);
function SaveToBuffer(var ABuffer; const ABufferLen : Integer) : Integer;
property BinaryData : TByteDynArray read FBinaryData write FBinaryData;
property EncodedString : string read GetEncodedString write SetEncodedString;
end;
@ -6933,6 +6935,16 @@ begin
BinaryData := LoadBufferFromStream(AStream);
end;
procedure TAbstractEncodedStringExtRemotable.LoadFromBuffer(
const ABuffer;
const ABufferLen: Integer
);
begin
SetLength(FBinaryData,ABufferLen);
if (ABufferLen > 0) then
Move(ABuffer,FBinaryData[0],ABufferLen);
end;
procedure TAbstractEncodedStringExtRemotable.LoadFromFile(const AFileName: string);
begin
BinaryData := LoadBufferFromFile(AFileName);
@ -6944,6 +6956,21 @@ begin
AStream.Write(FBinaryData[0],Length(FBinaryData));
end;
function TAbstractEncodedStringExtRemotable.SaveToBuffer(
var ABuffer;
const ABufferLen: Integer
) : Integer;
var
c : Integer;
begin
c := Length(FBinaryData);
if (c > ABufferLen) then
c := ABufferLen;
if (c > 0) then
Move(FBinaryData[0],ABuffer,c);
Result := c;
end;
procedure TAbstractEncodedStringExtRemotable.SaveToFile(const AFileName: string);
var
locStream : TFileStream;