16 float x_min,
float x_max,
float row_h)
21 std::vector<EntrySpec> entrys {
24 .reader = [
name] {
return name.empty() ?
"(unnamed)" :
name; },
34 .reader = [routine] {
return routine->is_active() ?
"true" :
"false"; },
48 surface, cursor, x_min, x_max, row_h,
false);
51 result.
group = std::move(group);
58 float x_min,
float x_max,
float row_h)
64 const std::vector<EntrySpec> root_entrys {
75 auto root_group =
make_entry_group(root_entrys,
"TaskScheduler", std::move(hbuf), rbufs,
76 surface, cursor, x_min, x_max, row_h,
true);
79 result.
group = std::move(root_group);
82 for (
const auto& entry :
tasks) {
87 entry, surface, cursor,
91 result.
children.push_back(std::move(task_result));
101 float x_min,
float x_max,
float row_h)
103 const std::string header_label =
"TaskScheduler ["
108 surface, cursor, x_min, x_max, row_h,
true);
111 result.
group = std::move(root_group);
114 for (
const auto& entry : all) {
117 if (entry.routine->get_processing_token() != token)
121 entry, surface, cursor,
122 x_min, x_max, row_h);
124 result.group.header.attach(surface.
layer(), task_result.group.header.header_id);
125 result.children.push_back(std::move(task_result));
const std::vector< TaskEntry > & get_all_tasks()
Get all tasks for inspection/debugging.
constexpr std::string_view enum_to_string(EnumType value) noexcept
Universal enum to string converter using magic_enum (original case)
std::string short_dynamic_type_name(const T &obj) noexcept
Returns the unqualified dynamic type name of obj.
A single entry to display in a EntryGroup body row.
std::shared_ptr< Routine > routine