4 #include "Exceptions.hpp"
6 inline static bool IsSpace( char c
)
11 inline static bool IsNotSpace( char c
)
16 inline static bool IsSlash( char c
)
21 inline static bool IsNotSlash( char c
)
26 inline static bool IsComma( char c
)
31 inline static bool IsNotComma( char c
)
36 PathVector
SplitPath( const std::string
& str
)
40 typedef std::string::const_iterator Iter
;
42 Iter i
= str
.begin(), j
;
44 while( i
!= str
.end() )
46 i
= std::find_if( i
, str
.end(), IsNotSlash
);
47 j
= std::find_if( i
, str
.end(), IsSlash
);
51 ret
.push_back( std::string( i
, j
) );
60 PortVector
SplitPort( const std::string
& str
)
64 typedef std::string::const_iterator Iter
;
66 Iter i
= str
.begin(), j
;
68 while( i
!= str
.end() )
70 i
= std::find_if( i
, str
.end(), IsNotComma
);
71 j
= std::find_if( i
, str
.end(), IsComma
);
75 ret
.push_back( std::string( i
, j
) );
84 Command
Split( const std::string
& str
)
88 typedef std::string::const_iterator Iter
;
90 Iter i
= str
.begin(), j
;
92 while( i
!= str
.end() )
94 i
= std::find_if( i
, str
.end(), IsNotSpace
);
95 j
= std::find_if( i
, str
.end(), IsSpace
);
99 ret
.push_back( std::string( i
, j
) );
108 Command
ParseCommand( const std::string
& cmd
)
110 Command
ret( Split( cmd
) );
112 if( cmd
.size() == 0 )
114 throw SyntaxErrorException
;
122 void ToUpper( std::string
& str
)
124 std::transform( str
.begin(), str
.end(), str
.begin(), toupper
);