#include <vcardmanager.h>
Inherits IqHandler.
Inheritance diagram for VCardManager:
Public Member Functions | |
VCardManager (ClientBase *parent, Disco *disco) | |
virtual | ~VCardManager () |
void | fetchVCard (const JID &jid, VCardHandler *vch) |
void | storeVCard (const VCard *vcard, VCardHandler *vch) |
void | cancelVCardOperations (VCardHandler *vch) |
virtual bool | handleIq (Stanza *stanza) |
virtual bool | handleIqID (Stanza *stanza, int context) |
You need only one VCardManager per Client/ClientBase.
class MyClass : public VCardHandler { public: MyClass() { m_myClass = new MyClass(); m_vcardManager = new VCardManager( m_client, m_client->disco() ); }; ... void fetchVCard( const JID& jid ) { m_vcardManager->fetchVCard( jid, this ); }; virtual void handleVCard( const JID& jid, const VCard *vcard ); { printf( "received vcard\n" ); }; virtual void handleVCardResult( VCardContext context, const JID& jid, StanzaError se ) { printf( "vcard operation result received\n" ); }; ... private: VCardManager *m_vcardManager; };
void storeMyVCard() { VCard *v = new VCard(); v->setFormattedname( "Me" ); v->setNickname( "Myself" ); ... m_vcardManager->storeVCard( v, this ); };
This implementation supports more than one address, address label, email address and telephone number.
Definition at line 99 of file vcardmanager.h.
VCardManager | ( | ClientBase * | parent, | |
Disco * | disco | |||
) |
Constructor.
Definition at line 23 of file vcardmanager.cpp.
~VCardManager | ( | ) | [virtual] |
Virtual destructor.
Definition at line 33 of file vcardmanager.cpp.
void fetchVCard | ( | const JID & | jid, | |
VCardHandler * | vch | |||
) |
Use this function to fetch the VCard of a remote entity or yourself. The result will be announced by calling handleVCard() the VCardHandler.
jid | The entity's JID. | |
vch | The VCardHandler that will receive the result of the VCard fetch. |
Definition at line 42 of file vcardmanager.cpp.
void storeVCard | ( | const VCard * | vcard, | |
VCardHandler * | vch | |||
) |
Use this function to store or update your own VCard on the server. Remember to always send a full VCard, not a delta of changes. If you, for any reason, pass a foreign VCard to this function, your own will be overwritten.
vcard | Your VCard to store. | |
vch | The VCardHandler that will receive the result of the VCard store. |
Definition at line 77 of file vcardmanager.cpp.
void cancelVCardOperations | ( | VCardHandler * | vch | ) |
Use this function, e.g. from your VCardHandler-derived class's dtor, to cancel any outstanding operations (fetchVCard(), storeVCard()). Calling this function even if no operations are pending is just fine.
vch | The VCardHandler to remove from any queues. |
Definition at line 64 of file vcardmanager.cpp.
bool handleIq | ( | Stanza * | stanza | ) | [virtual] |
Reimplement this function if you want to be notified about incoming IQs.
stanza | The complete Stanza. |
Implements IqHandler.
Definition at line 93 of file vcardmanager.cpp.
bool handleIqID | ( | Stanza * | stanza, | |
int | context | |||
) | [virtual] |
Reimplement this function if you want to be notified about incoming IQs with a specific value of the id
attribute. You have to enable tracking of those IDs using Client::trackID()
. This is usually useful for IDs that generate a positive reply, i.e. <iq type='result' id='reg'/> where a namespace filter wouldn't work.
stanza | The complete Stanza. | |
context | A value to restore context, stored with ClientBase::trackID(). |
Implements IqHandler.
Definition at line 98 of file vcardmanager.cpp.