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
- PrimitiveXmlSerializers.cs
- ProjectionPruner.cs
- TextDecorationCollection.cs
- PageRanges.cs
- RMEnrollmentPage2.cs
- WebPartMenu.cs
- ConfigXmlElement.cs
- BitmapSizeOptions.cs
- GenericTypeParameterBuilder.cs
- Emitter.cs
- XmlnsCache.cs
- X509CertificateValidator.cs
- BrushValueSerializer.cs
- SqlBooleanMismatchVisitor.cs
- ConnectionPoint.cs
- ToolboxItemAttribute.cs
- DisposableCollectionWrapper.cs
- EntityDataSourceDesigner.cs
- UnknownWrapper.cs
- XmlSchemaRedefine.cs
- PaintEvent.cs
- Type.cs
- WhileDesigner.xaml.cs
- SpecialNameAttribute.cs
- Blend.cs
- ResourceReferenceExpression.cs
- Literal.cs
- RegexFCD.cs
- infer.cs
- FrameworkContextData.cs
- StrongNameIdentityPermission.cs
- HttpClientCertificate.cs
- LogEntryDeserializer.cs
- InvalidWMPVersionException.cs
- PasswordBoxAutomationPeer.cs
- ActivityBuilder.cs
- SqlCacheDependency.cs
- StreamWriter.cs
- GlobalizationSection.cs
- RsaSecurityToken.cs
- XomlDesignerLoader.cs
- XmlNodeChangedEventArgs.cs
- indexingfiltermarshaler.cs
- StyleHelper.cs
- codemethodreferenceexpression.cs
- CommonDialog.cs
- DataPagerCommandEventArgs.cs
- CodeCastExpression.cs
- DesignerAutoFormatCollection.cs
- smtpconnection.cs
- ArraySegment.cs
- StringUtil.cs
- ExpressionBuilder.cs
- Int16AnimationBase.cs
- FeatureSupport.cs
- PngBitmapEncoder.cs
- BindingCollection.cs
- ExpressionBindings.cs
- DSASignatureDeformatter.cs
- AttributeProviderAttribute.cs
- WmpBitmapEncoder.cs
- ScrollableControl.cs
- XmlText.cs
- GradientSpreadMethodValidation.cs
- SQLUtility.cs
- ScopelessEnumAttribute.cs
- DataGridTableCollection.cs
- PersonalizationStateInfo.cs
- TagPrefixCollection.cs
- SmtpException.cs
- EntityAdapter.cs
- GenericPrincipal.cs
- UserControlAutomationPeer.cs
- HwndSourceParameters.cs
- WebDescriptionAttribute.cs
- HttpCookie.cs
- UriWriter.cs
- ArrayListCollectionBase.cs
- QueryableFilterUserControl.cs
- ResourceType.cs
- OleDbDataAdapter.cs
- ISO2022Encoding.cs
- ForwardPositionQuery.cs
- EvidenceTypeDescriptor.cs
- SimplePropertyEntry.cs
- ToolStripPanelRow.cs
- AccessText.cs
- XamlFigureLengthSerializer.cs
- DataListAutoFormat.cs
- ObjectQuery_EntitySqlExtensions.cs
- Point3D.cs
- ExpressionEditorAttribute.cs
- OracleMonthSpan.cs
- hresults.cs
- DiagnosticStrings.cs
- SqlNode.cs
- ResXResourceReader.cs
- ToolStripSeparatorRenderEventArgs.cs
- Misc.cs
- XsdBuilder.cs