gameServer/RoomsAndClients.hs
changeset 8452 170afc3ac39f
parent 6805 097289be7200
child 10215 26fc5502ba22
equal deleted inserted replaced
8451:8c7da08df048 8452:170afc3ac39f
    21     room,
    21     room,
    22     client'sM,
    22     client'sM,
    23     room'sM,
    23     room'sM,
    24     allClientsM,
    24     allClientsM,
    25     clientsM,
    25     clientsM,
       
    26     roomsM,
    26     roomClientsM,
    27     roomClientsM,
    27     roomClientsIndicesM,
    28     roomClientsIndicesM,
    28     withRoomsAndClients,
    29     withRoomsAndClients,
    29     allRooms,
    30     allRooms,
    30     allClients,
    31     allClients,
   158 allClientsM (MRoomsAndClients (_, clients)) = liftM (map ClientIndex) $ indicesM clients
   159 allClientsM (MRoomsAndClients (_, clients)) = liftM (map ClientIndex) $ indicesM clients
   159 
   160 
   160 clientsM :: MRoomsAndClients r c -> IO [c]
   161 clientsM :: MRoomsAndClients r c -> IO [c]
   161 clientsM (MRoomsAndClients (_, clients)) = indicesM clients >>= mapM (liftM client' . readElem clients)
   162 clientsM (MRoomsAndClients (_, clients)) = indicesM clients >>= mapM (liftM client' . readElem clients)
   162 
   163 
       
   164 roomsM :: MRoomsAndClients r c -> IO [r]
       
   165 roomsM (MRoomsAndClients (rooms, _)) = indicesM rooms >>= mapM (liftM room' . readElem rooms)
       
   166 
   163 roomClientsIndicesM :: MRoomsAndClients r c -> RoomIndex -> IO [ClientIndex]
   167 roomClientsIndicesM :: MRoomsAndClients r c -> RoomIndex -> IO [ClientIndex]
   164 roomClientsIndicesM (MRoomsAndClients (rooms, _)) (RoomIndex ri) = liftM roomClients' (rooms `readElem` ri)
   168 roomClientsIndicesM (MRoomsAndClients (rooms, _)) (RoomIndex ri) = liftM roomClients' (rooms `readElem` ri)
   165 
   169 
   166 roomClientsM :: MRoomsAndClients r c -> RoomIndex -> IO [c]
   170 roomClientsM :: MRoomsAndClients r c -> RoomIndex -> IO [c]
   167 roomClientsM (MRoomsAndClients (rooms, clients)) (RoomIndex ri) = liftM roomClients' (rooms `readElem` ri) >>= mapM (\(ClientIndex ci) -> liftM client' $ readElem clients ci)
   171 roomClientsM (MRoomsAndClients (rooms, clients)) (RoomIndex ri) = liftM roomClients' (rooms `readElem` ri) >>= mapM (\(ClientIndex ci) -> liftM client' $ readElem clients ci)