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
- TreeBuilderBamlTranslator.cs
- PropertyToken.cs
- IODescriptionAttribute.cs
- diagnosticsswitches.cs
- XmlNodeList.cs
- FileDialog.cs
- UpdateTranslator.cs
- TrustLevel.cs
- AlgoModule.cs
- InteropDesigner.xaml.cs
- DataBindingExpressionBuilder.cs
- SiteMapSection.cs
- CategoryState.cs
- WinCategoryAttribute.cs
- Pens.cs
- JpegBitmapEncoder.cs
- OSFeature.cs
- Int16.cs
- SendActivityDesignerTheme.cs
- TransactionContextManager.cs
- DataGridState.cs
- TransactionScope.cs
- ExpandedWrapper.cs
- QuadraticBezierSegment.cs
- securitycriticaldataformultiplegetandset.cs
- AnnotationResourceChangedEventArgs.cs
- IEnumerable.cs
- Exceptions.cs
- DependencyPropertyDescriptor.cs
- DocComment.cs
- GACMembershipCondition.cs
- InputLanguageCollection.cs
- ProfileEventArgs.cs
- ColorTranslator.cs
- DSACryptoServiceProvider.cs
- WrappedIUnknown.cs
- SafeTimerHandle.cs
- ValidationService.cs
- ListViewContainer.cs
- EntityContainer.cs
- ExternalCalls.cs
- TextEvent.cs
- ItemCollectionEditor.cs
- JavaScriptObjectDeserializer.cs
- ClientSettings.cs
- CompilerTypeWithParams.cs
- PreservationFileWriter.cs
- DataServiceQueryOfT.cs
- LabelLiteral.cs
- PopupControlService.cs
- Adorner.cs
- IResourceProvider.cs
- ClientTargetCollection.cs
- WindowsHyperlink.cs
- filewebrequest.cs
- Baml6Assembly.cs
- DataTableCollection.cs
- xmlfixedPageInfo.cs
- D3DImage.cs
- PropertiesTab.cs
- ManagedFilter.cs
- OleDbEnumerator.cs
- FragmentQuery.cs
- TypeExtension.cs
- CookieParameter.cs
- RegisterInfo.cs
- KeySpline.cs
- LinkButton.cs
- ContentTextAutomationPeer.cs
- WriteableBitmap.cs
- PropertyValidationContext.cs
- WaitHandleCannotBeOpenedException.cs
- NullPackagingPolicy.cs
- CodeExpressionCollection.cs
- FormViewRow.cs
- AuthorizationRule.cs
- EventTrigger.cs
- CodeMethodMap.cs
- _NetworkingPerfCounters.cs
- SmtpNetworkElement.cs
- Speller.cs
- XmlDataCollection.cs
- TextReturnReader.cs
- WebPartVerbCollection.cs
- EventTrigger.cs
- DataProtectionSecurityStateEncoder.cs
- HttpHeaderCollection.cs
- TextPatternIdentifiers.cs
- OracleBinary.cs
- LinqDataSourceSelectEventArgs.cs
- HotSpotCollection.cs
- MarshalByValueComponent.cs
- RewritingSimplifier.cs
- Parser.cs
- HttpListenerPrefixCollection.cs
- _LazyAsyncResult.cs
- SchemaMerger.cs
- ResourcePart.cs
- SelectedDatesCollection.cs
- GeneralTransform.cs