Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Common / internal / materialization / shaperfactory.cs / 1 / 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; namespace System.Data.Common.Internal.Materialization { ////// An immutable type used to generate Shaper instances. /// internal abstract class ShaperFactory { 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) { 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); } /// /// Factory method to create the Shaper for Value Layer queries. /// internal ShaperCreate(DbDataReader reader, MetadataWorkspace workspace) { Debug.Assert(MergeOption.NoTracking == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, null, workspace, MergeOption.NoTracking, _stateCount, _rootCoordinatorFactory, _checkPermissions); } } } // 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; namespace System.Data.Common.Internal.Materialization { ////// An immutable type used to generate Shaper instances. /// internal abstract class ShaperFactory { 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) { 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); } /// /// Factory method to create the Shaper for Value Layer queries. /// internal ShaperCreate(DbDataReader reader, MetadataWorkspace workspace) { Debug.Assert(MergeOption.NoTracking == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, null, workspace, MergeOption.NoTracking, _stateCount, _rootCoordinatorFactory, _checkPermissions); } } } // 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
- ValuePattern.cs
- ProfileGroupSettings.cs
- SQLResource.cs
- ToolStripItemImageRenderEventArgs.cs
- DSASignatureFormatter.cs
- XamlSerializationHelper.cs
- BezierSegment.cs
- PolyQuadraticBezierSegment.cs
- ResXResourceWriter.cs
- ConversionContext.cs
- safesecurityhelperavalon.cs
- LogReserveAndAppendState.cs
- AutomationAttributeInfo.cs
- Random.cs
- SoapUnknownHeader.cs
- DynamicILGenerator.cs
- printdlgexmarshaler.cs
- CollectionView.cs
- ValidatingReaderNodeData.cs
- XamlContextStack.cs
- ColumnMap.cs
- PathFigureCollectionConverter.cs
- ProtocolElementCollection.cs
- DigitShape.cs
- PropertyChangeTracker.cs
- ArrayList.cs
- StyleCollection.cs
- RangeBase.cs
- CodePageEncoding.cs
- EditorResources.cs
- TextChange.cs
- TemplateXamlTreeBuilder.cs
- StronglyTypedResourceBuilder.cs
- SystemWebSectionGroup.cs
- Win32Exception.cs
- DataGridViewToolTip.cs
- IncrementalReadDecoders.cs
- UInt32Storage.cs
- DBDataPermission.cs
- TreeNodeStyleCollection.cs
- XmlSchemaAnnotation.cs
- TemplateParser.cs
- XmlSchemaSimpleTypeRestriction.cs
- HwndMouseInputProvider.cs
- WebPartZoneBase.cs
- ToolBarButton.cs
- SliderAutomationPeer.cs
- SelectionItemPattern.cs
- ActivityCodeDomSerializationManager.cs
- EdmFunctionAttribute.cs
- Profiler.cs
- HostProtectionException.cs
- ByteStreamGeometryContext.cs
- EditorBrowsableAttribute.cs
- XamlReaderConstants.cs
- NonDualMessageSecurityOverHttp.cs
- TemplatedWizardStep.cs
- XPathNodeHelper.cs
- DeleteIndexBinder.cs
- ValidationHelper.cs
- SpeechSynthesizer.cs
- DropTarget.cs
- ByeOperation11AsyncResult.cs
- AutomationEventArgs.cs
- HashLookup.cs
- Pens.cs
- NodeFunctions.cs
- ListViewDataItem.cs
- WebPartDisplayMode.cs
- BeginEvent.cs
- UrlMappingsSection.cs
- PenThreadWorker.cs
- HandlerBase.cs
- TimeoutException.cs
- CreateParams.cs
- TransformGroup.cs
- MultiTrigger.cs
- PrintDocument.cs
- QuotedPrintableStream.cs
- WebEventCodes.cs
- EasingQuaternionKeyFrame.cs
- WebPartConnectionsCancelEventArgs.cs
- SqlDataSourceView.cs
- QueryAccessibilityHelpEvent.cs
- VirtualizedContainerService.cs
- TemplateBuilder.cs
- VectorConverter.cs
- DateTimeConverter2.cs
- StylusOverProperty.cs
- ellipse.cs
- IconBitmapDecoder.cs
- RoleGroupCollectionEditor.cs
- UpdatePanelTriggerCollection.cs
- XsdCachingReader.cs
- RawMouseInputReport.cs
- ToolStripMenuItem.cs
- PeerNameRegistration.cs
- TextBoxBaseDesigner.cs
- BasicExpressionVisitor.cs
- XmlTextEncoder.cs