Jpp  18.5.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | List of all members
JLANG::JStringFacet Class Reference

Facet class to specify parsing of a JLANG::JString object. More...

#include <JStringFacet.hh>

Inheritance diagram for JLANG::JStringFacet:
JLANG::JCppFacet JLANG::JEquationFacet

Public Types

typedef
std::istreambuf_iterator< char,
std::char_traits< char > > 
istreambuf_iterator
 
typedef
std::ostreambuf_iterator< char,
std::char_traits< char > > 
ostreambuf_iterator
 

Public Member Functions

 JStringFacet (std::size_t refs=0)
 Constructor. More...
 
virtual JStringFacetclone () const
 Clone this facet. More...
 
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. More...
 
ostreambuf_iterator put (ostreambuf_iterator out, const std::ios_base &format, const char c, const std::string &buffer) const
 Put string. More...
 
std::istream & ignore (std::istream &in) const
 Ignore characters until next end of line. More...
 
std::istream & getline (std::istream &in, std::string &buffer) const
 Read characters until next end of line. More...
 

Static Public Member Functions

static int getIndex ()
 Get index for stream associated facet data. More...
 

Static Public Attributes

static std::locale::id id
 

Protected Member Functions

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. More...
 
virtual ostreambuf_iterator do_put (ostreambuf_iterator out, const std::ios_base &format, const char c, const std::string &buffer) const
 Put string. More...
 
virtual istreambuf_iterator do_ignore (const istreambuf_iterator __begin, const istreambuf_iterator __end) const
 Ignore characters until next end of line. More...
 
virtual istreambuf_iterator do_getline (const istreambuf_iterator __begin, const istreambuf_iterator __end, std::ios_base::iostate &result, std::string &buffer) const
 Read string. More...
 

Private Member Functions

 JStringFacet (const JStringFacet &)
 
void operator= (const JStringFacet &)
 

Detailed Description

Facet class to specify parsing of a JLANG::JString object.

This class extends the std::locale::facet class.

Definition at line 26 of file JStringFacet.hh.

Member Typedef Documentation

typedef std::istreambuf_iterator<char, std::char_traits<char> > JLANG::JStringFacet::istreambuf_iterator

Definition at line 34 of file JStringFacet.hh.

typedef std::ostreambuf_iterator<char, std::char_traits<char> > JLANG::JStringFacet::ostreambuf_iterator

Definition at line 35 of file JStringFacet.hh.

Constructor & Destructor Documentation

JLANG::JStringFacet::JStringFacet ( std::size_t  refs = 0)
inline

Constructor.

Parameters
refsreference count

Definition at line 44 of file JStringFacet.hh.

44  :
45  std::locale::facet(refs)
46  {}
JLANG::JStringFacet::JStringFacet ( const JStringFacet )
private

Member Function Documentation

virtual JStringFacet* JLANG::JStringFacet::clone ( ) const
inlinevirtual

Clone this facet.

Returns
pointer to newly created facet

Reimplemented in JLANG::JEquationFacet, and JLANG::JCppFacet.

Definition at line 54 of file JStringFacet.hh.

55  {
56  return new JStringFacet();
57  }
JStringFacet(std::size_t refs=0)
Constructor.
Definition: JStringFacet.hh:44
istreambuf_iterator JLANG::JStringFacet::get ( const istreambuf_iterator  __begin,
const istreambuf_iterator  __end,
const std::ios_base &  format,
std::ios_base::iostate &  result,
std::string buffer 
) const
inline

Get string.

Parameters
__beginbegin position of input stream
__endend position of input stream
formatformat
resultstatus after input operation
bufferoutput string
Returns
position of input stream

Definition at line 70 of file JStringFacet.hh.

75  {
76  return do_get(__begin, __end, format, result, buffer);
77  }
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.
ostreambuf_iterator JLANG::JStringFacet::put ( ostreambuf_iterator  out,
const std::ios_base &  format,
const char  c,
const std::string buffer 
) const
inline

Put string.

Parameters
outbegin position of output stream
formatformat
cfill character
bufferinput string
Returns
position of output stream buffer

Definition at line 89 of file JStringFacet.hh.

93  {
94  return do_put(out, format, c, buffer);
95  }
$WORKDIR ev_configure_dqsimulator txt echo process $DQ_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DQ_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
virtual ostreambuf_iterator do_put(ostreambuf_iterator out, const std::ios_base &format, const char c, const std::string &buffer) const
Put string.
std::istream& JLANG::JStringFacet::ignore ( std::istream &  in) const
inline

Ignore characters until next end of line.

Parameters
ininput stream
Returns
input stream

Definition at line 104 of file JStringFacet.hh.

105  {
107  in.setstate(std::ios_base::eofbit);
108  }
109 
110  return in;
111  }
std::istreambuf_iterator< char, std::char_traits< char > > istreambuf_iterator
Definition: JStringFacet.hh:34
virtual istreambuf_iterator do_ignore(const istreambuf_iterator __begin, const istreambuf_iterator __end) const
Ignore characters until next end of line.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:48
std::istream& JLANG::JStringFacet::getline ( std::istream &  in,
std::string buffer 
) const
inline

Read characters until next end of line.

Parameters
ininput stream
bufferoutput string
Returns
input stream

Definition at line 121 of file JStringFacet.hh.

123  {
124  using namespace std;
125 
126  ios_base::iostate state = in.rdstate();
127 
128  if (do_getline(in, istreambuf_iterator(), state, buffer) == istreambuf_iterator()) {
129  in.setstate(std::ios_base::eofbit);
130  }
131 
132  if (state != ios_base::goodbit && state != ios_base::eofbit) {
133  in.setstate(state);
134  }
135 
136  return in;
137  }
std::istreambuf_iterator< char, std::char_traits< char > > istreambuf_iterator
Definition: JStringFacet.hh:34
virtual istreambuf_iterator do_getline(const istreambuf_iterator __begin, const istreambuf_iterator __end, std::ios_base::iostate &result, std::string &buffer) const
Read string.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:48
static int JLANG::JStringFacet::getIndex ( )
inlinestatic

Get index for stream associated facet data.

Returns
index

Definition at line 145 of file JStringFacet.hh.

146  {
147  static int i = std::ios_base::xalloc();
148 
149  return i;
150  }
virtual istreambuf_iterator JLANG::JStringFacet::do_get ( const istreambuf_iterator  __begin,
const istreambuf_iterator  __end,
const std::ios_base &  format,
std::ios_base::iostate &  result,
std::string buffer 
) const
inlineprotectedvirtual

Get string.

Parameters
__beginbegin position of input stream
__endend position of input stream
formatformat
resultstatus after input operation
bufferoutput string
Returns
position of input stream

Reimplemented in JLANG::JEquationFacet, and JLANG::JCppFacet.

Definition at line 164 of file JStringFacet.hh.

169  {
170  using namespace std;
171 
172  result = (ios_base::iostate) 0; // reset I/O status
173 
174  streamsize n = format.width(); // number of characters to read
175 
176  if (n == 0) {
177  n = numeric_limits<streamsize>::max();
178  }
179 
180  istreambuf_iterator i = __begin;
181 
182  if (i == __end) {
183 
184  result |= ios_base::failbit;
185  result |= ios_base::eofbit;
186 
187  } else {
188 
189  buffer.clear();
190 
191  buffer.push_back(*i);
192 
193  for (++i, --n; i != __end && n != 0; ++i, --n) {
194  buffer.push_back(*i);
195  }
196 
197  if (i == __end) {
198  result |= ios_base::eofbit;
199  }
200  }
201 
202  return i;
203  }
std::istreambuf_iterator< char, std::char_traits< char > > istreambuf_iterator
Definition: JStringFacet.hh:34
const int n
Definition: JPolint.hh:786
virtual ostreambuf_iterator JLANG::JStringFacet::do_put ( ostreambuf_iterator  out,
const std::ios_base &  format,
const char  c,
const std::string buffer 
) const
inlineprotectedvirtual

Put string.

Parameters
outbegin position of output stream
formatformat
cfill character
bufferinput string
Returns
current position of output stream

Reimplemented in JLANG::JEquationFacet, and JLANG::JCppFacet.

Definition at line 215 of file JStringFacet.hh.

219  {
220  using namespace std;
221 
222  if (format.flags() & ios_base::right) {
223  for (streamsize i = buffer.size(); i < format.width(); ++i, ++out) {
224  *out = c;
225  }
226  }
227 
228  for (string::const_iterator i = buffer.begin(); i != buffer.end(); ++i, ++out) {
229  *out = *i;
230  }
231 
232  if (format.flags() & ios_base::left) {
233  for (streamsize i = buffer.size(); i < format.width(); ++i, ++out) {
234  *out = c;
235  }
236  }
237 
238  return out;
239  }
$WORKDIR ev_configure_dqsimulator txt echo process $DQ_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DQ_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
virtual istreambuf_iterator JLANG::JStringFacet::do_ignore ( const istreambuf_iterator  __begin,
const istreambuf_iterator  __end 
) const
inlineprotectedvirtual

Ignore characters until next end of line.

Parameters
__beginbegin position of input stream
__endend position of input stream
Returns
position of input stream

Reimplemented in JLANG::JCppFacet.

Definition at line 249 of file JStringFacet.hh.

251  {
252  istreambuf_iterator i = __begin;
253 
254  while (i != __end && *i != '\n') {
255  ++i;
256  }
257 
258  while (i != __end && *i == '\n') {
259  ++i; // skip end of line(s)
260  }
261 
262  return i;
263  }
std::istreambuf_iterator< char, std::char_traits< char > > istreambuf_iterator
Definition: JStringFacet.hh:34
virtual istreambuf_iterator JLANG::JStringFacet::do_getline ( const istreambuf_iterator  __begin,
const istreambuf_iterator  __end,
std::ios_base::iostate &  result,
std::string buffer 
) const
inlineprotectedvirtual

Read string.

Parameters
__beginbegin position of input stream
__endend position of input stream
resultstatus after input operation
bufferoutput string
Returns
position of input stream

Reimplemented in JLANG::JEquationFacet.

Definition at line 275 of file JStringFacet.hh.

279  {
280  using namespace std;
281 
282  istreambuf_iterator i = __begin;
283 
284  if (i == __end) {
285 
286  result |= ios_base::failbit;
287  result |= ios_base::eofbit;
288 
289  } else {
290 
291  buffer.clear();
292 
293  for ( ; i != __end && *i != '\n'; ++i) {
294  buffer.push_back(*i);
295  }
296 
297  if (i != __end) {
298  ++i; // skip end of line
299  }
300  }
301 
302  return i;
303  }
std::istreambuf_iterator< char, std::char_traits< char > > istreambuf_iterator
Definition: JStringFacet.hh:34
void JLANG::JStringFacet::operator= ( const JStringFacet )
private

Member Data Documentation

std::locale::id JLANG::JStringFacet::id
static
Author
mdejong

Definition at line 31 of file JStringFacet.hh.


The documentation for this class was generated from the following files: