riak-1.0.1.0: A Haskell client for the Riak decentralized data store

Copyright(c) 2011 MailRank, Inc.
LicenseApache
MaintainerMark Hibberd <mark@hibberd.id.au>, Nathan Hunter <nhunter@janrain.com>
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell98

Network.Riak.Value

Description

This module allows storage and retrieval of data using the IsContent typeclass. This provides access to more of Riak's storage features than JSON, e.g. links.

The functions in this module do not perform any conflict resolution.

Synopsis

Documentation

class IsContent c where Source

Methods

parseContent :: Content -> Parser c Source

toContent :: c -> Content Source

Instances

get :: IsContent c => Connection -> Bucket -> Key -> R -> IO (Maybe ([c], VClock)) Source

Retrieve a value. This may return multiple conflicting siblings. Choosing among them is your responsibility.

getMany :: IsContent c => Connection -> Bucket -> [Key] -> R -> IO [Maybe ([c], VClock)] Source

getByIndex :: Connection -> Bucket -> IndexQuery -> IO [Key] Source

Retrieve list of keys matching some index query.

addIndexes :: [IndexValue] -> Content -> Content Source

Add indexes to a content value for a further put request.

put :: IsContent c => Connection -> Bucket -> Key -> Maybe VClock -> c -> W -> DW -> IO ([c], VClock) Source

Store a single value. This may return multiple conflicting siblings. Choosing among them, and storing a new value, is your responsibility.

You should only supply Nothing as a VClock if you are sure that the given bucket+key combination does not already exist. If you omit a VClock but the bucket+key does exist, your value will not be stored.

putIndexed :: IsContent c => Connection -> Bucket -> Key -> [IndexValue] -> Maybe VClock -> c -> W -> DW -> IO ([c], VClock) Source

Store an indexed value.

put_ :: IsContent c => Connection -> Bucket -> Key -> Maybe VClock -> c -> W -> DW -> IO () Source

Store a single value, without the possibility of conflict resolution.

You should only supply Nothing as a VClock if you are sure that the given bucket+key combination does not already exist. If you omit a VClock but the bucket+key does exist, your value will not be stored, and you will not be notified.

putMany :: IsContent c => Connection -> Bucket -> [(Key, Maybe VClock, c)] -> W -> DW -> IO [([c], VClock)] Source

Store many values. This may return multiple conflicting siblings for each value stored. Choosing among them, and storing a new value in each case, is your responsibility.

You should only supply Nothing as a VClock if you are sure that the given bucket+key combination does not already exist. If you omit a VClock but the bucket+key does exist, your value will not be stored.

putMany_ :: IsContent c => Connection -> Bucket -> [(Key, Maybe VClock, c)] -> W -> DW -> IO () Source

Store many values, without the possibility of conflict resolution.

You should only supply Nothing as a VClock if you are sure that the given bucket+key combination does not already exist. If you omit a VClock but the bucket+key does exist, your value will not be stored, and you will not be notified.