00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef STANZAEXTENSION_H__
00015 #define STANZAEXTENSION_H__
00016
00017 #include "macros.h"
00018
00019 namespace gloox
00020 {
00021
00022 class Tag;
00023
00027 enum StanzaExtensionType
00028 {
00029 ExtNone = 1,
00030 ExtVCardUpdate = 2,
00032 ExtOOB = 4,
00034 ExtGPGSigned = 8,
00035 ExtGPGEncrypted = 16,
00036 ExtXDelay = 32,
00037 ExtDelay = 64
00038 };
00039
00049 class GLOOX_API StanzaExtension
00050 {
00051 public:
00055 StanzaExtension( StanzaExtensionType type ) : m_type( type ) {}
00056
00060 virtual ~StanzaExtension() {}
00061
00066 StanzaExtensionType type() const { return m_type; }
00067
00072 virtual Tag* tag() const = 0;
00073
00074 private:
00075 StanzaExtensionType m_type;
00076
00077 };
00078
00079 }
00080
00081 #endif // STANZAEXTENSION_H__