Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataSourceCacheDurationConverter.cs
- DataGridColumnHeaderCollection.cs
- XXXInfos.cs
- ExecutedRoutedEventArgs.cs
- GlyphsSerializer.cs
- SystemInfo.cs
- WebPartExportVerb.cs
- ComponentChangingEvent.cs
- UriTemplate.cs
- DataMisalignedException.cs
- EncryptedHeaderXml.cs
- InstanceNotReadyException.cs
- ICspAsymmetricAlgorithm.cs
- BooleanSwitch.cs
- SqlSupersetValidator.cs
- ResourceDictionaryCollection.cs
- EasingQuaternionKeyFrame.cs
- AdRotator.cs
- _TLSstream.cs
- PointLightBase.cs
- NonClientArea.cs
- GenerateHelper.cs
- PropertyKey.cs
- ProcessHostMapPath.cs
- ComboBoxRenderer.cs
- OdbcParameterCollection.cs
- ClockGroup.cs
- FixedDocumentPaginator.cs
- ReflectionHelper.cs
- TemplateEditingFrame.cs
- Int32.cs
- ImplicitInputBrush.cs
- Solver.cs
- RIPEMD160.cs
- WeakReference.cs
- NumericUpDownAccelerationCollection.cs
- BasePattern.cs
- DataGridViewDataConnection.cs
- PolicyAssertionCollection.cs
- DynamicPhysicalDiscoSearcher.cs
- TerminateSequenceResponse.cs
- PersistencePipeline.cs
- RenderingBiasValidation.cs
- ExceptionTrace.cs
- ObservableCollection.cs
- AppDomainManager.cs
- SiteMapHierarchicalDataSourceView.cs
- TextTreeFixupNode.cs
- TcpServerChannel.cs
- StateElementCollection.cs
- SynchronizationContext.cs
- SqlClientFactory.cs
- CachedTypeface.cs
- ExpressionBuilder.cs
- XsdBuildProvider.cs
- EntityTypeEmitter.cs
- EditBehavior.cs
- PreservationFileReader.cs
- ReadWriteObjectLock.cs
- DBConnectionString.cs
- DisplayNameAttribute.cs
- ResourceDescriptionAttribute.cs
- MissingMethodException.cs
- XamlFxTrace.cs
- updatecommandorderer.cs
- UnsafeMethods.cs
- PropertyIDSet.cs
- Type.cs
- RowParagraph.cs
- BitmapScalingModeValidation.cs
- unitconverter.cs
- NonClientArea.cs
- InputLangChangeRequestEvent.cs
- Padding.cs
- DependsOnAttribute.cs
- SortDescriptionCollection.cs
- HitTestFilterBehavior.cs
- XmlReturnReader.cs
- LeafCellTreeNode.cs
- Vector3DValueSerializer.cs
- COMException.cs
- Compilation.cs
- CLSCompliantAttribute.cs
- CodeMemberProperty.cs
- AsyncOperationContext.cs
- TraversalRequest.cs
- FusionWrap.cs
- TableAutomationPeer.cs
- DataColumnPropertyDescriptor.cs
- TemplatedAdorner.cs
- NotImplementedException.cs
- Gdiplus.cs
- EdmComplexPropertyAttribute.cs
- Types.cs
- FtpWebRequest.cs
- hresults.cs
- HtmlElement.cs
- XmlMemberMapping.cs
- CompoundFileDeflateTransform.cs
- SmiGettersStream.cs