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