Browse Source

* Add sender on receipt

Michael Van Canneyt 4 months ago
parent
commit
5087c2cccb
1 changed files with 16 additions and 1 deletions
  1. 16 1
      packages/rtl/src/Rtl.WorkerCommands.pas

+ 16 - 1
packages/rtl/src/Rtl.WorkerCommands.pas

@@ -17,19 +17,29 @@ const
   cmdForward = 'forward';
   channelConsole = 'console_output';
 
+  cFldCanceled = 'canceled';
+  cFldCommand = 'command';
+  cFldSender = '_sender';
+  cFldSenderId = 'senderId';
+
 
 Type
   EWorkerCommand = Class(Exception);
 
+  { TCustomWorkerCommand }
+
   TCustomWorkerCommand = class external name 'Object' (TJSObject)
   private
     FCanceled : Boolean; external name 'canceled';
     FCommand : string; external name 'command';
+    FSender: TJSObject; external name '_sender';
     FSenderID : string; external name 'senderId';
   Public
     property Command : string read FCommand;
     property Canceled : Boolean read FCanceled;
     property SenderID : String read FSenderID;
+    // May be empty
+    property Sender : TJSObject Read FSender;
   end;
 
   { TCustomWorkerCommandHelper }
@@ -254,12 +264,17 @@ end;
 procedure TCommandDispatcher.HandleIncomingMessage(aEvent: TJSEvent);
 var
   lMessageEvent : TJSMessageEvent absolute aEvent;
+  lCommand : TCustomWorkerCommand;
 begin
   {$IFDEF DEBUGCOMMANDDISPATCHER}
   Writeln('Incoming message: ',TJSJSON.stringify(lMessageEvent.data));
   {$ENDIF}
   if IsCommandEvent(aEvent) then
-    HandleCommand(TCustomWorkerCommand(lMessageEvent.data))
+    begin
+    lCommand:=TCustomWorkerCommand(lMessageEvent.data);
+    lCommand.FSender:=aEvent.target;
+    HandleCommand(lCommand);
+    end;
 end;
 
 constructor TCommandDispatcher.create;