tsp-devel
[Top][All Lists]
Advanced

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

RE : RE : [Tsp-devel] RE : EIF_TSP


From: ALAUX, Virginie
Subject: RE : RE : [Tsp-devel] RE : EIF_TSP
Date: Thu, 7 Dec 2006 14:32:22 +0100

Bonjour,

- il faut préciser pour cette API qui est responsable de l'allocation
  de arraySamples dans group?
Je pense que ce n'est pas au consumer d'allouer étant donné qu'il ne connaît 
pas le nombre de samples... Par contre, c'est à lui de désallouer après avoir 
utilisé le groupe.

Virginie, est-ce que tu peux décrire la construction d'un OCDS?
Il ne faut pas avoir l'ensemble des samples avant de construire l'OCDS.
Un OCDS est composé d'un header et d'un body contenant les valeurs de 
paramètres.
Le scénario est le suivant:

    OCDS ocds;
    TQ il y a des valeurs de params
       ocdsItem = new OCDS_BodyItem( value);
       ocds.body.addItem ( ocdsItem );
    fTQ
    remplissage de ocds.header
    envoi de ocds à MiddleWare

Le read_sample irait bien mais la condition de fin pour la boucle d'ajout de 
valeurs me pose toujours le même problème. Alors que si j'ai lu le groupe 
entier, je sais à l'avance combien de valeurs je dois ajouter dans mon 
ocds.body.

Merci
Virginie

-----Original Message-----
From: Eric Noulard [mailto:address@hidden
Sent: Thursday, December 07, 2006 11:19 AM
To: Transport Sample Protocol development list
Subject: Re: RE : [Tsp-devel] RE : EIF_TSP


Je vais prendre de le temps de donner mon avis
un peu détaillé mais probablement pas avant qques jours
néanmoins j'aurais qques remarques globales,

- je pense que read_group doit obligatoirement prendre
  en entrée le résultat de la request sample.

- il faut préciser pour cette API qui est responsable de l'allocation
  de arraySamples dans group?

- je préfèrerais nettement une API avec un callback qui permettrait
  à TSP_consumer_read_group d'ajouter un sample et
  de "signaler" la fin d'un groupe.

Virginie, est-ce que tu peux décrire (ou coller un bout de code)
qui décrirait les contraintes de la construction d'un OCDS?
Plus précisemment est-ce que tu dois avoir l'ensemble des samples
avant de construire l'OCDS ou bien peux-tu faire qque chose du genre

ocds = new OCDS()
ocds.add_value(sample)
...

ocds.finalize()

oncds.send()
?

Le 06/12/06, ALAUX, Virginie<address@hidden> a écrit :
>
> Bonjour,
>
> Je propose une API consumer permettant la lecture d'un groupe entier du style:
>   int32_t TSP_consumer_read_group ( TSP_provider_t provider, TSP_group_t* 
> group, int* new_group)
> avec :
>    typedef struct TSP_group
>      {
>      int time;
>      int32_t nbSamples; // nombre de samples dans le tableau
>      TSP_sample_t arraySamples[];  // tableau des samples reçus dans le groupe
>      } TSP_group_t;
>
> Voici le pseudo code d'utilisation de cette API:
>
> current_group = 0;
> current_group_size = group_size[current_group];
> TSP_group_t group;
>
> while (!finished_sampling) {
>     retcode = TSP_consumer_read_group(provider, &group, &new_group);
>
>     if (TSP_STATUS_OK != retcode) {
>        /* ATTENTION ERREUR TSP: pb reseau, provider mort etc... */
>     }
>
>     if (!new_group) {
>         tsp_usleep(duree_calibree);
>     } else {
>        // lecture d un nouveau groupe de samples
>        if (group->nbSamples != 0) {
>            // lecture des samples et traitement
>            for ( int i=0; i< nbSamples; i++)
>                {
>                sample = group->arraySamples[i];
>                // traiter le sample
>                }
>            // action car groupe complet
>            // envoi OCDS
>            }
>     }
> }
>
> A+
> Virginie
>
> -----Original Message-----
> From: Eric Noulard [mailto:address@hidden
> Sent: Tuesday, December 05, 2006 7:40 PM
> To: Transport Sample Protocol development list
> Subject: Re: [Tsp-devel] RE : EIF_TSP
>
>
> Le 05/12/06, DUFRENNE, Yves <address@hidden> a écrit :
>
> >
> > >Si c'est le cas, serait-il envisageable d'avoir une API
> > >consumer permettant la récupération de tous les samples d'un
> > >groupe reçu en une fois?
> > Oui c'est possible, mis à part les problèmes délicats 
> > d'allocation/Désallocation des groupes qui vont être de taille variable.
>
> En attendant d'implémenter ça à "bas niveau"
> dans la lib TSP.
>
> Il "suffit" de coder ça dans une fonction user à l'aide
> de tsp_consumer_read_sample et des infos
> issue de la réponse au request_sample.
>
>
> >
> > Maintenant je ne vois pas le gain par rapport à l'API classique
> > - Si c'est pour les perfos, je ne crois pas que cela soit limitant vu les 
> > consumers déjà écrits
> > - Si c'est pour savoir la fin de groupe, l'algo d'Eric te le donne. Sinon 
> > tu as un critère encore + simple pour détecter le changement de groupe : 
> > "Quand timetag différent ou quand newSample==0", le groupe est fini.
>
> C'est vrai qu'aujourd'hui quand on choppe newSample à 0  c'est qu'on
> vient de lire un groupe complet.
>
> Néanmoins je n'utiliserait VRAIMENT pas ça pour détecter de façon
> fiable la fin d'un groupe, ceci pour 2 raisons:
>
> 1) Si le consumer a trainé un peu pendant 2/3 cycles de sample
>   il est tout à fait possible de ne pas avoir newSample à 0 alors
>   qu'on vient de lire 3 groupes complets d'affilés.
>
>   C'est probablement (à vérifier) ce qui se passerait avec un provider
>   passif comme le res_reader ou le generic_reader d'ailleurs.
>
> 2) Le fait que newSample ne puisse pas valoir 0 "A L'INTERIEUR"
>     de la réception d'un groupe est un avatar d'implémentation
>     sur lequel il ne vaut mieux pas s'appuyer car cela pourrait
> changer à l'avenir.
>
>
> Je vais essayer d'écrire une description du fonctionnement
> idéal de TSP en matière de groupe et ceci de façon indépendante
> de l'implémentation actuelle.
>
> En attendant si quelqu'un veut proposer un bout de code C
> permettant de récupérer "simplement" un groupe complet
> Virginie peut-être ? :)
>
> D'ailleurs sans la coder Virginie pourrais-tu nous proposer un
> exemple d'API
> que tu voudrais avoir en remplacement/complément
> de TSP_consumer_read_sample qui satisfasse ton besoin?
>
> J'aimerais le prototype de l'API en C et un bout de pseudo-code/algo
> qui explique comment elle s'utilise.
>
> Merci d'avance
>
>
>
> --
> Erk
>
> ---------------------------------------------------------
>
> CE COURRIER ELECTRONIQUE EST A USAGE STRICTEMENT INFORMATIF ET NE SAURAIT 
> ENGAGER DE QUELQUE MANIERE QUE CE SOIT EADS ASTRIUM SAS, NI SES FILIALES.
>
> SI UNE ERREUR DE TRANSMISSION OU UNE ADRESSE ERRONEE A MAL DIRIGE CE 
> COURRIER, MERCI D'EN INFORMER L'EXPEDITEUR EN LUI FAISANT UNE REPONSE PAR 
> COURRIER ELECTRONIQUE DES RECEPTION. SI VOUS N'ETES PAS LE DESTINATAIRE DE CE 
> COURRIER, VOUS NE DEVEZ PAS L'UTILISER, LE CONSERVER, EN FAIRE ETAT, LE 
> DISTRIBUER, LE COPIER, L'IMPRIMER OU EN REVELER LE CONTENU A UNE TIERCE 
> PARTIE.
>
>
>
> This email is for information only and will not bind EADS Astrium SAS in any 
> contract or obligation, nor its subsidiaries.
>
> If you have received it in error, please notify the sender by return email. 
> If you are not the addressee of this email, you must not use, keep, 
> disseminate, copy, print or otherwise deal with it.
>
> ---------------------------------------------------------
>
>
> _______________________________________________
> Tsp-devel mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/tsp-devel
>


--
Erk

---------------------------------------------------------

CE COURRIER ELECTRONIQUE EST A USAGE STRICTEMENT INFORMATIF ET NE SAURAIT 
ENGAGER DE QUELQUE MANIERE QUE CE SOIT EADS ASTRIUM SAS, NI SES FILIALES.

SI UNE ERREUR DE TRANSMISSION OU UNE ADRESSE ERRONEE A MAL DIRIGE CE COURRIER, 
MERCI D'EN INFORMER L'EXPEDITEUR EN LUI FAISANT UNE REPONSE PAR COURRIER 
ELECTRONIQUE DES RECEPTION. SI VOUS N'ETES PAS LE DESTINATAIRE DE CE COURRIER, 
VOUS NE DEVEZ PAS L'UTILISER, LE CONSERVER, EN FAIRE ETAT, LE DISTRIBUER, LE 
COPIER, L'IMPRIMER OU EN REVELER LE CONTENU A UNE TIERCE PARTIE.



This email is for information only and will not bind EADS Astrium SAS in any 
contract or obligation, nor its subsidiaries.

If you have received it in error, please notify the sender by return email. If 
you are not the addressee of this email, you must not use, keep, disseminate, 
copy, print or otherwise deal with it.

---------------------------------------------------------




reply via email to

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