PGROUTING  2.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
trsp/src/utils.h
Go to the documentation of this file.
1 
2 #ifndef UTILS_H
3 #define UTILS_H
4 
5 #include <string>
6 #include <map>
7 #include <vector>
8 #include <queue>
9 #include <iostream>
10 
11 
12 
13 
14 typedef std::vector<long> LongVector;
15 typedef std::vector<int> IntVector;
16 typedef std::vector<double> DoubleVector;
17 typedef std::vector<std::string> StringVector;
18 
19 
20 class StringOperation
21 {
22 
23 public:
24 
25  static std::string TRIMWHITESPACE(std::string strInput)
26  {
27  std::string strOut = strInput;
28  std::string strWht = " \f\n\r\t\v";
29 
30  strOut.erase(0,strOut.find_first_not_of(strWht));
31  strOut.erase(strOut.find_last_not_of(strWht) + 1);
32  return strOut;
33  };
34 };
35 
36 class StringTokenizer
37 {
38 public:
40  {
41  reset();
42  }
43 
44  void reset()
45  {
46  vecTokens.clear();
47  strInput = "";
48  }
49 
50  bool parse(std::string strInput, std::string chDelim)
51  {
52  size_t iStartPos = 0;
53  while(true)
54  {
55  size_t iPos = strInput.find(chDelim[0],iStartPos);
56  if(iPos != std::string::npos)
57  {
58  std::string strToken;
59  strToken = strInput.substr(iStartPos,iPos - iStartPos);
60  vecTokens.push_back(strToken);
61  iStartPos = iPos + 1;
62  }
63  else if(iPos == std::string::npos && strInput.length() > 0 )
64  {
65  std::string strToken;
66  strToken = strInput.substr(iStartPos, strInput.length() - iStartPos);
67  if(strToken.length() > 0)
68  vecTokens.push_back(strToken);
69  break;
70  }
71  else
72  break;
73 
74  }
75  return true;
76  }
77 
78  size_t getTokenCount()
79  {
80  return vecTokens.size();
81  }
82 
83  bool getToken(std::string& strToken, long iTokenIndex)
84  {
85  long lTokenCount = vecTokens.size();
86  if(iTokenIndex < 0 || iTokenIndex < lTokenCount)
87  {
88  strToken = vecTokens[iTokenIndex];
89  return true;
90  }
91  return false;
92  }
93 
94  bool getTokens(StringVector& vecTokensRef)
95  {
96  vecTokensRef = vecTokens;
97  return true;
98  }
99 
100 private:
101  std::string strInput;
103 
104 };
105 
106 #endif
bool getToken(std::string &strToken, long iTokenIndex)
bool parse(std::string strInput, std::string chDelim)
std::vector< long > LongVector
bool getTokens(StringVector &vecTokensRef)
std::vector< std::string > StringVector
std::vector< double > DoubleVector
std::vector< int > IntVector
std::vector< std::string > StringVector
static std::string TRIMWHITESPACE(std::string strInput)
size_t getTokenCount()