00001 #ifndef POLYMORPHIC_EVENT_H 00002 #define POLYMORPHIC_EVENT_H 00003 00022 #include "EventFWD.hh" 00023 00037 class PolymorphEvent 00038 { 00039 public: 00046 virtual void send() const = 0; 00047 00048 protected: 00050 virtual ~PolymorphEvent() {} 00051 00059 template <typename EvType> 00060 inline static void 00061 sendTypedEvent(const EvType& event) {EventSender<EvType>::send(event);} 00062 00063 }; 00064 00065 00066 00067 #endif // POLYMORPHIC_EVENT_H