gloox 1.0
|
00001 /* 00002 Copyright (c) 2006-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 #ifndef STANZAEXTENSIONFACTORY_H__ 00015 #define STANZAEXTENSIONFACTORY_H__ 00016 00017 #include <list> 00018 00019 namespace gloox 00020 { 00021 00022 class Tag; 00023 class Stanza; 00024 class StanzaExtension; 00025 00039 class StanzaExtensionFactory 00040 { 00041 00042 friend class ClientBase; 00043 00044 public: 00056 void registerExtension( StanzaExtension* ext ); 00057 00063 bool removeExtension( int ext ); 00064 00068 StanzaExtensionFactory(); 00069 00073 ~StanzaExtensionFactory(); 00074 00080 void addExtensions( Stanza& stanza, Tag* tag ); 00081 00082 private: 00083 typedef std::list<StanzaExtension*> SEList; 00084 SEList m_extensions; 00085 00086 }; 00087 00088 } 00089 00090 #endif // STANZAEXTENSIONFACTORY_H__