Uploaded image for project: 'Commons SCXML'
  1. Commons SCXML
  2. SCXML-226

Support of special send targets #_parent, #_invokeid and #_scxml_sessionid

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.5, 0.6, 0.7, 0.8, 0.9
    • 2.0
    • 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.

      Attachments

        1. fix_invoke_special_targets
          6 kB
          Michael Goerlich

        Activity

          People

            ate Ate Douma
            hiu.phail Michael Goerlich
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: