Files
Password-Manager/android-client/ThirdParty/ZXing/Common/ZXIng.ByteSegments.pas
T
r-zakarya dd9fd62dcb feat(apk): scanner le QR du poste depuis l'app (ZXing.Delphi, Apache 2.0)
Le scanner du systeme demandait avec quoi ouvrir le lien. L'app ouvre la
camera arriere, decode une image sur quatre et remplit URL + jeton des
qu'un lien pmserver://sync est lu. Rien n'est enregistre avant Save.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 18:38:41 +01:00

97 lines
1.9 KiB
ObjectPascal

unit ZXIng.ByteSegments;
interface
type
/// <summary>
/// implements the ByteSegments (which was declared as a TList<TArray<Byte>>
/// throughout the code as reference-counted interface object)
/// </summary>
IByteSegments = Interface
['{0994FC90-E8F5-40D8-8A48-9B05DFFF2635}']
function Count:integer;
procedure Clear;
function GetCapacity: integer;
procedure SetCapacity(const Value: integer);
property Capacity:integer read GetCapacity write SetCapacity;
function Add(const item:TArray<byte>):integer;
function Get(index: integer):TArray<byte>;
end;
function ByteSegmentsCreate:IByteSegments;
implementation
uses system.SysUtils,
Generics.Collections;
type
TByteSegments = class(TInterfacedObject,IByteSegments)
private
FList: TList<TArray<Byte>>;
function Count:integer;
procedure Clear;
constructor Create;
function GetCapacity: integer;
procedure SetCapacity(const Value: integer);
function Add(const item:TArray<byte>):integer;
function Get(index: integer):TArray<byte>;
public
destructor Destroy; override;
end;
function ByteSegmentsCreate:IByteSegments;
begin
result := TByteSegments.Create;
end;
{ TByteSegments }
function TByteSegments.Add(const item: TArray<byte>): integer;
begin
result := FList.Add(item);
end;
procedure TByteSegments.Clear;
begin
FList.Clear;
end;
function TByteSegments.Count: integer;
begin
result := FList.Count;
end;
constructor TByteSegments.Create;
begin
FList := TList<TArray<Byte>>.Create;
inherited Create;
end;
destructor TByteSegments.Destroy;
begin
FList.Free;
inherited;
end;
function TByteSegments.GetCapacity: integer;
begin
result := FList.Capacity;
end;
procedure TByteSegments.SetCapacity(const Value: integer);
begin
FList.Capacity := value;
end;
function TByteSegments.Get(index: Integer) : TArray<byte>;
begin
Result := FList[index];
end;
end.