tin  1.5.9
concepts.h File Reference

Concepts for runtime queues and dispatch policies. More...

#include <concepts>
#include <cstddef>
#include <cstdint>
#include <utility>
#include "tsm/ticks.h"
Include dependency graph for concepts.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tsm::dispatch_context
 

Namespaces

 tsm
 
 tsm::dispatch_model
 
 tsm::overflow
 
 tsm::runtime
 
 tsm::runtime::topology
 
 tsm::runtime::overflow
 
 tsm::runtime::scheduler
 

Typedefs

using tsm::runtime::topology::direct_dispatch = ::tsm::dispatch_model::direct
 
using tsm::runtime::topology::composite_queue = ::tsm::dispatch_model::queued
 
using tsm::runtime::topology::per_region_queue = ::tsm::dispatch_model::per_region_queued
 
using tsm::runtime::overflow::reject_newest = ::tsm::overflow::reject_newest
 
using tsm::runtime::overflow::drop_oldest = ::tsm::overflow::drop_oldest
 
using tsm::runtime::overflow::overwrite_latest = ::tsm::overflow::overwrite_latest
 

Variables

template<typename DispatchModel >
concept tsm::dispatch_model_policy
 
template<typename Overflow >
concept tsm::overflow_policy
 
template<typename Queue , typename Event >
concept tsm::runtime::queue_storage
 
template<typename Storage , typename Event >
concept tsm::runtime::queue_storage_policy
 
template<typename Policy >
concept tsm::runtime::runtime_queue_policy
 
template<typename Sink , typename Event >
concept tsm::runtime::event_sink
 
template<typename Source , typename Event >
concept tsm::runtime::event_source
 
template<typename Runtime >
concept tsm::runtime::caller_driven_runtime
 
template<typename Executor >
concept tsm::runtime::executor_backend
 
template<typename Executor >
concept tsm::runtime::wake_executor_backend
 
template<typename Policy >
concept tsm::runtime::runtime_policy
 

Detailed Description

Concepts for runtime queues and dispatch policies.

Storage and adapter code can satisfy these contracts without inheriting from framework base classes. The runtime only asks for concrete operations: push/pop values, send events, receive events, and select dispatch policy tags.