X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmArgMgr.cxx;h=c2b871f72ad7ae0edb7c2b26248736effb561051;hb=a4a4d786fdefad3af77842f41b12dcb85b7b1142;hp=96a5dfbf999eb5460a96c7fd21a5d2166b004c18;hpb=50f4e4eb84995ab5900b33397a2004a0eb86c6e9;p=gdcm.git diff --git a/src/gdcmArgMgr.cxx b/src/gdcmArgMgr.cxx index 96a5dfbf..c2b871f7 100644 --- a/src/gdcmArgMgr.cxx +++ b/src/gdcmArgMgr.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmArgMgr.cxx,v $ Language: C++ - Date: $Date: 2005/06/07 15:31:31 $ - Version: $Revision: 1.2 $ + Date: $Date: 2005/06/09 11:27:54 $ + Version: $Revision: 1.9 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -26,10 +26,6 @@ #include "gdcmArgMgr.h" -#define ARG_DEFAULT_PARAMOUT "fileout.par" -#define ARG_DEFAULT_LOGFILE "gdcm.log" - - namespace gdcm { //------------------------------------------------------------------------- @@ -40,7 +36,7 @@ namespace gdcm * @param argc arguments count, as passed to main() * @param argv pointers array on the arguments passed to main() */ - ArgMgr::ArgMgr(int argc, char *argv[]) + ArgMgr::ArgMgr(int argc, char **argv) { int i; int nblettre; @@ -120,16 +116,16 @@ ArgMgr::~ArgMgr() /** * \brief checks if a parameter exists in the command line - * @param searchParam label name + * @param param label name * @return true if parameter 'label' exists * Actually, it returns 0 if label is not found * else, returns the number of the spot it was found last time. */ -int ArgMgr::ArgMgrDefined( char *searchParam ) +int ArgMgr::ArgMgrDefined( const char *param ) { int i, trouve ; char *temp; - temp = Majuscule ( searchParam ) ; + temp = Majuscule ( param ) ; for ( trouve = false, i = ArgCount-1; i>0; i-- ) { trouve = ! strcmp( ArgLab[i], temp ) ; @@ -153,7 +149,7 @@ int ArgMgr::ArgMgrDefined( char *searchParam ) * @return Value, as a characters string, of the parameter * whose label is given. */ -char *ArgMgr::ArgMgrValue ( char *param ) +char *ArgMgr::ArgMgrValue ( const char *param ) { int trouve ; if ( (trouve = ArgMgrDefined ( param )) != false ) @@ -205,10 +201,10 @@ int ArgMgr::ArgMgrPrintUnusedLabels () * @param usage array of pointers to the documentation lines of the program. * @return exception code */ -int ArgMgr::ArgMgrUsage(char **usage_text ) +int ArgMgr::ArgMgrUsage(const char **usage ) { - while ( *usage_text ) - std::cout << std::endl << *(usage_text++); + while ( *usage ) + std::cout << std::endl << *(usage++); std::cout << std::endl; return (0); } @@ -251,7 +247,7 @@ int ArgMgr::ArgMgrSave ( char *param ) * @param defaultVal default value * @return parameter value */ -int ArgMgr::ArgMgrGetInt(char *label, int defaultVal) +int ArgMgr::ArgMgrGetInt(const char *label, int defaultVal) { return ( (ArgMgrDefined(label)) ? (atoi(ArgMgrValue(label))) @@ -262,28 +258,28 @@ int ArgMgr::ArgMgrGetInt(char *label, int defaultVal) * \brief Gets a float value passed as an argument to a program * (use default value if not found) * EXEMPLE: float scale = ArgMgrGetFloat ( "SCALE", 0.33 ); - * @param label label name + * @param param label name * @param defaultVal default value * @return parameter value */ -float ArgMgr::ArgMgrGetFloat(char *label, float defaultVal) +float ArgMgr::ArgMgrGetFloat(const char *param, float defaultVal) { - return ( (ArgMgrDefined(label)) - ? (atof(ArgMgrValue(label))) + return ( (ArgMgrDefined(param)) + ? ((float)atof(ArgMgrValue(param))) : (defaultVal) ); } /** * \brief Gets a 'string' value passed as an argument to a program * (use default value if not found) - * @param label label name + * @param param label name * @param defaultVal default value * @return parameter value */ -char *ArgMgr::ArgMgrGetString(char *label, char *defaultVal) +char *ArgMgr::ArgMgrGetString(const char *param, char *defaultVal) { - return ( (ArgMgrDefined(label)) - ? (ArgMgrValue(label)) + return ( (ArgMgrDefined(param)) + ? (ArgMgrValue(param)) : (defaultVal) ); } @@ -291,14 +287,14 @@ char *ArgMgr::ArgMgrGetString(char *label, char *defaultVal) * \brief Gets a value amongst a set of values * (use default value if not found) * EXEMPLE: int nlab = ArgMgrGetLabel("CONFIRM","NO\\YES", 0); - * @param label label name + * @param param label name * @param liste character Chain describing the various values. * Value are separated by '\\'. * Not case sensitive. * @param val number of default value * @return int : range of value amongst the values list */ -int ArgMgr::ArgMgrGetLabel (char *label, char *liste, int val ) +int ArgMgr::ArgMgrGetLabel (const char *param, char *liste, int val ) { char *lab; char *vallab; @@ -307,7 +303,7 @@ int ArgMgr::ArgMgrGetLabel (char *label, char *liste, int val ) tmp = (char *) malloc(strlen(liste)+1); strcpy(tmp,liste); - if ( (vallab = ArgMgrGetString(label,(char *)NULL)) != 0 ) + if ( (vallab = ArgMgrGetString(param,(char *)NULL)) != 0 ) { for ( lab = strtok (tmp,"\\"); lab != 0; @@ -325,19 +321,19 @@ int ArgMgr::ArgMgrGetLabel (char *label, char *liste, int val ) /** * \brief Demands a value amongst a set of values (abort if not found) * EXEMPLE: int nlab = ArgMgrWantLabel("CONFIRM","NO\\YES", usage); - * @param label label name + * @param param label name * @param liste character Chain describing the various values. * Labels are separated by '\\'. * No case sensitive. * @param usage Usage program (displayed if label not found) * @return int : range of value amongst the values list */ -int ArgMgr::ArgMgrWantLabel (char *label, char *liste, char *usage[] ) +int ArgMgr::ArgMgrWantLabel (const char *param, char *liste, const char **usage ) { char *lab; char *vallab; int i = 1; - if ( (vallab = ArgMgrGetString(label,0)) != 0 ) + if ( (vallab = ArgMgrGetString(param,0)) != 0 ) { for ( lab = strtok (liste,"\\"); lab != 0; lab = strtok(0L,"\\"), i++ ) if ( strcmp(maj(lab),maj(vallab))==0) @@ -356,7 +352,7 @@ int ArgMgr::ArgMgrWantLabel (char *label, char *liste, char *usage[] ) * @param usage Usage program (displayed if label not found) * @return parameter value */ -int ArgMgr::ArgMgrWantInt (char *label, char **usage) +int ArgMgr::ArgMgrWantInt (const char *label, const char **usage) { return ( (ArgMgrDefined(label) ) ? (atoi(ArgMgrValue(label) ) ) @@ -371,11 +367,11 @@ int ArgMgr::ArgMgrWantInt (char *label, char **usage) * @param usage Usage program (displayed if label not found) * @return parameter value */ -float ArgMgr::ArgMgrWantFloat (char *label, char **usage) +float ArgMgr::ArgMgrWantFloat (const char *label, const char **usage) { return ( (ArgMgrDefined(label) ) - ? (atof(ArgMgrValue(label) ) ) - : (ArgMgrUsage(usage),1.0) ); + ? ((float)atof(ArgMgrValue(label) ) ) + : (ArgMgrUsage(usage),(float)1.0) ); } /** @@ -386,7 +382,7 @@ float ArgMgr::ArgMgrWantFloat (char *label, char **usage) * @param usage Usage program (displayed if label not found) * @return parameter value */ -char *ArgMgr::ArgMgrWantString(char *label, char **usage) +char *ArgMgr::ArgMgrWantString(const char *label, const char **usage) { return ( (ArgMgrDefined(label) ) ? (ArgMgrValue(label) ) @@ -400,7 +396,7 @@ char *ArgMgr::ArgMgrWantString(char *label, char **usage) * @return Pointer to the array * Pointer NULL if error */ -char **ArgMgr::ArgMgrGetListOfString ( char *label, int *nbElem ) +char **ArgMgr::ArgMgrGetListOfString ( const char *label, int *number ) { int taille; char *value = ArgMgrValue(label); @@ -409,8 +405,8 @@ char **ArgMgr::ArgMgrGetListOfString ( char *label, int *nbElem ) char *chainecur; if (!value) return 0; - *nbElem = IdStrCountChar(value,',')+1; /* nb Elements = nb Commas +1 */ - taille = *nbElem; + *number = IdStrCountChar(value,',')+1; /* nb Elements = nb Commas +1 */ + taille = *number; liste = (char **) malloc (sizeof(char*) * taille + strlen(value)+1); if ( !liste ) return 0; @@ -431,7 +427,7 @@ char **ArgMgr::ArgMgrGetListOfString ( char *label, int *nbElem ) * @return Pointer to the array * Pointer NULL if error */ -int *ArgMgr::ArgMgrGetListOfInt ( char *label, int *number ) +int *ArgMgr::ArgMgrGetListOfInt ( const char *label, int *number ) { char *value = ArgMgrValue(label); int *liste; @@ -469,7 +465,7 @@ return liste; * @return Pointer vers le tableau de lgr 'taille' * NULL if error */ -float *ArgMgr::ArgMgrGetListOfFloat ( char *label, int *number ) +float *ArgMgr::ArgMgrGetListOfFloat ( const char *label, int *number ) { char *value = ArgMgrValue(label); float *liste; @@ -517,11 +513,10 @@ int ArgMgr::IdStrCountChar (char *chaine, int caract) } /** - * \brief renvoie 1 tableau contenant un ensemble de paires d'entiers - * @param value pointer vers la zone allouee contenant les - * intervalles (deb1,fin1, deb2,fin2, ...) - * @param number Pointer vers le nb de paires trouvees - * @return 1 tableau contenant un ensemble de paires d'entiers + * \brief returns an array of set of 'INT pairs' + * @param value char array decribing a set of 'INT pairs' (deb1,fin1, deb2,fin2, ...) + * @param number nb of found pairs + * @return array of set of 'INT pairs' */ int *ArgMgr::IdStrIntEnum ( char* value, int *number) { @@ -529,7 +524,7 @@ int *ArgMgr::IdStrIntEnum ( char* value, int *number) int taille; int i; - *number = IdStrCountChar(value,',')+1; /* nb Elements = nb Virgules +1 */ + *number = IdStrCountChar(value,',')+1; /* nb Elements = nb Commas +1 */ taille= *number; liste = (int *) calloc (1,sizeof(int)*2*taille ); if ( !liste ) @@ -565,20 +560,19 @@ int *ArgMgr::IdStrIntEnum ( char* value, int *number) } return liste; } - + /** - * \brief renvoie 1 tableau contenant un ensemble de 'paires' de FLOAT - * @param value pointer vers la zone allouee contenant les - * paires (deb1,fin1, deb2,fin2, ...) - * @param number Pointer vers le nb de paires trouvees - * @return tableau contenant un ensemble de 'paires' de FLOAT + * \brief returns an array a set of 'FLOAT pairs' + * @param value char array decribing a set of 'FLOAT pairs' (deb1,fin1, deb2,fin2, ...) + * @param number nb of found pairs + * @return array of set of 'FLOAT pairs' */ float *ArgMgr::IdStrFloatEnum (char *value, int *number) { float *liste; int taille; int i; - *number = IdStrCountChar(value,',')+1; /* nb Elements = nb Virgules +1 */ + *number = IdStrCountChar(value,',')+1; /* nb Elements = nb Commas +1 */ taille= *number; liste = (float *) calloc (1,sizeof(float)*2*taille ); if ( !liste ) @@ -615,14 +609,14 @@ float *ArgMgr::IdStrFloatEnum (char *value, int *number) /** * \brief decodage des elements d'un argument 'paires d'int' de lgr quelconque - * @param label label name + * @param param label name * @param number taille de l'ensemble de paires trouvee * @return Pointer vers le tableau de taille '2*nbElem' * Pointer NULL si erreur */ -int *ArgMgr::ArgMgrGetIntEnum ( char *label, int *number ) +int *ArgMgr::ArgMgrGetIntEnum ( const char *param, int *number ) { - char *value = ArgMgrValue(label); + char *value = ArgMgrValue(param); int *liste; if (!value) return 0; @@ -632,14 +626,14 @@ int *ArgMgr::ArgMgrGetIntEnum ( char *label, int *number ) /** * \brief decodage des elements d'un argument 'paires de float' de lgr quelconque - * @param label label name + * @param param label name * @param number taille de l'ensemble de paires trouvee * @return Pointer vers le tableau de taille '2*nbElem' * Pointer NULL si erreur */ -float *ArgMgr::ArgMgrGetFloatEnum ( char *label, int *number ) +float *ArgMgr::ArgMgrGetFloatEnum ( const char *param, int *number ) { - char *value = ArgMgrValue(label); + char *value = ArgMgrValue(param); float *liste; if (!value) return 0; @@ -661,12 +655,12 @@ float *ArgMgr::ArgMgrGetFloatEnum ( char *label, int *number ) * Valeur retournee . : Pointer to the new Upper case char array. * * * **************************************************************************/ -char *ArgMgr::Majuscule (char *chaine ) +char *ArgMgr::Majuscule (const char *chaine ) { char *ptr, *ptr2, *ptr3; ptr2 = (char *)malloc(strlen(chaine)*sizeof(char)+1); ptr3=ptr2; - for ( ptr = chaine ; *ptr!='\0' ; ptr ++ ) + for ( ptr = (char *)chaine ; *ptr!='\0' ; ptr ++ ) { *ptr3 = toupper ( * ptr ); ptr3++; } @@ -692,17 +686,17 @@ int ArgMgr::FiltreLong ( char *arg ) /*------------------------------------------------------------------------ | Role : Reads a parameter from a file - | Retour : Type : char * + | Return : Type : char * | Role : pointer to the label | parameters : param : char * | Role : one where the parameter will be stored | fd : FILE * | Role : File description (assumed to be open) +------------------------------------------------------------------------*/ -char *ArgMgr::LoadedParam ( char *param, FILE *fd ) +const char *ArgMgr::LoadedParam ( const char *param, FILE *fd ) { int carlu; - char * car = param; + char *car = (char *)param; int quote = false; int nbcar = 0; @@ -740,7 +734,7 @@ char *ArgMgr::LoadedParam ( char *param, FILE *fd ) /*------------------------------------------------------------------------ | Role : Reading of arguments in a parameter file | (this function is recursive). - | Retour : Type : int + | Return : Type : int | Role : length needed to store all the parameters | parameters : filename : char * | Role : parameter File name @@ -775,7 +769,7 @@ int ArgMgr::ArgLoadFromFile ( char *filename ) /*------------------------------------------------------------------------ | Role : Standard parameters management (on command line) - | Retour : Type : void + | Return : Type : void | parameters : none +------------------------------------------------------------------------*/ void ArgMgr::ArgStdArgs() @@ -783,12 +777,12 @@ void ArgMgr::ArgStdArgs() char *logfile; FILE *fd; - if ( (ArgParamOut=ArgMgrValue(ARG_LABEL_PARAMOUT))==0 ) + if ( (ArgParamOut=ArgMgrValue((char*)ARG_LABEL_PARAMOUT))==0 ) ArgParamOut = ARG_DEFAULT_PARAMOUT; - if ( (logfile = ArgMgrValue(ARG_LABEL_LOGFILE))!=0) + if ( (logfile = ArgMgrValue((char*)ARG_LABEL_LOGFILE))!=0) { if ( *logfile == '\0' ) - logfile = ARG_DEFAULT_LOGFILE; + logfile = (char *)ARG_DEFAULT_LOGFILE; fd = fopen ( logfile, "a+" ); if ( fd ) { @@ -800,7 +794,7 @@ void ArgMgr::ArgStdArgs() /*------------------------------------------------------------------------ | Role : Sets in Upper Case. - | Retour : Type : char * + | Return : Type : char * | parameters : char * +------------------------------------------------------------------------*/ char *ArgMgr::maj ( char *a )