gloox  1.0.22
mucroomconfighandler.h
1 /*
2  Copyright (c) 2006-2017 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 
14 
15 #ifndef MUCROOMCONFIGHANDLER_H__
16 #define MUCROOMCONFIGHANDLER_H__
17 
18 #include "gloox.h"
19 #include "jid.h"
20 
21 #include <string>
22 #include <list>
23 
24 namespace gloox
25 {
26 
27  class MUCRoom;
28  class DataForm;
29 
39  {
40  public:
45  MUCListItem( const JID& jid )
46  : m_jid( jid ), m_affiliation( AffiliationInvalid ), m_role( RoleInvalid )
47  {}
48 
57  const std::string& nick )
58  : m_jid( jid ), m_nick( nick ), m_affiliation( affiliation ), m_role( role )
59  {}
60 
67  MUCListItem( const std::string& nick, MUCRoomAffiliation affiliation, const std::string& reason )
68  : m_nick( nick ), m_affiliation( affiliation ), m_role( RoleInvalid ),
69  m_reason( reason )
70  {}
71 
78  MUCListItem( const std::string& nick, MUCRoomRole role, const std::string& reason )
79  : m_nick( nick ), m_affiliation( AffiliationInvalid ), m_role( role ),
80  m_reason( reason )
81  {}
82 
87 
92  const JID& jid() const { return m_jid; }
93 
98  const std::string& nick() const { return m_nick; }
99 
104  MUCRoomAffiliation affiliation() const { return m_affiliation; }
105 
110  MUCRoomRole role() const { return m_role; }
111 
116  const std::string& reason() const { return m_reason; }
117 
118  private:
119  JID m_jid;
120  std::string m_nick;
121  MUCRoomAffiliation m_affiliation;
122  MUCRoomRole m_role;
123  std::string m_reason;
126  };
127 
131  typedef std::list<MUCListItem> MUCListItemList;
132 
137  {
168  };
169 
176  class GLOOX_API MUCRoomConfigHandler
177  {
178  public:
183 
191  virtual void handleMUCConfigList( MUCRoom* room, const MUCListItemList& items,
192  MUCOperation operation ) = 0;
193 
202  virtual void handleMUCConfigForm( MUCRoom* room, const DataForm& form ) = 0;
203 
211  virtual void handleMUCConfigResult( MUCRoom* room, bool success, MUCOperation operation ) = 0;
212 
220  virtual void handleMUCRequest( MUCRoom* room, const DataForm& form ) = 0;
221 
222  };
223 
224 }
225 
226 #endif // MUCROOMCONFIGHANDLER_H__
gloox::SetParticipant
@ SetParticipant
Definition: mucroomconfighandler.h:148
gloox::RequestBanList
@ RequestBanList
Definition: mucroomconfighandler.h:157
gloox::MUCRoom
This is an implementation of XEP-0045 (Multi-User Chat).
Definition: mucroom.h:85
gloox::RequestUniqueName
@ RequestUniqueName
Definition: mucroomconfighandler.h:138
gloox::RoleInvalid
@ RoleInvalid
Definition: gloox.h:1169
gloox::SetRNone
@ SetRNone
Definition: mucroomconfighandler.h:146
gloox::MUCListItem::MUCListItem
MUCListItem(const JID &jid, MUCRoomRole role, MUCRoomAffiliation affiliation, const std::string &nick)
Definition: mucroomconfighandler.h:56
gloox::StoreMemberList
@ StoreMemberList
Definition: mucroomconfighandler.h:160
gloox::RequestModeratorList
@ RequestModeratorList
Definition: mucroomconfighandler.h:161
gloox::StoreAdminList
@ StoreAdminList
Definition: mucroomconfighandler.h:166
gloox::CancelRoomCreation
@ CancelRoomCreation
Definition: mucroomconfighandler.h:140
gloox::MUCListItem::MUCListItem
MUCListItem(const std::string &nick, MUCRoomRole role, const std::string &reason)
Definition: mucroomconfighandler.h:78
gloox::MUCListItem::MUCListItem
MUCListItem(const std::string &nick, MUCRoomAffiliation affiliation, const std::string &reason)
Definition: mucroomconfighandler.h:67
gloox::DataForm
An abstraction of a XEP-0004 Data Form.
Definition: dataform.h:56
gloox::SetModerator
@ SetModerator
Definition: mucroomconfighandler.h:149
gloox::DestroyRoom
@ DestroyRoom
Definition: mucroomconfighandler.h:143
gloox::StoreModeratorList
@ StoreModeratorList
Definition: mucroomconfighandler.h:162
gloox::RequestMemberList
@ RequestMemberList
Definition: mucroomconfighandler.h:159
gloox::MUCListItemList
std::list< MUCListItem > MUCListItemList
Definition: mucroomconfighandler.h:131
gloox::StoreOwnerList
@ StoreOwnerList
Definition: mucroomconfighandler.h:164
gloox::MUCListItem::~MUCListItem
~MUCListItem()
Definition: mucroomconfighandler.h:86
gloox::MUCListItem::MUCListItem
MUCListItem(const JID &jid)
Definition: mucroomconfighandler.h:45
gloox::InvalidOperation
@ InvalidOperation
Definition: mucroomconfighandler.h:167
gloox::RequestVoiceList
@ RequestVoiceList
Definition: mucroomconfighandler.h:155
gloox::GetRoomItems
@ GetRoomItems
Definition: mucroomconfighandler.h:145
gloox::MUCListItem::role
MUCRoomRole role() const
Definition: mucroomconfighandler.h:110
gloox::SendRoomConfig
@ SendRoomConfig
Definition: mucroomconfighandler.h:142
gloox::MUCOperation
MUCOperation
Definition: mucroomconfighandler.h:136
gloox::JID
An abstraction of a JID.
Definition: jid.h:30
gloox::MUCRoomRole
MUCRoomRole
Definition: gloox.h:1163
gloox
The namespace for the gloox library.
Definition: adhoc.cpp:27
gloox::SetMember
@ SetMember
Definition: mucroomconfighandler.h:152
gloox::StoreVoiceList
@ StoreVoiceList
Definition: mucroomconfighandler.h:156
gloox::MUCListItem
Definition: mucroomconfighandler.h:38
gloox::MUCRoomConfigHandler
An abstract interface that can be implemented for MUC room configuration.
Definition: mucroomconfighandler.h:176
gloox::MUCRoomAffiliation
MUCRoomAffiliation
Definition: gloox.h:1150
gloox::SetOutcast
@ SetOutcast
Definition: mucroomconfighandler.h:151
gloox::SetVisitor
@ SetVisitor
Definition: mucroomconfighandler.h:147
gloox::GetRoomInfo
@ GetRoomInfo
Definition: mucroomconfighandler.h:144
gloox::SetAdmin
@ SetAdmin
Definition: mucroomconfighandler.h:153
gloox::RequestAdminList
@ RequestAdminList
Definition: mucroomconfighandler.h:165
gloox::MUCListItem::reason
const std::string & reason() const
Definition: mucroomconfighandler.h:116
gloox::RequestRoomConfig
@ RequestRoomConfig
Definition: mucroomconfighandler.h:141
gloox::SetOwner
@ SetOwner
Definition: mucroomconfighandler.h:154
gloox::SetANone
@ SetANone
Definition: mucroomconfighandler.h:150
gloox::RequestOwnerList
@ RequestOwnerList
Definition: mucroomconfighandler.h:163
gloox::MUCRoomConfigHandler::~MUCRoomConfigHandler
virtual ~MUCRoomConfigHandler()
Definition: mucroomconfighandler.h:182
gloox::AffiliationInvalid
@ AffiliationInvalid
Definition: gloox.h:1157
gloox::CreateInstantRoom
@ CreateInstantRoom
Definition: mucroomconfighandler.h:139
gloox::StoreBanList
@ StoreBanList
Definition: mucroomconfighandler.h:158
gloox::MUCListItem::affiliation
MUCRoomAffiliation affiliation() const
Definition: mucroomconfighandler.h:104
gloox::MUCListItem::nick
const std::string & nick() const
Definition: mucroomconfighandler.h:98
gloox::MUCListItem::jid
const JID & jid() const
Definition: mucroomconfighandler.h:92