X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_minichat_conversation.erl;h=d5f486f134fb7c03616665659a16d89772b98894;hb=d547231312e9e9c2f2c055673e0186334bbb67fd;hp=a280e1fd5c499d4ec28603042912730e84e4bdb3;hpb=5f49b7e6af9be3e2415136013370af4ac99d59da;p=euphorik.git diff --git a/modules/erl/euphorik_minichat_conversation.erl b/modules/erl/euphorik_minichat_conversation.erl index a280e1f..d5f486f 100755 --- a/modules/erl/euphorik_minichat_conversation.erl +++ b/modules/erl/euphorik_minichat_conversation.erl @@ -17,7 +17,7 @@ -include_lib("stdlib/include/qlc.hrl"). -import(lists, [reverse/1, any/2, map/2, sublist/3, filter/2]). --import(euphorik_minichat, [resultat_transaction/1]). +-import(euphorik_bd, [resultat_transaction/1]). -import(qlc, [e/1, q/1, keysort/3]). -import(mnesia, [table/1, transaction/1]). @@ -30,13 +30,12 @@ % @spec conversations([{integer(), integer(), integer()}], integer(), integer(), integer()) -> [Conversation()] conversations(Racines, N, D, P) -> % écoute des nouveaux messages - case subscribe(minichat, 2) of - erreur = E -> + case mnesia:subscribe({table, minichat, simple}) of + {error, E} = E -> E; _ -> % demande des conversations Conversations = conversations_detailees(Racines, N, D, P), - %io:format("Conversations : ~p~n", [Conversations]), % si les conversations sont vides alors on attend un nouveau message Vide = not any( fun(C) -> @@ -51,39 +50,38 @@ conversations(Racines, N, D, P) -> Conversations_mises_en_forme = mise_en_forme_conversations( if Vide -> attend_nouveau_message(), - %io:format("Racines = ~p, N = ~p, D = ~p, P = ~p~n", [Racines, N, D, P]), - %io:format("Conversations = ~p~n", [conversations_detailees(Racines, N, D, P)]), conversations_detailees(Racines, N, D, P); true -> Conversations end ), - %io:format("Conversations_mises_en_forme = ~p~n", [Conversations_mises_en_forme]), - unsubscribe(minichat), + mnesia:unsubscribe({table, minichat, simple}), Conversations_mises_en_forme end. % Ecoute les événements de modification d'une table. % @spec subscribe(atom(), integer()) -> ok | erreur -subscribe(_Table, 0) -> - erreur; -subscribe(Table, C) -> - case mnesia:subscribe({table, Table, simple}) of - {error, {not_active_local, Table}} -> - mnesia:add_table_copy(minichat, node(), ram_copies), - subscribe(Table, C - 1); - {error, _}-> - erreur; - _ -> - ok - end. +% Obsolète +%~ subscribe(_Table, 0) -> + %~ erreur; +%~ subscribe(Table, C) -> + %~ case mnesia:subscribe({table, Table, simple}) of + %~ {error, {not_active_local, Table}} -> + %~ mnesia:add_table_copy(minichat, node(), ram_copies), + %~ subscribe(Table, C - 1); + %~ {error, _}-> + %~ erreur; + %~ _ -> + %~ ok + %~ end. % Arrête d'écouter les modifications d'une table. % @spec unsubscribe(atom()) -> term() -unsubscribe(Table) -> - mnesia:unsubscribe({table, Table, simple}). +% Obsolète +%~ unsubscribe(Table) -> + %~ mnesia:unsubscribe({table, Table, simple}). % Attend qu'un nouveau message arrive, function bloquante. @@ -119,7 +117,7 @@ mise_en_forme_conversations([{Principale, Plus_principale} | Conversations]) -> mise_en_forme_conversation(Messages) -> lists:foldr( fun(Id, Acc) -> - case euphorik_minichat:message_by_id(Id) of + case euphorik_bd:message_by_id(Id) of {ok, Message} -> [{Message, parents(Id)} | Acc]; _ ->