+
+ /*
+ * Is the trigger registered?
+ *
+ * This is necessary since a reference holder might be interested in the
+ * overall state of the trigger from the point of view of its owner.
+ *
+ * The main user is the action executor since we want to prevent the
+ * execution of actions related to a trigger that is unregistered.
+ *
+ * Not considered for `is_equal`.
+ */
+ bool registered;
+
+ /*
+ * A "hidden" trigger is a trigger that is not externally listed.
+ * It is used to hide triggers that are used internally by the session
+ * daemon so that they can't be listed nor unregistered by external
+ * clients.
+ *
+ * This is a property that can only be set internally by the session
+ * daemon. As such, it is not serialized nor set by a
+ * "create_from_buffer" constructor.
+ *
+ * The hidden property is preserved by copies.
+ *
+ * Note that notifications originating from an "hidden" trigger will not
+ * be sent to clients that are not within the session daemon's process.
+ */
+ bool is_hidden;
+
+ /*
+ * The lock is used to protect against concurrent trigger execution and
+ * trigger removal.
+ */
+ pthread_mutex_t lock;