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
- Version.cs
- infer.cs
- ReservationCollection.cs
- ScriptingWebServicesSectionGroup.cs
- HeaderElement.cs
- CodeLabeledStatement.cs
- ObjectListItemCollection.cs
- UserPreferenceChangingEventArgs.cs
- JsonDeserializer.cs
- Pens.cs
- EdmRelationshipRoleAttribute.cs
- OleDbTransaction.cs
- OleDbReferenceCollection.cs
- StaticContext.cs
- SrgsItemList.cs
- XmlSchema.cs
- BoolLiteral.cs
- GreenMethods.cs
- CompilerResults.cs
- SeekStoryboard.cs
- xsdvalidator.cs
- SafeNativeMethods.cs
- DataGridViewComboBoxEditingControl.cs
- ErrorsHelper.cs
- InterleavedZipPartStream.cs
- SymmetricSecurityProtocolFactory.cs
- ExitEventArgs.cs
- InstancePersistence.cs
- UriSection.cs
- GeneratedContractType.cs
- ItemMap.cs
- Mappings.cs
- TypeDelegator.cs
- SQLMoney.cs
- CssClassPropertyAttribute.cs
- StatusBarItem.cs
- UpWmlPageAdapter.cs
- SignatureHelper.cs
- BitStream.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- UrlMapping.cs
- XmlFormatMapping.cs
- TextProperties.cs
- HtmlEncodedRawTextWriter.cs
- DynamicDiscoSearcher.cs
- ConnectionConsumerAttribute.cs
- ValidatedControlConverter.cs
- StateChangeEvent.cs
- HttpFormatExtensions.cs
- JsonReaderDelegator.cs
- ExpressionStringBuilder.cs
- IISUnsafeMethods.cs
- basemetadatamappingvisitor.cs
- Stylesheet.cs
- XmlEventCache.cs
- TextLine.cs
- DragStartedEventArgs.cs
- EventLogTraceListener.cs
- ToolZone.cs
- MessageQueueEnumerator.cs
- SerializationAttributes.cs
- WsdlInspector.cs
- bidPrivateBase.cs
- TreeNodeEventArgs.cs
- PropertyEmitterBase.cs
- HttpMethodConstraint.cs
- GridItemPattern.cs
- PtsContext.cs
- Site.cs
- NullableDoubleAverageAggregationOperator.cs
- ReachFixedPageSerializer.cs
- Int16Converter.cs
- FieldBuilder.cs
- WrapPanel.cs
- PromptEventArgs.cs
- DivideByZeroException.cs
- DefaultAuthorizationContext.cs
- AdPostCacheSubstitution.cs
- DbMetaDataFactory.cs
- ResumeStoryboard.cs
- NamedPipeActivation.cs
- X509ChainElement.cs
- PlainXmlDeserializer.cs
- AddInDeploymentState.cs
- ProfilePropertyMetadata.cs
- QuestionEventArgs.cs
- MappingModelBuildProvider.cs
- IdleTimeoutMonitor.cs
- BridgeDataReader.cs
- ConditionalAttribute.cs
- StylusEditingBehavior.cs
- AsmxEndpointPickerExtension.cs
- BinaryUtilClasses.cs
- UpdateTranslator.cs
- Utilities.cs
- keycontainerpermission.cs
- RSAPKCS1SignatureFormatter.cs
- DefinitionBase.cs
- HtmlInputRadioButton.cs
- NativeMethods.cs