Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::string_token_iterator Struct Reference

#include <OSGBaseFunctions.h>

List of all members.

Public Member Functions

 string_token_iterator ()
 string_token_iterator (const std::string &str_, const char *separator_=" ")
 string_token_iterator (const string_token_iterator &rhs)
string_token_iteratoroperator++ ()
string_token_iterator operator++ (int)
std::string operator * () const
bool operator== (const string_token_iterator &rhs) const
bool operator!= (const string_token_iterator &rhs) const

Private Member Functions

void find_next (void)

Private Attributes

const char * _separator
const std::string * _str
std::string::size_type _start
std::string::size_type _end


Detailed Description

Definition at line 451 of file OSGBaseFunctions.h.


Constructor & Destructor Documentation

string_token_iterator::string_token_iterator const std::string &  str_,
const char *  separator_ = " "
 

Definition at line 398 of file OSGBaseFunctions.cpp.

References find_next().

00399                                                                            :
00400         _separator(separator),
00401         _str(&str),
00402         _end(0)
00403 {
00404     find_next();
00405 }
  

string_token_iterator::string_token_iterator const string_token_iterator rhs  ) 
 

Definition at line 407 of file OSGBaseFunctions.cpp.

00407                                                                               :
00408         _separator(rhs._separator),
00409         _str(rhs._str),
00410         _start(rhs._start),
00411         _end(rhs._end)
00412 {
00413 }


Member Function Documentation

string_token_iterator & string_token_iterator::operator++  ) 
 

Definition at line 415 of file OSGBaseFunctions.cpp.

References find_next().

00416 {
00417     find_next();
00418     return *this;
00419 }

string_token_iterator string_token_iterator::operator++ int   ) 
 

Definition at line 421 of file OSGBaseFunctions.cpp.

00422 {
00423     string_token_iterator temp(*this);
00424     ++(*this);
00425     return temp;
00426 }

std::string string_token_iterator::operator *  )  const
 

Definition at line 428 of file OSGBaseFunctions.cpp.

References _end, _start, and _str.

00429 {
00430     return std::string(*_str, _start, _end - _start);
00431 }

bool string_token_iterator::operator== const string_token_iterator rhs  )  const
 

Definition at line 433 of file OSGBaseFunctions.cpp.

References _end, _start, and _str.

00434 {
00435     return (rhs._str == _str && rhs._start == _start && rhs._end == _end);
00436 }

bool string_token_iterator::operator!= const string_token_iterator rhs  )  const
 

Definition at line 438 of file OSGBaseFunctions.cpp.

00439 {
00440     return !(rhs == *this);
00441 }

void string_token_iterator::find_next void   )  [private]
 

Definition at line 443 of file OSGBaseFunctions.cpp.

References _end, _separator, _start, and _str.

Referenced by operator++(), and string_token_iterator().

00444 {
00445     _start = _str->find_first_not_of(_separator, _end);
00446     // Apparently some STL implementations don't do npos !?!
00447     if(_start == std::string::npos || _start >= _str->length())
00448     {
00449         _start = _end = 0;
00450         _str = 0;
00451         return;
00452     }
00453 
00454     _end = _str->find_first_of(_separator, _start);
00455 }


Member Data Documentation

const char* osg::string_token_iterator::_separator [private]
 

Definition at line 480 of file OSGBaseFunctions.h.

Referenced by find_next().

const std::string* osg::string_token_iterator::_str [private]
 

Definition at line 481 of file OSGBaseFunctions.h.

Referenced by find_next(), operator *(), and operator==().

std::string::size_type osg::string_token_iterator::_start [private]
 

Definition at line 482 of file OSGBaseFunctions.h.

Referenced by find_next(), operator *(), and operator==().

std::string::size_type osg::string_token_iterator::_end [private]
 

Definition at line 483 of file OSGBaseFunctions.h.

Referenced by find_next(), operator *(), and operator==().


The documentation for this struct was generated from the following files:
Generated on Thu Aug 25 04:12:32 2005 for OpenSG by  doxygen 1.4.3