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
- DataGridViewColumnTypeEditor.cs
- WorkflowServiceHostFactory.cs
- StorageComplexPropertyMapping.cs
- DataKeyPropertyAttribute.cs
- HiddenFieldPageStatePersister.cs
- RightsManagementPermission.cs
- WSFederationHttpSecurityMode.cs
- ObjectView.cs
- SkewTransform.cs
- XmlValidatingReader.cs
- Int32CAMarshaler.cs
- GatewayDefinition.cs
- EventSetterHandlerConverter.cs
- PresentationTraceSources.cs
- Permission.cs
- ProcessHostFactoryHelper.cs
- DataGridViewToolTip.cs
- AnnotationObservableCollection.cs
- SqlCachedBuffer.cs
- CompModHelpers.cs
- HtmlDocument.cs
- RangeValidator.cs
- SessionPageStatePersister.cs
- FactoryGenerator.cs
- ObjectView.cs
- ProfilePropertySettings.cs
- Events.cs
- HttpsHostedTransportConfiguration.cs
- Thread.cs
- ObjectDesignerDataSourceView.cs
- SendMailErrorEventArgs.cs
- SystemIcmpV6Statistics.cs
- WebPart.cs
- Size.cs
- LazyInitializer.cs
- RecordsAffectedEventArgs.cs
- DesignerTextWriter.cs
- HttpException.cs
- ServicePointManager.cs
- StaticFileHandler.cs
- XPathNavigator.cs
- xmlglyphRunInfo.cs
- NativeMethods.cs
- ListItemDetailViewAttribute.cs
- CompensationToken.cs
- MailDefinition.cs
- XNodeNavigator.cs
- DataSourceXmlSerializationAttribute.cs
- ConstNode.cs
- DesignerAdapterAttribute.cs
- XsltInput.cs
- glyphs.cs
- QueryOutputWriter.cs
- SystemEvents.cs
- LongSumAggregationOperator.cs
- ToolStripDropDownButton.cs
- CheckedListBox.cs
- MaterialGroup.cs
- SiteMapDataSource.cs
- ExceptionRoutedEventArgs.cs
- ISAPIRuntime.cs
- ToolStripSystemRenderer.cs
- SerializationInfoEnumerator.cs
- CryptoConfig.cs
- SafeEventLogReadHandle.cs
- CircleEase.cs
- VisualStates.cs
- ListenerPerfCounters.cs
- Pts.cs
- WebPartHeaderCloseVerb.cs
- UserControlCodeDomTreeGenerator.cs
- XPathMultyIterator.cs
- SBCSCodePageEncoding.cs
- MethodToken.cs
- XmlSchemaAnnotation.cs
- SqlLiftIndependentRowExpressions.cs
- HtmlInputPassword.cs
- UnicodeEncoding.cs
- XmlSchemaComplexContent.cs
- MediaScriptCommandRoutedEventArgs.cs
- RotationValidation.cs
- DataColumnSelectionConverter.cs
- ScriptIgnoreAttribute.cs
- FontStyles.cs
- ExtendedPropertyCollection.cs
- OrderPreservingPipeliningMergeHelper.cs
- NetworkAddressChange.cs
- LinqDataSourceView.cs
- Rfc4050KeyFormatter.cs
- FieldToken.cs
- WebControlsSection.cs
- SharedPersonalizationStateInfo.cs
- NetStream.cs
- TaskExceptionHolder.cs
- TraceUtility.cs
- InputBinder.cs
- BufferedReadStream.cs
- Menu.cs
- VisualStyleInformation.cs
- ShimAsPublicXamlType.cs