VCardManager Class Reference

A VCardManager can be used to fetch an entities VCard as well as for setting one's own VCard. More...

#include <vcardmanager.h>

Inherits IqHandler.

Inheritance diagram for VCardManager:

Inheritance graph
[legend]
Collaboration diagram for VCardManager:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 VCardManager (ClientBase *parent, Disco *disco)
virtual ~VCardManager ()
void fetchVCard (const JID &jid, VCardHandler *vch)
void storeVCard (const VCard *vcard, VCardHandler *vch)
virtual bool handleIq (Stanza *stanza)
virtual bool handleIqID (Stanza *stanza, int context)

Detailed Description

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.

Fetching a VCard

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, 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;
 };

Storing one's own VCard

Note:
Some, if not many, servers do not implement support for all the fields specified in JEP-0054. Therefore it is possible that you cannot retrieve fields you stored previously.
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.

Note:
Currently, this implementation lacks support for the following fields: AGENT, CATEGORIES, SOUND, KEY
Author:
Jakob Schroeter <js@camaya.net>
Since:
0.8

Definition at line 99 of file vcardmanager.h.


Constructor & Destructor Documentation

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.


Member Function Documentation

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.

Parameters:
jid The entity's JID.
vch The VCardHandler that will receive the result of the VCard fetch.

Definition at line 39 of file vcardmanager.cpp.

bool handleIq ( Stanza stanza  )  [virtual]

Reimplement this function if you want to be notified about incoming IQs.

Parameters:
stanza The complete Stanza.
Returns:
Indicates whether a request of type 'get' or 'set' has been handled. This includes the obligatory 'result' answer. If you return false, a 'error' will be sent.

Implements IqHandler.

Definition at line 77 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.

Parameters:
stanza The complete Stanza.
context A value to restore context, stored with ClientBase::trackID().
Returns:
Indicates whether a request of type 'get' or 'set' has been handled. This includes the obligatory 'result' answer. If you return false, a 'error' will be sent.

Implements IqHandler.

Definition at line 82 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.

Parameters:
vcard Your VCard to store.
vch The VCardHandler that will receive the result of the VCard store.

Definition at line 61 of file vcardmanager.cpp.


The documentation for this class was generated from the following files:
Generated on Sun Sep 24 21:57:42 2006 for gloox by  doxygen 1.4.7