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
- HtmlLabelAdapter.cs
- URI.cs
- BuiltInPermissionSets.cs
- ReaderWriterLock.cs
- ListControl.cs
- RbTree.cs
- TdsParserStateObject.cs
- _SslStream.cs
- ValueType.cs
- Base64WriteStateInfo.cs
- Vector3D.cs
- StateMachineWorkflowInstance.cs
- RawStylusSystemGestureInputReport.cs
- Convert.cs
- Subtree.cs
- DriveNotFoundException.cs
- RepeatEnumerable.cs
- ObjectDataSourceMethodEventArgs.cs
- Soap.cs
- SqlSupersetValidator.cs
- CharEnumerator.cs
- SQLInt32.cs
- InvokeProviderWrapper.cs
- RegexNode.cs
- pingexception.cs
- EndpointPerformanceCounters.cs
- Registry.cs
- SnapLine.cs
- BorderGapMaskConverter.cs
- TemplateNameScope.cs
- WaitForChangedResult.cs
- Cursors.cs
- InvalidWMPVersionException.cs
- SizeChangedInfo.cs
- ExtenderProvidedPropertyAttribute.cs
- PreDigestedSignedInfo.cs
- MD5HashHelper.cs
- InkCanvasAutomationPeer.cs
- ExpandedWrapper.cs
- VariableAction.cs
- DataServiceProcessingPipeline.cs
- DataGridRow.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- ValueProviderWrapper.cs
- SerializationInfo.cs
- TableDetailsCollection.cs
- ErrorLog.cs
- MatrixTransform3D.cs
- Parsers.cs
- TypeSystemHelpers.cs
- IconConverter.cs
- SecurityDescriptor.cs
- TextCompositionEventArgs.cs
- ConnectionManagementElementCollection.cs
- LambdaCompiler.ControlFlow.cs
- ComPersistableTypeElement.cs
- XPathDocumentBuilder.cs
- UnsafeNativeMethods.cs
- ShaderRenderModeValidation.cs
- DbConvert.cs
- MetadataProperty.cs
- XmlElementCollection.cs
- NetworkAddressChange.cs
- Rotation3DKeyFrameCollection.cs
- CodeDefaultValueExpression.cs
- elementinformation.cs
- SafeCryptoHandles.cs
- ExceptionUtil.cs
- WinFormsComponentEditor.cs
- XPathNodeHelper.cs
- ComponentResourceManager.cs
- CurrentChangingEventManager.cs
- OracleConnection.cs
- JsonMessageEncoderFactory.cs
- SamlAssertion.cs
- FileEnumerator.cs
- ClientSponsor.cs
- CodeArgumentReferenceExpression.cs
- FtpCachePolicyElement.cs
- ClientScriptManager.cs
- ImageMap.cs
- ClaimTypeElementCollection.cs
- AllMembershipCondition.cs
- XmlIlTypeHelper.cs
- SubstitutionList.cs
- MouseGestureValueSerializer.cs
- XamlFilter.cs
- LicenseContext.cs
- TextShapeableCharacters.cs
- StringInfo.cs
- QueryCacheEntry.cs
- ImageListUtils.cs
- ExecutionEngineException.cs
- TitleStyle.cs
- NativeMethods.cs
- PassportAuthenticationEventArgs.cs
- DoubleIndependentAnimationStorage.cs
- XsdDateTime.cs
- EventWaitHandle.cs
- TableLayoutRowStyleCollection.cs