Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- WebServiceMethodData.cs
- ObjectDataSource.cs
- GraphicsContext.cs
- DataGridViewCellStyleConverter.cs
- webbrowsersite.cs
- FontSizeConverter.cs
- FilterableAttribute.cs
- HttpListenerRequest.cs
- ProviderBase.cs
- SyndicationPerson.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- HtmlHistory.cs
- DependentList.cs
- SchemaNames.cs
- MetadataArtifactLoaderFile.cs
- ListBoxDesigner.cs
- WebUtil.cs
- Classification.cs
- IsolatedStorage.cs
- MyContact.cs
- HiddenFieldDesigner.cs
- DropDownList.cs
- SponsorHelper.cs
- QilChoice.cs
- AcceleratedTokenProvider.cs
- UserValidatedEventArgs.cs
- TextFindEngine.cs
- TextChangedEventArgs.cs
- StreamWriter.cs
- HashCoreRequest.cs
- CollectionViewGroup.cs
- SafeNativeMethods.cs
- ResourceManagerWrapper.cs
- ConfigurationStrings.cs
- ObjectReaderCompiler.cs
- PhonemeEventArgs.cs
- BaseUriHelper.cs
- GroupDescription.cs
- TableAdapterManagerHelper.cs
- TrustLevelCollection.cs
- ActiveXContainer.cs
- SequentialWorkflowHeaderFooter.cs
- UserPreferenceChangedEventArgs.cs
- FixedTextBuilder.cs
- SimpleFileLog.cs
- DataTableExtensions.cs
- EventLogPermissionAttribute.cs
- DataGridViewIntLinkedList.cs
- SQLInt16.cs
- Transactions.cs
- IPEndPoint.cs
- BoundingRectTracker.cs
- Int32CollectionValueSerializer.cs
- Path.cs
- ResourceProperty.cs
- SecurityException.cs
- NameValueConfigurationElement.cs
- _IPv6Address.cs
- EncoderExceptionFallback.cs
- IndicFontClient.cs
- WCFServiceClientProxyGenerator.cs
- Subset.cs
- ProxyElement.cs
- CodePrimitiveExpression.cs
- RefExpr.cs
- SpeechUI.cs
- PropertiesTab.cs
- HtmlButton.cs
- DateTimeUtil.cs
- XmlSchemaNotation.cs
- TypeBuilderInstantiation.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ClientData.cs
- XmlAutoDetectWriter.cs
- TextOptionsInternal.cs
- BreakRecordTable.cs
- StateInitializationDesigner.cs
- x509store.cs
- SourceItem.cs
- ReturnEventArgs.cs
- Matrix.cs
- UnicodeEncoding.cs
- DesignerHost.cs
- CustomAttributeBuilder.cs
- DataTableCollection.cs
- DataSourceCacheDurationConverter.cs
- RtType.cs
- QilTargetType.cs
- DataGridViewCellFormattingEventArgs.cs
- WebPartZoneBase.cs
- ListCollectionView.cs
- TcpStreams.cs
- DBParameter.cs
- SqlProviderManifest.cs
- PictureBox.cs
- CLRBindingWorker.cs
- SrgsSubset.cs
- ClientRoleProvider.cs
- PagesSection.cs
- DataGridViewCellStyleConverter.cs