4#include <initializer_list>
7#include "libxr_def.hpp"
8#include "libxr_type.hpp"
21 std::initializer_list<const char*> aliases;
37 (RegisterAliases(
entries), ...);
53 return ErrorCode::FAILED;
64 T*
Find(std::initializer_list<const char*> aliases)
const
66 for (
const auto&
alias : aliases)
80 T*
FindOrExit(std::initializer_list<const char*> aliases)
const
97 RegisterAliases(
entry);
110 template <
typename T>
116 alias,
static_cast<void*
>(&
entry.object), TypeID::GetID<T>()};
164 return ErrorCode::OK;
virtual void OnMonitor()=0
周期性任务 / Periodic update
void MonitorAll()
调用所有模块的 OnMonitor
void Register(Application &app)
注册一个应用模块
LibXR::List app_list_
模块链表 / Module list
T * FindOrExit(std::initializer_list< const char * > aliases) const
T * Find(std::initializer_list< const char * > aliases) const
void Register(const Entry< T > &entry)
手动注册一个设备条目(及其别名)
constexpr HardwareContainer(Entries &&... entries)
T * Find(const char *alias) const
数据节点模板,继承自 BaseNode,用于存储具体数据类型。 Template data node that inherits from BaseNode to store specific data...
链表实现,用于存储和管理数据节点。 A linked list implementation for storing and managing data nodes.
uint32_t Size() noexcept
获取链表中的节点数量。 Gets the number of nodes in the linked list.
void Add(BaseNode &data)
向链表添加一个节点。 Adds a node to the linked list.
ErrorCode Foreach(Func func)
遍历链表中的每个节点,并应用回调函数。 Iterates over each node in the list and applies a callback function.
LibXR Color Control Library / LibXR终端颜色控制库
constexpr auto min(T1 a, T2 b) -> typename std::common_type< T1, T2 >::type
计算两个数的最小值