14 FlecsMetricsImport(world);
16 world.
entity<metrics::Instance>(
"::flecs::metrics::Instance");
17 world.
entity<metrics::Metric>(
"::flecs::metrics::Metric");
18 world.
entity<metrics::Counter>(
"::flecs::metrics::Metric::Counter");
19 world.
entity<metrics::CounterId>(
"::flecs::metrics::Metric::CounterId");
20 world.
entity<metrics::CounterIncrement>(
"::flecs::metrics::Metric::CounterIncrement");
21 world.
entity<metrics::Gauge>(
"::flecs::metrics::Metric::Gauge");
24inline metric_builder::~metric_builder() {
30inline metric_builder& metric_builder::member(
const char *name) {
45inline metric_builder& metric_builder::member(
const char *name) {
47 flecs::entity_t m = e.
lookup(name);
50 name, e.path().c_str());
56inline metric_builder& metric_builder::dotmember(
const char *expr) {
57 m_desc.dotmember = expr;
62inline metric_builder& metric_builder::dotmember(
const char *expr) {
63 m_desc.dotmember = expr;
64 m_desc.
id = _::cpp_type<T>::id(m_world);
72 m_desc.entity = result;
79template <
typename... Args>
85template <
typename Kind>
86inline untyped_component& untyped_component::metric(
87 flecs::entity_t parent,
89 const char *metric_name)
102 const char *component_name = e.
name();
104 if (ecs_os_strcmp(m->
name,
"value") || !component_name) {
108 char *snake_name = flecs_to_snake_case(component_name);
109 metric_entity = w.
scope(
parent).entity(snake_name);
110 ecs_os_free(snake_name);
113 metric_entity = w.
scope(
parent).entity(metric_name);
117 w.metric(metric_entity).member(me).kind<Kind>().brief(brief);
FLECS_API ecs_entity_t ecs_metric_init(ecs_world_t *world, const ecs_metric_desc_t *desc)
Create a new metric.
flecs::entity import()
Import a module.
flecs::entity entity(Args &&... args) const
Create an entity.
void err(const char *fmt,...)
Trace (level -3)
ecs_entity_t ecs_get_typeid(const ecs_world_t *world, ecs_id_t id)
Get the type for an id.
Element type of members vector in EcsStruct.
const char * name
Must be set when used with ecs_struct_desc_t.
ecs_id_t id
Tracks whether entities have the specified component id.
Self & scope(const Func &func)
The function will be ran with the scope set to the current entity.
flecs::string_view name() const
Return the entity name.
flecs::entity lookup(const char *path, bool search_path=false) const
Lookup an entity by name.
flecs::entity parent() const
Get parent of entity.
flecs::entity lookup(const char *name, bool search_path=true) const
Lookup entity by name.
flecs::metric_builder metric(Args &&... args) const
Create metric.