iphreeqc/ISolution.h
David L Parkhurst 2b76f04a8b Cleaned up header files to remove unnecessary includes of .h files. Moved includes to source code where possible.
Moved some methods for .h to source files to avoid need for includes.

Debug and Release compile. 

Still need to get class version working. 

git-svn-id: svn://136.177.114.72/svn_GW/phreeqcpp/trunk@3868 1feff8c3-07ed-0310-ac33-dd36852eb9cd
2009-12-07 19:49:38 +00:00

93 lines
2.2 KiB
C++

#if !defined(ISOLUTION_H_INCLUDED)
#define ISOLUTION_H_INCLUDED
#include <cassert> // assert
#include <map> // std::map
#include <string> // std::string
#include <list> // std::list
#include <vector> // std::vector
#include <set> // std::set
#include <iostream>
#include <sstream>
#include <fstream>
#include "ISolutionComp.h"
#include "NumKeyword.h"
#include "Solution.h"
class cxxISolution:public cxxSolution
{
public:
cxxISolution();
cxxISolution(struct solution *);
//cxxISolution(const cxxISolution&);
~cxxISolution();
//static cxxISolution& read(CParser& parser);
//void add(cxxISolutionComp conc) { this->concs.push_back(conc); }
struct solution *cxxISolution2solution();
double get_density() const
{
return this->density;
}
void set_density(double density)
{
this->density = density;
}
std::string get_units() const
{
return units;
}
void set_units(std::string units)
{
units = units;
}
void set_units(char * units)
{
if (units != NULL)
this->units = std::string(units);
else
this->units.clear();
}
//char * get_redox()const {return this->pe[this->default_pe].get_name();}
//void dump_xml(std::ostream& os, unsigned int indent = 0)const;
void ConvertUnits();
#ifdef ORCHESTRA
void ORCH_write(std::ostream & chemistry_dat, std::ostream & input_dat,
std::ostream & output_dat);
void ORCH_write_chemistry(std::ostream & chemistry_dat);
void ORCH_write_input(std::ostream & input_dat);
void ORCH_write_output_vars(std::ostream & input_dat);
private:
void ORCH_write_chemistry_water(std::ostream & chemistry_dat);
void ORCH_write_chemistry_primary(std::ostream & chemistry_dat);
void ORCH_write_chemistry_total_O_H(std::ostream & chemistry_dat);
void ORCH_write_chemistry_alkalinity(std::ostream & chemistry_dat);
void ORCH_write_chemistry_minerals(std::ostream & chemistry_dat);
#endif
protected:
friend class cxxISolutionComp; // for this->pe access
double density;
std::string units;
//std::map < char *, cxxISolutionComp, CHARSTAR_LESS > comps;
std::map < std::string, cxxISolutionComp > comps;
struct pe_data *pes;
int default_pe;
public:
//static std::map<int, cxxISolution>& map;
};
#endif // !defined(ISOLUTION_H_INCLUDED)