+ /** @brief Create a profile. There are two behaviours. Either the callback is
+ *
+ * @param name The name of the profile (checked for uniqueness)
+ * @param cb A callback object/function that populates the profile.
+ * @param repeat_delay If strictly negative, it is ignored and the callback is called when an event reached the end of
+ * the event_list. If zero or positive, the initial set repeats after the provided delay.
+ */
+ explicit Profile(const std::string& name, const std::function<ProfileBuilder::UpdateCb>& cb, double repeat_delay);
+ virtual ~Profile()=default;