module Data.Persistent.Queue.Binary(
RefQueue(..), getQRef,
pop,popSTM,pick,Data.Persistent.Queue.Binary.flush, flushSTM,
pickAll, pickAllSTM, push,pushSTM,
pickElem, pickElemSTM, readAll, readAllSTM,
deleteElem, deleteElemSTM,
unreadSTM,Data.Persistent.Queue.Binary.isEmpty,isEmptySTM
) where
import Data.Typeable
import Control.Concurrent.STM(STM,atomically, retry)
import Control.Monad(when)
import Data.TCache.DefaultPersistence
import Data.TCache
import System.IO.Unsafe
import Data.IORef
import Data.ByteString.Lazy.Char8
import Control.Workflow.GenSerializer
import Data.Binary
import Data.Binary.Put
import Data.Binary.Get
instance SerialiserString PutM Get where
serialString= put
deserialString= get
instance Indexable (Queue a) where
key (Queue k _ _)= queuePrefix ++ k
defPath _= "WorkflowState/Binary/"
#include "Queue.inc.hs"