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
- PageFunction.cs
- EntityContainer.cs
- PageContentCollection.cs
- ExtractorMetadata.cs
- SplineKeyFrames.cs
- RelationalExpressions.cs
- DrawingCollection.cs
- ContentFileHelper.cs
- ModelPropertyCollectionImpl.cs
- ScalarType.cs
- QuadraticBezierSegment.cs
- MembershipUser.cs
- GlyphsSerializer.cs
- ReliableMessagingHelpers.cs
- StoreItemCollection.cs
- Trace.cs
- SerializableAuthorizationContext.cs
- ActivationArguments.cs
- DrawingContextDrawingContextWalker.cs
- OrderByExpression.cs
- VisualTreeHelper.cs
- DefaultValueAttribute.cs
- SqlConnectionStringBuilder.cs
- Part.cs
- ResizeGrip.cs
- QueryCacheManager.cs
- JoinTreeNode.cs
- PointF.cs
- TemplateContentLoader.cs
- SHA384CryptoServiceProvider.cs
- SqlConnectionString.cs
- DataGridBoundColumn.cs
- EncoderFallback.cs
- BasePropertyDescriptor.cs
- MaxValueConverter.cs
- ActivityExecutionContextCollection.cs
- GridViewRowEventArgs.cs
- EllipseGeometry.cs
- WaitForChangedResult.cs
- DomainUpDown.cs
- CodeTypeMemberCollection.cs
- arabicshape.cs
- IPAddress.cs
- Pkcs7Recipient.cs
- PagesSection.cs
- ProxyDataContractResolver.cs
- ExtensionCollection.cs
- SmiMetaDataProperty.cs
- WindowHideOrCloseTracker.cs
- ThicknessAnimation.cs
- ParameterBuilder.cs
- ProofTokenCryptoHandle.cs
- DataTableCollection.cs
- WizardSideBarListControlItem.cs
- LayoutTableCell.cs
- CryptoApi.cs
- EventArgs.cs
- RecordsAffectedEventArgs.cs
- WorkflowServiceHost.cs
- ItemContainerPattern.cs
- SqlDataSourceView.cs
- ListViewEditEventArgs.cs
- EntityException.cs
- XmlDownloadManager.cs
- MouseCaptureWithinProperty.cs
- Fonts.cs
- VirtualPath.cs
- ConfigurationStrings.cs
- DataGridViewMethods.cs
- HtmlTableCellCollection.cs
- CachingHintValidation.cs
- Formatter.cs
- InvalidComObjectException.cs
- BooleanAnimationUsingKeyFrames.cs
- AtlasWeb.Designer.cs
- QilGeneratorEnv.cs
- VisualTarget.cs
- GeneratedContractType.cs
- ChannelProtectionRequirements.cs
- CustomTypeDescriptor.cs
- Version.cs
- BamlWriter.cs
- HttpContextWrapper.cs
- CollectionViewProxy.cs
- MessageCredentialType.cs
- SmiRequestExecutor.cs
- ColumnResizeAdorner.cs
- PolyQuadraticBezierSegment.cs
- DataGridViewButtonCell.cs
- SemaphoreFullException.cs
- StylusEditingBehavior.cs
- TimeoutValidationAttribute.cs
- HierarchicalDataSourceControl.cs
- ContentHostHelper.cs
- TableLayoutPanel.cs
- Point3DCollection.cs
- BindingList.cs
- Substitution.cs
- RemoveFromCollection.cs
- View.cs