mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2024-11-15 15:55:56 +01:00
ca8bc9dff4
Added the PDS file to extract the HTML Help files using PasDoc Added more XML documentation Fixed some XML errors. Removed the license copy from the pas units. Updated the LICENSE.md file
84 lines
2.2 KiB
ObjectPascal
84 lines
2.2 KiB
ObjectPascal
unit uCEFStreamWriter;
|
|
|
|
{$IFDEF FPC}
|
|
{$MODE OBJFPC}{$H+}
|
|
{$ENDIF}
|
|
|
|
{$I cef.inc}
|
|
|
|
{$IFNDEF TARGET_64BITS}{$ALIGN ON}{$ENDIF}
|
|
{$MINENUMSIZE 4}
|
|
|
|
interface
|
|
|
|
uses
|
|
uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes;
|
|
|
|
type
|
|
TCefStreamWriterRef = class(TCefBaseRefCountedRef, ICefStreamWriter)
|
|
protected
|
|
function write(const ptr: Pointer; size, n: NativeUInt): NativeUInt;
|
|
function Seek(offset: Int64; whence: Integer): Integer;
|
|
function Tell: Int64;
|
|
function Flush: Integer;
|
|
function MayBlock: Boolean;
|
|
|
|
public
|
|
class function UnWrap(data: Pointer): ICefStreamWriter;
|
|
class function CreateForFile(const fileName: ustring): ICefStreamWriter;
|
|
class function CreateForHandler(const handler: ICefWriteHandler): ICefStreamWriter;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
uCEFMiscFunctions, uCEFLibFunctions;
|
|
|
|
class function TCefStreamWriterRef.CreateForFile(const fileName: ustring): ICefStreamWriter;
|
|
var
|
|
TempFileName : TCefString;
|
|
begin
|
|
TempFileName := CefString(fileName);
|
|
Result := UnWrap(cef_stream_writer_create_for_file(@TempFileName));
|
|
end;
|
|
|
|
class function TCefStreamWriterRef.CreateForHandler(const handler: ICefWriteHandler): ICefStreamWriter;
|
|
begin
|
|
Result := UnWrap(cef_stream_writer_create_for_handler(CefGetData(handler)));
|
|
end;
|
|
|
|
function TCefStreamWriterRef.Flush: Integer;
|
|
begin
|
|
Result := PCefStreamWriter(FData)^.flush(PCefStreamWriter(FData));
|
|
end;
|
|
|
|
function TCefStreamWriterRef.MayBlock: Boolean;
|
|
begin
|
|
Result := PCefStreamWriter(FData)^.may_block(PCefStreamWriter(FData)) <> 0;
|
|
end;
|
|
|
|
function TCefStreamWriterRef.Seek(offset: Int64; whence: Integer): Integer;
|
|
begin
|
|
Result := PCefStreamWriter(FData)^.seek(PCefStreamWriter(FData), offset, whence);
|
|
end;
|
|
|
|
function TCefStreamWriterRef.Tell: Int64;
|
|
begin
|
|
Result := PCefStreamWriter(FData)^.tell(PCefStreamWriter(FData));
|
|
end;
|
|
|
|
class function TCefStreamWriterRef.UnWrap(data: Pointer): ICefStreamWriter;
|
|
begin
|
|
if data <> nil then
|
|
Result := Create(data) as ICefStreamWriter
|
|
else
|
|
Result := nil;
|
|
end;
|
|
|
|
function TCefStreamWriterRef.write(const ptr: Pointer; size, n: NativeUInt): NativeUInt;
|
|
begin
|
|
Result := PCefStreamWriter(FData)^.write(PCefStreamWriter(FData), ptr, size, n);
|
|
end;
|
|
|
|
end.
|