1#ifndef __JLANG__JSTRINGFACET__ 
    2#define __JLANG__JSTRINGFACET__ 
   17namespace JPP { 
using namespace JLANG; }
 
   27    public std::locale::facet
 
   31    static std::locale::id  
id;
 
   45      std::locale::facet(refs)
 
 
   72                            const std::ios_base&      format,
 
   73                            std::ios_base::iostate&   result,
 
   74                            std::string&              buffer)
 const 
   76      return do_get(__begin, __end, format, result, buffer);
 
 
   90                            const std::ios_base& format,
 
   92                            const std::string&   buffer)
 const 
   94      return do_put(out, format, c, buffer);
 
 
  104    inline std::istream& 
ignore(std::istream& in)
 const 
  107        in.setstate(std::ios_base::eofbit);
 
 
  121    inline std::istream& 
getline(std::istream& in, 
 
  122                                 std::string&  buffer)
 const 
  126      ios_base::iostate state = in.rdstate();
 
  129        in.setstate(std::ios_base::eofbit);
 
  132      if (state != ios_base::goodbit && state != ios_base::eofbit) {
 
 
  147      static int i = std::ios_base::xalloc();
 
 
  166                                       const std::ios_base&      format,
 
  167                                       std::ios_base::iostate&   result,
 
  168                                       std::string&              buffer)
 const 
  172      result = (ios_base::iostate) 0;  
 
  174      streamsize n = format.width();   
 
  177        n = numeric_limits<streamsize>::max();
 
  184        result |= ios_base::failbit;    
 
  185        result |= ios_base::eofbit;
 
  191        buffer.push_back(*i);
 
  193        for (++i, --n; i != __end && n != 0; ++i, --n) {
 
  194          buffer.push_back(*i);
 
  198          result |= ios_base::eofbit;
 
 
  216                                       const std::ios_base& format,
 
  218                                       const std::string&   buffer)
 const 
  222      if (format.flags() & ios_base::right) {
 
  223        for (streamsize i = buffer.size(); i < format.width(); ++i, ++out) {
 
  228      for (string::const_iterator i = buffer.begin(); i != buffer.end(); ++i, ++out) {
 
  232      if (format.flags() & ios_base::left) {
 
  233        for (streamsize i = buffer.size(); i < format.width(); ++i, ++out) {
 
 
  254      while (i != __end && *i != 
'\n') {
 
  258      while (i != __end && *i == 
'\n') {
 
 
  277                                           std::ios_base::iostate&   result,
 
  278                                           std::string&              buffer)
 const 
  286        result |= ios_base::failbit;    
 
  287        result |= ios_base::eofbit;
 
  293        for ( ; i != __end && *i != 
'\n'; ++i) {
 
  294          buffer.push_back(*i);
 
 
 
Facet class to specify parsing of a JLANG::JString object.
 
JStringFacet(const JStringFacet &)
 
virtual ostreambuf_iterator do_put(ostreambuf_iterator out, const std::ios_base &format, const char c, const std::string &buffer) const
Put string.
 
ostreambuf_iterator put(ostreambuf_iterator out, const std::ios_base &format, const char c, const std::string &buffer) const
Put string.
 
std::istream & ignore(std::istream &in) const
Ignore characters until next end of line.
 
static std::locale::id id
 
virtual JStringFacet * clone() const
Clone this facet.
 
istreambuf_iterator get(const istreambuf_iterator __begin, const istreambuf_iterator __end, const std::ios_base &format, std::ios_base::iostate &result, std::string &buffer) const
Get string.
 
static int getIndex()
Get index for stream associated facet data.
 
std::istream & getline(std::istream &in, std::string &buffer) const
Read characters until next end of line.
 
JStringFacet(std::size_t refs=0)
Constructor.
 
virtual istreambuf_iterator do_get(const istreambuf_iterator __begin, const istreambuf_iterator __end, const std::ios_base &format, std::ios_base::iostate &result, std::string &buffer) const
Get string.
 
std::istreambuf_iterator< char, std::char_traits< char > > istreambuf_iterator
 
std::ostreambuf_iterator< char, std::char_traits< char > > ostreambuf_iterator
 
virtual istreambuf_iterator do_ignore(const istreambuf_iterator __begin, const istreambuf_iterator __end) const
Ignore characters until next end of line.
 
void operator=(const JStringFacet &)
 
virtual istreambuf_iterator do_getline(const istreambuf_iterator __begin, const istreambuf_iterator __end, std::ios_base::iostate &result, std::string &buffer) const
Read string.
 
Auxiliary classes and methods for language specific functionality.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).