* Move threadawareobjectbridge to separate unit

This commit is contained in:
Michael Van Canneyt 2025-04-25 10:09:22 +02:00
parent 43c767a641
commit 47d13ce16d

View File

@ -129,19 +129,6 @@ Type
property OnCallBackPasError : TCallbackErrorPasEventHandler read FOnCallBackPasError Write FOnCallBackPasError;
end;
{ TJSThreadAwareObjectBridge }
TShareObjectEvent = procedure (aObjectID: TJOBObjectID; aThreadID: Longint; aObj : TJSObject) of object;
TJSThreadAwareObjectBridge = class(TJSObjectBridge)
private
FOnShareObject: TShareObjectEvent;
Protected
function ShareObject(aObjectID: TJOBObjectID; aThreadID: Longint): TJOBResult; virtual;
public
procedure FillImportObject(aObject: TJSObject); override;
Property OnShareObject : TShareObjectEvent Read FOnShareObject Write FOnShareObject;
end;
Implementation
@ -180,6 +167,7 @@ end;
{ TJSObjectFactoryReg }
constructor TJSObjectFactoryReg.Create(aFunc: TJSObjectFactory);
begin
FFunc:=aFunc;
@ -1323,30 +1311,5 @@ begin
Console.debug(FGlobalObjects);
end;
{ TJSThreadAwareObjectBridge }
function TJSThreadAwareObjectBridge.ShareObject(aObjectID : TJOBObjectID; aThreadID : Longint) : TJOBResult;
var
Obj : TJSObject;
begin
Result:=JOBResult_None;
Obj:=FindObject(aObjectID);
if not Assigned(Obj) then
exit(JOBResult_UnknownObjId);
if not Assigned(OnShareObject) then
exit(JOBResult_UnImplemented);
OnShareObject(aObjectID,aThreadId,Obj);
Result:=JOBResult_Success;
end;
procedure TJSThreadAwareObjectBridge.FillImportObject(aObject: TJSObject);
begin
inherited FillImportObject(aObject);
aObject[JOBFn_ShareObject]:=@ShareObject;
end;
end.