00001 // guard need for compilers that require template source included in header 00002 #ifndef LISTENER_CC_TEMPLATE 00003 #define LISTENER_CC_TEMPLATE 00004 00005 #include "Listener.h" 00006 #include "EventSender.h" 00007 00027 #include "Listener.h" 00028 #include "EventSender.h" 00029 00039 template<typename EvType> 00040 void 00041 Listener<EvType>::ignoreThisEvent() 00042 { 00043 // only a valid call if processing an event 00044 if (! _processingEvent) return; 00045 00046 assert( EventSender<EvType>::isSending() ); 00047 if (! _ignoringHeardEvent) 00048 { 00049 EventSender<EvType>::instance().incEventIgnored(); 00050 _ignoringHeardEvent = true; 00051 } 00052 00053 //assert( EventSender<EvType>::isRegistered(this) == _registered); 00054 } 00055 00059 template<typename EvType> 00060 void 00061 Listener<EvType>::ignoreEvents() 00062 { 00063 if (_registered) 00064 { 00065 EventSender<EvType>::instance().removeListener(this); 00066 _registered = false; 00067 } 00068 00069 //assert( ! EventSender<EvType>::isRegistered(this) ); 00070 } 00071 00075 template<typename EvType> 00076 void 00077 Listener<EvType>::listenForEvents() 00078 { 00079 if (!_registered) 00080 { 00081 EventSender<EvType>::instance().registerListener(this); 00082 _registered = true; 00083 } 00084 00085 //assert( EventSender<EvType>::isRegistered(this) ); 00086 } 00087 00088 00089 #endif // LISTENER_CC_TEMPLATE 00090 00091 00092
1.5.6