summaryrefslogtreecommitdiff
path: root/util/text.h
diff options
context:
space:
mode:
Diffstat (limited to 'util/text.h')
-rw-r--r--util/text.h45
1 files changed, 23 insertions, 22 deletions
diff --git a/util/text.h b/util/text.h
index 3b311fa4ff4..fc2da214097 100644
--- a/util/text.h
+++ b/util/text.h
@@ -33,57 +33,57 @@
#pragma once
namespace mongo {
-
+
class StringSplitter {
public:
- /** @param big the string to be split
+ /** @param big the string to be split
@param splitter the delimiter
*/
StringSplitter( const char * big , const char * splitter )
- : _big( big ) , _splitter( splitter ){
+ : _big( big ) , _splitter( splitter ) {
}
/** @return true if more to be taken via next() */
- bool more(){
+ bool more() {
return _big[0];
}
/** get next split string fragment */
- string next(){
+ string next() {
const char * foo = strstr( _big , _splitter );
- if ( foo ){
+ if ( foo ) {
string s( _big , foo - _big );
_big = foo + 1;
while ( *_big && strstr( _big , _splitter ) == _big )
_big++;
return s;
}
-
+
string s = _big;
_big += strlen( _big );
return s;
}
-
- void split( vector<string>& l ){
- while ( more() ){
+
+ void split( vector<string>& l ) {
+ while ( more() ) {
l.push_back( next() );
}
}
-
- vector<string> split(){
+
+ vector<string> split() {
vector<string> l;
split( l );
return l;
}
- static vector<string> split( const string& big , const string& splitter ){
+ static vector<string> split( const string& big , const string& splitter ) {
StringSplitter ss( big.c_str() , splitter.c_str() );
return ss.split();
}
- static string join( vector<string>& l , const string& split ){
+ static string join( vector<string>& l , const string& split ) {
stringstream ss;
- for ( unsigned i=0; i<l.size(); i++ ){
+ for ( unsigned i=0; i<l.size(); i++ ) {
if ( i > 0 )
ss << split;
ss << l[i];
@@ -95,20 +95,20 @@ namespace mongo {
const char * _big;
const char * _splitter;
};
-
+
/* This doesn't defend against ALL bad UTF8, but it will guarantee that the
* string can be converted to sequence of codepoints. However, it doesn't
* guarantee that the codepoints are valid.
*/
bool isValidUTF8(const char *s);
- inline bool isValidUTF8(string s) { return isValidUTF8(s.c_str()); }
+ inline bool isValidUTF8(string s) { return isValidUTF8(s.c_str()); }
#if defined(_WIN32)
std::string toUtf8String(const std::wstring& wide);
std::wstring toWideString(const char *s);
-
+
/* like toWideString but UNICODE macro sensitive */
# if !defined(_UNICODE)
#error temp error
@@ -116,9 +116,9 @@ namespace mongo {
# else
inline std::wstring toNativeString(const char *s) { return toWideString(s); }
# endif
-
+
#endif
-
+
// expect that n contains a base ten number and nothing else after it
// NOTE win version hasn't been tested directly
inline long long parseLL( const char *n ) {
@@ -129,11 +129,12 @@ namespace mongo {
errno = 0;
ret = strtoll( n, &endPtr, 10 );
uassert( 13305, "could not convert string to long long", *endPtr == 0 && errno == 0 );
-#elif _MSC_VER>=1600 // 1600 is VS2k10 1500 is VS2k8
+#elif _MSC_VER>=1600 // 1600 is VS2k10 1500 is VS2k8
size_t endLen = 0;
try {
ret = stoll( n, &endLen, 10 );
- } catch ( ... ) {
+ }
+ catch ( ... ) {
endLen = 0;
}
uassert( 13306, "could not convert string to long long", endLen != 0 && n[ endLen ] == 0 );