00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef MESSAGEVENTFILTER_H__
00015 #define MESSAGEVENTFILTER_H__
00016
00017 #include "messagefilter.h"
00018 #include "gloox.h"
00019
00020 namespace gloox
00021 {
00022
00023 class Tag;
00024 class MessageEventHandler;
00025 class MessageSession;
00026
00037 class GLOOX_API MessageEventFilter : public MessageFilter
00038 {
00039 public:
00046 MessageEventFilter( MessageSession *parent,
00047 int defaultEvents = MessageEventOffline | MessageEventDelivered
00048 | MessageEventDisplayed | MessageEventComposing );
00049
00053 virtual ~MessageEventFilter();
00054
00065 void raiseMessageEvent( MessageEventType event );
00066
00072 void registerMessageEventHandler( MessageEventHandler *meh );
00073
00079 void removeMessageEventHandler();
00080
00081
00082 virtual void decorate( Tag *tag );
00083
00084
00085 virtual void filter( Stanza *stanza );
00086
00087 private:
00088 MessageEventHandler *m_messageEventHandler;
00089 std::string m_lastID;
00090 int m_requestedEvents;
00091 int m_defaultEvents;
00092 MessageEventType m_lastSent;
00093
00094 };
00095
00096 }
00097
00098 #endif // MESSAGEVENTFILTER_H__