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
- MembershipSection.cs
- TargetParameterCountException.cs
- StandardBindingCollectionElement.cs
- InheritanceContextHelper.cs
- DataGridViewComboBoxColumn.cs
- EmbossBitmapEffect.cs
- WeakHashtable.cs
- DataGridBoundColumn.cs
- ObjectViewFactory.cs
- DBNull.cs
- WebPageTraceListener.cs
- RegistrySecurity.cs
- CleanUpVirtualizedItemEventArgs.cs
- WebPartManagerInternals.cs
- LinkArea.cs
- InputScope.cs
- ToolStripDropDownClosingEventArgs.cs
- sqlmetadatafactory.cs
- XmlSigningNodeWriter.cs
- IODescriptionAttribute.cs
- EmptyStringExpandableObjectConverter.cs
- GiveFeedbackEventArgs.cs
- ImageConverter.cs
- WsdlBuildProvider.cs
- Calendar.cs
- GreenMethods.cs
- ReadOnlyCollection.cs
- NameSpaceExtractor.cs
- RoleService.cs
- TraceRecords.cs
- TextRangeEditLists.cs
- AssociationSetEnd.cs
- SqlReorderer.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- StorageAssociationTypeMapping.cs
- ResourceAttributes.cs
- XmlSignificantWhitespace.cs
- ServerValidateEventArgs.cs
- Trace.cs
- VisualStyleElement.cs
- DetailsViewRow.cs
- SHA256CryptoServiceProvider.cs
- _Events.cs
- IResourceProvider.cs
- SystemIPInterfaceProperties.cs
- EntityContainerAssociationSet.cs
- remotingproxy.cs
- StringFormat.cs
- SerializationInfo.cs
- RadioButtonList.cs
- Point4D.cs
- TextElement.cs
- OptimisticConcurrencyException.cs
- SpellerInterop.cs
- SmtpNegotiateAuthenticationModule.cs
- IISMapPath.cs
- HostedElements.cs
- Floater.cs
- SqlErrorCollection.cs
- Cursors.cs
- EventMappingSettings.cs
- BaseCodePageEncoding.cs
- Tracer.cs
- HtmlEncodedRawTextWriter.cs
- BuildProviderUtils.cs
- HttpListenerPrefixCollection.cs
- SerializableTypeCodeDomSerializer.cs
- Base64Stream.cs
- UIElement.cs
- HttpFileCollection.cs
- DecoderFallback.cs
- X509Chain.cs
- Calendar.cs
- DbBuffer.cs
- ReturnEventArgs.cs
- GC.cs
- ToolStripPanelRow.cs
- DecodeHelper.cs
- HttpListenerRequest.cs
- ColumnPropertiesGroup.cs
- UnderstoodHeaders.cs
- InvokeGenerator.cs
- GridViewSortEventArgs.cs
- WebServiceTypeData.cs
- Clipboard.cs
- Bold.cs
- DesignerAutoFormatStyle.cs
- RegexRunnerFactory.cs
- MultiAsyncResult.cs
- HTTPNotFoundHandler.cs
- PagesSection.cs
- SoapFault.cs
- CodeCompiler.cs
- MaskedTextBox.cs
- ProviderConnectionPointCollection.cs
- ToolStripScrollButton.cs
- BitStack.cs
- MarkupCompilePass2.cs
- Converter.cs
- UrlAuthorizationModule.cs