pubsubitem.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "pubsubitem.h"
00015 #include "tag.h"
00016
00017 namespace gloox
00018 {
00019
00020 namespace PubSub
00021 {
00022
00023 Item::Item()
00024 : m_payload( 0 )
00025 {
00026 }
00027
00028 Item::Item( const Tag* tag )
00029 : m_payload( 0 )
00030 {
00031 if( !tag || tag->name() != "item" )
00032 return;
00033
00034 m_id = tag->findAttribute( "id" );
00035
00036 if( tag->children().size() )
00037 m_payload = tag->children().front()->clone();
00038 }
00039
00040 Item::Item( const Item& item )
00041 : m_payload( item.m_payload ? item.m_payload->clone() : 0 )
00042 {
00043 m_id = item.m_id;
00044 }
00045
00046 Item::~Item()
00047 {
00048 delete m_payload;
00049 }
00050
00051 Tag* Item::tag() const
00052 {
00053 Tag* t = new Tag( "item" );
00054 t->addAttribute( "id", m_id );
00055 if( m_payload )
00056 t->addChild( m_payload->clone() );
00057
00058 return t;
00059 }
00060
00061 }
00062
00063 }