/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.25
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */


using System;
using System.Runtime.InteropServices;

class gdalconstPINVOKE {

  protected class SWIGExceptionHelper {

    public delegate void ExceptionDelegate(string message);
    public delegate void ExceptionArgumentDelegate(string message, string paramName);

    static ExceptionDelegate applicationDelegate = new ExceptionDelegate(SetPendingApplicationException);
    static ExceptionDelegate arithmeticDelegate = new ExceptionDelegate(SetPendingArithmeticException);
    static ExceptionDelegate divideByZeroDelegate = new ExceptionDelegate(SetPendingDivideByZeroException);
    static ExceptionDelegate indexOutOfRangeDelegate = new ExceptionDelegate(SetPendingIndexOutOfRangeException);
    static ExceptionDelegate invalidOperationDelegate = new ExceptionDelegate(SetPendingInvalidOperationException);
    static ExceptionDelegate ioDelegate = new ExceptionDelegate(SetPendingIOException);
    static ExceptionDelegate nullReferenceDelegate = new ExceptionDelegate(SetPendingNullReferenceException);
    static ExceptionDelegate outOfMemoryDelegate = new ExceptionDelegate(SetPendingOutOfMemoryException);
    static ExceptionDelegate overflowDelegate = new ExceptionDelegate(SetPendingOverflowException);
    static ExceptionDelegate systemDelegate = new ExceptionDelegate(SetPendingSystemException);

    static ExceptionArgumentDelegate argumentDelegate = new ExceptionArgumentDelegate(SetPendingArgumentException);
    static ExceptionArgumentDelegate argumentNullDelegate = new ExceptionArgumentDelegate(SetPendingArgumentNullException);
    static ExceptionArgumentDelegate argumentOutOfRangeDelegate = new ExceptionArgumentDelegate(SetPendingArgumentOutOfRangeException);

    [DllImport("gdalconst", EntryPoint="SWIGRegisterExceptionCallbacks_gdalconst")]
    public static extern void SWIGRegisterExceptionCallbacks_gdalconst(
                                ExceptionDelegate applicationDelegate,
                                ExceptionDelegate arithmeticDelegate,
                                ExceptionDelegate divideByZeroDelegate, 
                                ExceptionDelegate indexOutOfRangeDelegate, 
                                ExceptionDelegate invalidOperationDelegate,
                                ExceptionDelegate ioDelegate,
                                ExceptionDelegate nullReferenceDelegate,
                                ExceptionDelegate outOfMemoryDelegate, 
                                ExceptionDelegate overflowDelegate, 
                                ExceptionDelegate systemExceptionDelegate);

    [DllImport("gdalconst", EntryPoint="SWIGRegisterExceptionArgumentCallbacks_gdalconst")]
    public static extern void SWIGRegisterExceptionCallbacksArgument_gdalconst(
                                ExceptionArgumentDelegate argumentDelegate,
                                ExceptionArgumentDelegate argumentNullDelegate,
                                ExceptionArgumentDelegate argumentOutOfRangeDelegate);

    static void SetPendingApplicationException(string message) {
      SWIGPendingException.Set(new System.ApplicationException(message));
    }
    static void SetPendingArithmeticException(string message) {
      SWIGPendingException.Set(new System.ArithmeticException(message));
    }
    static void SetPendingDivideByZeroException(string message) {
      SWIGPendingException.Set(new System.DivideByZeroException(message));
    }
    static void SetPendingIndexOutOfRangeException(string message) {
      SWIGPendingException.Set(new System.IndexOutOfRangeException(message));
    }
    static void SetPendingInvalidOperationException(string message) {
      SWIGPendingException.Set(new System.InvalidOperationException(message));
    }
    static void SetPendingIOException(string message) {
      SWIGPendingException.Set(new System.IO.IOException(message));
    }
    static void SetPendingNullReferenceException(string message) {
      SWIGPendingException.Set(new System.NullReferenceException(message));
    }
    static void SetPendingOutOfMemoryException(string message) {
      SWIGPendingException.Set(new System.OutOfMemoryException(message));
    }
    static void SetPendingOverflowException(string message) {
      SWIGPendingException.Set(new System.OverflowException(message));
    }
    static void SetPendingSystemException(string message) {
      SWIGPendingException.Set(new System.SystemException(message));
    }

    static void SetPendingArgumentException(string message, string paramName) {
      SWIGPendingException.Set(new System.ArgumentException(message, paramName));
    }
    static void SetPendingArgumentNullException(string message, string paramName) {
      SWIGPendingException.Set(new System.ArgumentNullException(paramName, message));
    }
    static void SetPendingArgumentOutOfRangeException(string message, string paramName) {
      SWIGPendingException.Set(new System.ArgumentOutOfRangeException(paramName, message));
    }

    static SWIGExceptionHelper() {
      SWIGRegisterExceptionCallbacks_gdalconst(
                                applicationDelegate,
                                arithmeticDelegate,
                                divideByZeroDelegate,
                                indexOutOfRangeDelegate,
                                invalidOperationDelegate,
                                ioDelegate,
                                nullReferenceDelegate,
                                outOfMemoryDelegate,
                                overflowDelegate,
                                systemDelegate);

      SWIGRegisterExceptionCallbacksArgument_gdalconst(
                                argumentDelegate,
                                argumentNullDelegate,
                                argumentOutOfRangeDelegate);
    }
  }

  protected static SWIGExceptionHelper swigExceptionHelper = new SWIGExceptionHelper();

  public class SWIGPendingException {
    [ThreadStatic]
    private static Exception pendingException = null;
    private static int numExceptionsPending = 0;

    public static bool Pending {
      get {
        bool pending = false;
        if (numExceptionsPending > 0)
          if (pendingException != null)
            pending = true;
        return pending;
      } 
    }

    public static void Set(Exception e) {
      if (pendingException != null)
        throw new ApplicationException("FATAL: An earlier pending exception from unmanaged code was missed and thus not thrown (" + pendingException.ToString() + ")", e);
      pendingException = e;
      lock(typeof(gdalconstPINVOKE)) {
        numExceptionsPending++;
      }
    }

    public static Exception Retrieve() {
      Exception e = null;
      if (numExceptionsPending > 0) {
        if (pendingException != null) {
          e = pendingException;
          pendingException = null;
          lock(typeof(gdalconstPINVOKE)) {
            numExceptionsPending--;
          }
        }
      }
      return e;
    }
  }


  protected class SWIGStringHelper {

    public delegate string SWIGStringDelegate(string message);
    static SWIGStringDelegate stringDelegate = new SWIGStringDelegate(CreateString);

    [DllImport("gdalconst", EntryPoint="SWIGRegisterStringCallback_gdalconst")]
    public static extern void SWIGRegisterStringCallback_gdalconst(SWIGStringDelegate stringDelegate);

    static string CreateString(string cString) {
      return cString;
    }

    static SWIGStringHelper() {
      SWIGRegisterStringCallback_gdalconst(stringDelegate);
    }
  }

  static protected SWIGStringHelper swigStringHelper = new SWIGStringHelper();


  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_Unknown")]
  public static extern int get_GDT_Unknown();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_Byte")]
  public static extern int get_GDT_Byte();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_UInt16")]
  public static extern int get_GDT_UInt16();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_Int16")]
  public static extern int get_GDT_Int16();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_UInt32")]
  public static extern int get_GDT_UInt32();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_Int32")]
  public static extern int get_GDT_Int32();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_Float32")]
  public static extern int get_GDT_Float32();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_Float64")]
  public static extern int get_GDT_Float64();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_CInt16")]
  public static extern int get_GDT_CInt16();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_CInt32")]
  public static extern int get_GDT_CInt32();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_CFloat32")]
  public static extern int get_GDT_CFloat32();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_CFloat64")]
  public static extern int get_GDT_CFloat64();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GDT_TypeCount")]
  public static extern int get_GDT_TypeCount();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GA_ReadOnly")]
  public static extern int get_GA_ReadOnly();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GA_Update")]
  public static extern int get_GA_Update();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GF_Read")]
  public static extern int get_GF_Read();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GF_Write")]
  public static extern int get_GF_Write();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_Undefined")]
  public static extern int get_GCI_Undefined();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_GrayIndex")]
  public static extern int get_GCI_GrayIndex();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_PaletteIndex")]
  public static extern int get_GCI_PaletteIndex();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_RedBand")]
  public static extern int get_GCI_RedBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_GreenBand")]
  public static extern int get_GCI_GreenBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_BlueBand")]
  public static extern int get_GCI_BlueBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_AlphaBand")]
  public static extern int get_GCI_AlphaBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_HueBand")]
  public static extern int get_GCI_HueBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_SaturationBand")]
  public static extern int get_GCI_SaturationBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_LightnessBand")]
  public static extern int get_GCI_LightnessBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_CyanBand")]
  public static extern int get_GCI_CyanBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_MagentaBand")]
  public static extern int get_GCI_MagentaBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_YellowBand")]
  public static extern int get_GCI_YellowBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GCI_BlackBand")]
  public static extern int get_GCI_BlackBand();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GRA_NearestNeighbour")]
  public static extern int get_GRA_NearestNeighbour();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GRA_Bilinear")]
  public static extern int get_GRA_Bilinear();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GRA_Cubic")]
  public static extern int get_GRA_Cubic();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GRA_CubicSpline")]
  public static extern int get_GRA_CubicSpline();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GPI_Gray")]
  public static extern int get_GPI_Gray();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GPI_RGB")]
  public static extern int get_GPI_RGB();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GPI_CMYK")]
  public static extern int get_GPI_CMYK();

  [DllImport("gdalconst", EntryPoint="CSharp_get_GPI_HLS")]
  public static extern int get_GPI_HLS();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CXT_Element")]
  public static extern int get_CXT_Element();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CXT_Text")]
  public static extern int get_CXT_Text();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CXT_Attribute")]
  public static extern int get_CXT_Attribute();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CXT_Comment")]
  public static extern int get_CXT_Comment();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CXT_Literal")]
  public static extern int get_CXT_Literal();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CE_None")]
  public static extern int get_CE_None();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CE_Debug")]
  public static extern int get_CE_Debug();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CE_Warning")]
  public static extern int get_CE_Warning();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CE_Failure")]
  public static extern int get_CE_Failure();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CE_Fatal")]
  public static extern int get_CE_Fatal();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLE_None")]
  public static extern int get_CPLE_None();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLE_AppDefined")]
  public static extern int get_CPLE_AppDefined();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLE_OutOfMemory")]
  public static extern int get_CPLE_OutOfMemory();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLE_FileIO")]
  public static extern int get_CPLE_FileIO();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLE_OpenFailed")]
  public static extern int get_CPLE_OpenFailed();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLE_IllegalArg")]
  public static extern int get_CPLE_IllegalArg();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLE_NotSupported")]
  public static extern int get_CPLE_NotSupported();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLE_AssertionFailed")]
  public static extern int get_CPLE_AssertionFailed();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLE_NoWriteAccess")]
  public static extern int get_CPLE_NoWriteAccess();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLE_UserInterrupt")]
  public static extern int get_CPLE_UserInterrupt();

  [DllImport("gdalconst", EntryPoint="CSharp_get_DMD_LONGNAME")]
  public static extern string get_DMD_LONGNAME();

  [DllImport("gdalconst", EntryPoint="CSharp_get_DMD_HELPTOPIC")]
  public static extern string get_DMD_HELPTOPIC();

  [DllImport("gdalconst", EntryPoint="CSharp_get_DMD_MIMETYPE")]
  public static extern string get_DMD_MIMETYPE();

  [DllImport("gdalconst", EntryPoint="CSharp_get_DMD_EXTENSION")]
  public static extern string get_DMD_EXTENSION();

  [DllImport("gdalconst", EntryPoint="CSharp_get_DMD_CREATIONOPTIONLIST")]
  public static extern string get_DMD_CREATIONOPTIONLIST();

  [DllImport("gdalconst", EntryPoint="CSharp_get_DMD_CREATIONDATATYPES")]
  public static extern string get_DMD_CREATIONDATATYPES();

  [DllImport("gdalconst", EntryPoint="CSharp_get_DCAP_CREATE")]
  public static extern string get_DCAP_CREATE();

  [DllImport("gdalconst", EntryPoint="CSharp_get_DCAP_CREATECOPY")]
  public static extern string get_DCAP_CREATECOPY();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLES_BackslashQuotable")]
  public static extern int get_CPLES_BackslashQuotable();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLES_XML")]
  public static extern int get_CPLES_XML();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLES_URL")]
  public static extern int get_CPLES_URL();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLES_SQL")]
  public static extern int get_CPLES_SQL();

  [DllImport("gdalconst", EntryPoint="CSharp_get_CPLES_CSV")]
  public static extern int get_CPLES_CSV();
}
