Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / Mobile / DeviceFilterDictionary.cs / 1305376 / DeviceFilterDictionary.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Mobile { using System.Web; using System.Collections; using System.Reflection; using System.Diagnostics; using System.ComponentModel; [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")] internal class DeviceFilterDictionary { internal class ComparisonEvaluator { internal readonly String capabilityName; internal readonly String capabilityArgument; internal ComparisonEvaluator(String name, String argument) { Debug.Assert(name != null); capabilityName = name; capabilityArgument = argument; } } private Hashtable _comparisonEvaluators = null; private Hashtable _delegateEvaluators = null; internal DeviceFilterDictionary() { _comparisonEvaluators = new Hashtable(); _delegateEvaluators = new Hashtable(); } internal DeviceFilterDictionary(DeviceFilterDictionary original) { _comparisonEvaluators = (Hashtable)original._comparisonEvaluators.Clone(); _delegateEvaluators = (Hashtable)original._delegateEvaluators.Clone(); } internal void AddCapabilityDelegate(String delegateName, MobileCapabilities.EvaluateCapabilitiesDelegate evaluator) { _delegateEvaluators[delegateName] = evaluator; } private void CheckForComparisonDelegateLoops(String delegateName) { String nextDelegateName = delegateName; Hashtable alreadyReferencedDelegates = new Hashtable(); while(true) { ComparisonEvaluator nextComparisonEvaluator = (ComparisonEvaluator)_comparisonEvaluators[nextDelegateName]; if(nextComparisonEvaluator == null) { break; } if(alreadyReferencedDelegates.Contains(nextDelegateName)) { String msg = SR.GetString(SR.DevFiltDict_FoundLoop, nextComparisonEvaluator.capabilityName, delegateName); throw new Exception(msg); } alreadyReferencedDelegates[nextDelegateName] = null; nextDelegateName = nextComparisonEvaluator.capabilityName; } } internal void AddComparisonDelegate(String delegateName, String comparisonName, String argument) { _comparisonEvaluators[delegateName] = new ComparisonEvaluator(comparisonName, argument); CheckForComparisonDelegateLoops(delegateName); } internal bool FindComparisonEvaluator(String evaluatorName, out String capabilityName, out String capabilityArgument) { capabilityName = null; capabilityArgument = null; ComparisonEvaluator evaluator = (ComparisonEvaluator)_comparisonEvaluators[evaluatorName]; if(evaluator == null) { return false; } capabilityName = evaluator.capabilityName; capabilityArgument = evaluator.capabilityArgument; return true; } internal bool FindDelegateEvaluator(String evaluatorName, out MobileCapabilities.EvaluateCapabilitiesDelegate evaluatorDelegate) { evaluatorDelegate = null; MobileCapabilities.EvaluateCapabilitiesDelegate evaluator; evaluator = (MobileCapabilities.EvaluateCapabilitiesDelegate) _delegateEvaluators[evaluatorName]; if(evaluator == null) { return false; } evaluatorDelegate = evaluator; return true; } internal bool IsComparisonEvaluator(String evaluatorName) { return _comparisonEvaluators.Contains(evaluatorName); } internal bool IsDelegateEvaluator(String evaluatorName) { return _delegateEvaluators.Contains(evaluatorName); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Mobile { using System.Web; using System.Collections; using System.Reflection; using System.Diagnostics; using System.ComponentModel; [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")] internal class DeviceFilterDictionary { internal class ComparisonEvaluator { internal readonly String capabilityName; internal readonly String capabilityArgument; internal ComparisonEvaluator(String name, String argument) { Debug.Assert(name != null); capabilityName = name; capabilityArgument = argument; } } private Hashtable _comparisonEvaluators = null; private Hashtable _delegateEvaluators = null; internal DeviceFilterDictionary() { _comparisonEvaluators = new Hashtable(); _delegateEvaluators = new Hashtable(); } internal DeviceFilterDictionary(DeviceFilterDictionary original) { _comparisonEvaluators = (Hashtable)original._comparisonEvaluators.Clone(); _delegateEvaluators = (Hashtable)original._delegateEvaluators.Clone(); } internal void AddCapabilityDelegate(String delegateName, MobileCapabilities.EvaluateCapabilitiesDelegate evaluator) { _delegateEvaluators[delegateName] = evaluator; } private void CheckForComparisonDelegateLoops(String delegateName) { String nextDelegateName = delegateName; Hashtable alreadyReferencedDelegates = new Hashtable(); while(true) { ComparisonEvaluator nextComparisonEvaluator = (ComparisonEvaluator)_comparisonEvaluators[nextDelegateName]; if(nextComparisonEvaluator == null) { break; } if(alreadyReferencedDelegates.Contains(nextDelegateName)) { String msg = SR.GetString(SR.DevFiltDict_FoundLoop, nextComparisonEvaluator.capabilityName, delegateName); throw new Exception(msg); } alreadyReferencedDelegates[nextDelegateName] = null; nextDelegateName = nextComparisonEvaluator.capabilityName; } } internal void AddComparisonDelegate(String delegateName, String comparisonName, String argument) { _comparisonEvaluators[delegateName] = new ComparisonEvaluator(comparisonName, argument); CheckForComparisonDelegateLoops(delegateName); } internal bool FindComparisonEvaluator(String evaluatorName, out String capabilityName, out String capabilityArgument) { capabilityName = null; capabilityArgument = null; ComparisonEvaluator evaluator = (ComparisonEvaluator)_comparisonEvaluators[evaluatorName]; if(evaluator == null) { return false; } capabilityName = evaluator.capabilityName; capabilityArgument = evaluator.capabilityArgument; return true; } internal bool FindDelegateEvaluator(String evaluatorName, out MobileCapabilities.EvaluateCapabilitiesDelegate evaluatorDelegate) { evaluatorDelegate = null; MobileCapabilities.EvaluateCapabilitiesDelegate evaluator; evaluator = (MobileCapabilities.EvaluateCapabilitiesDelegate) _delegateEvaluators[evaluatorName]; if(evaluator == null) { return false; } evaluatorDelegate = evaluator; return true; } internal bool IsComparisonEvaluator(String evaluatorName) { return _comparisonEvaluators.Contains(evaluatorName); } internal bool IsDelegateEvaluator(String evaluatorName) { return _delegateEvaluators.Contains(evaluatorName); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ResourcesGenerator.cs
- WarningException.cs
- ToolStripItemEventArgs.cs
- URLBuilder.cs
- XPathSelfQuery.cs
- RichTextBoxConstants.cs
- EntityDataSourceView.cs
- GeometryCombineModeValidation.cs
- VirtualPath.cs
- HttpValueCollection.cs
- ObjectDataSourceView.cs
- IsolatedStorageException.cs
- CustomSignedXml.cs
- XamlToRtfWriter.cs
- AmbientLight.cs
- XamlTreeBuilderBamlRecordWriter.cs
- Identity.cs
- UnsafeNativeMethodsCLR.cs
- __FastResourceComparer.cs
- SequentialUshortCollection.cs
- XmlWrappingReader.cs
- SeekableReadStream.cs
- Journal.cs
- Symbol.cs
- InvalidDataException.cs
- XmlEnumAttribute.cs
- ProgressBarHighlightConverter.cs
- CodeArgumentReferenceExpression.cs
- httpstaticobjectscollection.cs
- SiteMapDataSource.cs
- DataControlFieldCollection.cs
- DataSourceProvider.cs
- ImageSourceValueSerializer.cs
- PublisherMembershipCondition.cs
- DBCSCodePageEncoding.cs
- Int32Animation.cs
- OdbcPermission.cs
- TreeNodeSelectionProcessor.cs
- FrameworkElementFactoryMarkupObject.cs
- SystemFonts.cs
- CodeDOMProvider.cs
- PermissionListSet.cs
- WindowsListViewItemCheckBox.cs
- RemotingConfigParser.cs
- NodeLabelEditEvent.cs
- StreamInfo.cs
- MethodAccessException.cs
- LinkTarget.cs
- TableLayoutSettings.cs
- Container.cs
- DiagnosticsElement.cs
- HuffCodec.cs
- Animatable.cs
- SQLDateTimeStorage.cs
- ExpressionBindingCollection.cs
- Span.cs
- WebPartCatalogAddVerb.cs
- Delegate.cs
- ColorConverter.cs
- PersonalizationStateInfoCollection.cs
- AssertUtility.cs
- XMLUtil.cs
- Base64Encoding.cs
- OracleDataAdapter.cs
- HyperLinkStyle.cs
- ContentFileHelper.cs
- XXXOnTypeBuilderInstantiation.cs
- ToolboxItemCollection.cs
- WhitespaceRule.cs
- RectConverter.cs
- DataObject.cs
- Span.cs
- BaseCAMarshaler.cs
- ExpanderAutomationPeer.cs
- TextSchema.cs
- DataServiceConfiguration.cs
- IdentityReference.cs
- SelectionRangeConverter.cs
- AppLevelCompilationSectionCache.cs
- DataComponentMethodGenerator.cs
- Stroke.cs
- AsyncOperationManager.cs
- SessionStateModule.cs
- RecognitionResult.cs
- InvalidPrinterException.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- PageAsyncTask.cs
- IImplicitResourceProvider.cs
- SwitchElementsCollection.cs
- FlowDocumentReader.cs
- SeverityFilter.cs
- Condition.cs
- ClientBuildManager.cs
- UserMapPath.cs
- Mouse.cs
- DragEvent.cs
- LoginUtil.cs
- Int32RectConverter.cs
- ToolTipService.cs
- TemplateXamlParser.cs