-- ---------------------------------------------------------------------------- {- | Module : Holumbus.FileSystem.Node.NodePort Copyright : Copyright (C) 2008 Stefan Schmidt License : MIT Maintainer : Stefan Schmidt (stefanschmidt@web.de) Stability : experimental Portability: portable Version : 0.1 -} -- ---------------------------------------------------------------------------- module Holumbus.FileSystem.Node.NodePort ( -- * Datatypes NodePort -- * Creation and Destruction , newNodePort ) where import Holumbus.Common.Debug import Holumbus.Network.Communication import Holumbus.FileSystem.Messages import Holumbus.FileSystem.Node -- ---------------------------------------------------------------------------- -- Datatypes -- ---------------------------------------------------------------------------- data NodePort = NodePort ClientPort deriving (Show) -- | Creates a new NodePort. newNodePort :: ClientPort -> NodePort newNodePort p = NodePort p -- ---------------------------------------------------------------------------- -- Typeclass instanciation -- ---------------------------------------------------------------------------- instance NodeClass NodePort where closeNode _ = return () createFile i c (NodePort p) = do sendRequestToClient p time30 (NReqCreate i c) $ \rsp -> do case rsp of (NRspSuccess) -> return (Just ()) _ -> return Nothing createFiles l (NodePort p) = do sendRequestToClient p time60 (NReqCreateS l) $ \rsp -> do case rsp of (NRspSuccess) -> return (Just ()) _ -> return Nothing appendFile i c (NodePort p) = do sendRequestToClient p time30 (NReqAppend i c) $ \rsp -> do case rsp of (NRspSuccess) -> return (Just ()) _ -> return Nothing deleteFile i b (NodePort p) = do sendRequestToClient p time30 (NReqDelete i b) $ \rsp -> do case rsp of (NRspSuccess) -> return (Just ()) _ -> return Nothing copyFile i cp (NodePort p) = do sendRequestToClient p time30 (NReqCopy i cp) $ \rsp -> do case rsp of (NRspSuccess) -> return (Just ()) _ -> return Nothing containsFile i (NodePort p) = do sendRequestToClient p time30 (NReqContains i) $ \rsp -> do case rsp of (NRspContains b) -> return (Just b) _ -> return Nothing getFileContent i (NodePort p) = do sendRequestToClient p time30 (NReqGetFileContent i) $ \rsp -> do case rsp of (NRspGetFileContent c) -> return (Just c) _ -> return Nothing getMultiFileContent l (NodePort p) = do sendRequestToClient p time30 (NReqGetMultiFileContent l) $ \rsp -> do case rsp of (NRspGetMultiFileContent lc) -> return (Just lc) _ -> return Nothing getFileData i (NodePort p) = do sendRequestToClient p time30 (NReqGetFileData i) $ \rsp -> do case rsp of (NRspGetFileData d) -> return (Just d) _ -> return Nothing getFileIds (NodePort p) = do sendRequestToClient p time30 (NReqGetFileIds) $ \rsp -> do case rsp of (NRspGetFileIds ls) -> return (Just ls) _ -> return Nothing instance Debug NodePort where printDebug (NodePort p) = do putStrLn "NodePort:" putStrLn $ show p getDebug (NodePort p) = return ("NodePort:\n"++show p++"\n")