00001
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifdef DEV_DOCS
00015
00022 #endif
00023
00024
00026
00027 inline CTBcallbackArgBBase::CTBcallbackArgBBase()
00028 : mi_ntrue(0),
00029 mi_nfalse(0)
00030 {}
00031
00032
00034
00035 inline CTBcallbackArgBBase::operator int () const
00036 {
00037 return 0??;
00038 }
00039
00040
00049
00051
00052 inline int CTBcallbackSource0B::operator()()
00053 {
00054 CTBcallbackArg0B arg;
00055
00056 if (m_shead) {
00057 res.EnsureCapacity(NConnect());
00058 Execute(&arg);
00059 }
00060 return arg;
00061 }
00062
00063
00072
00074
00075 template <class T>
00076 inline CTBcallbackTarget0B<T>::CTBcallbackTarget0B()
00077 : mp_this(0),
00078 mo_func(0)
00079 {}
00080
00081
00083
00084 template <class T>
00085 inline CTBcallbackTarget0B<T>::CTBcallbackTarget0B(
00086 const CTBcallbackTarget0B<T>& rhs)
00087 : CTBcallbackTargetBase(rhs),
00088 mp_this(0),
00089 mo_func(0)
00090 {}
00091
00092
00094
00095 template <class T>
00096 inline CTBcallbackTarget0B<T>::CTBcallbackTarget0B(T* p_this,
00097 bool (T::* o_func)())
00098 : mp_this(p_this),
00099 mo_func(o_func)
00100 {}
00101
00102
00104
00105 template <class T>
00106 inline CTBcallbackTarget0B<T>::CTBcallbackTarget0B(
00107 const CTBcallbackTarget0B<T>& rhs,
00108 T* p_this, bool (T::* o_func)())
00109 : CTBcallbackTargetBase(rhs),
00110 mp_this(p_this),
00111 mo_func(o_func)
00112 {}
00113
00114
00116
00117 template <class T>
00118 inline void CTBcallbackTarget0B<T>::Configure(T* p_this, bool (T::* o_func)())
00119 {
00120 mp_this = p_this;
00121 mo_func = o_func;
00122 return;
00123 }
00124
00125
00127
00128 template <class T>
00129 inline void CTBcallbackTarget0B<T>::Connect(CTBcallbackSource0B& source)
00130 {
00131 CTBcallbackTargetBase::Connect(source);
00132 return;
00133 }
00134
00135
00137
00138 template <class T>
00139 inline void CTBcallbackTarget0B<T>::Disconnect(
00140 CTBcallbackSource0B& source)
00141 {
00142 CTBcallbackTargetBase::Disconnect(source);
00143 return;
00144 }
00145
00146
00148
00149 template <class T>
00150 inline void CTBcallbackTarget0B<T>::Execute(void* p_arg) const
00151 {
00152 CTBcallbackArg0B* p = (CTBcallbackArg0B*) p_arg;
00153
00154 if (mp_this) {
00155 if ((mp_this->*mo_func)()) {
00156 p->mi_ntrue += 1;
00157 } else {
00158 p->mi_nfalse += 1;
00159 }
00160 }
00161 return;
00162 }
00163
00164
00165 #ifdef DEV_DOCS
00166
00173 #endif
00174
00175
00177
00178 inline CTBcallbackArg0B::CTBcallbackArg0B()
00179 : CTBcallbackArgBBase()
00180 {}
00181
00182
00191
00193
00194 template <class T1>
00195 inline int CTBcallbackSource1B<T1>::operator()(T1 p1)
00196 {
00197 CTBcallbackArg1B<T1> arg(p1);
00198
00199 if (m_shead) {
00200 res.EnsureCapacity(NConnect());
00201 Execute(&arg);
00202 }
00203 return arg;
00204 }
00205
00206
00215
00217
00218 template <class T, class T1>
00219 inline CTBcallbackTarget1B<T,T1>::CTBcallbackTarget1B()
00220 : mp_this(0),
00221 mo_func(0)
00222 {}
00223
00224
00226
00227 template <class T, class T1>
00228 inline CTBcallbackTarget1B<T,T1>::CTBcallbackTarget1B(
00229 const CTBcallbackTarget1B<T,T1>& rhs)
00230 : CTBcallbackTargetBase(rhs),
00231 mp_this(0),
00232 mo_func(0)
00233 {}
00234
00235
00237
00238 template <class T, class T1>
00239 inline CTBcallbackTarget1B<T,T1>::CTBcallbackTarget1B(T* p_this,
00240 bool (T::* o_func)(T1))
00241 : mp_this(p_this),
00242 mo_func(o_func)
00243 {}
00244
00245
00247
00248 template <class T, class T1>
00249 inline CTBcallbackTarget1B<T,T1>::CTBcallbackTarget1B(
00250 const CTBcallbackTarget1B<T,T1>& rhs,
00251 T* p_this, bool (T::* o_func)(T1))
00252 : CTBcallbackTargetBase(rhs),
00253 mp_this(p_this),
00254 mo_func(o_func)
00255 {}
00256
00257
00259
00260 template <class T, class T1>
00261 inline void CTBcallbackTarget1B<T,T1>::Configure(T* p_this,
00262 bool (T::* o_func)(T1))
00263 {
00264 mp_this = p_this;
00265 mo_func = o_func;
00266 return;
00267 }
00268
00269
00271
00272 template <class T, class T1>
00273 inline void CTBcallbackTarget1B<T,T1>::Connect(
00274 CTBcallbackSource1B<T1>& source)
00275 {
00276 CTBcallbackTargetBase::Connect(source);
00277 return;
00278 }
00279
00280
00282
00283 template <class T, class T1>
00284 inline void CTBcallbackTarget1B<T,T1>::Disconnect(
00285 CTBcallbackSource1B<T1>& source)
00286 {
00287 CTBcallbackTargetBase::Disconnect(source);
00288 return;
00289 }
00290
00291
00293
00294 template <class T, class T1>
00295 inline void CTBcallbackTarget1B<T,T1>::Execute(void* p_arg) const
00296 {
00297 CTBcallbackArg1B<T1>* p = (CTBcallbackArg1B<T1>*) p_arg;
00298
00299 if (mp_this) {
00300 if ((mp_this->*mo_func)(p->m_p1)) {
00301 p->mi_ntrue += 1;
00302 } else {
00303 p->mi_nfalse += 1;
00304 }
00305 }
00306 return;
00307 }
00308
00309
00310 #ifdef DEV_DOCS
00311
00318 #endif
00319
00320
00322
00323 template <class T1>
00324 inline CTBcallbackArg1B<T1>::CTBcallbackArg1B(T1 p1)
00325 : CTBcallbackArgBBase(),
00326 m_p1(p1)
00327 {}
00328
00329
00330
00331