| 1456 | } |
| 1457 | |
| 1458 | void LogFormat::updateDateFormat(std::size_t index, base::type::string_t& currFormat) { |
| 1459 | if (hasFlag(base::FormatFlags::DateTime)) { |
| 1460 | index += ELPP_STRLEN(base::consts::kDateTimeFormatSpecifier); |
| 1461 | } |
| 1462 | const base::type::char_t* ptr = currFormat.c_str() + index; |
| 1463 | if ((currFormat.size() > index) && (ptr[0] == '{')) { |
| 1464 | // User has provided format for date/time |
| 1465 | ++ptr; |
| 1466 | int count = 1; // Start by 1 in order to remove starting brace |
| 1467 | std::stringstream ss; |
| 1468 | for (; *ptr; ++ptr, ++count) { |
| 1469 | if (*ptr == '}') { |
| 1470 | ++count; // In order to remove ending brace |
| 1471 | break; |
| 1472 | } |
| 1473 | ss << static_cast<char>(*ptr); |
| 1474 | } |
| 1475 | currFormat.erase(index, count); |
| 1476 | m_dateTimeFormat = ss.str(); |
| 1477 | } else { |
| 1478 | // No format provided, use default |
| 1479 | if (hasFlag(base::FormatFlags::DateTime)) { |
| 1480 | m_dateTimeFormat = std::string(base::consts::kDefaultDateTimeFormat); |
| 1481 | } |
| 1482 | } |
| 1483 | } |
| 1484 | |
| 1485 | void LogFormat::updateFormatSpec(void) { |
| 1486 | // Do not use switch over strongly typed enums because Intel C++ compilers dont support them yet. |