From bc8c42986f183032e9cc2592eec10082bf6150a4 Mon Sep 17 00:00:00 2001 From: allen Date: Tue, 4 Jan 2000 11:11:11 +0000 Subject: Added info messages if elliptic_verbose is yes git-svn-id: http://svn.cactuscode.org/arrangements/CactusElliptic/EllBase/trunk@28 57bc7290-fb3d-4efd-a9b1-28e84cce6043 --- src/Ell_DBstructure.c | 34 ++++++++++++++++++++++++++--- src/Ell_Register.c | 60 +++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 85 insertions(+), 9 deletions(-) diff --git a/src/Ell_DBstructure.c b/src/Ell_DBstructure.c index cfdc16c..4f733d3 100644 --- a/src/Ell_DBstructure.c +++ b/src/Ell_DBstructure.c @@ -28,6 +28,8 @@ struct t_ellthingy int Ell_CreateKey(int vartype, const char *keychain) { + DECLARE_CCTK_PARAMETERS + struct t_ellthingy* new; int retval; @@ -43,9 +45,35 @@ int Ell_CreateKey(int vartype, const char *keychain) { new->vals.i = 0; new->vals.s = NULL; - printf("Created %s %d \n",keychain,vartype); - retval = StoreNamedData(&EllInfoDB, keychain, new); - if (retval!=0) retval = ELLCREATE_FAILED; + if (StoreNamedData(&EllInfoDB, keychain, new)!=0) + { + if (!CCTK_Equals(elliptic_verbose,"no")) + { + char *msg; + char *name=CCTK_VarTypeName(vartype); + msg = (char *)malloc( + (200 + strlen(keychain) + strlen(name) )*sizeof(char) ); + sprintf(msg,"Failed to create %s (%s)",keychain,name); + CCTK_INFO(msg); + free(msg); + } + retval = ELLCREATE_FAILED; + } + else + { + if (!CCTK_Equals(elliptic_verbose,"no")) + { + char *msg; + char *name=CCTK_VarTypeName(vartype); + msg = (char *)malloc( + (200 + strlen(keychain) + strlen(name) )*sizeof(char) ); + sprintf(msg,"Created %s (%s)",keychain,name); + CCTK_INFO(msg); + free(msg); + } + retval = 0; + } + } return(retval); diff --git a/src/Ell_Register.c b/src/Ell_Register.c index 931daf0..09e39f2 100644 --- a/src/Ell_Register.c +++ b/src/Ell_Register.c @@ -15,8 +15,32 @@ static pNamedData *EqNameDB; under the name "eqname" in the EqNameDB" Application: Call Ell_Register with the routine that registers a solver for a elliptic equation class. */ -void Ell_RegisterEq(void *(function)(const char *, void*), const char *eqname) { - StoreNamedData(&EqNameDB, eqname, (void*)function); + +int Ell_RegisterEq(void *(function)(const char *, void*), const char *eqname) +{ + + DECLARE_CCTK_PARAMETERS + + if (StoreNamedData(&EqNameDB, eqname, (void*)function)==0) + { + if CCTK_EQUALS(elliptic_verbose,"yes") + { + char *msg; + msg = (char *)malloc( (200+strlen(eqname))*sizeof(char) ); + sprintf(msg,"Registered elliptic class: %s",eqname); + CCTK_INFO(msg); + free(msg); + } + } + else + { + char *msg; + msg = (char *)malloc( (200+strlen(eqname))*sizeof(char) ); + sprintf(msg,"Failed to register elliptic class: %s",eqname); + CCTK_INFO(msg); + free(msg); + } + } /* Ell_RegistersSolver takes a routine ("function") and registers that @@ -30,11 +54,35 @@ void Ell_RegisterEq(void *(function)(const char *, void*), const char *eqname) { declaration) in his own routine and does not have to put it in a central place. Amen*/ -void Ell_RegisterSolver(void (*function), const char *sname, const char *eqname) { +void Ell_RegisterSolver(void (*function), + const char *sname, + const char *eqname) +{ + + DECLARE_CCTK_PARAMETERS + void (*fn)(void *, const char *); - fn = (void(*)(void (*function), const char *sname))GetNamedData(EqNameDB, eqname); - if (!fn) CCTK_WARN(0,"Cannot get function in EqName"); + fn = (void(*)(void (*function), const char *sname)) + GetNamedData(EqNameDB, eqname); + + if (fn) + { + + fn(function,sname); + + if CCTK_EQUALS(elliptic_verbose,"yes") + { + char *msg; + msg = (char *)malloc( (200+strlen(eqname)+strlen(sname))*sizeof(char) ); + sprintf(msg,"Registered elliptic solver %s for %s",sname,eqname); + CCTK_INFO(msg); + free(msg); + } + } + else + { + CCTK_WARN(0,"Cannot get function in EqName"); + } - fn(function,sname); } -- cgit v1.2.3