diff options
-rw-r--r-- | mock/Server.hs | 31 | ||||
-rw-r--r-- | mock/Util.hs | 8 |
2 files changed, 18 insertions, 21 deletions
diff --git a/mock/Server.hs b/mock/Server.hs index b4dea2c..1fd2b97 100644 --- a/mock/Server.hs +++ b/mock/Server.hs @@ -17,33 +17,22 @@ import Types import Util --- | Message from the client gate to the server process. The response of the --- server is written to the MVar. -data ServerIn = ServerIn ServerIn' (TMVar [ServerOut]) - -data ServerIn' - = IAnon Cmd - | IAs User Cmd +newtype ConnId = ConnId Int deriving (Show) -data ServerOut - = OResponse Response - | OLogin User - | OLogout - | ODisconnect - | OBroadcast BroadcastAudience Push -- ^ Will not broadcast to the sender of the ServerIn +data ServerIn + = IOpen ConnId + | IClose ConnId + | ICmd ConnId Cmd deriving (Show) -data BroadcastAudience - = AudUser User -- ^ All sessions of the user - | AudRoom Room -- ^ All sessions of all users in the room - | AudVisibleUsers User -- ^ All sessions of all users in all rooms that this user is in +data ServerOutAction + = OClose ConnId + | OResponse ConnId Response + | OPush ConnId Push deriving (Show) -data ClientAction - = CAResponse Response - | CAPush Push - | CADisconnect +newtype ServerOut = ServerOut [ServerOutAction] deriving (Show) data ClientState diff --git a/mock/Util.hs b/mock/Util.hs new file mode 100644 index 0000000..be12f56 --- /dev/null +++ b/mock/Util.hs @@ -0,0 +1,8 @@ +module Util where + + +newtype Opaque a = Opaque { unOpaque :: a } + deriving (Eq, Ord) + +instance Show (Opaque a) where + show _ = "Opaque" |