MCPcopy Create free account
hub / github.com/Xtra-Computing/thundersvm / parseFormat

Method parseFormat

src/thundersvm/util/log.cpp:1174–1236  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1172 }
1173
1174 char* DateTime::parseFormat(char* buf, std::size_t bufSz, const char* format, const struct tm* tInfo,
1175 std::size_t msec, const base::SubsecondPrecision* ssPrec) {
1176 const char* bufLim = buf + bufSz;
1177 for (; *format; ++format) {
1178 if (*format == base::consts::kFormatSpecifierChar) {
1179 switch (*++format) {
1180 case base::consts::kFormatSpecifierChar: // Escape
1181 break;
1182 case '\0': // End
1183 --format;
1184 break;
1185 case 'd': // Day
1186 buf = base::utils::Str::convertAndAddToBuff(tInfo->tm_mday, 2, buf, bufLim);
1187 continue;
1188 case 'a': // Day of week (short)
1189 buf = base::utils::Str::addToBuff(base::consts::kDaysAbbrev[tInfo->tm_wday], buf, bufLim);
1190 continue;
1191 case 'A': // Day of week (long)
1192 buf = base::utils::Str::addToBuff(base::consts::kDays[tInfo->tm_wday], buf, bufLim);
1193 continue;
1194 case 'M': // month
1195 buf = base::utils::Str::convertAndAddToBuff(tInfo->tm_mon + 1, 2, buf, bufLim);
1196 continue;
1197 case 'b': // month (short)
1198 buf = base::utils::Str::addToBuff(base::consts::kMonthsAbbrev[tInfo->tm_mon], buf, bufLim);
1199 continue;
1200 case 'B': // month (long)
1201 buf = base::utils::Str::addToBuff(base::consts::kMonths[tInfo->tm_mon], buf, bufLim);
1202 continue;
1203 case 'y': // year (two digits)
1204 buf = base::utils::Str::convertAndAddToBuff(tInfo->tm_year + base::consts::kYearBase, 2, buf, bufLim);
1205 continue;
1206 case 'Y': // year (four digits)
1207 buf = base::utils::Str::convertAndAddToBuff(tInfo->tm_year + base::consts::kYearBase, 4, buf, bufLim);
1208 continue;
1209 case 'h': // hour (12-hour)
1210 buf = base::utils::Str::convertAndAddToBuff(tInfo->tm_hour % 12, 2, buf, bufLim);
1211 continue;
1212 case 'H': // hour (24-hour)
1213 buf = base::utils::Str::convertAndAddToBuff(tInfo->tm_hour, 2, buf, bufLim);
1214 continue;
1215 case 'm': // minute
1216 buf = base::utils::Str::convertAndAddToBuff(tInfo->tm_min, 2, buf, bufLim);
1217 continue;
1218 case 's': // second
1219 buf = base::utils::Str::convertAndAddToBuff(tInfo->tm_sec, 2, buf, bufLim);
1220 continue;
1221 case 'z': // subsecond part
1222 case 'g':
1223 buf = base::utils::Str::convertAndAddToBuff(msec, ssPrec->m_width, buf, bufLim);
1224 continue;
1225 case 'F': // AM/PM
1226 buf = base::utils::Str::addToBuff((tInfo->tm_hour >= 12) ? base::consts::kPm : base::consts::kAm, buf, bufLim);
1227 continue;
1228 default:
1229 continue;
1230 }
1231 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected