, 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