{-# LANGUAGE FlexibleContexts, FlexibleInstances,
  ForeignFunctionInterface, InterruptibleFFI #-}
module GDAL.Ordinary (gDALAllRegister, gDALOpenEx) where
import Foreign.C
import Foreign.Ptr
import FFICXX.Runtime.Cast
import GDAL.GDALDataset.RawType
import GDAL.GDALDataset.Cast
import GDAL.GDALDataset.Interface

foreign import ccall interruptible
               "hgdalTopLevel.h TopLevel_GDALAllRegister" c_gdalallregister ::
               IO ()

foreign import ccall interruptible
               "hgdalTopLevel.h TopLevel_GDALOpenEx" c_gdalopenex ::
               CString ->
                 CUInt ->
                   Ptr CString ->
                     Ptr CString -> Ptr CString -> IO (Ptr RawGDALDataset)

gDALAllRegister :: () => IO ()
gDALAllRegister :: IO ()
gDALAllRegister = IO () -> IO ()
forall a ca. Castable a ca => IO ca -> IO a
xformnull IO ()
c_gdalallregister

gDALOpenEx ::
             (Castable c0 CString) =>
             c0 ->
               CUInt ->
                 Ptr CString -> Ptr CString -> Ptr CString -> IO GDALDataset
gDALOpenEx :: forall c0.
Castable c0 CString =>
c0
-> CUInt
-> Ptr CString
-> Ptr CString
-> Ptr CString
-> IO GDALDataset
gDALOpenEx = (CString
 -> CUInt
 -> Ptr CString
 -> Ptr CString
 -> Ptr CString
 -> IO (Ptr RawGDALDataset))
-> c0
-> CUInt
-> Ptr CString
-> Ptr CString
-> Ptr CString
-> IO GDALDataset
forall a ca x1 cx1 x2 cx2 x3 cx3 x4 cx4 y cy.
(Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3,
 Castable x4 cx4, Castable y cy) =>
(ca -> cx1 -> cx2 -> cx3 -> cx4 -> IO cy)
-> a -> x1 -> x2 -> x3 -> x4 -> IO y
xform4 CString
-> CUInt
-> Ptr CString
-> Ptr CString
-> Ptr CString
-> IO (Ptr RawGDALDataset)
c_gdalopenex