C# Class IronPython.Modules.CTypes._CFuncPtr.Meta.ArgumentMarshaller

Base class for marshalling arguments from the user provided value to the call stub. This class provides the logic for creating the call stub and calling it.
Show file Open project: jschementi/iron

Public Methods

Method Description
ArgumentMarshaller ( Expression container ) : System.Linq.Expressions
EmitCallStubArgument ( ILGenerator generator, int argIndex, List constantPool, int constantPoolArgument ) : IronPython.Modules.MarshalCleanup

Emits the IL to get the argument for the call stub generated into a dynamic method.

GetKeepAlive ( ) : Expression

Gets an expression which keeps alive the argument for the duration of the call. Returns null if a keep alive is not necessary.

GetRestrictions ( ) : BindingRestrictions

Method Details

ArgumentMarshaller() public method

public ArgumentMarshaller ( Expression container ) : System.Linq.Expressions
container Expression
return System.Linq.Expressions

EmitCallStubArgument() public abstract method

Emits the IL to get the argument for the call stub generated into a dynamic method.
public abstract EmitCallStubArgument ( ILGenerator generator, int argIndex, List constantPool, int constantPoolArgument ) : IronPython.Modules.MarshalCleanup
generator System.Reflection.Emit.ILGenerator
argIndex int
constantPool List
constantPoolArgument int
return IronPython.Modules.MarshalCleanup

GetKeepAlive() public method

Gets an expression which keeps alive the argument for the duration of the call. Returns null if a keep alive is not necessary.
public GetKeepAlive ( ) : Expression
return Expression

GetRestrictions() public method

public GetRestrictions ( ) : BindingRestrictions
return BindingRestrictions