20 while(ret.empty() && std::getline(In,line)){
21 std::istringstream Istr(line);
24 if(!token.empty() && token[0] !=
'#')
25 ret.assign(line.substr(0,line.find(
"#"));
32 const std::string &etag)
34 std::ostringstream Ostr;
36 while(std::getline(In,line) && ret.empty()){
37 std::istringstream Istr(line);
43 else if (token[0] !=
'#'){
44 if(!Ostr.str().empty())
52 int String2Buf(
const std::string &instr,
void **buf)
56 int rval = instr.size();
57 *buf =
new char [rval];
58 void *resl = std::memcpy(*buf,instr.c_str(),rval);
64 void Trim(std::string &instr,
bool preserve_newline)
66 std::istringstream Istr(instr);
68 std::ostringstream Ostr;
69 while(std::getline(Istr,line)){
70 std::istringstream Line(line);
83 const std::string
Trimmed(
const std::string &instr,
bool preserve_newline)
85 std::istringstream Istr(instr);
87 std::ostringstream Ostr;
88 while(std::getline(Istr,line)){
89 std::istringstream Line(line);
106 std::string::size_type
x = pname.find(
"/");
107 if(x == std::string::npos)
109 return(pname.substr(pname.find_last_of(
"/")+1));
113 TokenizeString(std::vector<std::string> &tokens,
const std::string &source)
116 std::istringstream Istr(source);
119 tokens.push_back(token);
123 TokenizeString(std::vector<std::string> &tokens,
const std::string &source,
const char delim)
126 std::string::size_type ssize = source.size();
127 std::string::size_type x = 0;
128 std::ostringstream Ostr;
131 if(source[x] != delim)
133 if((source[x] == delim) || (x == (ssize-1))){
134 tokens.push_back(token);
141 int OpenFile(std::ifstream &Inf,
const std::string &filename)
143 Inf.open(filename.c_str());
151 Vectorize(std::vector<std::string> &retVal,
const char **in)
155 retVal.push_back(in[i++]);
159 Vectorize(std::vector<std::string> &retVal,
const char **in,
int n)
164 while((in[i] != NULL) && i < n)
165 retVal.push_back(in[i++]);
void Trim(std::string &instr, bool preserve_newline=false)
Creates space delimited tokens in place.
void TokenizeString(std::vector< std::string > &tokens, const std::string &source)
Tokenize string.
int OpenFile(std::ifstream &Inf, const std::string &filename)
File opener.
void Vectorize(std::vector< std::string > &retVal, const char **in)
std::string GetNextContent(std::istream &In)
Defines MPI-specific parallel global and program classes.
void const size_t const size_t const size_t const double const double * x
const std::string Trimmed(const std::string &instr, bool preserve_newline=false)
Returns space delimited tokens.
int String2Buf(const std::string &instr, void **buf)
const std::string stripdirs(const std::string &pname)
Strip absolute path.
void GetContentUntil(std::istream &In, std::string ret, const std::string &etag)