5 #ifndef INC_IPHREEQC_HPP
6 #define INC_IPHREEQC_HPP
13 #include "IPhreeqcCallbacks.h"
18 #define IPQ_DLL_EXPORT __declspec(dllexport)
20 #define IPQ_DLL_EXPORT
25 class CSelectedOutput;
37 virtual const char *what()
const throw () {
return "Failure in IPhreeqc\n";}
82 size_t AddError(
const char* error_msg);
105 const std::string& GetAccumulatedLines(
void);
231 int GetId(
void)
const;
623 std::list< std::string > ListComponents(
void);
685 int RunFile(
const char* filename);
706 void SetBasicCallback(
double (*fcn)(
double x1,
double x2,
const char *str,
void *cookie),
void * cookie1);
716 #ifdef IPHREEQC_NO_FORTRAN_MODULE
863 virtual void error_msg(
const char *str,
bool stop=
false);
864 virtual void log_msg(
const char * str);
865 virtual void output_msg(
const char *str);
866 virtual void punch_msg(
const char *str);
867 virtual void screen_msg(
const char *str);
868 virtual void warning_msg(
const char *str);
870 virtual void fpunchf(
const char *name,
const char *format,
double d);
871 virtual void fpunchf(
const char *name,
const char *format,
char * d);
872 virtual void fpunchf(
const char *name,
const char *format,
int d);
873 virtual void fpunchf_end_row(
const char *format);
875 virtual bool output_open(
const char *file_name, std::ios_base::openmode mode = std::ios_base::out);
876 virtual bool punch_open(
const char *file_name, std::ios_base::openmode mode = std::ios_base::out,
int n_user = 1);
880 void AddSelectedOutput(
const char* name,
const char* format, va_list argptr);
881 void UnLoadDatabase(
void);
883 void check_database(
const char* sz_routine);
884 int close_input_files(
void);
885 int close_output_files(
void);
886 void open_output_files(
const char* sz_routine);
888 void do_run(
const char* sz_routine, std::istream* pis, PFN_PRERUN_CALLBACK pfn_pre, PFN_POSTRUN_CALLBACK pfn_post,
void *cookie);
890 void update_errors(
void);
892 int load_db(
const char* filename);
893 int load_db_str(
const char* filename);
896 bool get_sel_out_file_on(
int n)
const;
897 std::string sel_file_name(
int n_user);
899 std::string create_file_name(
const char *prefix,
const char *suffix);
901 bool get_sel_out_string_on(
int n)
const;
904 #if defined(_MSC_VER)
906 #pragma warning(disable:4251)
910 bool ClearAccumulated;
911 bool UpdateComponents;
912 std::map< int, bool > SelectedOutputFileOnMap;
923 std::string OutputString;
924 std::vector< std::string > OutputLines;
927 std::string LogString;
928 std::vector< std::string > LogLines;
931 IErrorReporter *ErrorReporter;
932 std::string ErrorString;
933 std::vector< std::string > ErrorLines;
935 bool WarningStringOn;
936 IErrorReporter *WarningReporter;
937 std::string WarningString;
938 std::vector< std::string > WarningLines;
940 int CurrentSelectedOutputUserNumber;
941 std::map< int, CSelectedOutput* > SelectedOutputMap;
942 std::string StringInput;
944 std::string DumpString;
945 std::vector< std::string > DumpLines;
947 std::list< std::string > Components;
949 std::map< int, std::string > SelectedOutputFileNameMap;
951 std::string OutputFileName;
952 std::string ErrorFileName;
953 std::string LogFileName;
954 std::string DumpFileName;
956 std::map< int, bool > SelectedOutputStringOn;
957 std::map< int, std::string > SelectedOutputStringMap;
958 std::map< int, std::vector< std::string > > SelectedOutputLinesMap;
965 friend class IPhreeqcLib;
966 static std::map<size_t, IPhreeqc*> Instances;
967 static size_t InstancesIndex;
970 static std::string Version;
972 #if defined(_MSC_VER)
974 #pragma warning(default:4251)
978 friend class TestIPhreeqc;
979 friend class TestSelectedOutput;
994 #endif // INC_IPHREEQC_HPP
IPQ_RESULT SetLogFileName(int id, const char *filename)
IPQ_RESULT SetSelectedOutputFileName(int id, const char *filename)
int RunAccumulated(int id)
int GetSelectedOutputCount(int id)
int GetNthSelectedOutputUserNumber(int id, int n)
const char * GetVersionString(void)
int GetSelectedOutputColumnCount(int id)
int GetOutputFileOn(int id)
const char * GetSelectedOutputStringLine(int id, int n)
const char * GetOutputStringLine(int id, int n)
int GetErrorStringLineCount(int id)
IPQ_RESULT GetSelectedOutputValue(int id, int row, int col, VAR *pVAR)
const char * GetDumpFileName(int id)
const char * GetWarningString(int id)
IPQ_RESULT SetDumpFileName(int id, const char *filename)
int GetErrorFileOn(int id)
IPQ_RESULT SetCurrentSelectedOutputUserNumber(int id, int n)
IPQ_RESULT SetOutputFileName(int id, const char *filename)
const char * GetOutputString(int id)
int LoadDatabase(int id, const char *filename)
int GetWarningStringLineCount(int id)
int GetDumpStringLineCount(int id)
const char * GetComponent(int id, int n)
IPQ_RESULT SetLogFileOn(int id, int log_on)
IPQ_RESULT SetErrorFileName(int id, const char *filename)
const char * GetSelectedOutputString(int id)
IPQ_RESULT SetSelectedOutputFileOn(int id, int sel_on)
int GetComponentCount(int id)
IPQ_RESULT SetErrorStringOn(int id, int error_string_on)
const char * GetErrorString(int id)
int GetSelectedOutputStringLineCount(int id)
IPQ_RESULT SetBasicFortranCallback(int id, double(*fcn)(double *x1, double *x2, const char *str, int l))
const char * GetDumpStringLine(int id, int n)
int GetOutputStringOn(int id)
int RunFile(int id, const char *filename)
const char * GetErrorStringLine(int id, int n)
int RunString(int id, const char *input)
int GetCurrentSelectedOutputUserNumber(int id)
IPQ_RESULT SetDumpFileOn(int id, int dump_on)
int LoadDatabaseString(int id, const char *input)
const char * GetOutputFileName(int id)
IPQ_RESULT SetSelectedOutputStringOn(int id, int sel_string_on)
IPQ_RESULT SetErrorFileOn(int id, int error_on)
IPQ_RESULT SetDumpStringOn(int id, int dump_string_on)
const char * GetLogString(int id)
int GetSelectedOutputStringOn(int id)
int GetOutputStringLineCount(int id)
IPhreeqc VARIANT Documentation
void OutputWarningString(int id)
const char * GetErrorFileName(int id)
const char * GetLogFileName(int id)
const char * GetLogStringLine(int id, int n)
IPQ_RESULT SetOutputStringOn(int id, int output_string_on)
int GetErrorStringOn(int id)
IPQ_RESULT SetLogStringOn(int id, int log_string_on)
int AddWarning(int id, const char *warn_msg)
IPQ_RESULT ClearAccumulatedLines(int id)
void OutputAccumulatedLines(int id)
int GetDumpFileOn(int id)
Datatype used to store SELECTED_OUTPUT values.
Definition: Var.h:44
const char * GetDumpString(int id)
int GetLogStringLineCount(int id)
IPQ_RESULT SetBasicCallback(int id, double(*fcn)(double x1, double x2, const char *str, void *cookie), void *cookie1)
IPQ_RESULT SetOutputFileOn(int id, int output_on)
int AddError(int id, const char *error_msg)
int GetSelectedOutputFileOn(int id)
const char * GetSelectedOutputFileName(int id)
IPQ_RESULT AccumulateLine(int id, const char *line)
int GetSelectedOutputRowCount(int id)
int GetLogStringOn(int id)
VRESULT
Enumeration used to return error codes.
Definition: Var.h:33
int GetDumpStringOn(int id)
void OutputErrorString(int id)
This class is derived from std::exception and is thrown when an unrecoverable error has occured...
Definition: IPhreeqc.hpp:34
IPQ_RESULT GetSelectedOutputValue2(int id, int row, int col, int *vtype, double *dvalue, char *svalue, unsigned int svalue_length)
const char * GetWarningStringLine(int id, int n)
Provides an interface to PHREEQC (Version 3)–A Computer Program for Speciation, Batch-Reaction, One-Dimensional Transport, and Inverse Geochemical Calculations.
Definition: IPhreeqc.hpp:48