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
- AutomationPatternInfo.cs
- DomainUpDown.cs
- KeysConverter.cs
- ChildChangedEventArgs.cs
- ViewCellSlot.cs
- commandenforcer.cs
- SBCSCodePageEncoding.cs
- AbsoluteQuery.cs
- DetailsViewRowCollection.cs
- WebConfigManager.cs
- DataListItem.cs
- DataGridViewRow.cs
- DefaultAutoFieldGenerator.cs
- AnimationException.cs
- IssuedTokenServiceElement.cs
- RuntimeConfigurationRecord.cs
- ListItemParagraph.cs
- ListItem.cs
- X509RecipientCertificateServiceElement.cs
- MouseButtonEventArgs.cs
- SqlException.cs
- CompressEmulationStream.cs
- WebResourceUtil.cs
- FileDetails.cs
- ContentElement.cs
- TextEndOfSegment.cs
- ThreadStateException.cs
- QilTypeChecker.cs
- ItemsChangedEventArgs.cs
- XdrBuilder.cs
- BitmapPalette.cs
- CellParagraph.cs
- ControlPaint.cs
- EntityClientCacheEntry.cs
- OverloadGroupAttribute.cs
- UIInitializationException.cs
- Code.cs
- DecimalKeyFrameCollection.cs
- LastQueryOperator.cs
- RowToFieldTransformer.cs
- XmlTypeAttribute.cs
- NavigateEvent.cs
- UnitySerializationHolder.cs
- HtmlToClrEventProxy.cs
- HWStack.cs
- RelationshipConstraintValidator.cs
- CanonicalFormWriter.cs
- FixedSOMTableCell.cs
- DataSetMappper.cs
- Peer.cs
- EncoderParameter.cs
- QueryCacheEntry.cs
- CombinedGeometry.cs
- FieldToken.cs
- Binding.cs
- SchemaContext.cs
- SerializationUtilities.cs
- XmlSchemaSimpleTypeRestriction.cs
- ProtocolElement.cs
- InkCanvasSelection.cs
- WindowsComboBox.cs
- StopStoryboard.cs
- LinkConverter.cs
- MsmqInputChannelListener.cs
- NativeMethods.cs
- DbFunctionCommandTree.cs
- GrammarBuilder.cs
- Pair.cs
- securestring.cs
- InstanceDataCollection.cs
- ActivationService.cs
- XmlLinkedNode.cs
- MediaTimeline.cs
- UrlMapping.cs
- SemaphoreSecurity.cs
- _FixedSizeReader.cs
- Reference.cs
- EventRecordWrittenEventArgs.cs
- SchemaImporter.cs
- Range.cs
- ColumnProvider.cs
- UnescapedXmlDiagnosticData.cs
- XmlSerializerSection.cs
- FormatPage.cs
- DebugView.cs
- TypeUtils.cs
- VirtualizingPanel.cs
- TraceSwitch.cs
- WindowsFormsLinkLabel.cs
- HostingEnvironmentException.cs
- CreateSequence.cs
- IDQuery.cs
- DataControlReference.cs
- ResponseStream.cs
- SafeCertificateStore.cs
- KeyTime.cs
- SettingsSection.cs
- Converter.cs
- InheritablePropertyChangeInfo.cs
- ToolStripOverflow.cs