subscription.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef SUBSCRIPTION_H__
00014 #define SUBSCRIPTION_H__
00015
00016 #include "stanza.h"
00017
00018 #include <string>
00019
00020 namespace gloox
00021 {
00022
00023 class JID;
00024
00031 class GLOOX_API Subscription : public Stanza
00032 {
00033
00034 public:
00035
00036 friend class ClientBase;
00037
00041 enum S10nType
00042 {
00043 Subscribe,
00044 Subscribed,
00045 Unsubscribe,
00046 Unsubscribed,
00047 Invalid
00048 };
00049
00057 Subscription( S10nType type, const JID& to, const std::string& status = EmptyString,
00058 const std::string& xmllang = EmptyString );
00062 virtual ~Subscription();
00063
00069 S10nType subtype() const { return m_subtype; }
00070
00080 const std::string status( const std::string& lang = "default" ) const
00081 {
00082 return findLang( m_stati, m_status, lang );
00083 }
00084
00085
00086 virtual Tag* tag() const;
00087
00088 private:
00089 #ifdef SUBSCRIPTION_TEST
00090 public:
00091 #endif
00092
00096 Subscription( Tag* tag );
00097
00098 S10nType m_subtype;
00099 StringMap* m_stati;
00100 std::string m_status;
00101
00102 };
00103
00104 }
00105
00106 #endif // SUBSCRIPTION_H__