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
- PolyLineSegment.cs
- DesignerExtenders.cs
- ShapingWorkspace.cs
- XamlClipboardData.cs
- EditorAttribute.cs
- View.cs
- VersionValidator.cs
- ImageButton.cs
- COM2ExtendedBrowsingHandler.cs
- XmlChildEnumerator.cs
- EntityWrapper.cs
- DrawingCollection.cs
- BuildManager.cs
- MachineKeySection.cs
- TemplateBindingExtensionConverter.cs
- WinEventQueueItem.cs
- RSAPKCS1SignatureFormatter.cs
- LassoHelper.cs
- DbParameterHelper.cs
- Delegate.cs
- DateTimeSerializationSection.cs
- XsltQilFactory.cs
- FlowLayoutPanelDesigner.cs
- ReflectionPermission.cs
- Crc32.cs
- SecurityContext.cs
- Tablet.cs
- DataBindingValueUIHandler.cs
- HealthMonitoringSectionHelper.cs
- OracleTimeSpan.cs
- ProxyDataContractResolver.cs
- DiscoveryDocumentLinksPattern.cs
- RegistryPermission.cs
- RotateTransform3D.cs
- StatusBarDrawItemEvent.cs
- SimpleBitVector32.cs
- DtrList.cs
- DataSysAttribute.cs
- SafePEFileHandle.cs
- ForwardPositionQuery.cs
- OpenFileDialog.cs
- JoinCqlBlock.cs
- CheckoutException.cs
- SslStream.cs
- QualifierSet.cs
- BitFlagsGenerator.cs
- TcpTransportManager.cs
- MouseEvent.cs
- ForwardPositionQuery.cs
- ThreadSafeMessageFilterTable.cs
- PointAnimationUsingPath.cs
- QueryOperationResponseOfT.cs
- PropertyGeneratedEventArgs.cs
- OutputCacheModule.cs
- ServiceSecurityAuditElement.cs
- ValidatingCollection.cs
- VirtualPathUtility.cs
- FieldNameLookup.cs
- Behavior.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- IndexingContentUnit.cs
- ListBoxItem.cs
- CollectionDataContractAttribute.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- ListViewTableCell.cs
- NameTable.cs
- isolationinterop.cs
- DesignerAttribute.cs
- XPathEmptyIterator.cs
- KnownIds.cs
- SqlLiftIndependentRowExpressions.cs
- EventRoute.cs
- DesignerExtenders.cs
- MobileTextWriter.cs
- IndentTextWriter.cs
- EntityViewGenerationConstants.cs
- DaylightTime.cs
- FlowLayout.cs
- ConfigurationConverterBase.cs
- PrintSystemException.cs
- ClientType.cs
- BaseCodeDomTreeGenerator.cs
- MessageDecoder.cs
- ClosableStream.cs
- BooleanFunctions.cs
- RadialGradientBrush.cs
- ConnectionStringEditor.cs
- VBIdentifierTrimConverter.cs
- ListViewInsertEventArgs.cs
- CqlParserHelpers.cs
- VirtualPath.cs
- SqlCommand.cs
- RectangleGeometry.cs
- XmlSchemaSet.cs
- HtmlTernaryTree.cs
- RemotingServices.cs
- NGCSerializerAsync.cs
- ExpressionsCollectionConverter.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- DataBindingHandlerAttribute.cs