X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FStorage.hs;h=a89a2afa4676d10778762b7bd61c9f97ea8e2959;hb=443af4d3304139bb2187a0c726327b9c05829810;hp=63480de03f44fd502136e39621e1da5017b0ae32;hpb=b4a3d2cf3854b10d923cb4c546bf1fe32b021a68;p=Rakka.git diff --git a/Rakka/Storage.hs b/Rakka/Storage.hs index 63480de..a89a2af 100644 --- a/Rakka/Storage.hs +++ b/Rakka/Storage.hs @@ -5,9 +5,11 @@ module Rakka.Storage , getPage , putPage + , deletePage , getPageA , putPageA + , deletePageA , searchPages @@ -45,9 +47,16 @@ getPage :: MonadIO m => Storage -> PageName -> Maybe RevNum -> m (Maybe Page) getPage = ((liftIO .) .) . getPage' . stoRepository -putPage :: MonadIO m => Storage -> Page -> m StatusCode -putPage sto page - = liftIO $ do st <- putPage' (stoRepository sto) page +putPage :: MonadIO m => Storage -> Maybe String -> Page -> m StatusCode +putPage sto userID page + = liftIO $ do st <- putPage' (stoRepository sto) userID page + syncIndex sto + return st + + +deletePage :: MonadIO m => Storage -> Maybe String -> PageName -> m StatusCode +deletePage sto userID name + = liftIO $ do st <- deletePage' (stoRepository sto) userID name syncIndex sto return st @@ -56,8 +65,12 @@ getPageA :: ArrowIO a => Storage -> a (PageName, Maybe RevNum) (Maybe Page) getPageA = arrIO2 . getPage -putPageA :: ArrowIO a => Storage -> a Page StatusCode -putPageA = arrIO . putPage +putPageA :: ArrowIO a => Storage -> a (Maybe String, Page) StatusCode +putPageA = arrIO2 . putPage + + +deletePageA :: ArrowIO a => Storage -> a (Maybe String, PageName) StatusCode +deletePageA = arrIO2 . deletePage searchPages :: MonadIO m => Storage -> Condition -> m [(PageName, RevNum)]