Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- safemediahandle.cs
- SchemaObjectWriter.cs
- Table.cs
- XmlNamespaceDeclarationsAttribute.cs
- DetailsViewRowCollection.cs
- cache.cs
- DesignerContextDescriptor.cs
- EventLogInternal.cs
- UIAgentMonitorHandle.cs
- unsafenativemethodstextservices.cs
- GridToolTip.cs
- PartManifestEntry.cs
- XmlNodeChangedEventArgs.cs
- CellQuery.cs
- StringConverter.cs
- XmlSchemaParticle.cs
- ClickablePoint.cs
- TraceContextEventArgs.cs
- Header.cs
- DisableDpiAwarenessAttribute.cs
- Translator.cs
- WebPartEventArgs.cs
- DbConvert.cs
- FormViewUpdatedEventArgs.cs
- MenuItem.cs
- StickyNoteContentControl.cs
- EventData.cs
- XhtmlConformanceSection.cs
- BitmapFrame.cs
- RulePatternOps.cs
- base64Transforms.cs
- WizardStepBase.cs
- CodeParameterDeclarationExpression.cs
- BaseAsyncResult.cs
- WindowsAuthenticationModule.cs
- Rect.cs
- TextSimpleMarkerProperties.cs
- KeyValuePairs.cs
- AssemblyResourceLoader.cs
- StorageConditionPropertyMapping.cs
- MSG.cs
- TextCompositionEventArgs.cs
- Number.cs
- HGlobalSafeHandle.cs
- SerTrace.cs
- MSAAEventDispatcher.cs
- SharedUtils.cs
- DetailsViewDeletedEventArgs.cs
- PackageRelationship.cs
- InputScope.cs
- ConfigXmlDocument.cs
- WmpBitmapEncoder.cs
- TagMapCollection.cs
- TimeSpan.cs
- _SslSessionsCache.cs
- XPathConvert.cs
- BindingEditor.xaml.cs
- SrgsOneOf.cs
- Buffer.cs
- _NTAuthentication.cs
- TextCompositionManager.cs
- XamlParser.cs
- PrivilegeNotHeldException.cs
- XmlReader.cs
- XmlNamedNodeMap.cs
- HashHelpers.cs
- DataGridItemCollection.cs
- AlphaSortedEnumConverter.cs
- DecoderNLS.cs
- GeneralTransform3D.cs
- TemplateParser.cs
- Interlocked.cs
- SchemaManager.cs
- Missing.cs
- ConfigXmlComment.cs
- DesignerValidationSummaryAdapter.cs
- FileRecordSequenceHelper.cs
- SqlIdentifier.cs
- SapiRecoContext.cs
- WindowsScrollBarBits.cs
- MonthChangedEventArgs.cs
- EmptyElement.cs
- TokenBasedSetEnumerator.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- XmlSchemaSimpleContent.cs
- DbMetaDataFactory.cs
- RawStylusInputCustomData.cs
- ObjectDataSourceEventArgs.cs
- Span.cs
- Membership.cs
- ToolStripStatusLabel.cs
- XmlSchemas.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- TransactionContext.cs
- Parser.cs
- FixedTextSelectionProcessor.cs
- OleDbStruct.cs
- VariableReference.cs
- ImportContext.cs
- XsltException.cs