13 template <
typename... ObservedValues>
32 observed.attachEvent(eventId);
35 if (
auto shared = observed.lock(); shared)
36 shared->attachEvent(eventId);
47 observed.attachOneshotEvent(eventId);
50 if (
auto shared = observed.lock(); shared)
51 shared->attachOneshotEvent(eventId);
62 observed.detachEvent(eventId);
65 if (
auto shared = observed.lock(); shared)
66 shared->detachEvent(eventId);
71 std::tuple<Detail::ObservedAddReference_t<ObservedValues>...>
const&
observedValues() &
76 std::tuple<Detail::ObservedAddReference_t<ObservedValues>...>&&
observedValues() &&
79 const_cast<std::tuple<Detail::ObservedAddReference_t<ObservedValues>...
>&>(
observedValues_));
89 return observed.expired();
94 [isExpired](
auto const&... observed) {
95 return (isExpired(observed) || ...);
104 template <
typename... ObservedValues>
107 template <
typename RendererType,
typename... ObservedValues>
141 template <
typename RendererType,
typename... ObservedValues>
158 template <
typename... ObservedValues>
165 template <
typename RendererType>
166 requires std::invocable<RendererType>
174 template <
typename RendererType>
175 requires std::invocable<RendererType>
183 template <
typename... ObservedValues>
186 template <
typename... ObservedValues>
190 template <
typename... ObservedValues>
193 observe(ObservedValues&&... observedValues)
196 std::forward<Detail::ObservedAddReference_t<ObservedValues>>(observedValues)...};
Definition: observed_value_combinator.hpp:15
std::tuple< Detail::ObservedAddReference_t< ObservedValues >... > const & observedValues() &
Definition: observed_value_combinator.hpp:71
constexpr void attachOneshotEvent(auto eventId) const
Definition: observed_value_combinator.hpp:41
constexpr ObservedValueCombinatorBase(Detail::ObservedAddReference_t< ObservedValues > &&... observedValues)
Definition: observed_value_combinator.hpp:17
const std::tuple< Detail::ObservedAddReference_t< ObservedValues >... > observedValues_
Definition: observed_value_combinator.hpp:101
constexpr ObservedValueCombinatorBase(std::tuple< Detail::ObservedAddReference_t< ObservedValues >... > observedValues)
Definition: observed_value_combinator.hpp:21
constexpr void attachEvent(auto eventId) const
Definition: observed_value_combinator.hpp:26
std::tuple< Detail::ObservedAddReference_t< ObservedValues >... > && observedValues() &&
Definition: observed_value_combinator.hpp:76
bool isAnyExpired() const
Definition: observed_value_combinator.hpp:82
constexpr void detachEvent(auto eventId) const
Definition: observed_value_combinator.hpp:56
Definition: observed_value_combinator.hpp:109
RendererType generator() const &
Definition: observed_value_combinator.hpp:128
const RendererType generator_
Definition: observed_value_combinator.hpp:138
constexpr ObservedValueCombinatorWithGenerator(std::tuple< Detail::ObservedAddReference_t< ObservedValues >... > observedValues, RendererType generator)
Definition: observed_value_combinator.hpp:111
RendererType generator() &&
Definition: observed_value_combinator.hpp:132
constexpr auto value() const
Definition: observed_value_combinator.hpp:123
ObservedValueCombinator< ObservedValues... > split() &&
Definition: observed_value_combinator.hpp:118
Definition: observed_value_combinator.hpp:144
ObservedValueCombinatorWithPropertyGenerator(ObservedValueCombinatorWithGenerator< RendererType, ObservedValues... > &&other)
Definition: observed_value_combinator.hpp:148
Definition: observed_value_combinator.hpp:160
requires constexpr std::invocable< RendererType > ObservedValueCombinatorWithPropertyGenerator< RendererType, ObservedValues... > generateProperty(RendererType &&generator)
Definition: observed_value_combinator.hpp:177
requires constexpr std::invocable< RendererType > ObservedValueCombinatorWithGenerator< RendererType, ObservedValues... > generate(RendererType &&generator)
Definition: observed_value_combinator.hpp:168
typename ObservedAddReference< std::decay_t< T > >::type ObservedAddReference_t
Definition: observed_value.hpp:1545
Definition: file_dialog.hpp:6
concept IsObserved
Definition: observed_value.hpp:1451
ObservedValueCombinator(ObservedValues &&...) -> ObservedValueCombinator< std::decay_t< Detail::ObservedAddReference_t< ObservedValues >>... >
requires(IsObservedLike< ObservedValues > &&...) ObservedValueCombinator< std
Definition: observed_value_combinator.hpp:191
RendererType
Definition: materialize.hpp:43
concept IsWeakObserved
Definition: observed_value.hpp:1455
void tupleForEach(std::tuple< Types... > &t, FuncT &&func)
Definition: tuple_for_each.hpp:18
Definition: overloaded.hpp:7