15#include "lastactivity.h"
17#include "discohandler.h"
18#include "clientbase.h"
20#include "lastactivityhandler.h"
34 if(
tag->hasAttribute(
"seconds" ) )
35 m_seconds = atoi(
tag->findAttribute(
"seconds" ).c_str() );
37 m_status =
tag->cdata();
52 static const std::string filter =
"/iq/query[@xmlns='" +
XMLNS_LAST +
"']"
53 "|/presence/query[@xmlns='" +
XMLNS_LAST +
"']";
59 Tag* t =
new Tag(
"query" );
69 : m_lastActivityHandler( 0 ), m_parent( parent ),
70 m_active( time ( 0 ) )
74 m_parent->registerStanzaExtension(
new Query() );
84 m_parent->disco()->removeFeature(
XMLNS_LAST );
86 m_parent->removeIDHandler(
this );
94 m_parent->send( iq,
this, 0 );
105 m_parent->send( re );
112 if( !m_lastActivityHandler )
121 m_lastActivityHandler->handleLastActivityResult( iq.
from(), q->
seconds(), q->
status() );
124 m_lastActivityHandler->handleLastActivityError( iq.
from(), iq.
error()->
error() );
129 m_active = time( 0 );
This is the common base class for a Jabber/XMPP Client and a Jabber Component.
StanzaError error() const
An abstraction of an IQ stanza.
This is an abstraction of a LastActivity Query that can be used in XEP-0012 as well as XEP-0256.
virtual const std::string & filterString() const
const std::string & status() const
virtual Tag * tag() const
virtual void handleIqID(const IQ &iq, int context)
virtual bool handleIq(const IQ &iq)
LastActivity(ClientBase *parent)
void query(const JID &jid)
StanzaExtension(int type)
void addExtension(const StanzaExtension *se)
const std::string & id() const
const Error * error() const
const StanzaExtension * findExtension(int type) const
This is an abstraction of an XML element.
bool setCData(const std::string &cdata)
bool addAttribute(Attribute *attr)
bool setXmlns(const std::string &xmlns, const std::string &prefix=EmptyString)
The namespace for the gloox library.
const std::string XMLNS_LAST
const std::string EmptyString