Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / ConfigViewGenerator.cs / 2 / ConfigViewGenerator.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Common.Utils; using System.Text; using System.Diagnostics; namespace System.Data.Mapping.ViewGeneration { internal enum ViewGenerationMode { GenerateAllViews = 0, OfTypeViews, OfTypeOnlyViews } internal enum ViewGenTraceLevel { None = 0, ViewsOnly, Normal, Verbose } internal enum PerfType { InitialSetup = 0, CellCreation, KeyConstraint, CellNormalizer, UpdateViews, DisjointConstraint, PartitionConstraint, DomainConstraint, ForeignConstraint, QueryViews, BoolResolution, Unsatisfiability, ViewParsing, } // This class holds some configuration information for the view // generation code internal class ConfigViewGenerator : InternalBase { #region Constructors internal ConfigViewGenerator() { m_watch = new Stopwatch(); m_singleWatch = new Stopwatch(); int numEnums = Enum.GetNames(typeof(PerfType)).Length; m_breakdownTimes = new TimeSpan[numEnums]; TraceLevel = ViewGenTraceLevel.None; GenerateViewsForEachType = false; StartWatch(); } #endregion #region Fields private bool m_generateViewsForEachType; private ViewGenTraceLevel m_traceLevel; private TimeSpan[] m_breakdownTimes; private Stopwatch m_watch; private Stopwatch m_singleWatch; // To measure a single thing at a time private PerfType m_singlePerfOp; // Perf op being measured private bool m_enableValidation = true; #endregion #region Properties // Callers can set elements in this list internal TimeSpan[] BreakdownTimes { get { return m_breakdownTimes;} } internal ViewGenTraceLevel TraceLevel { get { return m_traceLevel;} set {m_traceLevel = value;} } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal bool IsValidationEnabled { get { return m_enableValidation; } set { m_enableValidation = value; } } internal bool GenerateViewsForEachType { get { return m_generateViewsForEachType; } set { m_generateViewsForEachType = value; } } internal bool IsViewTracing { get { return IsTraceAllowed(ViewGenTraceLevel.ViewsOnly);} } internal bool IsNormalTracing { get { return IsTraceAllowed(ViewGenTraceLevel.Normal);} } internal bool IsVerboseTracing { get { return IsTraceAllowed(ViewGenTraceLevel.Verbose);} } #endregion #region Methods private void StartWatch() { m_watch.Start(); } internal void StartSingleWatch(PerfType perfType) { m_singleWatch.Start(); m_singlePerfOp = perfType; } // effects: Sets time for perfType for the individual timer internal void StopSingleWatch(PerfType perfType) { Debug.Assert(m_singlePerfOp == perfType, "Started op for different activity " + m_singlePerfOp + " -- not " + perfType); TimeSpan timeElapsed = m_singleWatch.Elapsed; int index = (int)perfType; m_singleWatch.Stop(); m_singleWatch.Reset(); BreakdownTimes[index] = BreakdownTimes[index].Add(timeElapsed); } // effects: Sets time for perfType since the last call to SetTimeForActivity internal void SetTimeForFinishedActivity(PerfType perfType) { TimeSpan timeElapsed = m_watch.Elapsed; int index = (int)perfType; BreakdownTimes[index] = BreakdownTimes[index].Add(timeElapsed); // Trace.WriteLine(perfType + " " + timeElapsed.TotalSeconds); m_watch.Reset(); m_watch.Start(); } // effects: Returns true if this's traceLevel is at least traceLevel internal bool IsTraceAllowed(ViewGenTraceLevel traceLevel) { return TraceLevel >= traceLevel; } internal override void ToCompactString(StringBuilder builder) { StringUtil.FormatStringBuilder(builder, "Trace Switch: {0}", m_traceLevel); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Common.Utils; using System.Text; using System.Diagnostics; namespace System.Data.Mapping.ViewGeneration { internal enum ViewGenerationMode { GenerateAllViews = 0, OfTypeViews, OfTypeOnlyViews } internal enum ViewGenTraceLevel { None = 0, ViewsOnly, Normal, Verbose } internal enum PerfType { InitialSetup = 0, CellCreation, KeyConstraint, CellNormalizer, UpdateViews, DisjointConstraint, PartitionConstraint, DomainConstraint, ForeignConstraint, QueryViews, BoolResolution, Unsatisfiability, ViewParsing, } // This class holds some configuration information for the view // generation code internal class ConfigViewGenerator : InternalBase { #region Constructors internal ConfigViewGenerator() { m_watch = new Stopwatch(); m_singleWatch = new Stopwatch(); int numEnums = Enum.GetNames(typeof(PerfType)).Length; m_breakdownTimes = new TimeSpan[numEnums]; TraceLevel = ViewGenTraceLevel.None; GenerateViewsForEachType = false; StartWatch(); } #endregion #region Fields private bool m_generateViewsForEachType; private ViewGenTraceLevel m_traceLevel; private TimeSpan[] m_breakdownTimes; private Stopwatch m_watch; private Stopwatch m_singleWatch; // To measure a single thing at a time private PerfType m_singlePerfOp; // Perf op being measured private bool m_enableValidation = true; #endregion #region Properties // Callers can set elements in this list internal TimeSpan[] BreakdownTimes { get { return m_breakdownTimes;} } internal ViewGenTraceLevel TraceLevel { get { return m_traceLevel;} set {m_traceLevel = value;} } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal bool IsValidationEnabled { get { return m_enableValidation; } set { m_enableValidation = value; } } internal bool GenerateViewsForEachType { get { return m_generateViewsForEachType; } set { m_generateViewsForEachType = value; } } internal bool IsViewTracing { get { return IsTraceAllowed(ViewGenTraceLevel.ViewsOnly);} } internal bool IsNormalTracing { get { return IsTraceAllowed(ViewGenTraceLevel.Normal);} } internal bool IsVerboseTracing { get { return IsTraceAllowed(ViewGenTraceLevel.Verbose);} } #endregion #region Methods private void StartWatch() { m_watch.Start(); } internal void StartSingleWatch(PerfType perfType) { m_singleWatch.Start(); m_singlePerfOp = perfType; } // effects: Sets time for perfType for the individual timer internal void StopSingleWatch(PerfType perfType) { Debug.Assert(m_singlePerfOp == perfType, "Started op for different activity " + m_singlePerfOp + " -- not " + perfType); TimeSpan timeElapsed = m_singleWatch.Elapsed; int index = (int)perfType; m_singleWatch.Stop(); m_singleWatch.Reset(); BreakdownTimes[index] = BreakdownTimes[index].Add(timeElapsed); } // effects: Sets time for perfType since the last call to SetTimeForActivity internal void SetTimeForFinishedActivity(PerfType perfType) { TimeSpan timeElapsed = m_watch.Elapsed; int index = (int)perfType; BreakdownTimes[index] = BreakdownTimes[index].Add(timeElapsed); // Trace.WriteLine(perfType + " " + timeElapsed.TotalSeconds); m_watch.Reset(); m_watch.Start(); } // effects: Returns true if this's traceLevel is at least traceLevel internal bool IsTraceAllowed(ViewGenTraceLevel traceLevel) { return TraceLevel >= traceLevel; } internal override void ToCompactString(StringBuilder builder) { StringUtil.FormatStringBuilder(builder, "Trace Switch: {0}", m_traceLevel); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ProfessionalColors.cs
- SizeF.cs
- MatrixKeyFrameCollection.cs
- OleDbWrapper.cs
- SortExpressionBuilder.cs
- __TransparentProxy.cs
- CryptoHelper.cs
- BuildProvider.cs
- DelimitedListTraceListener.cs
- BaseComponentEditor.cs
- DependencyPropertyChangedEventArgs.cs
- RemotingServices.cs
- OperationDescription.cs
- TextClipboardData.cs
- FormsAuthentication.cs
- ObjectConverter.cs
- PolicyManager.cs
- DesignerDataTableBase.cs
- DataGridViewRowsAddedEventArgs.cs
- oledbmetadatacolumnnames.cs
- ElapsedEventArgs.cs
- BatchParser.cs
- AbstractExpressions.cs
- BindingRestrictions.cs
- XamlBuildTaskServices.cs
- Visual.cs
- ScriptManagerProxy.cs
- SimpleWorkerRequest.cs
- HttpRuntimeSection.cs
- GlyphingCache.cs
- InvalidTimeZoneException.cs
- Error.cs
- FormsAuthenticationUser.cs
- DefaultBinder.cs
- MultiPropertyDescriptorGridEntry.cs
- HitTestDrawingContextWalker.cs
- ToolStripRenderer.cs
- LocatorBase.cs
- TypefaceMap.cs
- BypassElement.cs
- FormatterConverter.cs
- UserNameSecurityToken.cs
- ServiceModelEnumValidator.cs
- WorkflowMessageEventHandler.cs
- PropagationProtocolsTracing.cs
- XamlInt32CollectionSerializer.cs
- SnapLine.cs
- QilTargetType.cs
- LineSegment.cs
- ScrollChrome.cs
- SiteMapNodeItem.cs
- BreakRecordTable.cs
- LogicalTreeHelper.cs
- ConnectionInterfaceCollection.cs
- ConfigurationSection.cs
- PDBReader.cs
- PreviewPrintController.cs
- Font.cs
- TransactionScope.cs
- ProfilePropertyNameValidator.cs
- TimeSpanValidator.cs
- AttributeProviderAttribute.cs
- DataKeyPropertyAttribute.cs
- AlternateViewCollection.cs
- HexParser.cs
- BinHexEncoding.cs
- NestedContainer.cs
- EdmType.cs
- ComponentSerializationService.cs
- BindingGroup.cs
- CollectionDataContract.cs
- WindowsProgressbar.cs
- CodeValidator.cs
- mediapermission.cs
- Pair.cs
- StyleXamlTreeBuilder.cs
- ErrorProvider.cs
- CellTreeNode.cs
- AspNetRouteServiceHttpHandler.cs
- TextDecorationCollectionConverter.cs
- SolidBrush.cs
- GetCardDetailsRequest.cs
- RemotingException.cs
- ByteStack.cs
- ToolStripProgressBar.cs
- CaseInsensitiveComparer.cs
- QilNode.cs
- ProtocolsSection.cs
- XmlReaderSettings.cs
- ServiceErrorHandler.cs
- SqlXmlStorage.cs
- SingleBodyParameterMessageFormatter.cs
- XsltLibrary.cs
- CommandSet.cs
- ExpandableObjectConverter.cs
- DataGridCommandEventArgs.cs
- SqlUDTStorage.cs
- FormatConvertedBitmap.cs
- Operators.cs
- InputChannelBinder.cs