@@ -77,12 +77,16 @@ using namespace react;
7777REACTIVE_DOMAIN (D);
7878
7979// Two event sources
80- D::EventSource< > leftClicked = D::MakeEventSource();
81- D::EventSource< > rightClicked = D::MakeEventSource();
80+ D::EventSourceT<Token > leftClicked = D::MakeEventSource();
81+ D::EventSourceT<Token > rightClicked = D::MakeEventSource();
8282
83- // Merge both event streams and register an observer
84- auto clickObserver = (leftClicked | rightClicked)
85- .Observe([] { cout << "button clicked!" << endl; });
83+ // Merge both event streams
84+ auto merged = leftClicked | rightClicked;
85+
86+ // React to events
87+ auto obs = Observe(merged, [] (Token) {
88+ cout << "clicked!" << endl;
89+ });
8690```
8791
8892#### Implicit parallelism
@@ -117,15 +121,13 @@ using namespace react;
117121
118122 auto in = D::MakeVar(0);
119123
120- // The ->* operator is overloaded for a DSL
121-
122- auto op1 = in ->* [] (int in)
124+ auto op1 = MakeSignal(in, [] (int in)
123125 {
124126 int result = in /* Costly operation #1 */;
125127 return result;
126128 };
127129
128- auto op2 = in ->* [] (int in)
130+ auto op2 = MakeSignal(in, [] (int in)
129131 {
130132 int result = in /* Costly operation #2 */;
131133 return result;
@@ -246,8 +248,8 @@ public:
246248 NameObserver
247249 {
248250 // Reactive reference to inner event stream of signal
249- REACTIVE_REF(CurrentCompany, Name)
250- .Observe( [] (const string& name) {
251+ Observe( REACTIVE_REF(CurrentCompany, Name),
252+ [] (const string& name) {
251253 cout << "Manager: Now managing " << name << endl;
252254 });
253255 }
0 commit comments