Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- wgx_render.cs
- GridViewColumn.cs
- PointConverter.cs
- Timeline.cs
- SchemaExporter.cs
- SqlInternalConnection.cs
- CodeTryCatchFinallyStatement.cs
- SecurityKeyType.cs
- DeclaredTypeElement.cs
- WebPartDescription.cs
- ScopedKnownTypes.cs
- MessageDispatch.cs
- DataAccessException.cs
- XmlEntityReference.cs
- CurrentChangingEventManager.cs
- PrimitiveSchema.cs
- EntityParameterCollection.cs
- BinaryWriter.cs
- TableLayoutStyleCollection.cs
- ServicePoint.cs
- wgx_sdk_version.cs
- QueueException.cs
- ApplicationTrust.cs
- Types.cs
- cookieexception.cs
- OrderPreservingMergeHelper.cs
- MultiplexingDispatchMessageFormatter.cs
- FormatConvertedBitmap.cs
- TileBrush.cs
- XPathAncestorQuery.cs
- Cursor.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- TraceFilter.cs
- SafeCryptoHandles.cs
- IndependentAnimationStorage.cs
- SmiEventStream.cs
- CommandHelper.cs
- Label.cs
- OleDbConnection.cs
- PhysicalFontFamily.cs
- LockCookie.cs
- SqlBooleanizer.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- DrawingDrawingContext.cs
- Panel.cs
- PrintControllerWithStatusDialog.cs
- Switch.cs
- WindowInteropHelper.cs
- LinqExpressionNormalizer.cs
- CodeExporter.cs
- RegexCompiler.cs
- SecUtil.cs
- OleDbWrapper.cs
- BamlResourceSerializer.cs
- DataTableMappingCollection.cs
- OperatorExpressions.cs
- ControlBuilderAttribute.cs
- PreloadHost.cs
- TextDecorations.cs
- DelayLoadType.cs
- MSAANativeProvider.cs
- InterleavedZipPartStream.cs
- PriorityChain.cs
- DataBinder.cs
- StringArrayConverter.cs
- BindingExpression.cs
- XhtmlConformanceSection.cs
- Normalization.cs
- DescriptionAttribute.cs
- AssemblyNameProxy.cs
- MDIClient.cs
- CodeSnippetStatement.cs
- TypeSystem.cs
- ExecutionEngineException.cs
- Statements.cs
- MenuTracker.cs
- TextCompositionEventArgs.cs
- FixedDSBuilder.cs
- ServiceNameCollection.cs
- RadioButton.cs
- Unit.cs
- EntityWrapper.cs
- HashRepartitionStream.cs
- Pair.cs
- SecurityHeaderLayout.cs
- BufferedOutputStream.cs
- WindowsEditBoxRange.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- ListItemCollection.cs
- AssociationEndMember.cs
- SiteMapHierarchicalDataSourceView.cs
- BitmapCache.cs
- SupportingTokenProviderSpecification.cs
- XmlSchemaSimpleContentExtension.cs
- ColumnTypeConverter.cs
- DataGridViewCheckBoxColumn.cs
- RectAnimationClockResource.cs
- DbParameterCollection.cs
- TcpProcessProtocolHandler.cs
- MobileUserControlDesigner.cs