Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.5, 0.6, 0.7, 0.8, 0.9
-
None
Description
Currently it is not possible to use #_parent and #_invokeid to allow communication between two scxml instances where one invoked the other.
Due to the last changes the _ioprocessors variable was introduced. If the target of a <send> may reference to an entry in the _ioprocessors map, then it should be possible to forward events directly to the registered SCXMLIOProcessor instance.
Given this the invoker must supply a SCXMLIOProcessor for the parent to register within the its SCXMLExecutionContext map as #_invokeId and the invoker must register the parent SCXMLIOProcessor as #_parent within the execution context of the SCXMLExecutor. As well as this the EventDispatcher must take the SCXMLIOProcessor registered for the target from _ioprocessors.
Based on my assumptions I tried to implement this and uploaded the patch to: http://pastebin.com/t855Ugs1 . Hope it helps.
------
Update (Ate): besides the above improvements, support for #_scxml_sessionid now also has been added, allowing to send events to the own SCXML session through the external SCXMLIOProcessor.