gloox 1.0
|
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 00014 00015 #ifndef UNIQUEMUCROOM_H__ 00016 #define UNIQUEMUCROOM_H__ 00017 00018 #include "instantmucroom.h" 00019 #include "stanzaextension.h" 00020 00021 namespace gloox 00022 { 00023 00034 class GLOOX_API UniqueMUCRoom : public InstantMUCRoom 00035 { 00036 public: 00048 UniqueMUCRoom( ClientBase* parent, const JID& nick, MUCRoomHandler* mrh ); 00049 00053 virtual ~UniqueMUCRoom(); 00054 00055 // reimplemented from MUCRoom 00056 virtual void join(); 00057 00058 private: 00059 #ifdef UNIQUEMUCROOM_TEST 00060 public: 00061 #endif 00062 00068 class Unique : public StanzaExtension 00069 { 00070 public: 00075 Unique( const Tag* tag = 0 ); 00076 00080 virtual ~Unique() {} 00081 00086 const std::string& name() const { return m_name; } 00087 00088 // reimplemented from StanzaExtension 00089 virtual const std::string& filterString() const; 00090 00091 // reimplemented from StanzaExtension 00092 virtual StanzaExtension* newInstance( const Tag* tag ) const 00093 { 00094 return new Unique( tag ); 00095 } 00096 00097 // reimplemented from StanzaExtension 00098 virtual Tag* tag() const; 00099 00100 // reimplemented from StanzaExtension 00101 virtual StanzaExtension* clone() const 00102 { 00103 return new Unique( *this ); 00104 } 00105 00106 private: 00107 std::string m_name; 00108 }; 00109 00110 // reimplemented from MUCRoom (IqHandler) 00111 void handleIqID( const IQ& iq, int context ); 00112 00113 }; 00114 00115 } 00116 00117 #endif // UNIQUEMUCROOM_H__