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
- KnownIds.cs
- DefaultTextStore.cs
- HostedHttpRequestAsyncResult.cs
- RelatedCurrencyManager.cs
- Timeline.cs
- EncoderExceptionFallback.cs
- DataDocumentXPathNavigator.cs
- ContentFilePart.cs
- RemotingSurrogateSelector.cs
- TransformProviderWrapper.cs
- _FtpDataStream.cs
- WebPartConnectionsConnectVerb.cs
- SystemIcmpV6Statistics.cs
- ColorKeyFrameCollection.cs
- ToolboxItemAttribute.cs
- ZipIOLocalFileBlock.cs
- EntityProxyFactory.cs
- StreamProxy.cs
- Encoder.cs
- PropertyPushdownHelper.cs
- EntityDataSourceContextDisposingEventArgs.cs
- CodeDomConfigurationHandler.cs
- FontStretchConverter.cs
- WebPartEditorApplyVerb.cs
- AnnotationService.cs
- ConstNode.cs
- OperationSelectorBehavior.cs
- ColorMatrix.cs
- WebAdminConfigurationHelper.cs
- LocalValueEnumerator.cs
- AutoGeneratedField.cs
- MutexSecurity.cs
- TransformValueSerializer.cs
- HtmlInputRadioButton.cs
- DriveNotFoundException.cs
- StreamUpdate.cs
- ParameterCollectionEditor.cs
- DynamicDataResources.Designer.cs
- VisualStyleElement.cs
- NetCodeGroup.cs
- Rotation3DAnimation.cs
- ViewBox.cs
- IBuiltInEvidence.cs
- WebPartDisplayMode.cs
- MessageDescription.cs
- AuthenticationException.cs
- MobileContainerDesigner.cs
- ZipIOLocalFileBlock.cs
- CLSCompliantAttribute.cs
- AspNetSynchronizationContext.cs
- DrawingAttributes.cs
- DBCSCodePageEncoding.cs
- NoneExcludedImageIndexConverter.cs
- PartitionedStreamMerger.cs
- ServiceDesigner.cs
- securitycriticaldataformultiplegetandset.cs
- ObjectResult.cs
- CodeVariableReferenceExpression.cs
- ControlDesignerState.cs
- _FixedSizeReader.cs
- GridViewRowPresenter.cs
- wpf-etw.cs
- ReadOnlyHierarchicalDataSourceView.cs
- RuleSet.cs
- BitmapEffectDrawingContextWalker.cs
- XmlDataCollection.cs
- BindingMAnagerBase.cs
- SafeCryptoHandles.cs
- CharEnumerator.cs
- HttpDebugHandler.cs
- BamlRecords.cs
- ExpressionNode.cs
- KeyGestureConverter.cs
- CellIdBoolean.cs
- RoutedEventValueSerializer.cs
- EntityDataSource.cs
- SchemaDeclBase.cs
- _ProxyChain.cs
- ToolStripDropDownMenu.cs
- CryptoHandle.cs
- ImageDrawing.cs
- RemoteWebConfigurationHostServer.cs
- mediapermission.cs
- WebZone.cs
- EntityProviderServices.cs
- Trigger.cs
- IArgumentProvider.cs
- ProxyHelper.cs
- DataServiceRequestOfT.cs
- PageRanges.cs
- WpfKnownMember.cs
- ConnectivityStatus.cs
- SolidColorBrush.cs
- BasicHttpMessageSecurity.cs
- HeaderElement.cs
- NavigateEvent.cs
- WhileDesigner.xaml.cs
- WriteTimeStream.cs
- OperatingSystem.cs
- PointAnimationUsingKeyFrames.cs