crashanalysercmd/PerfToolsSharedLibraries/Engine/SymbianTree/Document/SymDocument.cs
changeset 0 818e61de6cd1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/crashanalysercmd/PerfToolsSharedLibraries/Engine/SymbianTree/Document/SymDocument.cs	Thu Feb 11 15:50:58 2010 +0200
@@ -0,0 +1,100 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+* 
+* Description:
+*
+*/
+using System;
+using System.IO;
+using System.Xml;
+
+namespace SymbianTree
+{
+	public class SymDocument : SymNodeAddAsChild
+	{
+		#region Constructors
+		public SymDocument()
+            : this( Granularity )
+		{
+		}
+
+        public SymDocument( int aGranularity )
+            : this( aGranularity, null )
+        {
+        }
+
+        public SymDocument( object aData )
+            : this( Granularity, aData )
+		{
+		}
+        
+        public SymDocument( int aGranularity, object aData )
+            : base( aData )
+        {
+            iCurrentNode = this;
+            CreateChildrenListNow( aGranularity );
+        }
+        #endregion
+
+		#region API
+        public void SerializeToXml( string aFileName )
+        {
+            if ( File.Exists( aFileName ) )
+            {
+                File.Delete( aFileName );
+            }
+
+            using ( XmlTextWriter writer = new XmlTextWriter( aFileName, System.Text.Encoding.UTF8 ) )
+            {
+                writer.Formatting = Formatting.Indented;
+                //
+                try
+                {
+                    base.Serialize( writer );
+                }
+                catch ( XmlException )
+                {
+                }
+            }
+        }
+
+		public void MakeParentCurrent()
+		{
+			System.Diagnostics.Debug.Assert( CurrentNode.HasParent );
+			CurrentNode = CurrentNode.Parent;
+		}
+		#endregion
+
+		#region Properties
+		public SymNode CurrentNode
+		{
+			get { return iCurrentNode; }
+			set
+            {
+                iPreviousCurrentNode = iCurrentNode;
+                iCurrentNode = value;
+            }
+		}
+
+        public SymNode PreviousCurrentNode
+		{
+            get { return iPreviousCurrentNode; }
+		}
+		#endregion
+
+		#region Data members
+		private SymNode iCurrentNode;
+		private SymNode iPreviousCurrentNode;
+		#endregion
+	}
+}