Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Actions / CallSiteOps.cs / 1305376 / CallSiteOps.cs
/* ****************************************************************************
*
* Copyright (c) Microsoft Corporation.
*
* This source code is subject to terms and conditions of the Microsoft Public License. A
* copy of the license can be found in the License.html file at the root of this distribution. If
* you cannot locate the Microsoft Public License, please send an email to
* dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
* by the terms of the Microsoft Public License.
*
* You must not remove this notice, or any other, from this software.
*
*
* ***************************************************************************/
using System.ComponentModel;
using System.Diagnostics;
using System.Dynamic;
using System.Linq.Expressions;
using System.Collections.Generic;
namespace System.Runtime.CompilerServices {
// Conceptually these are instance methods on CallSite but
// we don't want users to see them
///
/// This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.
///
[EditorBrowsable(EditorBrowsableState.Never), DebuggerStepThrough]
public static class CallSiteOps {
///
/// Creates an instance of a dynamic call site used for cache lookup.
///
/// The type of the delegate of the .
/// The new call site.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static CallSite CreateMatchmaker(CallSite site) where T : class {
var mm = site.CreateMatchMaker();
CallSiteOps.ClearMatch(mm);
return mm;
}
///
/// Checks if a dynamic site requires an update.
///
/// An instance of the dynamic call site.
/// true if rule does not need updating, false otherwise.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static bool SetNotMatched(CallSite site) {
var res = site._match;
site._match = false; //avoid branch here to make sure the method is inlined
return res;
}
///
/// Checks whether the executed rule matched
///
/// An instance of the dynamic call site.
/// true if rule matched, false otherwise.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static bool GetMatch(CallSite site) {
return site._match;
}
///
/// Clears the match flag on the matchmaker call site.
///
/// An instance of the dynamic call site.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static void ClearMatch(CallSite site) {
site._match = true;
}
///
/// Adds a rule to the cache maintained on the dynamic call site.
///
/// The type of the delegate of the .
/// An instance of the dynamic call site.
/// An instance of the call site rule.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static void AddRule(CallSite site, T rule) where T : class {
site.AddRule(rule);
}
///
/// Updates rules in the cache.
///
/// The type of the delegate of the .
/// An instance of the dynamic call site.
/// The matched rule index.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static void UpdateRules(CallSite @this, int matched) where T : class {
if (matched > 1) {
@this.MoveRule(matched);
}
}
///
/// Gets the dynamic binding rules from the call site.
///
/// The type of the delegate of the .
/// An instance of the dynamic call site.
/// An array of dynamic binding rules.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static T[] GetRules(CallSite site) where T : class {
return site.Rules;
}
///
/// Retrieves binding rule cache.
///
/// The type of the delegate of the .
/// An instance of the dynamic call site.
/// The cache.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static RuleCache GetRuleCache(CallSite site) where T : class {
return site.Binder.GetRuleCache();
}
///
/// Moves the binding rule within the cache.
///
/// The type of the delegate of the .
/// The call site rule cache.
/// An instance of the call site rule.
/// An index of the call site rule.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static void MoveRule(RuleCache cache, T rule, int i) where T : class {
if (i > 1) {
cache.MoveRule(rule, i);
}
}
///
/// Searches the dynamic rule cache for rules applicable to the dynamic operation.
///
/// The type of the delegate of the .
/// The cache.
/// The collection of applicable rules.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static T[] GetCachedRules(RuleCache cache) where T : class {
return cache.GetRules();
}
///
/// Updates the call site target with a new rule based on the arguments.
///
/// The type of the delegate of the .
/// The call site binder.
/// An instance of the dynamic call site.
/// Arguments to the call site.
/// The new call site target.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static T Bind(CallSiteBinder binder, CallSite site, object[] args) where T : class {
return binder.BindCore(site, args);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
/* ****************************************************************************
*
* Copyright (c) Microsoft Corporation.
*
* This source code is subject to terms and conditions of the Microsoft Public License. A
* copy of the license can be found in the License.html file at the root of this distribution. If
* you cannot locate the Microsoft Public License, please send an email to
* dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
* by the terms of the Microsoft Public License.
*
* You must not remove this notice, or any other, from this software.
*
*
* ***************************************************************************/
using System.ComponentModel;
using System.Diagnostics;
using System.Dynamic;
using System.Linq.Expressions;
using System.Collections.Generic;
namespace System.Runtime.CompilerServices {
// Conceptually these are instance methods on CallSite but
// we don't want users to see them
///
/// This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.
///
[EditorBrowsable(EditorBrowsableState.Never), DebuggerStepThrough]
public static class CallSiteOps {
///
/// Creates an instance of a dynamic call site used for cache lookup.
///
/// The type of the delegate of the .
/// The new call site.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static CallSite CreateMatchmaker(CallSite site) where T : class {
var mm = site.CreateMatchMaker();
CallSiteOps.ClearMatch(mm);
return mm;
}
///
/// Checks if a dynamic site requires an update.
///
/// An instance of the dynamic call site.
/// true if rule does not need updating, false otherwise.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static bool SetNotMatched(CallSite site) {
var res = site._match;
site._match = false; //avoid branch here to make sure the method is inlined
return res;
}
///
/// Checks whether the executed rule matched
///
/// An instance of the dynamic call site.
/// true if rule matched, false otherwise.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static bool GetMatch(CallSite site) {
return site._match;
}
///
/// Clears the match flag on the matchmaker call site.
///
/// An instance of the dynamic call site.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static void ClearMatch(CallSite site) {
site._match = true;
}
///
/// Adds a rule to the cache maintained on the dynamic call site.
///
/// The type of the delegate of the .
/// An instance of the dynamic call site.
/// An instance of the call site rule.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static void AddRule(CallSite site, T rule) where T : class {
site.AddRule(rule);
}
///
/// Updates rules in the cache.
///
/// The type of the delegate of the .
/// An instance of the dynamic call site.
/// The matched rule index.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static void UpdateRules(CallSite @this, int matched) where T : class {
if (matched > 1) {
@this.MoveRule(matched);
}
}
///
/// Gets the dynamic binding rules from the call site.
///
/// The type of the delegate of the .
/// An instance of the dynamic call site.
/// An array of dynamic binding rules.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static T[] GetRules(CallSite site) where T : class {
return site.Rules;
}
///
/// Retrieves binding rule cache.
///
/// The type of the delegate of the .
/// An instance of the dynamic call site.
/// The cache.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static RuleCache GetRuleCache(CallSite site) where T : class {
return site.Binder.GetRuleCache();
}
///
/// Moves the binding rule within the cache.
///
/// The type of the delegate of the .
/// The call site rule cache.
/// An instance of the call site rule.
/// An index of the call site rule.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static void MoveRule(RuleCache cache, T rule, int i) where T : class {
if (i > 1) {
cache.MoveRule(rule, i);
}
}
///
/// Searches the dynamic rule cache for rules applicable to the dynamic operation.
///
/// The type of the delegate of the .
/// The cache.
/// The collection of applicable rules.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static T[] GetCachedRules(RuleCache cache) where T : class {
return cache.GetRules();
}
///
/// Updates the call site target with a new rule based on the arguments.
///
/// The type of the delegate of the .
/// The call site binder.
/// An instance of the dynamic call site.
/// Arguments to the call site.
/// The new call site target.
[Obsolete("do not use this method", true), EditorBrowsable(EditorBrowsableState.Never)]
public static T Bind(CallSiteBinder binder, CallSite site, object[] args) where T : class {
return binder.BindCore(site, args);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DbProviderServices.cs
- FormsAuthenticationUserCollection.cs
- CodeAttributeDeclaration.cs
- SpecialFolderEnumConverter.cs
- UnsupportedPolicyOptionsException.cs
- FileLogRecordEnumerator.cs
- ViewEventArgs.cs
- AsyncStreamReader.cs
- SignerInfo.cs
- IntSecurity.cs
- DataPagerFieldCommandEventArgs.cs
- XsdBuilder.cs
- DataGridViewCellStyle.cs
- ImpersonationOption.cs
- ServiceModelInstallComponent.cs
- Literal.cs
- XmlSchemaSet.cs
- Comparer.cs
- CompositeCollection.cs
- LogStream.cs
- PhysicalOps.cs
- EntityDataSourceMemberPath.cs
- XmlSchemaExternal.cs
- TemplateBamlTreeBuilder.cs
- EndOfStreamException.cs
- DataTransferEventArgs.cs
- ListMarkerLine.cs
- XmlAtomicValue.cs
- RelatedEnd.cs
- LoginCancelEventArgs.cs
- NavigationProperty.cs
- AdapterDictionary.cs
- ThreadAbortException.cs
- SynchronizedRandom.cs
- DbProviderFactory.cs
- CodeTypeReferenceExpression.cs
- BorderGapMaskConverter.cs
- BinarySecretKeyIdentifierClause.cs
- JavascriptCallbackMessageInspector.cs
- ReaderWriterLockWrapper.cs
- DataGridRow.cs
- SqlBuffer.cs
- BamlStream.cs
- PrintDialog.cs
- CoreSwitches.cs
- Application.cs
- ContentType.cs
- ContentPathSegment.cs
- TypeUtil.cs
- EncodingTable.cs
- ImageListStreamer.cs
- WindowsListViewScroll.cs
- DataGridViewLinkColumn.cs
- MediaScriptCommandRoutedEventArgs.cs
- XmlQualifiedName.cs
- DocumentPage.cs
- PaginationProgressEventArgs.cs
- GcSettings.cs
- Vector3DCollection.cs
- ApplicationFileParser.cs
- FrameworkRichTextComposition.cs
- MatrixCamera.cs
- MultiAsyncResult.cs
- XAMLParseException.cs
- SafeSecurityHandles.cs
- LinearKeyFrames.cs
- CopyCodeAction.cs
- RelationshipConstraintValidator.cs
- OptimizerPatterns.cs
- DataRow.cs
- CheckBoxBaseAdapter.cs
- WmlTextViewAdapter.cs
- NativeMethods.cs
- BuilderPropertyEntry.cs
- BitmapImage.cs
- DLinqDataModelProvider.cs
- PagedDataSource.cs
- EncryptRequest.cs
- ExpressionParser.cs
- IDReferencePropertyAttribute.cs
- OpenTypeCommon.cs
- DesignerMetadata.cs
- XmlUTF8TextReader.cs
- DesignerSerializationVisibilityAttribute.cs
- CacheAxisQuery.cs
- ButtonStandardAdapter.cs
- SecurityChannelListener.cs
- CodeComment.cs
- CompositionTarget.cs
- UIElement3D.cs
- OpacityConverter.cs
- PropertyFilterAttribute.cs
- Rect3D.cs
- NumericPagerField.cs
- TreeNodeStyleCollection.cs
- BamlTreeUpdater.cs
- GeneralTransform2DTo3DTo2D.cs
- DataContext.cs
- ActivatedMessageQueue.cs
- Comparer.cs