{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Hist.THStack.Implementation where import FFICXX.Runtime.Cast import HROOT.Hist.THStack.RawType import HROOT.Hist.THStack.FFI import HROOT.Hist.THStack.Interface import HROOT.Hist.THStack.Cast import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.Interface import HROOT.Core.TNamed.RawType import HROOT.Core.TNamed.Cast import HROOT.Core.TNamed.Interface import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface import HROOT.Core.Deletable.RawType import HROOT.Core.Deletable.Cast import HROOT.Core.Deletable.Interface import Data.Word import Foreign.C import Foreign.Ptr import Foreign.ForeignPtr import System.IO.Unsafe instance ITHStack THStack where instance ITNamed THStack where setName = xform1 c_thstack_setname setNameTitle = xform2 c_thstack_setnametitle setTitle = xform1 c_thstack_settitle instance ITObject THStack where draw = xform1 c_thstack_draw findObject = xform1 c_thstack_findobject getName = xform0 c_thstack_getname isA = xform0 c_thstack_isa paint = xform1 c_thstack_paint printObj = xform1 c_thstack_printobj saveAs = xform2 c_thstack_saveas write = xform3 c_thstack_write instance IDeletable THStack where delete = xform0 c_thstack_delete instance ITHStack (Exist THStack) where instance ITNamed (Exist THStack) where setName (ETHStack x) = setName x setNameTitle (ETHStack x) = setNameTitle x setTitle (ETHStack x) = setTitle x instance ITObject (Exist THStack) where draw (ETHStack x) = draw x findObject (ETHStack x) = findObject x getName (ETHStack x) = getName x isA (ETHStack x) = isA x paint (ETHStack x) = paint x printObj (ETHStack x) = printObj x saveAs (ETHStack x) = saveAs x write (ETHStack x) = write x instance IDeletable (Exist THStack) where delete (ETHStack x) = delete x newTHStack :: CString -> CString -> IO THStack newTHStack = xform1 c_thstack_newthstack instance FPtr (Exist THStack) where type Raw (Exist THStack) = RawTHStack get_fptr (ETHStack obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETHStack (cast_fptr_to_obj (fptr :: ForeignPtr RawTHStack) :: THStack)