Code formatting

This commit is contained in:
Michael Schimmel
2025-06-05 10:26:28 +02:00
parent f033ef2c0f
commit 6bed68748d
22 changed files with 1884 additions and 1743 deletions
+23 -26
View File
@@ -4,7 +4,8 @@ interface
uses
System.SysUtils,
Myc.Signals, Myc.TaskManager;
Myc.Signals,
Myc.TaskManager;
type
// Represents the eventual result of an asynchronous operation.
@@ -32,17 +33,17 @@ type
class destructor DestroyClass;
public
constructor Create( const AFuture: IMycFuture<T> );
constructor Create(const AFuture: IMycFuture<T>);
class operator Implicit( const A: IMycFuture<T> ): TFuture<T>; overload;
class operator Implicit( const A: TFuture<T> ): IMycFuture<T>; overload;
class operator Implicit(const A: IMycFuture<T>): TFuture<T>; overload;
class operator Implicit(const A: TFuture<T>): IMycFuture<T>; overload;
class function Construct( const Proc: TFunc<T> ): TFuture<T>; overload; static;
class function Construct( const Gate: IMycState; const Proc: TFunc<T> ): TFuture<T>; overload; static;
class function Construct(const Proc: TFunc<T>): TFuture<T>; overload; static;
class function Construct(const Gate: IMycState; const Proc: TFunc<T>): TFuture<T>; overload; static;
class property Null: IMycFuture<T> read FNull;
function Chain<S>( const Proc: TFunc<T, S> ): TFuture<S>;
function Chain<S>(const Proc: TFunc<T, S>): TFuture<S>;
function WaitFor: T;
@@ -53,12 +54,13 @@ type
implementation
uses
Myc.Core.Futures, Myc.Core.Tasks;
Myc.Core.Futures,
Myc.Core.Tasks;
constructor TFuture<T>.Create( const AFuture: IMycFuture<T> );
constructor TFuture<T>.Create(const AFuture: IMycFuture<T>);
begin
FFuture := AFuture;
if not Assigned( FFuture ) then
if not Assigned(FFuture) then
FFuture := FNull;
end;
@@ -73,26 +75,21 @@ begin
TMycTaskFactory.ReleaseTaskManager;
end;
function TFuture<T>.Chain<S>( const Proc: TFunc<T, S> ): TFuture<S>;
function TFuture<T>.Chain<S>(const Proc: TFunc<T, S>): TFuture<S>;
begin
var
Cap := FFuture;
var Cap := FFuture;
Result := TFuture<S>.Construct( FFuture.Done,
function: S
begin
Result := Proc( Cap.Result );
end );
Result := TFuture<S>.Construct(FFuture.Done, function: S begin Result := Proc(Cap.Result); end);
end;
class function TFuture<T>.Construct( const Proc: TFunc<T> ): TFuture<T>;
class function TFuture<T>.Construct(const Proc: TFunc<T>): TFuture<T>;
begin
Result := TMycGateFuncFuture<T>.Create( TaskManager, nil, Proc );
Result := TMycGateFuncFuture<T>.Create(TaskManager, nil, Proc);
end;
class function TFuture<T>.Construct( const Gate: IMycState; const Proc: TFunc<T> ): TFuture<T>;
class function TFuture<T>.Construct(const Gate: IMycState; const Proc: TFunc<T>): TFuture<T>;
begin
Result := TMycGateFuncFuture<T>.Create( TaskManager, Gate, Proc );
Result := TMycGateFuncFuture<T>.Create(TaskManager, Gate, Proc);
end;
function TFuture<T>.GetDone: IMycState;
@@ -107,16 +104,16 @@ end;
function TFuture<T>.WaitFor: T;
begin
TaskManager.WaitFor( FFuture.Done );
TaskManager.WaitFor(FFuture.Done);
Result := FFuture.Result;
end;
class operator TFuture<T>.Implicit( const A: IMycFuture<T> ): TFuture<T>;
class operator TFuture<T>.Implicit(const A: IMycFuture<T>): TFuture<T>;
begin
Result.Create( A );
Result.Create(A);
end;
class operator TFuture<T>.Implicit( const A: TFuture<T> ): IMycFuture<T>;
class operator TFuture<T>.Implicit(const A: TFuture<T>): IMycFuture<T>;
begin
Result := A.FFuture;
end;