Safe Haskell | None |
---|---|
Language | Haskell98 |
A Snaplet for using the Riak database (via the riak package) Modelled on snaplet-postgresql-simple
- data RiakDB
- withRiak :: HasRiak m => (Connection -> IO a) -> m a
- riakInit :: Pool -> SnapletInit b RiakDB
- riakCreate :: Client -> Int -> NominalDiffTime -> Int -> SnapletInit b RiakDB
- class MonadIO m => HasRiak m where
- getRiakState :: m RiakDB
- get :: (HasRiak m, FromJSON a, ToJSON a, Resolvable a) => Bucket -> Key -> R -> m (Maybe (a, VClock))
- getMany :: (HasRiak m, FromJSON a, ToJSON a, Resolvable a) => Bucket -> [Key] -> R -> m [Maybe (a, VClock)]
- modify :: (HasRiak m, FromJSON a, ToJSON a, Resolvable a) => Bucket -> Key -> R -> W -> DW -> (Maybe a -> IO (a, b)) -> m (a, b)
- modify_ :: (HasRiak m, FromJSON a, ToJSON a, Resolvable a) => Bucket -> Key -> R -> W -> DW -> (Maybe a -> IO a) -> m a
- delete :: HasRiak m => Bucket -> Key -> RW -> m ()
- put :: (HasRiak m, Eq a, FromJSON a, ToJSON a, Resolvable a) => Bucket -> Key -> Maybe VClock -> a -> W -> DW -> m (a, VClock)
- putMany :: (HasRiak m, Eq a, FromJSON a, ToJSON a, Resolvable a) => Bucket -> [(Key, Maybe VClock, a)] -> W -> DW -> m [(a, VClock)]
- listBuckets :: HasRiak m => m (Seq Bucket)
- foldKeys :: HasRiak m => Bucket -> (a -> Key -> IO a) -> a -> m a
- getBucket :: HasRiak m => Bucket -> m BucketProps
- setBucket :: HasRiak m => Bucket -> BucketProps -> m ()
- mapReduce :: HasRiak m => Job -> (a -> MapReduce -> a) -> a -> m a
Documentation
withRiak :: HasRiak m => (Connection -> IO a) -> m a Source
Perform an action using a Riak Connection in the Riak snaplet
result <- withRiak $ \c -> get c "myBucket" "myKey" Default
riakInit :: Pool -> SnapletInit b RiakDB Source
Initialize the Riak snaplet
riakCreate :: Client -> Int -> NominalDiffTime -> Int -> SnapletInit b RiakDB Source
Thin wrapper around create
to run within SnapletInit
class MonadIO m => HasRiak m where Source
A class which, when implemented, allows the wrapper functions below to be used without explicitly managing the connection and having to use liftIO.
getRiakState :: m RiakDB Source
get :: (HasRiak m, FromJSON a, ToJSON a, Resolvable a) => Bucket -> Key -> R -> m (Maybe (a, VClock)) Source
getMany :: (HasRiak m, FromJSON a, ToJSON a, Resolvable a) => Bucket -> [Key] -> R -> m [Maybe (a, VClock)] Source
modify :: (HasRiak m, FromJSON a, ToJSON a, Resolvable a) => Bucket -> Key -> R -> W -> DW -> (Maybe a -> IO (a, b)) -> m (a, b) Source
modify_ :: (HasRiak m, FromJSON a, ToJSON a, Resolvable a) => Bucket -> Key -> R -> W -> DW -> (Maybe a -> IO a) -> m a Source
put :: (HasRiak m, Eq a, FromJSON a, ToJSON a, Resolvable a) => Bucket -> Key -> Maybe VClock -> a -> W -> DW -> m (a, VClock) Source
putMany :: (HasRiak m, Eq a, FromJSON a, ToJSON a, Resolvable a) => Bucket -> [(Key, Maybe VClock, a)] -> W -> DW -> m [(a, VClock)] Source
listBuckets :: HasRiak m => m (Seq Bucket) Source
getBucket :: HasRiak m => Bucket -> m BucketProps Source
setBucket :: HasRiak m => Bucket -> BucketProps -> m () Source