Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / internal / materialization / shaperfactory.cs / 1599186 / shaperfactory.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System.Data.Common.QueryCache; using System.Data.Metadata.Edm; using System.Data.Objects; using System.Data.Objects.Internal; using System.Data.Query.InternalTrees; using System.Diagnostics; using System.Runtime.CompilerServices; namespace System.Data.Common.Internal.Materialization { ////// An immutable type used to generate Shaper instances. /// internal abstract class ShaperFactory { [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] internal static ShaperFactory Create(Type elementType, QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { ShaperFactoryCreator creator = (ShaperFactoryCreator)Activator.CreateInstance(typeof(TypedShaperFactoryCreator<>).MakeGenericType(elementType)); return creator.TypedCreate(cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } private abstract class ShaperFactoryCreator { internal abstract ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer); } private sealed class TypedShaperFactoryCreator: ShaperFactoryCreator { public TypedShaperFactoryCreator() {} internal override ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { return Translator.TranslateColumnMap (cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } } } /// /// Typed ShaperFactory /// internal class ShaperFactory: ShaperFactory { private readonly int _stateCount; private readonly CoordinatorFactory _rootCoordinatorFactory; private readonly Action _checkPermissions; private readonly MergeOption _mergeOption; internal ShaperFactory(int stateCount, CoordinatorFactory rootCoordinatorFactory, Action checkPermissions, MergeOption mergeOption) { _stateCount = stateCount; _rootCoordinatorFactory = rootCoordinatorFactory; _checkPermissions = checkPermissions; _mergeOption = mergeOption; } /// /// Factory method to create the Shaper for Object Layer queries. /// internal ShaperCreate(DbDataReader reader, ObjectContext context, MetadataWorkspace workspace, MergeOption mergeOption, bool readerOwned) { Debug.Assert(mergeOption == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, context, workspace, mergeOption, _stateCount, _rootCoordinatorFactory, _checkPermissions, readerOwned); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System.Data.Common.QueryCache; using System.Data.Metadata.Edm; using System.Data.Objects; using System.Data.Objects.Internal; using System.Data.Query.InternalTrees; using System.Diagnostics; using System.Runtime.CompilerServices; namespace System.Data.Common.Internal.Materialization { ////// An immutable type used to generate Shaper instances. /// internal abstract class ShaperFactory { [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] internal static ShaperFactory Create(Type elementType, QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { ShaperFactoryCreator creator = (ShaperFactoryCreator)Activator.CreateInstance(typeof(TypedShaperFactoryCreator<>).MakeGenericType(elementType)); return creator.TypedCreate(cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } private abstract class ShaperFactoryCreator { internal abstract ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer); } private sealed class TypedShaperFactoryCreator: ShaperFactoryCreator { public TypedShaperFactoryCreator() {} internal override ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { return Translator.TranslateColumnMap (cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } } } /// /// Typed ShaperFactory /// internal class ShaperFactory: ShaperFactory { private readonly int _stateCount; private readonly CoordinatorFactory _rootCoordinatorFactory; private readonly Action _checkPermissions; private readonly MergeOption _mergeOption; internal ShaperFactory(int stateCount, CoordinatorFactory rootCoordinatorFactory, Action checkPermissions, MergeOption mergeOption) { _stateCount = stateCount; _rootCoordinatorFactory = rootCoordinatorFactory; _checkPermissions = checkPermissions; _mergeOption = mergeOption; } /// /// Factory method to create the Shaper for Object Layer queries. /// internal ShaperCreate(DbDataReader reader, ObjectContext context, MetadataWorkspace workspace, MergeOption mergeOption, bool readerOwned) { Debug.Assert(mergeOption == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, context, workspace, mergeOption, _stateCount, _rootCoordinatorFactory, _checkPermissions, readerOwned); } } } // 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
- MessageLoggingFilterTraceRecord.cs
- DeviceContext2.cs
- XmlSchemaAnnotated.cs
- VirtualDirectoryMapping.cs
- ContentPropertyAttribute.cs
- DataSourceControlBuilder.cs
- CompilationRelaxations.cs
- ComponentEditorPage.cs
- RecordManager.cs
- figurelengthconverter.cs
- AsymmetricCryptoHandle.cs
- BaseUriHelper.cs
- XPathDocument.cs
- HttpChannelBindingToken.cs
- ApplicationFileParser.cs
- VisualSerializer.cs
- LayoutSettings.cs
- ConfigXmlComment.cs
- GenerateHelper.cs
- StrokeCollectionConverter.cs
- _NestedSingleAsyncResult.cs
- AccessedThroughPropertyAttribute.cs
- PresentationAppDomainManager.cs
- Point3DCollectionValueSerializer.cs
- WebPartEventArgs.cs
- TextEditorTables.cs
- MethodMessage.cs
- ReadOnlyTernaryTree.cs
- SqlUtil.cs
- _DisconnectOverlappedAsyncResult.cs
- DetailsViewModeEventArgs.cs
- ResXResourceReader.cs
- PermissionSetTriple.cs
- UndoManager.cs
- DataSourceControlBuilder.cs
- CursorInteropHelper.cs
- GradientStop.cs
- Padding.cs
- DropDownButton.cs
- ToolStripSplitButton.cs
- PixelFormat.cs
- DrawingContextWalker.cs
- ExchangeUtilities.cs
- MetaType.cs
- ADMembershipProvider.cs
- GridView.cs
- CodeExpressionCollection.cs
- RectAnimationBase.cs
- PartialCachingAttribute.cs
- RIPEMD160Managed.cs
- AddIn.cs
- WindowVisualStateTracker.cs
- EmptyControlCollection.cs
- ProcessHostFactoryHelper.cs
- PropertyEntry.cs
- Relationship.cs
- DataGridViewCellPaintingEventArgs.cs
- StringUtil.cs
- BeginGetFileNameFromUserRequest.cs
- BidPrivateBase.cs
- SqlNodeAnnotation.cs
- AccessDataSourceDesigner.cs
- PropertyEntry.cs
- TextTreeTextNode.cs
- RoutedEvent.cs
- DocumentPropertiesDialog.cs
- SqlHelper.cs
- BatchParser.cs
- XmlHierarchyData.cs
- WindowsGraphics2.cs
- CompositeScriptReference.cs
- DataGridColumnHeaderAutomationPeer.cs
- BackgroundFormatInfo.cs
- ConstantSlot.cs
- HtmlInputHidden.cs
- Sql8ConformanceChecker.cs
- ToolBarButton.cs
- CounterSet.cs
- UIElement3D.cs
- TableParagraph.cs
- CompositeControl.cs
- SqlGatherProducedAliases.cs
- FormatConvertedBitmap.cs
- PasswordRecovery.cs
- Matrix.cs
- CommandPlan.cs
- ResourceDescriptionAttribute.cs
- DataTableClearEvent.cs
- XpsLiterals.cs
- Point4DValueSerializer.cs
- ByteStreamGeometryContext.cs
- DesignOnlyAttribute.cs
- BindingsCollection.cs
- XmlMapping.cs
- SqlDataSourceView.cs
- Application.cs
- TitleStyle.cs
- SqlParameterCollection.cs
- CorrelationResolver.cs
- Image.cs