Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

CTBcallbackB.icc

Go to the documentation of this file.
00001 
00006 /*----------------------------------------------------------------------------*/
00007 /* C Tool Box: Designed and implemented by:                                   */
00008 /*    Walter F.J. Mueller   Gesellschaft fuer Schwerionenforschung (GSI)      */
00009 /*                          Planckstrasse 1, D-64291 Darmstadt, Germany       */
00010 /*                  Email:  W.F.J.Mueller@gsi.de                              */
00011 /*                  WWW:    http://www-kp3.gsi.de/www/kp3/people/mueller.html */
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 

Generated at Fri Oct 24 18:11:27 2003 for CTBbase by doxygen1.2.9-20010812 written by Dimitri van Heesch, © 1997-2001