Mono.Debugger.Backend.SingleSteppingEngine.Operation.ProcessEvent C# (CSharp) Method

ProcessEvent() public method

public ProcessEvent ( Inferior cevent, TargetEventArgs &args ) : EventResult
cevent Inferior
args TargetEventArgs
return EventResult
            public virtual EventResult ProcessEvent(Inferior.ChildEvent cevent,
							 out TargetEventArgs args)
            {
                if (cevent.Type == Inferior.ChildEventType.CHILD_INTERRUPTED) {
                args = null;
                if (ResumeOperation ())
                    return EventResult.Running;
                }

                if ((cevent.Type == Inferior.ChildEventType.CHILD_STOPPED) && (cevent.Argument != 0)) {
                sse.frame_changed (inferior.CurrentFrame, null);
                args = new TargetEventArgs (TargetEventType.TargetStopped, (int) cevent.Argument, sse.current_frame);
                return EventResult.Completed;
                }

                EventResult result;
                if (child != null) {
                Report.Debug (DebugFlags.EventLoop, "{0} child event: {1} {2}", sse, this, cevent);

                result = child.ProcessEvent (cevent, out args);

                Report.Debug (DebugFlags.EventLoop, "{0} child event done: {1} {2} {3} {4}", sse, this, cevent, result, args);

                if (result == EventResult.ParentResumed) {
                    child = null;
                    return EventResult.Running;
                }

                if ((result != EventResult.AskParent) &&
                    (result != EventResult.ResumeOperation))
                    return result;

                Operation old_child = child;
                child = null;

                if ((result == EventResult.ResumeOperation) && ResumeOperation ()) {
                    args = null;
                    return EventResult.Running;
                }

                Report.Debug (DebugFlags.EventLoop,
                          "{0} resending event {1} from {2} to {3}",
                          sse, cevent, old_child, this);
                }

                result = DoProcessEvent (cevent, out args);

                return result;
            }