X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FStorage.hs;h=1abace0ac17453e210c87b284cb56eda4be73282;hb=8f77b5949ccd5f2272a02c852d51bfa2ecfa84c8;hp=d830131d962b5c2eeb6fb3f6acc43e113a14650a;hpb=484e15845d9c06d0fa62044d3b6b3ff8c78a6e04;p=Rakka.git diff --git a/Rakka/Storage.hs b/Rakka/Storage.hs index d830131..1abace0 100644 --- a/Rakka/Storage.hs +++ b/Rakka/Storage.hs @@ -4,26 +4,40 @@ module Rakka.Storage , mkStorage -- private , getPage - , savePage + , putPage + + , getPageA + , putPageA ) where +import Control.Arrow.ArrowIO +import Control.Monad.Trans import Rakka.Page import Rakka.Storage.DefaultPage +import Subversion.Types data Storage = Storage -- FIXME -mkStorage :: IO Storage -- FIXME -mkStorage = return Storage +mkStorage :: Storage -- FIXME +mkStorage = Storage -getPage :: Storage -> PageName -> IO (Maybe Page) +getPage :: MonadIO m => Storage -> PageName -> m (Maybe Page) getPage sto name - = loadDefaultPage name -- FIXME + = liftIO $ loadDefaultPage name -- FIXME -savePage :: Storage -> PageName -> Page -> IO () -savePage sto name page +putPage :: MonadIO m => Storage -> Maybe RevNum -> Page -> m () +putPage sto oldRev page = error "FIXME: not implemented" + + +getPageA :: ArrowIO a => Storage -> a PageName (Maybe Page) +getPageA = arrIO . getPage + + +putPageA :: ArrowIO a => Storage -> a (Maybe RevNum, Page) () +putPageA = arrIO2 . putPage \ No newline at end of file