MCPcopy Create free account
hub / github.com/apache/nifi-minifi-cpp / StringToTime

Function StringToTime

libminifi/include/utils/ValueParser.h:161–217  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

159
160template<typename Out>
161bool StringToTime(const std::string& input, Out& output, core::TimeUnit& timeunit) {
162 if (input.size() == 0) {
163 return false;
164 }
165
166 const char* begin = input.c_str();
167 char *end;
168 errno = 0;
169 auto ival = std::strtoll(begin, &end, 0);
170 if (end == begin || errno == ERANGE) {
171 return false;
172 }
173
174 if (end[0] == '\0') {
175 return false;
176 }
177
178 while (*end == ' ') {
179 // Skip the space
180 end++;
181 }
182
183 std::string unit(end);
184 std::transform(unit.begin(), unit.end(), unit.begin(), ::tolower);
185
186 if (unit == "ns" || unit == "nano" || unit == "nanos" || unit == "nanoseconds") {
187 timeunit = core::TimeUnit::NANOSECOND;
188 output = ival;
189 return true;
190 } else if (unit == "us" || unit == "micro" || unit == "micros" || unit == "microseconds" || unit == "microsecond") {
191 timeunit = core::TimeUnit::MICROSECOND;
192 output = ival;
193 return true;
194 } else if (unit == "msec" || unit == "ms" || unit == "millisecond" || unit == "milliseconds" || unit == "msecs" || unit == "millis" || unit == "milli") {
195 timeunit = core::TimeUnit::MILLISECOND;
196 output = ival;
197 return true;
198 } else if (unit == "sec" || unit == "s" || unit == "second" || unit == "seconds" || unit == "secs") {
199 timeunit = core::TimeUnit::SECOND;
200 output = ival;
201 return true;
202 } else if (unit == "min" || unit == "m" || unit == "mins" || unit == "minute" || unit == "minutes") {
203 timeunit = core::TimeUnit::MINUTE;
204 output = ival;
205 return true;
206 } else if (unit == "h" || unit == "hr" || unit == "hour" || unit == "hrs" || unit == "hours") {
207 timeunit = core::TimeUnit::HOUR;
208 output = ival;
209 return true;
210 } else if (unit == "d" || unit == "day" || unit == "days") {
211 timeunit = core::TimeUnit::DAY;
212 output = ival;
213 return true;
214 } else {
215 return false;
216 }
217}
218} /* namespace internal */

Callers 15

checkTimeValueFunction · 0.85
onEnableMethod · 0.85
parseConnectionYamlMethod · 0.85
configureMethod · 0.85
FlowControlProtocolMethod · 0.85
StringToTimeMethod · 0.85
getTimeMSFromStringMethod · 0.85
TimePeriodValueMethod · 0.85

Calls 4

c_strMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by 1

checkTimeValueFunction · 0.68