Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Shared / MS / Utility / Maps.cs / 1 / 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
- BitmapEffectGroup.cs
- ToolStripLocationCancelEventArgs.cs
- UInt64Converter.cs
- ComponentSerializationService.cs
- HttpCookieCollection.cs
- DrawingServices.cs
- COM2ExtendedBrowsingHandler.cs
- SplineQuaternionKeyFrame.cs
- SystemIPv4InterfaceProperties.cs
- DockPanel.cs
- StructuredTypeInfo.cs
- NavigationPropertySingletonExpression.cs
- CheckBoxList.cs
- XsdCachingReader.cs
- DependencyPropertyConverter.cs
- TextViewBase.cs
- NetworkCredential.cs
- DataComponentMethodGenerator.cs
- MaskDescriptor.cs
- DataBoundControlParameterTarget.cs
- Native.cs
- ObjectStorage.cs
- ConvertEvent.cs
- ComboBoxRenderer.cs
- CharacterBufferReference.cs
- SoapDocumentMethodAttribute.cs
- DateBoldEvent.cs
- TextEncodedRawTextWriter.cs
- DbDeleteCommandTree.cs
- TypeConverterAttribute.cs
- SharedPerformanceCounter.cs
- DomainUpDown.cs
- BamlStream.cs
- VSWCFServiceContractGenerator.cs
- GroupBoxRenderer.cs
- FixedHighlight.cs
- PropertyGridCommands.cs
- Vector3D.cs
- BuildManagerHost.cs
- ManipulationPivot.cs
- RoleGroupCollection.cs
- CompiledRegexRunner.cs
- TextBoxBase.cs
- MimeParameters.cs
- OrderPreservingMergeHelper.cs
- ObjectListFieldsPage.cs
- Transform.cs
- OleAutBinder.cs
- rsa.cs
- XmlSchemaAttributeGroupRef.cs
- FillBehavior.cs
- SHA384.cs
- X509PeerCertificateElement.cs
- PrintPreviewGraphics.cs
- Line.cs
- EntityClientCacheKey.cs
- InfoCardClaimCollection.cs
- HitTestFilterBehavior.cs
- Encoder.cs
- DynamicMethod.cs
- HashHelper.cs
- PropertyKey.cs
- AssemblyHash.cs
- DeliveryStrategy.cs
- AsyncOperation.cs
- PerfService.cs
- CrossSiteScriptingValidation.cs
- BitmapMetadataEnumerator.cs
- FtpRequestCacheValidator.cs
- EntityDataSourceContainerNameItem.cs
- MetadataCache.cs
- ActivityCodeDomSerializer.cs
- DataGridViewHeaderCell.cs
- PreviewPrintController.cs
- NumberFormatter.cs
- TraceFilter.cs
- OracleBFile.cs
- SerializableAttribute.cs
- HtmlTitle.cs
- DataGridRowDetailsEventArgs.cs
- ImageField.cs
- StsCommunicationException.cs
- TextViewSelectionProcessor.cs
- Merger.cs
- TimelineGroup.cs
- VectorCollection.cs
- EnumConverter.cs
- TraceFilter.cs
- Transactions.cs
- BaseHashHelper.cs
- FigureHelper.cs
- ManualResetEventSlim.cs
- WebPartUtil.cs
- CombinedHttpChannel.cs
- StringDictionaryCodeDomSerializer.cs
- HtmlTableRow.cs
- DataColumnCollection.cs
- PathSegment.cs
- ServiceHostFactory.cs
- InfiniteTimeSpanConverter.cs