4 types derived from StubIdentifierContext
Microsoft.Interop.SourceGeneration (4)
DefaultIdentifierContext.cs (1)
8public sealed record DefaultIdentifierContext : StubIdentifierContext
LinearCollectionElementIdentifierContext.cs (1)
9internal sealed record LinearCollectionElementIdentifierContext : StubIdentifierContext
Marshalling\GenericFriendlyPointerIdentifierContext.cs (1)
11internal sealed record GenericFriendlyPointerIdentifierContext : StubIdentifierContext
Marshalling\UnmanagedToManagedOwnershipTrackingStrategy.cs (1)
121file sealed record OwnedValueCodeContext : StubIdentifierContext
338 references to StubIdentifierContext
Microsoft.Interop.ComInterfaceGenerator (13)
Marshallers\ComInterfaceDispatchMarshallingResolver.cs (2)
34public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 36if (context.CurrentStage != StubIdentifierContext.Stage.Unmarshal)
Marshallers\KeepAliveThisMarshaller.cs (2)
11public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 13if (context.CurrentStage != StubIdentifierContext.Stage.NotifyForSuccessfulInvoke)
Marshallers\ManagedHResultExceptionGeneratorResolver.cs (4)
33public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 37if (context.CurrentStage != StubIdentifierContext.Stage.Unmarshal) 58public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 62if (context.CurrentStage != StubIdentifierContext.Stage.Unmarshal)
Marshallers\ObjectUnwrapperResolver.cs (2)
29public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 33if (context.CurrentStage != StubIdentifierContext.Stage.Unmarshal)
Marshallers\StructAsHResultMarshallerFactory.cs (3)
27public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 33case StubIdentifierContext.Stage.Marshal: 39case StubIdentifierContext.Stage.Unmarshal:
Microsoft.Interop.JavaScript.JSImportGenerator (19)
Marshaling\BaseJSGenerator.cs (2)
30public virtual void Generate(IndentedTextWriter writer, StubIdentifierContext context) 33if (context.CurrentStage == StubIdentifierContext.Stage.Setup
Marshaling\FuncJSGenerator.cs (6)
11public override void Generate(IndentedTextWriter writer, StubIdentifierContext context) 18&& ((context.CurrentStage == StubIdentifierContext.Stage.UnmarshalCapture && CodeContext.Direction == MarshalDirection.ManagedToUnmanaged) 19|| (context.CurrentStage == StubIdentifierContext.Stage.Unmarshal && CodeContext.Direction == MarshalDirection.UnmanagedToManaged))) 25&& ((context.CurrentStage == StubIdentifierContext.Stage.Marshal && CodeContext.Direction == MarshalDirection.UnmanagedToManaged) 26|| (context.CurrentStage == StubIdentifierContext.Stage.PinnedMarshal && CodeContext.Direction == MarshalDirection.ManagedToUnmanaged))) 32private void WriteMarshal(IndentedTextWriter writer, StubIdentifierContext context, bool toManaged)
Marshaling\ImplicitArgumentGenerator.cs (2)
8public override void Generate(IndentedTextWriter writer, StubIdentifierContext context) 10if (context.CurrentStage == StubIdentifierContext.Stage.Setup)
Marshaling\PrimitiveJSGenerator.cs (3)
11public override void Generate(IndentedTextWriter writer, StubIdentifierContext context) 19if (context.CurrentStage == StubIdentifierContext.Stage.UnmarshalCapture && marshalDirection is MarshalDirection.UnmanagedToManaged or MarshalDirection.Bidirectional) 24if (context.CurrentStage == StubIdentifierContext.Stage.Marshal && marshalDirection is MarshalDirection.ManagedToUnmanaged or MarshalDirection.Bidirectional)
Marshaling\TaskJSGenerator.cs (6)
10public override void Generate(IndentedTextWriter writer, StubIdentifierContext context) 17&& ((context.CurrentStage == StubIdentifierContext.Stage.UnmarshalCapture && CodeContext.Direction == MarshalDirection.ManagedToUnmanaged) 18|| (context.CurrentStage == StubIdentifierContext.Stage.Unmarshal && CodeContext.Direction == MarshalDirection.UnmanagedToManaged))) 24&& ((context.CurrentStage == StubIdentifierContext.Stage.Marshal && CodeContext.Direction == MarshalDirection.UnmanagedToManaged) 25|| (context.CurrentStage == StubIdentifierContext.Stage.PinnedMarshal && CodeContext.Direction == MarshalDirection.ManagedToUnmanaged))) 31private void WriteMarshal(IndentedTextWriter writer, StubIdentifierContext context, bool toManaged)
Microsoft.Interop.SourceGeneration (306)
BoundGenerators.cs (1)
244public GeneratedMethodSignature GenerateTargetMethodSignatureData(StubIdentifierContext context)
GeneratedStatements.cs (42)
28public static GeneratedStatements Create(BoundGenerators marshallers, StubIdentifierContext context) 33Setup = GenerateStage(StubIdentifierContext.Stage.Setup), 34Marshal = GenerateStage(StubIdentifierContext.Stage.Marshal), 35Pin = GenerateStage(StubIdentifierContext.Stage.Pin), 36PinnedMarshal = GenerateStage(StubIdentifierContext.Stage.PinnedMarshal), 38ErrorUnmarshalCapture = GenerateStage(StubIdentifierContext.Stage.UnmarshalCapture, errorHandlingOnly: true), 39ErrorUnmarshal = GenerateStage(StubIdentifierContext.Stage.Unmarshal, errorHandlingOnly: true), 40Unmarshal = GenerateStage(StubIdentifierContext.Stage.UnmarshalCapture) + GenerateStage(StubIdentifierContext.Stage.Unmarshal), 41NotifyForSuccessfulInvoke = GenerateStage(StubIdentifierContext.Stage.NotifyForSuccessfulInvoke), 42GuaranteedUnmarshal = GenerateStage(StubIdentifierContext.Stage.GuaranteedUnmarshal), 43ErrorCleanupCalleeAllocated = GenerateStage(StubIdentifierContext.Stage.CleanupCalleeAllocated, errorHandlingOnly: true), 44CleanupCallerAllocated = GenerateStage(StubIdentifierContext.Stage.CleanupCallerAllocated), 45CleanupCalleeAllocated = GenerateStage(StubIdentifierContext.Stage.CleanupCalleeAllocated), 49string GenerateStage(StubIdentifierContext.Stage stage, bool errorHandlingOnly = false) 52StubIdentifierContext stageContext = context with { CurrentStage = stage }; 55if (stage is StubIdentifierContext.Stage.UnmarshalCapture 56or StubIdentifierContext.Stage.Unmarshal 57or StubIdentifierContext.Stage.CleanupCalleeAllocated 70public static GeneratedStatements Create(BoundGenerators marshallers, StubCodeContext codeContext, StubIdentifierContext context, string expressionToInvoke) 73StubIdentifierContext invokeContext = context with { CurrentStage = StubIdentifierContext.Stage.Invoke }; 89public static GeneratedStatements CreateForProperty(BoundGenerators marshallers, StubIdentifierContext context, string propertyAccess, bool isSetter) 92StubIdentifierContext invokeContext = context with { CurrentStage = StubIdentifierContext.Stage.Invoke }; 109private static string GenerateStatementForNativeInvoke(BoundGenerators marshallers, StubIdentifierContext context, string expressionToInvoke) 123private static string GenerateStatementForManagedInvoke(BoundGenerators marshallers, StubIdentifierContext context, string expressionToInvoke) 135private static string GenerateCatchClauseForManagedException(BoundGenerators marshallers, StubIdentifierContext context, IndentedTextWriter writer) 148marshaller.Generate(writer, context with { CurrentStage = StubIdentifierContext.Stage.Marshal }); 149marshaller.Generate(writer, context with { CurrentStage = StubIdentifierContext.Stage.PinnedMarshal }); 154private static string GetStageDescription(StubIdentifierContext.Stage stage) 158StubIdentifierContext.Stage.Setup => "Perform required setup.", 159StubIdentifierContext.Stage.Marshal => "Convert managed data to native data.", 160StubIdentifierContext.Stage.Pin => "Pin data in preparation for calling the P/Invoke.", 161StubIdentifierContext.Stage.PinnedMarshal => "Convert managed data to native data that requires the managed data to be pinned.", 162StubIdentifierContext.Stage.Invoke => "Call the P/Invoke.", 163StubIdentifierContext.Stage.UnmarshalCapture => "Capture the native data into marshaller instances in case conversion to managed data throws an exception.", 164StubIdentifierContext.Stage.Unmarshal => "Convert native data to managed data.", 165StubIdentifierContext.Stage.CleanupCallerAllocated => "Perform cleanup of caller allocated resources.", 166StubIdentifierContext.Stage.CleanupCalleeAllocated => "Perform cleanup of callee allocated resources.", 167StubIdentifierContext.Stage.NotifyForSuccessfulInvoke => "Keep alive any managed objects that need to stay alive across the call.", 168StubIdentifierContext.Stage.GuaranteedUnmarshal => "Convert native data to managed data even in the case of an exception during the non-cleanup phases.",
LinearCollectionElementIdentifierContext.cs (2)
11private readonly StubIdentifierContext _globalContext; 28StubIdentifierContext globalContext,
ManagedToNativeStubGenerator.cs (1)
52$"{ReturnIdentifier}{StubIdentifierContext.GeneratedNativeIdentifierSuffix}",
Marshalling\BlittableMarshaller.cs (5)
31public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 40if (context.CurrentStage == StubIdentifierContext.Stage.Pin) 51case StubIdentifierContext.Stage.Setup: 53case StubIdentifierContext.Stage.Marshal: 60case StubIdentifierContext.Stage.Unmarshal:
Marshalling\BoolMarshaller.cs (4)
45public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 51case StubIdentifierContext.Stage.Setup: 53case StubIdentifierContext.Stage.Marshal: 61case StubIdentifierContext.Stage.Unmarshal:
Marshalling\CharMarshaller.cs (6)
42public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 48if (context.CurrentStage == StubIdentifierContext.Stage.Pin) 52else if (context.CurrentStage == StubIdentifierContext.Stage.PinnedMarshal) 65case StubIdentifierContext.Stage.Setup: 67case StubIdentifierContext.Stage.Marshal: 79case StubIdentifierContext.Stage.Unmarshal:
Marshalling\CustomTypeMarshallingGenerator.cs (11)
22public void Generate(IndentedTextWriter writer, StubIdentifierContext context) 29case StubIdentifierContext.Stage.Setup: 32case StubIdentifierContext.Stage.Marshal: 39case StubIdentifierContext.Stage.Pin: 45case StubIdentifierContext.Stage.PinnedMarshal: 51case StubIdentifierContext.Stage.NotifyForSuccessfulInvoke: 57case StubIdentifierContext.Stage.UnmarshalCapture: 63case StubIdentifierContext.Stage.Unmarshal: 70case StubIdentifierContext.Stage.GuaranteedUnmarshal: 77case StubIdentifierContext.Stage.CleanupCallerAllocated: 80case StubIdentifierContext.Stage.CleanupCalleeAllocated:
Marshalling\DelegateMarshaller.cs (5)
23public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 29case StubIdentifierContext.Stage.Setup: 31case StubIdentifierContext.Stage.Marshal: 38case StubIdentifierContext.Stage.Unmarshal: 45case StubIdentifierContext.Stage.NotifyForSuccessfulInvoke:
Marshalling\ElementsMarshalling.cs (50)
16string GetUnmanagedValuesDestination(StubIdentifierContext context); 17string GetManagedValuesSource(StubIdentifierContext context); 18string GetUnmanagedValuesSource(StubIdentifierContext context); 19string GetManagedValuesDestination(StubIdentifierContext context); 34public void GenerateClearUnmanagedDestination(IndentedTextWriter writer, StubIdentifierContext context) 39public void GenerateClearManagedValuesDestination(IndentedTextWriter writer, StubIdentifierContext context) 44public static string GenerateNumElementsExpression(CountInfo count, bool countInfoRequiresCast, StubCodeContext codeContext, StubIdentifierContext context) 70public abstract void GenerateSetupStatement(IndentedTextWriter writer, StubIdentifierContext context); 71public abstract void GenerateUnmanagedToManagedByValueOutMarshalStatement(IndentedTextWriter writer, StubIdentifierContext context); 72public abstract void GenerateMarshalStatement(IndentedTextWriter writer, StubIdentifierContext context); 73public abstract void GenerateManagedToUnmanagedByValueOutUnmarshalStatement(IndentedTextWriter writer, StubIdentifierContext context); 74public abstract void GenerateUnmarshalStatement(IndentedTextWriter writer, StubIdentifierContext context); 75public abstract void GenerateElementCleanupStatement(IndentedTextWriter writer, StubIdentifierContext context); 80public static void GenerateNumElementsAssignmentFromManagedValuesSource(this IElementsMarshallingCollectionSource source, IndentedTextWriter writer, TypePositionInfo info, StubIdentifierContext context) 86public static void GenerateNumElementsAssignmentFromManagedValuesDestination(this IElementsMarshallingCollectionSource source, IndentedTextWriter writer, TypePositionInfo info, StubIdentifierContext context) 101public override void GenerateUnmanagedToManagedByValueOutMarshalStatement(IndentedTextWriter writer, StubIdentifierContext context) 108public override void GenerateMarshalStatement(IndentedTextWriter writer, StubIdentifierContext context) 114public override void GenerateManagedToUnmanagedByValueOutUnmarshalStatement(IndentedTextWriter writer, StubIdentifierContext context) 122public override void GenerateUnmarshalStatement(IndentedTextWriter writer, StubIdentifierContext context) 135public override void GenerateElementCleanupStatement(IndentedTextWriter writer, StubIdentifierContext context) 139public override void GenerateSetupStatement(IndentedTextWriter writer, StubIdentifierContext context) 152public override void GenerateMarshalStatement(IndentedTextWriter writer, StubIdentifierContext context) 168GenerateContentsMarshallingStatement(writer, context, $"{managedSpanIdentifier}.Length", elementMarshaller, StubIdentifierContext.Stage.Marshal); 172public override void GenerateUnmarshalStatement(IndentedTextWriter writer, StubIdentifierContext context) 182StubIdentifierContext.Stage.UnmarshalCapture, StubIdentifierContext.Stage.Unmarshal); 186public override void GenerateManagedToUnmanagedByValueOutUnmarshalStatement(IndentedTextWriter writer, StubIdentifierContext context) 199StubIdentifierContext.Stage.UnmarshalCapture, StubIdentifierContext.Stage.Unmarshal); 203public override void GenerateElementCleanupStatement(IndentedTextWriter writer, StubIdentifierContext context) 232public override void GenerateUnmanagedToManagedByValueOutMarshalStatement(IndentedTextWriter writer, StubIdentifierContext context) 239StubIdentifierContext.Stage[] stagesToGenerate; 243stagesToGenerate = [StubIdentifierContext.Stage.Marshal, StubIdentifierContext.Stage.PinnedMarshal]; 247stagesToGenerate = [StubIdentifierContext.Stage.Marshal, StubIdentifierContext.Stage.PinnedMarshal, StubIdentifierContext.Stage.CleanupCallerAllocated, StubIdentifierContext.Stage.CleanupCalleeAllocated]; 262StubIdentifierContext context, 265params StubIdentifierContext.Stage[] stagesToGeneratePerElement) 277CurrentStage = StubIdentifierContext.Stage.Setup, 282StubIdentifierContext identifierContext = elementSetupSubContext; 292foreach (StubIdentifierContext.Stage stage in stagesToGeneratePerElement) 309elementMarshaller.Generate(writer, identifierContext with { CurrentStage = StubIdentifierContext.Stage.Setup }); 313&& stagesToGeneratePerElement.Any(stage => stage is StubIdentifierContext.Stage.Marshal or StubIdentifierContext.Stage.PinnedMarshal)) 321StubIdentifierContext context, 324params StubIdentifierContext.Stage[] stagesToGeneratePerElement) 335&& stagesToGeneratePerElement.Contains(StubIdentifierContext.Stage.Marshal)) 359public override void GenerateSetupStatement(IndentedTextWriter writer, StubIdentifierContext context)
Marshalling\Forwarder.cs (1)
23public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context)
Marshalling\GenericFriendlyPointerIdentifierContext.cs (2)
13private readonly StubIdentifierContext _innerContext; 17public GenericFriendlyPointerIdentifierContext(StubIdentifierContext inner, TypePositionInfo adaptedInfo, string baseIdentifier)
Marshalling\ICustomTypeMarshallingStrategy.cs (10)
17void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context); 19void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context); 21void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context); 23void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context); 25void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context); 27void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context); 29void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context); 31void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context); 33void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context); 35void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context);
Marshalling\IidParameterIndexMarshallerResolver.cs (2)
33public void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 35if (context.CurrentStage != StubIdentifierContext.Stage.Marshal)
Marshalling\MarshallerHelpers.cs (13)
52public static string GetMarshallerIdentifier(TypePositionInfo info, StubIdentifierContext context) 57public static string GetManagedSpanIdentifier(TypePositionInfo info, StubIdentifierContext context) 62public static string GetNativeSpanIdentifier(TypePositionInfo info, StubIdentifierContext context) 67public static string GetNumElementsIdentifier(TypePositionInfo info, StubIdentifierContext context) 72public static string GetLastIndexMarshalledIdentifier(TypePositionInfo info, StubIdentifierContext context) 82public static string GetIndexedManagedElementExpression(TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context) 219public static string SkipInitOrDefaultInit(TypePositionInfo info, StubIdentifierContext context) 236public static string DefaultInit(TypePositionInfo info, StubIdentifierContext context) 312public static StubIdentifierContext.Stage GetCleanupStage(TypePositionInfo info, StubCodeContext context) 318return StubIdentifierContext.Stage.CleanupCallerAllocated; 322MarshalDirection.UnmanagedToManaged => StubIdentifierContext.Stage.CleanupCalleeAllocated, 323MarshalDirection.ManagedToUnmanaged => StubIdentifierContext.Stage.CleanupCallerAllocated, 324MarshalDirection.Bidirectional => StubIdentifierContext.Stage.CleanupCallerAllocated,
Marshalling\MarshallingGenerator.cs (3)
117void Generate(IndentedTextWriter writer, StubIdentifierContext context); 164public void Generate(IndentedTextWriter writer, StubIdentifierContext context) => unbound.Generate(writer, TypeInfo, CodeContext, context); 226void Generate(IndentedTextWriter writer, TypePositionInfo info, StubCodeContext codeContext, StubIdentifierContext context);
Marshalling\MarshallingGeneratorExtensions.cs (4)
45public static GeneratedParameter AsParameter(this IBoundMarshallingGenerator generator, StubIdentifierContext context) 119public static string AsArgument(this IBoundMarshallingGenerator generator, StubIdentifierContext context) 134public static string AsManagedArgument(this IBoundMarshallingGenerator generator, StubIdentifierContext context) 143public static string GenerateNativeByRefInitialization(this IBoundMarshallingGenerator generator, StubIdentifierContext context)
Marshalling\StatefulMarshallingStrategy.cs (49)
15public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 17if (MarshallerHelpers.GetCleanupStage(info, stubContext) is StubIdentifierContext.Stage.CleanupCallerAllocated 24public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 26if (MarshallerHelpers.GetCleanupStage(info, stubContext) is StubIdentifierContext.Stage.CleanupCalleeAllocated 33public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 41public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 49public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 57public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 65public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) 73public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) 80public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) 89public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) 97public static string GetMarshallerIdentifier(TypePositionInfo info, StubIdentifierContext context) 113public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateCleanupCallerAllocatedResourcesStatements(writer, context); 114public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateCleanupCalleeAllocatedResourcesStatements(writer, context); 116public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 129public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinnedMarshalStatements(writer, context); 130public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinStatements(writer, context); 131public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateSetupStatements(writer, context); 132public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalCaptureStatements(writer, context); 133public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalStatements(writer, context); 134public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateGuaranteedUnmarshalStatements(writer, context); 135public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(writer, context); 143public string GetUnmanagedValuesDestination(StubIdentifierContext context) 149public string GetManagedValuesSource(StubIdentifierContext context) 155public string GetUnmanagedValuesSource(StubIdentifierContext context) 162public string GetManagedValuesDestination(StubIdentifierContext context) 186public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 195public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 203public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateGuaranteedUnmarshalStatements(writer, context); 205public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 226public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(writer, context); 227public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinnedMarshalStatements(writer, context); 228public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinStatements(writer, context); 230public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) 250public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 273public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalCaptureStatements(writer, context); 286public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 289if (MarshallerHelpers.GetCleanupStage(TypeInfo, CodeContext) is StubIdentifierContext.Stage.CleanupCallerAllocated) 295public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 298if (MarshallerHelpers.GetCleanupStage(TypeInfo, CodeContext) is StubIdentifierContext.Stage.CleanupCalleeAllocated) 304public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateGuaranteedUnmarshalStatements(writer, context); 305public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateMarshalStatements(writer, context); 306public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(writer, context); 307public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinnedMarshalStatements(writer, context); 308public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinStatements(writer, context); 309public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateSetupStatements(writer, context); 310public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalStatements(writer, context); 311public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalCaptureStatements(writer, context);
Marshalling\StatelessMarshallingStrategy.cs (60)
16public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 20public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 24public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 33public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 54public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 58public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 67public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) 71public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) 75public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) 79public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) 94public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateCleanupCallerAllocatedResourcesStatements(writer, context); 95public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateCleanupCalleeAllocatedResourcesStatements(writer, context); 96public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateGuaranteedUnmarshalStatements(writer, context); 98public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 122public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinnedMarshalStatements(writer, context); 123public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinStatements(writer, context); 124public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateSetupStatements(writer, context); 125public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalCaptureStatements(writer, context); 126public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalStatements(writer, context); 127public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(writer, context); 137public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 139if (MarshallerHelpers.GetCleanupStage(TypeInfo, CodeContext) is not StubIdentifierContext.Stage.CleanupCallerAllocated) 148public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 150if (MarshallerHelpers.GetCleanupStage(TypeInfo, CodeContext) is not StubIdentifierContext.Stage.CleanupCalleeAllocated) 159public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateGuaranteedUnmarshalStatements(writer, context); 160public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateMarshalStatements(writer, context); 161public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(writer, context); 162public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinnedMarshalStatements(writer, context); 163public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinStatements(writer, context); 164public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateSetupStatements(writer, context); 165public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalCaptureStatements(writer, context); 166public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalStatements(writer, context); 179public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 181if (MarshallerHelpers.GetCleanupStage(TypeInfo, CodeContext) is StubIdentifierContext.Stage.CleanupCallerAllocated 189public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 191if (MarshallerHelpers.GetCleanupStage(TypeInfo, CodeContext) is StubIdentifierContext.Stage.CleanupCalleeAllocated 199public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 212public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 224public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) 228public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 232public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) 236public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) 247public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) 251public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 274public string GetUnmanagedValuesDestination(StubIdentifierContext context) 281public string GetManagedValuesSource(StubIdentifierContext context) 287public string GetUnmanagedValuesSource(StubIdentifierContext context) 294public string GetManagedValuesDestination(StubIdentifierContext context) 318public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 346if (MarshallerHelpers.GetCleanupStage(TypeInfo, CodeContext) is StubIdentifierContext.Stage.CleanupCallerAllocated) 352public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 371if (MarshallerHelpers.GetCleanupStage(TypeInfo, CodeContext) is StubIdentifierContext.Stage.CleanupCallerAllocated) 377public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => spaceMarshallingStrategy.GenerateGuaranteedUnmarshalStatements(writer, context); 379public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 399public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) => spaceMarshallingStrategy.GenerateNotifyForSuccessfulInvokeStatements(writer, context); 400public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => spaceMarshallingStrategy.GeneratePinnedMarshalStatements(writer, context); 401public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) => spaceMarshallingStrategy.GeneratePinStatements(writer, context); 403public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) 409public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) 413public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context)
Marshalling\StaticPinnableManagedValueMarshaller.cs (3)
35public void Generate(IndentedTextWriter writer, StubIdentifierContext context) 64private void GeneratePinningPath(IndentedTextWriter writer, StubIdentifierContext context) 66if (context.CurrentStage == StubIdentifierContext.Stage.Pin)
Marshalling\UnmanagedToManagedOwnershipTrackingStrategy.cs (28)
17public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateCleanupCallerAllocatedResourcesStatements(writer, context); 18public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateCleanupCalleeAllocatedResourcesStatements(writer, context); 19public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateGuaranteedUnmarshalStatements(writer, context); 21public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) 28public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(writer, context); 29public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinnedMarshalStatements(writer, context); 30public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinStatements(writer, context); 32public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) 39public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalCaptureStatements(writer, context); 40public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalStatements(writer, context); 53public void GenerateCleanupCallerAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 55if (MarshallerHelpers.GetCleanupStage(TypeInfo, CodeContext) is not StubIdentifierContext.Stage.CleanupCallerAllocated) 67public void GenerateCleanupCalleeAllocatedResourcesStatements(IndentedTextWriter writer, StubIdentifierContext context) 69if (MarshallerHelpers.GetCleanupStage(TypeInfo, CodeContext) is not StubIdentifierContext.Stage.CleanupCalleeAllocated) 81public void GenerateGuaranteedUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateGuaranteedUnmarshalStatements(writer, context); 82public void GenerateMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateMarshalStatements(writer, context); 83public void GenerateNotifyForSuccessfulInvokeStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(writer, context); 84public void GeneratePinnedMarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinnedMarshalStatements(writer, context); 85public void GeneratePinStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GeneratePinStatements(writer, context); 86public void GenerateSetupStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateSetupStatements(writer, context); 87public void GenerateUnmarshalCaptureStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalCaptureStatements(writer, context); 88public void GenerateUnmarshalStatements(IndentedTextWriter writer, StubIdentifierContext context) => innerMarshaller.GenerateUnmarshalStatements(writer, context); 103public void Generate(IndentedTextWriter writer, StubIdentifierContext context) 105if (context.CurrentStage == StubIdentifierContext.Stage.Setup) 112inner.Generate(writer, context.CurrentStage == StubIdentifierContext.Stage.CleanupCallerAllocated 123private readonly StubIdentifierContext _innerContext; 125public OwnedValueCodeContext(StubIdentifierContext innerContext) 145public static void DeclareOriginalValueIdentifier(IndentedTextWriter writer, TypePositionInfo info, StubIdentifierContext context, ManagedTypeInfo nativeType)
UnmanagedToManagedStubGenerator.cs (2)
14private readonly StubIdentifierContext _context; 27_context = new DefaultIdentifierContext(ReturnIdentifier, $"{ReturnIdentifier}{StubIdentifierContext.GeneratedNativeIdentifierSuffix}", MarshalDirection.UnmanagedToManaged);
VariableDeclarations.cs (2)
10public static VariableDeclarations GenerateDeclarationsForManagedToUnmanaged(BoundGenerators marshallers, StubIdentifierContext context, bool initializeDeclarations) 62public static VariableDeclarations GenerateDeclarationsForUnmanagedToManaged(BoundGenerators marshallers, StubIdentifierContext context, bool initializeDeclarations)