tsp-devel
[Top][All Lists]
Advanced

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

Re: [Tsp-devel] Questions sur les values de type string


From: Eric Noulard
Subject: Re: [Tsp-devel] Questions sur les values de type string
Date: Wed, 29 Nov 2006 16:11:05 +0100

Le 29/11/06, ALAUX, Virginie <address@hidden> a écrit :



Bonjour,

Merci de vos réponses.

Mon consumer TSP a besoin de traiter des strings dont je ne connais pas la 
longueur.

Donc celà signifie que le consumer recevra des tableaux de char/uchar
et ces tableaux sont de taille fixe définie par le provider.

Pour chaque symbol de ce type inclus dans la request_sample
le consumer peut connaitre la taille max en consultant

symbol->dimension.



Le provider aura un tableau et enverra au consumer un sample par index du 
tableau.

Oui (mal)heureusement.


Questions:
1 - Est-il garanti que le consumer recevra les samples correspondant à la string 
"les uns après les autres", cad index0, puis index1 ... index(n-1) ?     n = 
longueur string

C'est certain.
Si un symbole TSP demandé par un consumer est un tableau
et que le consumer a demandé TOUT le tableau, alors
le consumer recevra tous les index du tableau dans l'ordre.



2 - Comment le consumer sait-il la fin de la string reçu?

il le sait car il connait le symbol->nelem du symbole qu'il a reçu
à l'issu de (du dernier) appel à tsp_request_sample précedent
le request_sample_init.

!!! Attention !!!
symbol->dimension est la dimension du symbol
tandis que symbol->nelem est le nombre d'éléments qui seront
envoyé en cas de sampling.
C'est utile si on veut sampler une partie d'un tableau.

Faut-il que le provider lui envoie un sample avec '\0' dedans?

La lib TSP côté provider enverra TOUS les index du tableau
de char demandé.  Si le provider est raisonnable c'est à lui
de mettre des '\0' dans le/les indexes non significatif.


3 - Si le provider a plusieurs strings à envoyer dans un même cycle, le 
fera-t-il
string après string?

Le provider envoie des symboles TSP.
Si le symbole est un tableau il enverra en séquence tous les indexes
du symbole qui ont été demandés dans la request_sample.

Sinon, comment le consumer peut-il savoir à quelle string appartient le sample 
reçu ?

Chaque symbol TSP a un PGI unique.

PGI = Provider Global Index.
A chaque fois que le PGI change alors on reçoit un symbole différent.

Le PGI peut être consulté dans chaque sample,
c'est le champs:

TSP_sample_t->provider_global_index;

cf:
typedef struct TSP_sample
{
 int time;
 int provider_global_index;
 int32_t array_index;
 TSP_datatype_t type;

 union {
   [... cutted ..]
 } uvalue;

} TSP_sample_t;

La lib provider ne sait pas ce qu'est une "string" elle transmet
des symboles TSP qui sont identifiés de façon unique par leur PGI
La liste de symboles (symbols) mise à jour à l'issue
de l'appel à
TSP_consumer_request_sample(provider, symbols)

contient TOUTES les autres infos nécessaires au consumer
lors de la réception d'un nouveau sample, notamment
nelem est le nombre d'éléments du tableau qui sont effectivement envoyés.

struct TSP_sample_symbol_info_t {
        char *name;
        int provider_global_index;
        int provider_group_index;
        int provider_group_rank;
        TSP_datatype_t type;
        u_int dimension;
        u_int offset;
        u_int nelem;
        int period;
        int phase;
};

Si tu veux tester ton consumer avec un provider de test qui envoie
des string tu peux essayer le stub_server.

--
Erk




reply via email to

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