00001 #ifndef _CTBcallbackR_HXX
00002 #define _CTBcallbackR_HXX 1
00003
00011
00012
00013
00014
00015
00016
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
00099 #include "CTBcallbackR.icc"
00100
00101 #endif
00102
00103
00104
00105
00106
00107