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
- RealProxy.cs
- StringValidator.cs
- Rotation3D.cs
- StorageScalarPropertyMapping.cs
- UserControlFileEditor.cs
- ToolStripPanelCell.cs
- SchemaMapping.cs
- DataGridItemEventArgs.cs
- TextSearch.cs
- CommandTreeTypeHelper.cs
- ConfigurationElement.cs
- X509CertificateInitiatorServiceCredential.cs
- _CommandStream.cs
- XsltArgumentList.cs
- SponsorHelper.cs
- DictionaryGlobals.cs
- MdiWindowListStrip.cs
- grammarelement.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- ExceptionHelpers.cs
- BStrWrapper.cs
- glyphs.cs
- ArgumentDesigner.xaml.cs
- CategoryGridEntry.cs
- HeaderElement.cs
- CharacterShapingProperties.cs
- Util.cs
- NodeCounter.cs
- RuleInfoComparer.cs
- EndpointAddressMessageFilterTable.cs
- MetadataHelper.cs
- PackageDigitalSignature.cs
- SoapReflectionImporter.cs
- MultiDataTrigger.cs
- Win32Native.cs
- BitmapEffectDrawingContent.cs
- ContentIterators.cs
- DataRecordObjectView.cs
- TreeViewItemAutomationPeer.cs
- MissingSatelliteAssemblyException.cs
- HttpSessionStateBase.cs
- TextRangeProviderWrapper.cs
- FloaterBaseParagraph.cs
- JsonSerializer.cs
- SafeFindHandle.cs
- XmlAttributeOverrides.cs
- SelectionListComponentEditor.cs
- Panel.cs
- GeometryConverter.cs
- ImageClickEventArgs.cs
- InputLanguageManager.cs
- RequestCacheManager.cs
- ClickablePoint.cs
- XhtmlTextWriter.cs
- StylusEditingBehavior.cs
- Trace.cs
- X509SecurityToken.cs
- MobileListItem.cs
- CodeParameterDeclarationExpressionCollection.cs
- Util.cs
- SqlHelper.cs
- XamlBrushSerializer.cs
- Multiply.cs
- InkSerializer.cs
- WebPartDescription.cs
- QilPatternFactory.cs
- MailWriter.cs
- EntityDataSourceSelectingEventArgs.cs
- RegexGroup.cs
- CodeDirectionExpression.cs
- CategoryGridEntry.cs
- LoginView.cs
- ProviderBase.cs
- TdsParserSafeHandles.cs
- XmlQueryType.cs
- DockPattern.cs
- safelinkcollection.cs
- DBCSCodePageEncoding.cs
- TemplateField.cs
- FontStyle.cs
- HandleCollector.cs
- ValidatorCompatibilityHelper.cs
- ToolStripMenuItem.cs
- FormViewCommandEventArgs.cs
- CheckBoxStandardAdapter.cs
- Ipv6Element.cs
- ListViewDataItem.cs
- ValueTypeFixupInfo.cs
- securestring.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- ListViewGroup.cs
- ObjectSet.cs
- RefType.cs
- XamlFilter.cs
- SubclassTypeValidatorAttribute.cs
- CompilationUnit.cs
- StreamUpdate.cs
- PageParser.cs
- SqlCrossApplyToCrossJoin.cs
- RuntimeConfigLKG.cs