00001 // 00002 // messager 00003 // 00004 00005 #ifndef __MESSAGER_H 00006 #define __MESSAGER_H 00007 00008 #include <pthread.h> 00009 00010 #include <list> 00011 00012 #include "message.h" 00013 #include "messageable.h" 00014 00016 class Messager 00017 { 00018 public: 00019 Messager(); 00020 virtual ~Messager(); 00021 00023 void add_recipient(const Messageable*); 00025 void del_recipient(const Messageable*); 00026 00028 void send_message(MessageP&) const; 00029 00038 //private: 00039 protected: 00040 std::list<Messageable*> recipients; 00041 typedef std::list<Messageable*>::iterator 00042 recipient_iterator; 00043 typedef std::list<Messageable*>::const_iterator 00044 recipient_const_iterator; 00046 pthread_mutex_t recip_mutex; 00047 }; 00048 00049 00050 #endif /* __MESSAGER_H */