gloox 1.0.27
nickname.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 NICKNAME_H__
14#define NICKNAME_H__
15
16#include "gloox.h"
17#include "stanzaextension.h"
18
19#include <string>
20
21namespace gloox
22{
23
24 class Tag;
25
33 class GLOOX_API Nickname : public StanzaExtension
34 {
35 public:
36
41 Nickname( const Tag* tag );
42
47 Nickname( const std::string& nick )
48 : StanzaExtension( ExtNickname ), m_nick( nick )
49 {}
50
54 virtual ~Nickname() {}
55
60 const std::string nick() const { return m_nick; }
61
62 // reimplemented from StanzaExtension
63 virtual const std::string& filterString() const;
64
65 // reimplemented from StanzaExtension
66 virtual StanzaExtension* newInstance( const Tag* tag ) const
67 {
68 return new Nickname( tag );
69 }
70
71 // reimplemented from StanzaExtension
72 Tag* tag() const;
73
74 // reimplemented from StanzaExtension
75 virtual StanzaExtension* clone() const
76 {
77 return new Nickname( *this );
78 }
79
80 private:
81 std::string m_nick;
82
83 };
84
85}
86
87#endif // NICKNAME_H__
An implementation of User Nickname (XEP-0172) as a StanzaExtension.
Definition nickname.h:34
virtual StanzaExtension * clone() const
Definition nickname.h:75
virtual ~Nickname()
Definition nickname.h:54
virtual StanzaExtension * newInstance(const Tag *tag) const
Definition nickname.h:66
Nickname(const std::string &nick)
Definition nickname.h:47
const std::string nick() const
Definition nickname.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