gloox 1.0

messageevent.h

00001 /*
00002   Copyright (c) 2007-2009 by Jakob Schroeter <js@camaya.net>
00003   This file is part of the gloox library. http://camaya.net/gloox
00004 
00005   This software is distributed under a license. The full license
00006   agreement can be found in the file LICENSE in this distribution.
00007   This software may not be copied, modified, sold or distributed
00008   other than expressed in the named license agreement.
00009 
00010   This software is distributed without any warranty.
00011 */
00012 
00013 #ifndef MESSAGEEVENT_H__
00014 #define MESSAGEEVENT_H__
00015 
00016 #include "gloox.h"
00017 #include "stanzaextension.h"
00018 
00019 #include <string>
00020 
00021 namespace gloox
00022 {
00023 
00024   class Tag;
00025 
00032   class GLOOX_API MessageEvent : public StanzaExtension
00033   {
00034     public:
00035 
00040       MessageEvent( const Tag* tag );
00041 
00047       MessageEvent( int type, const std::string& id = EmptyString )
00048         : StanzaExtension( ExtMessageEvent ), m_id( id ), m_event( type )
00049       {}
00050 
00054       virtual ~MessageEvent() {}
00055 
00060       int event() const { return m_event; }
00061 
00062       // reimplemented from StanzaExtension
00063       virtual const std::string& filterString() const;
00064 
00065       // reimplemented from StanzaExtension
00066       virtual StanzaExtension* newInstance( const Tag* tag ) const
00067       {
00068         return new MessageEvent( tag );
00069       }
00070 
00071       // reimplemented from StanzaExtension
00072       Tag* tag() const;
00073 
00074       // reimplemented from StanzaExtension
00075       virtual StanzaExtension* clone() const
00076       {
00077         return new MessageEvent( *this );
00078       }
00079 
00080     private:
00081       std::string m_id;
00082       int m_event;
00083 
00084   };
00085 
00086 }
00087 
00088 #endif // MESSAGEEVENT_H__