mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-06-03 08:38:11 +02:00
* Move threadawareobjectbridge to separate unit
This commit is contained in:
parent
43c767a641
commit
47d13ce16d
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user