mongoDB-1.4.1: Driver (client) for MongoDB, a free, scalable, fast, document DBMS

Safe HaskellNone

Database.MongoDB.Connection

Contents

Description

Connect to a single server or a replica set of servers

Synopsis

Util

type IOE = ErrorT IOError IOSource

IO monad with explicit error

runIOE :: ErrorT IOError IO a -> IO aSource

Run action while catching explicit error and rethrowing in IO monad

Connection

type Pipe = Pipeline Response MessageSource

Thread-safe TCP connection with pipelined requests

close :: Pipeline i o -> IO ()Source

Close pipe and underlying connection

Server

data Host Source

Constructors

Host HostName PortID 

Instances

defaultPort :: PortIDSource

Default MongoDB port = 27017

showHostPort :: Host -> StringSource

Display host as "host:port" TODO: Distinguish Service and UnixSocket port

readHostPort :: String -> HostSource

Read string "hostname:port" as Host hostname (PortNumber port) or "hostname" as host hostname (default port). Error if string does not match either syntax.

readHostPortM :: Monad m => String -> m HostSource

Read string "hostname:port" as Host hosthame (PortNumber port) or "hostname" as host hostname (default port). Fail if string does not match either syntax. TODO: handle Service and UnixSocket port

globalConnectTimeout :: IORef SecsSource

connect (and openReplicaSet) fails if it can't connect within this many seconds (default is 6 seconds). Use 'connect\'' (and 'openReplicaSet\'') if you want to ignore this global and specify your own timeout. Note, this timeout only applies to initial connection establishment, not when reading/writing to the connection.

connect :: Host -> IOE PipeSource

Connect to Host returning pipelined TCP connection. Throw IOError if connection refused or no response within globalConnectTimeout.

connect' :: Secs -> Host -> IOE PipeSource

Connect to Host returning pipelined TCP connection. Throw IOError if connection refused or no response within given number of seconds.

Replica Set

openReplicaSet :: (ReplicaSetName, [Host]) -> IOE ReplicaSetSource

Open connections (on demand) to servers in replica set. Supplied hosts is seed list. At least one of them must be a live member of the named replica set, otherwise fail. The value of globalConnectTimeout at the time of this call is the timeout used for future member connect attempts. To use your own value call 'openReplicaSet\'' instead.

openReplicaSet' :: Secs -> (ReplicaSetName, [Host]) -> IOE ReplicaSetSource

Open connections (on demand) to servers in replica set. Supplied hosts is seed list. At least one of them must be a live member of the named replica set, otherwise fail. Supplied seconds timeout is used for connect attempts to members.

data ReplicaSet Source

Maintains a connection (created on demand) to each server in the named replica set

primary :: ReplicaSet -> IOE PipeSource

Return connection to current primary of replica set. Fail if no primary available.

secondaryOk :: ReplicaSet -> IOE PipeSource

Return connection to a random secondary, or primary if no secondaries available.

routedHost :: ((Host, Bool) -> (Host, Bool) -> IOE Ordering) -> ReplicaSet -> IOE PipeSource

Return a connection to a host using a user-supplied sorting function, which sorts based on a tuple containing the host and a boolean indicating whether the host is primary.

closeReplicaSet :: ReplicaSet -> IO ()Source

Close all connections to replica set

replSetName :: ReplicaSet -> TextSource

name of connected replica set