Changed name to ISolutionComp.

git-svn-id: svn://136.177.114.72/svn_GW/phreeqcpp/trunk@797 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
David L Parkhurst 2006-02-27 21:22:47 +00:00
parent 2fe8f7d44e
commit 90a787e420
2 changed files with 33 additions and 38 deletions

View File

@ -2,7 +2,7 @@
#pragma warning(disable : 4786) // disable truncation warning (Only used by debugger) #pragma warning(disable : 4786) // disable truncation warning (Only used by debugger)
#endif #endif
#include "SolutionComp.h" #include "ISolutionComp.h"
#include "ISolution.h" #include "ISolution.h"
#include "Utils.h" #include "Utils.h"
#include <cassert> #include <cassert>
@ -11,7 +11,7 @@
#include "phrqproto.h" #include "phrqproto.h"
#include "phqalloc.h" #include "phqalloc.h"
cxxSolutionComp::cxxSolutionComp(void) cxxISolutionComp::cxxISolutionComp(void)
: description(NULL) : description(NULL)
, moles(0.0) , moles(0.0)
, input_conc(0.0) , input_conc(0.0)
@ -25,7 +25,7 @@ cxxSolutionComp::cxxSolutionComp(void)
//, phase(NULL) //, phase(NULL)
{ {
} }
cxxSolutionComp::cxxSolutionComp(struct conc *conc_ptr) cxxISolutionComp::cxxISolutionComp(struct conc *conc_ptr)
{ {
description = conc_ptr->description; description = conc_ptr->description;
moles = conc_ptr->moles; moles = conc_ptr->moles;
@ -40,11 +40,11 @@ cxxSolutionComp::cxxSolutionComp(struct conc *conc_ptr)
//phase = conc_ptr->phase; //phase = conc_ptr->phase;
} }
cxxSolutionComp::~cxxSolutionComp(void) cxxISolutionComp::~cxxISolutionComp(void)
{ {
} }
/* /*
struct conc *cxxSolutionComp::concarray(std::map <char *, double, CHARSTAR_LESS> &totals) struct conc *cxxISolutionComp::concarray(std::map <char *, double, CHARSTAR_LESS> &totals)
// for Solutions, not ISolutions // for Solutions, not ISolutions
// takes a map of (elt name, moles) // takes a map of (elt name, moles)
// returns list of conc structures // returns list of conc structures
@ -71,16 +71,16 @@ struct conc *cxxSolutionComp::concarray(std::map <char *, double, CHARSTAR_LESS>
return(c); return(c);
} }
*/ */
struct conc *cxxSolutionComp::cxxSolutionComp2conc(const std::set <cxxSolutionComp> &totals) struct conc *cxxISolutionComp::cxxISolutionComp2conc(const std::set <cxxISolutionComp> &totals)
// for ISolutions // for ISolutions
// takes a std::vector cxxSolutionComp structures // takes a std::vector cxxISolutionComp structures
// returns list of conc structures // returns list of conc structures
{ {
struct conc *c; struct conc *c;
c = (struct conc *) PHRQ_malloc((size_t) ((totals.size() + 1) * sizeof(struct conc))); c = (struct conc *) PHRQ_malloc((size_t) ((totals.size() + 1) * sizeof(struct conc)));
if (c == NULL) malloc_error(); if (c == NULL) malloc_error();
int i = 0; int i = 0;
for (std::set<cxxSolutionComp>::const_iterator it = totals.begin(); it != totals.end(); ++it) { for (std::set<cxxISolutionComp>::const_iterator it = totals.begin(); it != totals.end(); ++it) {
c[i].description = it->description; c[i].description = it->description;
c[i].moles = it->moles; c[i].moles = it->moles;
c[i].input_conc = it->input_conc; c[i].input_conc = it->input_conc;
@ -99,7 +99,7 @@ struct conc *cxxSolutionComp::cxxSolutionComp2conc(const std::set <cxxSolutionCo
} }
#ifdef SKIP #ifdef SKIP
cxxSolutionComp::STATUS_TYPE cxxSolutionComp::read(CParser& parser, cxxISolution& solution) cxxISolutionComp::STATUS_TYPE cxxISolutionComp::read(CParser& parser, cxxISolution& solution)
{ {
// std::string& str = parser.line(); // std::string& str = parser.line();
std::string str = parser.line(); std::string str = parser.line();
@ -133,7 +133,7 @@ cxxSolutionComp::STATUS_TYPE cxxSolutionComp::read(CParser& parser, cxxISolution
if (count_redox_states == 0) { if (count_redox_states == 0) {
parser.incr_input_error(); parser.incr_input_error();
parser.error_msg("No element or master species given for concentration input.", CParser::OT_CONTINUE); parser.error_msg("No element or master species given for concentration input.", CParser::OT_CONTINUE);
return cxxSolutionComp::ERROR; return cxxISolutionComp::ERROR;
} }
description = token1; description = token1;
@ -149,9 +149,9 @@ cxxSolutionComp::STATUS_TYPE cxxSolutionComp::read(CParser& parser, cxxISolution
std::ostringstream err; std::ostringstream err;
err << "Concentration data error for " << token1 << " in solution input."; err << "Concentration data error for " << token1 << " in solution input.";
parser.error_msg(err, CParser::OT_CONTINUE); parser.error_msg(err, CParser::OT_CONTINUE);
return cxxSolutionComp::ERROR; return cxxISolutionComp::ERROR;
} }
if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxSolutionComp::OK; if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxISolutionComp::OK;
// Read optional data // Read optional data
token1 = token; token1 = token;
@ -160,9 +160,9 @@ cxxSolutionComp::STATUS_TYPE cxxSolutionComp::read(CParser& parser, cxxISolution
if (parser.check_units(token1, alk, false, solution.get_units(), false) == CParser::OK) { if (parser.check_units(token1, alk, false, solution.get_units(), false) == CParser::OK) {
if (parser.check_units(token1, alk, false, solution.get_units(), true) == CParser::OK) { if (parser.check_units(token1, alk, false, solution.get_units(), true) == CParser::OK) {
this->units = token1; this->units = token1;
if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxSolutionComp::OK; if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxISolutionComp::OK;
} else { } else {
return cxxSolutionComp::ERROR; return cxxISolutionComp::ERROR;
} }
} }
@ -173,49 +173,49 @@ cxxSolutionComp::STATUS_TYPE cxxSolutionComp::read(CParser& parser, cxxISolution
{ {
parser.copy_token(token, ptr); parser.copy_token(token, ptr);
this->as = token; this->as = token;
if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxSolutionComp::OK; if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxISolutionComp::OK;
} }
// Check for "gfw" followed by gram formula weight // Check for "gfw" followed by gram formula weight
else if (token1.compare("gfw") == 0) else if (token1.compare("gfw") == 0)
{ {
if (parser.copy_token(token, ptr) != CParser::TT_DIGIT) { if (parser.copy_token(token, ptr) != CParser::TT_DIGIT) {
parser.error_msg("Expecting gram formula weight.", CParser::OT_CONTINUE); parser.error_msg("Expecting gram formula weight.", CParser::OT_CONTINUE);
return cxxSolutionComp::ERROR; return cxxISolutionComp::ERROR;
} else { } else {
parser.get_iss() >> this->gfw; parser.get_iss() >> this->gfw;
if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxSolutionComp::OK; if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxISolutionComp::OK;
} }
} }
// Check for redox couple for pe // Check for redox couple for pe
if ( Utilities::strcmp_nocase_arg1(token.c_str(), "pe") == 0 ) { if ( Utilities::strcmp_nocase_arg1(token.c_str(), "pe") == 0 ) {
this->n_pe = cxxPe_Data::store(solution.pe, token); this->n_pe = cxxPe_Data::store(solution.pe, token);
if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxSolutionComp::OK; if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxISolutionComp::OK;
} else if (token.find("/") != std::string::npos) { } else if (token.find("/") != std::string::npos) {
if (parser.parse_couple(token) == CParser::OK) { if (parser.parse_couple(token) == CParser::OK) {
this->n_pe = cxxPe_Data::store(solution.pe, token); this->n_pe = cxxPe_Data::store(solution.pe, token);
if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxSolutionComp::OK; if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxISolutionComp::OK;
} else { } else {
return cxxSolutionComp::ERROR; return cxxISolutionComp::ERROR;
} }
} }
// Must have phase // Must have phase
this->equation_name = token; this->equation_name = token;
if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxSolutionComp::OK; if ( (j = parser.copy_token(token, ptr)) == CParser::TT_EMPTY) return cxxISolutionComp::OK;
// Check for saturation index // Check for saturation index
if (!(std::istringstream(token) >> this->phase_si)) if (!(std::istringstream(token) >> this->phase_si))
{ {
parser.error_msg("Expected saturation index.", CParser::OT_CONTINUE); parser.error_msg("Expected saturation index.", CParser::OT_CONTINUE);
return cxxSolutionComp::ERROR; return cxxISolutionComp::ERROR;
} }
return cxxSolutionComp::OK; return cxxISolutionComp::OK;
} }
#endif #endif
#ifdef SKIP #ifdef SKIP
void cxxSolutionComp::dump_xml(std::ostream& s_oss, unsigned int indent)const void cxxISolutionComp::dump_xml(std::ostream& s_oss, unsigned int indent)const
{ {
unsigned int i; unsigned int i;
std::string indent0(""); std::string indent0("");

View File

@ -1,5 +1,5 @@
#if !defined(SOLUTIONCOMP_H_INCLUDED) #if !defined(ISOLUTIONCOMP_H_INCLUDED)
#define SOLUTIONCOMP_H_INCLUDED #define ISOLUTIONCOMP_H_INCLUDED
//#include "Parser.h" //#include "Parser.h"
#include "Utils.h" #include "Utils.h"
@ -13,17 +13,12 @@
// forward declarations // forward declarations
class cxxISolution; // reqd for read and dump_xml class cxxISolution; // reqd for read and dump_xml
class cxxSolutionComp class cxxISolutionComp
{ {
public: public:
cxxSolutionComp(void); cxxISolutionComp(void);
cxxSolutionComp(struct conc *conc_ptr); cxxISolutionComp(struct conc *conc_ptr);
~cxxSolutionComp(void); ~cxxISolutionComp(void);
enum STATUS_TYPE {
ERROR = 0,
OK = 1
};
public: public:
@ -46,9 +41,9 @@ public:
int get_n_pe()const {return this->n_pe;} int get_n_pe()const {return this->n_pe;}
void set_n_pe(int n_pe) {this->n_pe = n_pe;} void set_n_pe(int n_pe) {this->n_pe = n_pe;}
bool operator<(const cxxSolutionComp& conc)const { return ::strcmp(this->description, conc.description) < 0; } bool operator<(const cxxISolutionComp& conc)const { return ::strcmp(this->description, conc.description) < 0; }
static struct conc * cxxSolutionComp2conc(const std::set<cxxSolutionComp> &t ); static struct conc * cxxISolutionComp2conc(const std::set<cxxISolutionComp> &t );
private: private:
char * description; char * description;
@ -62,4 +57,4 @@ private:
double gfw; double gfw;
}; };
#endif // SOLUTIONCOMP_H_INCLUDED #endif // ISOLUTIONCOMP_H_INCLUDED