249 |
(* *) |
(* *) |
250 |
(*************************************************************************) |
(*************************************************************************) |
251 |
|
|
252 |
let update_identity id_new idstore = |
let update_identity id_new (idstore : g_identity) = |
253 |
try |
try |
254 |
let id = Hashtbl.find id_by_num (identity_num id_new) in |
let id = Hashtbl.find id_by_num (identity_num id_new) in |
255 |
let row = idstore#find_row (id_key (identity_num id_new)) in |
let row = idstore#find_row (id_key (identity_num id_new)) in |
256 |
idstore#update_item row id id_new; |
Gaux.may ~f:(fun r -> idstore#update_item r id id_new) row; |
257 |
Hashtbl.replace id_by_num (identity_num id_new) id_new |
Hashtbl.replace id_by_num (identity_num id_new) id_new |
258 |
with _ -> |
with _ -> |
259 |
begin |
begin |
260 |
ignore (idstore#add_item id_new); |
idstore#add_item id_new (); |
261 |
Hashtbl.add id_by_num (identity_num id_new) id_new |
Hashtbl.add id_by_num (identity_num id_new) id_new |
262 |
end |
end |
263 |
|
|
303 |
|
|
304 |
| Room_user_join (_, identity) -> |
| Room_user_join (_, identity) -> |
305 |
update_identity identity ro.store |
update_identity identity ro.store |
306 |
|
|
307 |
| Room_user_leave (_, identity) -> |
| Room_user_leave (_, identity) -> |
308 |
remove_identity identity ro.store |
remove_identity identity ro.store |
309 |
|
|