arbiter-core-0.1.0.0
arbiter-core
Safe HaskellNone
LanguageGHC2024

Arbiter.Core.Listen.Driver

Description

A ListenConn and an interruptible connect over any libpq-shaped driver.

This is the API for backend authors.

Synopsis

Documentation

data ConnectDriver connSource #

The driver calls that open, inspect and close a connection.

Constructors

ConnectDriver 

Fields

data ConnStatusSource #

Where an asynchronous connect stands.

Constructors

ConnOk

The connection is open.

ConnBad

The connect failed.

ConnPending

The connect is still in progress.

Instances

Instances details
Eq ConnStatus Source # 
Instance details

Defined in Arbiter.Core.Listen.Driver

Show ConnStatus Source # 
Instance details

Defined in Arbiter.Core.Listen.Driver

data PollingSource #

Wait target from a connection poll.

Constructors

PollReading

Wait until the socket is readable.

PollWriting

Wait until the socket is writable.

PollDone

The connect has finished.

Instances

Instances details
Eq Polling Source # 
Instance details

Defined in Arbiter.Core.Listen.Driver

Methods

(==) :: Polling -> Polling -> Bool#

(/=) :: Polling -> Polling -> Bool#

Show Polling Source # 
Instance details

Defined in Arbiter.Core.Listen.Driver

execOutcome :: (Eq status, Show status) => status -> (result -> IO status) -> Maybe result -> IO (Either Text ())Source #

Check command status against the driver's success status. A missing result is Left.

withDriverListenConn :: ConnectDriver conn -> (conn -> ListenConn) -> ByteString -> (ListenConn -> IO a) -> IO aSource #

Run an action on a connection of its own, opened from a connection string.