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
- ModifierKeysConverter.cs
- SplitterCancelEvent.cs
- MobileContainerDesigner.cs
- HTMLTagNameToTypeMapper.cs
- IntSecurity.cs
- Win32SafeHandles.cs
- DataControlCommands.cs
- FormsAuthentication.cs
- TouchFrameEventArgs.cs
- Console.cs
- SqlDataSource.cs
- DefaultMemberAttribute.cs
- SqlLiftIndependentRowExpressions.cs
- versioninfo.cs
- HandlerFactoryCache.cs
- BoolExpr.cs
- ThreadInterruptedException.cs
- ConfigsHelper.cs
- ExcCanonicalXml.cs
- ZipIOLocalFileHeader.cs
- HideDisabledControlAdapter.cs
- WebResourceUtil.cs
- COM2PropertyPageUITypeConverter.cs
- ListBase.cs
- Assert.cs
- LongCountAggregationOperator.cs
- ServiceModelConfiguration.cs
- CacheChildrenQuery.cs
- ThreadStartException.cs
- SubstitutionList.cs
- TextModifierScope.cs
- DataSourceXmlClassAttribute.cs
- SafeLibraryHandle.cs
- LinkDesigner.cs
- DataGridDetailsPresenter.cs
- RootBrowserWindow.cs
- GridView.cs
- OpCodes.cs
- XsltContext.cs
- ExpandSegment.cs
- ViewLoader.cs
- CodeExpressionStatement.cs
- ButtonField.cs
- FastPropertyAccessor.cs
- XmlNamespaceManager.cs
- Margins.cs
- BridgeDataRecord.cs
- DateRangeEvent.cs
- IdentityNotMappedException.cs
- MetadataCache.cs
- AssociationSetMetadata.cs
- PathSegmentCollection.cs
- SqlCacheDependencyDatabase.cs
- TextFormatter.cs
- HttpCacheParams.cs
- StandardTransformFactory.cs
- WebPartMenu.cs
- PeerContact.cs
- ColumnMap.cs
- StateWorkerRequest.cs
- DurableRuntimeValidator.cs
- CellParagraph.cs
- SHA384Managed.cs
- DataGridTextColumn.cs
- AbstractSvcMapFileLoader.cs
- Error.cs
- ClientScriptManager.cs
- TextEffect.cs
- CaseExpr.cs
- XmlArrayAttribute.cs
- PriorityItem.cs
- XpsS0ValidatingLoader.cs
- SByteConverter.cs
- SettingsAttributes.cs
- DataTableNewRowEvent.cs
- WorkflowView.cs
- HttpCapabilitiesSectionHandler.cs
- MetadataItem.cs
- ComboBox.cs
- FontFamilyConverter.cs
- SourceLineInfo.cs
- FactoryMaker.cs
- ComAdminInterfaces.cs
- SemaphoreFullException.cs
- SqlMultiplexer.cs
- TextElement.cs
- SerialPort.cs
- ValidationService.cs
- FilteredXmlReader.cs
- FixedPageAutomationPeer.cs
- UiaCoreApi.cs
- UrlAuthFailedErrorFormatter.cs
- CryptoApi.cs
- NestedContainer.cs
- ToolStripArrowRenderEventArgs.cs
- SettingsSavedEventArgs.cs
- LazyTextWriterCreator.cs
- FrameworkElement.cs
- MediaTimeline.cs
- RewritingValidator.cs