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
- InsufficientMemoryException.cs
- PropertyTab.cs
- SmiTypedGetterSetter.cs
- AnnotationMap.cs
- GeometryConverter.cs
- AQNBuilder.cs
- CodeGenHelper.cs
- DriveInfo.cs
- SyndicationSerializer.cs
- UpDownBase.cs
- RegistryKey.cs
- AvTrace.cs
- StylusPlugin.cs
- NetworkStream.cs
- MessageDispatch.cs
- ExtensionsSection.cs
- AffineTransform3D.cs
- SmtpSection.cs
- ApplicationServiceManager.cs
- WrapPanel.cs
- ServicesUtilities.cs
- WebPartChrome.cs
- SafeEventLogWriteHandle.cs
- Size3DValueSerializer.cs
- EntityDataSourceSelectingEventArgs.cs
- SiteMapPathDesigner.cs
- ManualResetEventSlim.cs
- PeerContact.cs
- VectorValueSerializer.cs
- TopClause.cs
- PointIndependentAnimationStorage.cs
- XmlUnspecifiedAttribute.cs
- ProjectionCamera.cs
- DataGridHeaderBorder.cs
- RawMouseInputReport.cs
- DateRangeEvent.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- MarshalDirectiveException.cs
- QilFactory.cs
- WebPartEditorApplyVerb.cs
- DataColumnChangeEvent.cs
- TreeViewImageKeyConverter.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- CollectionViewProxy.cs
- SerializationUtility.cs
- OleDbDataAdapter.cs
- XmlSerializerVersionAttribute.cs
- StopRoutingHandler.cs
- CodeDomComponentSerializationService.cs
- DefaultTraceListener.cs
- MsmqProcessProtocolHandler.cs
- RevocationPoint.cs
- TypedElement.cs
- BackgroundWorker.cs
- ExpressionVisitor.cs
- LambdaCompiler.Binary.cs
- UserPreferenceChangingEventArgs.cs
- SettingsPropertyValue.cs
- UIElement3D.cs
- Table.cs
- SHA512Managed.cs
- HttpListenerPrefixCollection.cs
- TransportContext.cs
- EmbeddedMailObjectCollectionEditor.cs
- DataSourceHelper.cs
- Wizard.cs
- FontFamilyIdentifier.cs
- ZipFileInfoCollection.cs
- OleDbConnection.cs
- StrongNamePublicKeyBlob.cs
- UnSafeCharBuffer.cs
- SqlCommandSet.cs
- UTF7Encoding.cs
- DeflateStreamAsyncResult.cs
- StylusButtonCollection.cs
- ColumnHeader.cs
- ParameterReplacerVisitor.cs
- ModelTreeManager.cs
- X509UI.cs
- ActivityCodeDomSerializer.cs
- XPathDocumentNavigator.cs
- XslTransform.cs
- PlatformCulture.cs
- ExpressionUtilities.cs
- TrackingLocation.cs
- AspNetHostingPermission.cs
- XamlSerializer.cs
- SqlDataReader.cs
- PrtTicket_Public.cs
- TagNameToTypeMapper.cs
- TypeUnloadedException.cs
- ExtendedPropertyCollection.cs
- CapabilitiesPattern.cs
- CodeGroup.cs
- PartialTrustVisibleAssembly.cs
- FormViewUpdatedEventArgs.cs
- FlowLayout.cs
- SqlTypeConverter.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- _DisconnectOverlappedAsyncResult.cs