Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/14/08 21:51:15 (16 years ago)
Author:
gkronber
Message:

created a branch that uses XmlTextReader instead of XMLDocument to load documents. Investigating ticket #103. (...work in progress!)

Location:
branches/XmlTextReaderBranch
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/XmlTextReaderBranch/HeuristicLab.Core/EngineBase.cs

    r47 r121  
    190190      return node;
    191191    }
    192     public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) {
    193       base.Populate(node, restoredObjects);
    194       myOperatorGraph = (IOperatorGraph)PersistenceManager.Restore(node.SelectSingleNode("OperatorGraph"), restoredObjects);
    195       myGlobalScope = (IScope)PersistenceManager.Restore(node.SelectSingleNode("GlobalScope"), restoredObjects);
    196 
    197       XmlNode stackNode = node.SelectSingleNode("ExecutionStack");
    198       for (int i = stackNode.ChildNodes.Count - 1; i >= 0; i--)
    199         myExecutionStack.Push((IOperation)PersistenceManager.Restore(stackNode.ChildNodes[i], restoredObjects));
    200 
    201       XmlNode timeNode = node.SelectSingleNode("ExecutionTime");
    202       myExecutionTime = TimeSpan.Parse(timeNode.InnerText);
     192    public override void Populate(XmlReader reader, IDictionary<Guid,IStorable> restoredObjects) {
     193      base.Populate(reader, restoredObjects);
     194      myOperatorGraph = (IOperatorGraph)PersistenceManager.Restore(reader, "OperatorGraph", restoredObjects);
     195      myGlobalScope = (IScope)PersistenceManager.Restore(reader, "GlobalScope", restoredObjects);
     196
     197      reader.ReadStartElement("ExecutionStack");
     198      List<IOperation> operationList = new List<IOperation>();
     199      while(reader.IsStartElement()) {
     200        operationList.Insert(0, (IOperation)PersistenceManager.Restore(reader, restoredObjects));
     201      }
     202      foreach(IOperation op in operationList)
     203        myExecutionStack.Push(op);
     204      reader.ReadEndElement();
     205
     206      reader.ReadStartElement("ExecutionTime");
     207      myExecutionTime = TimeSpan.Parse(reader.ReadString());
     208      reader.ReadEndElement();
    203209    }
    204210    #endregion
Note: See TracChangeset for help on using the changeset viewer.