Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Markup / BamlRecordHelper.cs / 1 / BamlRecordHelper.cs
/****************************************************************************\
*
* File: BamlRecordHelper.cs
*
* Copyright (C) 2006 by Microsoft Corporation. All rights reserved.
*
\***************************************************************************/
using System;
using System.Diagnostics;
#if PBTCOMPILER
namespace MS.Internal.Markup
#else
using System.Windows;
namespace System.Windows.Markup
#endif
{
// Helper functions for baml records
static internal class BamlRecordHelper
{
#if !PBTCOMPILER
//
// This method checks to see if the baml record type is one of the records used
// to build up the map table, e.g. type information.
//
static internal bool IsMapTableRecordType( BamlRecordType bamlRecordType )
{
switch( bamlRecordType )
{
case BamlRecordType.PIMapping:
case BamlRecordType.AssemblyInfo:
case BamlRecordType.TypeInfo:
case BamlRecordType.TypeSerializerInfo:
case BamlRecordType.AttributeInfo:
case BamlRecordType.StringInfo:
return true;
default:
return false;
}
}
internal static bool IsDebugBamlRecordType(BamlRecordType recordType)
{
if ( recordType == BamlRecordType.LineNumberAndPosition
|| recordType == BamlRecordType.LinePosition )
{
return true;
}
return false;
}
// Does the given Baml Record have a Debug Baml Record in its Next link.
internal static bool HasDebugExtensionRecord(bool isDebugBamlStream, BamlRecord bamlRecord)
{
if (isDebugBamlStream && (bamlRecord.Next != null))
{
if (IsDebugBamlRecordType(bamlRecord.Next.RecordType))
{
return true;
}
}
return false;
}
#endif
internal static bool DoesRecordTypeHaveDebugExtension(BamlRecordType recordType)
{
switch(recordType)
{
case BamlRecordType.ElementStart:
case BamlRecordType.ElementEnd:
case BamlRecordType.Property:
case BamlRecordType.PropertyComplexStart:
case BamlRecordType.PropertyArrayStart:
case BamlRecordType.PropertyIListStart:
case BamlRecordType.PropertyIDictionaryStart:
case BamlRecordType.XmlnsProperty:
case BamlRecordType.PIMapping:
case BamlRecordType.PropertyTypeReference:
case BamlRecordType.PropertyWithExtension:
case BamlRecordType.PropertyWithConverter:
case BamlRecordType.KeyElementStart:
case BamlRecordType.ConnectionId:
case BamlRecordType.ContentProperty:
case BamlRecordType.StaticResourceStart:
case BamlRecordType.PresentationOptionsAttribute:
return true;
case BamlRecordType.DocumentStart:
case BamlRecordType.DocumentEnd: // End record
case BamlRecordType.PropertyCustom: // The "custom" size of this is a problem
case BamlRecordType.PropertyComplexEnd: // End record
case BamlRecordType.PropertyArrayEnd: // End record
case BamlRecordType.PropertyIListEnd: // End record
case BamlRecordType.PropertyIDictionaryEnd: // End record
case BamlRecordType.LiteralContent: // Not needed
case BamlRecordType.Text: // Not needed
case BamlRecordType.TextWithConverter: // Not common enough
case BamlRecordType.RoutedEvent: // Not common enough
case BamlRecordType.ClrEvent: // Not common enough
case BamlRecordType.XmlAttribute: // Not common enough
case BamlRecordType.ProcessingInstruction: // Not common enough
case BamlRecordType.Comment: // Not common enough
case BamlRecordType.DefTag: // Not common enough
case BamlRecordType.DefAttribute: // Not common enough
case BamlRecordType.EndAttributes: // Not common enough
case BamlRecordType.AssemblyInfo: // Info records (in general) don't advance file position
case BamlRecordType.TypeInfo: // Info records (in general) don't advance file position
case BamlRecordType.TypeSerializerInfo: // Not common enough
case BamlRecordType.AttributeInfo: // Info records (in general) don't advance file position
case BamlRecordType.StringInfo: // Info records (in general) don't advance file position
case BamlRecordType.PropertyStringReference: // Not common enough
case BamlRecordType.DeferableContentStart: // This would complicate Deferable Content Size
case BamlRecordType.ConstructorParametersStart: // Not Needed
case BamlRecordType.ConstructorParametersEnd: // End record
case BamlRecordType.ConstructorParameterType: // Not Needed
case BamlRecordType.NamedElementStart: // Not common enough
case BamlRecordType.TextWithId: // Not Needed
case BamlRecordType.LineNumberAndPosition: // This would become recursive
case BamlRecordType.LinePosition: // This would become recursive
case BamlRecordType.DefAttributeKeyString:
case BamlRecordType.DefAttributeKeyType:
case BamlRecordType.KeyElementEnd:
case BamlRecordType.StaticResourceEnd:
case BamlRecordType.StaticResourceId:
case BamlRecordType.OptimizedStaticResource:
case BamlRecordType.PropertyWithStaticResourceId:
return false;
default:
Debug.Assert(false, "Unhandled case in DoesRecordTypeHaveDebugExtension");
return false;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
/****************************************************************************\
*
* File: BamlRecordHelper.cs
*
* Copyright (C) 2006 by Microsoft Corporation. All rights reserved.
*
\***************************************************************************/
using System;
using System.Diagnostics;
#if PBTCOMPILER
namespace MS.Internal.Markup
#else
using System.Windows;
namespace System.Windows.Markup
#endif
{
// Helper functions for baml records
static internal class BamlRecordHelper
{
#if !PBTCOMPILER
//
// This method checks to see if the baml record type is one of the records used
// to build up the map table, e.g. type information.
//
static internal bool IsMapTableRecordType( BamlRecordType bamlRecordType )
{
switch( bamlRecordType )
{
case BamlRecordType.PIMapping:
case BamlRecordType.AssemblyInfo:
case BamlRecordType.TypeInfo:
case BamlRecordType.TypeSerializerInfo:
case BamlRecordType.AttributeInfo:
case BamlRecordType.StringInfo:
return true;
default:
return false;
}
}
internal static bool IsDebugBamlRecordType(BamlRecordType recordType)
{
if ( recordType == BamlRecordType.LineNumberAndPosition
|| recordType == BamlRecordType.LinePosition )
{
return true;
}
return false;
}
// Does the given Baml Record have a Debug Baml Record in its Next link.
internal static bool HasDebugExtensionRecord(bool isDebugBamlStream, BamlRecord bamlRecord)
{
if (isDebugBamlStream && (bamlRecord.Next != null))
{
if (IsDebugBamlRecordType(bamlRecord.Next.RecordType))
{
return true;
}
}
return false;
}
#endif
internal static bool DoesRecordTypeHaveDebugExtension(BamlRecordType recordType)
{
switch(recordType)
{
case BamlRecordType.ElementStart:
case BamlRecordType.ElementEnd:
case BamlRecordType.Property:
case BamlRecordType.PropertyComplexStart:
case BamlRecordType.PropertyArrayStart:
case BamlRecordType.PropertyIListStart:
case BamlRecordType.PropertyIDictionaryStart:
case BamlRecordType.XmlnsProperty:
case BamlRecordType.PIMapping:
case BamlRecordType.PropertyTypeReference:
case BamlRecordType.PropertyWithExtension:
case BamlRecordType.PropertyWithConverter:
case BamlRecordType.KeyElementStart:
case BamlRecordType.ConnectionId:
case BamlRecordType.ContentProperty:
case BamlRecordType.StaticResourceStart:
case BamlRecordType.PresentationOptionsAttribute:
return true;
case BamlRecordType.DocumentStart:
case BamlRecordType.DocumentEnd: // End record
case BamlRecordType.PropertyCustom: // The "custom" size of this is a problem
case BamlRecordType.PropertyComplexEnd: // End record
case BamlRecordType.PropertyArrayEnd: // End record
case BamlRecordType.PropertyIListEnd: // End record
case BamlRecordType.PropertyIDictionaryEnd: // End record
case BamlRecordType.LiteralContent: // Not needed
case BamlRecordType.Text: // Not needed
case BamlRecordType.TextWithConverter: // Not common enough
case BamlRecordType.RoutedEvent: // Not common enough
case BamlRecordType.ClrEvent: // Not common enough
case BamlRecordType.XmlAttribute: // Not common enough
case BamlRecordType.ProcessingInstruction: // Not common enough
case BamlRecordType.Comment: // Not common enough
case BamlRecordType.DefTag: // Not common enough
case BamlRecordType.DefAttribute: // Not common enough
case BamlRecordType.EndAttributes: // Not common enough
case BamlRecordType.AssemblyInfo: // Info records (in general) don't advance file position
case BamlRecordType.TypeInfo: // Info records (in general) don't advance file position
case BamlRecordType.TypeSerializerInfo: // Not common enough
case BamlRecordType.AttributeInfo: // Info records (in general) don't advance file position
case BamlRecordType.StringInfo: // Info records (in general) don't advance file position
case BamlRecordType.PropertyStringReference: // Not common enough
case BamlRecordType.DeferableContentStart: // This would complicate Deferable Content Size
case BamlRecordType.ConstructorParametersStart: // Not Needed
case BamlRecordType.ConstructorParametersEnd: // End record
case BamlRecordType.ConstructorParameterType: // Not Needed
case BamlRecordType.NamedElementStart: // Not common enough
case BamlRecordType.TextWithId: // Not Needed
case BamlRecordType.LineNumberAndPosition: // This would become recursive
case BamlRecordType.LinePosition: // This would become recursive
case BamlRecordType.DefAttributeKeyString:
case BamlRecordType.DefAttributeKeyType:
case BamlRecordType.KeyElementEnd:
case BamlRecordType.StaticResourceEnd:
case BamlRecordType.StaticResourceId:
case BamlRecordType.OptimizedStaticResource:
case BamlRecordType.PropertyWithStaticResourceId:
return false;
default:
Debug.Assert(false, "Unhandled case in DoesRecordTypeHaveDebugExtension");
return false;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CryptoApi.cs
- RenderTargetBitmap.cs
- SqlMultiplexer.cs
- BitmapPalette.cs
- EntityDataSourceStatementEditor.cs
- CopyCodeAction.cs
- DetailsViewInsertedEventArgs.cs
- ButtonAutomationPeer.cs
- ValidatorCompatibilityHelper.cs
- UpdatePanelControlTrigger.cs
- TcpPortSharing.cs
- MimeTextImporter.cs
- AuthenticationSection.cs
- SqlMultiplexer.cs
- NewItemsContextMenuStrip.cs
- Thread.cs
- CustomLineCap.cs
- JapaneseCalendar.cs
- LocalizationComments.cs
- ClaimTypes.cs
- TextRunTypographyProperties.cs
- DataSetUtil.cs
- TreeNode.cs
- ColumnBinding.cs
- InProcStateClientManager.cs
- DictionaryEntry.cs
- TextDecorationCollectionConverter.cs
- CachedFontFace.cs
- BrushConverter.cs
- StopRoutingHandler.cs
- RepeatEnumerable.cs
- DynamicRendererThreadManager.cs
- safemediahandle.cs
- DataTableNameHandler.cs
- SqlDataSourceEnumerator.cs
- TextWriterTraceListener.cs
- TextSpanModifier.cs
- ColumnResult.cs
- Decorator.cs
- StatusBar.cs
- mediaclock.cs
- ObjectSet.cs
- METAHEADER.cs
- SqlConnectionFactory.cs
- TextTreeText.cs
- WebPartManager.cs
- TCEAdapterGenerator.cs
- InternalControlCollection.cs
- MSAANativeProvider.cs
- JumpPath.cs
- Stack.cs
- log.cs
- NativeMethods.cs
- XmlSchemaParticle.cs
- GetCertificateRequest.cs
- FrameworkContentElement.cs
- TableStyle.cs
- AddInSegmentDirectoryNotFoundException.cs
- RoleManagerSection.cs
- OneOfElement.cs
- DesignerActionList.cs
- RelationshipWrapper.cs
- Utils.cs
- TextSegment.cs
- QueryCacheEntry.cs
- ChineseLunisolarCalendar.cs
- PeerNameRecordCollection.cs
- XmlEncoding.cs
- CryptoConfig.cs
- FormatVersion.cs
- DirectoryObjectSecurity.cs
- Menu.cs
- ConsumerConnectionPoint.cs
- NotSupportedException.cs
- WebPartMenuStyle.cs
- MsmqIntegrationSecurityElement.cs
- CompilerParameters.cs
- DynamicQueryableWrapper.cs
- DocumentCollection.cs
- HtmlInputImage.cs
- Mutex.cs
- DataGridTextBox.cs
- AlphabeticalEnumConverter.cs
- PriorityQueue.cs
- WindowsListView.cs
- HttpCookiesSection.cs
- FixedTextSelectionProcessor.cs
- SafeThreadHandle.cs
- ExpressionNode.cs
- ExtensionSurface.cs
- QueryResultOp.cs
- TypeToken.cs
- DBSqlParserColumnCollection.cs
- SystemWebSectionGroup.cs
- SafeEventLogWriteHandle.cs
- SynchronousChannel.cs
- WebDescriptionAttribute.cs
- BezierSegment.cs
- DataColumnPropertyDescriptor.cs
- EntityViewContainer.cs