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
- ResourceContainer.cs
- PackageDigitalSignature.cs
- QilInvokeEarlyBound.cs
- ControlLocalizer.cs
- ExtendedPropertyCollection.cs
- XmlSchemaValidator.cs
- HostTimeoutsElement.cs
- WindowsListBox.cs
- AQNBuilder.cs
- FlowDocumentPaginator.cs
- TextBreakpoint.cs
- PreservationFileWriter.cs
- RequestQueryProcessor.cs
- EntityDataReader.cs
- embossbitmapeffect.cs
- DefaultParameterValueAttribute.cs
- PatternMatcher.cs
- FrameworkTextComposition.cs
- ColorKeyFrameCollection.cs
- remotingproxy.cs
- Menu.cs
- SendingRequestEventArgs.cs
- QueryOptionExpression.cs
- ExpressionBindingCollection.cs
- ScriptComponentDescriptor.cs
- TextFormatterImp.cs
- TargetControlTypeAttribute.cs
- ObjectDataSourceMethodEditor.cs
- CaseCqlBlock.cs
- FileUpload.cs
- SubclassTypeValidatorAttribute.cs
- ContainerSelectorGlyph.cs
- loginstatus.cs
- FragmentQueryProcessor.cs
- BitmapEffectGeneralTransform.cs
- SvcMapFileLoader.cs
- Matrix.cs
- DiscoveryRequestHandler.cs
- PeerNameRegistration.cs
- WrapPanel.cs
- FunctionMappingTranslator.cs
- DrawItemEvent.cs
- EntityCollectionChangedParams.cs
- SoapAttributeAttribute.cs
- COM2Properties.cs
- RestClientProxyHandler.cs
- XmlProcessingInstruction.cs
- DataColumnPropertyDescriptor.cs
- ErrorEventArgs.cs
- tooltip.cs
- WindowsGrip.cs
- MailAddressCollection.cs
- StaticExtension.cs
- QueryableFilterUserControl.cs
- SelectionPattern.cs
- OpacityConverter.cs
- Serializer.cs
- BatchParser.cs
- RsaSecurityTokenParameters.cs
- XmlSchemaChoice.cs
- ProcessModule.cs
- ManualWorkflowSchedulerService.cs
- SurrogateEncoder.cs
- DataTemplateSelector.cs
- AdobeCFFWrapper.cs
- ZoneIdentityPermission.cs
- AnonymousIdentificationModule.cs
- BinaryUtilClasses.cs
- NullToBooleanConverter.cs
- DurableInstancingOptions.cs
- Converter.cs
- TextTreeExtractElementUndoUnit.cs
- nulltextnavigator.cs
- UntrustedRecipientException.cs
- RadioButtonBaseAdapter.cs
- CurrentChangingEventArgs.cs
- DataSourceXmlElementAttribute.cs
- PerformanceCounterManager.cs
- ImageMapEventArgs.cs
- ApplicationSecurityInfo.cs
- diagnosticsswitches.cs
- XPathNodeIterator.cs
- Track.cs
- RbTree.cs
- ContainerParagraph.cs
- SqlNodeAnnotation.cs
- TrackPoint.cs
- XmlSchemaSimpleContentExtension.cs
- AssociationProvider.cs
- ColorContext.cs
- TdsParameterSetter.cs
- OdbcParameterCollection.cs
- ViewSimplifier.cs
- WebPartManagerDesigner.cs
- RSAPKCS1KeyExchangeFormatter.cs
- ColorTranslator.cs
- DataBoundControlAdapter.cs
- Material.cs
- XpsFilter.cs
- CommonDialog.cs