functions are fcn

Added cookie to c callback.



git-svn-id: svn://136.177.114.72/svn_GW/phreeqc3/trunk@7895 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
David L Parkhurst 2013-08-08 19:53:31 +00:00
parent ca3e1128a2
commit 30164dc7fd
3 changed files with 11 additions and 8 deletions

View File

@ -803,6 +803,7 @@ void Phreeqc::init(void)
/* Basic */
basic_interpreter = NULL;
basic_callback_ptr = NULL;
basic_callback_cookie = NULL;
basic_fortran_callback_ptr = NULL;
/* cl1.cpp ------------------------------- */

View File

@ -83,8 +83,8 @@ public:
int basic_run(char *commands, void *lnbase, void *vbase, void *lpbase);
void basic_free(void);
double basic_callback(double x1, double x2, char * str);
void register_basic_callback(double ( *cookie)(double x1, double x2, const char *str));
void register_fortran_basic_callback(double ( *cookie)(double *x1, double *x2, char *str, int l));
void register_basic_callback(double ( *fcn)(double x1, double x2, const char *str, void *cookie), void *cookie1);
void register_fortran_basic_callback(double ( *fcn)(double *x1, double *x2, char *str, int l));
LDBLE activity(const char *species_name);
LDBLE activity_coefficient(const char *species_name);
@ -1695,7 +1695,8 @@ protected:
/* Basic */
PBasic * basic_interpreter;
double (*basic_callback_ptr) (double x1, double x2, const char *str);
double (*basic_callback_ptr) (double x1, double x2, const char *str, void *cookie);
void *basic_callback_cookie;
double (*basic_fortran_callback_ptr) (double *x1, double *x2, char *str, int l);
/* cl1.cpp ------------------------------- */

View File

@ -3607,7 +3607,7 @@ basic_callback(double x1, double x2, char * str)
if (basic_callback_ptr != NULL)
{
return (*basic_callback_ptr) (x1, x2, (const char *) str);
return (*basic_callback_ptr) (x1, x2, (const char *) str, basic_callback_cookie);
}
if (basic_fortran_callback_ptr != NULL)
{
@ -3617,13 +3617,14 @@ basic_callback(double x1, double x2, char * str)
}
void
Phreeqc::register_basic_callback(double ( *cookie)(double x1, double x2, const char *str))
Phreeqc::register_basic_callback(double (*fcn)(double x1, double x2, const char *str, void *cookie), void *cookie1)
{
this->basic_callback_ptr = cookie;
this->basic_callback_ptr = fcn;
this->basic_callback_cookie = cookie1;
}
void
Phreeqc::register_fortran_basic_callback(double ( *cookie)(double *x1, double *x2, char *str, int l))
Phreeqc::register_fortran_basic_callback(double ( *fcn)(double *x1, double *x2, char *str, int l))
{
this->basic_fortran_callback_ptr = cookie;
this->basic_fortran_callback_ptr = fcn;
}