package sharpen.xobotos.api.interop.marshal; import com.thoughtworks.xstream.annotations.XStreamAlias; import org.eclipse.jdt.core.dom.ITypeBinding; import sharpen.core.csharp.ast.CSTypeReference; import sharpen.core.csharp.ast.CSTypeReferenceExpression; import sharpen.xobotos.api.interop.Signature.Flags; import sharpen.xobotos.api.interop.Signature.Mode; import sharpen.xobotos.api.interop.glue.AbstractTypeReference; import sharpen.xobotos.api.interop.glue.PointerType; public class MarshalAsPointer extends MarshalInfo { @XStreamAlias("native-pointer") public class Entry extends MarshalEntry { @Override public MarshalInfo resolve(ITypeBinding type) { return new MarshalAsPointer(type); } } private MarshalAsPointer(ITypeBinding type) { super(type); } @Override public boolean isPrimitiveType() { return false; } @Override public CSTypeReferenceExpression getManagedType(Mode mode, Flags flags) { return new CSTypeReference("System.IntPtr"); } @Override public AbstractTypeReference getNativeType(Mode mode, Flags flags) { return new PointerType("const void"); } }