]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Storage.hs
wrote much code...
[Rakka.git] / Rakka / Storage.hs
index d830131d962b5c2eeb6fb3f6acc43e113a14650a..1abace0ac17453e210c87b284cb56eda4be73282 100644 (file)
@@ -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