]> gitweb @ CieloNegro.org - Rakka.git/blob - Rakka/Storage.hs
wrote much code...
[Rakka.git] / Rakka / Storage.hs
1 module Rakka.Storage
2     ( Storage
3
4     , mkStorage -- private
5
6     , getPage
7     , putPage
8
9     , getPageA
10     , putPageA
11     )
12     where
13
14 import           Control.Arrow.ArrowIO
15 import           Control.Monad.Trans
16 import           Rakka.Page
17 import           Rakka.Storage.DefaultPage
18 import           Subversion.Types
19
20
21 data Storage = Storage -- FIXME
22
23
24 mkStorage :: Storage -- FIXME
25 mkStorage = Storage
26
27
28 getPage :: MonadIO m => Storage -> PageName -> m (Maybe Page)
29 getPage sto name
30     = liftIO $ loadDefaultPage name -- FIXME
31
32
33 putPage :: MonadIO m => Storage -> Maybe RevNum -> Page -> m ()
34 putPage sto oldRev page
35     = error "FIXME: not implemented"
36
37
38 getPageA :: ArrowIO a => Storage -> a PageName (Maybe Page)
39 getPageA = arrIO . getPage 
40
41
42 putPageA :: ArrowIO a => Storage -> a (Maybe RevNum, Page) ()
43 putPageA = arrIO2 . putPage