Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Utility / Maps.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- _ConnectionGroup.cs
- UTF8Encoding.cs
- GeneratedCodeAttribute.cs
- ImmutablePropertyDescriptorGridEntry.cs
- _ProxyRegBlob.cs
- EntityDataSourceEntityTypeFilterItem.cs
- BeginStoryboard.cs
- filewebresponse.cs
- Panel.cs
- WebPartDisplayModeCancelEventArgs.cs
- LogicalExpressionEditor.cs
- SizeConverter.cs
- ColumnHeader.cs
- UrlParameterReader.cs
- SqlInternalConnectionTds.cs
- GetResponse.cs
- HiddenField.cs
- FrameworkName.cs
- QueryParameter.cs
- Transform3DGroup.cs
- ProcessInfo.cs
- Vector3DCollection.cs
- DBDataPermission.cs
- XmlMtomReader.cs
- TdsParserStateObject.cs
- CommunicationException.cs
- FaultReasonText.cs
- Certificate.cs
- CodeComment.cs
- MultiTrigger.cs
- InstallerTypeAttribute.cs
- DefaultWorkflowSchedulerService.cs
- SimpleWebHandlerParser.cs
- RoleGroup.cs
- SqlInfoMessageEvent.cs
- HttpDictionary.cs
- ModelItemDictionaryImpl.cs
- XmlProcessingInstruction.cs
- CustomPopupPlacement.cs
- GlobalProxySelection.cs
- QuestionEventArgs.cs
- DateTimeValueSerializerContext.cs
- ColorTransformHelper.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- SubtreeProcessor.cs
- TextBoxAutomationPeer.cs
- ServiceObjectContainer.cs
- QualifiedCellIdBoolean.cs
- XmlTextReader.cs
- SelectedCellsCollection.cs
- DodSequenceMerge.cs
- WebPartVerb.cs
- RectAnimation.cs
- SelectedDatesCollection.cs
- OrderedDictionary.cs
- NameSpaceExtractor.cs
- infer.cs
- ProfessionalColorTable.cs
- CorrelationManager.cs
- CodeMethodReturnStatement.cs
- VariableBinder.cs
- ModelChangedEventArgsImpl.cs
- CompoundFileStorageReference.cs
- HashHelper.cs
- WindowsSysHeader.cs
- InteropBitmapSource.cs
- CurrencyManager.cs
- MDIWindowDialog.cs
- SecUtil.cs
- Internal.cs
- ThemeDirectoryCompiler.cs
- GeometryDrawing.cs
- PrinterUnitConvert.cs
- NativeMethodsCLR.cs
- ByteStorage.cs
- PerfCounterSection.cs
- CompilationRelaxations.cs
- ValidationSummaryDesigner.cs
- MapPathBasedVirtualPathProvider.cs
- FocusChangedEventArgs.cs
- AppDomainProtocolHandler.cs
- FormsAuthenticationCredentials.cs
- BaseParaClient.cs
- ThreadAttributes.cs
- DBNull.cs
- PartialTrustVisibleAssembly.cs
- PropertyValueUIItem.cs
- NopReturnReader.cs
- SharedDp.cs
- VisualStateManager.cs
- QilStrConcatenator.cs
- ToolStripRenderEventArgs.cs
- XmlSchemaResource.cs
- NativeWindow.cs
- Command.cs
- InvalidFilterCriteriaException.cs
- Literal.cs
- GiveFeedbackEventArgs.cs
- IndividualDeviceConfig.cs
- InfoCardSymmetricAlgorithm.cs