gloox  1.0
stanzaextensionfactory.h
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__