gloox 1.0.27
messageevent.h
1/*
2 Copyright (c) 2007-2023 by Jakob Schröter <js@camaya.net>
3 This file is part of the gloox library. http://camaya.net/gloox
4
5 This software is distributed under a license. The full license
6 agreement can be found in the file LICENSE in this distribution.
7 This software may not be copied, modified, sold or distributed
8 other than expressed in the named license agreement.
9
10 This software is distributed without any warranty.
11*/
12
13#ifndef MESSAGEEVENT_H__
14#define MESSAGEEVENT_H__
15
16#include "gloox.h"
17#include "stanzaextension.h"
18
19#include <string>
20
21namespace gloox
22{
23
24 class Tag;
25
32 class GLOOX_API MessageEvent : public StanzaExtension
33 {
34 public:
35
40 MessageEvent( const Tag* tag );
41
47 MessageEvent( int type, const std::string& id = EmptyString )
48 : StanzaExtension( ExtMessageEvent ), m_id( id ), m_event( type )
49 {}
50
54 virtual ~MessageEvent() {}
55
60 int event() const { return m_event; }
61
66 std::string id() const { return m_id; }
67
68 // reimplemented from StanzaExtension
69 virtual const std::string& filterString() const;
70
71 // reimplemented from StanzaExtension
72 virtual StanzaExtension* newInstance( const Tag* tag ) const
73 {
74 return new MessageEvent( tag );
75 }
76
77 // reimplemented from StanzaExtension
78 Tag* tag() const;
79
80 // reimplemented from StanzaExtension
81 virtual StanzaExtension* clone() const
82 {
83 return new MessageEvent( *this );
84 }
85
86 private:
87 std::string m_id;
88 int m_event;
89
90 };
91
92}
93
94#endif // MESSAGEEVENT_H__
An implementation of Message Events (XEP-0022) as a StanzaExtension.
Definition: messageevent.h:33
MessageEvent(int type, const std::string &id=EmptyString)
Definition: messageevent.h:47
virtual StanzaExtension * clone() const
Definition: messageevent.h:81
std::string id() const
Definition: messageevent.h:66
virtual StanzaExtension * newInstance(const Tag *tag) const
Definition: messageevent.h:72
virtual ~MessageEvent()
Definition: messageevent.h:54
int event() const
Definition: messageevent.h:60
This class abstracts a stanza extension, which is usually an XML child element in a specific namespac...
This is an abstraction of an XML element.
Definition: tag.h:47
The namespace for the gloox library.
Definition: adhoc.cpp:28
const std::string EmptyString
Definition: gloox.cpp:124
@ ExtMessageEvent