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
- InheritanceAttribute.cs
- ComplexBindingPropertiesAttribute.cs
- PackUriHelper.cs
- AutomationPeer.cs
- StreamingContext.cs
- PageClientProxyGenerator.cs
- MailSettingsSection.cs
- SlipBehavior.cs
- HelpProvider.cs
- StructuredTypeEmitter.cs
- EntityRecordInfo.cs
- HyperLink.cs
- DataTableReader.cs
- SignedXmlDebugLog.cs
- Calendar.cs
- PresentationAppDomainManager.cs
- MarkupExtensionReturnTypeAttribute.cs
- EndpointAddressMessageFilterTable.cs
- DrawingBrush.cs
- GlobalizationSection.cs
- AnnotationAuthorChangedEventArgs.cs
- DbConnectionPoolOptions.cs
- GradientStop.cs
- AttributeProviderAttribute.cs
- UnsafeNativeMethodsMilCoreApi.cs
- EventMemberCodeDomSerializer.cs
- LinqDataView.cs
- OrderByLifter.cs
- _BufferOffsetSize.cs
- FontNameConverter.cs
- WebPartMovingEventArgs.cs
- Int32.cs
- SqlNodeAnnotations.cs
- EFDataModelProvider.cs
- XmlSchemaObject.cs
- IFlowDocumentViewer.cs
- ScrollBar.cs
- HttpHandlerAction.cs
- columnmapfactory.cs
- DataGridItemEventArgs.cs
- Compiler.cs
- JapaneseCalendar.cs
- PathSegmentCollection.cs
- DataGridCheckBoxColumn.cs
- SchemaMerger.cs
- ZipIOLocalFileHeader.cs
- MainMenu.cs
- Literal.cs
- TagPrefixAttribute.cs
- prompt.cs
- BitmapEffect.cs
- UniqueID.cs
- Attributes.cs
- UrlMappingsSection.cs
- FactoryGenerator.cs
- Point3DCollectionConverter.cs
- ArraySortHelper.cs
- ModuleBuilderData.cs
- PenThreadPool.cs
- QueryComponents.cs
- StringInfo.cs
- PageBuildProvider.cs
- SignedPkcs7.cs
- BitStream.cs
- Visual3DCollection.cs
- UriScheme.cs
- DescendantBaseQuery.cs
- OleDbParameterCollection.cs
- InternalReceiveMessage.cs
- ToolBarButtonDesigner.cs
- SHA384.cs
- SerializationHelper.cs
- DataServiceRequestException.cs
- SpotLight.cs
- ConstrainedDataObject.cs
- ProfileSection.cs
- RepeaterItemEventArgs.cs
- ErasingStroke.cs
- ThemeDictionaryExtension.cs
- _BufferOffsetSize.cs
- XmlSchemaImport.cs
- _LocalDataStoreMgr.cs
- StylusPointProperties.cs
- SmtpTransport.cs
- EdmFunction.cs
- DataTableNameHandler.cs
- IgnoreDeviceFilterElementCollection.cs
- FixedSOMTableRow.cs
- DateTime.cs
- DescendentsWalkerBase.cs
- TreeView.cs
- relpropertyhelper.cs
- ProxyGenerationError.cs
- RuleDefinitions.cs
- EncodingTable.cs
- dataobject.cs
- HttpPostedFile.cs
- PartManifestEntry.cs
- DockPanel.cs
- DesignTimeVisibleAttribute.cs