1#ifndef __JLANG__JLANGTOOLKIT__ 
    2#define __JLANG__JLANGTOOLKIT__ 
   18namespace JPP { 
using namespace JLANG; }
 
   31  template<
class T, 
size_t N>
 
   45  template<
class JFirst_t, 
class JSecond_t>
 
   48    return (
void*) &first == (
void*) &second;
 
 
   62    for (string::const_iterator i = buffer. begin(); i != buffer.end(); ++i) {
 
   68    return !buffer.empty();
 
 
   79  inline std::string 
trim(
const std::string& buffer)
 
   83    string::const_iterator         p = buffer. begin();
 
   84    string::const_reverse_iterator q = buffer.rbegin();
 
   86    while (p != q.base() && isspace(*p)) { ++p; }
 
   87    while (p != q.base() && isspace(*q)) { ++q; }
 
   89    return string(p,q.base());
 
 
  101  inline std::string 
trim(
const std::string& buffer, 
const char c)
 
  105    string::const_iterator         p = buffer. begin();
 
  106    string::const_reverse_iterator q = buffer.rbegin();
 
  108    while (p != q.base() && *p == c) { ++p; }
 
  109    while (p != q.base() && *q == c) { ++q; }
 
  111    return string(p,q.base());
 
 
  124  inline std::string 
replace(
const std::string& input, 
const std::string& target, 
const std::string& replacement)
 
  128    string buffer = input;
 
  130    for (
size_t i = buffer.find(target); i != string::npos; i = buffer.find(target,i)) {
 
  131      buffer.replace(buffer.begin() + i, buffer.begin() + i + target.length(), replacement);
 
 
  147  inline std::string 
replace(
const std::string& input, 
const char target, 
const std::string& replacement)
 
  149    return replace(input, std::string(1, target), replacement);
 
 
  162  inline std::string 
replace(
const std::string& input, 
const char target, 
const char replacement)
 
  166    string buffer = input;
 
  168    for (string::iterator i = buffer.begin(); i != buffer.end(); ++i) {
 
 
  186  inline std::string 
trim(
const std::string& buffer, 
const std::string& target)
 
  190    string::const_iterator         p = buffer. begin();
 
  191    string::const_reverse_iterator q = buffer.rbegin();
 
  193    while (p != q.base() && target.find(*p) != string::npos) { ++p; }
 
  194    while (p != q.base() && target.find(*q) != string::npos) { ++q; }
 
  196    return string(p,q.base());
 
 
  232    istringstream(input) >> value;
 
 
  244  inline std::string 
to_upper(
const std::string& value)
 
  248    string buffer(value);
 
  250    for (string::iterator i = buffer.begin(); i != buffer.end(); ++i) {
 
 
  264  inline std::string 
to_lower(
const std::string& value)
 
  268    string buffer(value);
 
  270    for (string::iterator i = buffer.begin(); i != buffer.end(); ++i) {
 
 
  288    istringstream is(buffer);
 
  290    return distance(istream_iterator<string>(is), istream_iterator<string>());
 
 
  302    return (value.size() > 1  &&  *value.begin() == 
'\''  &&  *value.rbegin() == 
'\'');
 
 
  314    return (value.size() > 1  &&  *value.begin() == 
'\"'  &&  *value.rbegin() == 
'\"');
 
 
  327      return "\'" + value + 
"\'";
 
 
  342      return "\"" + value + 
"\"";
 
 
Auxiliary classes and methods for language specific functionality.
 
bool is_integer(const std::string &buffer)
Check if string is an integer.
 
std::string to_upper(const std::string &value)
Convert all character to upper case.
 
bool is_identical(JFirst_t &first, JSecond_t &second)
Check if two objects are indentical.
 
size_t get_number_of_tokens(const std::string &buffer)
Count number of white space separated tokens.
 
std::string to_lower(const std::string &value)
Convert all character to lower case.
 
std::string to_string(const T &value)
Convert value to string.
 
size_t getSize(T(&array)[N])
Get size of c-array.
 
T to_value(const std::string &input)
Convert string to value.
 
std::string single_quote(const std::string &value)
Quote string.
 
std::string replace(const std::string &input, const std::string &target, const std::string &replacement)
Replace tokens in string.
 
std::string trim(const std::string &buffer)
Trim string.
 
std::string double_quote(const std::string &value)
Quote string.
 
bool is_double_quoted(const std::string &value)
Check quotation.
 
bool is_single_quoted(const std::string &value)
Check quotation.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).