gloox 1.0
|
A VCardManager can be used to fetch an entities VCard as well as for setting one's own VCard. More...
#include <vcardmanager.h>
Public Member Functions | |
VCardManager (ClientBase *parent) | |
virtual | ~VCardManager () |
void | fetchVCard (const JID &jid, VCardHandler *vch) |
void | storeVCard (VCard *vcard, VCardHandler *vch) |
void | cancelVCardOperations (VCardHandler *vch) |
virtual bool | handleIq (const IQ &iq) |
virtual void | handleIqID (const IQ &iq, int context) |
A VCardManager can be used to fetch an entities VCard as well as for setting one's own VCard.
You need only one VCardManager per Client/ClientBase.
Create a VCardManager and have a VCardHandler ready. Then simply call fetchVCard() and wait for the result.
class MyClass : public VCardHandler { public: MyClass() { m_myClass = new MyClass(); m_vcardManager = new VCardManager( m_client ); }; ... 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; };
Similar to the above, you need a VCardManager and a VCardHandler. Then construct your VCard and call storeVCard().
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.
When cleaning up, delete your VCardManager instance before deleting the Client/ClientBase instance.
Definition at line 100 of file vcardmanager.h.
build buildd gloox src vcardmanager cpp build buildd gloox src vcardmanager cpp VCardManager | ( | ClientBase * | parent | ) |
Constructor.
parent | The ClientBase object to use for communication. |
Definition at line 26 of file vcardmanager.cpp.
~VCardManager | ( | ) | [virtual] |
Virtual destructor.
Definition at line 37 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.
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. Should be a bare JID unless you want to fetch the VCard of, e.g., a MUC item. |
vch | The VCardHandler that will receive the result of the VCard fetch. |
Definition at line 47 of file vcardmanager.cpp.
virtual bool handleIq | ( | const IQ & | iq | ) | [inline, virtual] |
Reimplement this function if you want to be notified about incoming IQs.
iq | The complete IQ stanza. |
Implements IqHandler.
Definition at line 142 of file vcardmanager.h.
void handleIqID | ( | const IQ & | iq, |
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.
iq | The complete IQ stanza. |
context | A value to restore context, stored with ClientBase::trackID(). |
Implements IqHandler.
Definition at line 90 of file vcardmanager.cpp.
void storeVCard | ( | 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.