By removing the apollo-specific messaging system from ROPE, we have greatly reduced the number of named pipes and generally simplified the C-interface. These are the processes that are currently running on a ROPE engine:
Note that the RopeClient contacts first the online RopeServer process, then the offline RopeServer process running on the front-end. Therefore a ROPE engine will always take an online file if it is available. The mode for the file (ONLINE or OFFLINE) will be passed to the assigner, which will pass it on to fziner. When fziner sees that the rope engine should switch modes, it resets some file links, sets the rope state to SWITCH_MODE_ONLINEor SWITCH_MODE_OFFLINEand sets the trigger number to -1234. This kills rope, and the rope_parent, on detecting the rope death, will reset file links and restart the appropriate rope based on the rope state settings.