Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- TouchEventArgs.cs
- Point3D.cs
- AutomationAttributeInfo.cs
- PageSettings.cs
- ToolTip.cs
- UshortList2.cs
- StructuralCache.cs
- AVElementHelper.cs
- ModelUIElement3D.cs
- RegexRunnerFactory.cs
- TaskFileService.cs
- BinaryConverter.cs
- CodeAssignStatement.cs
- KeyEvent.cs
- DbProviderServices.cs
- IxmlLineInfo.cs
- BitmapInitialize.cs
- WebServiceMethodData.cs
- ConditionalWeakTable.cs
- QueryStringHandler.cs
- ZipPackage.cs
- Input.cs
- MetroSerializationManager.cs
- __FastResourceComparer.cs
- UntypedNullExpression.cs
- documentsequencetextview.cs
- MaskedTextProvider.cs
- DataPagerField.cs
- DataGridViewRowCollection.cs
- DecoderBestFitFallback.cs
- ProfessionalColorTable.cs
- SelectiveScrollingGrid.cs
- TaskHelper.cs
- WriteableBitmap.cs
- DesignerSerializationOptionsAttribute.cs
- CodeExpressionStatement.cs
- ConfigurationValues.cs
- EnumBuilder.cs
- ByteStreamGeometryContext.cs
- TrackPoint.cs
- Compiler.cs
- DoubleUtil.cs
- AsyncCallback.cs
- SoapObjectReader.cs
- WindowsAuthenticationModule.cs
- FixedSOMPage.cs
- HighlightVisual.cs
- ServiceInfo.cs
- SystemResourceKey.cs
- TextLineBreak.cs
- MouseButton.cs
- XmlBinaryWriter.cs
- ControlParameter.cs
- ResourceType.cs
- ProjectedSlot.cs
- StandardMenuStripVerb.cs
- AutomationElementCollection.cs
- StringToken.cs
- TextServicesDisplayAttribute.cs
- ContextStaticAttribute.cs
- Transform3DGroup.cs
- ProcessModuleCollection.cs
- UnauthorizedWebPart.cs
- TextViewSelectionProcessor.cs
- TextProviderWrapper.cs
- ValidatorUtils.cs
- SByteStorage.cs
- EntityDesignerDataSourceView.cs
- RadialGradientBrush.cs
- DelegateSerializationHolder.cs
- DataServiceConfiguration.cs
- SchemaCollectionCompiler.cs
- TouchDevice.cs
- ImportStoreException.cs
- EUCJPEncoding.cs
- SecurityRuntime.cs
- PseudoWebRequest.cs
- RoutedEventValueSerializer.cs
- BitmapPalette.cs
- OverrideMode.cs
- StringPropertyBuilder.cs
- NullReferenceException.cs
- PropertyNames.cs
- WCFBuildProvider.cs
- _UncName.cs
- StagingAreaInputItem.cs
- COSERVERINFO.cs
- ExtendedPropertyCollection.cs
- FormViewInsertEventArgs.cs
- CorrelationValidator.cs
- TargetControlTypeCache.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- WinInet.cs
- _ListenerRequestStream.cs
- WebServiceData.cs
- Evidence.cs
- versioninfo.cs
- LocatorGroup.cs
- Model3D.cs
- DateTimeUtil.cs