Esempio n. 1
0
 public virtual TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement) =>
 implementation.GetMarshalTypeSyntax(csElement);
 public bool CanMarshal(CsMarshalBase csElement)
 {
     return(csElement.IsArray && csElement.IsInterface);
 }
 public bool CanMarshal(CsMarshalBase csElement) => csElement.IsValueType && csElement.IsArray &&
 !csElement.MappedToDifferentPublicType &&
 csElement is CsField;
Esempio n. 4
0
 public StatementSyntax GenerateNativeToManaged(CsMarshalBase csElement, bool singleStackFrame) => null;
 public bool CanMarshal(CsMarshalBase csElement) => csElement.HasNativeValueType && !csElement.IsArray;
 public bool CanMarshal(CsMarshalBase csElement)
 {
     return(csElement is CsField field && field.IsBitField);
 }
Esempio n. 7
0
 public SyntaxToken GetMarshalStorageLocationIdentifier(CsMarshalBase csElement)
 {
     return(MarshallerBase.GetMarshalStorageLocationIdentifier(csElement));
 }
 public StatementSyntax GenerateNativeToManaged(CsMarshalBase csElement, bool singleStackFrame)
 {
     return(ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression,
                                                     IdentifierName(csElement.Name),
                                                     GetMarshalStorageLocation(csElement))));
 }
Esempio n. 9
0
 public bool CanMarshal(CsMarshalBase csElement) => csElement.IsInterfaceArray;
Esempio n. 10
0
 public StatementSyntax GenerateNativeCleanup(CsMarshalBase csElement, bool singleStackFrame)
 {
     return(GenerateGCKeepAlive(csElement));
 }
 public bool CanMarshal(CsMarshalBase csElement)
 {
     return(csElement is CsField);
 }
Esempio n. 12
0
 public override bool CanMarshal(CsMarshalBase csElement) => csElement.IsBoolToInt && csElement.IsArray;
 public StatementSyntax GenerateNativeToManaged(CsMarshalBase csElement, bool singleStackFrame) =>
 LoopThroughArrayParameter(
     csElement,
     (publicElement, marshalElement) =>
     CreateMarshalStructStatement(csElement, StructMarshalMethod.From, publicElement, marshalElement)
     );
 public TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement) =>
 PointerType(ParseTypeName($"{csElement.PublicType.QualifiedName}.__Native"));
Esempio n. 15
0
 public override bool CanMarshal(CsMarshalBase csElement) => csElement.IsArray && csElement.IsInterface;
Esempio n. 16
0
 public TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement) => IntPtrType;
Esempio n. 17
0
 public static bool IsApplicable(CsMarshalBase csElement) => csElement is CsParameter
 {
 public abstract StatementSyntax GenerateNativeCleanup(CsMarshalBase csElement, bool singleStackFrame);
Esempio n. 19
0
 public bool CanMarshal(CsMarshalBase csElement) =>
 csElement is CsParameter
 {
Esempio n. 20
0
 public StatementSyntax GenerateManagedToNative(CsMarshalBase csElement, bool singleStackFrame)
 {
     return(null);
 }
Esempio n. 21
0
 public bool CanMarshal(CsMarshalBase csElement) =>
 csElement.PublicType is CsEnum && !csElement.IsArray && csElement is CsParameter;
Esempio n. 22
0
 public TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement)
 {
     return(PointerType(ParseTypeName(csElement.PublicType.QualifiedName)));
 }
Esempio n. 23
0
 public TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement) =>
 ParseTypeName(csElement.PublicType.QualifiedName);
Esempio n. 24
0
 public override StatementSyntax GenerateManagedToNative(CsMarshalBase csElement, bool singleStackFrame) =>
 LoopThroughArrayParameter(
     csElement,
     (publicElement, marshalElement) =>
     MarshalInterfaceInstanceToNative(csElement, publicElement, marshalElement)
     );
 public TypeSyntax GetMarshalTypeSyntax(CsMarshalBase csElement)
 {
     return(PointerType(IntPtrType));
 }
Esempio n. 26
0
 public override StatementSyntax GenerateNativeCleanup(CsMarshalBase csElement, bool singleStackFrame) =>
 GenerateGCKeepAlive(csElement);
 public StatementSyntax GenerateNativeCleanup(CsMarshalBase csElement, bool singleStackFrame)
 {
     return(null);
 }
Esempio n. 28
0
 public override StatementSyntax GenerateNativeToManaged(CsMarshalBase csElement, bool singleStackFrame) =>
 csElement switch
 {
 public StatementSyntax GenerateManagedToNative(CsMarshalBase csElement, bool singleStackFrame) =>
 GenerateCopyMemory(csElement, false);
Esempio n. 30
0
 public virtual bool CanMarshal(CsMarshalBase csElement) => implementation.CanMarshal(csElement);