summaryrefslogtreecommitdiff
path: root/src/Erebos/Service.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Erebos/Service.hs')
-rw-r--r--src/Erebos/Service.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/Erebos/Service.hs b/src/Erebos/Service.hs
index fefc503..303f9db 100644
--- a/src/Erebos/Service.hs
+++ b/src/Erebos/Service.hs
@@ -51,6 +51,9 @@ class (
serviceNewPeer :: ServiceHandler s ()
serviceNewPeer = return ()
+ serviceUpdatedPeer :: ServiceHandler s ()
+ serviceUpdatedPeer = return ()
+
type ServiceAttributes s = attr | attr -> s
type ServiceAttributes s = Proxy s
defaultServiceAttributes :: proxy s -> ServiceAttributes s
@@ -104,7 +107,9 @@ someServiceEmptyGlobalState :: SomeService -> SomeServiceGlobalState
someServiceEmptyGlobalState (SomeService p _) = SomeServiceGlobalState p (emptyServiceGlobalState p)
-data SomeStorageWatcher s = forall a. Eq a => SomeStorageWatcher (Stored LocalState -> a) (a -> ServiceHandler s ())
+data SomeStorageWatcher s
+ = forall a. Eq a => SomeStorageWatcher (Stored LocalState -> a) (a -> ServiceHandler s ())
+ | forall a. Eq a => GlobalStorageWatcher (Stored LocalState -> a) (Server -> a -> ExceptT ErebosError IO ())
mkServiceID :: String -> ServiceID
@@ -113,6 +118,7 @@ mkServiceID = maybe (error "Invalid service ID") ServiceID . U.fromString
data ServiceInput s = ServiceInput
{ svcAttributes :: ServiceAttributes s
, svcPeer :: Peer
+ , svcPeerAddress :: PeerAddress
, svcPeerIdentity :: UnifiedIdentity
, svcServer :: Server
, svcPrintOp :: String -> IO ()