resource.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef RESOURCE_H__
00015 #define RESOURCE_H__
00016
00017 #include "presence.h"
00018 #include "util.h"
00019
00020 #include <string>
00021
00022 namespace gloox
00023 {
00024
00025 class Presence;
00026
00035 class GLOOX_API Resource
00036 {
00037
00038 friend class RosterItem;
00039
00040 public:
00047 Resource( int priority, const std::string& msg, Presence::PresenceType presence )
00048 : m_priority( priority ), m_message( msg ), m_presence( presence ) {}
00049
00053 virtual ~Resource()
00054 {
00055 util::clearList( m_extensions );
00056 }
00057
00062 int priority() const { return m_priority; }
00063
00068 const std::string& message() const { return m_message; }
00069
00074 Presence::PresenceType presence() const { return m_presence; }
00075
00081 const StanzaExtensionList& extensions() const { return m_extensions; }
00082
00083 private:
00084 void setPriority( int priority ) { m_priority = priority; }
00085 void setMessage( std::string message ) { m_message = message; }
00086 void setStatus( Presence::PresenceType presence ) { m_presence = presence; }
00087 void setExtensions( const StanzaExtensionList& exts )
00088 {
00089 StanzaExtensionList::const_iterator it = exts.begin();
00090 for( ; it != exts.end(); ++it )
00091 {
00092 m_extensions.push_back( (*it)->clone() );
00093 }
00094 }
00095
00096 int m_priority;
00097 std::string m_message;
00098 std::string m_name;
00099 Presence::PresenceType m_presence;
00100 StanzaExtensionList m_extensions;
00101
00102 };
00103
00104 }
00105
00106 #endif // RESOURCE_H__