tsp-devel
[Top][All Lists]
Advanced

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

RE : [Tsp-devel] RE : EIF_TSP


From: ALAUX, Virginie
Subject: RE : [Tsp-devel] RE : EIF_TSP
Date: Wed, 6 Dec 2006 09:54:45 +0100

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.

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




reply via email to

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