00001 #ifndef _CTBsignal_HXX
00002 #define _CTBsignal_HXX 1
00003
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "CTBsignalBase.hxx"
00020
00021 template <class T, class TE>
00022 class CTBsignalReceiver : public CTBsignalReceiverBase {
00023
00024 public:
00025 CTBsignalReceiver();
00026 CTBsignalReceiver(const CTBsignalReceiver<T,TE>& rhs);
00027
00028 CTBsignalReceiver(T* p_this, void (T::* o_func)
00029 (TE* p_emitter, CTBuint32 i_mask));
00030 CTBsignalReceiver(const CTBsignalReceiver<T,TE>& rhs,
00031 T* p_this, void (T::* o_func)
00032 (TE* p_emitter, CTBuint32 i_mask));
00033
00034 void Configure(T* p_this, void (T::* o_func)
00035 (TE* p_emitter, CTBuint32 i_mask));
00036
00037 void Connect(CTBsignalEmitter& emitter,
00038 TE* p_emitter, CTBuint32 i_mask = 0xffffffff);
00039
00040 private:
00041
00042 virtual void Execute(void* p_emitter, CTBuint32 i_mask) const;
00043
00044 private:
00045
00046 T* mp_this;
00047 void (T::* mo_func)(TE* p_emitter, CTBuint32 i_mask);
00048 };
00049
00050
00051 #include "CTBsignal.icc"
00052
00053 #endif
00054
00055
00056
00057
00058
00059