Skip to content

Commit 08d8f30

Browse files
committed
Extended member variant of observe to support additional dependencies as well.
1 parent db71209 commit 08d8f30

2 files changed

Lines changed: 19 additions & 6 deletions

File tree

include/react/Event.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,10 @@ class Events : public REACT_IMPL::EventStreamBase<D,E>
9191
return REACT::Transform(*this, std::forward<F>(f));
9292
}
9393

94-
template <typename F>
95-
Observer<D> Observe(F&& f) const
94+
template <typename F, typename ... TDeps>
95+
Observer<D> Observe(F&& f, const TDeps& ... deps) const
9696
{
97-
return REACT::Observe(*this, std::forward<F>(f));
97+
return REACT::Observe(*this, std::forward<F>(f), deps ...);
9898
}
9999
};
100100

@@ -164,10 +164,10 @@ class Events<D,E&> : public REACT_IMPL::EventStreamBase<D,std::reference_wrapper
164164
return REACT::Transform(*this, std::forward<F>(f));
165165
}
166166

167-
template <typename F>
168-
Observer<D> Observe(F&& f) const
167+
template <typename F, typename ... TDeps>
168+
Observer<D> Observe(F&& f, const TDeps& ... deps) const
169169
{
170-
return REACT::Observe(*this, std::forward<F>(f));
170+
return REACT::Observe(*this, std::forward<F>(f), deps ...);
171171
}
172172
};
173173

src/test/ObserverTest.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,19 @@ TYPED_TEST_P(ObserverTest, SyncedObserveTest)
157157
ASSERT_EQ(diff, 11);
158158
}, sum,prod,diff);
159159

160+
src1.Observe([] (int sum, int prod, int diff) {
161+
ASSERT_EQ(sum, 33);
162+
ASSERT_EQ(prod, 242);
163+
ASSERT_EQ(diff, 11);
164+
}, sum,prod,diff);
165+
166+
src2.Observe([] (int e, int sum, int prod, int diff) {
167+
ASSERT_EQ(e, 42);
168+
ASSERT_EQ(sum, 33);
169+
ASSERT_EQ(prod, 242);
170+
ASSERT_EQ(diff, 11);
171+
}, sum,prod,diff);
172+
160173
in1 <<= 22;
161174
in2 <<= 11;
162175

0 commit comments

Comments
 (0)