Skip to content
Flecs v4.1
entity_view.inl
Go to the documentation of this file.
1/**
2 * @file addons/cpp/mixins/event/entity_view.inl
3 * @brief Event entity mixin.
4 */
5
6/** Emit an event for an entity.
7 *
8 * @memberof flecs::entity_view
9 *
10 * @param evt The event to emit.
11 */
12void emit(flecs::entity_t evt) const {
14 .entity(id_)
15 .emit();
16}
17
18/** Emit an event for an entity.
19 *
20 * @memberof flecs::entity_view
21 *
22 * @param evt The event to emit.
23 */
24void emit(flecs::entity evt) const;
25
26/** Emit an event for an entity.
27 *
28 * @memberof flecs::entity_view
29 *
30 * @tparam Evt The event to emit.
31 */
32template <typename Evt, if_t<is_empty<Evt>::value> = 0>
33void emit() const {
35}
36
37/** Emit an event with payload for an entity.
38 *
39 * @memberof flecs::entity_view
40 *
41 * @tparam Evt The event to emit.
42 */
43template <typename Evt, if_not_t<is_empty<Evt>::value> = 0>
44void emit(const Evt& payload) const {
46 .entity(id_)
47 .ctx(&payload)
48 .emit();
49}
50
51
52/** Enqueue an event for an entity.
53 *
54 * @memberof flecs::entity_view
55 *
56 * @param evt The event to enqueue.
57 */
58void enqueue(flecs::entity_t evt) const {
60 .entity(id_)
61 .enqueue();
62}
63
64/** Enqueue an event for an entity.
65 *
66 * @memberof flecs::entity_view
67 *
68 * @param evt The event to enqueue.
69 */
70void enqueue(flecs::entity evt) const;
71
72/** Enqueue an event for an entity.
73 *
74 * @memberof flecs::entity_view
75 *
76 * @tparam Evt The event to enqueue.
77 */
78template <typename Evt, if_t<is_empty<Evt>::value> = 0>
79void enqueue() const {
81}
82
83/** Enqueue an event with payload for an entity.
84 *
85 * @memberof flecs::entity_view
86 *
87 * @tparam Evt The event to enqueue.
88 */
89template <typename Evt, if_not_t<is_empty<Evt>::value> = 0>
90void enqueue(const Evt& payload) const {
92 .entity(id_)
93 .ctx(&payload)
94 .enqueue();
95}
ecs_entity_t entity_t
Entity type.
Definition c_types.hpp:21
void emit(flecs::entity_t evt) const
Emit an event for an entity.
void enqueue() const
Enqueue an event for an entity.
void emit() const
Emit an event for an entity.
void enqueue(flecs::entity_t evt) const
Enqueue an event for an entity.
void emit(flecs::entity evt) const
Emit an event for an entity.
void enqueue(const Evt &payload) const
Enqueue an event with payload for an entity.
void enqueue(flecs::entity evt) const
Enqueue an event for an entity.
void emit(const Evt &payload) const
Emit an event with payload for an entity.
Entity.
Definition entity.hpp:30
void enqueue()
Enqueue the event.
Definition builder.hpp:71
Base & entity(flecs::entity_t e)
Set the entity for which to emit the event.
Definition builder.hpp:37
void emit()
Emit the event.
Definition builder.hpp:63
Base & ctx(const E *ptr)
Set event data (const).
Definition builder.hpp:51
Untyped event builder.
Definition builder.hpp:91
flecs::id_t id_
The raw ID value.
Definition decl.hpp:154
flecs::world_t * world_
World is optional, but guarantees that entity identifiers extracted from the ID are valid.
Definition decl.hpp:152