module Holumbus.FileSystem.Controller
(
ControllerClass(..)
)
where
import Prelude hiding (appendFile)
import qualified Data.Set as Set
import Holumbus.Network.Site
import Holumbus.Network.Communication
import qualified Holumbus.FileSystem.Storage as S
import Holumbus.FileSystem.Messages ( ClientPortMap )
class ControllerClass c where
closeController :: c -> IO ()
getFileSites :: S.FileId -> c -> IO (Set.Set SiteId)
containsFile :: S.FileId -> c -> IO Bool
getNearestNodePortWithFile :: S.FileId -> SiteId -> c -> IO (Maybe ClientPort)
getNearestNodePortWithFiles :: [S.FileId] -> SiteId -> c -> IO ClientPortMap
getNearestNodePortForFile :: S.FileId -> Integer -> SiteId -> c -> IO (Maybe ClientPort)
getNearestNodePortForFiles :: [(S.FileId,Integer)] -> SiteId -> c -> IO ClientPortMap
createFile :: S.FileId -> IdType -> c -> IO ()
createFiles :: [(S.FileId,IdType)] -> c -> IO ()
deleteFile :: S.FileId -> IdType -> c -> IO ()
appendFile :: S.FileId -> IdType -> c -> IO ()