{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-} ---------- GENERATED FILE, EDITS WILL BE LOST ---------- module Graphics.UI.Qtah.Generated.Core.QMessageLogContext ( QMessageLogContextValue (..), QMessageLogContextConstPtr (..), QMessageLogContextPtr (..), QMessageLogContextConst (..), castQMessageLogContextToConst, QMessageLogContext (..), castQMessageLogContextToNonconst, QMessageLogContextSuper (..), QMessageLogContextSuperConst (..), ) where import qualified Foreign as HoppyF import qualified Foreign.Hoppy.Runtime as HoppyFHR import Prelude (($), (.), (==)) import qualified Prelude as HoppyP foreign import ccall "gendel__QMessageLogContext" delete'QMessageLogContext :: HoppyF.Ptr QMessageLogContextConst -> HoppyP.IO () foreign import ccall "&gendel__QMessageLogContext" deletePtr'QMessageLogContext :: HoppyF.FunPtr (HoppyF.Ptr QMessageLogContextConst -> HoppyP.IO ()) class QMessageLogContextValue a where withQMessageLogContextPtr :: a -> (QMessageLogContextConst -> HoppyP.IO b) -> HoppyP.IO b instance {-# OVERLAPPABLE #-} QMessageLogContextConstPtr a => QMessageLogContextValue a where withQMessageLogContextPtr = HoppyP.flip ($) . toQMessageLogContextConst class (HoppyFHR.CppPtr this) => QMessageLogContextConstPtr this where toQMessageLogContextConst :: this -> QMessageLogContextConst class (QMessageLogContextConstPtr this) => QMessageLogContextPtr this where toQMessageLogContext :: this -> QMessageLogContext data QMessageLogContextConst = QMessageLogContextConst (HoppyF.Ptr QMessageLogContextConst) | QMessageLogContextConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMessageLogContextConst) deriving (HoppyP.Show) instance HoppyP.Eq QMessageLogContextConst where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord QMessageLogContextConst where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castQMessageLogContextToConst :: QMessageLogContext -> QMessageLogContextConst castQMessageLogContextToConst (QMessageLogContext ptr') = QMessageLogContextConst $ HoppyF.castPtr ptr' castQMessageLogContextToConst (QMessageLogContextGc fptr' ptr') = QMessageLogContextConstGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr QMessageLogContextConst where nullptr = QMessageLogContextConst HoppyF.nullPtr withCppPtr (QMessageLogContextConst ptr') f' = f' ptr' withCppPtr (QMessageLogContextConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (QMessageLogContextConst ptr') = ptr' toPtr (QMessageLogContextConstGc _ ptr') = ptr' touchCppPtr (QMessageLogContextConst _) = HoppyP.return () touchCppPtr (QMessageLogContextConstGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable QMessageLogContextConst where delete (QMessageLogContextConst ptr') = delete'QMessageLogContext ptr' delete (QMessageLogContextConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMessageLogContextConst", " object."] toGc this'@(QMessageLogContextConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMessageLogContextConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMessageLogContext :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(QMessageLogContextConstGc {}) = HoppyP.return this' instance QMessageLogContextConstPtr QMessageLogContextConst where toQMessageLogContextConst = HoppyP.id data QMessageLogContext = QMessageLogContext (HoppyF.Ptr QMessageLogContext) | QMessageLogContextGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMessageLogContext) deriving (HoppyP.Show) instance HoppyP.Eq QMessageLogContext where x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y instance HoppyP.Ord QMessageLogContext where compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y) castQMessageLogContextToNonconst :: QMessageLogContextConst -> QMessageLogContext castQMessageLogContextToNonconst (QMessageLogContextConst ptr') = QMessageLogContext $ HoppyF.castPtr ptr' castQMessageLogContextToNonconst (QMessageLogContextConstGc fptr' ptr') = QMessageLogContextGc fptr' $ HoppyF.castPtr ptr' instance HoppyFHR.CppPtr QMessageLogContext where nullptr = QMessageLogContext HoppyF.nullPtr withCppPtr (QMessageLogContext ptr') f' = f' ptr' withCppPtr (QMessageLogContextGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr' toPtr (QMessageLogContext ptr') = ptr' toPtr (QMessageLogContextGc _ ptr') = ptr' touchCppPtr (QMessageLogContext _) = HoppyP.return () touchCppPtr (QMessageLogContextGc fptr' _) = HoppyF.touchForeignPtr fptr' instance HoppyFHR.Deletable QMessageLogContext where delete (QMessageLogContext ptr') = delete'QMessageLogContext $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QMessageLogContextConst) delete (QMessageLogContextGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QMessageLogContext", " object."] toGc this'@(QMessageLogContext ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QMessageLogContextGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QMessageLogContext :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ()) toGc this'@(QMessageLogContextGc {}) = HoppyP.return this' instance QMessageLogContextConstPtr QMessageLogContext where toQMessageLogContextConst (QMessageLogContext ptr') = QMessageLogContextConst $ (HoppyF.castPtr :: HoppyF.Ptr QMessageLogContext -> HoppyF.Ptr QMessageLogContextConst) ptr' toQMessageLogContextConst (QMessageLogContextGc fptr' ptr') = QMessageLogContextConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMessageLogContext -> HoppyF.Ptr QMessageLogContextConst) ptr' instance QMessageLogContextPtr QMessageLogContext where toQMessageLogContext = HoppyP.id class QMessageLogContextSuper a where downToQMessageLogContext :: a -> QMessageLogContext class QMessageLogContextSuperConst a where downToQMessageLogContextConst :: a -> QMessageLogContextConst instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QMessageLogContext)) QMessageLogContext where assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value' instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QMessageLogContext)) QMessageLogContext where decode = HoppyP.fmap QMessageLogContext . HoppyF.peek