Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- StatusBarAutomationPeer.cs
- SoapEnumAttribute.cs
- EncryptedData.cs
- CommandField.cs
- SystemNetworkInterface.cs
- MatrixTransform3D.cs
- RowUpdatedEventArgs.cs
- XmlSchemaObjectCollection.cs
- safelinkcollection.cs
- AssemblyNameProxy.cs
- LinkButton.cs
- XPathAxisIterator.cs
- TimerExtension.cs
- GetParentChain.cs
- CodeExporter.cs
- InputScope.cs
- SHA384Managed.cs
- ConfigXmlWhitespace.cs
- DocumentOrderComparer.cs
- SqlComparer.cs
- OrderedParallelQuery.cs
- RefreshPropertiesAttribute.cs
- DynamicPropertyReader.cs
- NamespaceEmitter.cs
- VerticalAlignConverter.cs
- PeerCollaboration.cs
- DataKeyCollection.cs
- Ticks.cs
- BrowserInteropHelper.cs
- MetadataPropertyAttribute.cs
- RenderTargetBitmap.cs
- TraversalRequest.cs
- PopupRootAutomationPeer.cs
- ListViewUpdateEventArgs.cs
- DoubleMinMaxAggregationOperator.cs
- EnterpriseServicesHelper.cs
- TaskHelper.cs
- CommandHelpers.cs
- DataGridViewButtonColumn.cs
- FlagsAttribute.cs
- FontNameConverter.cs
- FormViewModeEventArgs.cs
- HwndSubclass.cs
- RTLAwareMessageBox.cs
- SmtpMail.cs
- DrawingCollection.cs
- EventBuilder.cs
- SqlAliaser.cs
- ElementUtil.cs
- ParenthesizePropertyNameAttribute.cs
- Errors.cs
- ByteConverter.cs
- OutputScope.cs
- CapiSafeHandles.cs
- EnumUnknown.cs
- Activator.cs
- OutputScope.cs
- ResourceContainer.cs
- SqlDataSourceStatusEventArgs.cs
- ListBoxChrome.cs
- NamespaceMapping.cs
- GraphicsPathIterator.cs
- DirectoryInfo.cs
- TraceContextRecord.cs
- StrokeCollectionDefaultValueFactory.cs
- X509CertificateStore.cs
- InternalTransaction.cs
- XslTransform.cs
- CodeSnippetTypeMember.cs
- TiffBitmapDecoder.cs
- BitmapScalingModeValidation.cs
- IApplicationTrustManager.cs
- TreeNodeEventArgs.cs
- RadioButtonList.cs
- TreeView.cs
- WorkflowFormatterBehavior.cs
- CodePageUtils.cs
- DataProtection.cs
- TimersDescriptionAttribute.cs
- ISAPIRuntime.cs
- RelationshipNavigation.cs
- ReadOnlyActivityGlyph.cs
- SpellerStatusTable.cs
- DecoderExceptionFallback.cs
- ArithmeticException.cs
- LinqDataSourceHelper.cs
- OptimisticConcurrencyException.cs
- Utility.cs
- DBBindings.cs
- TransferRequestHandler.cs
- PerformanceCounterLib.cs
- XmlQueryCardinality.cs
- SponsorHelper.cs
- PointValueSerializer.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- DigestTraceRecordHelper.cs
- MatrixTransform3D.cs
- KoreanLunisolarCalendar.cs
- TextParagraphView.cs
- SymLanguageType.cs