#if !defined(NAMEDOUBLE_H_INCLUDED) #define NAMEDOUBLE_H_INCLUDED #define EXTERNAL extern #include // assert #include // std::map #include // std::string #include // std::list #include // std::vector #include "global.h" #include "char_star.h" #include "Parser.h" class cxxNameDouble : public std::map { public: enum ND_TYPE { ND_ELT_MOLES = 1, ND_SPECIES_LA = 2, ND_SPECIES_GAMMA = 3, ND_NAME_COEF = 4 }; cxxNameDouble(); cxxNameDouble(struct elt_list *); cxxNameDouble(struct conc *); cxxNameDouble(struct master_activity *ma, int count, ND_TYPE); cxxNameDouble(struct name_coef *nc, int count); cxxNameDouble(const cxxNameDouble &old, double factor); ~cxxNameDouble(); struct elt_list *elt_list(); struct master_activity *master_activity()const; struct conc *conc()const; struct name_coef *name_coef()const; void dump_xml(std::ostream& s_oss, unsigned int indent)const; void dump_raw(std::ostream& s_oss, unsigned int indent)const; CParser::STATUS_TYPE read_raw(CParser& parser, std::istream::pos_type& pos); void add(const cxxNameDouble &old, double factor); void insert(char *str, double d) { (*this)[str] = d; } void mpi_pack(std::vector& ints, std::vector& doubles); void mpi_pack(int *ints, int *ii, double *doubles, int *dd); void mpi_unpack(int *ints, int *ii, double *doubles, int *dd); enum ND_TYPE type; protected: //std::map totals; public: //static std::map& map; }; #endif // !defined(NAMEDOUBLE_H_INCLUDED)