Mono.Debugger.DebuggerSession.LoadSession C# (CSharp) Method

LoadSession() protected method

protected LoadSession ( XPathNavigator nav ) : void
nav System.Xml.XPath.XPathNavigator
return void
        protected void LoadSession(XPathNavigator nav)
        {
            XPathNodeIterator session_iter = nav.Select (
                "/DebuggerConfiguration/DebuggerSession[@name='" + Name + "']");
            if (!session_iter.MoveNext ())
                throw new InternalError ();

            XPathNodeIterator group_iter = nav.Select (
                "/DebuggerConfiguration/ModuleGroups/ModuleGroup");
            while (group_iter.MoveNext ()) {
                string name = group_iter.Current.GetAttribute ("name", "");
                ModuleGroup group = Config.CreateModuleGroup (name);

                group.SetSessionData (group_iter);
            }

            XPathNodeIterator modules_iter = session_iter.Current.Select ("Modules/*");
            while (modules_iter.MoveNext ()) {
                string name = modules_iter.Current.GetAttribute ("name", "");
                string group = modules_iter.Current.GetAttribute ("group", "");

                Module module = (Module) modules [name];
                if (module == null) {
                    ModuleGroup mgroup = Config.GetModuleGroup (group);
                    module = new Module (mgroup, name, null);
                    modules.Add (name, module);
                }

                module.SetSessionData (modules_iter);
            }

            XPathNodeIterator event_iter = session_iter.Current.Select ("Events/*");
            LoadEvents (event_iter);

            XPathNodeIterator display_iter = session_iter.Current.Select ("Displays/*");
            LoadDisplays (display_iter);
        }