conversations_detailees(Racines, N, D, P) -> \r
Conversations = map(fun({Racine, P_conv, Dernier}) -> conversation(Racine, N, Dernier, P_conv) end, Racines),\r
Conversation_principale = resultat_transaction(transaction(fun() ->
- Dernier_id = mnesia:last(minichat),\r
+ Dernier_id = mnesia:table_info(minichat, size),\r
{CP, Plus} = conversation_principale(Dernier_id, Conversations, N, P),\r
{[M || M <- CP, M > D], Plus} % filtre en fonction de D\r
end)),\r
% @spec conversation_principale2(integer(), [integer()], integer(), integer()) -> [integer()]\r
conversation_principale2(_, _, 0, _) ->\r
[];
-conversation_principale2('$end_of_table', _, _, _) ->
+conversation_principale2(0, _, _, _) ->\r
[];\r
conversation_principale2(Id, Messages, N, S) ->
- % traitement message par message (pas des plus performant :/)
- Id_prev = mnesia:prev(minichat, Id),\r
+ % traitement message par message (pas des plus performant :/)\r
Doit_etre_saute = any(fun(E) -> E == Id end, Messages),\r
if Doit_etre_saute -> \r
- conversation_principale2(Id_prev, Messages, N, S); % le message ne fait pas partie de la conversation\r
+ conversation_principale2(Id - 1, Messages, N, S); % le message ne fait pas partie de la conversation\r
S =:= 0 ->\r
- [Id | conversation_principale2(Id_prev, Messages, N - 1, S)]; % ok : le message fait partie de la conversation\r
+ [Id | conversation_principale2(Id - 1, Messages, N - 1, S)]; % ok : le message fait partie de la conversation\r
true ->\r
- conversation_principale2(Id_prev, Messages, N, S - 1) % on n'a pas encore atteint le début de la page\r
+ conversation_principale2(Id - 1, Messages, N, S - 1) % on n'a pas encore atteint le début de la page\r
end.\r
\r
\r