1 #include "timeparse.hpp"
6 #define MAXTIME 0xFFFFFFFFFFFFFFFFULL
8 uint64_t parse_timespec(const std::string
& str
)
12 for(int i
= 0; str
[i
]; i
++) {
13 if(isdigit((unsigned char)str
[i
])) {
18 uint64_t num
= str
[i
] - '0';
19 if((MAXTIME
- num
) / 10 < value
)
21 value
= 10 * value
+ num
;
22 } else if(str
[i
] == '.') {
31 if(MAXTIME
/ scale
< value
)
38 std::stringstream str_err
;
39 str_err
<< "Bad timespec: " << str
;
40 throw std::runtime_error(str_err
.str());