Workflow-0.5.8.0: library for transparent execution of interruptible computations

Data.Persistent.Queue.Text

Description

This module implements a persistent, transactional collection with Queue interface as well as indexed access by key

use this version if you store in the queue different versions of largue structures, for example, documents and define a Data.RefSerialize instance. If not, use Data.Persistent.Queue.Binary Instead.

Here QueueConstraints w r a means Data.RefSerlialize.Serialize a

Synopsis

Documentation

type RefQueue a = DBRef (Queue a)Source

a queue reference

getQRef :: (Typeable a, QueueConstraints w r a) => String -> RefQueue aSource

get the reference to new or existing queue trough its name

popSource

Arguments

:: (Typeable a, QueueConstraints w r a) 
=> RefQueue a

Queue name

-> IO a

the returned elems

read the first element in the queue and delete it (pop)

popSTM :: (Typeable a, QueueConstraints w r a) => RefQueue a -> STM aSource

version in the STM monad

pickSource

Arguments

:: (Typeable a, QueueConstraints w r a) 
=> RefQueue a

Queue name

-> IO a

the returned elems

flush :: (Typeable a, QueueConstraints w r a) => RefQueue a -> IO ()Source

empty the queue (factually, it is deleted)

flushSTM :: (Typeable a, QueueConstraints w r a) => RefQueue a -> STM ()Source

version in the STM monad

pickAll :: (Typeable a, QueueConstraints w r a) => RefQueue a -> IO [a]Source

return the list of all elements in the queue. The queue remains unchanged

pickAllSTM :: (Typeable a, QueueConstraints w r a) => RefQueue a -> STM [a]Source

version in the STM monad

push :: (Typeable a, QueueConstraints w r a) => RefQueue a -> a -> IO ()Source

push an element in the queue

pushSTM :: (Typeable a, QueueConstraints w r a) => RefQueue a -> a -> STM ()Source

version in the STM monad

pickElem :: (Indexable a, Typeable a, QueueConstraints w r a) => RefQueue a -> String -> IO (Maybe a)Source

return the first element in the queue that has the given key

pickElemSTM :: (Indexable a, Typeable a, QueueConstraints w r a) => RefQueue a -> String -> STM (Maybe a)Source

version in the STM monad

readAll :: (Typeable a, QueueConstraints w r a) => RefQueue a -> IO [a]Source

return the list of all elements in the queue and empty it

readAllSTM :: (Typeable a, QueueConstraints w r a) => RefQueue a -> STM [a]Source

a version in the STM monad

deleteElem :: (Indexable a, Typeable a, QueueConstraints w r a) => RefQueue a -> a -> IO ()Source

delete all the elements of the queue that has the key of the parameter passed

deleteElemSTM :: (Typeable a, Indexable a, QueueConstraints w r a) => RefQueue a -> a -> STM ()Source

verison in the STM monad

unreadSTM :: (Typeable a, QueueConstraints w r a) => RefQueue a -> a -> STM ()Source

isEmpty :: (Typeable a, QueueConstraints w r a) => RefQueue a -> IO BoolSource

check if the queue is empty

isEmptySTM :: (Typeable a, QueueConstraints w r a) => RefQueue a -> STM BoolSource