riak-0.9.0.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.Connection

Contents

Description

Low-level network connection management.

Synopsis

Connection management

connect :: Client -> IO Connection Source

Connect to a server.

disconnect :: Connection -> IO () Source

Disconnect from a server.

Client configuration

defaultClient :: Client Source

Default client configuration. Talks to localhost, port 8087, with a randomly chosen client ID.

makeClientID :: IO ClientID Source

Generate a random client ID.

Requests and responses

Sending and receiving

exchange :: Exchange req resp => Connection -> req -> IO resp Source

Send a request to the server, and receive its response.

exchangeMaybe :: Exchange req resp => Connection -> req -> IO (Maybe resp) Source

Send a request to the server, and receive its response (which may be empty).

exchange_ :: Request req => Connection -> req -> IO () Source

Send a request to the server, and receive its response, but do not decode it.

Pipelining many requests

pipeline :: Exchange req resp => Connection -> [req] -> IO [resp] Source

Send a series of requests to the server, back to back, and receive a response for each request sent. The sending and receiving will be overlapped if possible, to improve concurrency and reduce latency.

pipelineMaybe :: Exchange req resp => Connection -> [req] -> IO [Maybe resp] Source

Send a series of requests to the server, back to back, and receive a response for each request sent (the responses may be empty). The sending and receiving will be overlapped if possible, to improve concurrency and reduce latency.

pipeline_ :: Request req => Connection -> [req] -> IO () Source

Send a series of requests to the server, back to back, and receive (but do not decode) a response for each request sent. The sending and receiving will be overlapped if possible, to improve concurrency and reduce latency.