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
- WindowsListViewItem.cs
- FontSizeConverter.cs
- MsmqInputChannel.cs
- DefaultValueTypeConverter.cs
- CodeThrowExceptionStatement.cs
- SafeThemeHandle.cs
- RemotingServices.cs
- TypeDescriptionProviderAttribute.cs
- CanonicalXml.cs
- EventProviderClassic.cs
- WebPartEventArgs.cs
- NodeFunctions.cs
- VisualBasicSettingsHandler.cs
- HtmlElementEventArgs.cs
- XsdDataContractExporter.cs
- ClientFormsAuthenticationCredentials.cs
- Compress.cs
- Dynamic.cs
- DataBindingHandlerAttribute.cs
- SQLResource.cs
- ConnectionPoint.cs
- ContractsBCL.cs
- FamilyCollection.cs
- XmlSchemaAttribute.cs
- DbConvert.cs
- ParsedAttributeCollection.cs
- HtmlTernaryTree.cs
- AsyncStreamReader.cs
- MobileSysDescriptionAttribute.cs
- BinHexEncoder.cs
- IntSecurity.cs
- RecognitionResult.cs
- ThicknessAnimationBase.cs
- DBCommandBuilder.cs
- HtmlFormWrapper.cs
- LogAppendAsyncResult.cs
- SafeRightsManagementEnvironmentHandle.cs
- datacache.cs
- TextPatternIdentifiers.cs
- FlowPanelDesigner.cs
- ButtonChrome.cs
- ObjectNavigationPropertyMapping.cs
- EncryptedKey.cs
- Decoder.cs
- PreProcessor.cs
- RootBrowserWindowAutomationPeer.cs
- SystemKeyConverter.cs
- FileDialog.cs
- RegistryExceptionHelper.cs
- SerializationObjectManager.cs
- CombinedGeometry.cs
- KoreanCalendar.cs
- ClientFormsIdentity.cs
- ScriptControlDescriptor.cs
- SqlParameter.cs
- DecoderFallback.cs
- ListenerElementsCollection.cs
- CodeAssignStatement.cs
- WebZone.cs
- IImplicitResourceProvider.cs
- StringStorage.cs
- CTreeGenerator.cs
- TextSimpleMarkerProperties.cs
- ColorDialog.cs
- OuterGlowBitmapEffect.cs
- AsyncOperationLifetimeManager.cs
- SqlBooleanizer.cs
- SHA256Cng.cs
- CatalogPartCollection.cs
- FakeModelPropertyImpl.cs
- DefaultParameterValueAttribute.cs
- remotingproxy.cs
- InvariantComparer.cs
- SignedInfo.cs
- SatelliteContractVersionAttribute.cs
- Rules.cs
- Point3D.cs
- PropertyEmitter.cs
- StatusBarPanelClickEvent.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- SqlDataSourceSelectingEventArgs.cs
- CounterSampleCalculator.cs
- HttpCookiesSection.cs
- Activity.cs
- AspNetSynchronizationContext.cs
- RightNameExpirationInfoPair.cs
- WebReferencesBuildProvider.cs
- ValidationErrorCollection.cs
- OAVariantLib.cs
- LocalBuilder.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- RoleService.cs
- CompositeDispatchFormatter.cs
- TextEditorThreadLocalStore.cs
- MessageFault.cs
- XmlILOptimizerVisitor.cs
- CustomWebEventKey.cs
- SHA512.cs
- UniqueConstraint.cs
- XmlFormatExtensionPointAttribute.cs