/Mono.Cecil/MarshalInfo.cs
http://github.com/jbevain/cecil · C# · 153 lines · 111 code · 33 blank · 9 comment · 0 complexity · 9487172973dbbd2c658085f23e8d4706 MD5 · raw file
- //
- // Author:
- // Jb Evain (jbevain@gmail.com)
- //
- // Copyright (c) 2008 - 2015 Jb Evain
- // Copyright (c) 2008 - 2011 Novell, Inc.
- //
- // Licensed under the MIT/X11 license.
- //
- using System;
- namespace Mono.Cecil {
- public class MarshalInfo {
- internal NativeType native;
- public NativeType NativeType {
- get { return native; }
- set { native = value; }
- }
- public MarshalInfo (NativeType native)
- {
- this.native = native;
- }
- }
- public sealed class ArrayMarshalInfo : MarshalInfo {
- internal NativeType element_type;
- internal int size_parameter_index;
- internal int size;
- internal int size_parameter_multiplier;
- public NativeType ElementType {
- get { return element_type; }
- set { element_type = value; }
- }
- public int SizeParameterIndex {
- get { return size_parameter_index; }
- set { size_parameter_index = value; }
- }
- public int Size {
- get { return size; }
- set { size = value; }
- }
- public int SizeParameterMultiplier {
- get { return size_parameter_multiplier; }
- set { size_parameter_multiplier = value; }
- }
- public ArrayMarshalInfo ()
- : base (NativeType.Array)
- {
- element_type = NativeType.None;
- size_parameter_index = -1;
- size = -1;
- size_parameter_multiplier = -1;
- }
- }
- public sealed class CustomMarshalInfo : MarshalInfo {
- internal Guid guid;
- internal string unmanaged_type;
- internal TypeReference managed_type;
- internal string cookie;
- public Guid Guid {
- get { return guid; }
- set { guid = value; }
- }
- public string UnmanagedType {
- get { return unmanaged_type; }
- set { unmanaged_type = value; }
- }
- public TypeReference ManagedType {
- get { return managed_type; }
- set { managed_type = value; }
- }
- public string Cookie {
- get { return cookie; }
- set { cookie = value; }
- }
- public CustomMarshalInfo ()
- : base (NativeType.CustomMarshaler)
- {
- }
- }
- public sealed class SafeArrayMarshalInfo : MarshalInfo {
- internal VariantType element_type;
- public VariantType ElementType {
- get { return element_type; }
- set { element_type = value; }
- }
- public SafeArrayMarshalInfo ()
- : base (NativeType.SafeArray)
- {
- element_type = VariantType.None;
- }
- }
- public sealed class FixedArrayMarshalInfo : MarshalInfo {
- internal NativeType element_type;
- internal int size;
- public NativeType ElementType {
- get { return element_type; }
- set { element_type = value; }
- }
- public int Size {
- get { return size; }
- set { size = value; }
- }
- public FixedArrayMarshalInfo ()
- : base (NativeType.FixedArray)
- {
- element_type = NativeType.None;
- }
- }
- public sealed class FixedSysStringMarshalInfo : MarshalInfo {
- internal int size;
- public int Size {
- get { return size; }
- set { size = value; }
- }
- public FixedSysStringMarshalInfo ()
- : base (NativeType.FixedSysString)
- {
- size = -1;
- }
- }
- }