Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- InvokeProviderWrapper.cs
- DbConnectionPoolGroup.cs
- Rotation3D.cs
- WebPartConnectionsDisconnectVerb.cs
- QilScopedVisitor.cs
- Configuration.cs
- DocumentPaginator.cs
- CounterSetInstanceCounterDataSet.cs
- XmlSerializableReader.cs
- ConnectionPointConverter.cs
- DataGridAddNewRow.cs
- FindCriteria11.cs
- ToolStripOverflowButton.cs
- RowToFieldTransformer.cs
- CheckPair.cs
- DynamicMetaObject.cs
- SiteMapDataSource.cs
- ExceptionUtility.cs
- BitmapCodecInfo.cs
- Blend.cs
- Schema.cs
- NodeCounter.cs
- Model3DGroup.cs
- BitConverter.cs
- ExpressionBuilder.cs
- DebuggerAttributes.cs
- HttpHandlerActionCollection.cs
- SkinBuilder.cs
- SignatureHelper.cs
- StoryFragments.cs
- XmlResolver.cs
- ProcessModelSection.cs
- WorkflowDurableInstance.cs
- ViewValidator.cs
- EnumDataContract.cs
- BitmapVisualManager.cs
- ComponentResourceKeyConverter.cs
- MessageSmuggler.cs
- ResXResourceSet.cs
- XamlTypeMapper.cs
- MergePropertyDescriptor.cs
- DecimalStorage.cs
- MimeTypeMapper.cs
- XmlSiteMapProvider.cs
- ColorIndependentAnimationStorage.cs
- HttpListenerException.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ConnectionManagementSection.cs
- WebControl.cs
- URIFormatException.cs
- SerializerProvider.cs
- CodeStatement.cs
- IsolationInterop.cs
- GridViewUpdatedEventArgs.cs
- TriggerAction.cs
- DataGridViewRow.cs
- XmlReaderSettings.cs
- MainMenu.cs
- EmptyStringExpandableObjectConverter.cs
- ArrayConverter.cs
- HtmlTableCellCollection.cs
- ToolStripSystemRenderer.cs
- BitmapData.cs
- XmlSortKey.cs
- OrderedHashRepartitionStream.cs
- CommandDesigner.cs
- XmlBaseWriter.cs
- SystemInfo.cs
- MessageQueue.cs
- SnapLine.cs
- DBSchemaTable.cs
- GridProviderWrapper.cs
- StructuredType.cs
- XmlComplianceUtil.cs
- SocketPermission.cs
- CrossContextChannel.cs
- DocumentGrid.cs
- BamlStream.cs
- UIPermission.cs
- IsolatedStorageFile.cs
- HandlerFactoryCache.cs
- StrokeFIndices.cs
- WebCodeGenerator.cs
- ServiceProviders.cs
- CommonObjectSecurity.cs
- unsafeIndexingFilterStream.cs
- KeyValuePairs.cs
- WebPartMenuStyle.cs
- TypedRowHandler.cs
- SHA1Managed.cs
- Geometry3D.cs
- SelectorItemAutomationPeer.cs
- Helpers.cs
- SourceFileBuildProvider.cs
- ConfigurationManagerHelperFactory.cs
- ViewPort3D.cs
- XmlSigningNodeWriter.cs
- FontNamesConverter.cs
- ScrollViewerAutomationPeer.cs
- CompositeCollectionView.cs