Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Utility / Maps.cs / 1305600 / Maps.cs
/****************************************************************************\ * * File: Maps.cs * * Description: * Contains specialized data structures for mapping a key to data. * * Copyright (C) 2002 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.Collections; using System.Windows; namespace MS.Utility { /***************************************************************************\ ***************************************************************************** * * DTypeMap (DType --> Object) * * Maps the first N used DependencyObject-derived types via an array * (low constant time lookup) for mapping. After which falls back on a * hash table. * * - Fastest gets and sets (normally single array access). * - Large memory footprint. * * Starting mapping is all map to null * ***************************************************************************** \***************************************************************************/ using MS.Internal.PresentationCore; [FriendAccessAllowed] // Built into Core, also used by Framework. internal class DTypeMap { public DTypeMap(int entryCount) { // Constant Time Lookup entries (array size) _entryCount = entryCount; _entries = new object[_entryCount]; _activeDTypes = new ItemStructList(128); } public object this[DependencyObjectType dType] { get { if (dType.Id < _entryCount) { return _entries[dType.Id]; } else { if (_overFlow != null) { return _overFlow[dType]; } return null; } } set { if (dType.Id < _entryCount) { _entries[dType.Id] = value; } else { if (_overFlow == null) { _overFlow = new Hashtable(); } _overFlow[dType] = value; } _activeDTypes.Add(dType); } } // Return list of non-null DType mappings public ItemStructList ActiveDTypes { get { return _activeDTypes; } } // Clear the data-structures to be able to start over public void Clear() { for (int i=0; i<_entryCount; i++) { _entries[i] = null; } for (int i=0; i<_activeDTypes.Count; i++) { _activeDTypes.List[i] = null; } if (_overFlow != null) { _overFlow.Clear(); } } private int _entryCount; private object[] _entries; private Hashtable _overFlow; private ItemStructList _activeDTypes; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /****************************************************************************\ * * File: Maps.cs * * Description: * Contains specialized data structures for mapping a key to data. * * Copyright (C) 2002 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.Collections; using System.Windows; namespace MS.Utility { /***************************************************************************\ ***************************************************************************** * * DTypeMap (DType --> Object) * * Maps the first N used DependencyObject-derived types via an array * (low constant time lookup) for mapping. After which falls back on a * hash table. * * - Fastest gets and sets (normally single array access). * - Large memory footprint. * * Starting mapping is all map to null * ***************************************************************************** \***************************************************************************/ using MS.Internal.PresentationCore; [FriendAccessAllowed] // Built into Core, also used by Framework. internal class DTypeMap { public DTypeMap(int entryCount) { // Constant Time Lookup entries (array size) _entryCount = entryCount; _entries = new object[_entryCount]; _activeDTypes = new ItemStructList (128); } public object this[DependencyObjectType dType] { get { if (dType.Id < _entryCount) { return _entries[dType.Id]; } else { if (_overFlow != null) { return _overFlow[dType]; } return null; } } set { if (dType.Id < _entryCount) { _entries[dType.Id] = value; } else { if (_overFlow == null) { _overFlow = new Hashtable(); } _overFlow[dType] = value; } _activeDTypes.Add(dType); } } // Return list of non-null DType mappings public ItemStructList ActiveDTypes { get { return _activeDTypes; } } // Clear the data-structures to be able to start over public void Clear() { for (int i=0; i<_entryCount; i++) { _entries[i] = null; } for (int i=0; i<_activeDTypes.Count; i++) { _activeDTypes.List[i] = null; } if (_overFlow != null) { _overFlow.Clear(); } } private int _entryCount; private object[] _entries; private Hashtable _overFlow; private ItemStructList _activeDTypes; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebServiceResponse.cs
- _OverlappedAsyncResult.cs
- ClientTargetSection.cs
- DefaultValueTypeConverter.cs
- ControllableStoryboardAction.cs
- UnionCqlBlock.cs
- SQLInt64.cs
- TextClipboardData.cs
- DataReaderContainer.cs
- GlyphTypeface.cs
- BufferModeSettings.cs
- EncoderParameter.cs
- TypedElement.cs
- ListenerElementsCollection.cs
- HTMLTextWriter.cs
- Html32TextWriter.cs
- PersonalizationState.cs
- PassportAuthentication.cs
- SqlRewriteScalarSubqueries.cs
- CharUnicodeInfo.cs
- MdiWindowListStrip.cs
- XmlIlVisitor.cs
- XmlConvert.cs
- AttachedPropertyInfo.cs
- CodeNamespaceCollection.cs
- SchemaCollectionPreprocessor.cs
- ChangePassword.cs
- LambdaCompiler.Lambda.cs
- XamlToRtfParser.cs
- XmlCDATASection.cs
- SingleAnimationUsingKeyFrames.cs
- RuleRef.cs
- Vector3DCollectionValueSerializer.cs
- DataGridColumnFloatingHeader.cs
- SerializationHelper.cs
- MaskedTextBox.cs
- DataViewSettingCollection.cs
- RegexCompilationInfo.cs
- MetadataSet.cs
- TableChangeProcessor.cs
- NamespaceCollection.cs
- FixedFlowMap.cs
- DependencySource.cs
- TypefaceMap.cs
- Span.cs
- SerializationSectionGroup.cs
- NetworkInterface.cs
- ModelUIElement3D.cs
- OutputBuffer.cs
- RawAppCommandInputReport.cs
- ObjectViewQueryResultData.cs
- ResourceDisplayNameAttribute.cs
- ContainerVisual.cs
- Menu.cs
- WebPermission.cs
- TemplatePartAttribute.cs
- NameScopePropertyAttribute.cs
- WCFModelStrings.Designer.cs
- ClassDataContract.cs
- DesignerVerbCollection.cs
- HyperlinkAutomationPeer.cs
- EdmItemError.cs
- LineServicesRun.cs
- ConfigurationValue.cs
- SamlAuthenticationStatement.cs
- ContentDisposition.cs
- NameValuePermission.cs
- Rethrow.cs
- TextSimpleMarkerProperties.cs
- HttpHandlersInstallComponent.cs
- TcpSocketManager.cs
- ColorMap.cs
- _SslSessionsCache.cs
- ActionMismatchAddressingException.cs
- Adorner.cs
- ConstraintCollection.cs
- UInt64.cs
- RetrieveVirtualItemEventArgs.cs
- DateTimeStorage.cs
- AttributeTableBuilder.cs
- AsmxEndpointPickerExtension.cs
- TabletDeviceInfo.cs
- SqlClientMetaDataCollectionNames.cs
- Viewport3DVisual.cs
- ColorMatrix.cs
- FormsAuthenticationCredentials.cs
- CapabilitiesPattern.cs
- FormsAuthenticationTicket.cs
- SQLUtility.cs
- ServiceSecurityContext.cs
- ObjectStateManager.cs
- StringFunctions.cs
- XmlDesignerDataSourceView.cs
- AmbientValueAttribute.cs
- UnsafeNativeMethods.cs
- __Filters.cs
- ChineseLunisolarCalendar.cs
- PropertyCollection.cs
- ConstructorArgumentAttribute.cs
- SelectionItemProviderWrapper.cs