Code:
/ 4.0 / 4.0 / 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. /****************************************************************************\ * * 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
- CompensateDesigner.cs
- SchemaSetCompiler.cs
- SymbolEqualComparer.cs
- ViewEventArgs.cs
- EdmFunctions.cs
- CoTaskMemUnicodeSafeHandle.cs
- ResourceCollectionInfo.cs
- XmlText.cs
- ContextProperty.cs
- XmlWrappingWriter.cs
- CodeValidator.cs
- InputLanguageEventArgs.cs
- IxmlLineInfo.cs
- SizeAnimationBase.cs
- CodeParameterDeclarationExpressionCollection.cs
- RoleGroupCollection.cs
- SizeF.cs
- OLEDB_Util.cs
- ArgumentsParser.cs
- ReaderContextStackData.cs
- WebPartConnectVerb.cs
- RuleRef.cs
- FileReader.cs
- DataGridSortCommandEventArgs.cs
- SoapIgnoreAttribute.cs
- AxHost.cs
- ListViewDataItem.cs
- CapabilitiesSection.cs
- ImageMap.cs
- PlatformNotSupportedException.cs
- ClientSettingsProvider.cs
- ProxyWebPart.cs
- HostProtectionException.cs
- CaseInsensitiveOrdinalStringComparer.cs
- BodyGlyph.cs
- SqlRewriteScalarSubqueries.cs
- TemplateKey.cs
- DataGridViewComboBoxColumn.cs
- Cursor.cs
- TriState.cs
- ConfigurationConverterBase.cs
- RegionIterator.cs
- URLMembershipCondition.cs
- unsafeIndexingFilterStream.cs
- LinqDataSourceView.cs
- DBParameter.cs
- ProcessManager.cs
- StylusEditingBehavior.cs
- TraceFilter.cs
- DefaultExpression.cs
- CompiledIdentityConstraint.cs
- DbProviderConfigurationHandler.cs
- BaseEntityWrapper.cs
- TextDecorationLocationValidation.cs
- CriticalFinalizerObject.cs
- XmlNodeList.cs
- GeneratedContractType.cs
- MustUnderstandBehavior.cs
- StringFunctions.cs
- Highlights.cs
- Canvas.cs
- DialogResultConverter.cs
- TerminatorSinks.cs
- SortedSetDebugView.cs
- FormViewDeletedEventArgs.cs
- GuidConverter.cs
- SqlCachedBuffer.cs
- SortedList.cs
- KeyValuePair.cs
- UniqueIdentifierService.cs
- IgnoreFlushAndCloseStream.cs
- SmiEventSink_Default.cs
- WorkflowOwnershipException.cs
- ExtentJoinTreeNode.cs
- _NestedMultipleAsyncResult.cs
- UnsafeMethods.cs
- WindowsEditBoxRange.cs
- TextTreeTextNode.cs
- BrushProxy.cs
- QueryFunctions.cs
- SmtpReplyReaderFactory.cs
- PaginationProgressEventArgs.cs
- StopStoryboard.cs
- TranslateTransform3D.cs
- WindowHideOrCloseTracker.cs
- ListParagraph.cs
- OutputWindow.cs
- HttpChannelFactory.cs
- GuidTagList.cs
- MissingMemberException.cs
- WebPartMenuStyle.cs
- EventProxy.cs
- HttpWriter.cs
- FlatButtonAppearance.cs
- ProfileWorkflowElement.cs
- TargetPerspective.cs
- SourceFilter.cs
- PrtTicket_Editor.cs
- InputScopeNameConverter.cs
- IntSecurity.cs