requires already sorted
| 505 | |
| 506 | // requires already sorted |
| 507 | inline std::vector<Simple_Event> sorted_create_grouped_simple_events(const std::vector<Simple_Event> &events) |
| 508 | { |
| 509 | std::vector<Simple_Event> result{}; |
| 510 | if (events.size() == 0) |
| 511 | return result; |
| 512 | result.push_back(events[0]); |
| 513 | unsigned int current_idx = 0; |
| 514 | |
| 515 | for (size_t i = 1; i < events.size(); i++) |
| 516 | { |
| 517 | if (result[current_idx].end_time >= events[i].start_time) |
| 518 | { |
| 519 | result[current_idx].end_time = std::max<std::chrono::high_resolution_clock::time_point>(result[current_idx].end_time, events[i].end_time); |
| 520 | } |
| 521 | else |
| 522 | { |
| 523 | result.push_back(events[i]); |
| 524 | current_idx++; |
| 525 | } |
| 526 | } |
| 527 | |
| 528 | for (auto &entry : result) |
| 529 | { |
| 530 | entry.duration = std::chrono::duration_cast<std::chrono::nanoseconds>(entry.end_time - entry.start_time).count(); |
| 531 | } |
| 532 | |
| 533 | return result; |
| 534 | } |
| 535 | |
| 536 | inline std::vector<Simple_Event> load_child_events_simple(const std::vector<Simple_Event> &parent_events_simple, |
| 537 | const std::unordered_map<int_fast64_t, const Event *> &events_map, const std::unordered_map<int_fast64_t, std::vector<int_fast64_t>> &child_graph) |
no outgoing calls
no test coverage detected