<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.0.10">
</HEAD>
<BODY>
Salut a tous,<BR>
<BR>
Comme promis je vous donne un feedback sur la version de gdcm que j'ai checkout la semaine dernière :<BR>
<BR>
Le wrapping python pose quelques problemes que je suppose connus : il est notamment impossible d'utiliser toute méthode prenant un std::string en paramètre ou en retournant un. J'ai bien essayé de bidouiller le .i (j'utilise pour des modules theralys le meme type de donnée std::string et je n'ai jamais rencontré de problèmes) mais ca ne passe pas pour une raison qui m'échappe.<BR>
<BR>
Il faudrait définir quelle méthode doit être wrappée dans le cas d'un overload, notamment pour les constructeurs. Sur ma version seul gdcmHeader(void) est wrappé, si je veux l'autre qui me semble plus utile (d'un point de vue personnel) je l'indique clairement a SWIG.  Serait il utilie qu'on prenne une par une les methodes surchargées en qu'on décide lesquelles wrapper pour python ? Dans certains cas, si toutes les methodes surchargées doivent etre accessible en python la seule solution est a priori de les renommer ou de creer une fonction de wrapping qui appelle ensuite les différents candidats, ce qui n'est pas très propre.<BR>
<BR>
Autre problème plus génant a mon sens :<BR>
<BR>
La méthode :<BR>
<BR>
bool gdcmFile::SetImageData(void *inData, size_t expectedSize) est recemment passée à <BR>
bool gdcmFile::SetImageData(uint8_t *inData, size_t expectedSize)<BR>
<BR>
Ceci a entrainé une série de modifications sur toutes les méthodes sous jacentes.<BR>
<BR>
La conséquence directe est qu'il n'est plus possible d'écrire autre chose que du uchar.<BR>
J'ai cru comprendre que cette modif a été faite afin de pouvoir faire un free sur le inData le moment venu.<BR>
Il faudrait donc réfléchir a une méthode permettant d'avoir n'importe quel type de données en entrée, tout en gardant la possibilité de libérer la mémoire après coup.<BR>
Cela peut donc se faire soit avec un template sur le type de données, soit sur différentes méthodes SetImageData prenant respectivement les types de données attendus (galère pour python bien sur).<BR>
<BR>
Dernière petite remarque sur ma short list, le python setup.py install ne copie pas le _gdcm.so la ou il doit aller. <BR>
<BR>
Voici les remarques que j'ai pour l'instant, feel free to ask any question :)<BR>
<BR>
Manu
</BODY>
</HTML>