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

CTBcallbackR.hxx

Go to the documentation of this file.
00001 #ifndef _CTBcallbackR_HXX
00002 #define _CTBcallbackR_HXX 1
00003 
00011 /*----------------------------------------------------------------------------*/
00012 /* C Tool Box: Designed and implemented by:                                   */
00013 /*    Walter F.J. Mueller   Gesellschaft fuer Schwerionenforschung (GSI)      */
00014 /*                          Planckstrasse 1, D-64291 Darmstadt, Germany       */
00015 /*                  Email:  W.F.J.Mueller@gsi.de                              */
00016 /*                  WWW:    http://www-kp3.gsi.de/www/kp3/people/mueller.html */
00017 /*------------------------------------------+---------------------------------*/
00018  
00019 #include "CTBvector.hxx"
00020 #include "CTBcallbackBase.hxx"
00021 
00022 template <class TR>
00023 class CTBcallbackSource0R : public CTBcallbackSourceBase {
00024   public:
00025     void            operator()(CTBvector<TR>& res);
00026 };
00027 
00028 template <class T, class TR>
00029 class CTBcallbackTarget0R : public CTBcallbackTargetBase {
00030   public:
00031                     CTBcallbackTarget0R();
00032                     CTBcallbackTarget0R(const CTBcallbackTarget0R<T,TR>& rhs);
00033 
00034                     CTBcallbackTarget0R(T* p_this, TR (T::* o_func)());
00035                     CTBcallbackTarget0R(const CTBcallbackTarget0R<T,TR>& rhs,
00036                                         T* p_this, TR (T::* o_func)());
00037 
00038     void            Configure(T* p_this, TR (T::* o_func)());
00039     void            Connect(CTBcallbackSource0R<TR>& source);
00040     void            Disconnect(CTBcallbackSource0R<TR>& source);
00041   
00042   private:
00043     virtual void    Execute(void* p_arg) const;
00044 
00045   private:
00046     T*              mp_this;
00047     TR              (T::* mo_func)();
00048 };
00049 
00050 template <class TR>
00051 class CTBcallbackArg0R {
00052   public:
00053                     CTBcallbackArg0R(CTBvector<TR>& res);
00054   public:
00055     CTBvector<TR>&  m_res;
00056 };
00057 
00058 //##############################################################################
00059 template <class TR, class T1>
00060 class CTBcallbackSource1R : public CTBcallbackSourceBase {
00061   public:
00062     void            operator()(CTBvector<TR>& res, T1 p1);
00063 };
00064 
00065 template <class T, class TR, class T1>
00066 class CTBcallbackTarget1R : public CTBcallbackTargetBase {
00067   public:
00068                     CTBcallbackTarget1R();
00069                     CTBcallbackTarget1R(
00070                       const CTBcallbackTarget1R<T,TR,T1>& rhs);
00071 
00072                     CTBcallbackTarget1R(T* p_this, TR (T::* o_func)(T1));
00073                     CTBcallbackTarget1R(
00074                       const CTBcallbackTarget1R<T,TR,T1>& rhs,
00075                       T* p_this, TR (T::* o_func)(T1));
00076 
00077     void            Configure(T* p_this, TR (T::* o_func)(T1));
00078     void            Connect(CTBcallbackSource1R<TR,T1>& source);
00079     void            Disconnect(CTBcallbackSource1R<TR,T1>& source);
00080   
00081   private:
00082     virtual void    Execute(void* p_arg) const;
00083 
00084   private:
00085     T*              mp_this;
00086     TR              (T::* mo_func)(T1);
00087 };
00088 
00089 template <class TR, class T1>
00090 class CTBcallbackArg1R {
00091   public:
00092                     CTBcallbackArg1R(CTBvector<TR>& res, T1 p1);
00093   public:
00094     CTBvector<TR>&  m_res;
00095     T1              m_p1;
00096 };
00097 
00098 // the implementation is fully inlined and always included here
00099 #include "CTBcallbackR.icc"
00100 
00101 #endif
00102 
00103 
00104 
00105 
00106 
00107 

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