packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Core/QXmlStreamEntityResolver.hs

{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
---------- GENERATED FILE, EDITS WILL BE LOST ----------

module Graphics.UI.Qtah.Generated.Core.QXmlStreamEntityResolver (
  QXmlStreamEntityResolverValue (..),
  QXmlStreamEntityResolverConstPtr (..),
  QXmlStreamEntityResolverPtr (..),
  resolveUndeclaredEntity,
  QXmlStreamEntityResolverConst (..),
  castQXmlStreamEntityResolverToConst,
  QXmlStreamEntityResolver (..),
  castQXmlStreamEntityResolverToNonconst,
  QXmlStreamEntityResolverSuper (..),
  QXmlStreamEntityResolverSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
import Prelude (($), (.), (=<<), (==))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP

foreign import ccall "genpop__QXmlStreamEntityResolver_resolveUndeclaredEntity" resolveUndeclaredEntity' ::  HoppyF.Ptr QXmlStreamEntityResolver -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "gendel__QXmlStreamEntityResolver" delete'QXmlStreamEntityResolver :: HoppyF.Ptr QXmlStreamEntityResolverConst -> HoppyP.IO ()
foreign import ccall "&gendel__QXmlStreamEntityResolver" deletePtr'QXmlStreamEntityResolver :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamEntityResolverConst -> HoppyP.IO ())

class QXmlStreamEntityResolverValue a where
  withQXmlStreamEntityResolverPtr :: a -> (QXmlStreamEntityResolverConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QXmlStreamEntityResolverConstPtr a => QXmlStreamEntityResolverValue a where
  withQXmlStreamEntityResolverPtr = HoppyP.flip ($) . toQXmlStreamEntityResolverConst

class (HoppyFHR.CppPtr this) => QXmlStreamEntityResolverConstPtr this where
  toQXmlStreamEntityResolverConst :: this -> QXmlStreamEntityResolverConst

class (QXmlStreamEntityResolverConstPtr this) => QXmlStreamEntityResolverPtr this where
  toQXmlStreamEntityResolver :: this -> QXmlStreamEntityResolver

resolveUndeclaredEntity :: (QXmlStreamEntityResolverPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QtahP.String)
resolveUndeclaredEntity arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQXmlStreamEntityResolver arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (resolveUndeclaredEntity' arg'1' arg'2')

data QXmlStreamEntityResolverConst =
    QXmlStreamEntityResolverConst (HoppyF.Ptr QXmlStreamEntityResolverConst)
  | QXmlStreamEntityResolverConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamEntityResolverConst)
  deriving (HoppyP.Show)

instance HoppyP.Eq QXmlStreamEntityResolverConst where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QXmlStreamEntityResolverConst where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQXmlStreamEntityResolverToConst :: QXmlStreamEntityResolver -> QXmlStreamEntityResolverConst
castQXmlStreamEntityResolverToConst (QXmlStreamEntityResolver ptr') = QXmlStreamEntityResolverConst $ HoppyF.castPtr ptr'
castQXmlStreamEntityResolverToConst (QXmlStreamEntityResolverGc fptr' ptr') = QXmlStreamEntityResolverConstGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QXmlStreamEntityResolverConst where
  nullptr = QXmlStreamEntityResolverConst HoppyF.nullPtr
  
  withCppPtr (QXmlStreamEntityResolverConst ptr') f' = f' ptr'
  withCppPtr (QXmlStreamEntityResolverConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QXmlStreamEntityResolverConst ptr') = ptr'
  toPtr (QXmlStreamEntityResolverConstGc _ ptr') = ptr'
  
  touchCppPtr (QXmlStreamEntityResolverConst _) = HoppyP.return ()
  touchCppPtr (QXmlStreamEntityResolverConstGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QXmlStreamEntityResolverConst where
  delete (QXmlStreamEntityResolverConst ptr') = delete'QXmlStreamEntityResolver ptr'
  delete (QXmlStreamEntityResolverConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamEntityResolverConst", " object."]
  
  toGc this'@(QXmlStreamEntityResolverConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamEntityResolverConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamEntityResolver :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QXmlStreamEntityResolverConstGc {}) = HoppyP.return this'

instance QXmlStreamEntityResolverConstPtr QXmlStreamEntityResolverConst where
  toQXmlStreamEntityResolverConst = HoppyP.id

data QXmlStreamEntityResolver =
    QXmlStreamEntityResolver (HoppyF.Ptr QXmlStreamEntityResolver)
  | QXmlStreamEntityResolverGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamEntityResolver)
  deriving (HoppyP.Show)

instance HoppyP.Eq QXmlStreamEntityResolver where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QXmlStreamEntityResolver where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQXmlStreamEntityResolverToNonconst :: QXmlStreamEntityResolverConst -> QXmlStreamEntityResolver
castQXmlStreamEntityResolverToNonconst (QXmlStreamEntityResolverConst ptr') = QXmlStreamEntityResolver $ HoppyF.castPtr ptr'
castQXmlStreamEntityResolverToNonconst (QXmlStreamEntityResolverConstGc fptr' ptr') = QXmlStreamEntityResolverGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QXmlStreamEntityResolver where
  nullptr = QXmlStreamEntityResolver HoppyF.nullPtr
  
  withCppPtr (QXmlStreamEntityResolver ptr') f' = f' ptr'
  withCppPtr (QXmlStreamEntityResolverGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QXmlStreamEntityResolver ptr') = ptr'
  toPtr (QXmlStreamEntityResolverGc _ ptr') = ptr'
  
  touchCppPtr (QXmlStreamEntityResolver _) = HoppyP.return ()
  touchCppPtr (QXmlStreamEntityResolverGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QXmlStreamEntityResolver where
  delete (QXmlStreamEntityResolver ptr') = delete'QXmlStreamEntityResolver $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QXmlStreamEntityResolverConst)
  delete (QXmlStreamEntityResolverGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QXmlStreamEntityResolver", " object."]
  
  toGc this'@(QXmlStreamEntityResolver ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QXmlStreamEntityResolverGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QXmlStreamEntityResolver :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QXmlStreamEntityResolverGc {}) = HoppyP.return this'

instance QXmlStreamEntityResolverConstPtr QXmlStreamEntityResolver where
  toQXmlStreamEntityResolverConst (QXmlStreamEntityResolver ptr') = QXmlStreamEntityResolverConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamEntityResolver -> HoppyF.Ptr QXmlStreamEntityResolverConst) ptr'
  toQXmlStreamEntityResolverConst (QXmlStreamEntityResolverGc fptr' ptr') = QXmlStreamEntityResolverConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamEntityResolver -> HoppyF.Ptr QXmlStreamEntityResolverConst) ptr'

instance QXmlStreamEntityResolverPtr QXmlStreamEntityResolver where
  toQXmlStreamEntityResolver = HoppyP.id

class QXmlStreamEntityResolverSuper a where
  downToQXmlStreamEntityResolver :: a -> QXmlStreamEntityResolver


class QXmlStreamEntityResolverSuperConst a where
  downToQXmlStreamEntityResolverConst :: a -> QXmlStreamEntityResolverConst


instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamEntityResolver)) QXmlStreamEntityResolver where
  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'

instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QXmlStreamEntityResolver)) QXmlStreamEntityResolver where
  decode = HoppyP.fmap QXmlStreamEntityResolver . HoppyF.peek