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
- TextTreeInsertUndoUnit.cs
- TextServicesCompartmentEventSink.cs
- EntityCollection.cs
- DefaultSettingsSection.cs
- SessionSymmetricTransportSecurityProtocolFactory.cs
- Memoizer.cs
- DecimalConstantAttribute.cs
- InkCollectionBehavior.cs
- ConfigurationSchemaErrors.cs
- TableLayoutStyleCollection.cs
- ModelItemDictionary.cs
- StreamGeometry.cs
- NGCSerializerAsync.cs
- RelationshipManager.cs
- AppDomainGrammarProxy.cs
- TemplatePagerField.cs
- DebuggerAttributes.cs
- XmlSerializableWriter.cs
- GreenMethods.cs
- InternalCache.cs
- NativeActivityMetadata.cs
- ReferencedCollectionType.cs
- DateTime.cs
- XhtmlBasicPageAdapter.cs
- EmptyEnumerator.cs
- TreeNodeCollectionEditor.cs
- XmlWrappingReader.cs
- SqlLiftIndependentRowExpressions.cs
- UTF32Encoding.cs
- ValidatorCollection.cs
- LZCodec.cs
- BitmapImage.cs
- XmlObjectSerializerReadContextComplexJson.cs
- TextEmbeddedObject.cs
- TrackingStringDictionary.cs
- ExtenderControl.cs
- SvcMapFileSerializer.cs
- FormViewDeletedEventArgs.cs
- GeneralTransformGroup.cs
- ModuleConfigurationInfo.cs
- DataGridCommandEventArgs.cs
- DesignColumnCollection.cs
- OuterGlowBitmapEffect.cs
- RsaKeyGen.cs
- InstanceView.cs
- TextProperties.cs
- AncestorChangedEventArgs.cs
- XmlC14NWriter.cs
- FlowDocumentFormatter.cs
- HashHelper.cs
- ToolStripSystemRenderer.cs
- PreviewPageInfo.cs
- VectorCollectionConverter.cs
- XmlConverter.cs
- SessionPageStateSection.cs
- HtmlHead.cs
- HttpCapabilitiesEvaluator.cs
- SchemaImporterExtensionsSection.cs
- Empty.cs
- ConnectionStringsExpressionBuilder.cs
- DataSetMappper.cs
- EntitySqlQueryCacheKey.cs
- DictionarySectionHandler.cs
- ObjectDataSource.cs
- VisualStateManager.cs
- PrintPreviewControl.cs
- MediaTimeline.cs
- ServiceCredentialsElement.cs
- _ListenerRequestStream.cs
- DataGridViewAdvancedBorderStyle.cs
- WebPartVerbsEventArgs.cs
- LocatorBase.cs
- CultureInfo.cs
- GestureRecognizer.cs
- EventLogPermissionEntry.cs
- X509ChainElement.cs
- URLIdentityPermission.cs
- StyleCollection.cs
- Gdiplus.cs
- AccessibleObject.cs
- SemaphoreFullException.cs
- SqlMethodAttribute.cs
- ToolStripSplitButton.cs
- URLAttribute.cs
- UiaCoreApi.cs
- Vector.cs
- TcpClientChannel.cs
- MergeFailedEvent.cs
- InternalTypeHelper.cs
- HtmlWindow.cs
- BitmapPalette.cs
- DataSourceSelectArguments.cs
- OpenFileDialog.cs
- BoundField.cs
- CursorInteropHelper.cs
- SecurityResources.cs
- Knowncolors.cs
- MLangCodePageEncoding.cs
- SrgsElementFactory.cs
- MatrixTransform3D.cs