Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Common / internal / materialization / shaperfactory.cs / 3 / 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
- DataGridDetailsPresenter.cs
- GetWinFXPath.cs
- XmlSerializationWriter.cs
- StrongNameKeyPair.cs
- TcpAppDomainProtocolHandler.cs
- DetailsViewCommandEventArgs.cs
- WebCategoryAttribute.cs
- EncoderExceptionFallback.cs
- CacheMode.cs
- ArrangedElement.cs
- GenerateScriptTypeAttribute.cs
- Parallel.cs
- filewebresponse.cs
- ListBindingHelper.cs
- ToolStripDesignerAvailabilityAttribute.cs
- CharKeyFrameCollection.cs
- CdpEqualityComparer.cs
- DialogWindow.cs
- FunctionParameter.cs
- TreeView.cs
- PerformanceCounters.cs
- AccessViolationException.cs
- CodeRemoveEventStatement.cs
- WorkflowTransactionOptions.cs
- BitmapCodecInfoInternal.cs
- DetailsViewInsertEventArgs.cs
- QuerySetOp.cs
- SimpleColumnProvider.cs
- UIElement3D.cs
- X509Extension.cs
- MachineKeyConverter.cs
- RawStylusInput.cs
- DependentList.cs
- ObjectCacheHost.cs
- BamlVersionHeader.cs
- LocatorPart.cs
- DbSetClause.cs
- UIElementHelper.cs
- HeaderedContentControl.cs
- NodeLabelEditEvent.cs
- ArgumentElement.cs
- ColumnProvider.cs
- RuntimeConfigLKG.cs
- MaterializeFromAtom.cs
- XPathDocumentBuilder.cs
- WhitespaceRule.cs
- VSWCFServiceContractGenerator.cs
- ServiceRouteHandler.cs
- bidPrivateBase.cs
- DeviceFiltersSection.cs
- Focus.cs
- FloatAverageAggregationOperator.cs
- LocalizedNameDescriptionPair.cs
- SchemaCollectionPreprocessor.cs
- SqlTypeConverter.cs
- Solver.cs
- JavaScriptObjectDeserializer.cs
- CurrencyWrapper.cs
- GACMembershipCondition.cs
- StrongNameKeyPair.cs
- InternalResources.cs
- ContractDescription.cs
- CssClassPropertyAttribute.cs
- EtwTrackingParticipant.cs
- SequentialOutput.cs
- ClientRuntimeConfig.cs
- SqlDataSourceParameterParser.cs
- LinkedResourceCollection.cs
- FormsAuthentication.cs
- EntityDesignerDataSourceView.cs
- TypeConvertions.cs
- StringFreezingAttribute.cs
- QueueAccessMode.cs
- UiaCoreApi.cs
- SerializationSectionGroup.cs
- CharConverter.cs
- DataBoundControlHelper.cs
- LinkedResourceCollection.cs
- HttpFileCollection.cs
- XPathExpr.cs
- OutputScopeManager.cs
- XsdDuration.cs
- SafeProcessHandle.cs
- TextAdaptor.cs
- CallbackHandler.cs
- DisplayMemberTemplateSelector.cs
- Section.cs
- MenuItemAutomationPeer.cs
- NetDataContractSerializer.cs
- ActivityExecutorOperation.cs
- KeyEventArgs.cs
- DocumentPageHost.cs
- QuotedPrintableStream.cs
- KeyGestureConverter.cs
- ViewValidator.cs
- VirtualizingStackPanel.cs
- PropertyDescriptor.cs
- BooleanAnimationBase.cs
- Timer.cs
- SessionIDManager.cs