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
- ScrollChrome.cs
- ListQueryResults.cs
- TileBrush.cs
- WindowCollection.cs
- URLEditor.cs
- DispatchChannelSink.cs
- ResumeStoryboard.cs
- SqlUtils.cs
- StateRuntime.cs
- SelectionItemPattern.cs
- DiffuseMaterial.cs
- ScaleTransform3D.cs
- RuntimeArgumentHandle.cs
- WorkflowInstanceExtensionManager.cs
- BaseParagraph.cs
- SecureEnvironment.cs
- LinearKeyFrames.cs
- TimeSpanValidatorAttribute.cs
- SuppressMergeCheckAttribute.cs
- NopReturnReader.cs
- AnnouncementService.cs
- EntityReference.cs
- ChtmlCommandAdapter.cs
- DesignTimeData.cs
- AssemblyBuilderData.cs
- RectangleGeometry.cs
- ArithmeticException.cs
- TransactionTraceIdentifier.cs
- ErrorRuntimeConfig.cs
- _SingleItemRequestCache.cs
- RedirectionProxy.cs
- AsyncResult.cs
- PageRanges.cs
- SoapEnumAttribute.cs
- HttpListenerContext.cs
- NamespaceCollection.cs
- WebPartConnectionsEventArgs.cs
- SqlTopReducer.cs
- XmlSchemaSimpleType.cs
- Aggregates.cs
- TreeIterator.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- OleDbInfoMessageEvent.cs
- NavigationExpr.cs
- _AutoWebProxyScriptEngine.cs
- WebPartConnectVerb.cs
- SemanticBasicElement.cs
- ValidationResult.cs
- AutomationElementIdentifiers.cs
- DebuggerAttributes.cs
- DragDropManager.cs
- Blend.cs
- XmlIlGenerator.cs
- KeyGestureValueSerializer.cs
- BmpBitmapDecoder.cs
- OutputScopeManager.cs
- TreeViewHitTestInfo.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- UniqueConstraint.cs
- ParameterBuilder.cs
- LayoutInformation.cs
- SecureStringHasher.cs
- Quaternion.cs
- SafeWaitHandle.cs
- HtmlMeta.cs
- CustomPopupPlacement.cs
- EventLogPropertySelector.cs
- OraclePermissionAttribute.cs
- SharedStatics.cs
- AsyncWaitHandle.cs
- IDictionary.cs
- OleDbError.cs
- ProofTokenCryptoHandle.cs
- ConfigUtil.cs
- VectorAnimationUsingKeyFrames.cs
- CancellationScope.cs
- TextSelection.cs
- Brush.cs
- BlockUIContainer.cs
- ProcessHostFactoryHelper.cs
- ComponentCollection.cs
- OracleDataReader.cs
- PixelFormat.cs
- CallbackWrapper.cs
- IChannel.cs
- ProvideValueServiceProvider.cs
- SHA256CryptoServiceProvider.cs
- PeerTransportListenAddressValidator.cs
- LayoutTableCell.cs
- ClientCultureInfo.cs
- ExponentialEase.cs
- XMLDiffLoader.cs
- ClientTarget.cs
- TextElementCollectionHelper.cs
- SQLInt64Storage.cs
- DesignConnectionCollection.cs
- AtlasWeb.Designer.cs
- HttpStreamXmlDictionaryReader.cs
- DataRowComparer.cs
- SyndicationDeserializer.cs