mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-08-10 09:26:26 +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;
|
property OnCallBackPasError : TCallbackErrorPasEventHandler read FOnCallBackPasError Write FOnCallBackPasError;
|
||||||
end;
|
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
|
Implementation
|
||||||
|
|
||||||
|
|
||||||
@ -180,6 +167,7 @@ end;
|
|||||||
|
|
||||||
{ TJSObjectFactoryReg }
|
{ TJSObjectFactoryReg }
|
||||||
|
|
||||||
|
|
||||||
constructor TJSObjectFactoryReg.Create(aFunc: TJSObjectFactory);
|
constructor TJSObjectFactoryReg.Create(aFunc: TJSObjectFactory);
|
||||||
begin
|
begin
|
||||||
FFunc:=aFunc;
|
FFunc:=aFunc;
|
||||||
@ -1323,30 +1311,5 @@ begin
|
|||||||
Console.debug(FGlobalObjects);
|
Console.debug(FGlobalObjects);
|
||||||
end;
|
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.
|
end.
|
||||||
|
Loading…
Reference in New Issue
Block a user