Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- PreDigestedSignedInfo.cs
- Error.cs
- ProfilePropertyMetadata.cs
- SecondaryIndexDefinition.cs
- DoubleLink.cs
- WindowHideOrCloseTracker.cs
- DrawingBrush.cs
- SQLGuidStorage.cs
- EmbeddedMailObjectsCollection.cs
- MonthChangedEventArgs.cs
- AcceleratedTokenProviderState.cs
- CacheManager.cs
- HostUtils.cs
- QilFactory.cs
- RemoteHelper.cs
- UnsafeNativeMethods.cs
- BaseCollection.cs
- CompensatableTransactionScopeActivity.cs
- SoapTypeAttribute.cs
- HttpVersion.cs
- HierarchicalDataBoundControlAdapter.cs
- DocumentScope.cs
- ConfigurationException.cs
- DataBoundLiteralControl.cs
- TemplateNameScope.cs
- RemoteDebugger.cs
- CriticalExceptions.cs
- __ConsoleStream.cs
- XmlSchemaInferenceException.cs
- TreeSet.cs
- BitmapDownload.cs
- EndOfStreamException.cs
- TableAutomationPeer.cs
- ProgramPublisher.cs
- LabelEditEvent.cs
- ModuleBuilderData.cs
- TypeTypeConverter.cs
- VerificationException.cs
- CustomError.cs
- RoutingConfiguration.cs
- COMException.cs
- SmuggledIUnknown.cs
- TimeoutConverter.cs
- XmlnsDictionary.cs
- ListBindingHelper.cs
- DictionaryItemsCollection.cs
- cookie.cs
- handlecollector.cs
- DataGridCell.cs
- WpfMemberInvoker.cs
- ThemeableAttribute.cs
- HtmlMeta.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- Evaluator.cs
- ToolboxItemImageConverter.cs
- UIElementParagraph.cs
- IdentifierService.cs
- TypedElement.cs
- BooleanFunctions.cs
- CodeAttachEventStatement.cs
- PackUriHelper.cs
- UrlAuthFailedErrorFormatter.cs
- Constants.cs
- DateTime.cs
- BitmapCodecInfoInternal.cs
- TextAnchor.cs
- ComponentCodeDomSerializer.cs
- SourceFileBuildProvider.cs
- XmlILStorageConverter.cs
- AnnotationStore.cs
- XNodeNavigator.cs
- RichTextBoxAutomationPeer.cs
- SchemaTableOptionalColumn.cs
- Frame.cs
- DebugControllerThread.cs
- CacheEntry.cs
- FormViewDeletedEventArgs.cs
- EncoderExceptionFallback.cs
- MsmqIntegrationElement.cs
- PackagePart.cs
- SqlUserDefinedAggregateAttribute.cs
- DataContractSerializerOperationGenerator.cs
- DataGridViewCellPaintingEventArgs.cs
- DataSetFieldSchema.cs
- EventLogEntryCollection.cs
- WindowsSlider.cs
- AuthenticationModuleElement.cs
- SqlDataReader.cs
- ReturnEventArgs.cs
- IProvider.cs
- PropertyContainer.cs
- ColorBlend.cs
- XmlSchemaSimpleContentExtension.cs
- EtwTrace.cs
- DebugControllerThread.cs
- XmlSchema.cs
- StylusPointProperty.cs
- TreeNode.cs
- BitmapMetadataEnumerator.cs
- ParameterCollectionEditorForm.cs