tsp-devel
[Top][All Lists]
Advanced

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

Re: [Tsp-devel] suggestion pour core.common.TspStreamReader et core.comm


From: Eric NOULARD
Subject: Re: [Tsp-devel] suggestion pour core.common.TspStreamReader et core.common.TspSes sion en Java
Date: Wed, 11 May 2005 19:15:27 +0200

Je viens avec une réponse un peu plus détaillée.
Sur le principe je suis donc POUR l'optionnalité de la FIFO
sur les détails d'implem' voilà mon avis:

> 
> Pour se faire, voici ma proposition : 
> Créer une classe abstraite : public abstract class TspStreamReader
> implements Runnable 

Oui Ok pour classe abstraite
TspStreamReader 

(du coup on refactor l'actuelle en TspFifoStreamReader)
> 
> Cette classe abstraite aurait en plus une méthode configure : 
> 
> public Configure(TspDataInputStream in, TspGroup[] groups) {
>       this.in     = in;
>       this.groups = groups;
>       stop        = false;
>     }

Là je ne suis pas d'accord c'est un constructeur de la classe abstraite
et pas une méthode. Ce serait donc:

public TspStreamReader(TspDataInputStream in, TspGroup[] groups) {
        this.in     = in;
        this.groups = groups;
        stop        = false;
]

> 
> Le constructeur et la méthode « public void readGroup(int i) » serait à
> implémenter par des classes étendant la classe abstraite TspStreamReader.

uniquement readGroup.

> 
> L'utilisation de la FIFO se ferait par défaut avec la classe
> TSPFifoStreamReader.La méthode readGroup serait identique et le constructeur
> serait le suivant : 
> 
> public TspFifoStreamReader(TspSampleFifo fifo) {
>       this.fifo   = fifo;  }

Non ce serait le constructeur actuel avec un appel au
constructeur du père plus l'init de la fifo.

public TspFifoStreamReader(TspDataInputStream in, TspGroup[] groups,
TspSampleFifo fifo) {

        super(in,groups)
        this.fifo   = fifo;
    }


> 
> Du coup, l'utilisateur a le choix d'implémenter ou non sa propre classe
> TSPStreamReader (par exemple totoStreamReader extends TspStreamReader).
> 
> Cette classe serait instancié par l'utilisateur et envoyée à la méthode
> TSPSession.RequestSampleInit(totoStreamReader)  qui surchargerait la méthode
> actuelle.

Ca je suis OK.

> 
> Si l'utilisateur ne l'implemente pas, il appelle normallement
> TSPSession.RequestSampleInit() qui instancie TspFifoStreamReader et qui
> appelle le configure.
> 
> Pour TSPStreamReader, les changements seraient :
> _Créer une classe abstraite TSPStreamReader en laissant vide readGroup et le
> constructeur
> _Ajouter la méthode configure (décrite au-dessus).
> _Créer une classe TSPFifoStreamReader qui implémente le constructeur et
> readGroup.

  Voir mes remarques précédentes.

> 
> Pour TSPSession, les changements seraient : 
> _Changer le nom du thread  « sampleFifoThread » en « sampleThread »
  Ok pour sampleThread.

> _Ajouter une méthode RequestSampleInit(TspStreamReader)
  Ok pour pour ça aussi.

> _Enlever l'attribut de classe "TspSampleFifo sampleFifo"

  Ca ne va pas être possible si simplement.
  Même si c'est pas joli du tout.
  Les consumers actuels utilisent ce membre.
  Il faut donc continuer à leur donner accès de façon à ce qu'ils
  puissent faire maSession.getSamples().getSample() ou encore
  maSession.getSamples().nbSample()

La TspSampleFifo pourrait devenir une classe (Abstraite) TspSampleSet
et le membre publique de TspSession un getter TspSession.getSamples()
qui renvoie un TspSampleSet dont l'API ressemblera à celle du
TspSampleFifo.

Je suis pas très content cette dernière suggestion vu que si
l'appli a fourni son propre TspStreamReader les méthodes
maSession.getSamples().getSample() ... n'auront pas de sens...

Si on veut avoir une session qui offre sur un appel

TSPSession.RequestSampleInit()

la bufferisation avec FIFO il faut qu'ensuite l'appli ait
accès à cette FIFO (ou au mini une API pou récupérer les samples)
puisque ce n'est pas elle qui l'a crée.

Je réfléchis à ça et j'y reviens j'attends aussi ton retour/tes idées
sur ce point Mathias.


Eric
> _______________________________________________
> Tsp-devel mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/tsp-devel





reply via email to

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