public override void MoveOneStep(Valuation GlobalEnv, List<Configuration> list) { System.Diagnostics.Debug.Assert(list.Count == 0); FirstProcess.MoveOneStep(GlobalEnv, list); for (int i = 0; i < list.Count; i++) { Configuration step = list[i]; if (step.Event != Constants.TERMINATION) { Interrupt inter = new Interrupt(step.Process, SecondProcess); step.Process = inter; } } List<Configuration> list2 = new List<Configuration>(); SecondProcess.MoveOneStep(GlobalEnv, list2); for (int i = 0; i < list2.Count; i++) { Configuration step = list2[i]; if (step.Event == Constants.TAU) { Interrupt inter = new Interrupt(FirstProcess, step.Process); step.Process = inter; } list.Add(step); } //return returnList; }
public override void SyncOutput(Valuation GlobalEnv, List<ConfigurationWithChannelData> list) { FirstProcess.SyncOutput(GlobalEnv, list); for (int i = 0; i < list.Count; i++) { Configuration step = list[i]; if (step.Event != Constants.TERMINATION) { Interrupt inter = new Interrupt(step.Process, SecondProcess); step.Process = inter; } } SecondProcess.SyncOutput(GlobalEnv, list); //return returnList; }
public override void SyncInput(ConfigurationWithChannelData eStep, List<Configuration> list) { //List<Configuration> returnList = new List<Configuration>(); //List<Configuration> list1 = new List<Configuration>(); FirstProcess.SyncInput(eStep, list); for (int i = 0; i < list.Count; i++) { Configuration step = list[i]; if (step.Event != Constants.TERMINATION) { Interrupt inter = new Interrupt(step.Process, SecondProcess); step.Process = inter; } //list.Add(list1[i]); list[i] = step; } SecondProcess.SyncInput(eStep, list); //list1 = //for (int i = 0; i < list1.Count; i++) //{ // list.Add(list1[i]); //} //return returnList; }