smf/smfservermodule/smfclient/common/smfcontact.h
changeset 14 a469c0e6e7fb
parent 10 77a56c951f86
equal deleted inserted replaced
13:b5d63d5fc252 14:a469c0e6e7fb
    19  */
    19  */
    20 
    20 
    21 #ifndef SMFCONTACT_H_
    21 #ifndef SMFCONTACT_H_
    22 #define SMFCONTACT_H_
    22 #define SMFCONTACT_H_
    23 
    23 
    24 #include "qtcontacts.h"
    24 #include <qtcontacts.h>
    25 #include "smfclientglobal.h"
       
    26 #include <qdatastream.h>
    25 #include <qdatastream.h>
    27 #include <QSharedData>
    26 #include <QSharedData>
    28 #include <QVariant>
    27 #include <QVariant>
    29 //#include <smfclientglobal.h>
    28 #include "smfclientglobal.h"
       
    29 
    30 #include "smfcontact_p.h"
    30 #include "smfcontact_p.h"
    31 
    31 
    32 using namespace QtMobility;
    32 using namespace QtMobility;
    33 
    33 
    34 
    34 /**
    35 //TODO:- For the time being we'll just store a string SmfContact 
    35  * Max size for one SmfContact
       
    36  */
       
    37 const int MaxSmfContactSize = 1000;
       
    38 
    36 /**
    39 /**
    37  * @ingroup smf_common_group
    40  * @ingroup smf_common_group
    38  * The contact class represents a social contact
    41  * The contact class represents a social contact
    39  * 
    42  * 
    40  * Note: This class has dependencies on QtMobility project
    43  * Note: This class has dependencies on QtMobility project
    41  */
    44  */
    42 //QList<SmfContact> gives error for serialization if its derived from QObject
    45 class  SMFCLIENT_EXPORT SmfContact
    43 class  SMFCLIENT_EXPORT SmfContact //: public QObject
       
    44 	{
    46 	{
    45 	//Q_OBJECT
       
    46 
       
    47 public:
    47 public:
    48 	/**
    48 	/**
    49 	 * Constructor with default argument
    49 	 * Constructor with default argument
    50 	 * @param aParent The parent object
    50 	 * @param aParent The parent object
    51 	 */
    51 	 */
    56 	 * @param aOther The reference object
    56 	 * @param aOther The reference object
    57 	 */
    57 	 */
    58 	SmfContact( const SmfContact &aOther );
    58 	SmfContact( const SmfContact &aOther );
    59 	
    59 	
    60 	/**
    60 	/**
       
    61 	 * Overloaded = operator
       
    62 	 * @param aOther The reference object
       
    63 	 * @return The target reference value
       
    64 	 */
       
    65 	SmfContact& operator=( const SmfContact &aOther );
       
    66 	
       
    67 	/**
    61 	 * Destructor
    68 	 * Destructor
    62 	 */
    69 	 */
    63 	~SmfContact( );
    70 	~SmfContact( );
    64 //Q_DECLARE_LATIN1_LITERAL(SubTypeAddress, "Address");
    71 	
    65 //Q_DECLARE_LATIN1_LITERAL(SubTypeAnniversary, "Anniversary");
       
    66 //Q_DECLARE_LATIN1_LITERAL(SubTypeAvatar, "Avatar");
       
    67 //Q_DECLARE_LATIN1_LITERAL(SubTypeBirthday, "Birthday");
       
    68 //Q_DECLARE_LATIN1_LITERAL(SubTypeContactId, "ContactId");
       
    69 //Q_DECLARE_LATIN1_LITERAL(SubTypeEmailAddress, "EmailAddress");
       
    70 //Q_DECLARE_LATIN1_LITERAL(SubTypeGender, "Gender");
       
    71 //Q_DECLARE_LATIN1_LITERAL(SubTypeGeolocation, "Geolocation");
       
    72 //Q_DECLARE_LATIN1_LITERAL(SubTypeGuid, "Guid");
       
    73 //Q_DECLARE_LATIN1_LITERAL(SubTypeName, "Name");
       
    74 //Q_DECLARE_LATIN1_LITERAL(SubTypeNickname, "Nickname");
       
    75 //Q_DECLARE_LATIN1_LITERAL(SubTypeNote, "Note");
       
    76 //Q_DECLARE_LATIN1_LITERAL(SubTypeOnlineAccount, "OnlineAccount");
       
    77 //Q_DECLARE_LATIN1_LITERAL(SubTypeOrganization, "Organization");
       
    78 //Q_DECLARE_LATIN1_LITERAL(SubTypePhoneNumber, "PhoneNumber");
       
    79 //Q_DECLARE_LATIN1_LITERAL(SubTypeTimestamp, "Timestamp");
       
    80 //Q_DECLARE_LATIN1_LITERAL(SubTypeType, "Type");
       
    81 //Q_DECLARE_LATIN1_LITERAL(SubTypeUrl, "Url");
       
    82 public slots:
    72 public slots:
    83 	/**
    73 	/**
    84 	 * Method to get the available sub fields for contacts.
    74 	 * Method to get the available sub fields for contacts.
    85 	 * The following are the available sub types of a contact
    75 	 * The following are the available sub types of a contact
    86 	 *   QtMobility::QContactAddress		Address;
    76 	 *   QtMobility::QContactAddress		Address;
    88 	 *   QtMobility::QContactAvatar			Avatar;
    78 	 *   QtMobility::QContactAvatar			Avatar;
    89 	 *   QtMobility::QContactBirthday		Birthday;
    79 	 *   QtMobility::QContactBirthday		Birthday;
    90 	 *   QtMobility::QContactId				ContactId;
    80 	 *   QtMobility::QContactId				ContactId;
    91 	 *   QtMobility::QContactEmailAddress	EmailAddress;
    81 	 *   QtMobility::QContactEmailAddress	EmailAddress;
    92 	 *   QtMobility::QContactGender			Gender;
    82 	 *   QtMobility::QContactGender			Gender;
    93 	 *   QtMobility::QContactGeolocation	Geolocation;
    83 	 *   QtMobility::QContactGeoLocation	Geolocation;
    94 	 *   QtMobility::QContactGuid			Guid;
    84 	 *   QtMobility::QContactGuid			Guid;
    95 	 *   QtMobility::QContactName			Name;
    85 	 *   QtMobility::QContactName			Name;
    96 	 *   QtMobility::QContactNickname		Nickname;
    86 	 *   QtMobility::QContactNickname		Nickname;
    97 	 *   QtMobility::QContactNote			Note;
    87 	 *   QtMobility::QContactNote			Note;
    98 	 *   QtMobility::QContactOnlineAccount	OnlineAccount;
    88 	 *   QtMobility::QContactOnlineAccount	OnlineAccount;
    99 	 *   QtMobility::QContactOrganization	Organization;
    89 	 *   QtMobility::QContactOrganization	Organization;
   100 	 *   QtMobility::QContactPhoneNumber	PhoneNumber;
    90 	 *   QtMobility::QContactPhoneNumber	PhoneNumber;
       
    91 	 *   QtMobility::QContactPresence		Presence;
       
    92 	 *   QtMobility::QContactThumbnail		Thumbnail;
   101 	 *   QtMobility::QContactTimestamp		Timestamp;
    93 	 *   QtMobility::QContactTimestamp		Timestamp;
   102 	 *   QtMobility::QContactType			Type;
    94 	 *   QtMobility::QContactType			Type;
   103 	 *   QtMobility::QContactUrl			Url;
    95 	 *   QtMobility::QContactUrl			Url;
   104 	 * @return The Available sub fields for this contact
    96 	 * @return The Available sub fields for this contact
   105 	 */
    97 	 */
   106 
       
   107 	QStringList subTypes( ) const;
    98 	QStringList subTypes( ) const;
   108 	
    99 	
   109 	/**
   100 	/**
   110 	 * Method to convert an SmfContact to a QContact
   101 	 * Method to convert an SmfContact to a QContact
   111 	 * Changes made to the returned QContact will not be reflected 
   102 	 * Changes made to the returned QContact will not be reflected 
   122 	 */
   113 	 */
   123 	QVariant value( const QString& aSubType ) const;
   114 	QVariant value( const QString& aSubType ) const;
   124 	
   115 	
   125 	/**
   116 	/**
   126 	 * Method to set value for a subtype
   117 	 * Method to set value for a subtype
       
   118 	 * @param aSubType The subtype string
       
   119 	 * @param value Thhe value to be set for the subtype
   127 	 */
   120 	 */
   128 	void setValue(const QString& aSubType,QVariant& value);
   121 	void setValue(const QString& aSubType,QVariant& value);
   129 	void writeLog(QString log) const;
   122 
   130 private:
   123 private:
   131 	QSharedDataPointer<SmfContactPrivate> d;
   124 	QSharedDataPointer<SmfContactPrivate> d;
   132 	
   125 	
   133 	friend QDataStream &operator<<( QDataStream &aDataStream, 
   126 	friend QDataStream &operator<<( QDataStream &aDataStream, 
   134 			const SmfContact &aContact );
   127 			const SmfContact &aContact );
   156  * @param aContact The SmfContact object to be internalized
   149  * @param aContact The SmfContact object to be internalized
   157  * @return reference to the stream
   150  * @return reference to the stream
   158  */
   151  */
   159 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
   152 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
   160 		SmfContact &aContact );
   153 		SmfContact &aContact );
       
   154 
       
   155 
   161 typedef QList<SmfContact> SmfContactList;
   156 typedef QList<SmfContact> SmfContactList;
   162 /**
   157 
   163  * Serialization support for Qt mobility contact
   158 
   164  */
   159 /**
   165 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
   160  * Serialization support for QtMobility QContact classes
   166 		const QContactName &aContact );
   161  */
   167 
   162 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
   168 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
   163 	const QContactAddress &aAddress );
   169 		QContactName &aContact );
   164 
       
   165 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   166 		QContactAddress &aAddress );
       
   167 
       
   168 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   169 	const QContactAnniversary &aAnniversary );
       
   170 
       
   171 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   172 		QContactAnniversary &aAnniversary );
       
   173 
       
   174 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   175 	const QContactAvatar &aAvatar );
       
   176 
       
   177 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   178 		QContactAvatar &aAvatar );
       
   179 
       
   180 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   181 	const QContactBirthday &aBirthday );
       
   182 
       
   183 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   184 		QContactBirthday &aBirthday );
       
   185 
       
   186 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   187 	const QContactEmailAddress &aEMail );
       
   188 
       
   189 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   190 		QContactEmailAddress &aEMail );
       
   191 
       
   192 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   193 	const QContactGender &aGender );
       
   194 
       
   195 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   196 		QContactGender &aGender );
       
   197 
       
   198 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   199 	const QContactGeoLocation &aGeolocation );
       
   200 
       
   201 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   202 		QContactGeoLocation &aGeolocation );
       
   203 
       
   204 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   205 	const QContactGuid &aGuid );
       
   206 
       
   207 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   208 		QContactGuid &aGuid );
       
   209 
       
   210 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   211 	const QContactId &aContactId );
       
   212 
       
   213 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   214 		QContactId &aContactId );
       
   215 
       
   216 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   217 	const QContactName &aName );
       
   218 
       
   219 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   220 		QContactName &aName );
       
   221 
       
   222 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   223 	const QContactNickname &aNickname );
       
   224 
       
   225 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   226 		QContactNickname &aNickname );
       
   227 
       
   228 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   229 	const QContactNote &aNote );
       
   230 
       
   231 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   232 		QContactNote &aNote );
       
   233 
       
   234 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   235 	const QContactOnlineAccount &aOnlineAccount );
       
   236 
       
   237 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   238 		QContactOnlineAccount &aOnlineAccount );
       
   239 
       
   240 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   241 	const QContactOrganization &aOrganization );
       
   242 
       
   243 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   244 		QContactOrganization &aOrganization );
       
   245 
       
   246 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   247 	const QContactPhoneNumber &aPhoneNumber );
       
   248 
       
   249 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   250 		QContactPhoneNumber &aPhoneNumber );
       
   251 
       
   252 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   253 	const QContactPresence &aPresence );
       
   254 
       
   255 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   256 		QContactPresence &aPresence );
       
   257 
       
   258 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   259 	const QContactThumbnail &aThumbnail );
       
   260 
       
   261 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   262 		QContactThumbnail &aThumbnail );
       
   263 
       
   264 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   265 	const QContactTimestamp &aTimestamp );
       
   266 
       
   267 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   268 		QContactTimestamp &aTimestamp );
       
   269 
       
   270 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   271 	const QContactType &aType );
       
   272 
       
   273 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   274 		QContactType &aType );
       
   275 
       
   276 SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
       
   277 	const QContactUrl &aUrl );
       
   278 
       
   279 SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
       
   280 		QContactUrl &aUrl );
       
   281 
       
   282 
   170 // Make the class SmfContact known to QMetaType, so that as to register it.
   283 // Make the class SmfContact known to QMetaType, so that as to register it.
   171 Q_DECLARE_METATYPE(SmfContact)
   284 Q_DECLARE_METATYPE(SmfContact)
   172 Q_DECLARE_METATYPE(QList<SmfContact>)
   285 Q_DECLARE_METATYPE(QList<SmfContact>)
   173 
   286 
   174 //make qt mobility related classes known to moc
   287 //make qt mobility related classes known to moc
   177 Q_DECLARE_METATYPE(QContactAvatar)
   290 Q_DECLARE_METATYPE(QContactAvatar)
   178 Q_DECLARE_METATYPE(QContactBirthday)
   291 Q_DECLARE_METATYPE(QContactBirthday)
   179 Q_DECLARE_METATYPE(QContactId)
   292 Q_DECLARE_METATYPE(QContactId)
   180 Q_DECLARE_METATYPE(QContactEmailAddress)
   293 Q_DECLARE_METATYPE(QContactEmailAddress)
   181 Q_DECLARE_METATYPE(QContactGender)
   294 Q_DECLARE_METATYPE(QContactGender)
       
   295 Q_DECLARE_METATYPE(QContactGeoLocation)
   182 Q_DECLARE_METATYPE(QContactGuid)
   296 Q_DECLARE_METATYPE(QContactGuid)
   183 Q_DECLARE_METATYPE(QContactName)
   297 Q_DECLARE_METATYPE(QContactName)
   184 Q_DECLARE_METATYPE(QContactNickname)
   298 Q_DECLARE_METATYPE(QContactNickname)
   185 Q_DECLARE_METATYPE(QContactNote)
   299 Q_DECLARE_METATYPE(QContactNote)
   186 Q_DECLARE_METATYPE(QContactOnlineAccount)
   300 Q_DECLARE_METATYPE(QContactOnlineAccount)
   187 Q_DECLARE_METATYPE(QContactOrganization)
   301 Q_DECLARE_METATYPE(QContactOrganization)
   188 Q_DECLARE_METATYPE(QContactPhoneNumber)
   302 Q_DECLARE_METATYPE(QContactPhoneNumber)
       
   303 Q_DECLARE_METATYPE(QContactPresence)
       
   304 Q_DECLARE_METATYPE(QContactThumbnail)
   189 Q_DECLARE_METATYPE(QContactTimestamp)
   305 Q_DECLARE_METATYPE(QContactTimestamp)
   190 Q_DECLARE_METATYPE(QContactType)
   306 Q_DECLARE_METATYPE(QContactType)
   191 Q_DECLARE_METATYPE(QContactUrl)
   307 Q_DECLARE_METATYPE(QContactUrl)
   192 
   308 
   193 #endif /* SMFCONTACT_H_ */
   309 #endif /* SMFCONTACT_H_ */