tsp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fwd: [Tsp-devel] Question "fin de cycle"


From: Eric Noulard
Subject: Fwd: [Tsp-devel] Question "fin de cycle"
Date: Tue, 5 Dec 2006 16:28:05 +0100

Encore un essai de rentransmission

---------- Forwarded message ----------
From: Eric Noulard <address@hidden>
Date: 5 déc. 2006 15:02
Subject: Re: [Tsp-devel] Question "fin de cycle"
To: Transport Sample Protocol development list <address@hidden>


Le 05/12/06, ALAUX, Virginie <address@hidden> a écrit :



Bonjour,

J'ai un consumer qui s'est abonné à  plusieurs variables/fréquences.
Quand il boucle sur la requête tsp_consumer_read_sample, comment fait_il pour savoir quand est-ce 
que le provider a fini d'émettre un "groupe" (variables à la même fréquence) ? Est_ce 
avec le 3eme argument "new_sample" (positionné à 0 si pas de nouveau sample à lire).

new_sample à 0 signifie "uniquement" qu'il n'y pas de sample à lire
dans le buffer de la lib consumer.


Ne peut-il pas y avoir un "tsp_consumer_read_sample avec new_sample à 0" même si le 
"groupe" n'est pas terminé?

Bien sûr, tu as raison (enfin en théorie, voir plus loin).
Si le consumer s'acharne à dépiler le buffer au taquet il peut même y avoir
plus de new_sample à 0 que de new_sample à 1 :))

Le changement de groupe n'est pas indiqué par le read_sample.
Néanmoins quand tu as appelé:
TSP_consumer_request_sample(provider,resquestedSymbolList);

ta variable requestedSymbolList a été mise à jour et tu sais
que
TSP_SSIList_getSSI(requestedSymbolList,indexRequestedSymbol)->
  provider_group_index
t'indique le numéro de groupe auquel appartient ta variable.
  provider_group_rank
t'indique le rang de cette variable dans son groupe.

Donc tu as toutes les infos pour "savoir" si tu as reçu tout le groupe

En gros, en parcourant initialement la liste des symboles
mise à jour à l'issu du request_sample tu peux savoir:
 - combien il y a de groupe
 - combien il y a de symbole dans chaque groupe

Ensuite il faut savoir que:
 1) tu recevras les groupes dans l'ordre des provider_group_index croissant
 2) tu recevras les symboles de chaque groupe de façon contigu
    par ordre de provider_group_rank croissant

Maintenant "en pratique" le thread de la lib consumer qui reçoit
les symboles TSP lit les symboles groupe par groupe donc il y a peu
de chance que tu aies des new_sample à zéro A l'INTERIEUR d'un groupe.
Toutefois entre les groupes celà a de forte chance d'arriver.

Je t'invite également à jeter un oeil au code de TSP côté consumer
celà peut t'aider à comprendre ce qui se passe.

A mon tour de poser une question:

Pourquoi as-tu BESOIN de savoir si ton groupe est totalement reçu?

--
Erk


--
Erk

reply via email to

[Prev in Thread] Current Thread [Next in Thread]