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
- PageAsyncTask.cs
- TrackingCondition.cs
- AnonymousIdentificationModule.cs
- ListViewGroupConverter.cs
- BinHexEncoder.cs
- Tracer.cs
- XmlNamespaceManager.cs
- EntityConnectionStringBuilderItem.cs
- ClientTarget.cs
- IteratorFilter.cs
- ReachIDocumentPaginatorSerializer.cs
- Thread.cs
- TargetParameterCountException.cs
- BufferAllocator.cs
- UnSafeCharBuffer.cs
- MethodBuilder.cs
- XMLSyntaxException.cs
- HttpHandlerActionCollection.cs
- DesignerOptionService.cs
- Types.cs
- TypeInfo.cs
- WebPartPersonalization.cs
- PersonalizablePropertyEntry.cs
- SchemaReference.cs
- IpcClientManager.cs
- IndexedEnumerable.cs
- StateBag.cs
- AstTree.cs
- HttpContext.cs
- TemplateKeyConverter.cs
- StandardMenuStripVerb.cs
- BaseResourcesBuildProvider.cs
- RootAction.cs
- TextEditor.cs
- SingleObjectCollection.cs
- ThemeableAttribute.cs
- AuthenticateEventArgs.cs
- DataSourceXmlSerializer.cs
- DelegatedStream.cs
- InputScopeConverter.cs
- WeakRefEnumerator.cs
- FixedBufferAttribute.cs
- StylusTip.cs
- TemplateControlBuildProvider.cs
- DtcInterfaces.cs
- X509Utils.cs
- ToolStripLocationCancelEventArgs.cs
- MarkupExtensionParser.cs
- NameValuePermission.cs
- X509ChainPolicy.cs
- ReliabilityContractAttribute.cs
- ComponentFactoryHelpers.cs
- XmlCharacterData.cs
- OleDbTransaction.cs
- FieldTemplateFactory.cs
- CodeVariableReferenceExpression.cs
- ButtonPopupAdapter.cs
- Operand.cs
- DrawingDrawingContext.cs
- ToolStripTextBox.cs
- ListMarkerLine.cs
- AppDomainUnloadedException.cs
- ClickablePoint.cs
- XmlRawWriterWrapper.cs
- SocketElement.cs
- ExecutionEngineException.cs
- Command.cs
- WebServiceClientProxyGenerator.cs
- PtsContext.cs
- RenderingBiasValidation.cs
- WaitHandleCannotBeOpenedException.cs
- XDeferredAxisSource.cs
- dataobject.cs
- DataGridViewColumn.cs
- BrowserCapabilitiesCodeGenerator.cs
- StackOverflowException.cs
- FixUpCollection.cs
- PermissionRequestEvidence.cs
- xml.cs
- HashCodeCombiner.cs
- ErrorWebPart.cs
- SafeUserTokenHandle.cs
- HashMembershipCondition.cs
- HostVisual.cs
- StylusPointDescription.cs
- Thumb.cs
- EventSource.cs
- InteropAutomationProvider.cs
- Queue.cs
- JsonCollectionDataContract.cs
- BaseProcessor.cs
- TextEditorMouse.cs
- Int32CAMarshaler.cs
- RenderData.cs
- HtmlTable.cs
- LiteralSubsegment.cs
- PropertyCondition.cs
- ClientTarget.cs
- BrowserCapabilitiesFactoryBase.cs
- TimeZoneInfo.cs