Holumbus-Storage-0.0.1: source/Holumbus/FileSystem/Controller.hs
-- ----------------------------------------------------------------------------
{- |
Module : Holumbus.FileSystem.Controller
Copyright : Copyright (C) 2008 Stefan Schmidt
License : MIT
Maintainer : Stefan Schmidt (stefanschmidt@web.de)
Stability : experimental
Portability: portable
Version : 0.1
-}
-- ----------------------------------------------------------------------------
module Holumbus.FileSystem.Controller
(
-- * Typeclass
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
-- ----------------------------------------------------------------------------
-- Typeclass
-- ----------------------------------------------------------------------------
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)
getNearestNodePortForFile :: S.FileId -> Integer -> SiteId -> c -> IO (Maybe ClientPort)
-- only to be used by the nodes
createFile :: S.FileId -> IdType -> c -> IO ()
deleteFile :: S.FileId -> IdType -> c -> IO ()
appendFile :: S.FileId -> IdType -> c -> IO ()