packages feed

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

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

module Graphics.UI.Qtah.Generated.Core.QXmlStreamNotationDeclaration (
  QXmlStreamNotationDeclarationValue (..),
  QXmlStreamNotationDeclarationConstPtr (..),
  eQ,
  nE,
  QXmlStreamNotationDeclarationPtr (..),
  aSSIGN,
  QXmlStreamNotationDeclarationConst (..),
  castQXmlStreamNotationDeclarationToConst,
  QXmlStreamNotationDeclaration (..),
  castQXmlStreamNotationDeclarationToNonconst,
  new,
  newCopy,
  QXmlStreamNotationDeclarationSuper (..),
  QXmlStreamNotationDeclarationSuperConst (..),
  ) where

import Control.Monad ((>=>))
import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import Prelude (($), (.), (/=), (=<<), (==), (>>))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QXmlStreamNotationDeclaration_new" new' ::  HoppyP.IO (HoppyF.Ptr QXmlStreamNotationDeclaration)
foreign import ccall "genpop__QXmlStreamNotationDeclaration_newCopy" newCopy' ::  HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamNotationDeclaration)
foreign import ccall "genpop__QXmlStreamNotationDeclaration_EQ" eQ' ::  HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QXmlStreamNotationDeclaration_NE" nE' ::  HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QXmlStreamNotationDeclaration_ASSIGN" aSSIGN' ::  HoppyF.Ptr QXmlStreamNotationDeclaration -> HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO (HoppyF.Ptr QXmlStreamNotationDeclaration)
foreign import ccall "gendel__QXmlStreamNotationDeclaration" delete'QXmlStreamNotationDeclaration :: HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO ()
foreign import ccall "&gendel__QXmlStreamNotationDeclaration" deletePtr'QXmlStreamNotationDeclaration :: HoppyF.FunPtr (HoppyF.Ptr QXmlStreamNotationDeclarationConst -> HoppyP.IO ())

class QXmlStreamNotationDeclarationValue a where
  withQXmlStreamNotationDeclarationPtr :: a -> (QXmlStreamNotationDeclarationConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QXmlStreamNotationDeclarationConstPtr a => QXmlStreamNotationDeclarationValue a where
  withQXmlStreamNotationDeclarationPtr = HoppyP.flip ($) . toQXmlStreamNotationDeclarationConst

class (HoppyFHR.CppPtr this) => QXmlStreamNotationDeclarationConstPtr this where
  toQXmlStreamNotationDeclarationConst :: this -> QXmlStreamNotationDeclarationConst

eQ :: (QXmlStreamNotationDeclarationValue this, QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
eQ arg'1 arg'2 =
  withQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (eQ' arg'1' arg'2')

nE :: (QXmlStreamNotationDeclarationValue this, QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
nE arg'1 arg'2 =
  withQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (nE' arg'1' arg'2')

class (QXmlStreamNotationDeclarationConstPtr this) => QXmlStreamNotationDeclarationPtr this where
  toQXmlStreamNotationDeclaration :: this -> QXmlStreamNotationDeclaration

aSSIGN :: (QXmlStreamNotationDeclarationPtr this, QXmlStreamNotationDeclarationValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO QXmlStreamNotationDeclaration)
aSSIGN arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQXmlStreamNotationDeclaration arg'1) $ \arg'1' ->
  withQXmlStreamNotationDeclarationPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  HoppyP.fmap QXmlStreamNotationDeclaration
  (aSSIGN' arg'1' arg'2')

data QXmlStreamNotationDeclarationConst =
    QXmlStreamNotationDeclarationConst (HoppyF.Ptr QXmlStreamNotationDeclarationConst)
  | QXmlStreamNotationDeclarationConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamNotationDeclarationConst)
  deriving (HoppyP.Show)

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

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

castQXmlStreamNotationDeclarationToConst :: QXmlStreamNotationDeclaration -> QXmlStreamNotationDeclarationConst
castQXmlStreamNotationDeclarationToConst (QXmlStreamNotationDeclaration ptr') = QXmlStreamNotationDeclarationConst $ HoppyF.castPtr ptr'
castQXmlStreamNotationDeclarationToConst (QXmlStreamNotationDeclarationGc fptr' ptr') = QXmlStreamNotationDeclarationConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance HoppyFHR.Copyable QXmlStreamNotationDeclarationConst QXmlStreamNotationDeclaration where copy = newCopy

instance QXmlStreamNotationDeclarationConstPtr QXmlStreamNotationDeclarationConst where
  toQXmlStreamNotationDeclarationConst = HoppyP.id

data QXmlStreamNotationDeclaration =
    QXmlStreamNotationDeclaration (HoppyF.Ptr QXmlStreamNotationDeclaration)
  | QXmlStreamNotationDeclarationGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QXmlStreamNotationDeclaration)
  deriving (HoppyP.Show)

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

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

castQXmlStreamNotationDeclarationToNonconst :: QXmlStreamNotationDeclarationConst -> QXmlStreamNotationDeclaration
castQXmlStreamNotationDeclarationToNonconst (QXmlStreamNotationDeclarationConst ptr') = QXmlStreamNotationDeclaration $ HoppyF.castPtr ptr'
castQXmlStreamNotationDeclarationToNonconst (QXmlStreamNotationDeclarationConstGc fptr' ptr') = QXmlStreamNotationDeclarationGc fptr' $ HoppyF.castPtr ptr'

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

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

instance HoppyFHR.Copyable QXmlStreamNotationDeclaration QXmlStreamNotationDeclaration where copy = newCopy

instance QXmlStreamNotationDeclarationConstPtr QXmlStreamNotationDeclaration where
  toQXmlStreamNotationDeclarationConst (QXmlStreamNotationDeclaration ptr') = QXmlStreamNotationDeclarationConst $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamNotationDeclaration -> HoppyF.Ptr QXmlStreamNotationDeclarationConst) ptr'
  toQXmlStreamNotationDeclarationConst (QXmlStreamNotationDeclarationGc fptr' ptr') = QXmlStreamNotationDeclarationConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QXmlStreamNotationDeclaration -> HoppyF.Ptr QXmlStreamNotationDeclarationConst) ptr'

instance QXmlStreamNotationDeclarationPtr QXmlStreamNotationDeclaration where
  toQXmlStreamNotationDeclaration = HoppyP.id

new :: (HoppyP.IO QXmlStreamNotationDeclaration)
new =
  HoppyP.fmap QXmlStreamNotationDeclaration
  (new')

newCopy :: (QXmlStreamNotationDeclarationValue arg'1) => (arg'1) -> (HoppyP.IO QXmlStreamNotationDeclaration)
newCopy arg'1 =
  withQXmlStreamNotationDeclarationPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap QXmlStreamNotationDeclaration
  (newCopy' arg'1')

class QXmlStreamNotationDeclarationSuper a where
  downToQXmlStreamNotationDeclaration :: a -> QXmlStreamNotationDeclaration


class QXmlStreamNotationDeclarationSuperConst a where
  downToQXmlStreamNotationDeclarationConst :: a -> QXmlStreamNotationDeclarationConst


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

instance QXmlStreamNotationDeclarationValue a => HoppyFHR.Assignable QXmlStreamNotationDeclaration a where
  assign x' y' = aSSIGN x' y' >> HoppyP.return ()

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

instance HoppyFHR.Decodable QXmlStreamNotationDeclaration (QXmlStreamNotationDeclaration) where
  decode = HoppyFHR.decode . toQXmlStreamNotationDeclarationConst

instance HoppyFHR.Decodable QXmlStreamNotationDeclarationConst (QXmlStreamNotationDeclaration) where
  decode =
    HoppyFHR.copy >=> HoppyFHR.toGc