00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef JINGLEDESCRIPTION_H__
00015 #define JINGLEDESCRIPTION_H__
00016
00017
00018 #include "jingleplugin.h"
00019 #include "gloox.h"
00020
00021 namespace gloox
00022 {
00023
00024 class Tag;
00025
00026 namespace Jingle
00027 {
00028
00039 class Description : public Plugin
00040 {
00041 public:
00049 class Payload
00050 {
00051 public:
00060 Payload( const StringMap& attribs, const StringMap& parameters )
00061 : m_attribs( attribs ), m_parameters( parameters )
00062 {}
00063
00067 ~Payload() {}
00068
00074 Tag* tag() const;
00075
00076 private:
00077 StringMap m_attribs;
00078 StringMap m_parameters;
00079
00080 };
00081
00085 typedef std::list<const Description::Payload*> PayloadList;
00086
00092 Description( const PayloadList& payload )
00093 : m_payload( payload )
00094 {}
00095
00099 virtual ~Description();
00100
00101
00102 virtual const std::string& filterString() const;
00103
00104
00105 virtual Tag* tag() const;
00106
00107 protected:
00112 virtual const std::string& xmlns() const = 0;
00113
00114 private:
00115 PayloadList m_payload;
00116
00117 };
00118
00119 }
00120
00121 }
00122
00123 #endif // JINGLEDESCRIPTION_H__