iipsrv 1.2
iipsrv is an advanced high-performance feature-rich image server for web-based streamed viewing and zooming of ultra high-resolution images
Tokenizer.h
1/*
2 Simple String Tokenizer Class
3
4 Copyright (C) 2000-2013 Ruven Pillay.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software Foundation,
18 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19*/
20
21
22#ifndef _TOKENIZER_H
23#define _TOKENIZER_H
24
25#include <string>
26
27
29
31
32 private:
33 std::string arg;
34 std::string delim;
35 std::string _nextToken();
36
37 public:
38
40
43 Tokenizer( const std::string& s, const std::string& d );
44
46 std::string nextToken();
47
49 int hasMoreTokens();
50
51};
52
53
54
55inline Tokenizer::Tokenizer( const std::string& s, const std::string& t )
56{
57 arg = s;
58 delim = t;
59}
60
61
62
63inline std::string Tokenizer::_nextToken()
64{
65 int n;
66 std::string result;
67
68 n = arg.find( delim );
69
70 // No token in string, so return original
71 if( n < 0 ){
72 result = arg;
73 arg = std::string();
74 }
75 else{
76 result = arg.substr( 0, n );
77 arg = arg.substr( n + delim.length(), arg.length() );
78 }
79
80 return result;
81}
82
83
84
85inline std::string Tokenizer::nextToken()
86{
87 std::string result;
88 do{
89 result = _nextToken();
90 }
91 while( result.empty() && !arg.empty() );
92
93 return result;
94
95}
96
97
99{
100 int n = arg.find_first_not_of( delim, 0 );
101 if( n >= 0 ) return 1;
102 else return 0;
103}
104
105
106
107#endif
Simple utility class to split a string into tokens.
Definition: Tokenizer.h:30
std::string nextToken()
Return the next token.
Definition: Tokenizer.h:85
int hasMoreTokens()
Indicate whether there are any tokens remaining.
Definition: Tokenizer.h:98
Tokenizer(const std::string &s, const std::string &d)
Constructor.
Definition: Tokenizer.h:55