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::CounterIncrement>(
"::flecs::metrics::Metric::CounterIncrement");
20 world.
entity<metrics::Gauge>(
"::flecs::metrics::Metric::Gauge");
23inline metric_builder::~metric_builder() {
25 ecs_metric_init(m_world, &m_desc);
29inline metric_builder& metric_builder::member(
const char *name) {
34inline metric_builder& metric_builder::member(
const char *name) {
36 flecs::entity_t m = e.lookup(name);
39 name, e.path().c_str());
48 flecs::entity result(m_world, ecs_metric_init(m_world, &m_desc));
49 m_desc.entity = result;
56template <
typename... Args>
62template <
typename Kind>
63inline untyped_component& untyped_component::metric(flecs::entity_t parent,
const char *brief) {
68 flecs::log::err(
"can't register metric, component '%s' is not a struct",
74 ecs_vec_count(&s->
members) - 1);
75 ecs_assert(m != NULL, ECS_INTERNAL_ERROR, NULL);
88 w.metric(metric_entity).member(me).kind<Kind>().brief(brief);
#define ecs_assert(condition, error_code,...)
Assert.
flecs::entity import()
Import a module.
flecs::entity entity(Args &&... args) const
Create an entity.
void err(const char *fmt,...)
Trace (level -3)
ecs_vec_t members
Populated from child entities with Member component.
Element type of members vector in EcsStruct.
const char * name
Must be set when used with ecs_struct_desc_t.
Self & scope(const Func &func)
The function will be ran with the scope set to the current entity.
const T * get() const
Get component value.
flecs::entity lookup(const char *path) const
Lookup an entity by name.
flecs::string path(const char *sep="::", const char *init_sep="::") const
Return the entity path.
flecs::entity parent() const
Get parent of entity.
flecs::metric_builder metric(Args &&... args) const
Create metric.