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
- ObjectManager.cs
- DataServiceHost.cs
- SettingsPropertyNotFoundException.cs
- PlanCompilerUtil.cs
- QuaternionValueSerializer.cs
- SlotInfo.cs
- ListViewInsertEventArgs.cs
- PrtCap_Public.cs
- TextRangeBase.cs
- MouseButtonEventArgs.cs
- CodeStatement.cs
- Utils.cs
- MultiPageTextView.cs
- SafeCertificateContext.cs
- TableLayoutPanelBehavior.cs
- NegotiateStream.cs
- VisualCollection.cs
- NegatedCellConstant.cs
- Types.cs
- WpfKnownType.cs
- StackBuilderSink.cs
- DependencyPropertyChangedEventArgs.cs
- ExpressionTextBoxAutomationPeer.cs
- HotSpotCollection.cs
- SingleObjectCollection.cs
- FontFamilyConverter.cs
- EdmFunctionAttribute.cs
- XmlSchemaExporter.cs
- DeferredTextReference.cs
- BindingGroup.cs
- GlobalProxySelection.cs
- ArgumentNullException.cs
- DateTimeSerializationSection.cs
- Util.cs
- ContractReference.cs
- PersonalizationDictionary.cs
- TextServicesDisplayAttribute.cs
- LocalizationComments.cs
- BufferedStream.cs
- InputLanguageManager.cs
- Line.cs
- RichTextBox.cs
- IPAddressCollection.cs
- CalendarAutomationPeer.cs
- CellTreeNodeVisitors.cs
- PrintingPermissionAttribute.cs
- TrustSection.cs
- Literal.cs
- WebPartsSection.cs
- WebPartEditVerb.cs
- WebEvents.cs
- XmlSchemaSequence.cs
- SelectionPattern.cs
- OleDbReferenceCollection.cs
- OciEnlistContext.cs
- AuthenticationModuleElementCollection.cs
- XmlUtf8RawTextWriter.cs
- BaseProcessor.cs
- EventBuilder.cs
- KeyProperty.cs
- TransformedBitmap.cs
- PasswordPropertyTextAttribute.cs
- TimeSpanConverter.cs
- SamlSecurityTokenAuthenticator.cs
- RunClient.cs
- WeakReferenceKey.cs
- ObjectTokenCategory.cs
- ADMembershipUser.cs
- BrushMappingModeValidation.cs
- tabpagecollectioneditor.cs
- ObjRef.cs
- VectorAnimationUsingKeyFrames.cs
- Rfc2898DeriveBytes.cs
- StdValidatorsAndConverters.cs
- RecordManager.cs
- XmlSchemaComplexContent.cs
- XmlSchemaSubstitutionGroup.cs
- linebase.cs
- TrimSurroundingWhitespaceAttribute.cs
- SrgsElementList.cs
- StrokeNodeOperations2.cs
- SafeCloseHandleCritical.cs
- VBCodeProvider.cs
- ContainerControl.cs
- FileRecordSequenceCompletedAsyncResult.cs
- IntSecurity.cs
- RadioButtonPopupAdapter.cs
- XmlSchemaSimpleTypeList.cs
- TypeReference.cs
- TokenFactoryBase.cs
- RegistryPermission.cs
- _ConnectOverlappedAsyncResult.cs
- BooleanExpr.cs
- Process.cs
- ViewStateException.cs
- MediaCommands.cs
- DBCSCodePageEncoding.cs
- ToolStripContainerDesigner.cs
- AppearanceEditorPart.cs
- PageBuildProvider.cs