00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef NL_EVENT_EMITTER_MULTI_H
00027 #define NL_EVENT_EMITTER_MULTI_H
00028
00029 #include "nel/misc/types_nl.h"
00030 #include "event_emitter.h"
00031 #include <vector>
00032
00033
00034 namespace NLMISC {
00035
00036
00041 class CEventEmitterMulti : public IEventEmitter
00042 {
00043 public:
00045 ~CEventEmitterMulti();
00047 void addEmitter(IEventEmitter *e, bool mustDelete);
00049 void removeEmitter(IEventEmitter *e);
00051 bool isEmitter(IEventEmitter *e) const;
00052
00053 uint getNumEmitters() const { return _Emitters.size(); }
00054
00055 IEventEmitter *getEmitter(uint index);
00057 virtual void submitEvents(CEventServer &server);
00058 private:
00059 typedef std::vector<std::pair<IEventEmitter *, bool> > TEmitterCont;
00060 TEmitterCont _Emitters;
00061 };
00062
00063
00064 }
00065
00066
00067 #endif // NL_EVENT_EMITTER_MULTI_H
00068
00069