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
- OracleBFile.cs
- ButtonFlatAdapter.cs
- OleDbConnectionFactory.cs
- ElementHostAutomationPeer.cs
- SqlDesignerDataSourceView.cs
- PopupEventArgs.cs
- VarRemapper.cs
- CssClassPropertyAttribute.cs
- StorageBasedPackageProperties.cs
- ExpandButtonVisibilityConverter.cs
- PhysicalOps.cs
- DataSourceControl.cs
- PluralizationService.cs
- parserscommon.cs
- UInt16Storage.cs
- WebPartPersonalization.cs
- Crypto.cs
- ServiceControllerDesigner.cs
- SimpleFileLog.cs
- DropSource.cs
- path.cs
- VirtualPathProvider.cs
- CharEnumerator.cs
- BitmapVisualManager.cs
- DrawingDrawingContext.cs
- BamlLocalizabilityResolver.cs
- XmlSequenceWriter.cs
- NonSerializedAttribute.cs
- EventData.cs
- Queue.cs
- NotifyParentPropertyAttribute.cs
- MediaSystem.cs
- MailHeaderInfo.cs
- EnvelopeVersion.cs
- OrderByQueryOptionExpression.cs
- InputLanguageCollection.cs
- CancelEventArgs.cs
- CompositeControl.cs
- EditCommandColumn.cs
- ListenUriMode.cs
- XmlQualifiedName.cs
- ChangeInterceptorAttribute.cs
- AttributeCollection.cs
- SecondaryIndexDefinition.cs
- GradientBrush.cs
- MetadataItem.cs
- HttpCacheParams.cs
- HTMLTextWriter.cs
- GeneralTransform2DTo3DTo2D.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- CodeCompiler.cs
- CaseKeyBox.xaml.cs
- DiscoveryDocumentSerializer.cs
- ExpandCollapsePattern.cs
- FormView.cs
- AssertHelper.cs
- PersianCalendar.cs
- ReadOnlyDictionary.cs
- CursorConverter.cs
- BrowserDefinition.cs
- BoundColumn.cs
- CompilerParameters.cs
- HostSecurityManager.cs
- BinaryParser.cs
- SmiRequestExecutor.cs
- WindowsTokenRoleProvider.cs
- UseAttributeSetsAction.cs
- SyntaxCheck.cs
- ProcessThreadCollection.cs
- DebugView.cs
- RtfToken.cs
- SoapEnumAttribute.cs
- InternalConfigHost.cs
- WebHttpEndpointElement.cs
- ObsoleteAttribute.cs
- QilReplaceVisitor.cs
- TextTreeInsertUndoUnit.cs
- StyleBamlRecordReader.cs
- CombinedHttpChannel.cs
- TdsParserHelperClasses.cs
- StringToken.cs
- Helper.cs
- RotateTransform3D.cs
- smtpconnection.cs
- JsonReaderWriterFactory.cs
- bindurihelper.cs
- Int64.cs
- StsCommunicationException.cs
- BindingContext.cs
- QuaternionRotation3D.cs
- SystemBrushes.cs
- WindowsRichEdit.cs
- EncodingTable.cs
- _ChunkParse.cs
- ISCIIEncoding.cs
- DataGridColumnsPage.cs
- BufferedGraphicsManager.cs
- Message.cs
- BindableTemplateBuilder.cs
- SliderAutomationPeer.cs