@@ -34,6 +34,15 @@ class EventSource;
3434template <typename D, typename E, typename TOp>
3535class TempEvents ;
3636
37+ template <typename D>
38+ class Observer ;
39+
40+ template <typename D>
41+ class ScopedObserver ;
42+
43+ template <typename TSourceDomain, typename TTargetDomain>
44+ class Continuation ;
45+
3746// /////////////////////////////////////////////////////////////////////////////////////////////////
3847// / IsSignal
3948// /////////////////////////////////////////////////////////////////////////////////////////////////
@@ -64,6 +73,27 @@ struct IsEvent<EventSource<D,T>> { static const bool value = true; };
6473template <typename D, typename T, typename TOp>
6574struct IsEvent <TempEvents<D,T,TOp>> { static const bool value = true ; };
6675
76+ // /////////////////////////////////////////////////////////////////////////////////////////////////
77+ // / IsObserver
78+ // /////////////////////////////////////////////////////////////////////////////////////////////////
79+ template <typename T>
80+ struct IsObserver { static const bool value = false ; };
81+
82+ template <typename D>
83+ struct IsObserver <Observer<D>> { static const bool value = true ; };
84+
85+ template <typename D>
86+ struct IsObserver <ScopedObserver<D>> { static const bool value = true ; };
87+
88+ // /////////////////////////////////////////////////////////////////////////////////////////////////
89+ // / IsContinuation
90+ // /////////////////////////////////////////////////////////////////////////////////////////////////
91+ template <typename T>
92+ struct IsContinuation { static const bool value = false ; };
93+
94+ template <typename D, typename D2>
95+ struct IsContinuation <Continuation<D,D2>> { static const bool value = true ; };
96+
6797// /////////////////////////////////////////////////////////////////////////////////////////////////
6898// / IsReactive
6999// /////////////////////////////////////////////////////////////////////////////////////////////////
@@ -88,6 +118,15 @@ struct IsReactive<EventSource<D,T>> { static const bool value = true; };
88118template <typename D, typename T, typename TOp>
89119struct IsReactive <TempEvents<D,T,TOp>> { static const bool value = true ; };
90120
121+ template <typename D>
122+ struct IsReactive <Observer<D>> { static const bool value = true ; };
123+
124+ template <typename D>
125+ struct IsReactive <ScopedObserver<D>> { static const bool value = true ; };
126+
127+ template <typename D, typename D2>
128+ struct IsReactive <Continuation<D,D2>> { static const bool value = true ; };
129+
91130// /////////////////////////////////////////////////////////////////////////////////////////////////
92131// / RemoveInput
93132// /////////////////////////////////////////////////////////////////////////////////////////////////
0 commit comments