Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / 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. /****************************************************************************\ * * 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
- IdnElement.cs
- IisTraceWebEventProvider.cs
- TdsParserStateObject.cs
- TextUtf8RawTextWriter.cs
- GlobalEventManager.cs
- InvalidPrinterException.cs
- NetNamedPipeBindingElement.cs
- InkCanvasSelectionAdorner.cs
- TextOutput.cs
- TablePattern.cs
- DataRowExtensions.cs
- PromptStyle.cs
- ProviderIncompatibleException.cs
- Matrix.cs
- BitStream.cs
- HuffmanTree.cs
- TemplatedWizardStep.cs
- CriticalFinalizerObject.cs
- DesignerCategoryAttribute.cs
- Filter.cs
- CodeTypeDeclarationCollection.cs
- DataGridViewButtonColumn.cs
- XmlSchemaAppInfo.cs
- SchemaRegistration.cs
- InvalidCastException.cs
- QilName.cs
- Transform3D.cs
- HtmlShim.cs
- RoleManagerModule.cs
- SimpleWebHandlerParser.cs
- CrossSiteScriptingValidation.cs
- DefaultTextStoreTextComposition.cs
- BrowserDefinition.cs
- XmlDataSourceView.cs
- InternalConfigHost.cs
- ListManagerBindingsCollection.cs
- ArglessEventHandlerProxy.cs
- keycontainerpermission.cs
- HotSpot.cs
- UnknownBitmapEncoder.cs
- X509Extension.cs
- HiddenFieldDesigner.cs
- SecurityTokenAuthenticator.cs
- SqlUDTStorage.cs
- Expression.cs
- XmlParser.cs
- CFGGrammar.cs
- HierarchicalDataBoundControl.cs
- ComponentEditorPage.cs
- FunctionDetailsReader.cs
- IgnoreFileBuildProvider.cs
- TransformerConfigurationWizardBase.cs
- Command.cs
- IsolatedStorageFilePermission.cs
- MD5CryptoServiceProvider.cs
- ProcessHostServerConfig.cs
- Baml2006ReaderFrame.cs
- SQLConvert.cs
- PartialClassGenerationTask.cs
- DocumentViewerAutomationPeer.cs
- IPHostEntry.cs
- ToolStripItemDesigner.cs
- CreateUserErrorEventArgs.cs
- Permission.cs
- IsolatedStorageException.cs
- AlignmentXValidation.cs
- GeneralTransform.cs
- EntityCollectionChangedParams.cs
- PropertyEntry.cs
- Type.cs
- RadioButtonBaseAdapter.cs
- AsyncResult.cs
- dataprotectionpermissionattribute.cs
- DataGridViewRowConverter.cs
- NavigatingCancelEventArgs.cs
- WebPartConnectionsCloseVerb.cs
- DBCommandBuilder.cs
- Types.cs
- RequiredFieldValidator.cs
- XmlBinaryReader.cs
- DrawingDrawingContext.cs
- IgnoreFileBuildProvider.cs
- cookiecollection.cs
- SessionState.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- WindowsFormsDesignerOptionService.cs
- DbProviderFactories.cs
- SHA256CryptoServiceProvider.cs
- MethodAccessException.cs
- EntryWrittenEventArgs.cs
- PinnedBufferMemoryStream.cs
- TreeNodeBindingDepthConverter.cs
- MatrixTransform.cs
- Splitter.cs
- SqlComparer.cs
- EndCreateSecurityTokenRequest.cs
- DoubleSumAggregationOperator.cs
- Constraint.cs
- PageCodeDomTreeGenerator.cs
- SerializationFieldInfo.cs