Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Utility / Maps.cs / 1305600 / 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
- XmlReflectionImporter.cs
- Types.cs
- Exceptions.cs
- DefaultIfEmptyQueryOperator.cs
- StrokeNodeData.cs
- OdbcDataReader.cs
- ZoneMembershipCondition.cs
- SqlDataRecord.cs
- PassportAuthentication.cs
- TimeSpanSecondsConverter.cs
- ConsoleTraceListener.cs
- DrawingServices.cs
- Buffer.cs
- DataGridTextBoxColumn.cs
- XslTransform.cs
- SingleSelectRootGridEntry.cs
- XmlNodeWriter.cs
- SlipBehavior.cs
- UriTemplateVariableQueryValue.cs
- processwaithandle.cs
- PageThemeCodeDomTreeGenerator.cs
- GraphicsContainer.cs
- WindowsFont.cs
- CustomValidator.cs
- XmlSchemaSet.cs
- BitmapSizeOptions.cs
- TableLayoutRowStyleCollection.cs
- DefaultTextStore.cs
- TextServicesLoader.cs
- TextPointerBase.cs
- LinearQuaternionKeyFrame.cs
- Button.cs
- BinaryCommonClasses.cs
- WebServiceClientProxyGenerator.cs
- CachedTypeface.cs
- WebHttpDispatchOperationSelector.cs
- BaseCodeDomTreeGenerator.cs
- DNS.cs
- AuthorizationPolicyTypeElementCollection.cs
- Baml2006SchemaContext.cs
- MemoryRecordBuffer.cs
- DmlSqlGenerator.cs
- DataGridViewCellStyle.cs
- ProjectionPruner.cs
- TypeValidationEventArgs.cs
- ViewManager.cs
- PeerContact.cs
- MarkupObject.cs
- filewebrequest.cs
- ProviderSettings.cs
- SQLBytesStorage.cs
- SignatureDescription.cs
- ButtonFieldBase.cs
- SvcMapFileSerializer.cs
- TransportSecurityHelpers.cs
- DBParameter.cs
- DataProtection.cs
- StreamAsIStream.cs
- DataRowView.cs
- UIPropertyMetadata.cs
- ProcessHostFactoryHelper.cs
- assemblycache.cs
- SafeNativeMethods.cs
- FirstMatchCodeGroup.cs
- TransactionContextValidator.cs
- AssemblyBuilder.cs
- AppSettingsExpressionBuilder.cs
- _NestedSingleAsyncResult.cs
- Bitmap.cs
- BooleanExpr.cs
- HttpResponse.cs
- WebServiceResponse.cs
- ChangeConflicts.cs
- WorkItem.cs
- PackageDigitalSignatureManager.cs
- ConfigurationException.cs
- BindingContext.cs
- Button.cs
- SchemaNames.cs
- XmlSchemaRedefine.cs
- BaseDataListActionList.cs
- ParserOptions.cs
- ValueTypeFixupInfo.cs
- PropertyGroupDescription.cs
- AttachedPropertyMethodSelector.cs
- IPPacketInformation.cs
- PermissionSetEnumerator.cs
- RoutedEventValueSerializer.cs
- SrgsElement.cs
- Brushes.cs
- CultureTable.cs
- XamlPathDataSerializer.cs
- exports.cs
- RawKeyboardInputReport.cs
- EventSinkActivity.cs
- LocatorBase.cs
- CompilationRelaxations.cs
- DataGridColumnHeaderAutomationPeer.cs
- OracleRowUpdatingEventArgs.cs
- ToolBarPanel.cs