{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Class.TFile.Implementation where import HROOT.TypeCast import HROOT.Class.TFile.RawType import HROOT.Class.TFile.FFI import HROOT.Class.TFile.Interface import HROOT.Class.TFile.Cast import HROOT.Class.TList.RawType import HROOT.Class.TList.Cast import HROOT.Class.TList.Interface import HROOT.Class.TKey.RawType import HROOT.Class.TKey.Cast import HROOT.Class.TKey.Interface import HROOT.Class.TClass.RawType import HROOT.Class.TClass.Cast import HROOT.Class.TClass.Interface import HROOT.Class.TDirectoryFile.RawType import HROOT.Class.TDirectoryFile.Cast import HROOT.Class.TDirectoryFile.Interface import HROOT.Class.TDirectory.RawType import HROOT.Class.TDirectory.Cast import HROOT.Class.TDirectory.Interface import HROOT.Class.TNamed.RawType import HROOT.Class.TNamed.Cast import HROOT.Class.TNamed.Interface import HROOT.Class.TObject.RawType import HROOT.Class.TObject.Cast import HROOT.Class.TObject.Interface import HROOT.Class.Deletable.RawType import HROOT.Class.Deletable.Cast import HROOT.Class.Deletable.Interface import Data.Word -- import Foreign.C -- import Foreign.Ptr import Foreign.ForeignPtr import System.IO.Unsafe instance ITFile TFile where instance ITDirectoryFile TFile where getListOfKeys = xform0 c_tfile_getlistofkeys instance ITDirectory TFile where append = xform2 c_tfile_append addD = xform2 c_tfile_addd appendKey = xform1 c_tfile_appendkey close = xform1 c_tfile_close get = xform1 c_tfile_get instance ITNamed TFile where setName = xform1 c_tfile_setname setNameTitle = xform2 c_tfile_setnametitle setTitle = xform1 c_tfile_settitle instance ITObject TFile where draw = xform1 c_tfile_draw findObject = xform1 c_tfile_findobject getName = xform0 c_tfile_getname isA = xform0 c_tfile_isa isFolder = xform0 c_tfile_isfolder isEqual = xform1 c_tfile_isequal isSortable = xform0 c_tfile_issortable paint = xform1 c_tfile_paint printObj = xform1 c_tfile_printobj recursiveRemove = xform1 c_tfile_recursiveremove saveAs = xform2 c_tfile_saveas useCurrentStyle = xform0 c_tfile_usecurrentstyle write = xform3 c_tfile_write instance IDeletable TFile where delete = xform0 c_tfile_delete instance ITFile (Exist TFile) where instance ITDirectoryFile (Exist TFile) where getListOfKeys (ETFile x) = getListOfKeys x instance ITDirectory (Exist TFile) where append (ETFile x) = append x addD (ETFile x) = addD x appendKey (ETFile x) = appendKey x close (ETFile x) = close x get (ETFile x) = get x instance ITNamed (Exist TFile) where setName (ETFile x) = setName x setNameTitle (ETFile x) = setNameTitle x setTitle (ETFile x) = setTitle x instance ITObject (Exist TFile) where draw (ETFile x) = draw x findObject (ETFile x) = findObject x getName (ETFile x) = getName x isA (ETFile x) = isA x isFolder (ETFile x) = isFolder x isEqual (ETFile x) = isEqual x isSortable (ETFile x) = isSortable x paint (ETFile x) = paint x printObj (ETFile x) = printObj x recursiveRemove (ETFile x) = recursiveRemove x saveAs (ETFile x) = saveAs x useCurrentStyle (ETFile x) = useCurrentStyle x write (ETFile x) = write x instance IDeletable (Exist TFile) where delete (ETFile x) = delete x newTFile :: String -> String -> String -> Int -> IO TFile newTFile = xform3 c_tfile_newtfile instance FPtr (Exist TFile) where type Raw (Exist TFile) = RawTFile get_fptr (ETFile obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETFile (cast_fptr_to_obj (fptr :: ForeignPtr RawTFile) :: TFile)