aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorallen <allen@57bc7290-fb3d-4efd-a9b1-28e84cce6043>2000-01-04 11:11:11 +0000
committerallen <allen@57bc7290-fb3d-4efd-a9b1-28e84cce6043>2000-01-04 11:11:11 +0000
commitbc8c42986f183032e9cc2592eec10082bf6150a4 (patch)
tree94d6383a968c08627ebbdcc54c9e86bfb9329d0e
parent1c4d1b96dba064e680447576275a69e2a5e8ba60 (diff)
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
-rw-r--r--src/Ell_DBstructure.c34
-rw-r--r--src/Ell_Register.c60
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);
}