{-# LINE 1 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}

{-# LINE 2 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}

{-# LINE 3 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}

-- | <http://gts.sourceforge.net/reference/gts-container-classes.html>

module Bindings.Gts.GeometricalObjectHierarchy.ContainerClasses where
import Bindings.GLib
import Bindings.Gts.Types
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 10 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}

foreign import ccall "inline_GTS_CONTAINER_CLASS" c'GTS_CONTAINER_CLASS
  :: Ptr a -> Ptr C'GtsContainerClass

{-# LINE 12 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "inline_GTS_CONTAINER" c'GTS_CONTAINER
  :: Ptr a -> Ptr C'GtsContainer

{-# LINE 13 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "inline_GTS_IS_CONTAINER" c'GTS_IS_CONTAINER
  :: Ptr a -> Ptr C'gboolean

{-# LINE 14 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}

foreign import ccall "gts_container_class" c'gts_container_class
  :: IO (Ptr C'GtsContainerClass)
foreign import ccall "&gts_container_class" p'gts_container_class
  :: FunPtr (IO (Ptr C'GtsContainerClass))

{-# LINE 16 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "gts_container_new" c'gts_container_new
  :: Ptr C'GtsContainerClass -> IO (Ptr C'GtsContainer)
foreign import ccall "&gts_container_new" p'gts_container_new
  :: FunPtr (Ptr C'GtsContainerClass -> IO (Ptr C'GtsContainer))

{-# LINE 17 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "gts_container_add" c'gts_container_add
  :: Ptr C'GtsContainer -> Ptr C'GtsContainee -> IO ()
foreign import ccall "&gts_container_add" p'gts_container_add
  :: FunPtr (Ptr C'GtsContainer -> Ptr C'GtsContainee -> IO ())

{-# LINE 18 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "gts_container_remove" c'gts_container_remove
  :: Ptr C'GtsContainer -> Ptr C'GtsContainee -> IO ()
foreign import ccall "&gts_container_remove" p'gts_container_remove
  :: FunPtr (Ptr C'GtsContainer -> Ptr C'GtsContainee -> IO ())

{-# LINE 19 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "gts_container_size" c'gts_container_size
  :: Ptr C'GtsContainer -> IO C'guint
foreign import ccall "&gts_container_size" p'gts_container_size
  :: FunPtr (Ptr C'GtsContainer -> IO C'guint)

{-# LINE 20 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "gts_container_foreach" c'gts_container_foreach
  :: Ptr C'GtsContainer -> C'GtsFunc -> C'gpointer -> IO ()
foreign import ccall "&gts_container_foreach" p'gts_container_foreach
  :: FunPtr (Ptr C'GtsContainer -> C'GtsFunc -> C'gpointer -> IO ())

{-# LINE 21 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}

foreign import ccall "inline_GTS_HASH_CONTAINER_CLASS" c'GTS_HASH_CONTAINER_CLASS
  :: Ptr a -> Ptr C'GtsHashContainerClass

{-# LINE 23 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "inline_GTS_HASH_CONTAINER" c'GTS_HASH_CONTAINER
  :: Ptr a -> Ptr C'GtsHashContainer

{-# LINE 24 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "inline_GTS_IS_HASH_CONTAINER" c'GTS_IS_HASH_CONTAINER
  :: Ptr a -> Ptr C'gboolean

{-# LINE 25 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}

foreign import ccall "gts_hash_container_class" c'gts_hash_container_class
  :: IO (Ptr C'GtsHashContainerClass)
foreign import ccall "&gts_hash_container_class" p'gts_hash_container_class
  :: FunPtr (IO (Ptr C'GtsHashContainerClass))

{-# LINE 27 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}

foreign import ccall "inline_GTS_SLIST_CONTAINER_CLASS" c'GTS_SLIST_CONTAINER_CLASS
  :: Ptr a -> Ptr C'GtsSListContainerClass

{-# LINE 29 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "inline_GTS_SLIST_CONTAINER" c'GTS_SLIST_CONTAINER
  :: Ptr a -> Ptr C'GtsSListContainer

{-# LINE 30 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}
foreign import ccall "inline_GTS_IS_SLIST_CONTAINER" c'GTS_IS_SLIST_CONTAINER
  :: Ptr a -> Ptr C'gboolean

{-# LINE 31 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}

foreign import ccall "gts_slist_container_class" c'gts_slist_container_class
  :: IO (Ptr C'GtsSListContainerClass)
foreign import ccall "&gts_slist_container_class" p'gts_slist_container_class
  :: FunPtr (IO (Ptr C'GtsSListContainerClass))

{-# LINE 33 "src/Bindings/Gts/GeometricalObjectHierarchy/ContainerClasses.hsc" #-}