eventstore-0.15.0.0: Database/EventStore/Internal/Communication.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE ExistentialQuantification #-}
--------------------------------------------------------------------------------
-- |
-- Module : Database.EventStore.Internal.Communication
-- Copyright : (C) 2017 Yorick Laupa
-- License : (see the file LICENSE)
--
-- Maintainer : Yorick Laupa <yo.eight@gmail.com>
-- Stability : provisional
-- Portability : non-portable
--
--------------------------------------------------------------------------------
module Database.EventStore.Internal.Communication where
--------------------------------------------------------------------------------
import Data.Typeable
--------------------------------------------------------------------------------
import Database.EventStore.Internal.Callback
import Database.EventStore.Internal.Operation
import Database.EventStore.Internal.Prelude
import Database.EventStore.Internal.Types
--------------------------------------------------------------------------------
data SystemInit = SystemInit deriving Typeable
--------------------------------------------------------------------------------
data SystemShutdown = SystemShutdown deriving Typeable
--------------------------------------------------------------------------------
data Service
= ConnectionManager
| TimerService
deriving (Show, Eq, Enum, Bounded, Typeable, Generic)
--------------------------------------------------------------------------------
instance Hashable Service
--------------------------------------------------------------------------------
data Initialized = Initialized Service deriving Typeable
--------------------------------------------------------------------------------
data InitFailed = InitFailed Service deriving Typeable
--------------------------------------------------------------------------------
data FatalException
= forall e. Exception e => FatalException e
| FatalCondition Text
deriving Typeable
--------------------------------------------------------------------------------
data SubmitOperation =
forall a. SubmitOperation (Callback a) (Operation a)
deriving Typeable
--------------------------------------------------------------------------------
data ServiceTerminated = ServiceTerminated Service deriving Typeable
--------------------------------------------------------------------------------
data NewTimer =
forall e. Typeable e => NewTimer e Duration Bool
deriving Typeable
--------------------------------------------------------------------------------
newtype SendPackage = SendPackage Package deriving Typeable