1#ifndef __JLANG__JEQUATION__ 
    2#define __JLANG__JEQUATION__ 
   19namespace JPP { 
using namespace JLANG; }
 
   78        ostream::sentry sentry(out);
 
   82          const locale& 
loc = out.getloc();
 
   84          if (has_facet<JEquationFacet>(
loc)) {
 
   90            out << equation.
value;
 
   97            out << equation.
value;
 
 
 
  202      istream::sentry sentry(in, 
false);
 
  208        const locale& 
loc = in.getloc();
 
  210        if (has_facet<JEquationFacet>(
loc)) {
 
  214          ios_base::iostate state = in.rdstate();
 
  217          for (
int c; (c = in.peek()) != EOF && facet.
isSkipLine((
char) c); ) {
 
  222          if (state == ios_base::goodbit) facet.
get(in, istreambuf_iterator<char>(), in, state, equation.
key);
 
  223          if (state == ios_base::goodbit) facet.
get(in, istreambuf_iterator<char>(), in, state, equation.
sep);
 
  224          if (state == ios_base::goodbit) facet.
getline(in, equation.
value);
 
  231            JString::const_iterator         p = equation.
value. begin();
 
  232            JString::const_reverse_iterator q = equation.
value.rbegin();
 
  234            for ( ; ; ++p, ++q) {
 
  245            if (p != equation.
value.begin() || q != equation.
value.rbegin()) {
 
  246              equation.
value = string(p, q.base());
 
  250          if (state != ios_base::goodbit && state != ios_base::eofbit) {
 
  254          if (!(state & ios_base::eofbit)) {
 
  257              in.setstate(ios_base::badbit);
 
  263          in.setstate(ios_base::failbit);
 
 
  282      ostream::sentry sentry(out);
 
  286        const locale& 
loc = out.getloc();
 
  288        if (has_facet<JEquationFacet>(
loc)) {
 
  294          out << equation.
value;
 
  301          out << equation.
value;
 
 
  321      istringstream in(buffer);
 
  323      in.imbue(locale(in.getloc(), facet.
clone()));
 
 
 
Facet class to specify parsing of equations in currect locale (see class JLANG::JEquation).
 
istreambuf_iterator get(const istreambuf_iterator __begin, const istreambuf_iterator __end, const std::ios_base &format, std::ios_base::iostate &result, char &buffer) const
Get character.
 
virtual JEquationFacet * clone() const override
Clone this facet.
 
bool isSeparator(const char c) const
Test for separator character.
 
bool isDivision(const char c) const
Test for division character.
 
const char getDefaultSeparator() const
Get default separator character.
 
const char getDefaultEndOfLine() const
Get default end of line character.
 
char getLeftBracket() const
Get left bracket.
 
bool isSkipLine(const char c) const
Test for skip line character.
 
char getRightBracket() const
Get right bracket.
 
bool isWhiteSpace(const char c) const
Test for white space character.
 
General purpose equation class.
 
const std::string & getKey() const
Get key.
 
const std::string & getValue() const
Get value.
 
JEquation & setEquation(const JEquationFacet &facet)
Set this equation to its value.
 
JEquation()
Default constructor.
 
JEquation(const std::string &buffer, const JEquationFacet &facet)
Constructor.
 
std::string toString() const
Convert equation to string.
 
const char getSeparator() const
Get separator.
 
friend std::ostream & operator<<(std::ostream &out, const JEquation &equation)
Write equation to output stream.
 
static equation_type< T > make_equation(const std::string &key, const T &value)
Auxiliary method to create equation type.
 
JEquation & setEquation(const std::string &buffer, const JEquationFacet &facet)
Set equation.
 
friend std::istream & operator>>(std::istream &in, JEquation &equation)
Read equation from input stream.
 
JEquation(const std::string &key, const std::string &value)
Constructor.
 
static JEquation valueOf(const std::string &buffer, const JEquationFacet &facet)
Extract equation.
 
std::istream & ignore(std::istream &in) const
Ignore characters until next end of line.
 
std::istream & getline(std::istream &in, std::string &buffer) const
Read characters until next end of line.
 
Wrapper class around STL string class.
 
Auxiliary classes and methods for language specific functionality.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary data structure for equation.
 
equation_type(const std::string __key, const T &__value)
Constructor.
 
friend std::ostream & operator<<(std::ostream &out, const equation_type &equation)
Write equation to output stream.