*
- * FUNCTION SetBasicCallback(ID,COOKIE)
+ * FUNCTION SetBasicCallback(ID,fcn,cookie)
* INTEGER :: ID
- * double (*cookie)(double x1, double x2, const char *str)
- * INTEGER :: SetBasicCallback
+ * double (*fcn)(double x1, double x2, const char *str, void *)
+ * void * cookie :: SetBasicCallback
+ * integer SetBasicCallback
* END FUNCTION SetBasicCallback
*
*
* @endhtmlonly
*/
- IPQ_DLL_EXPORT IPQ_RESULT SetBasicCallback(int id, double (*cookie)(double x1, double x2, const char *str));
+ IPQ_DLL_EXPORT IPQ_RESULT SetBasicCallback(int id, double (*fcn)(double x1, double x2, const char *str, void *cookie), void *cookie1);
/**
* Sets Fortran callback function for the Basic interpreter.
@@ -1554,10 +1555,10 @@ Headings
* @htmlonly
*
*
- * FUNCTION SetBasicFortranCallback(ID,COOKIE)
+ * FUNCTION SetBasicFortranCallback(ID,fcn)
* INTEGER(KIND=4), INTENT(IN) :: ID
* INTERFACE
- * DOUBLE PRECISION FUNCTION cookie(x1, x2, str)
+ * DOUBLE PRECISION FUNCTION fcn(x1, x2, str)
* DOUBLE PRECISION, INTENT(in) :: x1
* DOUBLE PRECISION, INTENT(in) :: x2
* CHARACTER(*), INTENT(in) :: str
@@ -1569,7 +1570,7 @@ Headings
*
* @endhtmlonly
*/
- IPQ_DLL_EXPORT IPQ_RESULT SetBasicFortranCallback(int id, double (*cookie)(double *x1, double *x2, char *str, int l));
+ IPQ_DLL_EXPORT IPQ_RESULT SetBasicFortranCallback(int id, double (*fcn)(double *x1, double *x2, char *str, int l));
/**
diff --git a/IPhreeqc.hpp b/IPhreeqc.hpp
index 8ca2db4e..fcdc4d55 100644
--- a/IPhreeqc.hpp
+++ b/IPhreeqc.hpp
@@ -662,7 +662,7 @@ public:
* @param cookie The name of a user-defined function
* @see SetBasicFortranCallback
*/
- void SetBasicCallback(double (*cookie)(double x1, double x2, const char *str));
+ void SetBasicCallback(double (*fcn)(double x1, double x2, const char *str, void *cookie), void * cookie1);
/**
* Sets a Fortran callback function for Basic programs. The syntax for the Basic command is
@@ -672,7 +672,7 @@ public:
* @param cookie The name of a user-defined double precision function with three arguments (two double precision, one character).
* @see SetBasicCallback
*/
- void SetBasicFortranCallback(double (*cookie)(double *x1, double *x2, char *str, int l));
+ void SetBasicFortranCallback(double (*fcn)(double *x1, double *x2, char *str, int l));
/**
* Runs the specified string as input to phreeqc.
diff --git a/IPhreeqcLib.cpp b/IPhreeqcLib.cpp
index 4c0f0ec4..795a9f35 100644
--- a/IPhreeqcLib.cpp
+++ b/IPhreeqcLib.cpp
@@ -715,24 +715,24 @@ RunString(int id, const char* input)
}
IPQ_RESULT
-SetBasicCallback(int id, double (*cookie)(double x1, double x2, const char *str))
+SetBasicCallback(int id, double (*fcn)(double x1, double x2, const char *str, void *cookie), void *cookie1)
{
IPhreeqc* IPhreeqcPtr = IPhreeqcLib::GetInstance(id);
if (IPhreeqcPtr)
{
- IPhreeqcPtr->SetBasicCallback(cookie);
+ IPhreeqcPtr->SetBasicCallback(fcn, cookie1);
return IPQ_OK;
}
return IPQ_BADINSTANCE;
}
IPQ_RESULT
-SetBasicFortranCallback(int id, double (*cookie)(double *x1, double *x2, char *str, int l))
+SetBasicFortranCallback(int id, double (*fcn)(double *x1, double *x2, char *str, int l))
{
IPhreeqc* IPhreeqcPtr = IPhreeqcLib::GetInstance(id);
if (IPhreeqcPtr)
{
- IPhreeqcPtr->SetBasicFortranCallback(cookie);
+ IPhreeqcPtr->SetBasicFortranCallback(fcn);
return IPQ_OK;
}
return IPQ_BADINSTANCE;
diff --git a/fwrap.cpp b/fwrap.cpp
index 37a30b6b..4d9be65c 100644
--- a/fwrap.cpp
+++ b/fwrap.cpp
@@ -450,9 +450,9 @@ RunStringF(int *id, char* input, unsigned int input_length)
}
IPQ_RESULT
-SetBasicFortranCallbackF(int *id, double (*cookie)(double *x1, double *x2, char *str, int l))
+SetBasicFortranCallbackF(int *id, double (*fcn)(double *x1, double *x2, char *str, int l))
{
- return ::SetBasicFortranCallback(*id, cookie);
+ return ::SetBasicFortranCallback(*id, fcn);
}
IPQ_RESULT
@@ -799,9 +799,9 @@ IPQ_DLL_EXPORT int __stdcall RUNSTRING(int *id, char *input, unsigned int len)
{
return RunStringF(id, input, len);
}
-IPQ_DLL_EXPORT int __stdcall SETBASICFORTRANCALBACK(int *id, double (*cookie)(double *x1, double *x2, char *str, int l))
+IPQ_DLL_EXPORT int __stdcall SETBASICFORTRANCALBACK(int *id, double (*fcn)(double *x1, double *x2, char *str, int l))
{
- return SetBasicFortranCallbackF(id, cookie);
+ return SetBasicFortranCallbackF(id, fcn);
}
IPQ_DLL_EXPORT int __stdcall SETDUMPFILENAME(int *id, char *filename, unsigned int len)
{
diff --git a/fwrap.h b/fwrap.h
index 1bdef4d7..852bd735 100644
--- a/fwrap.h
+++ b/fwrap.h
@@ -137,7 +137,7 @@ extern "C" {
IPQ_RESULT SetSelectedOutputFileNameF(int *id, char* fname, unsigned int fname_length);
IPQ_RESULT SetSelectedOutputFileOnF(int *id, int* selected_output_file_on);
IPQ_RESULT SetSelectedOutputStringOnF(int *id, int* selected_output_string_on);
- IPQ_RESULT SetBasicFortranCallbackF(int *id, double (*cookie)(double *x1, double *x2, char *str, int l));
+ IPQ_RESULT SetBasicFortranCallbackF(int *id, double (*fcn)(double *x1, double *x2, char *str, int l));
#if defined(__cplusplus)
}
diff --git a/fwrap2.cpp b/fwrap2.cpp
index 7bbd8081..93bfb5c8 100644
--- a/fwrap2.cpp
+++ b/fwrap2.cpp
@@ -199,9 +199,9 @@ IPQ_DLL_EXPORT int RUNSTRING(int *id, char *input, unsigned int len)
{
return RunStringF(id, input, len);
}
-IPQ_DLL_EXPORT int SETBASICFORTRANCALLBACK(int *id, double (*cookie)(double *x1, double *x2, char *str, int l))
+IPQ_DLL_EXPORT int SETBASICFORTRANCALLBACK(int *id, double (*fcn)(double *x1, double *x2, char *str, int l))
{
- return SetBasicFortranCallbackF(id, cookie);
+ return SetBasicFortranCallbackF(id, fcn);
}
IPQ_DLL_EXPORT int SETDUMPFILENAME(int *id, char *filename, unsigned int len)
{
diff --git a/fwrap3.cpp b/fwrap3.cpp
index dd2e4568..44139f69 100644
--- a/fwrap3.cpp
+++ b/fwrap3.cpp
@@ -200,9 +200,9 @@ IPQ_DLL_EXPORT int runstring_(int *id, char *input, unsigned int len)
{
return RunStringF(id, input, len);
}
-IPQ_DLL_EXPORT int setbasicfortrancallback_(int *id, double (*cookie)(double *x1, double *x2, char *str, int l))
+IPQ_DLL_EXPORT int setbasicfortrancallback_(int *id, double (*fcn)(double *x1, double *x2, char *str, int l))
{
- return SetBasicFortranCallbackF(id, cookie);
+ return SetBasicFortranCallbackF(id, fcn);
}
IPQ_DLL_EXPORT int setdumpfilename_(int *id, char *filename, unsigned int len)
{
diff --git a/fwrap4.cpp b/fwrap4.cpp
index 6bf5e13b..7a4fe96b 100644
--- a/fwrap4.cpp
+++ b/fwrap4.cpp
@@ -200,9 +200,9 @@ IPQ_DLL_EXPORT int runstring(int *id, char *input, unsigned int len)
{
return RunStringF(id, input, len);
}
-IPQ_DLL_EXPORT int setbasicfortrancallback(int *id, double (*cookie)(double *x1, double *x2, char *str, int l))
+IPQ_DLL_EXPORT int setbasicfortrancallback(int *id, double (*fcn)(double *x1, double *x2, char *str, int l))
{
- return SetBasicFortranCallbackF(id, cookie);
+ return SetBasicFortranCallbackF(id, fcn);
}
IPQ_DLL_EXPORT int setdumpfilename(int *id, char *filename, unsigned int len)
{
diff --git a/fwrap5.cpp b/fwrap5.cpp
index 5f3e3d4e..49e4b0c7 100644
--- a/fwrap5.cpp
+++ b/fwrap5.cpp
@@ -200,9 +200,9 @@ IPQ_DLL_EXPORT int RUNSTRING_(int *id, char *input, unsigned int len)
{
return RunStringF(id, input, len);
}
-IPQ_DLL_EXPORT int SETBASICFORTRANCALLBACK_(int *id, double (*cookie)(double *x1, double *x2, char *str, int l))
+IPQ_DLL_EXPORT int SETBASICFORTRANCALLBACK_(int *id, double (*fcn)(double *x1, double *x2, char *str, int l))
{
- return SetBasicFortranCallbackF(id, cookie);
+ return SetBasicFortranCallbackF(id, fcn);
}
IPQ_DLL_EXPORT int SETDUMPFILENAME_(int *id, char *filename, unsigned int len)
{
diff --git a/fwrap6.cpp b/fwrap6.cpp
index 777d2d2c..aec90124 100644
--- a/fwrap6.cpp
+++ b/fwrap6.cpp
@@ -201,9 +201,9 @@ IPQ_DLL_EXPORT int __stdcall RUNSTRING_(int *id, char *input, unsigned int len)
{
return RunStringF(id, input, len);
}
-IPQ_DLL_EXPORT int __stdcall SETBASICFORTRANCALLBACK_(int *id, double (*cookie)(double *x1, double *x2, char *str, int l))
+IPQ_DLL_EXPORT int __stdcall SETBASICFORTRANCALLBACK_(int *id, double (*fcn)(double *x1, double *x2, char *str, int l))
{
- return SetBasicFortranCallbackF(id, cookie);
+ return SetBasicFortranCallbackF(id, fcn);
}
IPQ_DLL_EXPORT int __stdcall SETDUMPFILENAME_(int *id, char *filename, unsigned int len)
{
diff --git a/fwrap7.cpp b/fwrap7.cpp
index e29f9d64..1def9c6c 100644
--- a/fwrap7.cpp
+++ b/fwrap7.cpp
@@ -200,9 +200,9 @@ IPQ_DLL_EXPORT int __stdcall runstring_(int *id, char *input, unsigned int len)
{
return RunStringF(id, input, len);
}
-IPQ_DLL_EXPORT int __stdcall setbasicfortrancallback_(int *id, double (*cookie)(double *x1, double *x2, char *str, int l))
+IPQ_DLL_EXPORT int __stdcall setbasicfortrancallback_(int *id, double (*fcn)(double *x1, double *x2, char *str, int l))
{
- return SetBasicFortranCallbackF(id, cookie);
+ return SetBasicFortranCallbackF(id, fcn);
}
IPQ_DLL_EXPORT int __stdcall setdumpfilename_(int *id, char *filename, unsigned int len)
{
diff --git a/fwrap8.cpp b/fwrap8.cpp
index 19143856..d80e89d7 100644
--- a/fwrap8.cpp
+++ b/fwrap8.cpp
@@ -200,9 +200,9 @@ IPQ_DLL_EXPORT int __stdcall runstring(int *id, char *input, unsigned int len)
{
return RunStringF(id, input, len);
}
-IPQ_DLL_EXPORT int __stdcall setbasicfortrancallback(int *id, double (*cookie)(double *x1, double *x2, char *str, int l))
+IPQ_DLL_EXPORT int __stdcall setbasicfortrancallback(int *id, double (*fcn)(double *x1, double *x2, char *str, int l))
{
- return SetBasicFortranCallbackF(id, cookie);
+ return SetBasicFortranCallbackF(id, fcn);
}
IPQ_DLL_EXPORT int __stdcall setdumpfilename(int *id, char *filename, unsigned int len)
{