Go to the documentation of this file.Go to the SVN repository for this file.
41 while (*input_string ==
' ' || *input_string ==
'\t')
48 const char* config_param_name,
51 if (*init_string ==
'\0') {
53 "Configuration parameter '" << config_param_name <<
57 range_vector->clear();
59 const char* pos = init_string;
63 int* current_bound_ptr = &new_range.first;
64 bool reading_range =
false;
69 bool negative = *pos ==
'-' ? (++pos,
true) :
false;
71 unsigned number = (unsigned) (*pos -
'0');
75 "'" << config_param_name <<
76 "': not a number at position " << (pos - init_string + 1));
81 while ((digit = (
unsigned) (*++pos -
'0')) <= 9)
92 new_range.second = new_range.first;
93 range_vector->push_back(new_range);
97 current_bound_ptr = &new_range.first;
103 current_bound_ptr = &new_range.second;
108 "'" << config_param_name <<
109 "': invalid character at position " <<
110 (pos - init_string + 1));
CInvalidParamException –.
std::pair< int, int > TIntegerRange
std::vector< TIntegerRange > TRangeVector
const TRangeVector & Parse(const char *init_string, const char *config_param_name)
#define NCBI_THROW_FMT(exception_class, err_code, message)
The same as NCBI_THROW but with message processed as output to ostream.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
unsigned int
A callback function used to compare two keys in a database.
static const char * s_SkipSpaces(const char *input_string)