module HROOT.Core.TQObject.Implementation where
import FFICXX.Runtime.Cast
import HROOT.Core.TQObject.RawType
import HROOT.Core.TQObject.FFI
import HROOT.Core.TQObject.Interface
import HROOT.Core.TQObject.Cast
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 ITQObject TQObject where
instance IDeletable TQObject where
delete = xform0 c_tqobject_delete
instance ITQObject (Exist TQObject) where
instance IDeletable (Exist TQObject) where
delete (ETQObject x) = delete x
instance FPtr (Exist TQObject) where
type Raw (Exist TQObject) = RawTQObject
get_fptr (ETQObject obj) = castForeignPtr (get_fptr obj)
cast_fptr_to_obj fptr = ETQObject (cast_fptr_to_obj (fptr :: ForeignPtr RawTQObject) :: TQObject)