Example #1
0
        private void OpFaulted(object sender, OpFaultedEventArgs e)
        {
            int i = Activities.IndexOf((Unit_Op)sender);

            //Pause all downstream ops until buffer
            for (int j = i + 1; j < Activities.Count; j++)
            {
                if (Activities[j].IsUnitOp())
                {
                    ((Unit_Op)Activities[j]).Paused = true;
                }
                else if (Activities[j].IsBuffer())
                {
                    //If is buffer and buffer is empty then continue pausing ops
                    if (((Buffer)Activities[j]).Buffer_Empty)
                    {
                        continue;
                    }
                    else
                    {
                        break;
                    }
                }
            }
            //Pause all upstream ops until buffer
            for (int j = i - 1; j >= 0; j--)
            {
                if (Activities[j].IsUnitOp())
                {
                    ((Unit_Op)Activities[j]).Paused = true;
                }
                else if (Activities[j].IsBuffer())
                {
                    //If is buffer and buffer is full then continue pausing ops
                    if (((Buffer)Activities[j]).Buffer_Full)
                    {
                        continue;
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
Example #2
0
 protected virtual void OnOpFaulted(OpFaultedEventArgs e)
 {
     OpFaulted?.Invoke(this, e);
 }