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
- ParserOptions.cs
- CssTextWriter.cs
- Container.cs
- ViewRendering.cs
- BitConverter.cs
- ProtocolsConfiguration.cs
- TaskHelper.cs
- CloseCollectionAsyncResult.cs
- XmlMapping.cs
- CatalogPartCollection.cs
- OneOfScalarConst.cs
- DelegateSerializationHolder.cs
- SqlComparer.cs
- DataReaderContainer.cs
- SHA384Managed.cs
- ClientBuildManagerCallback.cs
- TagMapInfo.cs
- NativeWindow.cs
- TextCompositionManager.cs
- AsyncOperationManager.cs
- PassportAuthenticationModule.cs
- SpellerError.cs
- CaseCqlBlock.cs
- SqlClientFactory.cs
- Window.cs
- OneOfConst.cs
- XmlnsDefinitionAttribute.cs
- WebPartMovingEventArgs.cs
- FormsAuthenticationModule.cs
- DataGridViewRowCollection.cs
- SplineKeyFrames.cs
- EditableRegion.cs
- Control.cs
- Zone.cs
- AttributeExtensions.cs
- StrongNamePublicKeyBlob.cs
- KnownTypesProvider.cs
- HttpsHostedTransportConfiguration.cs
- StorageEntityTypeMapping.cs
- ObjectCacheSettings.cs
- FixedFindEngine.cs
- ResourceReferenceExpressionConverter.cs
- PassportAuthenticationModule.cs
- GraphicsPath.cs
- ListItem.cs
- GenericPrincipal.cs
- CompileLiteralTextParser.cs
- MDIControlStrip.cs
- WindowsTokenRoleProvider.cs
- PtsHost.cs
- WebPermission.cs
- DeferredRunTextReference.cs
- ApplicationSettingsBase.cs
- Dynamic.cs
- ChannelServices.cs
- ConfigurationPropertyCollection.cs
- TextParaLineResult.cs
- PreservationFileWriter.cs
- XmlSchemaExternal.cs
- WorkflowApplicationUnloadedException.cs
- DeviceOverridableAttribute.cs
- GetBrowserTokenRequest.cs
- TemplateBindingExtensionConverter.cs
- ConfigurationPropertyAttribute.cs
- XNodeSchemaApplier.cs
- EntityReference.cs
- ChangeBlockUndoRecord.cs
- DataTableReader.cs
- CodeCastExpression.cs
- AppDomainCompilerProxy.cs
- DirectionalLight.cs
- BinaryObjectReader.cs
- ClientSettingsStore.cs
- WinEventWrap.cs
- Merger.cs
- DataGridColumn.cs
- ScopelessEnumAttribute.cs
- EntryPointNotFoundException.cs
- DataGridViewLinkColumn.cs
- COAUTHINFO.cs
- LZCodec.cs
- CompressedStack.cs
- FileDetails.cs
- RegexBoyerMoore.cs
- ImportStoreException.cs
- DeferredElementTreeState.cs
- PointCollectionValueSerializer.cs
- ProfessionalColorTable.cs
- ObjectQueryProvider.cs
- CalendarDateRangeChangingEventArgs.cs
- WebPartDescription.cs
- FileUpload.cs
- Page.cs
- PageVisual.cs
- BulletChrome.cs
- RowVisual.cs
- CodePageUtils.cs
- Pair.cs
- TextComposition.cs
- SignatureDescription.cs