Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- IDataContractSurrogate.cs
- AmbiguousMatchException.cs
- NumericUpDownAccelerationCollection.cs
- RIPEMD160.cs
- CustomLineCap.cs
- HtmlInputButton.cs
- ScrollEvent.cs
- IOThreadScheduler.cs
- XmlUTF8TextWriter.cs
- PingReply.cs
- NotifyInputEventArgs.cs
- TextEditorCopyPaste.cs
- TTSVoice.cs
- InputGestureCollection.cs
- XmlAggregates.cs
- FormViewUpdatedEventArgs.cs
- SqlUDTStorage.cs
- IndexOutOfRangeException.cs
- CalendarKeyboardHelper.cs
- ConnectionStringsExpressionBuilder.cs
- Int16AnimationBase.cs
- XmlSerializerSection.cs
- AuthenticationService.cs
- UnauthorizedAccessException.cs
- FormClosedEvent.cs
- Maps.cs
- Helper.cs
- NotificationContext.cs
- HttpGetClientProtocol.cs
- WeakKeyDictionary.cs
- FixedDocumentSequencePaginator.cs
- DataListAutoFormat.cs
- HashSetDebugView.cs
- CompilerTypeWithParams.cs
- CodeTryCatchFinallyStatement.cs
- IResourceProvider.cs
- XmlChildNodes.cs
- FeatureSupport.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- ChainOfResponsibility.cs
- DtcInterfaces.cs
- CanExecuteRoutedEventArgs.cs
- AudioLevelUpdatedEventArgs.cs
- WebPartDisplayModeCancelEventArgs.cs
- DataListItemEventArgs.cs
- XmlSchemaElement.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- ApplicationFileParser.cs
- DataGridViewCellPaintingEventArgs.cs
- DbConnectionHelper.cs
- BuildDependencySet.cs
- DataContractSerializerOperationFormatter.cs
- LinkButton.cs
- SqlStatistics.cs
- FindCriteria.cs
- GridLengthConverter.cs
- AnimationClockResource.cs
- MetadataPropertyAttribute.cs
- DataGridViewLayoutData.cs
- EnumerableRowCollectionExtensions.cs
- FontWeight.cs
- WeakReference.cs
- WindowsGraphics.cs
- LogManagementAsyncResult.cs
- MailDefinition.cs
- IEnumerable.cs
- TextRenderer.cs
- ClientProxyGenerator.cs
- MaterializeFromAtom.cs
- ContentPropertyAttribute.cs
- PrimarySelectionAdorner.cs
- CacheMemory.cs
- Variable.cs
- BCLDebug.cs
- ReceiveContext.cs
- SamlDelegatingWriter.cs
- IdentityManager.cs
- HMACMD5.cs
- InstanceCreationEditor.cs
- MessageEnumerator.cs
- figurelengthconverter.cs
- WebBrowser.cs
- Parallel.cs
- IPAddress.cs
- TranslateTransform3D.cs
- IsolationInterop.cs
- Set.cs
- PeerNameRecordCollection.cs
- MarkupCompilePass1.cs
- RefType.cs
- RichTextBox.cs
- CapabilitiesAssignment.cs
- GridToolTip.cs
- SmiSettersStream.cs
- Messages.cs
- Italic.cs
- BadImageFormatException.cs
- AdPostCacheSubstitution.cs
- DataRow.cs
- ValueTypeFixupInfo.cs