1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
module Erebos.Service (
Service(..),
SomeService(..), someService, someServiceAttr, someServiceID,
SomeServiceState(..), fromServiceState, someServiceEmptyState,
SomeServiceGlobalState(..), fromServiceGlobalState, someServiceEmptyGlobalState,
SomeStorageWatcher(SomeStorageWatcher, GlobalStorageWatcher),
someStorageWatcher, someStorageWatcherHC, globalStorageWatcher, globalStorageWatcherH,
ServiceID, mkServiceID,
ServiceHandler,
ServiceInput(..),
ServiceReply(..),
runServiceHandler,
svcGet, svcSet, svcModify,
svcGetGlobal, svcSetGlobal, svcModifyGlobal,
svcGetLocal, svcSetLocal,
svcSelf,
svcPrint,
replyPacket, replyStored, replyStoredRef,
afterCommit,
) where
import Control.Monad.Except
import {-# SOURCE #-} Erebos.Network
import Erebos.Network.Protocol
import Erebos.State
import Erebos.Storable
import Erebos.Storage.Head
import Service
someStorageWatcher :: forall s a. (Service s, Eq a) => (Stored LocalState -> a) -> (a -> ServiceHandler s ()) -> SomeStorageWatcher s
someStorageWatcher = SomeStorageWatcher
someStorageWatcherHC :: forall s a. (Service s, Eq a) => (Stored LocalState -> HeadCacheType LocalState -> a) -> (a -> ServiceHandler s ()) -> SomeStorageWatcher s
someStorageWatcherHC = SomeStorageWatcherHC
globalStorageWatcher :: forall s a. (Service s, Eq a) => (Stored LocalState -> a) -> (Server -> a -> ExceptT ErebosError IO ()) -> SomeStorageWatcher s
globalStorageWatcher = GlobalStorageWatcher
globalStorageWatcherH :: forall s a. (Service s, Eq a) => (Head LocalState -> a) -> (Server -> a -> ExceptT ErebosError IO ()) -> SomeStorageWatcher s
globalStorageWatcherH = GlobalStorageWatcherH
|