tin  1.5.9
tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups > Struct Template Reference

#include <resources.h>

Collaboration diagram for tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >:
Collaboration graph

Public Types

using runtime_type = Runtime
 
using events = typename Runtime::events
 
using event_list = tsm::detail::as_type_list_t< events >
 
using task_summary = task_resources< Runtime >
 

Static Public Member Functions

static consteval resource_snapshot snapshot ()
 
static consteval bool fits_within (resource_budget const &budget)
 

Static Public Attributes

static constexpr std::size_t max_event_bytes
 
static constexpr std::size_t max_event_alignment
 
static constexpr std::size_t queue_slots
 
static constexpr std::size_t delayed_event_timer_slots = TimerSlots
 
static constexpr std::size_t task_count = task_summary::task_count
 
static constexpr std::size_t task_group_count
 
static constexpr std::size_t task_group_entry_count
 
static constexpr std::size_t task_arena_bytes = task_summary::arena_bytes
 
static constexpr std::size_t task_timer_slots = task_summary::timer_slots
 
static constexpr bool uses_heap = false
 

Detailed Description

template<typename Runtime, std::size_t TimerSlots = 0U, typename... Groups>
struct tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >

Compile-time resource summary for one runtime.

timer_slots is supplied by the caller because delayed-event timers are an adapter choice around a runtime. Coroutine task timers are reported through task_resources.

Member Typedef Documentation

◆ event_list

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
using tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::event_list = tsm::detail::as_type_list_t<events>

◆ events

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
using tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::events = typename Runtime::events

◆ runtime_type

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
using tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::runtime_type = Runtime

◆ task_summary

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
using tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::task_summary = task_resources<Runtime>

Member Function Documentation

◆ fits_within()

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
static consteval bool tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::fits_within ( resource_budget const &  budget)
inlinestatic

◆ snapshot()

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
static consteval resource_snapshot tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::snapshot ( )
inlinestatic

Member Data Documentation

◆ delayed_event_timer_slots

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
constexpr std::size_t tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::delayed_event_timer_slots = TimerSlots
staticconstexpr

◆ max_event_alignment

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
constexpr std::size_t tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::max_event_alignment
staticconstexpr
Initial value:
=
consteval std::size_t max_alignof(type_list< T, Ts... >)
Definition: type_list.h:146
tsm::detail::as_type_list_t< events > event_list
Definition: resources.h:99

◆ max_event_bytes

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
constexpr std::size_t tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::max_event_bytes
staticconstexpr
Initial value:
=
consteval std::size_t max_sizeof(type_list< T, Ts... >)
Definition: type_list.h:134

◆ queue_slots

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
constexpr std::size_t tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::queue_slots
staticconstexpr
Initial value:
=
detail::storage_capacity<typename Runtime::policy::storage>::value

◆ task_arena_bytes

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
constexpr std::size_t tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::task_arena_bytes = task_summary::arena_bytes
staticconstexpr

◆ task_count

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
constexpr std::size_t tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::task_count = task_summary::task_count
staticconstexpr

◆ task_group_count

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
constexpr std::size_t tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::task_group_count
staticconstexpr
Initial value:
=
task_group_resources<Groups...>::group_count

◆ task_group_entry_count

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
constexpr std::size_t tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::task_group_entry_count
staticconstexpr
Initial value:
=
task_group_resources<Groups...>::entry_count

◆ task_timer_slots

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
constexpr std::size_t tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::task_timer_slots = task_summary::timer_slots
staticconstexpr

◆ uses_heap

template<typename Runtime , std::size_t TimerSlots = 0U, typename... Groups>
constexpr bool tsm::runtime::runtime_resources< Runtime, TimerSlots, Groups >::uses_heap = false
staticconstexpr

The documentation for this struct was generated from the following file: