pushing changes for common libs and trace messages
authorcgandhi
Thu, 05 Aug 2010 16:48:48 +0530
changeset 18 013a02bf2bb0
parent 17 106a4bfcb866
child 19 c412f0526c34
pushing changes for common libs and trace messages
smf/bld.inf
smf/smf.pro
smf/smfcredentialmgr/smfcredmgrclient/bwins/smfcredmgrclientu.def
smf/smfcredentialmgr/smfcredmgrclient/eabi/smfcredmgrclientu.def
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.cpp
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.pro
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_p.cpp
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_template.pkg
smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientutil.cpp
smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrclientdatastruct.h
smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrclientglobal.h
smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrcommon.h
smf/smfcredentialmgr/smfcredmgrcommon/smfcredmgrcommon.pro
smf/smfcredentialmgr/smfcredmgrcommon/src/smfcredmgrclientdatastruct.cpp
smf/smfcredentialmgr/smfcredmgrcommon/src/smfutils.cpp
smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdb.h
smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdbuser.h
smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserver.h
smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserversession.h
smf/smfcredentialmgr/smfcredmgrserver/inc/smfkeystoremanager.h
smf/smfcredentialmgr/smfcredmgrserver/sis/SmfCredMgrServer_EKA2.sis
smf/smfcredentialmgr/smfcredmgrserver/sis/SmfCredMgrServer_EKA2.sisx
smf/smfcredentialmgr/smfcredmgrserver/smfcredmgrserver.pro
smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdb.cpp
smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdbuser.cpp
smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserver.cpp
smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserversession.cpp
smf/smfcredentialmgr/smfcredmgrserver/src/smfkeystoremanager.cpp
smf/smfservermodule/bld.inf
smf/smfservermodule/bwins/smfclientu.def
smf/smfservermodule/eabi/smfclientu.def
smf/smfservermodule/smfclient/ABLD.BAT
smf/smfservermodule/smfclient/bld.inf
smf/smfservermodule/smfclient/bwins/smfclientu.def
smf/smfservermodule/smfclient/client/client.pri
smf/smfservermodule/smfclient/client/smfactivityfetcher.cpp
smf/smfservermodule/smfclient/client/smfactivityfetcher.h
smf/smfservermodule/smfclient/client/smfactivityfetcher_p.cpp
smf/smfservermodule/smfclient/client/smfactivityfetcher_p.h
smf/smfservermodule/smfclient/client/smfclient.cpp
smf/smfservermodule/smfclient/client/smfclient.h
smf/smfservermodule/smfclient/client/smfclient_p.cpp
smf/smfservermodule/smfclient/client/smfclient_p.h
smf/smfservermodule/smfclient/client/smfclientqt.cpp
smf/smfservermodule/smfclient/client/smfclientqt.h
smf/smfservermodule/smfclient/client/smfclientsymbian.cpp
smf/smfservermodule/smfclient/client/smfclientsymbian.h
smf/smfservermodule/smfclient/client/smfclientsymbiansession.h
smf/smfservermodule/smfclient/client/smfcontactfetcher.cpp
smf/smfservermodule/smfclient/client/smfcontactfetcher.h
smf/smfservermodule/smfclient/client/smfcontactfetcher_p.cpp
smf/smfservermodule/smfclient/client/smfcontactfetcher_p.h
smf/smfservermodule/smfclient/client/smfgallery.cpp
smf/smfservermodule/smfclient/client/smfgallery.h
smf/smfservermodule/smfclient/client/smfgallery_p.cpp
smf/smfservermodule/smfclient/client/smfgallery_p.h
smf/smfservermodule/smfclient/client/smfmusic.cpp
smf/smfservermodule/smfclient/client/smfmusic.h
smf/smfservermodule/smfclient/client/smfmusic_p.cpp
smf/smfservermodule/smfclient/client/smfmusic_p.h
smf/smfservermodule/smfclient/client/smfpostprovider.cpp
smf/smfservermodule/smfclient/client/smfpostprovider.h
smf/smfservermodule/smfclient/client/smfpostprovider_p.cpp
smf/smfservermodule/smfclient/client/smfpostprovider_p.h
smf/smfservermodule/smfclient/client/smfrelationmgr.cpp
smf/smfservermodule/smfclient/client/smfrelationmgr.h
smf/smfservermodule/smfclient/client/smfrelationmgr_p.cpp
smf/smfservermodule/smfclient/client/smfrelationmgr_p.h
smf/smfservermodule/smfclient/common/common.pri
smf/smfservermodule/smfclient/common/smfactions.cpp
smf/smfservermodule/smfclient/common/smfactions.h
smf/smfservermodule/smfclient/common/smfactions_p.h
smf/smfservermodule/smfclient/common/smfalbum.cpp
smf/smfservermodule/smfclient/common/smfalbum.h
smf/smfservermodule/smfclient/common/smfalbum_p.h
smf/smfservermodule/smfclient/common/smfartists.cpp
smf/smfservermodule/smfclient/common/smfartists.h
smf/smfservermodule/smfclient/common/smfartists_p.h
smf/smfservermodule/smfclient/common/smfclientglobal.h
smf/smfservermodule/smfclient/common/smfcomment.cpp
smf/smfservermodule/smfclient/common/smfcomment.h
smf/smfservermodule/smfclient/common/smfcomment_p.h
smf/smfservermodule/smfclient/common/smfcontact.cpp
smf/smfservermodule/smfclient/common/smfcontact.h
smf/smfservermodule/smfclient/common/smfcontact_p.h
smf/smfservermodule/smfclient/common/smfevent.cpp
smf/smfservermodule/smfclient/common/smfevent.h
smf/smfservermodule/smfclient/common/smfevent_p.h
smf/smfservermodule/smfclient/common/smfglobal.h
smf/smfservermodule/smfclient/common/smfgroup.cpp
smf/smfservermodule/smfclient/common/smfgroup.h
smf/smfservermodule/smfclient/common/smfgroup_p.h
smf/smfservermodule/smfclient/common/smflocation.cpp
smf/smfservermodule/smfclient/common/smflocation.h
smf/smfservermodule/smfclient/common/smflocation_p.h
smf/smfservermodule/smfclient/common/smflyrics.cpp
smf/smfservermodule/smfclient/common/smflyrics.h
smf/smfservermodule/smfclient/common/smflyrics_p.h
smf/smfservermodule/smfclient/common/smfmusicfingerprint.cpp
smf/smfservermodule/smfclient/common/smfmusicfingerprint.h
smf/smfservermodule/smfclient/common/smfmusicfingerprint_p.h
smf/smfservermodule/smfclient/common/smfmusicprofile.cpp
smf/smfservermodule/smfclient/common/smfmusicprofile.h
smf/smfservermodule/smfclient/common/smfmusicprofile_p.h
smf/smfservermodule/smfclient/common/smfmusicrating.cpp
smf/smfservermodule/smfclient/common/smfmusicrating.h
smf/smfservermodule/smfclient/common/smfmusicrating_p.h
smf/smfservermodule/smfclient/common/smfobserver.h
smf/smfservermodule/smfclient/common/smfpicture.cpp
smf/smfservermodule/smfclient/common/smfpicture.h
smf/smfservermodule/smfclient/common/smfpicture_p.h
smf/smfservermodule/smfclient/common/smfpicturealbum.cpp
smf/smfservermodule/smfclient/common/smfpicturealbum.h
smf/smfservermodule/smfclient/common/smfpicturealbum_p.h
smf/smfservermodule/smfclient/common/smfplaylist.cpp
smf/smfservermodule/smfclient/common/smfplaylist.h
smf/smfservermodule/smfclient/common/smfplaylist_p.h
smf/smfservermodule/smfclient/common/smfpluginutil.cpp
smf/smfservermodule/smfclient/common/smfpluginutil.h
smf/smfservermodule/smfclient/common/smfpost.cpp
smf/smfservermodule/smfclient/common/smfpost.h
smf/smfservermodule/smfclient/common/smfpost_p.h
smf/smfservermodule/smfclient/common/smfprovider.cpp
smf/smfservermodule/smfclient/common/smfprovider.h
smf/smfservermodule/smfclient/common/smfsubtitle.cpp
smf/smfservermodule/smfclient/common/smfsubtitle.h
smf/smfservermodule/smfclient/common/smfsubtitle_p.h
smf/smfservermodule/smfclient/common/smftrackinfo.cpp
smf/smfservermodule/smfclient/common/smftrackinfo.h
smf/smfservermodule/smfclient/common/smftrackinfo_p.h
smf/smfservermodule/smfclient/common/smfurl.cpp
smf/smfservermodule/smfclient/common/smfurl.h
smf/smfservermodule/smfclient/common/smfurl_p.h
smf/smfservermodule/smfclient/eabi/smfclientu.def
smf/smfservermodule/smfclient/main.cpp
smf/smfservermodule/smfclient/smfactivityfetcher.cpp
smf/smfservermodule/smfclient/smfactivityfetcher.h
smf/smfservermodule/smfclient/smfactivityfetcher_p.cpp
smf/smfservermodule/smfclient/smfactivityfetcher_p.h
smf/smfservermodule/smfclient/smfclient.cpp
smf/smfservermodule/smfclient/smfclient.h
smf/smfservermodule/smfclient/smfclient.pkg
smf/smfservermodule/smfclient/smfclient.pro
smf/smfservermodule/smfclient/smfclient_p.cpp
smf/smfservermodule/smfclient/smfclient_p.h
smf/smfservermodule/smfclient/smfclientqt.cpp
smf/smfservermodule/smfclient/smfclientqt.h
smf/smfservermodule/smfclient/smfclientsymbian.cpp
smf/smfservermodule/smfclient/smfclientsymbian.h
smf/smfservermodule/smfclient/smfclientsymbiansession.h
smf/smfservermodule/smfclient/smfcontactfetcher.cpp
smf/smfservermodule/smfclient/smfcontactfetcher.h
smf/smfservermodule/smfclient/smfcontactfetcher_p.cpp
smf/smfservermodule/smfclient/smfcontactfetcher_p.h
smf/smfservermodule/smfclient/smfgallery.cpp
smf/smfservermodule/smfclient/smfgallery.h
smf/smfservermodule/smfclient/smfgallery_p.cpp
smf/smfservermodule/smfclient/smfgallery_p.h
smf/smfservermodule/smfclient/smfmusic.cpp
smf/smfservermodule/smfclient/smfmusic.h
smf/smfservermodule/smfclient/smfmusic_p.cpp
smf/smfservermodule/smfclient/smfmusic_p.h
smf/smfservermodule/smfclient/smfpostprovider.cpp
smf/smfservermodule/smfclient/smfpostprovider.h
smf/smfservermodule/smfclient/smfpostprovider_p.cpp
smf/smfservermodule/smfclient/smfpostprovider_p.h
smf/smfservermodule/smfclient/smfrelationmgr.cpp
smf/smfservermodule/smfclient/smfrelationmgr.h
smf/smfservermodule/smfclient/smfrelationmgr_p.cpp
smf/smfservermodule/smfclient/smfrelationmgr_p.h
smf/smfservermodule/smfcommon/bwins/smfcommonu.def
smf/smfservermodule/smfcommon/eabi/smfcommonu.def
smf/smfservermodule/smfcommon/smfactions.cpp
smf/smfservermodule/smfcommon/smfactions.h
smf/smfservermodule/smfcommon/smfactions_p.h
smf/smfservermodule/smfcommon/smfalbum.cpp
smf/smfservermodule/smfcommon/smfalbum.h
smf/smfservermodule/smfcommon/smfalbum_p.h
smf/smfservermodule/smfcommon/smfartists.cpp
smf/smfservermodule/smfcommon/smfartists.h
smf/smfservermodule/smfcommon/smfartists_p.h
smf/smfservermodule/smfcommon/smfclientglobal.h
smf/smfservermodule/smfcommon/smfcomment.cpp
smf/smfservermodule/smfcommon/smfcomment.h
smf/smfservermodule/smfcommon/smfcomment_p.h
smf/smfservermodule/smfcommon/smfcommon.pkg
smf/smfservermodule/smfcommon/smfcommon.pro
smf/smfservermodule/smfcommon/smfcontact.cpp
smf/smfservermodule/smfcommon/smfcontact.h
smf/smfservermodule/smfcommon/smfcontact_p.h
smf/smfservermodule/smfcommon/smfevent.cpp
smf/smfservermodule/smfcommon/smfevent.h
smf/smfservermodule/smfcommon/smfevent_p.h
smf/smfservermodule/smfcommon/smfglobal.h
smf/smfservermodule/smfcommon/smfgroup.cpp
smf/smfservermodule/smfcommon/smfgroup.h
smf/smfservermodule/smfcommon/smfgroup_p.h
smf/smfservermodule/smfcommon/smflocation.cpp
smf/smfservermodule/smfcommon/smflocation.h
smf/smfservermodule/smfcommon/smflocation_p.h
smf/smfservermodule/smfcommon/smflyrics.cpp
smf/smfservermodule/smfcommon/smflyrics.h
smf/smfservermodule/smfcommon/smflyrics_p.h
smf/smfservermodule/smfcommon/smfmusicfingerprint.cpp
smf/smfservermodule/smfcommon/smfmusicfingerprint.h
smf/smfservermodule/smfcommon/smfmusicfingerprint_p.h
smf/smfservermodule/smfcommon/smfmusicprofile.cpp
smf/smfservermodule/smfcommon/smfmusicprofile.h
smf/smfservermodule/smfcommon/smfmusicprofile_p.h
smf/smfservermodule/smfcommon/smfmusicrating.cpp
smf/smfservermodule/smfcommon/smfmusicrating.h
smf/smfservermodule/smfcommon/smfmusicrating_p.h
smf/smfservermodule/smfcommon/smfobserver.h
smf/smfservermodule/smfcommon/smfpicture.cpp
smf/smfservermodule/smfcommon/smfpicture.h
smf/smfservermodule/smfcommon/smfpicture_p.h
smf/smfservermodule/smfcommon/smfpicturealbum.cpp
smf/smfservermodule/smfcommon/smfpicturealbum.h
smf/smfservermodule/smfcommon/smfpicturealbum_p.h
smf/smfservermodule/smfcommon/smfplaylist.cpp
smf/smfservermodule/smfcommon/smfplaylist.h
smf/smfservermodule/smfcommon/smfplaylist_p.h
smf/smfservermodule/smfcommon/smfpluginutil.cpp
smf/smfservermodule/smfcommon/smfpluginutil.h
smf/smfservermodule/smfcommon/smfpost.cpp
smf/smfservermodule/smfcommon/smfpost.h
smf/smfservermodule/smfcommon/smfpost_p.h
smf/smfservermodule/smfcommon/smfprovider.cpp
smf/smfservermodule/smfcommon/smfprovider.h
smf/smfservermodule/smfcommon/smfsubtitle.cpp
smf/smfservermodule/smfcommon/smfsubtitle.h
smf/smfservermodule/smfcommon/smfsubtitle_p.h
smf/smfservermodule/smfcommon/smftrackinfo.cpp
smf/smfservermodule/smfcommon/smftrackinfo.h
smf/smfservermodule/smfcommon/smftrackinfo_p.h
smf/smfservermodule/smfcommon/smfurl.cpp
smf/smfservermodule/smfcommon/smfurl.h
smf/smfservermodule/smfcommon/smfurl_p.h
smf/smfservermodule/smfserver/ABLD.BAT
smf/smfservermodule/smfserver/bld.inf
smf/smfservermodule/smfserver/main.cpp
smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.cpp
smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.h
smf/smfservermodule/smfserver/pluginmgr/smfpluginmanagerutil.cpp
smf/smfservermodule/smfserver/pluginmgr/smfpluginmanagerutil.h
smf/smfservermodule/smfserver/server/server.pri
smf/smfservermodule/smfserver/server/smfserver.cpp
smf/smfservermodule/smfserver/server/smfserver.h
smf/smfservermodule/smfserver/server/smfserverqt.cpp
smf/smfservermodule/smfserver/server/smfserverqt_p.h
smf/smfservermodule/smfserver/server/smfserverqtsession.cpp
smf/smfservermodule/smfserver/server/smfserverqtsession.h
smf/smfservermodule/smfserver/server/smfserversymbian.cpp
smf/smfservermodule/smfserver/server/smfserversymbian_p.h
smf/smfservermodule/smfserver/server/smfsettingshandler.cpp
smf/smfservermodule/smfserver/server/smfsettingshandler.h
smf/smfservermodule/smfserver/server/smfsettingshandler_qt.cpp
smf/smfservermodule/smfserver/server/smfsettingshandler_qt.h
smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.cpp
smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.h
smf/smfservermodule/smfserver/smfplugins/smfgalleryplugin.h
smf/smfservermodule/smfserver/smfplugins/smfmusiceventsplugin.h
smf/smfservermodule/smfserver/smfplugins/smfmusicsearchplugin.h
smf/smfservermodule/smfserver/smfplugins/smfmusicserviceplugin.h
smf/smfservermodule/smfserver/smfplugins/smfpluginbase.h
smf/smfservermodule/smfserver/smfplugins/smfpostproviderplugin.h
smf/smfservermodule/smfserver/smfserver.loc
smf/smfservermodule/smfserver/smfserver.pro
smf/smfservermodule/smfserver/smfserver.rss
smf/smfservermodule/smfserver/smfserver_installer.pkg
smf/smfservermodule/smfserver/smfserver_reg.rss
smf/smfservermodule/smfserver/smfserver_template.pkg
smf/smfservermodule/smfserver/transportmgr/smftransportmanager.cpp
smf/smfservermodule/smfserver/transportmgr/smftransportmanagerutil.cpp
smf/smfservermodule/smfservermodule.pro
smf/smfservermodule/tests/tests.pro
smf/smfservermodule/tests/testsmfgetservices/testsmfgetservices.cpp
smf/smfservermodule/tests/testsmfgetservices/testsmfgetservices.pro
smf/smfservermodule/util/qjson/ABLD.BAT
smf/smfservermodule/util/qjson/bld.inf
smf/smfservermodule/util/qjson/lib/qjson.prl
smf/smfservermodule/util/qjson/src/ABLD.BAT
smf/smfservermodule/util/qjson/src/bld.inf
smf/smfservermodule/util/qjson/src/eabi/qjsonu.def
smf/smfservermodule/util/qjson/src/qjson_installer.pkg
smf/smfservermodule/util/qjson/src/qjson_template.pkg
smf/smfservermodule/util/qjson/tests/Makefile
smf/smfservermodule/util/qjson/tests/bld.inf
smf/smfservermodule/util/qjson/tests/tests_template.pkg
smf/smfsettingsui/PlatfromIndependentSettings.cpp
smf/smfsettingsui/PlatfromIndependentSettings.h
smf/smfsettingsui/SMFSettings.cpp
smf/smfsettingsui/SMFSettings.h
smf/smfsettingsui/SMFSettings.loc
smf/smfsettingsui/SMFSettings.rss
smf/smfsettingsui/SMFSettings_installer.pkg
smf/smfsettingsui/SMFSettings_reg.rss
smf/smfsettingsui/SMFSettings_template.pkg
smf/smfsettingsui/SettingsConstants.h
smf/smfsettingsui/SettingsRepository.cpp
smf/smfsettingsui/SettingsRepository.h
smf/smfsettingsui/ui_SMFSettings.h
--- a/smf/bld.inf	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-// ============================================================================
-// * Makefile for building: smf
-// * Generated by qmake (2.01a) (Qt 4.6.1) on: 2010-05-05T13:57:42
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// * Project:  smf.pro
-// * Template: subdirs
-// ============================================================================
-
-#define BLD_INF_SMF_FCFA3DF2
-
-#ifndef BLD_INF_SMFCREDENTIALMGR_F265B6F1
-	#include "smfcredentialmgr\bld.inf"
-#endif // BLD_INF_SMFCREDENTIALMGR_F265B6F1
-#ifndef BLD_INF_SMFSERVERMODULE_0FBFD7DA
-	#include "smfservermodule\bld.inf"
-#endif // BLD_INF_SMFSERVERMODULE_0FBFD7DA
-#ifndef BLD_INF_SMFSETTINGSUI_0870E284
-	#include "smfsettingsui\bld.inf"
-#endif // BLD_INF_SMFSETTINGSUI_0870E284
-
-prj_platforms
-
-WINSCW GCCE ARMV5 ARMV6
-
-
-prj_mmpfiles
-
-
-prj_extensions
-
--- a/smf/smf.pro	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smf.pro	Thu Aug 05 16:48:48 2010 +0530
@@ -1,7 +1,5 @@
 TEMPLATE  = 	subdirs
-
 SUBDIRS   =	smfcredentialmgr \
 		smfsettingsui \
 		smfservermodule 
-		
 CONFIG += ordered
--- a/smf/smfcredentialmgr/smfcredmgrclient/bwins/smfcredmgrclientu.def	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/bwins/smfcredmgrclientu.def	Thu Aug 05 16:48:48 2010 +0530
@@ -1,14 +1,14 @@
 EXPORTS
-	?DeleteRSAKey@SmfCredMgrClient@@QAEXVQString@@@Z @ 1 NONAME ; void SmfCredMgrClient::DeleteRSAKey(class QString)
-	?URLList@SmfCredMgrClient@@QBE?AV?$QList@VQUrl@@@@VQString@@@Z @ 2 NONAME ; class QList<class QUrl> SmfCredMgrClient::URLList(class QString) const
-	?GenerateNONCE@SmfCredMgrClient@@QAE?AVQString@@_J@Z @ 3 NONAME ; class QString SmfCredMgrClient::GenerateNONCE(long long)
-	?AuthDataSet@SmfCredMgrClient@@QBE_NVQString@@VQDateTime@@AAV?$QMap@VQByteArray@@V1@@@@Z @ 4 NONAME ; bool SmfCredMgrClient::AuthDataSet(class QString, class QDateTime, class QMap<class QByteArray, class QByteArray> &) const
-	?SignMessage@SmfCredMgrClient@@QAE?AW4SMFCredMgrErrorCode@@VQString@@0AAV3@W4SmfSignatureMethod@@@Z @ 5 NONAME ; enum SMFCredMgrErrorCode SmfCredMgrClient::SignMessage(class QString, class QString, class QString &, enum SmfSignatureMethod)
+	??0SmfCredMgrClient@@QAE@PAVQObject@@@Z @ 1 NONAME ; SmfCredMgrClient::SmfCredMgrClient(class QObject *)
+	??1SmfCredMgrClient@@UAE@XZ @ 2 NONAME ; SmfCredMgrClient::~SmfCredMgrClient(void)
+	?AuthDataSet@SmfCredMgrClient@@QBE_NVQString@@VQDateTime@@AAV?$QMap@VQByteArray@@V1@@@@Z @ 3 NONAME ; bool SmfCredMgrClient::AuthDataSet(class QString, class QDateTime, class QMap<class QByteArray, class QByteArray> &) const
+	?AuthenticatedPluginList@SmfCredMgrClient@@QBE?AVQStringList@@VQString@@@Z @ 4 NONAME ; class QStringList SmfCredMgrClient::AuthenticatedPluginList(class QString) const
+	?ChangePluginIDList@SmfCredMgrClient@@QAEXVQString@@_N0@Z @ 5 NONAME ; void SmfCredMgrClient::ChangePluginIDList(class QString, bool, class QString)
 	?CheckPluginAuthentication@SmfCredMgrClient@@QBE_NVQString@@@Z @ 6 NONAME ; bool SmfCredMgrClient::CheckPluginAuthentication(class QString) const
-	??1SmfCredMgrClient@@UAE@XZ @ 7 NONAME ; SmfCredMgrClient::~SmfCredMgrClient(void)
-	?StoreAuthData@SmfCredMgrClient@@QAE?AVQString@@V?$QMap@VQByteArray@@V1@@@VQDateTime@@V?$QList@VQUrl@@@@VQStringList@@V2@_N@Z @ 8 NONAME ; class QString SmfCredMgrClient::StoreAuthData(class QMap<class QByteArray, class QByteArray>, class QDateTime, class QList<class QUrl>, class QStringList, class QString, bool)
-	?ChangePluginIDList@SmfCredMgrClient@@QAEXVQString@@_N0@Z @ 9 NONAME ; void SmfCredMgrClient::ChangePluginIDList(class QString, bool, class QString)
-	?AuthenticatedPluginList@SmfCredMgrClient@@QBE?AVQStringList@@VQString@@@Z @ 10 NONAME ; class QStringList SmfCredMgrClient::AuthenticatedPluginList(class QString) const
-	??0SmfCredMgrClient@@QAE@PAVQObject@@@Z @ 11 NONAME ; SmfCredMgrClient::SmfCredMgrClient(class QObject *)
-	?StoreRSAKeys@SmfCredMgrClient@@QAE?AVQString@@V2@0VQDateTime@@@Z @ 12 NONAME ; class QString SmfCredMgrClient::StoreRSAKeys(class QString, class QString, class QDateTime)
+	?DeleteRSAKey@SmfCredMgrClient@@QAEXVQString@@@Z @ 7 NONAME ; void SmfCredMgrClient::DeleteRSAKey(class QString)
+	?GenerateNONCE@SmfCredMgrClient@@QAE?AVQString@@_J@Z @ 8 NONAME ; class QString SmfCredMgrClient::GenerateNONCE(long long)
+	?SignMessage@SmfCredMgrClient@@QAE?AW4SMFCredMgrErrorCode@@VQString@@0AAV3@W4SmfSignatureMethod@@@Z @ 9 NONAME ; enum SMFCredMgrErrorCode SmfCredMgrClient::SignMessage(class QString, class QString, class QString &, enum SmfSignatureMethod)
+	?StoreAuthData@SmfCredMgrClient@@QAE?AVQString@@V?$QMap@VQByteArray@@V1@@@VQDateTime@@V?$QList@VQUrl@@@@VQStringList@@V2@_N@Z @ 10 NONAME ; class QString SmfCredMgrClient::StoreAuthData(class QMap<class QByteArray, class QByteArray>, class QDateTime, class QList<class QUrl>, class QStringList, class QString, bool)
+	?StoreRSAKeys@SmfCredMgrClient@@QAE?AVQString@@V2@0VQDateTime@@@Z @ 11 NONAME ; class QString SmfCredMgrClient::StoreRSAKeys(class QString, class QString, class QDateTime)
+	?URLList@SmfCredMgrClient@@QBE?AV?$QList@VQUrl@@@@VQString@@@Z @ 12 NONAME ; class QList<class QUrl> SmfCredMgrClient::URLList(class QString) const
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfcredentialmgr/smfcredmgrclient/eabi/smfcredmgrclientu.def	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,25 @@
+EXPORTS
+	_ZN16SmfCredMgrClient11SignMessageE7QStringS0_RS0_18SmfSignatureMethod @ 1 NONAME
+	_ZN16SmfCredMgrClient12DeleteRSAKeyE7QString @ 2 NONAME
+	_ZN16SmfCredMgrClient12StoreRSAKeysE7QStringS0_9QDateTime @ 3 NONAME
+	_ZN16SmfCredMgrClient13GenerateNONCEEx @ 4 NONAME
+	_ZN16SmfCredMgrClient13StoreAuthDataE4QMapI10QByteArrayS1_E9QDateTime5QListI4QUrlE11QStringList7QStringb @ 5 NONAME
+	_ZN16SmfCredMgrClient18ChangePluginIDListE7QStringbS0_ @ 6 NONAME
+	_ZN16SmfCredMgrClientC1EP7QObject @ 7 NONAME
+	_ZN16SmfCredMgrClientC2EP7QObject @ 8 NONAME
+	_ZN16SmfCredMgrClientD0Ev @ 9 NONAME
+	_ZN16SmfCredMgrClientD1Ev @ 10 NONAME
+	_ZN16SmfCredMgrClientD2Ev @ 11 NONAME
+	_ZNK16SmfCredMgrClient11AuthDataSetE7QString9QDateTimeR4QMapI10QByteArrayS3_E @ 12 NONAME
+	_ZNK16SmfCredMgrClient23AuthenticatedPluginListE7QString @ 13 NONAME
+	_ZNK16SmfCredMgrClient25CheckPluginAuthenticationE7QString @ 14 NONAME
+	_ZNK16SmfCredMgrClient7URLListE7QString @ 15 NONAME
+	_ZTI16SmfCredMgrClient @ 16 NONAME
+	_ZTI18CSmfSignParameters @ 17 NONAME
+	_ZTI20CSmfRsaKeyParameters @ 18 NONAME
+	_ZTI24CSmfCredMgrClientSymbian @ 19 NONAME
+	_ZTV16SmfCredMgrClient @ 20 NONAME
+	_ZTV18CSmfSignParameters @ 21 NONAME
+	_ZTV20CSmfRsaKeyParameters @ 22 NONAME
+	_ZTV24CSmfCredMgrClientSymbian @ 23 NONAME
+
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -38,8 +38,8 @@
 	if (!(Set.isEmpty() || URLList.isEmpty() || PluginList.isEmpty()
 			|| AuthAppId.isEmpty() || Validity.isNull()))
 		{
-		return (m_SmfClientPrivate->storeAuthDataL(Set, Validity, URLList,
-				PluginList, AuthAppId, Flag));
+		QT_TRAP_THROWING( return (m_SmfClientPrivate->storeAuthDataL(Set, Validity, URLList,
+				PluginList, AuthAppId, Flag)) );
 		}
 	else
 		{
@@ -57,7 +57,7 @@
 		}
 	else
 		{
-		m_SmfClientPrivate->authenticatedPluginListL(RegistrationToken, List);
+		QT_TRAP_THROWING( m_SmfClientPrivate->authenticatedPluginListL(RegistrationToken, List));
 		return List;
 		}
 	
@@ -68,7 +68,7 @@
 	QList<QUrl> List;
 	if (!(PluginID.isEmpty()))
 		{
-		m_SmfClientPrivate->URLListL(PluginID, List);
+		QT_TRAP_THROWING ( m_SmfClientPrivate->URLListL(PluginID, List) );
 		}
 	return List;
 	}
@@ -83,7 +83,7 @@
 	{
 	if (!(OldPluginID.isEmpty() || NewPluginID.isEmpty()))
 		{
-		m_SmfClientPrivate->changePluginIDListL(NewPluginID, Flag, OldPluginID);
+		QT_TRAP_THROWING (m_SmfClientPrivate->changePluginIDListL(NewPluginID, Flag, OldPluginID));
 		}
 	}
 
@@ -91,7 +91,7 @@
 	{
 	if (!(PluginID.isEmpty()))
 		{
-		return (m_SmfClientPrivate->isPluginAuthenticatedL(PluginID));
+		QT_TRAP_THROWING ( return (m_SmfClientPrivate->isPluginAuthenticatedL(PluginID)) );
 		}
 	else
 		{
@@ -104,7 +104,9 @@
 	{
 	if (!(RegToken.isEmpty() || Validity.isNull()))
 		{
-		if (m_SmfClientPrivate->AuthDataSetL(RegToken, Validity, AuthTokenSet))
+		TBool Flag = EFalse;
+		QT_TRAP_THROWING ( Flag = m_SmfClientPrivate->AuthDataSetL(RegToken, Validity, AuthTokenSet));
+		if (Flag)
 			return true;
 		}
 	else
@@ -119,7 +121,7 @@
 	{
 	if (!(KeyLabel.isEmpty() || keydata.isEmpty()) && Validity.isValid())
 		{
-		return (m_SmfClientPrivate->storeRSAKeysL(KeyLabel, keydata, Validity));
+		QT_TRAP_THROWING ( return (m_SmfClientPrivate->storeRSAKeysL(KeyLabel, keydata, Validity)) );
 		}
 	else
 		{
@@ -130,9 +132,10 @@
 		QString& Signature, SmfSignatureMethod AlgorithmUsed)
 	{
 	if (!(Message.isEmpty() || Key.isEmpty()))
-		return (m_SmfClientPrivate->signMessageL(Message, Key, Signature,
-				AlgorithmUsed));
-
+		{
+		QT_TRAP_THROWING ( return (m_SmfClientPrivate->signMessageL(Message, Key, Signature,
+				AlgorithmUsed)) );
+		}
 	else
 		{
 		return SmfErrBadParameter;
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.pro	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.pro	Thu Aug 05 16:48:48 2010 +0530
@@ -29,6 +29,13 @@
         smfcredmgrclientsession.h 
      
     BLD_INF_RULES.prj_exports += smfcredmgrclient.h
+    TARGET.CAPABILITY = NetworkServices \
+    	ReadUserData \
+    	WriteUserData \
+    	LocalServices \
+    	UserEnvironment \
+    	ReadDeviceData \
+    	WriteDeviceData
 }
 symbian::LIBS += -leuser \
     -lestor \
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_p.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_p.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -14,6 +14,7 @@
  *  Derives from CAtive to support asynchronous requests.
  *
  */
+
 //  Include Files
 #include <smfcredmgrcommon.h>
 #include <smfcredmgrclientdatastruct.h>
@@ -72,6 +73,7 @@
 TBool CSmfCredMgrClientSymbian::AuthDataSetL(QString RegToken,
 		QDateTime Validity, SmfAuthParams& AuthTokenSet)
 	{
+	RDebug::Printf("+In AuthDataSetL()");
 	CSmfFetchAuthTokenSet* fetchAuthTokenSetParams =
 			new (ELeave) CSmfFetchAuthTokenSet;
 
@@ -111,6 +113,12 @@
 
 	fetchAuthTokenSetParams->InternalizeL(dataBuf);
 
+
+	CleanupStack::PopAndDestroy(&dataBuf);
+	CleanupStack::PopAndDestroy(retBuf);
+	CleanupStack::PopAndDestroy(&stream);
+	CleanupStack::PopAndDestroy(buf);
+
 	//return EFalse if count is 0
 	if (fetchAuthTokenSetParams->iAuthTokenArray.Count() == 0)
 		{
@@ -120,12 +128,9 @@
 	smfcredmgrclientutil::RArrayToSmfAuthParams(
 			fetchAuthTokenSetParams->iAuthTokenArray, AuthTokenSet);
 
-	CleanupStack::PopAndDestroy(&dataBuf);
-	CleanupStack::PopAndDestroy(retBuf);
-	CleanupStack::PopAndDestroy(&stream);
-	CleanupStack::PopAndDestroy(buf);
+
 	CleanupStack::PopAndDestroy(fetchAuthTokenSetParams);
-
+	RDebug::Printf("-In AuthDataSetL()");
 	return ETrue;
 	}
 
@@ -133,7 +138,7 @@
 		QDateTime Validity, QList<QUrl> URLList, QStringList PluginList,
 		QString AuthAppAID, bool Flag)
 	{
-
+	RDebug::Printf("+In storeAuthDataL()");
 	CSmfStoreAuthParams* authenticationProcessData =
 			new (ELeave) CSmfStoreAuthParams;
 	CleanupStack::PushL(authenticationProcessData);
@@ -142,8 +147,6 @@
 	authenticationProcessData->iRegistrationToken = HBufC::NewL(
 			KMaxRegistrationTokenLength);
 
-	TPtr8 regTokenPtr(
-			authenticationProcessData->iRegistrationToken->Des().Collapse());
 
 	//fill the input params
 	smfcredmgrclientutil::SmfAuthParamstoRArray(Set,
@@ -175,14 +178,32 @@
 
 	TIpcArgs args;
 	args.Set(0, &bufPtr);
-	args.Set(1, &regTokenPtr);
+
+	
+	// to get the data from server, we create a space.
+	HBufC8* retBuf = HBufC8::NewL(KMaxBufSize);
+	CleanupStack::PushL(retBuf);
+
+	TPtr8 outputptr = retBuf->Des();
+	args.Set(1, &outputptr);
+
 	iSession.RequestService(EStoreAuthData, args);
 
-	TPtr wideRegToken = regTokenPtr.Expand();
+	//create buffer to read data received
+	RBuf8 dataBuf;
+	CleanupClosePushL(dataBuf);
+	dataBuf.Create(outputptr);
+
+	authenticationProcessData->InternalizeL(dataBuf);
+
+	TPtr regTokenPtr(
+			authenticationProcessData->iRegistrationToken->Des());
 
 	//convert and return
-	QString regString = qt_TDes2QString(wideRegToken);
+	QString regString = qt_TDes2QString( regTokenPtr );
 
+	CleanupStack::PopAndDestroy(&dataBuf);
+	CleanupStack::PopAndDestroy(retBuf);
 	CleanupStack::PopAndDestroy(&stream);
 	CleanupStack::PopAndDestroy(buf);
 	CleanupStack::Pop();
@@ -504,6 +525,8 @@
 	CleanupStack::PopAndDestroy(buf);
 	CleanupStack::PopAndDestroy(storeRSAKeysparams);
 
+	RDebug::Printf("-In storeAuthDataL()");
+	
 	return (RetString);
 
 	}
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_template.pkg	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_template.pkg	Thu Aug 05 16:48:48 2010 +0530
@@ -25,8 +25,8 @@
 (0x2001E61C), 4, 6, 1, {"Qt"}
 
 ; Executable and default resource files
-"/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/release/$(PLATFORM)/$(TARGET)/smfcredmgrclient.dll"    - "!:\sys\bin\smfcredmgrclient.dll"
-"/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/data/z/resource/apps/SmfCredMgrClient.rsc"    - "!:\resource\apps\SmfCredMgrClient.rsc"
-"/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/data/z/private/10003a3f/import/apps/SmfCredMgrClient_reg.rsc"    - "!:\private\10003a3f\import\apps\SmfCredMgrClient_reg.rsc"
+"/S60/devices/S60_5th_Edition_SDK_v0.9/epoc32/release/$(PLATFORM)/$(TARGET)/smfcredmgrclient.dll"    - "!:\sys\bin\smfcredmgrclient.dll"
+;"/S60/devices/S60_5th_Edition_SDK_v0.9/epoc32/data/z/resource/apps/SmfCredMgrClient.rsc"    - "!:\resource\apps\SmfCredMgrClient.rsc"
+;"/S60/devices/S60_5th_Edition_SDK_v0.9/epoc32/data/z/private/10003a3f/import/apps/SmfCredMgrClient_reg.rsc"    - "!:\private\10003a3f\import\apps\SmfCredMgrClient_reg.rsc"
 
 ; Manual PKG post-rules from PRO files
--- a/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientutil.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientutil.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -14,7 +14,7 @@
  *  in Credential Manager.
  */
 
-
+#include <QDebug>
 #include "smfcredmgrclientutil.h"
 
 namespace smfcredmgrclientutil
@@ -113,6 +113,8 @@
 			
 			QString KeyString(itr.key());
 			QString ValueString(itr.value());
+			qDebug()<<"Key name = "<<KeyString;
+			qDebug()<<"Key value = "<<ValueString;
 			
 			set.iKey = qt_QString2HBufC(KeyString);
 			set.iSecret = qt_QString2HBufC(ValueString);
--- a/smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrclientdatastruct.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrclientdatastruct.h	Thu Aug 05 16:48:48 2010 +0530
@@ -10,10 +10,11 @@
  * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution
  *
  * Description:
- *	This header file gives different data classes to be used
- * by Credential Manager Client and Server for data transfer.	
+ * This header file gives different data classes to be used
+ * by Smf Credential Manager Client and Server for data transfer.	
  *
  */
+
 #ifndef CSMFCREDMGRCLIENTDATASTRUCT_H_
 #define CSMFCREDMGRCLIENTDATASTRUCT_H_
 
@@ -53,6 +54,8 @@
  * Maximum Length for SignedMessage
  */
 const TInt KMaxSignedMsgLength = 256;
+
+
 /**
  * This class provide details and to serialize Authentication Key And Secret   
  */
@@ -60,12 +63,13 @@
 	{
 public:
 	/**
-	 * constructor
+	 * Constructor
 	 */
 	inline TSmfAuthToken() :
 		iKey(NULL), iSecret(NULL)
 		{
 		}
+	
 	/**
 	 * Method to externalize the member variables
 	 * @param aStream The Write Stream to be filled.
@@ -79,15 +83,17 @@
 	void InternalizeL(RReadStream& aStream);
 	
 	/**
-	 * buf to hold the key
+	 * Buffer to hold the key
 	 */
 	HBufC* iKey;
+	
 	/**
-	 * buf to hold the secret
+	 * Buffer to hold the secret
 	 */
 	HBufC* iSecret;
 	};
 
+
 /**
  * This class provide details and to serialize for the API fetching Authentication Parameters  
  */
@@ -95,7 +101,7 @@
 	{
 public:
 	/**
-	 * destructor
+	 * Destructor
 	 */
 	~CSmfFetchAuthTokenSet()
 		{
@@ -111,23 +117,27 @@
 
 	/**
 	 * Method to internalize the member variables
-	 * @param aSource the source to read from
+	 * @param aSource The Source Stream to read from
 	 */
 	void InternalizeL(const RBuf8& aSource);
+	
 	/**
-	 * buf to hold registration token
+	 * Buffer to hold registration token
 	 */
 	HBufC* iRegistrationToken;
+	
 	/**
 	 * Time by which the Auth set will expire
 	 */
 	TUint32 iValidity;
+	
 	/**
-	 * array in symbian to hold the key-value pair
+	 * Array in symbian to hold the key-value pair
 	 */
 	RArray<TSmfAuthToken> iAuthTokenArray;
 	};
 
+
 /**
  * This class provide details and to serialize of data to the API retreiving URL List 
  */
@@ -135,7 +145,7 @@
 	{
 public:
 	/**
-	 * destructor
+	 * Destructor
 	 */
 	~CSmfURLListParams()
 		{
@@ -151,21 +161,22 @@
 
 	/**
 	 * Method to internalize the member variables
-	 * @param aSource the source to read from
+	 * @param aSource The source stream to read from
 	 */
 	void InternalizeL(const TDesC8& aSource);
 	
 	/**
-	 * array in symbian to hold url list
+	 * Array in symbian to hold url list
 	 */
 	RPointerArray<HBufC> iURLList;
 	
 	/**
-	 * buf to hold the plugin id for which urls will be queried
+	 * Buffer to hold the plugin id for which urls will be queried
 	 */
 	HBufC* iPluginID;
 	};
 
+
 /**
  * This class provide details and to serialize data to the API retreiving Authenticated PluginID List 
  */
@@ -173,7 +184,7 @@
 	{
 public:
 	/**
-	 * destructor
+	 * Destructor
 	 */
 	~CSmfPluginIDListParams()
 		{
@@ -189,15 +200,17 @@
 
 	/**
 	 * Method to internalize the member variables
-	 * @param aSource the source to read from
+	 * @param aSource The source stream to read from
 	 */
 	void InternalizeL(const RBuf8& aSource);
+	
 	/**
-	 * array in symbian to hold plugin list
+	 * Array in symbian to hold plugin list
 	 */
 	RPointerArray<HBufC> iPluginList;
+	
 	/**
-	 * buf to hold registration token for which the list of plugins will be queried
+	 * Buffer to hold registration token for which the list of plugins will be queried
 	 */
 	HBufC* iRegistrationToken;
 	};
@@ -228,33 +241,40 @@
 
 	/**
 	 * Method to internalize the member variables
-	 * @param aSource the source to read from
+	 * @param aSource The source stream to read from
 	 */
 	void InternalizeL(const RBuf8& aSource);
+	
 	/**
-	 * array to hold TSmfAuthToken elements
+	 * Array to hold TSmfAuthToken elements
 	 */
 	RArray<TSmfAuthToken> iAuthTokenArray;
+	
 	/**
-	 * array to hold list of plugins
+	 * Array to hold list of plugins
 	 */
 	RPointerArray<HBufC> iPluginIDList;
+	
 	/**
-	 * array to hold URl list
+	 * Array to hold URL list
 	 */
 	RPointerArray<HBufC> iURLList;
+	
 	/**
-	 * buf to hold the registration token
+	 * Buffer to hold the registration token
 	 */
 	HBufC* iRegistrationToken;
+	
 	/**
-	 * buf to hold the authentication application ID
+	 * Buffer to hold the authentication application ID
 	 */
 	HBufC* iAuthAppID;
+	
 	/**
-	 * flag to indicate an enabled pluginID 
+	 * Flag to indicate an enabled pluginID 
 	 */
 	TBool pluginIDEnabled;
+	
 	/**
 	 * Time by which the Auth set will expire
 	 */
@@ -282,7 +302,7 @@
 
 	/**
 	 * Method to internalize the member variables
-	 * @param aSource the source to read from
+	 * @param aSource The source stream to read from
 	 */
 	void InternalizeL(const RBuf8& aSource);
 
@@ -290,10 +310,12 @@
 	 * Id of new plugin
 	 */
 	HBufC* iNewPluginID;
+	
 	/**
 	 * Id of the old plugin to be replaced
 	 */
 	HBufC* iOldPluginID;
+	
 	/**
 	 * flag to indicate an enabled pluginID 
 	 */
@@ -307,25 +329,40 @@
 {
 public:
 	/**
-	 * New Functions 
+	 * NewL method
+	 * @param aMessage The message to be signed
+	 * @param aKey The key
+	 * @return The constructed CSmfSignParameters instance
 	 */
 	static CSmfSignParameters* NewL( const TDesC8& aMessage, const TDesC8& aKey );
+	
+	/**
+	 * Overloaded NewL method
+	 * @param aMessage The message to be signed
+	 * @return The constructed CSmfSignParameters instance
+	 */
 	static CSmfSignParameters* NewL( const TDesC8& aData );
+	
 	/**
 	 * Destructor 
 	 */
 	~CSmfSignParameters();
+	
 	/**
 	 * Method to externalize the member variables
 	 * @param aStream The Write Stream to be filled.
 	 */
 	void ExternalizeL( RWriteStream& aStream ) const;
+	
 	/**
-	 * Get Method for key. 
+	 * Method to get the Key for the signature
+	 * @return The Key for the signature
 	 */
 	const TDesC8& Key() const;
+	
 	/**
-	 * Get Method for message. 
+	 * Method to get the message
+	 * @return The message 
 	 */
 	const TDesC8& Message() const;
 	
@@ -334,17 +371,26 @@
 	 * Constructor 
 	 */
 	CSmfSignParameters();
+	
 	/**
-	 * Two Phase constructors 
+	 * Two Phase constructor
+	 * @param aKey The Key for the signature
+	 * @return The constructed CSmfSignParameters instance
 	 */
 	void ConstructL( const TDesC8& aMessage, const TDesC8& aKey );
+	
+	/**
+	 * Two Phase constructor
+	 * @return The constructed CSmfSignParameters instance
+	 */
 	void ConstructL( const TDesC8& aData );
 	
 private:
 	/**
-	 * Message to sign 
+	 * Message to be signed 
 	 */
 	RBuf8 iMessage;
+	
 	/**
 	 * Key for the signature 
 	 */
@@ -358,46 +404,77 @@
 	{
 public:
 	/**
-	 * New methods 
+	 * NewL method
+	 * @param aKeyName
+	 * @param startDate
+	 * @param endDate
+	 * @param aKeydata
+	 * @return The constructed CSmfRsaKeyParameters instance
 	 */
-	static CSmfRsaKeyParameters* NewL(
-			const TDesC& aKeyName, const TTime& startDate,
-			const TTime& endDate, const TDesC8& aKeyData );
+	static CSmfRsaKeyParameters* NewL( const TDesC& aKeyName, 
+			const TTime& startDate,
+			const TTime& endDate, 
+			const TDesC8& aKeyData );
+	
+	/**
+	 * Overloaded NewL method
+	 * @param aData
+	 * @return The constructed CSmfRsaKeyParameters instance
+	 */
 	static CSmfRsaKeyParameters* NewL( const TDesC8& aData );
 	
 	/**
 	 * Destructor 
 	 */
 	~CSmfRsaKeyParameters();
+	
 	/**
 	 * Method to externalize the member variables
 	 * @param aStream The Write Stream to be filled.
 	 */
 	void ExternalizeL( RWriteStream& aStream ) const;
+	
 	/**
-	 * Get Method for keyname. 
+	 * Method to get the key name
+	 * @return The key name 
 	 */
 	const TDesC& KeyName() const;
+	
 	/**
-	 * Get Method for keydata. 
+	 * Method to get the key data
+	 * @return The key data
 	 */
 	const TDesC8& KeyData() const;
+	
 	/**
-	 * Get Method for start date. 
+	 * Method to get the start date
+	 * @return The start date
 	 */
 	const TTime& StartDate() const;
+	
 	/**
-	 * Get Method for end date. 
+	 * Method to get the end date
+	 * @return The end date
 	 */
 	const TTime& EndDate() const;
 	
 private:
 	/**
-	 * Two phase constructors 
+	 * Two phase constructor
+	 * @param aKeyName
+	 * @param startDate
+	 * @param endDate
+	 * @param aKeydata
 	 */
-	void ConstructL(
-			const TDesC& aKeyName, const TTime& startDate,
-			const TTime& endDate, const TDesC8& aKeyData );
+	void ConstructL( const TDesC& aKeyName, 
+			const TTime& startDate,
+			const TTime& endDate, 
+			const TDesC8& aKeyData );
+	
+	/**
+	 * Two phase constructor
+	 * @param aData
+	 */
 	void ConstructL( const TDesC8& aData );
 			
 private:
@@ -405,14 +482,17 @@
 	 * Name of the key pair 
 	 */
 	RBuf iKeyName;
+	
 	/**
 	 * Data of the key pair 
 	 */
 	RBuf8 iKeyData;
+	
 	/**
 	 * Start date of validity 
 	 */
 	TTime iStartDate;
+	
 	/**
 	 * End date of validity 
 	 */
--- a/smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrclientglobal.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrclientglobal.h	Thu Aug 05 16:48:48 2010 +0530
@@ -11,7 +11,7 @@
  *
  * Description:
  * The header represents the error code, typedefs and export macro declaration for
- *  CredMgr Server-client
+ * Smf Credential Manager Server-client
  *
  */
 
@@ -25,9 +25,9 @@
 typedef QMap<QByteArray, QByteArray> SmfAuthParams;
 
 #if defined(SMFCREDMGRCLIENT_LIBRARY)
-#  define SmfCredMgrClient_EXPORT Q_DECL_EXPORT
+#define SmfCredMgrClient_EXPORT Q_DECL_EXPORT
 #else
-#  define SmfCredMgrClient_EXPORT Q_DECL_IMPORT
+#define SmfCredMgrClient_EXPORT Q_DECL_IMPORT
 #endif
 
 /**
@@ -40,14 +40,17 @@
 	 *No error has occured
 	 */
 	SmfErrNone = 200,
+			
 	/**
 	 *Plugin not autherised
 	 */
 	SmfErrUnAutherised,
+	
 	/**
 	 *Parameters of API are unexpected/invalid
 	 */
 	SmfErrBadParameter,
+	
 	/**
 	 *Error reason is not known
 	 */
--- a/smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrcommon.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrcommon/inc/smfcredmgrcommon.h	Thu Aug 05 16:48:48 2010 +0530
@@ -43,18 +43,22 @@
  * PluginList during storing in  storeAuthData() API ,i.e if Flag = 1 the 
  * entire List of Plugins are enabled. 
  * 
- *  The NONCE and Registration Token are to be generated using SecureRandomL() library function.
+ *  The NONCE is generated using rand() library function.
  *   
  *  @Todo-  1)The validity check of the authentication data at the server side is an open item yet and is to be implemented. 
- *  This will require the signal-slot implementation at the client side to notify authentication expiry. The error handling 
- *  and also state-machine (if required) are to be implemented. 2) The process id of SmfServer needs to be checked inside 
- *  credmgr to ensure nobody else reads the keys. 
+ *  This will require the signal-slot implementation at the client side to notify authentication expiry, if decided that 
+ *  credentialmgr will launch authapp. 
+ *  2)The error handling and  state-machine (if required) are to be implemented. 
+ *  3) The process id of smfserver needs to be checked inside credmgr to ensure only smfserver reads the keys. 
  *   
  */
+
 #ifndef COMMON_H_
 #define COMMON_H_
+
 #include <e32base.h>
 #include <e32debug.h>
+
 /**
  *Name of the server.
  */
@@ -79,6 +83,7 @@
 	 * Enum for no algorithm
 	 */
 	ESmfNoSigningMethod = 0,
+			
 	/**
 	 *Enum for algorithm RSA-SHA1
 	 */
@@ -88,10 +93,12 @@
 	 *Enum for algorithm HMAC-SHA1
 	 */
 	ESMFHMACProtocol,
+	
 	/**
 	 *Enum for Plain Tezt
 	 */
 	ESMFPlainText,
+	
 	/**
 	 *Enum for SHA256
 	 */
@@ -105,22 +112,22 @@
 	{
 	/**
 	 * Op code to check plugin is authorised
-	 * */
+	 */
 	ECheckPluginAuthentication = 1,
 
 	/**
 	 * Op code to store entire set of data while authentication
-	 * */
+	 */
 	EStoreAuthData,
 
 	/**
 	 * Op code to send OAuth key set i.e SmfAuthParams
-	 * */
+	 */
 	ESendAuthDataSet,
 
 	/**
 	 * Op code to send authenticated plugin list
-	 * */
+	 */
 	ESendPluginIDList,
 
 	/**
@@ -137,14 +144,17 @@
 	 * Op code to store RSA keys.
 	 */
 	ESmfStoreRSAKey,
+	
 	/**
 	 * Op code to sign message using RSA algo.
 	 */
 	ESmfRSASignMessage,
+	
 	/**
 	 * Op code to sign using HAMC-SHA1 algo.
 	 */
 	ESmfHMACSHA1SignMessage,
+	
 	/**
 	 * Op code to delete RSA keys.
 	 */
--- a/smf/smfcredentialmgr/smfcredmgrcommon/smfcredmgrcommon.pro	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrcommon/smfcredmgrcommon.pro	Thu Aug 05 16:48:48 2010 +0530
@@ -12,10 +12,18 @@
 TEMPLATE = subdirs
 symbian:
     {
+    TARGET.CAPABILITY = NetworkServices \
+    	ReadUserData \
+    	WriteUserData \
+    	LocalServices \
+    	UserEnvironment \
+    	ReadDeviceData \
+    	WriteDeviceData
+
 	BLD_INF_RULES.prj_exports += inc/smfcredmgrclientdatastruct.h
 	BLD_INF_RULES.prj_exports += inc/smfcredmgrclientglobal.h
 	BLD_INF_RULES.prj_exports += inc/smfutils.h
 	BLD_INF_RULES.prj_exports += inc/smfcredmgrcommon.h
-    BLD_INF_RULES.prj_mmpfiles = "group/smfcredmgrcommon.mmp"
+	BLD_INF_RULES.prj_mmpfiles = "group/smfcredmgrcommon.mmp"
     }
 
--- a/smf/smfcredentialmgr/smfcredmgrcommon/src/smfcredmgrclientdatastruct.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrcommon/src/smfcredmgrclientdatastruct.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -10,15 +10,20 @@
  * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution
  *
  * Description:
- *	This source file gives different data classes to be used
- * by Credential Manager Client and Server for data transfer.	
+ * This source file gives different data classes to be used by Smf 
+ * Credential Manager Client and Server for data transfer.	
  *
  */
 
+#include <f32file.h>
+
 #include "smfcredmgrclientdatastruct.h"
 #include "smfutils.h"
-#include <f32file.h>
 
+/**
+ * Method to externalize the member variables
+ * @param aStream The Write Stream to be filled.
+ */
 void TSmfAuthToken::ExternalizeL(RWriteStream& aStream)
 	{
 
@@ -29,9 +34,12 @@
 	SmfUtils::ExternalizeDesL(secondArgPtr, aStream);
 	}
 
+/**
+ * Method to internalize the member variables
+ * @param aStream The source stream to read from
+ */
 void TSmfAuthToken::InternalizeL(RReadStream& aStream)
 	{
-
 	// Delete the current values
 	delete iKey;
 	iKey = SmfUtils::InternalizeDesL(aStream);
@@ -40,6 +48,10 @@
 	iSecret = SmfUtils::InternalizeDesL(aStream);
 	}
 
+/**
+ * Method to externalize the member variables
+ * @param aStream The Write Stream to be filled.
+ */
 void CSmfFetchAuthTokenSet::ExternalizeL(RWriteStream& aStream)
 	{
 	aStream.WriteUint32L(iValidity);
@@ -54,9 +66,12 @@
 		{
 		iAuthTokenArray[i].ExternalizeL(aStream);
 		}
-
 	}
 
+/**
+ * Method to internalize the member variables
+ * @param aSource The Source Stream to read from
+ */
 void CSmfFetchAuthTokenSet::InternalizeL(const RBuf8& aSource)
 	{
 	// Create stream to read from the given buffer
@@ -80,6 +95,10 @@
 	CleanupStack::PopAndDestroy(&stream);
 	}
 
+/**
+ * Method to externalize the member variables
+ * @param aStream The Write Stream to be filled.
+ */
 void CSmfURLListParams::ExternalizeL(RWriteStream& aStream)
 	{
 	TInt32 countPlugin = iURLList.Count();
@@ -94,6 +113,10 @@
 	SmfUtils::ExternalizeDesL(tokenPtr, aStream);
 	}
 
+/**
+ * Method to internalize the member variables
+ * @param aSource The source stream to read from
+ */
 void CSmfURLListParams::InternalizeL(const TDesC8& aSource)
 	{
 	// Create stream to read from the given buffer
@@ -113,6 +136,10 @@
 	CleanupStack::PopAndDestroy(&stream);
 	}
 
+/**
+ * Method to externalize the member variables
+ * @param aStream The Write Stream to be filled.
+ */
 void CSmfPluginIDListParams::ExternalizeL(RWriteStream& aStream)
 	{
 	TPtr tokenPtr(iRegistrationToken->Des());
@@ -127,6 +154,10 @@
 		}
 	}
 
+/**
+ * Method to internalize the member variables
+ * @param aSource The source stream to read from
+ */
 void CSmfPluginIDListParams::InternalizeL(const RBuf8& aSource)
 	{
 	// Create stream to use given buffer.
@@ -148,6 +179,10 @@
 	CleanupStack::PopAndDestroy(&stream);
 	}
 
+/**
+ * Method to externalize the member variables
+ * @param aStream The Write Stream to be filled.
+ */
 void CSmfStoreAuthParams::ExternalizeL(RWriteStream& aStream)
 	{
 	aStream.WriteInt32L(pluginIDEnabled);
@@ -169,12 +204,10 @@
 		}
 
 	TInt32 countPlugin = iPluginIDList.Count();
-
 	aStream.WriteInt32L(countPlugin);
 
 	for (int i = 0; i < countPlugin; i++)
 		{
-
 		TPtr pluginBufPtr(iPluginIDList[i]->Des());
 		SmfUtils::ExternalizeDesL(pluginBufPtr, aStream);
 		}
@@ -189,6 +222,10 @@
 		}
 	}
 
+/**
+ * Method to internalize the member variables
+ * @param aSource The source stream to read from
+ */
 void CSmfStoreAuthParams::InternalizeL(const RBuf8& aSource)
 	{
 	// Create stream to read from the given buffer
@@ -235,6 +272,10 @@
 	CleanupStack::PopAndDestroy(&stream);
 	}
 
+/**
+ * Method to externalize the member variables
+ * @param aStream The Write Stream to be filled.
+ */
 void CSmfPluginIDUpdate::ExternalizeL(RWriteStream& aStream)
 	{
 	aStream.WriteInt32L(pluginIDEnabled);
@@ -246,6 +287,10 @@
 	SmfUtils::ExternalizeDesL(oldPtr, aStream);
 	}
 
+/**
+ * Method to internalize the member variables
+ * @param aSource The source stream to read from
+ */
 void CSmfPluginIDUpdate::InternalizeL(const RBuf8& aSource)
 	{
 	// Create stream to read from the given buffer
@@ -264,6 +309,13 @@
 	CleanupStack::PopAndDestroy(&stream);
 	}
 
+
+/**
+ * NewL method
+ * @param aMessage The message to be signed
+ * @param aKey The key
+ * @return The constructed CSmfSignParameters instance
+ */
 CSmfSignParameters* CSmfSignParameters::NewL(
 	const TDesC8& aMessage, const TDesC8& aKey ) 
 	{
@@ -274,6 +326,11 @@
 	return self;
 	}
 
+/**
+ * Overloaded NewL method
+ * @param aMessage The message to be signed
+ * @return The constructed CSmfSignParameters instance
+ */
 CSmfSignParameters* CSmfSignParameters::NewL( const TDesC8& aData ) 
 	{
 	CSmfSignParameters* self = new( ELeave ) CSmfSignParameters();
@@ -283,38 +340,65 @@
 	return self;
 	}
 
+/**
+ * Destructor 
+ */
 CSmfSignParameters::~CSmfSignParameters() 
 	{
 	iMessage.Close();
 	iKey.Close();
 	}
 
+/**
+ * Method to externalize the member variables
+ * @param aStream The Write Stream to be filled.
+ */
 void CSmfSignParameters::ExternalizeL( RWriteStream& aStream ) const
 	{
 	SmfUtils::ExternalizeDesL( iMessage, aStream );
 	SmfUtils::ExternalizeDesL( iKey, aStream );
 	}
 
+/**
+ * Method to get the Key for the signature
+ * @return The Key for the signature
+ */
 const TDesC8& CSmfSignParameters::Key() const 
 	{
 	return iKey;
 	}
 
+/**
+ * Method to get the message
+ * @return The message 
+ */
 const TDesC8& CSmfSignParameters::Message() const 
 	{
 	return iMessage;
 	}
 
+/**
+ * Constructor 
+ */
 CSmfSignParameters::CSmfSignParameters() 
 	{
 	}
 
+/**
+ * Two Phase constructor
+ * @param aKey The Key for the signature
+ * @return The constructed CSmfSignParameters instance
+ */
 void CSmfSignParameters::ConstructL( const TDesC8& aMessage, const TDesC8& aKey )
 	{
 	iMessage.CreateL( aMessage );
 	iKey.CreateL( aKey );
 	}
 
+/**
+ * Two Phase constructor
+ * @return The constructed CSmfSignParameters instance
+ */
 void CSmfSignParameters::ConstructL( const TDesC8& aData ) 
 	{
 	RDesReadStream stream( aData );
@@ -324,9 +408,20 @@
 	CleanupStack::PopAndDestroy( &stream );
 	}
 
+
+/**
+ * NewL method
+ * @param aKeyName
+ * @param startDate
+ * @param endDate
+ * @param aKeydata
+ * @return The constructed CSmfRsaKeyParameters instance
+ */
 CSmfRsaKeyParameters* CSmfRsaKeyParameters::NewL(
-		const TDesC& aKeyName, const TTime& startDate,
-		const TTime& endDate, const TDesC8& aKeyData )
+		const TDesC& aKeyName, 
+		const TTime& startDate,
+		const TTime& endDate, 
+		const TDesC8& aKeyData )
 	{
 	CSmfRsaKeyParameters* self = new( ELeave ) CSmfRsaKeyParameters;
 	CleanupStack::PushL( self );
@@ -335,6 +430,11 @@
 	return self;
 	}
 
+/**
+ * Overloaded NewL method
+ * @param aData
+ * @return The constructed CSmfRsaKeyParameters instance
+ */
 CSmfRsaKeyParameters* CSmfRsaKeyParameters::NewL( const TDesC8& aData )
 	{
 	CSmfRsaKeyParameters* self = new( ELeave ) CSmfRsaKeyParameters;
@@ -344,12 +444,19 @@
 	return self;
 	}
 
+/**
+ * Destructor 
+ */
 CSmfRsaKeyParameters::~CSmfRsaKeyParameters() 
 	{
 	iKeyName.Close();
 	iKeyData.Close();
 	}
 
+/**
+ * Method to externalize the member variables
+ * @param aStream The Write Stream to be filled.
+ */
 void CSmfRsaKeyParameters::ExternalizeL( RWriteStream& aStream ) const
 	{
 	SmfUtils::ExternalizeDesL( iKeyName, aStream );
@@ -358,29 +465,53 @@
 	SmfUtils::ExternalizeInt64L( iEndDate.Int64(), aStream );		
 	}
 
+/**
+ * Method to get the key name
+ * @return The key name 
+ */
 const TDesC& CSmfRsaKeyParameters::KeyName() const
 	{
 	return iKeyName;
 	}
 
+/**
+ * Method to get the key data
+ * @return The key data
+ */
 const TDesC8& CSmfRsaKeyParameters::KeyData() const
 	{
 	return iKeyData;
 	}
 
+/**
+ * Method to get the start date
+ * @return The start date
+ */
 const TTime& CSmfRsaKeyParameters::StartDate() const
 	{
 	return iStartDate;
 	}
 
+/**
+ * Method to get the end date
+ * @return The end date
+ */
 const TTime& CSmfRsaKeyParameters::EndDate() const
 	{
 	return iEndDate;
 	}
 
-void CSmfRsaKeyParameters::ConstructL( 
-		const TDesC& aKeyName, const TTime& startDate,
-		const TTime& endDate, const TDesC8& aKeyData )
+/**
+ * Two phase constructor
+ * @param aKeyName
+ * @param startDate
+ * @param endDate
+ * @param aKeydata
+ */
+void CSmfRsaKeyParameters::ConstructL( const TDesC& aKeyName, 
+		const TTime& startDate,
+		const TTime& endDate, 
+		const TDesC8& aKeyData )
 	{
 	iKeyName.CreateL( aKeyName );
 	iKeyData.CreateL( aKeyData );
@@ -388,16 +519,22 @@
 	iEndDate = endDate;
 	}
 
+/**
+ * Two phase constructor
+ * @param aData
+ */
 void CSmfRsaKeyParameters::ConstructL( const TDesC8& aData )
 	{
 	RDesReadStream stream( aData );
 	CleanupClosePushL( stream );
 	SmfUtils::InternalizeDesL( iKeyName, stream );
 	SmfUtils::InternalizeDesL( iKeyData, stream );
+	
 	TInt64 startDate;
 	TInt64 endDate;
 	SmfUtils::InternalizeInt64L( startDate, stream );
 	SmfUtils::InternalizeInt64L( endDate, stream );
+	
 	iStartDate = TTime( startDate );
 	iEndDate = TTime( endDate );
 	CleanupStack::PopAndDestroy( &stream );	
--- a/smf/smfcredentialmgr/smfcredmgrcommon/src/smfutils.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrcommon/src/smfutils.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -10,7 +10,8 @@
  * Lasse Laasonen, Sasken Communication Technologies Ltd - Initial contribution
  *
  * Description:
- * This header contains utility routines used by server and client
+ * This source contains utility routines used by server and client
+ * 
  */
 
 #include <s32strm.h>
@@ -68,6 +69,7 @@
 		else
 			return NULL;
 		}
+	
 	TInt InternalizeDesL( RBuf16& aDes, RReadStream& aStream )
 	    {
 	    TInt length = aStream.ReadInt32L();
@@ -85,6 +87,7 @@
 
 	    return length;
 	    }
+	
 	void ExternalizeInt64L(const TInt64& aInt, RWriteStream& aStream)
 		{
 		TInt32 low = I64LOW( aInt );
--- a/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdb.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdb.h	Thu Aug 05 16:48:48 2010 +0530
@@ -7,15 +7,20 @@
  * at the URL "http://www.eclipse.org/legal/epl-v10.html"
  *
  * Initial Contributors:
- * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ * 
+ * Contributors:
+ * Pritam Roy Biswas, Nalina Hariharan, Sasken Communication Technologies Ltd
  *
  * Description:
  * This header defines the database-table and the creation of database that will be 
- *  used by the Credential Manager Server to store all 
- *  the credentials related to an Authentication Application
+ * used by the Credential Manager Server to store all the credentials related 
+ * to an Authentication Application
  */
+
 #ifndef SMFCREDMGRDB_H_
 #define SMFCREDMGRDB_H_
+
 #include <sqldb.h>
 #include <e32base.h>
 #include <f32file.h>
@@ -24,79 +29,95 @@
 _LIT(KSmfCredMgrDbPrivateDir, "C:\\private\\EF0FFBD7\\");
 _LIT(KSmfCredMgrDbFileName, "[EF0FFBD7]CREDMGRDB.db");
 
-//Create Table
-_LIT8(KCreatePluginIDTable,"CREATE TABLE PluginIDTable(PluginId TEXT PRIMARY KEY, AuthAppId TEXT UNIQUE, IsEnabled INT)");
-_LIT8(KCreateURLTable,"CREATE TABLE URLTable(AuthAppId TEXT UNIQUE, URL TEXT,PRIMARY KEY(AuthAppId,URL))");
+//Create Database Table Queries
+_LIT8(KCreatePluginIDTable,"CREATE TABLE PluginIDTable(PluginId TEXT, AuthAppId TEXT, IsEnabled INT, PRIMARY KEY(PluginId, AuthAppId))");
+_LIT8(KCreateURLTable,"CREATE TABLE URLTable(AuthAppId TEXT, URL TEXT, PRIMARY KEY(AuthAppId, URL))");
 _LIT8(KCreateRegTokenValidityTable,"CREATE TABLE RegTokenValidityTable(RegistrationToken TEXT PRIMARY KEY, AuthAppId TEXT UNIQUE, Validity BIGINT)");
-_LIT8(KCreateAuthParamsTable,"CREATE TABLE AuthParamsTable(AuthAppId TEXT UNIQUE, AuthKey TEXT, AuthSecret TEXT, PRIMARY KEY(AuthAppId,AuthKey))");
+_LIT8(KCreateAuthParamsTable,"CREATE TABLE AuthParamsTable(AuthAppId TEXT, AuthKey TEXT, AuthSecret TEXT, PRIMARY KEY(AuthAppId, AuthKey))");
+
 
 /**
  * The creator class of the server database.
- *  Derives from CBase
+ * Derives from CBase
  */
 class CSmfCredMgrDb : public CBase
 	{
 public:
 	/**
-	 * New Methods
+	 * NewL Method
+	 * @return The constructed CSmfCredMgrDb instance
 	 */
 	static CSmfCredMgrDb* NewL();
+	
 	/**
-	 * New Methods
+	 * NewLC Method
+	 * @return The constructed CSmfCredMgrDb instance
 	 */
 	static CSmfCredMgrDb* NewLC();
 
 	/**
-	 * destructor
+	 * Destructor
 	 */
 	~CSmfCredMgrDb();
 
 private:
 	/**
-	 * constructor
+	 * Constructor
 	 */
 	CSmfCredMgrDb();
 
 	/**
-	 * two phase constructor
+	 * Two phase constructor
 	 */
 	void ConstructL();
 
 	/**
 	 * Method to create the Db file
 	 * @param aFileName The file name
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description.
 	 */
 	TInt CreateDbFile(const TFileName &aFileName);
 
 	/**
-	 * Method to crete the Db tables
+	 * Method to create the Db tables
 	 * @param aFileName The Db file name
 	 */
 	void CompleteDBCreationL(const TFileName &aFileName);
 
 	/**
-	 * Creates the Plugin Id table 
+	 * Creates the Plugin Id table
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description. 
 	 */
 	TInt PluginIDTableCreate();
 
 	/**
-	 * Creates the URL table 
+	 * Creates the URL table
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description.
 	 */
 	TInt URLTableCreate();
 
 	/**
-	 * Creates the RegistrationToken-Validity Table  
+	 * Creates the RegistrationToken-Validity Table
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description.
 	 */
 	TInt RegTokenValidityTableCreate();
 
 	/**
-	 * Creates the Authentication Parameters Table  
+	 * Creates the Authentication Parameters Table
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description.
 	 */
 	TInt AuthParamsTableCreate();
 
 	/**
 	 * Deletes the Db 
 	 * @param aFileName The Db file name
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description.
 	 */
 	TInt DeleteDbFile(const TFileName &aFileName);
 
--- a/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdbuser.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdbuser.h	Thu Aug 05 16:48:48 2010 +0530
@@ -7,29 +7,37 @@
  * at the URL "http://www.eclipse.org/legal/epl-v10.html"
  *
  * Initial Contributors:
- * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ * 
+ * Contributors:
+ * Pritam Roy Biswas, Nalina Hariharan, Sasken Communication Technologies Ltd
  *
  * Description:
  * This header provides a handle to use the data-base operations like insertion, query etc. which
- *  is used by the Credential Manager Server Sessions to operate on
- *  Credential Manager Server Database
+ * is used by the Credential Manager Server Sessions to operate on
+ * Credential Manager Server Database
  */
+
 #ifndef SMFCREDMGRDBUSER_H_
 #define SMFCREDMGRDBUSER_H_
 
 #include <sqldb.h>
 #include <e32base.h>
 #include <f32file.h>
+
 #include "smfcredmgrserversession.h"
 
-//INSERTION
+//DB COMMANDS
 _LIT(KBegin , "BEGIN");
 _LIT(KCommit, "COMMIT");
 _LIT(KRollback, "ROLLBACK");
-_LIT(KSmfPluginIDTableInsert, "INSERT INTO PluginIDTable(PluginId, AuthAppId, IsEnabled) VALUES(:Val1, :Val2, :Val3)");
-_LIT(KSmfURLTableInsert, "INSERT INTO URLTable(AuthAppId, URL) VALUES(:Val1, :Val2)");
-_LIT(KSmfRegTokenValidityTableInsert, "INSERT INTO RegTokenValidityTable(RegistrationToken, AuthAppId, Validity) VALUES(:Val1, :Val2, :Val3)");
-_LIT(KSmfAuthParamsTableInsert, "INSERT INTO AuthParamsTable(AuthAppId, AuthKey, AuthSecret) VALUES(:Val1, :Val2, :Val3)");
+
+//INSERTION
+_LIT(KSmfPluginIDTableInsert, "INSERT OR REPLACE INTO PluginIDTable(PluginId, AuthAppId, IsEnabled) VALUES(:Val1, :Val2, :Val3)");
+_LIT(KSmfURLTableInsert, "INSERT OR REPLACE INTO URLTable(AuthAppId, URL) VALUES(:Val1, :Val2)");
+_LIT(KSmfRegTokenValidityTableInsert, "INSERT OR REPLACE INTO RegTokenValidityTable(RegistrationToken, AuthAppId, Validity) VALUES(:Val1, :Val2, :Val3)");
+_LIT(KSmfAuthParamsTableInsert, "INSERT OR REPLACE INTO AuthParamsTable(AuthAppId, AuthKey, AuthSecret) VALUES(:Val1, :Val2, :Val3)");
+
 //READ
 _LIT(KSmfDbReadValidity, "SELECT Validity FROM RegTokenValidityTable WHERE AuthAppId = :iID");
 _LIT(KSmfDbReadRegistrationToken, "SELECT RegistrationToken FROM RegTokenValidityTable WHERE AuthAppId = :iID");
@@ -39,6 +47,7 @@
 _LIT(KSmfDbReadAuthAppIdInPluginTable, "SELECT AuthAppId FROM PluginIDTable WHERE PluginId = :iID");
 _LIT(KSmfDbReadFlagInPluginTable, "SELECT IsEnabled FROM PluginIDTable WHERE PluginId = :iID");
 _LIT(KSmfDbReadAuthAppIdInRegTokenTable, "SELECT AuthAppId, Validity FROM RegTokenValidityTable WHERE RegistrationToken = :iID");
+
 //UPDATE 
 _LIT( KUpdatePluginID, "UPDATE PluginIDTable SET PluginId =:iText, IsEnabled =:iFlag WHERE PluginId = :iID");
 
@@ -49,10 +58,18 @@
 	{
 public:
 	/**
-	 * New functions
+	 * NewL function
 	 * @param aSession the session object using this class
+	 * @return The constructed CSmfCredMgrDbUser instance
 	 */
 	static CSmfCredMgrDbUser* NewL(CSmfCredMgrServerSession* aSession);
+	
+	/**
+	 * NewLC function. This method adds the return value to the 
+	 * Cleanup Stack if constructed
+	 * @param aSession the session object using this class
+	 * @return The constructed CSmfCredMgrDbUser instance
+	 */
 	static CSmfCredMgrDbUser* NewLC(CSmfCredMgrServerSession* aSession);
 
 	/**
@@ -63,114 +80,128 @@
 public:
 	/**
 	 * Method to insert PluginIDTable
-	 * @param aPluginID ID of the plugin 
-	 * @param aAuthAppId ID of the Authentication app associated with the plugin
-	 * @param aEnableFlag a flag to indicate if the plugin is enabled, 
-	 * 	   i.e aEnableFlag =0 for disabled plugin
+	 * @param aPluginID The ID of the plugin 
+	 * @param aAuthAppId The ID of the Authentication app associated with the plugin
+	 * @param aEnableFlag A flag to indicate if the plugin is enabled, 
+	 * i.e, aEnableFlag = 0 for a disabled plugin
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description.
 	 */
-	TInt PluginIDTableInsert(const TDesC& aPluginID, const TDesC& aAuthAppId,
+	TInt PluginIDTableInsert(const TDesC& aPluginID, 
+			const TDesC& aAuthAppId,
 			TBool aEnableFlag);
 
 	/**
 	 * Method to insert URLTable
-	 * @param aAuthAppId ID of the Authentication app associated with the URLs 
-	 * @param aURL the URL to be stored 
+	 * @param aAuthAppId The ID of the Authentication app associated with the URLs 
+	 * @param aURL The URL to be stored
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description.
 	 */
 	TInt URLTableInsert(const TDesC& aAuthAppId, const TDesC& aURL);
 
 	/**
 	 * Method to insert RegTokenValidityTable
-	 * @param aRegToken the Registration token for the authentication app 
-	 * @param aAuthAppId ID of the Authentication app
-	 * @param aValidity time by which the set will expire 
+	 * @param aRegToken The Registration token for the authentication app 
+	 * @param aAuthAppId The ID of the Authentication app
+	 * @param aValidity The time by which the set will expire
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description. 
 	 */
 	TInt RegTokenValidityTableInsert(const TDesC& aRegToken,
 			const TDesC& aAuthAppId, const TUint aValidity);
+	
 	/**
 	 * Method to insert AuthParamsTable
-	 * @param aAuthAppId ID of the Authentication app
+	 * @param aAuthAppId The ID of the Authentication app
 	 * @param aKey The Key
-	 * @param aSecret The Secret 
+	 * @param aSecret The Secret
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description. 
 	 */
 	TInt AuthParamsTableInsert(const TDesC& aAuthAppId, const TDesC& aKey,
 			const TDesC& aSecret);
 
 	/**
 	 * Method to fetch all the plugins associated with the registration token
-	 * @param aRegToken the Registration token of the authentication app
-	 * @param aArray The array to be updated with plugin ids 
+	 * @param aRegToken The Registration token of the authentication app
+	 * @param aArray [out] The array to be updated with plugin ids
 	 */
-	void fetchPluginList(const TDesC& aRegToken, RPointerArray<HBufC>& aArray);
+	void fetchPluginListL(const TDesC& aRegToken, RPointerArray<HBufC>& aArray);
 
 	/**
 	 * Method to Key-Secret pairs of the Authentication app
-	 * @param aAuthAppId ID of the Authentication app
-	 * @param aArray The array containing the key-secret pair
+	 * @param aAuthAppId The ID of the Authentication app
+	 * @param aArray [out] The array containing the key-secret pair
 	 */
-	void readAuthTokens(const TDesC& aAuthAppId, RArray<TSmfAuthToken>& aArray);
+	void readAuthTokensL(const TDesC& aAuthAppId, RArray<TSmfAuthToken>& aArray);
 
 	/**
 	 * Method to fetch all the URLs associated with the Authentication app
-	 * @param aAuthAppId ID of the Authentication app
-	 * @param aArray The array to be updated with URLs 
+	 * @param aAuthAppId The ID of the Authentication app
+	 * @param aArray [out] The array to be updated with URLs 
 	 */
-	void readURL(const TDesC& aAuthAppId, RPointerArray<HBufC>& aArray);
+	void readUrlL(const TDesC& aAuthAppId, RPointerArray<HBufC>& aArray);
 
 	/**
 	 * Method to fetch Validity of the Authentication app
-	 * @param aAuthAppId ID of the Authentication app
-	 * @param aValidity time by which the Auth set will expire
+	 * @param aAuthAppId The ID of the Authentication app
+	 * @param aValidity [out] The time by which the Auth set will expire
 	 */
 	void readValidity(const TDesC& aAuthAppId, TInt64& aValidity);
 
 	/**
 	 * Method to fetch Registration token of the Authentication app from RegTokenValidityTable
-	 * @param aAuthAppId ID of the Authentication app
-	 * @param aRegToken the Registration token of the authentication app
+	 * @param aAuthAppId The ID of the Authentication app
+	 * @param aRegToken [out] The Registration token of the authentication app
 	 */
-	void readRegistrationToken(const TDesC& aAuthAppId, TDesC& aRegToken);
+	void readRegistrationTokenL(const TDesC& aAuthAppId, TDesC& aRegToken);
 
 	/**
-	 * Method to fetch Authentication app ID from RegTokenValidityTable
-	 * @param aRegToken the Registration token of the authentication app
-	 * @param aAuthAppId ID of the Authentication app
+	 * Method to fetch Authentication app ID from RegTokenValidityTable 
+	 * giving the reg token
+	 * @param aRegToken The Registration token of the authentication app
+	 * @param aAuthAppId [out] The ID of the Authentication app
 	 */
 	void readAuthAppIdInRegTokenTable(const TDesC& aRegToken, TDes& aAuthAppId);
 
 	/**
-	 * Method to fetch Authentication app ID from PluginIDTable
+	 * Method to fetch Authentication app ID from PluginIDTable giving the plugin ID
 	 * @param aPluginID the ID of the plugin
-	 * @param aAuthAppId ID of the Authentication app
+	 * @param aAuthAppId [out] ID of the Authentication app
 	 */
 	void readAuthAppIdInPluginIdTable(const TDesC& aPluginID, TDes& aAuthAppId);
 
 	/**
 	 * Method to read the IsEnabled flag from plugin Id table
-	 * @param aPluginID the ID of the plugin
-	 * @param aFlag flag that indicates the plugin id is enables or disabled
+	 * @param aPluginID The ID of the plugin
+	 * @param aFlag [out] The flag that indicates the plugin id is enables or disabled
 	 */
 	void readFlagInPluginIdTable(const TDesC& aPluginID, TInt& aFlag);
 
 	/**
 	 * Method to change a plugin id in plugin Id table
-	 * @param aNewPluginID the ID of the new plugin
-	 * @param aFlag flag that indicates the plugin id is enables or disabled
-	 * @param aOldPluginID the ID of the plugin to be replaced
+	 * @param aNewPluginID The ID of the new plugin
+	 * @param aFlag The flag that indicates the plugin id is enables or disabled
+	 * @param aOldPluginID The ID of the plugin to be replaced
+	 * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+	 * error codes for detailed error description.
 	 */
 	TInt updatePlugin(const TDesC& aPluginID, const TBool& aFlag,
 			const TDesC& aOldPluginID);
 
 	/**
-	 * Method to fetch a plugin id associated with Authentication App id, it is 
-	 * 	called internally by fetchPluginList().
+	 * Method to fetch the list of plugin ids associated with Authentication App id, 
+	 * it is called internally by fetchPluginList().
 	 * @param aAuthAppId ID of the Authentication app
-	 * @param aArray The array to be updated with plugin ids 
+	 * @param aArray [out] The array to be updated with plugin ids 
 	 */
-	void readPluginId(const TDesC& aAuthAppId, RPointerArray<HBufC>& aArray);
+	void readPluginIdL(const TDesC& aAuthAppId, RPointerArray<HBufC>& aArray);
 
 private:
 	/**
-	 * constructor
+	 * Constructor
+	 * @param aSession The CSmfCredMgrServerSession instance
 	 */
 	CSmfCredMgrDbUser(CSmfCredMgrServerSession* aSession);
 
--- a/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserver.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserver.h	Thu Aug 05 16:48:48 2010 +0530
@@ -7,36 +7,42 @@
  * at the URL "http://www.eclipse.org/legal/epl-v10.html"
  *
  * Initial Contributors:
- * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ * 
+ * Contributors:
+ * Pritam Roy Biswas, Sasken Communication Technologies Ltd
  *
  * Description:
  * Header file for Credential Manager Server.
  */
+
 #ifndef __SMFCREDMGRSERVER_H__
 #define __SMFCREDMGRSERVER_H__
 
 //  Include Files
-
 #include <e32base.h>
 
+// Forward declaration
 class CSmfCredMgrDb;
 
 //  Function Prototypes
-
 GLDEF_C TInt E32Main();
 
 // ----------------------------------------------------------------------------------------
 // Server's policy
 // ----------------------------------------------------------------------------------------
 static const TUint rangeCount = 1;
+
 static const TInt ranges[rangeCount] =
 	{
 	0
 	};
+
 static const TUint8 elementsIndex[rangeCount] =
 	{
 	CPolicyServer::EAlwaysPass
 	};
+
 static const CPolicyServer::TPolicy policy =
 	{
 	CPolicyServer::EAlwaysPass, //specifies all connect attempts should pass
@@ -48,19 +54,25 @@
 
 /**
  * Class for Credential Manager Server.
- *  Derives from CPolicyServer.
+ * Derives from CPolicyServer.
  */
 class CSmfCredMgrServer : public CPolicyServer
 	{
 public:
 	/**
-	 * New Methods
+	 * NewL Method
+	 * @return The constructed CSmfCredMgrServer instance
 	 */
 	static CSmfCredMgrServer * NewL();
+	
+	/**
+	 * NewLC Method
+	 * @return The constructed CSmfCredMgrServer instance
+	 */
 	static CSmfCredMgrServer* NewLC();
 
 	/**
-	 * destructor
+	 * Destructor
 	 */
 	~CSmfCredMgrServer();
 
@@ -70,12 +82,11 @@
 	 * is initiated by the client through a call to one of the 
 	 * RSessionBase::CreateSession() variants.
 	 */
-	CSession2
-			* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
+	CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
 
 private:
 	/**
-	 * constructor
+	 * Constructor
 	 */
 	CSmfCredMgrServer();
 
--- a/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserversession.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserversession.h	Thu Aug 05 16:48:48 2010 +0530
@@ -7,7 +7,10 @@
  * at the URL "http://www.eclipse.org/legal/epl-v10.html"
  *
  * Initial Contributors:
- * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ * 
+ * Contributors:
+ * Pritam Roy Biswas, Sasken Communication Technologies Ltd
  *
  * Description:
  * Header file for Credential Manager Server Session.
@@ -17,6 +20,7 @@
 #define SMFCREDMGRSERVERSESSION_H_
 
 #include <e32base.h>
+
 #include "smfcredmgrserver.h"
 #include "smfcredmgrclientdatastruct.h"
 #include "smfkeystoremanager.h"
@@ -27,22 +31,29 @@
 class CSmfCredMgrDbUser;
 
 /**
- * Maximun size for buffer
+ * Maximum size for buffer
  */
 const TInt KMaxBufSize = 512;
 
 /**
  * Class to establish a client session at server side.
- *  Derives from CSession2
+ * Derives from CSession2
  */
 class CSmfCredMgrServerSession : public CSession2
 	{
 public:
 	/**
-	 * New Methods
+	 * NewL Method
 	 * @param aServer the server object
+	 * @return The constructed CSmfCredMgrServerSession instance
 	 */
 	static CSmfCredMgrServerSession* NewL(CSmfCredMgrServer& aServer);
+	
+	/**
+	 * NewLC Method
+	 * @param aServer the server object
+	 * @return The constructed CSmfCredMgrServerSession instance
+	 */
 	static CSmfCredMgrServerSession* NewLC(CSmfCredMgrServer& aServer);
 
 	/**
@@ -50,15 +61,7 @@
 	 */
 	~CSmfCredMgrServerSession();
 
-	/**
-	 * Constructor
-	 * @param aServer The server object
-	 */
-	CSmfCredMgrServerSession(CSmfCredMgrServer& aServer);
-
-public:
-	// from CSession2
-
+public: // from CSession2
 	/**
 	 * Handles the servicing of a client request that has been 
 	 * passed to the server
@@ -68,6 +71,12 @@
 
 private:
 	/**
+	 * Constructor
+	 * @param aServer The server object
+	 */
+	CSmfCredMgrServerSession(CSmfCredMgrServer& aServer);
+	
+	/**
 	 * Two-Phase constructor
 	 */
 	void ConstructL();
@@ -79,26 +88,24 @@
 	void storeInDb(CSmfStoreAuthParams* aParams);
 
 	/**
-	 * Retieves the plugin ids from Db
+	 * Retrieves the plugin ids from Db
 	 * @param aParams class object to be updated
 	 */
-	void fetchPluginIDs(CSmfPluginIDListParams* aParams);
+	void fetchPluginIDsL(CSmfPluginIDListParams* aParams);
 
 	/**
-	 * Retieves the URLs from Db
+	 * Retrieves the URLs from Db
 	 * @param aArg class object to be updated
 	 */
-	void fetchURLs(CSmfURLListParams* aArg);
+	void fetchUrlL(CSmfURLListParams* aArg);
 
 	/**
-	 * retrieves each token set from Db and updates the array of CSmfFetchAuthTokenSet
+	 * Retrieves each token set from Db and updates the array of CSmfFetchAuthTokenSet
 	 * @param aParams class containg the array to be filled
 	 */
-	void getTokenArray(CSmfFetchAuthTokenSet* aParams);
-
+	void getTokenArrayL(CSmfFetchAuthTokenSet* aParams);
 
-private:
-
+private:  // Data
 	CSmfCredMgrServer& iServer;
 	CSmfCredMgrDbUser* iDbUser;
 	CSmfKeyStoreManager* iKeyStore;
--- a/smf/smfcredentialmgr/smfcredmgrserver/inc/smfkeystoremanager.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/inc/smfkeystoremanager.h	Thu Aug 05 16:48:48 2010 +0530
@@ -1,13 +1,22 @@
-/*
- * smfkeystoremanager.h
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
  *
- *  Created on: 21.4.2010
- *      Author: lassela
+ * Initial Contributors:
+ * Lasse Laasonen, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Description:
+ * This header contains routines handling RSA signing using Unified Key Store 
  */
 
 #ifndef SMFKEYSTOREMANAGER_H_
 #define SMFKEYSTOREMANAGER_H_
 
+// Include files
 #include <e32base.h>
 #include <f32file.h>
 
@@ -27,36 +36,99 @@
 class CSmfKeyStoreManager : public CActive 
 	{
 public:
+	/**
+	 * NewL Method
+	 * @return The constructed CSmfKeyStoreManager instance
+	 */
 	static CSmfKeyStoreManager* NewL();
+	
+	/**
+	 * NewLC Method
+	 * @return The constructed CSmfKeyStoreManager instance
+	 */
 	static CSmfKeyStoreManager* NewLC();
 	
+	/**
+	 * Destructor
+	 */
 	~CSmfKeyStoreManager();
 	
+	/**
+	 * HandleMessageL
+	 * @param aMessage
+	 */
 	void HandleMessageL( const RMessage2& aMessage );
 	
 //	void GenerateKeyL( const RMessage2& aMessage );
 //	void StoreRSAKeyL( const RMessage2& aMessage );
 	
 private: // from CActive
+	/**
+	 * RunL
+	 */
 	void RunL();
+	
+	/**
+	 * DoCancel
+	 */
 	void DoCancel();
+	
+	/**
+	 * RunError
+	 * @param aError
+	 * @return
+	 */
 	TInt RunError(TInt aError);
 	
 private:
+	/**
+	 * Constructor
+	 */
 	CSmfKeyStoreManager();
+	
+	/**
+	 * Two-phase constructor
+	 */
 	void ConstructL();
 	
+	/**
+	 * ContinueMessageHandlingL
+	 */
 	void ContinueMessageHandlingL();
 	
+	/**
+	 * StoreRSAKeyL
+	 */
 	void StoreRSAKeyL();
+	
+	/**
+	 * RSA_SHA1_SignMessageL
+	 */
 	void RSA_SHA1_SignMessageL();
+	
+	/**
+	 * HMAC_SHA1_SignMessageL
+	 */
 	void HMAC_SHA1_SignMessageL();
 		
-	void DeleteKeys();
+	/**
+	 * DeleteKeysL
+	 */
+	void DeleteKeysL();
 	
+	/**
+	 * SetPassphraseTimeout
+	 */
 	void SetPassphraseTimeout();
 	
+	/**
+	 * ReadSignParametersL
+	 */
 	void ReadSignParametersL();
+	
+	/**
+	 * ReadRsaKeyParametersL
+	 */
 	void ReadRsaKeyParametersL();
 	
 private:
@@ -89,5 +161,4 @@
 	
 };
 
-
 #endif /* SMFKEYSTOREMANAGER_H_ */
Binary file smf/smfcredentialmgr/smfcredmgrserver/sis/SmfCredMgrServer_EKA2.sis has changed
Binary file smf/smfcredentialmgr/smfcredmgrserver/sis/SmfCredMgrServer_EKA2.sisx has changed
--- a/smf/smfcredentialmgr/smfcredmgrserver/smfcredmgrserver.pro	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/smfcredmgrserver.pro	Thu Aug 05 16:48:48 2010 +0530
@@ -12,6 +12,14 @@
 TEMPLATE = subdirs
 symbian:
     {
+    TARGET.CAPABILITY = NetworkServices \
+    	ReadUserData \
+    	WriteUserData \
+    	LocalServices \
+    	UserEnvironment \
+    	ReadDeviceData \
+    	WriteDeviceData
+
     BLD_INF_RULES.prj_mmpfiles = "group/smfcredmgrserver.mmp"
     }
 
--- a/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdb.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdb.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -1,13 +1,31 @@
 /**
- * SmfCredMgrDb.cpp
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
  *
- *  Created on: Apr 27, 2010
- *      Author: pritam
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ * 
+ * Contributors:
+ * Pritam Roy Biswas, Nalina Hariharan, Sasken Communication Technologies Ltd
+ *
+ * Description:
+ * This header defines the database-table and the creation of database that will be 
+ * used by the Credential Manager Server to store all the credentials related 
+ * to an Authentication Application
  */
 
-#include "smfcredmgrdb.h"
 #include <BAUTILS.H>
 
+#include "smfcredmgrdb.h"
+
+/**
+ * NewL Method
+ * @return The constructed CSmfCredMgrDb instance
+ */
 CSmfCredMgrDb* CSmfCredMgrDb::NewL()
 	{
 	CSmfCredMgrDb* self = CSmfCredMgrDb::NewLC();
@@ -15,6 +33,10 @@
 	return (self);
 	}
 
+/**
+ * NewLC Method
+ * @return The constructed CSmfCredMgrDb instance
+ */
 CSmfCredMgrDb* CSmfCredMgrDb::NewLC()
 	{
 	CSmfCredMgrDb* self = new (ELeave) CSmfCredMgrDb();
@@ -23,6 +45,9 @@
 	return (self);
 	}
 
+/**
+ * Constructor
+ */
 CSmfCredMgrDb::CSmfCredMgrDb()
 	{
 	RDebug::Printf("in constructor db");
@@ -51,27 +76,25 @@
 		
 		//Reset if necessary
 		}
-
 	}
 
+/**
+ * Destructor
+ */
 CSmfCredMgrDb::~CSmfCredMgrDb()
 	{
 	//delete db file
-
 	iDataBase.Close();
 	iFileSession.Close();
 	RDebug::Printf("in destructor db");
 	}
 
-void CSmfCredMgrDb::CompleteDBCreationL(const TFileName &aFileName)
-	{
-	User::LeaveIfError(CreateDbFile(aFileName));
-	User::LeaveIfError(PluginIDTableCreate());
-	User::LeaveIfError(URLTableCreate());
-	User::LeaveIfError(RegTokenValidityTableCreate());
-	User::LeaveIfError(AuthParamsTableCreate());
-	}
-
+/**
+ * Method to create the Db file
+ * @param aFileName The file name
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description.
+ */
 TInt CSmfCredMgrDb::CreateDbFile(const TFileName &aFileName)
 	{
 	TInt err(KErrNone);
@@ -82,9 +105,26 @@
 		DeleteDbFile(aFileName);
 		}
 	return err;
-
 	}
 
+/**
+ * Method to create the Db tables
+ * @param aFileName The Db file name
+ */
+void CSmfCredMgrDb::CompleteDBCreationL(const TFileName &aFileName)
+	{
+	User::LeaveIfError(CreateDbFile(aFileName));
+	User::LeaveIfError(PluginIDTableCreate());
+	User::LeaveIfError(URLTableCreate());
+	User::LeaveIfError(RegTokenValidityTableCreate());
+	User::LeaveIfError(AuthParamsTableCreate());
+	}
+
+/**
+ * Creates the Plugin Id table
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description. 
+ */
 TInt CSmfCredMgrDb::PluginIDTableCreate()
 	{
 	TInt err(KErrNone);
@@ -98,6 +138,11 @@
 	return err;
 	}
 
+/**
+ * Creates the URL table
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description.
+ */
 TInt CSmfCredMgrDb::URLTableCreate()
 	{
 	TInt err(KErrNone);
@@ -111,6 +156,11 @@
 	return err;
 	}
 
+/**
+ * Creates the RegistrationToken-Validity Table
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description.
+ */
 TInt CSmfCredMgrDb::RegTokenValidityTableCreate()
 	{
 	TInt err(KErrNone);
@@ -124,6 +174,11 @@
 	return err;
 	}
 
+/**
+ * Creates the Authentication Parameters Table
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description.
+ */
 TInt CSmfCredMgrDb::AuthParamsTableCreate()
 	{
 	TInt err(KErrNone);
@@ -137,6 +192,12 @@
 	return err;
 	}
 
+/**
+ * Deletes the Db 
+ * @param aFileName The Db file name
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description.
+ */
 TInt CSmfCredMgrDb::DeleteDbFile(const TFileName &aFileName)
 	{
 	//close the sql handle before deleting
--- a/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdbuser.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdbuser.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -7,7 +7,10 @@
  * at the URL "http://www.eclipse.org/legal/epl-v10.html"
  *
  * Initial Contributors:
- * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ * 
+ * Contributors:
+ * Pritam Roy Biswas, Nalina Hariharan, Sasken Communication Technologies Ltd
  *
  * Description:
  * This file contains routines to handle the data-base operations like insertion, query etc. 
@@ -15,9 +18,15 @@
  */
 
 #include <BAUTILS.H>
+
 #include "smfcredmgrdbuser.h"
 #include "smfcredmgrdb.h"
 
+/**
+ * NewL function
+ * @param aSession the session object using this class
+ * @return The constructed CSmfCredMgrDbUser instance
+ */
 CSmfCredMgrDbUser* CSmfCredMgrDbUser::NewL(CSmfCredMgrServerSession* aSession)
 	{
 	CSmfCredMgrDbUser* self = CSmfCredMgrDbUser::NewLC(aSession);
@@ -25,6 +34,12 @@
 	return (self);
 	}
 
+/**
+ * NewLC function. This method adds the return value to the 
+ * Cleanup Stack if constructed
+ * @param aSession the session object using this class
+ * @return The constructed CSmfCredMgrDbUser instance
+ */
 CSmfCredMgrDbUser* CSmfCredMgrDbUser::NewLC(CSmfCredMgrServerSession* aSession)
 	{
 	CSmfCredMgrDbUser* self = new (ELeave) CSmfCredMgrDbUser(aSession);
@@ -33,6 +48,9 @@
 	return (self);
 	}
 
+/**
+ * Two phase constructor
+ */
 void CSmfCredMgrDbUser::ConstructL()
 	{
 	TInt err = iFileSession.Connect();
@@ -71,17 +89,33 @@
 		}
 	}
 
+/**
+ * Constructor
+ * @param aSession The CSmfCredMgrServerSession instance
+ */
 CSmfCredMgrDbUser::CSmfCredMgrDbUser(CSmfCredMgrServerSession* aSession) :
 	iSession(aSession)
 	{
 	}
 
+/**
+ * Destructor
+ */
 CSmfCredMgrDbUser::~CSmfCredMgrDbUser()
 	{
 	iFileSession.Close();
 	iDataBase.Close();
 	}
 
+/**
+ * Method to insert PluginIDTable
+ * @param aPluginID The ID of the plugin 
+ * @param aAuthAppId The ID of the Authentication app associated with the plugin
+ * @param aEnableFlag A flag to indicate if the plugin is enabled, 
+ * i.e, aEnableFlag = 0 for a disabled plugin
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description.
+ */
 TInt CSmfCredMgrDbUser::PluginIDTableInsert(const TDesC& aPluginId,
 		const TDesC& aAuthAppId, TBool aEnableFlag)
 	{
@@ -135,6 +169,13 @@
 	return err;
 	}
 
+/**
+ * Method to insert URLTable
+ * @param aAuthAppId The ID of the Authentication app associated with the URLs 
+ * @param aURL The URL to be stored
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description.
+ */
 TInt CSmfCredMgrDbUser::URLTableInsert(const TDesC& aAuthAppId,
 		const TDesC& aURL)
 	{
@@ -185,6 +226,14 @@
 	return err;
 	}
 
+/**
+ * Method to insert RegTokenValidityTable
+ * @param aRegToken The Registration token for the authentication app 
+ * @param aAuthAppId The ID of the Authentication app
+ * @param aValidity The time by which the set will expire
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description. 
+ */
 TInt CSmfCredMgrDbUser::RegTokenValidityTableInsert(const TDesC& aRegToken,
 		const TDesC& aAuthAppId, const TUint aValidity)
 	{
@@ -239,6 +288,14 @@
 
 	}
 
+/**
+ * Method to insert AuthParamsTable
+ * @param aAuthAppId The ID of the Authentication app
+ * @param aKey The Key
+ * @param aSecret The Secret
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description. 
+ */
 TInt CSmfCredMgrDbUser::AuthParamsTableInsert(const TDesC& aAuthAppId,
 		const TDesC& aKey, const TDesC& aSecret)
 	{
@@ -293,55 +350,25 @@
 	return err;
 	}
 
-void CSmfCredMgrDbUser::readFlagInPluginIdTable(const TDesC& aPluginID,
-		TInt& aFlag)
+/**
+ * Method to fetch all the plugins associated with the registration token
+ * @param aRegToken The Registration token of the authentication app
+ * @param aArray [out] The array to be updated with plugin ids
+ */
+void CSmfCredMgrDbUser::fetchPluginListL(const TDesC& aRegToken, RPointerArray<
+		HBufC>& aArray)
 	{
-	TInt err(KErrNone);
-
-	RSqlStatement sqlReadStatement;
-	TInt paramIndex(KErrNone);
-
-	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadFlagInPluginTable);
-
-	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
-	err = sqlReadStatement.BindText(paramIndex, aPluginID);
-
-	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
-		{
-		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
-		if (!sqlReadStatement.IsNull(0))
-			{
-			aFlag = sqlReadStatement.ColumnInt(0);
-			}
-		}
-	sqlReadStatement.Close();
+	TBuf<KMaxBufSize> authAppID;
+	readAuthAppIdInRegTokenTable(aRegToken, authAppID);
+	readPluginIdL(authAppID, aArray);
 	}
 
-void CSmfCredMgrDbUser::readAuthAppIdInPluginIdTable(const TDesC& aPluginID,
-		TDes& aAuthAppId)
-	{
-	TInt err(KErrNone);
-
-	RSqlStatement sqlReadStatement;
-	TInt paramIndex(KErrNone);
-
-	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadAuthAppIdInPluginTable);
-
-	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
-	err = sqlReadStatement.BindText(paramIndex, aPluginID);
-
-	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
-		{
-		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
-		if (!sqlReadStatement.IsNull(0))
-			{
-			sqlReadStatement.ColumnText(0, aAuthAppId);
-			}
-		}
-	sqlReadStatement.Close();
-	}
-
-void CSmfCredMgrDbUser::readAuthTokens(const TDesC& aAuthAppId, RArray<
+/**
+ * Method to Key-Secret pairs of the Authentication app
+ * @param aAuthAppId The ID of the Authentication app
+ * @param aArray [out] The array containing the key-secret pair
+ */
+void CSmfCredMgrDbUser::readAuthTokensL(const TDesC& aAuthAppId, RArray<
 		TSmfAuthToken>& aArray)
 	{
 	TInt err(KErrNone);
@@ -383,14 +410,112 @@
 	sqlReadStatement.Close();
 	}
 
-void CSmfCredMgrDbUser::fetchPluginList(const TDesC& aRegToken, RPointerArray<
-		HBufC>& aArray)
+/**
+ * Method to fetch all the URLs associated with the Authentication app
+ * @param aAuthAppId The ID of the Authentication app
+ * @param aArray [out] The array to be updated with URLs 
+ */
+void CSmfCredMgrDbUser::readUrlL(const TDesC& aAuthAppId,
+		RPointerArray<HBufC>& aArray)
 	{
-	TBuf<KMaxBufSize> authAppID;
-	readAuthAppIdInRegTokenTable(aRegToken, authAppID);
-	readPluginId(authAppID, aArray);
+	TInt err(KErrNone);
+
+	RSqlStatement sqlReadStatement;
+	TInt paramIndex(KErrNone);
+
+	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadURL);
+	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
+	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
+
+	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
+		{
+		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
+		if (!sqlReadStatement.IsNull(0))
+			{
+			TBuf<KMaxBufSize> urlBuf;
+			HBufC* buf = HBufC::NewL(KMaxBufSize);
+			sqlReadStatement.ColumnText(0, urlBuf);
+			buf->Des().Copy(urlBuf);
+			aArray.Append(buf);
+			}
+		else
+			{
+			__ASSERT_DEBUG( 0, User::Invariant());
+			}
+		}
+	sqlReadStatement.Close();
 	}
 
+/**
+ * Method to fetch Validity of the Authentication app
+ * @param aAuthAppId The ID of the Authentication app
+ * @param aValidity [out] The time by which the Auth set will expire
+ */
+void CSmfCredMgrDbUser::readValidity(const TDesC& aAuthAppId, TInt64& aValidity)
+	{
+	TInt err(KErrNone);
+
+	RSqlStatement sqlReadStatement;
+	TInt paramIndex(KErrNone);
+
+	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadValidity);
+	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
+	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
+
+	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
+		{
+		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
+		if (!sqlReadStatement.IsNull(0))
+			{
+			aValidity = sqlReadStatement.ColumnInt64(1);
+			}
+		else
+			{
+			__ASSERT_DEBUG( 0, User::Invariant());
+			}
+		}
+	sqlReadStatement.Close();
+
+	}
+
+/**
+ * Method to fetch Registration token of the Authentication app from RegTokenValidityTable
+ * @param aAuthAppId The ID of the Authentication app
+ * @param aRegToken [out] The Registration token of the authentication app
+ */
+void CSmfCredMgrDbUser::readRegistrationTokenL(const TDesC& aAuthAppId,
+		TDesC& aRegToken)
+	{
+	TInt err(KErrNone);
+
+	RSqlStatement sqlReadStatement;
+	TInt paramIndex(KErrNone);
+
+	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadRegistrationToken);
+	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
+	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
+
+	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
+		{
+		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
+		if (!sqlReadStatement.IsNull(0))
+			{
+			aRegToken = sqlReadStatement.ColumnTextL(0);//aKey.AllocL();
+			}
+		else
+			{
+			__ASSERT_DEBUG( 0, User::Invariant());
+			}
+		}
+	sqlReadStatement.Close();
+	}
+
+/**
+ * Method to fetch Authentication app ID from RegTokenValidityTable 
+ * giving the reg token
+ * @param aRegToken The Registration token of the authentication app
+ * @param aAuthAppId [out] The ID of the Authentication app
+ */
 void CSmfCredMgrDbUser::readAuthAppIdInRegTokenTable(const TDesC& aRegToken,
 		TDes& aAuthAppId)
 	{
@@ -423,126 +548,76 @@
 		}
 	sqlReadStatement.Close();
 	}
-void CSmfCredMgrDbUser::readPluginId(const TDesC& aAuthAppId, RPointerArray<
-		HBufC>& aArray)
-	{
-	TInt err(KErrNone);
-	RSqlStatement sqlReadStatement;
-	TInt paramIndex(KErrNone);
-	TInt flag;
 
-	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadPluginID);
-	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
-	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
 
-	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
-		{
-		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
-		if (!sqlReadStatement.IsNull(0))
-			{
-			flag = sqlReadStatement.ColumnInt(1);
-			if (flag > 0)
-				{
-				TBuf<KMaxBufSize> pluginbuf;
-				HBufC* buf = HBufC::NewL(KMaxBufSize);
-				sqlReadStatement.ColumnText(0, pluginbuf);
-				buf->Des().Copy(pluginbuf);
-				aArray.Append(buf);
-				}
-			}
-		else
-			{
-			__ASSERT_DEBUG( 0, User::Invariant());
-			}
-		}
-	sqlReadStatement.Close();
-	}
-
-void CSmfCredMgrDbUser::readURL(const TDesC& aAuthAppId,
-		RPointerArray<HBufC>& aArray)
+/**
+ * Method to fetch Authentication app ID from PluginIDTable giving the plugin ID
+ * @param aPluginID the ID of the plugin
+ * @param aAuthAppId [out] ID of the Authentication app
+ */
+void CSmfCredMgrDbUser::readAuthAppIdInPluginIdTable(const TDesC& aPluginID,
+		TDes& aAuthAppId)
 	{
 	TInt err(KErrNone);
 
 	RSqlStatement sqlReadStatement;
 	TInt paramIndex(KErrNone);
 
-	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadURL);
+	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadAuthAppIdInPluginTable);
+
 	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
-	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
+	err = sqlReadStatement.BindText(paramIndex, aPluginID);
 
 	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
 		{
 		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
 		if (!sqlReadStatement.IsNull(0))
 			{
-			TBuf<KMaxBufSize> urlBuf;
-			HBufC* buf = HBufC::NewL(KMaxBufSize);
-			sqlReadStatement.ColumnText(0, urlBuf);
-			buf->Des().Copy(urlBuf);
-			aArray.Append(buf);
-			}
-		else
-			{
-			__ASSERT_DEBUG( 0, User::Invariant());
+			sqlReadStatement.ColumnText(0, aAuthAppId);
 			}
 		}
 	sqlReadStatement.Close();
 	}
 
-void CSmfCredMgrDbUser::readValidity(const TDesC& aAuthAppId, TInt64& aValidity)
+/**
+ * Method to read the IsEnabled flag from plugin Id table
+ * @param aPluginID The ID of the plugin
+ * @param aFlag [out] The flag that indicates the plugin id is enables or disabled
+ */
+void CSmfCredMgrDbUser::readFlagInPluginIdTable(const TDesC& aPluginID,
+		TInt& aFlag)
 	{
 	TInt err(KErrNone);
 
 	RSqlStatement sqlReadStatement;
 	TInt paramIndex(KErrNone);
 
-	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadValidity);
+	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadFlagInPluginTable);
+
 	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
-	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
+	err = sqlReadStatement.BindText(paramIndex, aPluginID);
 
 	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
 		{
 		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
 		if (!sqlReadStatement.IsNull(0))
 			{
-			aValidity = sqlReadStatement.ColumnInt64(1);
-			}
-		else
-			{
-			__ASSERT_DEBUG( 0, User::Invariant());
-			}
-		}
-	sqlReadStatement.Close();
-
-	}
-
-void CSmfCredMgrDbUser::readRegistrationToken(const TDesC& aAuthAppId,
-		TDesC& aRegToken)
-	{
-	TInt err(KErrNone);
-
-	RSqlStatement sqlReadStatement;
-	TInt paramIndex(KErrNone);
-
-	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadRegistrationToken);
-	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
-	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
-
-	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
-		{
-		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
-		if (!sqlReadStatement.IsNull(0))
-			{
-			aRegToken = sqlReadStatement.ColumnTextL(0);//aKey.AllocL();
-			}
-		else
-			{
-			__ASSERT_DEBUG( 0, User::Invariant());
+			aFlag = sqlReadStatement.ColumnInt(0);
 			}
 		}
 	sqlReadStatement.Close();
 	}
 
+
+
+/**
+ * Method to change a plugin id in plugin Id table
+ * @param aNewPluginID The ID of the new plugin
+ * @param aFlag The flag that indicates the plugin id is enables or disabled
+ * @param aOldPluginID The ID of the plugin to be replaced
+ * @return Returns KErrNone if success. Refer ESqlDbError and system-wide 
+ * error codes for detailed error description.
+ */
 TInt CSmfCredMgrDbUser::updatePlugin(const TDesC& aPluginID,
 		const TBool& aFlag, const TDesC& aOldPluginID)
 	{
@@ -595,3 +670,44 @@
 		}
 	return err;
 	}
+
+/**
+ * Method to fetch the list of plugin ids associated with Authentication App id, 
+ * it is called internally by fetchPluginList().
+ * @param aAuthAppId ID of the Authentication app
+ * @param aArray [out] The array to be updated with plugin ids 
+ */
+void CSmfCredMgrDbUser::readPluginIdL(const TDesC& aAuthAppId, RPointerArray<
+		HBufC>& aArray)
+	{
+	TInt err(KErrNone);
+	RSqlStatement sqlReadStatement;
+	TInt paramIndex(KErrNone);
+	TInt flag;
+
+	err = sqlReadStatement.Prepare(iDataBase, KSmfDbReadPluginID);
+	paramIndex = sqlReadStatement.ParameterIndex(_L(":iID"));
+	err = sqlReadStatement.BindText(paramIndex, aAuthAppId);
+
+	while ((err = sqlReadStatement.Next()) == KSqlAtRow)
+		{
+		//sometimes sqlStmt.Next returns KSqlAtRow even if no row is present
+		if (!sqlReadStatement.IsNull(0))
+			{
+			flag = sqlReadStatement.ColumnInt(1);
+			if (flag > 0)
+				{
+				TBuf<KMaxBufSize> pluginbuf;
+				HBufC* buf = HBufC::NewL(KMaxBufSize);
+				sqlReadStatement.ColumnText(0, pluginbuf);
+				buf->Des().Copy(pluginbuf);
+				aArray.Append(buf);
+				}
+			}
+		else
+			{
+			__ASSERT_DEBUG( 0, User::Invariant());
+			}
+		}
+	sqlReadStatement.Close();
+	}
--- a/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserver.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserver.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -7,10 +7,13 @@
  * at the URL "http://www.eclipse.org/legal/epl-v10.html"
  *
  * Initial Contributors:
- * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ * 
+ * Contributors:
+ * Pritam Roy Biswas, Sasken Communication Technologies Ltd
  *
  * Description:
- * Routines for Credential Manager Server.
+ * Routines for Credential Manager Server
  */
 
 //  Include Files  
@@ -52,7 +55,6 @@
 // Server process entry-point
 TInt E32Main()
 	{
-
 	__UHEAP_MARK;
 
 	CTrapCleanup* cleanup = CTrapCleanup::New();
@@ -67,15 +69,10 @@
 	return r;
 	}
 
-CSmfCredMgrServer::CSmfCredMgrServer() :
-	CPolicyServer(CActive::EPriorityStandard, policy, EUnsharableSessions)
-	{
-
-	}
-
 /**
  * CSmfCredMgrServer::NewL()
  * Two-phased constructor.
+ * @return The constructed CSmfCredMgrServer instance
  */
 CSmfCredMgrServer* CSmfCredMgrServer::NewL()
 	{
@@ -87,6 +84,7 @@
 /**
  * CSmfCredMgrServer::NewLC()
  * Two-phased constructor.
+ * @return The constructed CSmfCredMgrServer instance
  */
 CSmfCredMgrServer* CSmfCredMgrServer::NewLC()
 	{
@@ -97,12 +95,20 @@
 	}
 
 /**
+ * Constructor
+ */
+CSmfCredMgrServer::CSmfCredMgrServer() :
+	CPolicyServer(CActive::EPriorityStandard, policy, EUnsharableSessions)
+	{
+
+	}
+
+/**
  * CSmfCredMgrServer::ConstructL()
  * Symbian 2nd phase constructor can leave.
  */
 void CSmfCredMgrServer::ConstructL()
 	{
-
 	iDbCreator = CSmfCredMgrDb::NewL();
 	StartL(KCredMgrServerName);
 	RDebug::Printf("in constructor CSmfCredMgrServer");
--- a/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserversession.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserversession.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -7,7 +7,10 @@
  * at the URL "http://www.eclipse.org/legal/epl-v10.html"
  *
  * Initial Contributors:
- * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ * 
+ * Contributors:
+ * Pritam Roy Biswas, Sasken Communication Technologies Ltd
  *
  * Description:
  * Header file for Credential Manager Server Session.
@@ -22,21 +25,15 @@
 #include <smfcredmgrclientdatastruct.h>
 #include <smfutils.h>
 
-
 #include "smfcredmgrserversession.h"
 #include "smfcredmgrserver.h"
 #include "smfcredmgrdbuser.h"
 
-CSmfCredMgrServerSession* CSmfCredMgrServerSession::NewLC(
-		CSmfCredMgrServer& aServer)
-	{
-	CSmfCredMgrServerSession* self = new (ELeave) CSmfCredMgrServerSession(
-			aServer);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;
-	}
-
+/**
+ * NewL Method
+ * @param aServer the server object
+ * @return The constructed CSmfCredMgrServerSession instance
+ */
 CSmfCredMgrServerSession* CSmfCredMgrServerSession::NewL(
 		CSmfCredMgrServer& aServer)
 	{
@@ -45,18 +42,42 @@
 	return self;
 	}
 
+/**
+ * NewLC Method
+ * @param aServer the server object
+ * @return The constructed CSmfCredMgrServerSession instance
+ */
+CSmfCredMgrServerSession* CSmfCredMgrServerSession::NewLC(
+		CSmfCredMgrServer& aServer)
+	{
+	CSmfCredMgrServerSession* self = new (ELeave) CSmfCredMgrServerSession(aServer);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+/**
+ * Constructor
+ * @param aServer The server object
+ */
 CSmfCredMgrServerSession::CSmfCredMgrServerSession(CSmfCredMgrServer& aServer) :
 	iServer(aServer)
 	{
 	RDebug::Printf("in constructor CSmfCredMgrServerSession");
 	}
 
+/**
+ * Two-Phase constructor
+ */
 void CSmfCredMgrServerSession::ConstructL()
 	{
 	iDbUser = CSmfCredMgrDbUser::NewL(this);
 	iKeyStore = CSmfKeyStoreManager::NewL();
 	}
 
+/**
+ * Destructor
+ */
 CSmfCredMgrServerSession::~CSmfCredMgrServerSession()
 	{
 	RDebug::Printf("in destructor CSmfCredMgrServerSession");
@@ -64,12 +85,16 @@
 	delete iKeyStore;
 	}
 
+/**
+ * Handles the servicing of a client request that has been 
+ * passed to the server
+ * @param aMessage The message containing the details of the client request
+ */
 void CSmfCredMgrServerSession::ServiceL(const RMessage2& aMessage)
 	{
 	TInt err = KErrNone;
 	switch (aMessage.Function())
 		{
-
 		case ESendAuthDataSet:
 			{
 			//create buffer to read the received data
@@ -84,7 +109,7 @@
 
 			fetchAuthTokenSetParams->InternalizeL(dataBuf);
 
-			getTokenArray(fetchAuthTokenSetParams);
+			getTokenArrayL(fetchAuthTokenSetParams);
 
 			//create buffer to serialize the data to be sent
 			CBufFlat* buf = CBufFlat::NewL(512);
@@ -146,7 +171,7 @@
 
 			fetchURLListParams->InternalizeL(dataBuf);
 
-			fetchURLs(fetchURLListParams);
+			fetchUrlL(fetchURLListParams);
 
 			//to serialize data we need a buffer
 			CBufFlat* buf = CBufFlat::NewL(512);
@@ -183,7 +208,7 @@
 			CleanupStack::PushL(fetchPluginListParams);
 			fetchPluginListParams->InternalizeL(dataBuf);
 
-			fetchPluginIDs(fetchPluginListParams);
+			fetchPluginIDsL(fetchPluginListParams);
 
 			//to serialize data we need a buffer
 			CBufFlat* buf = CBufFlat::NewL(512);
@@ -260,23 +285,43 @@
 
 			authenticationProcessData->InternalizeL(dataBuf);
 
+			//generate cryptographically secure random number.
+     	    TRandom generator;
+			TBuf8<KMaxRegistrationTokenLength> randNum;
+			randNum.SetLength(randNum.MaxLength());
+			generator.RandomL(randNum);
+			
+			//assign it to iRegistrationToken
+			authenticationProcessData->iRegistrationToken = HBufC::NewL(/*regToken.Length()*/KMaxRegistrationTokenLength);;
+	
+			TPtr regTokenPtr(authenticationProcessData->iRegistrationToken->Des());
+			regTokenPtr.Copy(randNum);
 
-			TBuf8<56> regToken;
-			regToken.SetLength(regToken.MaxLength());
-			TRandom::RandomL(regToken);
-			authenticationProcessData->iRegistrationToken = HBufC::NewL(KMaxRegistrationTokenLength);
-			TPtr tokenPtr(authenticationProcessData->iRegistrationToken->Des());
-			tokenPtr.Copy(regToken);
 			storeInDb(authenticationProcessData);
 
-			aMessage.WriteL(1, regToken);
+			//to serialize data we need a buffer
+			CBufFlat* buf = CBufFlat::NewL(KMaxBufSize);
+			CleanupStack::PushL(buf);
+			RBufWriteStream stream(*buf);
+			CleanupClosePushL(stream);
+
+			authenticationProcessData->ExternalizeL(stream);
+
+			stream.CommitL();
+
+			TPtr8 bufPtr = buf->Ptr(0);
+
+			TInt err = aMessage.Write(1, bufPtr);
+
+			CleanupStack::PopAndDestroy(&stream);
+			CleanupStack::PopAndDestroy(buf);
 			
-			CleanupStack::PopAndDestroy(authenticationProcessData->iRegistrationToken);
 			CleanupStack::PopAndDestroy(authenticationProcessData);
 			CleanupStack::PopAndDestroy(&dataBuf);
 			aMessage.Complete(err);
 			}
 			break;
+			
 		case ESmfHMACSHA1SignMessage:
 		case ESmfRSASignMessage:
 		case ESmfStoreRSAKey:
@@ -291,14 +336,18 @@
 		}
 	}
 
+/**
+ * Stores data to Db during Authentication process
+ * @param aParams class containg the data to be stored at Db
+ */
 void CSmfCredMgrServerSession::storeInDb(
 		CSmfStoreAuthParams* aAuthenticationProcessData)
 	{
 	TBuf<KMaxBufSize> authAppIDbuf(
 			aAuthenticationProcessData->iAuthAppID->Des());
-
+	TBuf<KMaxBufSize> regTokenBuf(aAuthenticationProcessData->iRegistrationToken->Des());
 	iDbUser->RegTokenValidityTableInsert(
-			aAuthenticationProcessData->iRegistrationToken->Des(),
+			regTokenBuf,
 			authAppIDbuf, aAuthenticationProcessData->iValidity);
 
 	for (int i = 0; i < aAuthenticationProcessData->iAuthTokenArray.Count(); i++)
@@ -325,25 +374,35 @@
 		}
 	}
 
-void CSmfCredMgrServerSession::fetchPluginIDs(CSmfPluginIDListParams* aParams)
+/**
+ * Retrieves the plugin ids from Db
+ * @param aParams class object to be updated
+ */
+void CSmfCredMgrServerSession::fetchPluginIDsL(CSmfPluginIDListParams* aParams)
 	{
 	TBuf<KMaxBufSize> tokenBuf(aParams->iRegistrationToken->Des());
-	iDbUser->fetchPluginList(tokenBuf, aParams->iPluginList);
+	iDbUser->fetchPluginListL(tokenBuf, aParams->iPluginList);
 	}
 
-void CSmfCredMgrServerSession::fetchURLs(CSmfURLListParams* aArg)
+/**
+ * Retrieves the URLs from Db
+ * @param aArg class object to be updated
+ */
+void CSmfCredMgrServerSession::fetchUrlL(CSmfURLListParams* aArg)
 	{
 	TBuf<KMaxBufSize> authAppIDBuf;
 	iDbUser->readAuthAppIdInPluginIdTable(aArg->iPluginID->Des(), authAppIDBuf);
-	iDbUser->readURL(authAppIDBuf, aArg->iURLList);
+	iDbUser->readUrlL(authAppIDBuf, aArg->iURLList);
 	}
 
-
-void CSmfCredMgrServerSession::getTokenArray(CSmfFetchAuthTokenSet* aParams)
+/**
+ * Retrieves each token set from Db and updates the array of CSmfFetchAuthTokenSet
+ * @param aParams class containg the array to be filled
+ */
+void CSmfCredMgrServerSession::getTokenArrayL(CSmfFetchAuthTokenSet* aParams)
 	{
 	TBuf<KMaxBufSize> authAppIDBuf;
 	iDbUser->readAuthAppIdInRegTokenTable(aParams->iRegistrationToken->Des(),
 			authAppIDBuf);
-	iDbUser->readAuthTokens(authAppIDBuf, aParams->iAuthTokenArray);
+	iDbUser->readAuthTokensL(authAppIDBuf, aParams->iAuthTokenArray);
 	}
-
--- a/smf/smfcredentialmgr/smfcredmgrserver/src/smfkeystoremanager.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/src/smfkeystoremanager.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -22,14 +22,23 @@
 #include <smfcredmgrclientdatastruct.h>
 #include <smfcredmgrcommon.h>
 #include <hash.h>
+
 #include "smfkeystoremanager.h"
 
+/**
+ * NewL Method
+ * @return The constructed CSmfKeyStoreManager instance
+ */
 CSmfKeyStoreManager* CSmfKeyStoreManager::NewL() {
 	CSmfKeyStoreManager* self = CSmfKeyStoreManager::NewLC();
 	CleanupStack::Pop( self );
 	return self;
 }
 
+/**
+ * NewLC Method
+ * @return The constructed CSmfKeyStoreManager instance
+ */
 CSmfKeyStoreManager* CSmfKeyStoreManager::NewLC() {
 	CSmfKeyStoreManager* self = new( ELeave )CSmfKeyStoreManager();
 	CleanupStack::PushL( self );
@@ -37,6 +46,9 @@
 	return self;
 }
 
+/**
+ * Destructor
+ */
 CSmfKeyStoreManager::~CSmfKeyStoreManager() {
 	iFs.Close();
 	
@@ -48,6 +60,10 @@
 	
 }
 
+/**
+ * HandleMessageL
+ * @param aMessage
+ */
 void CSmfKeyStoreManager::HandleMessageL( const RMessage2& aMessage ) 
 	{
 	RDebug::Printf("SMF: CSmfKeyStoreManager::HandleMessageL");
@@ -58,6 +74,9 @@
 		}
 	}
 
+/**
+ * RunL
+ */
 void CSmfKeyStoreManager::RunL() 
 	{
 	RDebug::Printf("SMF: CSmfKeyStoreManager::RunL, iStatus=%d", iStatus.Int() );
@@ -141,7 +160,7 @@
 			}
 		case EDeletingKey:
 			{
-			DeleteKeys();
+			DeleteKeysL();
 			break;
 			}
 #endif
@@ -157,9 +176,17 @@
 		}	
 	}
 
+/**
+ * DoCancel
+ */
 void CSmfKeyStoreManager::DoCancel() {	
 }
 
+/**
+ * RunError
+ * @param aError
+ * @return
+ */
 TInt CSmfKeyStoreManager::RunError( TInt aError ) {
 	RDebug::Printf("SMF: CSmfKeyStoreManager::RunError error=%d", aError);
 	
@@ -172,11 +199,17 @@
 	return KErrNone;
 }
 
+/**
+ * Constructor
+ */
 CSmfKeyStoreManager::CSmfKeyStoreManager() 
 	:CActive(EPriorityStandard), iState(EInitializingKeystore) 
 	{
 	}
 
+/**
+ * Two-phase constructor
+ */
 void CSmfKeyStoreManager::ConstructL() {
 	RDebug::Printf("SMF: CSmfKeyStoreManager::ConstructL");
 	CActiveScheduler::Add( this );
@@ -190,6 +223,9 @@
 #endif
 }
 
+/**
+ * ContinueMessageHandlingL
+ */
 void CSmfKeyStoreManager::ContinueMessageHandlingL() 
 	{
 	RDebug::Printf("SMF: CSmfKeyStoreManager::ContinueMessageHandling");
@@ -221,12 +257,15 @@
 			}
 		case ESmfDeleteKeys:
 			{
-			DeleteKeys();
+			DeleteKeysL();
 			break;
 			}
 		}
 	}
 
+/**
+ * StoreRSAKeyL
+ */
 void CSmfKeyStoreManager::StoreRSAKeyL() 
 	{
 #ifdef SYMBIAN_V3
@@ -245,6 +284,9 @@
 #endif
 	}
 
+/**
+ * RSA_SHA1_SignMessageL
+ */
 void CSmfKeyStoreManager::RSA_SHA1_SignMessageL() 
 	{
 	
@@ -275,6 +317,7 @@
 				if ( iKeys[i]->ID() == iSignParameters->Key() ) 
 					{
 					RDebug::Printf("SMF: Correct key found");
+					//might panic in CodeScanner, this open returns void
 					iKeyStore->Open( *iKeys[i], iRSASigner, iStatus );
 					iState = EGettingRSASigner;
 					keyFound = ETrue;
@@ -305,6 +348,9 @@
 #endif
 	}
 
+/**
+ * HMAC_SHA1_SignMessageL
+ */
 void CSmfKeyStoreManager::HMAC_SHA1_SignMessageL()
 	{	
 	ReadSignParametersL();
@@ -331,7 +377,10 @@
 	iSignParameters = NULL;	
 	}
 
-void CSmfKeyStoreManager::DeleteKeys() 
+/**
+ * DeleteKeysL
+ */
+void CSmfKeyStoreManager::DeleteKeysL() 
 	{
 	RDebug::Printf("SMF: CSmfKeyStoreManager::DeleteKeys");
 #ifdef SYMBIAN_V3
@@ -381,6 +430,9 @@
 #endif
 	}
 
+/**
+ * SetPassphraseTimeout
+ */
 void CSmfKeyStoreManager::SetPassphraseTimeout() 
 	{
 #ifdef SYMBIAN_V3
@@ -390,6 +442,9 @@
 #endif
 	}
 
+/**
+ * ReadSignParametersL
+ */
 void CSmfKeyStoreManager::ReadSignParametersL()
 	{
 	RMessage2* message = iMessages[0];
@@ -406,6 +461,9 @@
 	CleanupStack::PopAndDestroy( &dataBuf );
 	}
 
+/**
+ * ReadRsaKeyParametersL
+ */
 void CSmfKeyStoreManager::ReadRsaKeyParametersL()
 	{
 	RMessage2* message = iMessages[0];
@@ -422,6 +480,3 @@
 	
 	CleanupStack::PopAndDestroy( &dataBuf );
 	}
-
-
-
--- a/smf/smfservermodule/bld.inf	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// ============================================================================
-// * Makefile for building: smfservermodule
-// * Generated by qmake (2.01a) (Qt 4.6.1) on: 2010-05-05T13:58:12
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// * Project:  smfservermodule.pro
-// * Template: subdirs
-// ============================================================================
-
-#define BLD_INF_SMFSERVERMODULE_0FBFD7DA
-
-#ifndef BLD_INF_SMFSERVER_F2DC1A17
-	#include "smfserver\bld.inf"
-#endif // BLD_INF_SMFSERVER_F2DC1A17
-#ifndef BLD_INF_SMFCLIENT_F2F312E7
-	#include "smfclient\bld.inf"
-#endif // BLD_INF_SMFCLIENT_F2F312E7
-
-prj_platforms
-
-WINSCW GCCE ARMV5 ARMV6
-
-
-prj_mmpfiles
-
-
-prj_extensions
-
--- a/smf/smfservermodule/bwins/smfclientu.def	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,371 +0,0 @@
-EXPORTS
-	??0SmfAlbum@@QAE@ABV0@@Z @ 1 NONAME ; SmfAlbum::SmfAlbum(class SmfAlbum const &)
-	??0SmfAlbum@@QAE@XZ @ 2 NONAME ; SmfAlbum::SmfAlbum(void)
-	??0SmfArtists@@QAE@ABV0@@Z @ 3 NONAME ; SmfArtists::SmfArtists(class SmfArtists const &)
-	??0SmfArtists@@QAE@XZ @ 4 NONAME ; SmfArtists::SmfArtists(void)
-	??0SmfClient@@QAE@XZ @ 5 NONAME ; SmfClient::SmfClient(void)
-	??0SmfComment@@QAE@ABV0@@Z @ 6 NONAME ; SmfComment::SmfComment(class SmfComment const &)
-	??0SmfComment@@QAE@XZ @ 7 NONAME ; SmfComment::SmfComment(void)
-	??0SmfContact@@QAE@ABV0@@Z @ 8 NONAME ; SmfContact::SmfContact(class SmfContact const &)
-	??0SmfContact@@QAE@PAVQObject@@@Z @ 9 NONAME ; SmfContact::SmfContact(class QObject *)
-	??0SmfContactFetcher@@QAE@PAVSmfProvider@@@Z @ 10 NONAME ; SmfContactFetcher::SmfContactFetcher(class SmfProvider *)
-	??0SmfContactFetcher@@QAE@PAVSmfProvider@@PAVSmfContact@@@Z @ 11 NONAME ; SmfContactFetcher::SmfContactFetcher(class SmfProvider *, class SmfContact *)
-	??0SmfEvent@@QAE@ABV0@@Z @ 12 NONAME ; SmfEvent::SmfEvent(class SmfEvent const &)
-	??0SmfEvent@@QAE@XZ @ 13 NONAME ; SmfEvent::SmfEvent(void)
-	??0SmfGallery@@QAE@PAVSmfProvider@@@Z @ 14 NONAME ; SmfGallery::SmfGallery(class SmfProvider *)
-	??0SmfGroup@@QAE@ABV0@@Z @ 15 NONAME ; SmfGroup::SmfGroup(class SmfGroup const &)
-	??0SmfGroup@@QAE@PAV?$QList@VSmfContact@@@@@Z @ 16 NONAME ; SmfGroup::SmfGroup(class QList<class SmfContact> *)
-	??0SmfLocation@@QAE@ABV0@@Z @ 17 NONAME ; SmfLocation::SmfLocation(class SmfLocation const &)
-	??0SmfLocation@@QAE@XZ @ 18 NONAME ; SmfLocation::SmfLocation(void)
-	??0SmfLyrics@@QAE@ABV0@@Z @ 19 NONAME ; SmfLyrics::SmfLyrics(class SmfLyrics const &)
-	??0SmfLyrics@@QAE@XZ @ 20 NONAME ; SmfLyrics::SmfLyrics(void)
-	??0SmfMusicFingerPrint@@QAE@ABV0@@Z @ 21 NONAME ; SmfMusicFingerPrint::SmfMusicFingerPrint(class SmfMusicFingerPrint const &)
-	??0SmfMusicFingerPrint@@QAE@XZ @ 22 NONAME ; SmfMusicFingerPrint::SmfMusicFingerPrint(void)
-	??0SmfMusicProfile@@QAE@ABV0@@Z @ 23 NONAME ; SmfMusicProfile::SmfMusicProfile(class SmfMusicProfile const &)
-	??0SmfMusicProfile@@QAE@XZ @ 24 NONAME ; SmfMusicProfile::SmfMusicProfile(void)
-	??0SmfMusicRating@@QAE@ABV0@@Z @ 25 NONAME ; SmfMusicRating::SmfMusicRating(class SmfMusicRating const &)
-	??0SmfMusicRating@@QAE@PAVSmfTrackInfo@@@Z @ 26 NONAME ; SmfMusicRating::SmfMusicRating(class SmfTrackInfo *)
-	??0SmfPicture@@QAE@ABV0@@Z @ 27 NONAME ; SmfPicture::SmfPicture(class SmfPicture const &)
-	??0SmfPicture@@QAE@ABVQImage@@@Z @ 28 NONAME ; SmfPicture::SmfPicture(class QImage const &)
-	??0SmfPicture@@QAE@XZ @ 29 NONAME ; SmfPicture::SmfPicture(void)
-	??0SmfPlaylist@@QAE@ABV0@@Z @ 30 NONAME ; SmfPlaylist::SmfPlaylist(class SmfPlaylist const &)
-	??0SmfPlaylist@@QAE@XZ @ 31 NONAME ; SmfPlaylist::SmfPlaylist(void)
-	??0SmfPluginUtil@@AAE@XZ @ 32 NONAME ; SmfPluginUtil::SmfPluginUtil(void)
-	??0SmfPost@@QAE@ABV0@@Z @ 33 NONAME ; SmfPost::SmfPost(class SmfPost const &)
-	??0SmfPost@@QAE@VQString@@0VQImage@@VQUrl@@@Z @ 34 NONAME ; SmfPost::SmfPost(class QString, class QString, class QImage, class QUrl)
-	??0SmfPost@@QAE@XZ @ 35 NONAME ; SmfPost::SmfPost(void)
-	??0SmfPostProvider@@QAE@PAVSmfProvider@@@Z @ 36 NONAME ; SmfPostProvider::SmfPostProvider(class SmfProvider *)
-	??0SmfProvider@@QAE@ABV0@@Z @ 37 NONAME ; SmfProvider::SmfProvider(class SmfProvider const &)
-	??0SmfProvider@@QAE@PAVQObject@@@Z @ 38 NONAME ; SmfProvider::SmfProvider(class QObject *)
-	??0SmfSubtitle@@QAE@ABV0@@Z @ 39 NONAME ; SmfSubtitle::SmfSubtitle(class SmfSubtitle const &)
-	??0SmfSubtitle@@QAE@XZ @ 40 NONAME ; SmfSubtitle::SmfSubtitle(void)
-	??0SmfTrackInfo@@QAE@ABV0@@Z @ 41 NONAME ; SmfTrackInfo::SmfTrackInfo(class SmfTrackInfo const &)
-	??0SmfTrackInfo@@QAE@XZ @ 42 NONAME ; SmfTrackInfo::SmfTrackInfo(void)
-	??1SmfAlbum@@QAE@XZ @ 43 NONAME ; SmfAlbum::~SmfAlbum(void)
-	??1SmfArtists@@QAE@XZ @ 44 NONAME ; SmfArtists::~SmfArtists(void)
-	??1SmfClient@@QAE@XZ @ 45 NONAME ; SmfClient::~SmfClient(void)
-	??1SmfComment@@QAE@XZ @ 46 NONAME ; SmfComment::~SmfComment(void)
-	??1SmfContact@@QAE@XZ @ 47 NONAME ; SmfContact::~SmfContact(void)
-	??1SmfContactFetcher@@UAE@XZ @ 48 NONAME ; SmfContactFetcher::~SmfContactFetcher(void)
-	??1SmfEvent@@QAE@XZ @ 49 NONAME ; SmfEvent::~SmfEvent(void)
-	??1SmfGallery@@UAE@XZ @ 50 NONAME ; SmfGallery::~SmfGallery(void)
-	??1SmfGroup@@QAE@XZ @ 51 NONAME ; SmfGroup::~SmfGroup(void)
-	??1SmfLocation@@QAE@XZ @ 52 NONAME ; SmfLocation::~SmfLocation(void)
-	??1SmfLyrics@@QAE@XZ @ 53 NONAME ; SmfLyrics::~SmfLyrics(void)
-	??1SmfMusicFingerPrint@@QAE@XZ @ 54 NONAME ; SmfMusicFingerPrint::~SmfMusicFingerPrint(void)
-	??1SmfMusicProfile@@QAE@XZ @ 55 NONAME ; SmfMusicProfile::~SmfMusicProfile(void)
-	??1SmfMusicRating@@QAE@XZ @ 56 NONAME ; SmfMusicRating::~SmfMusicRating(void)
-	??1SmfPicture@@QAE@XZ @ 57 NONAME ; SmfPicture::~SmfPicture(void)
-	??1SmfPlaylist@@QAE@XZ @ 58 NONAME ; SmfPlaylist::~SmfPlaylist(void)
-	??1SmfPluginUtil@@QAE@XZ @ 59 NONAME ; SmfPluginUtil::~SmfPluginUtil(void)
-	??1SmfPost@@QAE@XZ @ 60 NONAME ; SmfPost::~SmfPost(void)
-	??1SmfPostProvider@@UAE@XZ @ 61 NONAME ; SmfPostProvider::~SmfPostProvider(void)
-	??1SmfProvider@@QAE@XZ @ 62 NONAME ; SmfProvider::~SmfProvider(void)
-	??1SmfSubtitle@@QAE@XZ @ 63 NONAME ; SmfSubtitle::~SmfSubtitle(void)
-	??1SmfTrackInfo@@QAE@XZ @ 64 NONAME ; SmfTrackInfo::~SmfTrackInfo(void)
-	??4SmfAlbum@@QAEAAV0@ABV0@@Z @ 65 NONAME ; class SmfAlbum & SmfAlbum::operator=(class SmfAlbum const &)
-	??4SmfArtists@@QAEAAV0@ABV0@@Z @ 66 NONAME ; class SmfArtists & SmfArtists::operator=(class SmfArtists const &)
-	??4SmfComment@@QAEAAV0@ABV0@@Z @ 67 NONAME ; class SmfComment & SmfComment::operator=(class SmfComment const &)
-	??4SmfEvent@@QAEAAV0@ABV0@@Z @ 68 NONAME ; class SmfEvent & SmfEvent::operator=(class SmfEvent const &)
-	??4SmfGroup@@QAEAAV0@ABV0@@Z @ 69 NONAME ; class SmfGroup & SmfGroup::operator=(class SmfGroup const &)
-	??4SmfLocation@@QAEAAV0@ABV0@@Z @ 70 NONAME ; class SmfLocation & SmfLocation::operator=(class SmfLocation const &)
-	??4SmfLyrics@@QAEAAV0@ABV0@@Z @ 71 NONAME ; class SmfLyrics & SmfLyrics::operator=(class SmfLyrics const &)
-	??4SmfMusicFingerPrint@@QAEAAV0@ABV0@@Z @ 72 NONAME ; class SmfMusicFingerPrint & SmfMusicFingerPrint::operator=(class SmfMusicFingerPrint const &)
-	??4SmfMusicProfile@@QAEAAV0@ABV0@@Z @ 73 NONAME ; class SmfMusicProfile & SmfMusicProfile::operator=(class SmfMusicProfile const &)
-	??4SmfMusicRating@@QAEAAV0@ABV0@@Z @ 74 NONAME ; class SmfMusicRating & SmfMusicRating::operator=(class SmfMusicRating const &)
-	??4SmfPicture@@QAEAAV0@ABV0@@Z @ 75 NONAME ; class SmfPicture & SmfPicture::operator=(class SmfPicture const &)
-	??4SmfPlaylist@@QAEAAV0@ABV0@@Z @ 76 NONAME ; class SmfPlaylist & SmfPlaylist::operator=(class SmfPlaylist const &)
-	??4SmfPost@@QAEAAV0@ABV0@@Z @ 77 NONAME ; class SmfPost & SmfPost::operator=(class SmfPost const &)
-	??4SmfSubtitle@@QAEAAV0@ABV0@@Z @ 78 NONAME ; class SmfSubtitle & SmfSubtitle::operator=(class SmfSubtitle const &)
-	??4SmfTrackInfo@@QAEAAV0@ABV0@@Z @ 79 NONAME ; class SmfTrackInfo & SmfTrackInfo::operator=(class SmfTrackInfo const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactName@QtMobility@@@Z @ 80 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactName &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfAlbum@@@Z @ 81 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfAlbum &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfArtists@@@Z @ 82 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfArtists &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfComment@@@Z @ 83 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfComment &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfContact@@@Z @ 84 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfContact &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfEvent@@@Z @ 85 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfEvent &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfGroup@@@Z @ 86 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfGroup &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfLocation@@@Z @ 87 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfLocation &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfLyrics@@@Z @ 88 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfLyrics &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicFingerPrint@@@Z @ 89 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicFingerPrint &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicProfile@@@Z @ 90 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicProfile &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicRating@@@Z @ 91 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicRating &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPicture@@@Z @ 92 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPicture &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPlaylist@@@Z @ 93 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPlaylist &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPost@@@Z @ 94 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPost &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfProvider@@@Z @ 95 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfProvider &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfSubtitle@@@Z @ 96 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfSubtitle &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfTrackInfo@@@Z @ 97 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfTrackInfo &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactName@QtMobility@@@Z @ 98 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactName const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfAlbum@@@Z @ 99 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfAlbum const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfArtists@@@Z @ 100 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfArtists const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfComment@@@Z @ 101 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfComment const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfContact@@@Z @ 102 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfContact const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfEvent@@@Z @ 103 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfEvent const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfGroup@@@Z @ 104 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfGroup const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfLocation@@@Z @ 105 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfLocation const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfLyrics@@@Z @ 106 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfLyrics const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicFingerPrint@@@Z @ 107 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicFingerPrint const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicProfile@@@Z @ 108 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicProfile const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicRating@@@Z @ 109 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicRating const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfPicture@@@Z @ 110 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPicture const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfPlaylist@@@Z @ 111 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPlaylist const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfPost@@@Z @ 112 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPost const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfProvider@@@Z @ 113 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfProvider const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfSubtitle@@@Z @ 114 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfSubtitle const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfTrackInfo@@@Z @ 115 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfTrackInfo const &)
-	??_ESmfComment@@QAE@I@Z @ 116 NONAME ; SmfComment::~SmfComment(unsigned int)
-	??_ESmfContact@@QAE@I@Z @ 117 NONAME ; SmfContact::~SmfContact(unsigned int)
-	??_ESmfContactFetcher@@UAE@I@Z @ 118 NONAME ; SmfContactFetcher::~SmfContactFetcher(unsigned int)
-	??_ESmfEvent@@QAE@I@Z @ 119 NONAME ; SmfEvent::~SmfEvent(unsigned int)
-	??_ESmfGallery@@UAE@I@Z @ 120 NONAME ; SmfGallery::~SmfGallery(unsigned int)
-	??_ESmfGroup@@QAE@I@Z @ 121 NONAME ; SmfGroup::~SmfGroup(unsigned int)
-	??_ESmfPicture@@QAE@I@Z @ 122 NONAME ; SmfPicture::~SmfPicture(unsigned int)
-	??_ESmfPluginUtil@@QAE@I@Z @ 123 NONAME ; SmfPluginUtil::~SmfPluginUtil(unsigned int)
-	??_ESmfPost@@QAE@I@Z @ 124 NONAME ; SmfPost::~SmfPost(unsigned int)
-	??_ESmfPostProvider@@UAE@I@Z @ 125 NONAME ; SmfPostProvider::~SmfPostProvider(unsigned int)
-	??_ESmfProvider@@QAE@I@Z @ 126 NONAME ; SmfProvider::~SmfProvider(unsigned int)
-	??_ESmfTrackInfo@@QAE@I@Z @ 127 NONAME ; SmfTrackInfo::~SmfTrackInfo(unsigned int)
-	?GetServices@SmfClient@@QAEPAV?$QList@VSmfProvider@@@@ABVQString@@@Z @ 128 NONAME ; class QList<class SmfProvider> * SmfClient::GetServices(class QString const &)
-	?addComment@SmfPicture@@QAEXABVSmfComment@@@Z @ 129 NONAME ; void SmfPicture::addComment(class SmfComment const &)
-	?addTags@SmfPicture@@QAEXABVQStringList@@@Z @ 130 NONAME ; void SmfPicture::addTags(class QStringList const &)
-	?album@SmfTrackInfo@@QBE?AVSmfAlbum@@XZ @ 131 NONAME ; class SmfAlbum SmfTrackInfo::album(void) const
-	?applicationUrl@SmfProvider@@QAEXAAVQUrl@@@Z @ 132 NONAME ; void SmfProvider::applicationUrl(class QUrl &)
-	?applicationUrl@SmfProvider@@QBE?AVQUrl@@XZ @ 133 NONAME ; class QUrl SmfProvider::applicationUrl(void) const
-	?artists@SmfAlbum@@QBE?AVSmfArtists@@XZ @ 134 NONAME ; class SmfArtists SmfAlbum::artists(void) const
-	?artists@SmfEvent@@QBE?AVSmfArtists@@XZ @ 135 NONAME ; class SmfArtists SmfEvent::artists(void) const
-	?artists@SmfTrackInfo@@QBE?AVSmfArtists@@XZ @ 136 NONAME ; class SmfArtists SmfTrackInfo::artists(void) const
-	?city@SmfLocation@@QBE?AVQString@@XZ @ 137 NONAME ; class QString SmfLocation::city(void) const
-	?comments@SmfPicture@@QBE?AV?$QList@VSmfComment@@@@XZ @ 138 NONAME ; class QList<class SmfComment> SmfPicture::comments(void) const
-	?comments@SmfTrackInfo@@QBE?AV?$QList@VSmfComment@@@@XZ @ 139 NONAME ; class QList<class SmfComment> SmfTrackInfo::comments(void) const
-	?convert@SmfContact@@QBEXAAVQContact@QtMobility@@@Z @ 140 NONAME ; void SmfContact::convert(class QtMobility::QContact &) const
-	?country@SmfLocation@@QBE?AVQString@@XZ @ 141 NONAME ; class QString SmfLocation::country(void) const
-	?createParameterString@SmfPluginUtil@@QAE?AVQByteArray@@ABVQString@@W4Operation@QNetworkAccessManager@@ABV2@2W4SmfSignatureMethod@@ABV?$QMultiMap@VQByteArray@@V1@@@W4SmfParsingMode@@@Z @ 142 NONAME ; class QByteArray SmfPluginUtil::createParameterString(class QString const &, enum QNetworkAccessManager::Operation, class QByteArray const &, class QByteArray const &, enum SmfSignatureMethod, class QMultiMap<class QByteArray, class QByteArray> const &, enum SmfParsingMode)
-	?creationDate@SmfPlaylist@@QBE?AVQDateTime@@XZ @ 143 NONAME ; class QDateTime SmfPlaylist::creationDate(void) const
-	?customDataAvailable@SmfContactFetcher@@IAEXHPAVQByteArray@@@Z @ 144 NONAME ; void SmfContactFetcher::customDataAvailable(int, class QByteArray *)
-	?customDataAvailable@SmfGallery@@IAEXHPAVQByteArray@@@Z @ 145 NONAME ; void SmfGallery::customDataAvailable(int, class QByteArray *)
-	?customDataAvailable@SmfPostProvider@@IAEXHPAVQByteArray@@@Z @ 146 NONAME ; void SmfPostProvider::customDataAvailable(int, class QByteArray *)
-	?customRequest@SmfContactFetcher@@QAEXABHPAVQByteArray@@@Z @ 147 NONAME ; void SmfContactFetcher::customRequest(int const &, class QByteArray *)
-	?customRequest@SmfGallery@@QAEXABHPAVQByteArray@@@Z @ 148 NONAME ; void SmfGallery::customRequest(int const &, class QByteArray *)
-	?customRequest@SmfPostProvider@@QAEXABHPAVQByteArray@@@Z @ 149 NONAME ; void SmfPostProvider::customRequest(int const &, class QByteArray *)
-	?description@SmfGallery@@QAE?AVQString@@AAVSmfPicture@@@Z @ 150 NONAME ; class QString SmfGallery::description(class SmfPicture &)
-	?description@SmfPicture@@QBE?AVQString@@XZ @ 151 NONAME ; class QString SmfPicture::description(void) const
-	?description@SmfPost@@QBE?AVQString@@XZ @ 152 NONAME ; class QString SmfPost::description(void) const
-	?description@SmfProvider@@QAEXAAVQString@@@Z @ 153 NONAME ; void SmfProvider::description(class QString &)
-	?description@SmfProvider@@QBE?AVQString@@XZ @ 154 NONAME ; class QString SmfProvider::description(void) const
-	?duration@SmfEvent@@QBE?AVQTime@@XZ @ 155 NONAME ; class QTime SmfEvent::duration(void) const
-	?duration@SmfSubtitle@@QBENXZ @ 156 NONAME ; double SmfSubtitle::duration(void) const
-	?duration@SmfTrackInfo@@QBE?AVQTime@@XZ @ 157 NONAME ; class QTime SmfTrackInfo::duration(void) const
-	?eventDateTime@SmfEvent@@QBE?AVQDateTime@@XZ @ 158 NONAME ; class QDateTime SmfEvent::eventDateTime(void) const
-	?followers@SmfContactFetcher@@QAE_NHH@Z @ 159 NONAME ; bool SmfContactFetcher::followers(int, int)
-	?followersListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 160 NONAME ; void SmfContactFetcher::followersListAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?frameRate@SmfSubtitle@@QBENXZ @ 161 NONAME ; double SmfSubtitle::frameRate(void) const
-	?friends@SmfContactFetcher@@QAE_NHH@Z @ 162 NONAME ; bool SmfContactFetcher::friends(int, int)
-	?friendsListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 163 NONAME ; void SmfContactFetcher::friendsListAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?genre@SmfTrackInfo@@QBE?AVQString@@XZ @ 164 NONAME ; class QString SmfTrackInfo::genre(void) const
-	?geoPositionInfo@SmfLocation@@QBE?AVQGeoPositionInfo@QtMobility@@XZ @ 165 NONAME ; class QtMobility::QGeoPositionInfo SmfLocation::geoPositionInfo(void) const
-	?getAuthKeys@SmfPluginUtil@@QAEXAAV?$QMap@VQString@@V1@@@VQString@@1@Z @ 166 NONAME ; void SmfPluginUtil::getAuthKeys(class QMap<class QString, class QString> &, class QString, class QString)
-	?getInstance@SmfPluginUtil@@SAPAV1@XZ @ 167 NONAME ; class SmfPluginUtil * SmfPluginUtil::getInstance(void)
-	?getJsonHandle@SmfPluginUtil@@QAEPAVParser@QJson@@XZ @ 168 NONAME ; class QJson::Parser * SmfPluginUtil::getJsonHandle(void)
-	?getNonce@SmfPluginUtil@@QAEXAAVQString@@@Z @ 169 NONAME ; void SmfPluginUtil::getNonce(class QString &)
-	?getProvider@SmfContactFetcher@@QAEPAVSmfProvider@@XZ @ 170 NONAME ; class SmfProvider * SmfContactFetcher::getProvider(void)
-	?getProvider@SmfGallery@@QAEPAVSmfProvider@@XZ @ 171 NONAME ; class SmfProvider * SmfGallery::getProvider(void)
-	?getProvider@SmfPostProvider@@QBEPAVSmfProvider@@XZ @ 172 NONAME ; class SmfProvider * SmfPostProvider::getProvider(void) const
-	?getStaticMetaObject@SmfContactFetcher@@SAABUQMetaObject@@XZ @ 173 NONAME ; struct QMetaObject const & SmfContactFetcher::getStaticMetaObject(void)
-	?getStaticMetaObject@SmfGallery@@SAABUQMetaObject@@XZ @ 174 NONAME ; struct QMetaObject const & SmfGallery::getStaticMetaObject(void)
-	?getStaticMetaObject@SmfPostProvider@@SAABUQMetaObject@@XZ @ 175 NONAME ; struct QMetaObject const & SmfPostProvider::getStaticMetaObject(void)
-	?groupListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfGroup@@@@W4SmfError@@USmfResultPage@@@Z @ 176 NONAME ; void SmfContactFetcher::groupListAvailable(class QList<class SmfGroup> *, enum SmfError, struct SmfResultPage)
-	?groups@SmfContactFetcher@@QAE_NHH@Z @ 177 NONAME ; bool SmfContactFetcher::groups(int, int)
-	?id@SmfAlbum@@QBE?AVQString@@XZ @ 178 NONAME ; class QString SmfAlbum::id(void) const
-	?id@SmfComment@@QBE?AVQString@@XZ @ 179 NONAME ; class QString SmfComment::id(void) const
-	?id@SmfEvent@@QBE?AVQString@@XZ @ 180 NONAME ; class QString SmfEvent::id(void) const
-	?id@SmfGroup@@QBE?AVQString@@XZ @ 181 NONAME ; class QString SmfGroup::id(void) const
-	?id@SmfLocation@@QBE?AVQString@@XZ @ 182 NONAME ; class QString SmfLocation::id(void) const
-	?id@SmfLyrics@@QBE?AVQString@@XZ @ 183 NONAME ; class QString SmfLyrics::id(void) const
-	?id@SmfMusicProfile@@QBE?AVQString@@XZ @ 184 NONAME ; class QString SmfMusicProfile::id(void) const
-	?id@SmfPicture@@QBE?AVQString@@XZ @ 185 NONAME ; class QString SmfPicture::id(void) const
-	?id@SmfPlaylist@@QBE?AVQString@@XZ @ 186 NONAME ; class QString SmfPlaylist::id(void) const
-	?id@SmfPost@@QBE?AVQString@@XZ @ 187 NONAME ; class QString SmfPost::id(void) const
-	?id@SmfSubtitle@@QBE?AVQString@@XZ @ 188 NONAME ; class QString SmfSubtitle::id(void) const
-	?id@SmfTrackInfo@@QBE?AVQString@@XZ @ 189 NONAME ; class QString SmfTrackInfo::id(void) const
-	?image@SmfAlbum@@QBE?AVQImage@@XZ @ 190 NONAME ; class QImage SmfAlbum::image(void) const
-	?image@SmfArtists@@QBE?AVQImage@@XZ @ 191 NONAME ; class QImage SmfArtists::image(void) const
-	?image@SmfPost@@QBE?AVQImage@@XZ @ 192 NONAME ; class QImage SmfPost::image(void) const
-	?interestInfo@SmfMusicProfile@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 193 NONAME ; class QList<class SmfTrackInfo> SmfMusicProfile::interestInfo(void) const
-	?language@SmfLyrics@@QBE?AVQString@@XZ @ 194 NONAME ; class QString SmfLyrics::language(void) const
-	?language@SmfSubtitle@@QBE?AVQString@@XZ @ 195 NONAME ; class QString SmfSubtitle::language(void) const
-	?lyrics@SmfLyrics@@QBE?AVQByteArray@@XZ @ 196 NONAME ; class QByteArray SmfLyrics::lyrics(void) const
-	?maxCharsInPost@SmfPostProvider@@QBEHXZ @ 197 NONAME ; int SmfPostProvider::maxCharsInPost(void) const
-	?maxItems@SmfPostProvider@@QBEHXZ @ 198 NONAME ; int SmfPostProvider::maxItems(void) const
-	?maxRating@SmfMusicRating@@QBEHXZ @ 199 NONAME ; int SmfMusicRating::maxRating(void) const
-	?members@SmfGroup@@QBE?AV?$QList@VSmfContact@@@@XZ @ 200 NONAME ; class QList<class SmfContact> SmfGroup::members(void) const
-	?metaObject@SmfContactFetcher@@UBEPBUQMetaObject@@XZ @ 201 NONAME ; struct QMetaObject const * SmfContactFetcher::metaObject(void) const
-	?metaObject@SmfGallery@@UBEPBUQMetaObject@@XZ @ 202 NONAME ; struct QMetaObject const * SmfGallery::metaObject(void) const
-	?metaObject@SmfPostProvider@@UBEPBUQMetaObject@@XZ @ 203 NONAME ; struct QMetaObject const * SmfPostProvider::metaObject(void) const
-	?minRating@SmfMusicRating@@QBEHXZ @ 204 NONAME ; int SmfMusicRating::minRating(void) const
-	?musicFingerPrint@SmfMusicFingerPrint@@QBE?AVQByteArray@@XZ @ 205 NONAME ; class QByteArray SmfMusicFingerPrint::musicFingerPrint(void) const
-	?musicUsageInfo@SmfMusicProfile@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 206 NONAME ; class QList<class SmfTrackInfo> SmfMusicProfile::musicUsageInfo(void) const
-	?name@SmfAlbum@@QBE?AVQString@@XZ @ 207 NONAME ; class QString SmfAlbum::name(void) const
-	?name@SmfGroup@@QBE?AVQString@@XZ @ 208 NONAME ; class QString SmfGroup::name(void) const
-	?name@SmfLocation@@QBE?AVQString@@XZ @ 209 NONAME ; class QString SmfLocation::name(void) const
-	?names@SmfArtists@@QBE?AVQStringList@@XZ @ 210 NONAME ; class QStringList SmfArtists::names(void) const
-	?owner@SmfPicture@@QBE?AVQString@@XZ @ 211 NONAME ; class QString SmfPicture::owner(void) const
-	?picture@SmfPicture@@QBE?AVQImage@@XZ @ 212 NONAME ; class QImage SmfPicture::picture(void) const
-	?pictures@SmfGallery@@QAEXHH@Z @ 213 NONAME ; void SmfGallery::pictures(int, int)
-	?picturesAvailable@SmfGallery@@IAEXPAV?$QList@VSmfPicture@@@@W4SmfError@@USmfResultPage@@@Z @ 214 NONAME ; void SmfGallery::picturesAvailable(class QList<class SmfPicture> *, enum SmfError, struct SmfResultPage)
-	?playListTitle@SmfPlaylist@@QBE?AVQString@@XZ @ 215 NONAME ; class QString SmfPlaylist::playListTitle(void) const
-	?post@SmfPostProvider@@QAEXAAVSmfPost@@AAVSmfLocation@@@Z @ 216 NONAME ; void SmfPostProvider::post(class SmfPost &, class SmfLocation &)
-	?postAppearence@SmfPostProvider@@QAE_NW4SmfAppearenceInfo@@@Z @ 217 NONAME ; bool SmfPostProvider::postAppearence(enum SmfAppearenceInfo)
-	?postComment@SmfGallery@@QAEXVSmfPicture@@VSmfComment@@@Z @ 218 NONAME ; void SmfGallery::postComment(class SmfPicture, class SmfComment)
-	?postDirected@SmfPostProvider@@QAEXAAVSmfPost@@AAVSmfContact@@PAVSmfLocation@@@Z @ 219 NONAME ; void SmfPostProvider::postDirected(class SmfPost &, class SmfContact &, class SmfLocation *)
-	?postFinished@SmfPostProvider@@IAEX_N@Z @ 220 NONAME ; void SmfPostProvider::postFinished(bool)
-	?postedDate@SmfPicture@@QBE?AVQDateTime@@XZ @ 221 NONAME ; class QDateTime SmfPicture::postedDate(void) const
-	?posts@SmfPostProvider@@QAEXPAVSmfContact@@HH@Z @ 222 NONAME ; void SmfPostProvider::posts(class SmfContact *, int, int)
-	?postsAvailable@SmfPostProvider@@IAEXPAV?$QList@VSmfPost@@@@W4SmfError@@USmfResultPage@@@Z @ 223 NONAME ; void SmfPostProvider::postsAvailable(class QList<class SmfPost> *, enum SmfError, struct SmfResultPage)
-	?qt_metacall@SmfContactFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 224 NONAME ; int SmfContactFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@SmfGallery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 225 NONAME ; int SmfGallery::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@SmfPostProvider@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 226 NONAME ; int SmfPostProvider::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacast@SmfContactFetcher@@UAEPAXPBD@Z @ 227 NONAME ; void * SmfContactFetcher::qt_metacast(char const *)
-	?qt_metacast@SmfGallery@@UAEPAXPBD@Z @ 228 NONAME ; void * SmfGallery::qt_metacast(char const *)
-	?qt_metacast@SmfPostProvider@@UAEPAXPBD@Z @ 229 NONAME ; void * SmfPostProvider::qt_metacast(char const *)
-	?rating@SmfMusicRating@@QBEHXZ @ 230 NONAME ; int SmfMusicRating::rating(void) const
-	?rating@SmfTrackInfo@@QBE?AVSmfMusicRating@@XZ @ 231 NONAME ; class SmfMusicRating SmfTrackInfo::rating(void) const
-	?releaseYear@SmfLyrics@@QBE?AVQDateTime@@XZ @ 232 NONAME ; class QDateTime SmfLyrics::releaseYear(void) const
-	?releaseYear@SmfSubtitle@@QBE?AVQDateTime@@XZ @ 233 NONAME ; class QDateTime SmfSubtitle::releaseYear(void) const
-	?search@SmfContactFetcher@@QAEXPAVSmfContact@@HH@Z @ 234 NONAME ; void SmfContactFetcher::search(class SmfContact *, int, int)
-	?searchContactFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 235 NONAME ; void SmfContactFetcher::searchContactFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?searchInGroup@SmfContactFetcher@@QAE_NVSmfGroup@@HH@Z @ 236 NONAME ; bool SmfContactFetcher::searchInGroup(class SmfGroup, int, int)
-	?searchInGroupFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 237 NONAME ; void SmfContactFetcher::searchInGroupFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?searchNear@SmfContactFetcher@@QAE_NPAVSmfLocation@@W4SmfLocationSearchBoundary@@HH@Z @ 238 NONAME ; bool SmfContactFetcher::searchNear(class SmfLocation *, enum SmfLocationSearchBoundary, int, int)
-	?searchNearFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 239 NONAME ; void SmfContactFetcher::searchNearFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?serviceIcon@SmfProvider@@QAEXAAVQImage@@@Z @ 240 NONAME ; void SmfProvider::serviceIcon(class QImage &)
-	?serviceIcon@SmfProvider@@QBE?AVQImage@@XZ @ 241 NONAME ; class QImage SmfProvider::serviceIcon(void) const
-	?serviceName@SmfProvider@@QAEXAAVQString@@@Z @ 242 NONAME ; void SmfProvider::serviceName(class QString &)
-	?serviceName@SmfProvider@@QBE?AVQString@@XZ @ 243 NONAME ; class QString SmfProvider::serviceName(void) const
-	?serviceTypes@SmfProvider@@QAEXAAVQStringList@@@Z @ 244 NONAME ; void SmfProvider::serviceTypes(class QStringList &)
-	?serviceTypes@SmfProvider@@QBE?AV?$QList@VQString@@@@XZ @ 245 NONAME ; class QList<class QString> SmfProvider::serviceTypes(void) const
-	?serviceUrl@SmfProvider@@QAEXAAVQUrl@@@Z @ 246 NONAME ; void SmfProvider::serviceUrl(class QUrl &)
-	?serviceUrl@SmfProvider@@QBE?AVQUrl@@XZ @ 247 NONAME ; class QUrl SmfProvider::serviceUrl(void) const
-	?setAlbum@SmfTrackInfo@@QAEXABVSmfAlbum@@@Z @ 248 NONAME ; void SmfTrackInfo::setAlbum(class SmfAlbum const &)
-	?setArtists@SmfAlbum@@QAEXABVSmfArtists@@@Z @ 249 NONAME ; void SmfAlbum::setArtists(class SmfArtists const &)
-	?setArtists@SmfEvent@@QAEXABVSmfArtists@@@Z @ 250 NONAME ; void SmfEvent::setArtists(class SmfArtists const &)
-	?setArtists@SmfTrackInfo@@QAEXABVSmfArtists@@@Z @ 251 NONAME ; void SmfTrackInfo::setArtists(class SmfArtists const &)
-	?setCity@SmfLocation@@QAEXABVQString@@@Z @ 252 NONAME ; void SmfLocation::setCity(class QString const &)
-	?setComment@SmfTrackInfo@@QAEXABV?$QList@VSmfComment@@@@@Z @ 253 NONAME ; void SmfTrackInfo::setComment(class QList<class SmfComment> const &)
-	?setCountry@SmfLocation@@QAEXABVQString@@@Z @ 254 NONAME ; void SmfLocation::setCountry(class QString const &)
-	?setCreationDate@SmfPlaylist@@QAEXABVQDateTime@@@Z @ 255 NONAME ; void SmfPlaylist::setCreationDate(class QDateTime const &)
-	?setDescription@SmfPicture@@QAEXABVQString@@@Z @ 256 NONAME ; void SmfPicture::setDescription(class QString const &)
-	?setDescription@SmfPost@@QAEXABVQString@@@Z @ 257 NONAME ; void SmfPost::setDescription(class QString const &)
-	?setDuration@SmfEvent@@QAEXABVQTime@@@Z @ 258 NONAME ; void SmfEvent::setDuration(class QTime const &)
-	?setDuration@SmfSubtitle@@QAEXABN@Z @ 259 NONAME ; void SmfSubtitle::setDuration(double const &)
-	?setDuration@SmfTrackInfo@@QAEXABVQTime@@@Z @ 260 NONAME ; void SmfTrackInfo::setDuration(class QTime const &)
-	?setEventDateTime@SmfEvent@@QAEXABVQDateTime@@@Z @ 261 NONAME ; void SmfEvent::setEventDateTime(class QDateTime const &)
-	?setFrameRate@SmfSubtitle@@QAEXABN@Z @ 262 NONAME ; void SmfSubtitle::setFrameRate(double const &)
-	?setGenre@SmfTrackInfo@@QAEXABVQString@@@Z @ 263 NONAME ; void SmfTrackInfo::setGenre(class QString const &)
-	?setGeoPositionInfo@SmfLocation@@QAEXABVQGeoPositionInfo@QtMobility@@@Z @ 264 NONAME ; void SmfLocation::setGeoPositionInfo(class QtMobility::QGeoPositionInfo const &)
-	?setId@SmfAlbum@@QAEXABVQString@@@Z @ 265 NONAME ; void SmfAlbum::setId(class QString const &)
-	?setId@SmfComment@@QAEXABVQString@@@Z @ 266 NONAME ; void SmfComment::setId(class QString const &)
-	?setId@SmfEvent@@QAEXABVQString@@@Z @ 267 NONAME ; void SmfEvent::setId(class QString const &)
-	?setId@SmfGroup@@QAEXAAVQString@@@Z @ 268 NONAME ; void SmfGroup::setId(class QString &)
-	?setId@SmfLocation@@QAEXABVQString@@@Z @ 269 NONAME ; void SmfLocation::setId(class QString const &)
-	?setId@SmfLyrics@@QAEXABVQString@@@Z @ 270 NONAME ; void SmfLyrics::setId(class QString const &)
-	?setId@SmfMusicProfile@@QAEXABVQString@@@Z @ 271 NONAME ; void SmfMusicProfile::setId(class QString const &)
-	?setId@SmfPicture@@QAEXABVQString@@@Z @ 272 NONAME ; void SmfPicture::setId(class QString const &)
-	?setId@SmfPlaylist@@QAEXABVQString@@@Z @ 273 NONAME ; void SmfPlaylist::setId(class QString const &)
-	?setId@SmfPost@@QAEXVQString@@@Z @ 274 NONAME ; void SmfPost::setId(class QString)
-	?setId@SmfSubtitle@@QAEXABVQString@@@Z @ 275 NONAME ; void SmfSubtitle::setId(class QString const &)
-	?setId@SmfTrackInfo@@QAEXABVQString@@@Z @ 276 NONAME ; void SmfTrackInfo::setId(class QString const &)
-	?setImage@SmfAlbum@@QAEXABVQImage@@@Z @ 277 NONAME ; void SmfAlbum::setImage(class QImage const &)
-	?setImage@SmfArtists@@QAEXABVQImage@@@Z @ 278 NONAME ; void SmfArtists::setImage(class QImage const &)
-	?setImage@SmfPost@@QAEXABVQImage@@@Z @ 279 NONAME ; void SmfPost::setImage(class QImage const &)
-	?setInterestInfo@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 280 NONAME ; void SmfMusicProfile::setInterestInfo(class QList<class SmfTrackInfo> const &)
-	?setLanguage@SmfLyrics@@QAEXABVQString@@@Z @ 281 NONAME ; void SmfLyrics::setLanguage(class QString const &)
-	?setLanguage@SmfSubtitle@@QAEXABVQString@@@Z @ 282 NONAME ; void SmfSubtitle::setLanguage(class QString const &)
-	?setLyrics@SmfLyrics@@QAEXABVQByteArray@@@Z @ 283 NONAME ; void SmfLyrics::setLyrics(class QByteArray const &)
-	?setMaxRating@SmfMusicRating@@QAEXABH@Z @ 284 NONAME ; void SmfMusicRating::setMaxRating(int const &)
-	?setMembers@SmfGroup@@QAEXPAV?$QList@VSmfContact@@@@@Z @ 285 NONAME ; void SmfGroup::setMembers(class QList<class SmfContact> *)
-	?setMinRating@SmfMusicRating@@QAEXABH@Z @ 286 NONAME ; void SmfMusicRating::setMinRating(int const &)
-	?setMusicFingerPrint@SmfMusicFingerPrint@@QAEXABVQByteArray@@@Z @ 287 NONAME ; void SmfMusicFingerPrint::setMusicFingerPrint(class QByteArray const &)
-	?setMusicUsageInfo@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 288 NONAME ; void SmfMusicProfile::setMusicUsageInfo(class QList<class SmfTrackInfo> const &)
-	?setName@SmfAlbum@@QAEXABVQString@@@Z @ 289 NONAME ; void SmfAlbum::setName(class QString const &)
-	?setName@SmfGroup@@QAEXAAVQString@@@Z @ 290 NONAME ; void SmfGroup::setName(class QString &)
-	?setName@SmfLocation@@QAEXABVQString@@@Z @ 291 NONAME ; void SmfLocation::setName(class QString const &)
-	?setNames@SmfArtists@@QAEXABVQStringList@@@Z @ 292 NONAME ; void SmfArtists::setNames(class QStringList const &)
-	?setOwner@SmfPicture@@QAEXABVQString@@@Z @ 293 NONAME ; void SmfPicture::setOwner(class QString const &)
-	?setPicture@SmfPicture@@QAEXABVQImage@@@Z @ 294 NONAME ; void SmfPicture::setPicture(class QImage const &)
-	?setPlayListTitle@SmfPlaylist@@QAEXABVQString@@@Z @ 295 NONAME ; void SmfPlaylist::setPlayListTitle(class QString const &)
-	?setPostedDate@SmfPicture@@QAEXABVQDateTime@@@Z @ 296 NONAME ; void SmfPicture::setPostedDate(class QDateTime const &)
-	?setRating@SmfMusicRating@@QAEXABH@Z @ 297 NONAME ; void SmfMusicRating::setRating(int const &)
-	?setRating@SmfTrackInfo@@QAEXABVSmfMusicRating@@@Z @ 298 NONAME ; void SmfTrackInfo::setRating(class SmfMusicRating const &)
-	?setReleaseYear@SmfLyrics@@QAEXABVQDateTime@@@Z @ 299 NONAME ; void SmfLyrics::setReleaseYear(class QDateTime const &)
-	?setReleaseYear@SmfSubtitle@@QAEXABVQDateTime@@@Z @ 300 NONAME ; void SmfSubtitle::setReleaseYear(class QDateTime const &)
-	?setStreet@SmfLocation@@QAEXABVQString@@@Z @ 301 NONAME ; void SmfLocation::setStreet(class QString const &)
-	?setSubtitle@SmfSubtitle@@QAEXABVQByteArray@@@Z @ 302 NONAME ; void SmfSubtitle::setSubtitle(class QByteArray const &)
-	?setTags@SmfTrackInfo@@QAEXABVQStringList@@@Z @ 303 NONAME ; void SmfTrackInfo::setTags(class QStringList const &)
-	?setText@SmfComment@@QAEXABVQString@@@Z @ 304 NONAME ; void SmfComment::setText(class QString const &)
-	?setTicketUrl@SmfEvent@@QAEXABVQUrl@@@Z @ 305 NONAME ; void SmfEvent::setTicketUrl(class QUrl const &)
-	?setTimeStamp@SmfComment@@QAEXABVQDateTime@@@Z @ 306 NONAME ; void SmfComment::setTimeStamp(class QDateTime const &)
-	?setTitle@SmfEvent@@QAEXABVQString@@@Z @ 307 NONAME ; void SmfEvent::setTitle(class QString const &)
-	?setTitle@SmfPicture@@QAEXABVQString@@@Z @ 308 NONAME ; void SmfPicture::setTitle(class QString const &)
-	?setTitle@SmfPost@@QAEXABVQString@@@Z @ 309 NONAME ; void SmfPost::setTitle(class QString const &)
-	?setTitle@SmfTrackInfo@@QAEXABVQString@@@Z @ 310 NONAME ; void SmfTrackInfo::setTitle(class QString const &)
-	?setTrackList@SmfPlaylist@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 311 NONAME ; void SmfPlaylist::setTrackList(class QList<class SmfTrackInfo> const &)
-	?setUrl@SmfArtists@@QAEXABVQUrl@@@Z @ 312 NONAME ; void SmfArtists::setUrl(class QUrl const &)
-	?setUrl@SmfLocation@@QAEXABVQUrl@@@Z @ 313 NONAME ; void SmfLocation::setUrl(class QUrl const &)
-	?setUrl@SmfPicture@@QAEXABVQUrl@@@Z @ 314 NONAME ; void SmfPicture::setUrl(class QUrl const &)
-	?setUrl@SmfPost@@QAEXAAVQUrl@@@Z @ 315 NONAME ; void SmfPost::setUrl(class QUrl &)
-	?setUserEvents@SmfMusicProfile@@QAEXABV?$QList@VSmfEvent@@@@@Z @ 316 NONAME ; void SmfMusicProfile::setUserEvents(class QList<class SmfEvent> const &)
-	?setValue@SmfContact@@QAEXABVQString@@AAVQVariant@@@Z @ 317 NONAME ; void SmfContact::setValue(class QString const &, class QVariant &)
-	?setVenue@SmfEvent@@QAEXABVSmfLocation@@@Z @ 318 NONAME ; void SmfEvent::setVenue(class SmfLocation const &)
-	?setVisibility@SmfPicture@@QAEXABW4SmfPictureVisibility@@@Z @ 319 NONAME ; void SmfPicture::setVisibility(enum SmfPictureVisibility const &)
-	?setYear@SmfTrackInfo@@QAEXABVQDateTime@@@Z @ 320 NONAME ; void SmfTrackInfo::setYear(class QDateTime const &)
-	?setZipCode@SmfLocation@@QAEXABVQString@@@Z @ 321 NONAME ; void SmfLocation::setZipCode(class QString const &)
-	?sharePost@SmfPostProvider@@QAEXAAVSmfPost@@AAVSmfContact@@_N@Z @ 322 NONAME ; void SmfPostProvider::sharePost(class SmfPost &, class SmfContact &, bool)
-	?street@SmfLocation@@QBE?AVQString@@XZ @ 323 NONAME ; class QString SmfLocation::street(void) const
-	?subTypes@SmfContact@@QBE?AVQStringList@@XZ @ 324 NONAME ; class QStringList SmfContact::subTypes(void) const
-	?subtitle@SmfSubtitle@@QBE?AVQByteArray@@XZ @ 325 NONAME ; class QByteArray SmfSubtitle::subtitle(void) const
-	?supportedFormats@SmfPostProvider@@QBE?AV?$QVector@VQTextFormat@@@@XZ @ 326 NONAME ; class QVector<class QTextFormat> SmfPostProvider::supportedFormats(void) const
-	?supportsAppearence@SmfPostProvider@@QBE_NXZ @ 327 NONAME ; bool SmfPostProvider::supportsAppearence(void) const
-	?tags@SmfPicture@@QBE?AVQStringList@@XZ @ 328 NONAME ; class QStringList SmfPicture::tags(void) const
-	?tags@SmfTrackInfo@@QBE?AVQStringList@@XZ @ 329 NONAME ; class QStringList SmfTrackInfo::tags(void) const
-	?text@SmfComment@@QBE?AVQString@@XZ @ 330 NONAME ; class QString SmfComment::text(void) const
-	?ticketUrl@SmfEvent@@QBE?AVQUrl@@XZ @ 331 NONAME ; class QUrl SmfEvent::ticketUrl(void) const
-	?timeStamp@SmfComment@@QBE?AVQDateTime@@XZ @ 332 NONAME ; class QDateTime SmfComment::timeStamp(void) const
-	?title@SmfEvent@@QBE?AVQString@@XZ @ 333 NONAME ; class QString SmfEvent::title(void) const
-	?title@SmfPicture@@QBE?AVQString@@XZ @ 334 NONAME ; class QString SmfPicture::title(void) const
-	?title@SmfPost@@QBE?AVQString@@XZ @ 335 NONAME ; class QString SmfPost::title(void) const
-	?title@SmfTrackInfo@@QBE?AVQString@@XZ @ 336 NONAME ; class QString SmfTrackInfo::title(void) const
-	?tr@SmfContactFetcher@@SA?AVQString@@PBD0@Z @ 337 NONAME ; class QString SmfContactFetcher::tr(char const *, char const *)
-	?tr@SmfContactFetcher@@SA?AVQString@@PBD0H@Z @ 338 NONAME ; class QString SmfContactFetcher::tr(char const *, char const *, int)
-	?tr@SmfGallery@@SA?AVQString@@PBD0@Z @ 339 NONAME ; class QString SmfGallery::tr(char const *, char const *)
-	?tr@SmfGallery@@SA?AVQString@@PBD0H@Z @ 340 NONAME ; class QString SmfGallery::tr(char const *, char const *, int)
-	?tr@SmfPostProvider@@SA?AVQString@@PBD0@Z @ 341 NONAME ; class QString SmfPostProvider::tr(char const *, char const *)
-	?tr@SmfPostProvider@@SA?AVQString@@PBD0H@Z @ 342 NONAME ; class QString SmfPostProvider::tr(char const *, char const *, int)
-	?trUtf8@SmfContactFetcher@@SA?AVQString@@PBD0@Z @ 343 NONAME ; class QString SmfContactFetcher::trUtf8(char const *, char const *)
-	?trUtf8@SmfContactFetcher@@SA?AVQString@@PBD0H@Z @ 344 NONAME ; class QString SmfContactFetcher::trUtf8(char const *, char const *, int)
-	?trUtf8@SmfGallery@@SA?AVQString@@PBD0@Z @ 345 NONAME ; class QString SmfGallery::trUtf8(char const *, char const *)
-	?trUtf8@SmfGallery@@SA?AVQString@@PBD0H@Z @ 346 NONAME ; class QString SmfGallery::trUtf8(char const *, char const *, int)
-	?trUtf8@SmfPostProvider@@SA?AVQString@@PBD0@Z @ 347 NONAME ; class QString SmfPostProvider::trUtf8(char const *, char const *)
-	?trUtf8@SmfPostProvider@@SA?AVQString@@PBD0H@Z @ 348 NONAME ; class QString SmfPostProvider::trUtf8(char const *, char const *, int)
-	?trackList@SmfPlaylist@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 349 NONAME ; class QList<class SmfTrackInfo> SmfPlaylist::trackList(void) const
-	?updatePost@SmfPostProvider@@QAEXAAVSmfPost@@@Z @ 350 NONAME ; void SmfPostProvider::updatePost(class SmfPost &)
-	?upload@SmfGallery@@QAEXPAV?$QList@VSmfPicture@@@@@Z @ 351 NONAME ; void SmfGallery::upload(class QList<class SmfPicture> *)
-	?upload@SmfGallery@@QAEXPAVSmfPicture@@@Z @ 352 NONAME ; void SmfGallery::upload(class SmfPicture *)
-	?uploadFinished@SmfGallery@@IAEXV?$QList@_N@@@Z @ 353 NONAME ; void SmfGallery::uploadFinished(class QList<bool>)
-	?url@SmfArtists@@QBE?AVQUrl@@XZ @ 354 NONAME ; class QUrl SmfArtists::url(void) const
-	?url@SmfLocation@@QBE?AVQUrl@@XZ @ 355 NONAME ; class QUrl SmfLocation::url(void) const
-	?url@SmfPicture@@QBE?AVQUrl@@XZ @ 356 NONAME ; class QUrl SmfPicture::url(void) const
-	?url@SmfPost@@QBE?AVQUrl@@XZ @ 357 NONAME ; class QUrl SmfPost::url(void) const
-	?userEvents@SmfMusicProfile@@QBE?AV?$QList@VSmfEvent@@@@XZ @ 358 NONAME ; class QList<class SmfEvent> SmfMusicProfile::userEvents(void) const
-	?value@SmfContact@@QBE?AVQVariant@@ABVQString@@@Z @ 359 NONAME ; class QVariant SmfContact::value(class QString const &) const
-	?venue@SmfEvent@@QBE?AVSmfLocation@@XZ @ 360 NONAME ; class SmfLocation SmfEvent::venue(void) const
-	?visibility@SmfPicture@@QBE?AW4SmfPictureVisibility@@XZ @ 361 NONAME ; enum SmfPictureVisibility SmfPicture::visibility(void) const
-	?writeLog@SmfClient@@QBEXVQString@@@Z @ 362 NONAME ; void SmfClient::writeLog(class QString) const
-	?writeLog@SmfContact@@QBEXVQString@@@Z @ 363 NONAME ; void SmfContact::writeLog(class QString) const
-	?year@SmfTrackInfo@@QBE?AVQDateTime@@XZ @ 364 NONAME ; class QDateTime SmfTrackInfo::year(void) const
-	?zipCode@SmfLocation@@QBE?AVQString@@XZ @ 365 NONAME ; class QString SmfLocation::zipCode(void) const
-	?staticMetaObject@SmfGallery@@2UQMetaObject@@B @ 366 NONAME ; struct QMetaObject const SmfGallery::staticMetaObject
-	?staticMetaObject@SmfPostProvider@@2UQMetaObject@@B @ 367 NONAME ; struct QMetaObject const SmfPostProvider::staticMetaObject
-	?m_myInstance@SmfPluginUtil@@0PAV1@A @ 368 NONAME ; class SmfPluginUtil * SmfPluginUtil::m_myInstance
-	?staticMetaObject@SmfContactFetcher@@2UQMetaObject@@B @ 369 NONAME ; struct QMetaObject const SmfContactFetcher::staticMetaObject
-
--- a/smf/smfservermodule/eabi/smfclientu.def	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,426 +0,0 @@
-EXPORTS
-	_ZN10SmfArtists6setUrlERK4QUrl @ 1 NONAME
-	_ZN10SmfArtists8setImageERK6QImage @ 2 NONAME
-	_ZN10SmfArtists8setNamesERK11QStringList @ 3 NONAME
-	_ZN10SmfArtistsC1ERKS_ @ 4 NONAME
-	_ZN10SmfArtistsC1Ev @ 5 NONAME
-	_ZN10SmfArtistsC2ERKS_ @ 6 NONAME
-	_ZN10SmfArtistsC2Ev @ 7 NONAME
-	_ZN10SmfArtistsD1Ev @ 8 NONAME
-	_ZN10SmfArtistsD2Ev @ 9 NONAME
-	_ZN10SmfArtistsaSERKS_ @ 10 NONAME
-	_ZN10SmfComment12setTimeStampERK9QDateTime @ 11 NONAME
-	_ZN10SmfComment5setIdERK7QString @ 12 NONAME
-	_ZN10SmfComment7setTextERK7QString @ 13 NONAME
-	_ZN10SmfCommentC1ERKS_ @ 14 NONAME
-	_ZN10SmfCommentC1Ev @ 15 NONAME
-	_ZN10SmfCommentC2ERKS_ @ 16 NONAME
-	_ZN10SmfCommentC2Ev @ 17 NONAME
-	_ZN10SmfCommentD1Ev @ 18 NONAME
-	_ZN10SmfCommentD2Ev @ 19 NONAME
-	_ZN10SmfCommentaSERKS_ @ 20 NONAME
-	_ZN10SmfContact8setValueERK7QStringR8QVariant @ 21 NONAME
-	_ZN10SmfContactC1EP7QObject @ 22 NONAME
-	_ZN10SmfContactC1ERKS_ @ 23 NONAME
-	_ZN10SmfContactC2EP7QObject @ 24 NONAME
-	_ZN10SmfContactC2ERKS_ @ 25 NONAME
-	_ZN10SmfContactD1Ev @ 26 NONAME
-	_ZN10SmfContactD2Ev @ 27 NONAME
-	_ZN10SmfGallery11descriptionER10SmfPicture @ 28 NONAME
-	_ZN10SmfGallery11getProviderEv @ 29 NONAME
-	_ZN10SmfGallery11postCommentE10SmfPicture10SmfComment @ 30 NONAME
-	_ZN10SmfGallery11qt_metacallEN11QMetaObject4CallEiPPv @ 31 NONAME
-	_ZN10SmfGallery11qt_metacastEPKc @ 32 NONAME
-	_ZN10SmfGallery14uploadFinishedE5QListIbE @ 33 NONAME
-	_ZN10SmfGallery16staticMetaObjectE @ 34 NONAME DATA 16
-	_ZN10SmfGallery17picturesAvailableEP5QListI10SmfPictureE8SmfError13SmfResultPage @ 35 NONAME
-	_ZN10SmfGallery19customDataAvailableEiP10QByteArray @ 36 NONAME
-	_ZN10SmfGallery19getStaticMetaObjectEv @ 37 NONAME
-	_ZN10SmfGallery6uploadEP10SmfPicture @ 38 NONAME
-	_ZN10SmfGallery6uploadEP5QListI10SmfPictureE @ 39 NONAME
-	_ZN10SmfGallery8picturesEii @ 40 NONAME
-	_ZN10SmfGalleryC1EP11SmfProvider @ 41 NONAME
-	_ZN10SmfGalleryC2EP11SmfProvider @ 42 NONAME
-	_ZN10SmfGalleryD0Ev @ 43 NONAME
-	_ZN10SmfGalleryD1Ev @ 44 NONAME
-	_ZN10SmfGalleryD2Ev @ 45 NONAME
-	_ZN10SmfPicture10addCommentERK10SmfComment @ 46 NONAME
-	_ZN10SmfPicture10setPictureERK6QImage @ 47 NONAME
-	_ZN10SmfPicture13setPostedDateERK9QDateTime @ 48 NONAME
-	_ZN10SmfPicture13setVisibilityERK20SmfPictureVisibility @ 49 NONAME
-	_ZN10SmfPicture14setDescriptionERK7QString @ 50 NONAME
-	_ZN10SmfPicture5setIdERK7QString @ 51 NONAME
-	_ZN10SmfPicture6setUrlERK4QUrl @ 52 NONAME
-	_ZN10SmfPicture7addTagsERK11QStringList @ 53 NONAME
-	_ZN10SmfPicture8setOwnerERK7QString @ 54 NONAME
-	_ZN10SmfPicture8setTitleERK7QString @ 55 NONAME
-	_ZN10SmfPictureC1ERK6QImage @ 56 NONAME
-	_ZN10SmfPictureC1ERKS_ @ 57 NONAME
-	_ZN10SmfPictureC1Ev @ 58 NONAME
-	_ZN10SmfPictureC2ERK6QImage @ 59 NONAME
-	_ZN10SmfPictureC2ERKS_ @ 60 NONAME
-	_ZN10SmfPictureC2Ev @ 61 NONAME
-	_ZN10SmfPictureD1Ev @ 62 NONAME
-	_ZN10SmfPictureD2Ev @ 63 NONAME
-	_ZN10SmfPictureaSERKS_ @ 64 NONAME
-	_ZN11SmfLocation10setCountryERK7QString @ 65 NONAME
-	_ZN11SmfLocation10setZipCodeERK7QString @ 66 NONAME
-	_ZN11SmfLocation18setGeoPositionInfoERKN10QtMobility16QGeoPositionInfoE @ 67 NONAME
-	_ZN11SmfLocation5setIdERK7QString @ 68 NONAME
-	_ZN11SmfLocation6setUrlERK4QUrl @ 69 NONAME
-	_ZN11SmfLocation7setCityERK7QString @ 70 NONAME
-	_ZN11SmfLocation7setNameERK7QString @ 71 NONAME
-	_ZN11SmfLocation9setStreetERK7QString @ 72 NONAME
-	_ZN11SmfLocationC1ERKS_ @ 73 NONAME
-	_ZN11SmfLocationC1Ev @ 74 NONAME
-	_ZN11SmfLocationC2ERKS_ @ 75 NONAME
-	_ZN11SmfLocationC2Ev @ 76 NONAME
-	_ZN11SmfLocationD1Ev @ 77 NONAME
-	_ZN11SmfLocationD2Ev @ 78 NONAME
-	_ZN11SmfLocationaSERKS_ @ 79 NONAME
-	_ZN11SmfPlaylist12setTrackListERK5QListI12SmfTrackInfoE @ 80 NONAME
-	_ZN11SmfPlaylist15setCreationDateERK9QDateTime @ 81 NONAME
-	_ZN11SmfPlaylist16setPlayListTitleERK7QString @ 82 NONAME
-	_ZN11SmfPlaylist5setIdERK7QString @ 83 NONAME
-	_ZN11SmfPlaylistC1ERKS_ @ 84 NONAME
-	_ZN11SmfPlaylistC1Ev @ 85 NONAME
-	_ZN11SmfPlaylistC2ERKS_ @ 86 NONAME
-	_ZN11SmfPlaylistC2Ev @ 87 NONAME
-	_ZN11SmfPlaylistD1Ev @ 88 NONAME
-	_ZN11SmfPlaylistD2Ev @ 89 NONAME
-	_ZN11SmfPlaylistaSERKS_ @ 90 NONAME
-	_ZN11SmfProvider10serviceUrlER4QUrl @ 91 NONAME
-	_ZN11SmfProvider11descriptionER7QString @ 92 NONAME
-	_ZN11SmfProvider11serviceIconER6QImage @ 93 NONAME
-	_ZN11SmfProvider11serviceNameER7QString @ 94 NONAME
-	_ZN11SmfProvider12serviceTypesER11QStringList @ 95 NONAME
-	_ZN11SmfProvider14applicationUrlER4QUrl @ 96 NONAME
-	_ZN11SmfProviderC1EP7QObject @ 97 NONAME
-	_ZN11SmfProviderC2EP7QObject @ 98 NONAME
-	_ZN11SmfProviderD1Ev @ 99 NONAME
-	_ZN11SmfProviderD2Ev @ 100 NONAME
-	_ZN11SmfSubtitle11setDurationERKd @ 101 NONAME
-	_ZN11SmfSubtitle11setLanguageERK7QString @ 102 NONAME
-	_ZN11SmfSubtitle11setSubtitleERK10QByteArray @ 103 NONAME
-	_ZN11SmfSubtitle12setFrameRateERKd @ 104 NONAME
-	_ZN11SmfSubtitle14setReleaseYearERK9QDateTime @ 105 NONAME
-	_ZN11SmfSubtitle5setIdERK7QString @ 106 NONAME
-	_ZN11SmfSubtitleC1ERKS_ @ 107 NONAME
-	_ZN11SmfSubtitleC1Ev @ 108 NONAME
-	_ZN11SmfSubtitleC2ERKS_ @ 109 NONAME
-	_ZN11SmfSubtitleC2Ev @ 110 NONAME
-	_ZN11SmfSubtitleD1Ev @ 111 NONAME
-	_ZN11SmfSubtitleD2Ev @ 112 NONAME
-	_ZN11SmfSubtitleaSERKS_ @ 113 NONAME
-	_ZN12SmfTrackInfo10setArtistsERK10SmfArtists @ 114 NONAME
-	_ZN12SmfTrackInfo10setCommentERK5QListI10SmfCommentE @ 115 NONAME
-	_ZN12SmfTrackInfo11setDurationERK5QTime @ 116 NONAME
-	_ZN12SmfTrackInfo5setIdERK7QString @ 117 NONAME
-	_ZN12SmfTrackInfo7setTagsERK11QStringList @ 118 NONAME
-	_ZN12SmfTrackInfo7setYearERK9QDateTime @ 119 NONAME
-	_ZN12SmfTrackInfo8setAlbumERK8SmfAlbum @ 120 NONAME
-	_ZN12SmfTrackInfo8setGenreERK7QString @ 121 NONAME
-	_ZN12SmfTrackInfo8setTitleERK7QString @ 122 NONAME
-	_ZN12SmfTrackInfo9setRatingERK14SmfMusicRating @ 123 NONAME
-	_ZN12SmfTrackInfoC1ERKS_ @ 124 NONAME
-	_ZN12SmfTrackInfoC1Ev @ 125 NONAME
-	_ZN12SmfTrackInfoC2ERKS_ @ 126 NONAME
-	_ZN12SmfTrackInfoC2Ev @ 127 NONAME
-	_ZN12SmfTrackInfoD1Ev @ 128 NONAME
-	_ZN12SmfTrackInfoD2Ev @ 129 NONAME
-	_ZN12SmfTrackInfoaSERKS_ @ 130 NONAME
-	_ZN14SmfMusicRating12setMaxRatingERKi @ 131 NONAME
-	_ZN14SmfMusicRating12setMinRatingERKi @ 132 NONAME
-	_ZN14SmfMusicRating9setRatingERKi @ 133 NONAME
-	_ZN14SmfMusicRatingC1EP12SmfTrackInfo @ 134 NONAME
-	_ZN14SmfMusicRatingC1ERKS_ @ 135 NONAME
-	_ZN14SmfMusicRatingC2EP12SmfTrackInfo @ 136 NONAME
-	_ZN14SmfMusicRatingC2ERKS_ @ 137 NONAME
-	_ZN14SmfMusicRatingD1Ev @ 138 NONAME
-	_ZN14SmfMusicRatingD2Ev @ 139 NONAME
-	_ZN14SmfMusicRatingaSERKS_ @ 140 NONAME
-	_ZN15SmfMusicProfile13setUserEventsERK5QListI8SmfEventE @ 141 NONAME
-	_ZN15SmfMusicProfile15setInterestInfoERK5QListI12SmfTrackInfoE @ 142 NONAME
-	_ZN15SmfMusicProfile17setMusicUsageInfoERK5QListI12SmfTrackInfoE @ 143 NONAME
-	_ZN15SmfMusicProfile5setIdERK7QString @ 144 NONAME
-	_ZN15SmfMusicProfileC1ERKS_ @ 145 NONAME
-	_ZN15SmfMusicProfileC1Ev @ 146 NONAME
-	_ZN15SmfMusicProfileC2ERKS_ @ 147 NONAME
-	_ZN15SmfMusicProfileC2Ev @ 148 NONAME
-	_ZN15SmfMusicProfileD1Ev @ 149 NONAME
-	_ZN15SmfMusicProfileD2Ev @ 150 NONAME
-	_ZN15SmfMusicProfileaSERKS_ @ 151 NONAME
-	_ZN15SmfPostProvider10updatePostER7SmfPost @ 152 NONAME
-	_ZN15SmfPostProvider11qt_metacallEN11QMetaObject4CallEiPPv @ 153 NONAME
-	_ZN15SmfPostProvider11qt_metacastEPKc @ 154 NONAME
-	_ZN15SmfPostProvider12postDirectedER7SmfPostR10SmfContactP11SmfLocation @ 155 NONAME
-	_ZN15SmfPostProvider12postFinishedEb @ 156 NONAME
-	_ZN15SmfPostProvider14postAppearenceE17SmfAppearenceInfo @ 157 NONAME
-	_ZN15SmfPostProvider14postsAvailableEP5QListI7SmfPostE8SmfError13SmfResultPage @ 158 NONAME
-	_ZN15SmfPostProvider16staticMetaObjectE @ 159 NONAME DATA 16
-	_ZN15SmfPostProvider19customDataAvailableEiP10QByteArray @ 160 NONAME
-	_ZN15SmfPostProvider19getStaticMetaObjectEv @ 161 NONAME
-	_ZN15SmfPostProvider4postER7SmfPostR11SmfLocation @ 162 NONAME
-	_ZN15SmfPostProvider5postsEP10SmfContactii @ 163 NONAME
-	_ZN15SmfPostProvider9sharePostER7SmfPostR10SmfContactb @ 164 NONAME
-	_ZN15SmfPostProviderC1EP11SmfProvider @ 165 NONAME
-	_ZN15SmfPostProviderC2EP11SmfProvider @ 166 NONAME
-	_ZN15SmfPostProviderD0Ev @ 167 NONAME
-	_ZN15SmfPostProviderD1Ev @ 168 NONAME
-	_ZN15SmfPostProviderD2Ev @ 169 NONAME
-	_ZN17SmfContactFetcher10searchNearEP11SmfLocation25SmfLocationSearchBoundaryii @ 170 NONAME
-	_ZN17SmfContactFetcher11getProviderEv @ 171 NONAME
-	_ZN17SmfContactFetcher11qt_metacallEN11QMetaObject4CallEiPPv @ 172 NONAME
-	_ZN17SmfContactFetcher11qt_metacastEPKc @ 173 NONAME
-	_ZN17SmfContactFetcher13customRequestERKiP10QByteArray @ 174 NONAME
-	_ZN17SmfContactFetcher13searchInGroupE8SmfGroupii @ 175 NONAME
-	_ZN17SmfContactFetcher16staticMetaObjectE @ 176 NONAME DATA 16
-	_ZN17SmfContactFetcher18groupListAvailableEP5QListI8SmfGroupE8SmfError13SmfResultPage @ 177 NONAME
-	_ZN17SmfContactFetcher18searchNearFinishedEP5QListI10SmfContactE8SmfError13SmfResultPage @ 178 NONAME
-	_ZN17SmfContactFetcher19customDataAvailableEiP10QByteArray @ 179 NONAME
-	_ZN17SmfContactFetcher19getStaticMetaObjectEv @ 180 NONAME
-	_ZN17SmfContactFetcher20friendsListAvailableEP5QListI10SmfContactE8SmfError13SmfResultPage @ 181 NONAME
-	_ZN17SmfContactFetcher21searchContactFinishedEP5QListI10SmfContactE8SmfError13SmfResultPage @ 182 NONAME
-	_ZN17SmfContactFetcher21searchInGroupFinishedEP5QListI10SmfContactE8SmfError13SmfResultPage @ 183 NONAME
-	_ZN17SmfContactFetcher22followersListAvailableEP5QListI10SmfContactE8SmfError13SmfResultPage @ 184 NONAME
-	_ZN17SmfContactFetcher6groupsEii @ 185 NONAME
-	_ZN17SmfContactFetcher6searchEP10SmfContactii @ 186 NONAME
-	_ZN17SmfContactFetcher7friendsEii @ 187 NONAME
-	_ZN17SmfContactFetcher9followersEii @ 188 NONAME
-	_ZN17SmfContactFetcherC1EP11SmfProvider @ 189 NONAME
-	_ZN17SmfContactFetcherC1EP11SmfProviderP10SmfContact @ 190 NONAME
-	_ZN17SmfContactFetcherC2EP11SmfProvider @ 191 NONAME
-	_ZN17SmfContactFetcherC2EP11SmfProviderP10SmfContact @ 192 NONAME
-	_ZN17SmfContactFetcherD0Ev @ 193 NONAME
-	_ZN17SmfContactFetcherD1Ev @ 194 NONAME
-	_ZN17SmfContactFetcherD2Ev @ 195 NONAME
-	_ZN19SmfMusicFingerPrint19setMusicFingerPrintERK10QByteArray @ 196 NONAME
-	_ZN19SmfMusicFingerPrintC1ERKS_ @ 197 NONAME
-	_ZN19SmfMusicFingerPrintC1Ev @ 198 NONAME
-	_ZN19SmfMusicFingerPrintC2ERKS_ @ 199 NONAME
-	_ZN19SmfMusicFingerPrintC2Ev @ 200 NONAME
-	_ZN19SmfMusicFingerPrintD1Ev @ 201 NONAME
-	_ZN19SmfMusicFingerPrintD2Ev @ 202 NONAME
-	_ZN19SmfMusicFingerPrintaSERKS_ @ 203 NONAME
-	_ZN7SmfPost14setDescriptionERK7QString @ 204 NONAME
-	_ZN7SmfPost5setIdE7QString @ 205 NONAME
-	_ZN7SmfPost6setUrlER4QUrl @ 206 NONAME
-	_ZN7SmfPost8setImageERK6QImage @ 207 NONAME
-	_ZN7SmfPost8setTitleERK7QString @ 208 NONAME
-	_ZN7SmfPostC1E7QStringS0_6QImage4QUrl @ 209 NONAME
-	_ZN7SmfPostC1ERKS_ @ 210 NONAME
-	_ZN7SmfPostC1Ev @ 211 NONAME
-	_ZN7SmfPostC2E7QStringS0_6QImage4QUrl @ 212 NONAME
-	_ZN7SmfPostC2ERKS_ @ 213 NONAME
-	_ZN7SmfPostC2Ev @ 214 NONAME
-	_ZN7SmfPostD1Ev @ 215 NONAME
-	_ZN7SmfPostD2Ev @ 216 NONAME
-	_ZN7SmfPostaSERKS_ @ 217 NONAME
-	_ZN8SmfAlbum10setArtistsERK10SmfArtists @ 218 NONAME
-	_ZN8SmfAlbum5setIdERK7QString @ 219 NONAME
-	_ZN8SmfAlbum7setNameERK7QString @ 220 NONAME
-	_ZN8SmfAlbum8setImageERK6QImage @ 221 NONAME
-	_ZN8SmfAlbumC1ERKS_ @ 222 NONAME
-	_ZN8SmfAlbumC1Ev @ 223 NONAME
-	_ZN8SmfAlbumC2ERKS_ @ 224 NONAME
-	_ZN8SmfAlbumC2Ev @ 225 NONAME
-	_ZN8SmfAlbumD1Ev @ 226 NONAME
-	_ZN8SmfAlbumD2Ev @ 227 NONAME
-	_ZN8SmfAlbumaSERKS_ @ 228 NONAME
-	_ZN8SmfEvent10setArtistsERK10SmfArtists @ 229 NONAME
-	_ZN8SmfEvent11setDurationERK5QTime @ 230 NONAME
-	_ZN8SmfEvent12setTicketUrlERK4QUrl @ 231 NONAME
-	_ZN8SmfEvent16setEventDateTimeERK9QDateTime @ 232 NONAME
-	_ZN8SmfEvent5setIdERK7QString @ 233 NONAME
-	_ZN8SmfEvent8setTitleERK7QString @ 234 NONAME
-	_ZN8SmfEvent8setVenueERK11SmfLocation @ 235 NONAME
-	_ZN8SmfEventC1ERKS_ @ 236 NONAME
-	_ZN8SmfEventC1Ev @ 237 NONAME
-	_ZN8SmfEventC2ERKS_ @ 238 NONAME
-	_ZN8SmfEventC2Ev @ 239 NONAME
-	_ZN8SmfEventD1Ev @ 240 NONAME
-	_ZN8SmfEventD2Ev @ 241 NONAME
-	_ZN8SmfEventaSERKS_ @ 242 NONAME
-	_ZN8SmfGroup10setMembersEP5QListI10SmfContactE @ 243 NONAME
-	_ZN8SmfGroup5setIdER7QString @ 244 NONAME
-	_ZN8SmfGroup7setNameER7QString @ 245 NONAME
-	_ZN8SmfGroupC1EP5QListI10SmfContactE @ 246 NONAME
-	_ZN8SmfGroupC1ERKS_ @ 247 NONAME
-	_ZN8SmfGroupC2EP5QListI10SmfContactE @ 248 NONAME
-	_ZN8SmfGroupC2ERKS_ @ 249 NONAME
-	_ZN8SmfGroupD1Ev @ 250 NONAME
-	_ZN8SmfGroupD2Ev @ 251 NONAME
-	_ZN8SmfGroupaSERKS_ @ 252 NONAME
-	_ZN9SmfClient11GetServicesERK7QString @ 253 NONAME
-	_ZN9SmfClientC1Ev @ 254 NONAME
-	_ZN9SmfClientC2Ev @ 255 NONAME
-	_ZN9SmfClientD1Ev @ 256 NONAME
-	_ZN9SmfClientD2Ev @ 257 NONAME
-	_ZN9SmfLyrics11setLanguageERK7QString @ 258 NONAME
-	_ZN9SmfLyrics14setReleaseYearERK9QDateTime @ 259 NONAME
-	_ZN9SmfLyrics5setIdERK7QString @ 260 NONAME
-	_ZN9SmfLyrics9setLyricsERK10QByteArray @ 261 NONAME
-	_ZN9SmfLyricsC1ERKS_ @ 262 NONAME
-	_ZN9SmfLyricsC1Ev @ 263 NONAME
-	_ZN9SmfLyricsC2ERKS_ @ 264 NONAME
-	_ZN9SmfLyricsC2Ev @ 265 NONAME
-	_ZN9SmfLyricsD1Ev @ 266 NONAME
-	_ZN9SmfLyricsD2Ev @ 267 NONAME
-	_ZN9SmfLyricsaSERKS_ @ 268 NONAME
-	_ZNK10SmfArtists3urlEv @ 269 NONAME
-	_ZNK10SmfArtists5imageEv @ 270 NONAME
-	_ZNK10SmfArtists5namesEv @ 271 NONAME
-	_ZNK10SmfComment2idEv @ 272 NONAME
-	_ZNK10SmfComment4textEv @ 273 NONAME
-	_ZNK10SmfComment9timeStampEv @ 274 NONAME
-	_ZNK10SmfContact5valueERK7QString @ 275 NONAME
-	_ZNK10SmfContact7convertERN10QtMobility8QContactE @ 276 NONAME
-	_ZNK10SmfContact8subTypesEv @ 277 NONAME
-	_ZNK10SmfContact8writeLogE7QString @ 278 NONAME
-	_ZNK10SmfGallery10metaObjectEv @ 279 NONAME
-	_ZNK10SmfPicture10postedDateEv @ 280 NONAME
-	_ZNK10SmfPicture10visibilityEv @ 281 NONAME
-	_ZNK10SmfPicture11descriptionEv @ 282 NONAME
-	_ZNK10SmfPicture2idEv @ 283 NONAME
-	_ZNK10SmfPicture3urlEv @ 284 NONAME
-	_ZNK10SmfPicture4tagsEv @ 285 NONAME
-	_ZNK10SmfPicture5ownerEv @ 286 NONAME
-	_ZNK10SmfPicture5titleEv @ 287 NONAME
-	_ZNK10SmfPicture7pictureEv @ 288 NONAME
-	_ZNK10SmfPicture8commentsEv @ 289 NONAME
-	_ZNK11SmfLocation15geoPositionInfoEv @ 290 NONAME
-	_ZNK11SmfLocation2idEv @ 291 NONAME
-	_ZNK11SmfLocation3urlEv @ 292 NONAME
-	_ZNK11SmfLocation4cityEv @ 293 NONAME
-	_ZNK11SmfLocation4nameEv @ 294 NONAME
-	_ZNK11SmfLocation6streetEv @ 295 NONAME
-	_ZNK11SmfLocation7countryEv @ 296 NONAME
-	_ZNK11SmfLocation7zipCodeEv @ 297 NONAME
-	_ZNK11SmfPlaylist12creationDateEv @ 298 NONAME
-	_ZNK11SmfPlaylist13playListTitleEv @ 299 NONAME
-	_ZNK11SmfPlaylist2idEv @ 300 NONAME
-	_ZNK11SmfPlaylist9trackListEv @ 301 NONAME
-	_ZNK11SmfProvider10serviceUrlEv @ 302 NONAME
-	_ZNK11SmfProvider11descriptionEv @ 303 NONAME
-	_ZNK11SmfProvider11serviceIconEv @ 304 NONAME
-	_ZNK11SmfProvider11serviceNameEv @ 305 NONAME
-	_ZNK11SmfProvider12serviceTypesEv @ 306 NONAME
-	_ZNK11SmfProvider14applicationUrlEv @ 307 NONAME
-	_ZNK11SmfSubtitle11releaseYearEv @ 308 NONAME
-	_ZNK11SmfSubtitle2idEv @ 309 NONAME
-	_ZNK11SmfSubtitle8durationEv @ 310 NONAME
-	_ZNK11SmfSubtitle8languageEv @ 311 NONAME
-	_ZNK11SmfSubtitle8subtitleEv @ 312 NONAME
-	_ZNK11SmfSubtitle9frameRateEv @ 313 NONAME
-	_ZNK12SmfTrackInfo2idEv @ 314 NONAME
-	_ZNK12SmfTrackInfo4tagsEv @ 315 NONAME
-	_ZNK12SmfTrackInfo4yearEv @ 316 NONAME
-	_ZNK12SmfTrackInfo5albumEv @ 317 NONAME
-	_ZNK12SmfTrackInfo5genreEv @ 318 NONAME
-	_ZNK12SmfTrackInfo5titleEv @ 319 NONAME
-	_ZNK12SmfTrackInfo6ratingEv @ 320 NONAME
-	_ZNK12SmfTrackInfo7artistsEv @ 321 NONAME
-	_ZNK12SmfTrackInfo8commentsEv @ 322 NONAME
-	_ZNK12SmfTrackInfo8durationEv @ 323 NONAME
-	_ZNK14SmfMusicRating6ratingEv @ 324 NONAME
-	_ZNK14SmfMusicRating9maxRatingEv @ 325 NONAME
-	_ZNK14SmfMusicRating9minRatingEv @ 326 NONAME
-	_ZNK15SmfMusicProfile10userEventsEv @ 327 NONAME
-	_ZNK15SmfMusicProfile12interestInfoEv @ 328 NONAME
-	_ZNK15SmfMusicProfile14musicUsageInfoEv @ 329 NONAME
-	_ZNK15SmfMusicProfile2idEv @ 330 NONAME
-	_ZNK15SmfPostProvider10metaObjectEv @ 331 NONAME
-	_ZNK15SmfPostProvider11getProviderEv @ 332 NONAME
-	_ZNK15SmfPostProvider14maxCharsInPostEv @ 333 NONAME
-	_ZNK15SmfPostProvider16supportedFormatsEv @ 334 NONAME
-	_ZNK15SmfPostProvider18supportsAppearenceEv @ 335 NONAME
-	_ZNK15SmfPostProvider8maxItemsEv @ 336 NONAME
-	_ZNK17SmfContactFetcher10metaObjectEv @ 337 NONAME
-	_ZNK19SmfMusicFingerPrint16musicFingerPrintEv @ 338 NONAME
-	_ZNK7SmfPost11descriptionEv @ 339 NONAME
-	_ZNK7SmfPost2idEv @ 340 NONAME
-	_ZNK7SmfPost3urlEv @ 341 NONAME
-	_ZNK7SmfPost5imageEv @ 342 NONAME
-	_ZNK7SmfPost5titleEv @ 343 NONAME
-	_ZNK8SmfAlbum2idEv @ 344 NONAME
-	_ZNK8SmfAlbum4nameEv @ 345 NONAME
-	_ZNK8SmfAlbum5imageEv @ 346 NONAME
-	_ZNK8SmfAlbum7artistsEv @ 347 NONAME
-	_ZNK8SmfEvent13eventDateTimeEv @ 348 NONAME
-	_ZNK8SmfEvent2idEv @ 349 NONAME
-	_ZNK8SmfEvent5titleEv @ 350 NONAME
-	_ZNK8SmfEvent5venueEv @ 351 NONAME
-	_ZNK8SmfEvent7artistsEv @ 352 NONAME
-	_ZNK8SmfEvent8durationEv @ 353 NONAME
-	_ZNK8SmfEvent9ticketUrlEv @ 354 NONAME
-	_ZNK8SmfGroup2idEv @ 355 NONAME
-	_ZNK8SmfGroup4nameEv @ 356 NONAME
-	_ZNK8SmfGroup7membersEv @ 357 NONAME
-	_ZNK9SmfClient8writeLogE7QString @ 358 NONAME
-	_ZNK9SmfLyrics11releaseYearEv @ 359 NONAME
-	_ZNK9SmfLyrics2idEv @ 360 NONAME
-	_ZNK9SmfLyrics6lyricsEv @ 361 NONAME
-	_ZNK9SmfLyrics8languageEv @ 362 NONAME
-	_ZTI10SmfGallery @ 363 NONAME
-	_ZTI15SmfPostProvider @ 364 NONAME
-	_ZTI16SmfClientPrivate @ 365 NONAME
-	_ZTI17CSmfClientSymbian @ 366 NONAME
-	_ZTI17SmfContactFetcher @ 367 NONAME
-	_ZTI17SmfGalleryPrivate @ 368 NONAME
-	_ZTI22SmfPostProviderPrivate @ 369 NONAME
-	_ZTI24SmfContactFetcherPrivate @ 370 NONAME
-	_ZTV10SmfGallery @ 371 NONAME
-	_ZTV15SmfPostProvider @ 372 NONAME
-	_ZTV16SmfClientPrivate @ 373 NONAME
-	_ZTV17CSmfClientSymbian @ 374 NONAME
-	_ZTV17SmfContactFetcher @ 375 NONAME
-	_ZTV17SmfGalleryPrivate @ 376 NONAME
-	_ZTV22SmfPostProviderPrivate @ 377 NONAME
-	_ZTV24SmfContactFetcherPrivate @ 378 NONAME
-	_ZlsR11QDataStreamRK10SmfArtists @ 379 NONAME
-	_ZlsR11QDataStreamRK10SmfComment @ 380 NONAME
-	_ZlsR11QDataStreamRK10SmfContact @ 381 NONAME
-	_ZlsR11QDataStreamRK10SmfPicture @ 382 NONAME
-	_ZlsR11QDataStreamRK11SmfLocation @ 383 NONAME
-	_ZlsR11QDataStreamRK11SmfPlaylist @ 384 NONAME
-	_ZlsR11QDataStreamRK11SmfProvider @ 385 NONAME
-	_ZlsR11QDataStreamRK11SmfSubtitle @ 386 NONAME
-	_ZlsR11QDataStreamRK12SmfTrackInfo @ 387 NONAME
-	_ZlsR11QDataStreamRK14SmfMusicRating @ 388 NONAME
-	_ZlsR11QDataStreamRK15SmfMusicProfile @ 389 NONAME
-	_ZlsR11QDataStreamRK19SmfMusicFingerPrint @ 390 NONAME
-	_ZlsR11QDataStreamRK7SmfPost @ 391 NONAME
-	_ZlsR11QDataStreamRK8SmfAlbum @ 392 NONAME
-	_ZlsR11QDataStreamRK8SmfEvent @ 393 NONAME
-	_ZlsR11QDataStreamRK8SmfGroup @ 394 NONAME
-	_ZlsR11QDataStreamRK9SmfLyrics @ 395 NONAME
-	_ZlsR11QDataStreamRKN10QtMobility12QContactNameE @ 396 NONAME
-	_ZrsR11QDataStreamR10SmfArtists @ 397 NONAME
-	_ZrsR11QDataStreamR10SmfComment @ 398 NONAME
-	_ZrsR11QDataStreamR10SmfContact @ 399 NONAME
-	_ZrsR11QDataStreamR10SmfPicture @ 400 NONAME
-	_ZrsR11QDataStreamR11SmfLocation @ 401 NONAME
-	_ZrsR11QDataStreamR11SmfPlaylist @ 402 NONAME
-	_ZrsR11QDataStreamR11SmfProvider @ 403 NONAME
-	_ZrsR11QDataStreamR11SmfSubtitle @ 404 NONAME
-	_ZrsR11QDataStreamR12SmfTrackInfo @ 405 NONAME
-	_ZrsR11QDataStreamR14SmfMusicRating @ 406 NONAME
-	_ZrsR11QDataStreamR15SmfMusicProfile @ 407 NONAME
-	_ZrsR11QDataStreamR19SmfMusicFingerPrint @ 408 NONAME
-	_ZrsR11QDataStreamR7SmfPost @ 409 NONAME
-	_ZrsR11QDataStreamR8SmfAlbum @ 410 NONAME
-	_ZrsR11QDataStreamR8SmfEvent @ 411 NONAME
-	_ZrsR11QDataStreamR8SmfGroup @ 412 NONAME
-	_ZrsR11QDataStreamR9SmfLyrics @ 413 NONAME
-	_ZrsR11QDataStreamRN10QtMobility12QContactNameE @ 414 NONAME
-	_ZN13SmfPluginUtil11getAuthKeysER4QMapI7QStringS1_ES1_S1_ @ 415 NONAME
-	_ZN13SmfPluginUtil11getInstanceEv @ 416 NONAME
-	_ZN13SmfPluginUtil12m_myInstanceE @ 417 NONAME DATA 4
-	_ZN13SmfPluginUtil13getJsonHandleEv @ 418 NONAME
-	_ZN13SmfPluginUtil21createParameterStringERK7QStringN21QNetworkAccessManager9OperationERK10QByteArrayS7_18SmfSignatureMethodRK9QMultiMapIS5_S5_E14SmfParsingMode @ 419 NONAME
-	_ZN13SmfPluginUtil8getNonceER7QString @ 420 NONAME
-	_ZN13SmfPluginUtilC1Ev @ 421 NONAME
-	_ZN13SmfPluginUtilC2Ev @ 422 NONAME
-	_ZN13SmfPluginUtilD1Ev @ 423 NONAME
-	_ZN13SmfPluginUtilD2Ev @ 424 NONAME
-
--- a/smf/smfservermodule/smfclient/ABLD.BAT	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-@ECHO OFF
-
-REM Bldmake-generated batch file - ABLD.BAT
-REM ** DO NOT EDIT **
-
-perl -S ABLD.PL "\CarbideWorkspace\smfserver_cleaned\smf\smfservermodule\smfclient\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
-if errorlevel==1 goto CheckPerl
-goto End
-
-:CheckPerl
-perl -v >NUL
-if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
-goto End
-
-:End
--- a/smf/smfservermodule/smfclient/bld.inf	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-// ============================================================================
-// * Makefile for building: smfclient
-// * Generated by qmake (2.01a) (Qt 4.6.1) on: 2010-05-18T15:53:35
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// * Project:  smfclient.pro
-// * Template: lib
-// ============================================================================
-
-#define BLD_INF_SMFCLIENT_FA53C5DE
-
-
-prj_platforms
-
-WINSCW GCCE ARMV5 ARMV6
-
-
-prj_mmpfiles
-
-gnumakefile Makefile_0xE08059D4.mk
-smfclient_0xE08059D4.mmp
-
-prj_extensions
-
-
-
-prj_exports
-
-client/smfclient.h
-client/smfclient_p.h
-client/smfcontactfetcher.h
-client/smfcontactfetcher_p.h
-client/smfclientsymbian.h
-client/smfclientsymbiansession.h
-client/smfpostprovider.h
-client/smfpostprovider_p.h
-client/smfgallery.h
-client/smfgallery_p.h
-common/smfclientglobal.h
-common/smfglobal.h
-common/smfobserver.h
-common/smfalbum.h
-common/smfalbum_p.h
-common/smfartists.h
-common/smfartists_p.h
-common/smfcomment.h
-common/smfcomment_p.h
-common/smfcontact.h
-common/smfcontact_p.h
-common/smfevent.h
-common/smfevent_p.h
-common/smfgroup.h
-common/smfgroup_p.h
-common/smflocation.h
-common/smflocation_p.h
-common/smflyrics.h
-common/smflyrics_p.h
-common/smfmusicfingerprint.h
-common/smfmusicfingerprint_p.h
-common/smfmusicprofile.h
-common/smfmusicprofile_p.h
-common/smfmusicrating.h
-common/smfmusicrating_p.h
-common/smfpicture.h
-common/smfpicture_p.h
-common/smfplaylist.h
-common/smfplaylist_p.h
-common/smfpluginutil.h
-common/smfpost.h
-common/smfpost_p.h
-common/smfprovider.h
-common/smfsubtitle.h
-common/smfsubtitle_p.h
-common/smftrackinfo.h
-common/smftrackinfo_p.h
--- a/smf/smfservermodule/smfclient/bwins/smfclientu.def	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfclient/bwins/smfclientu.def	Thu Aug 05 16:48:48 2010 +0530
@@ -1,680 +1,245 @@
 EXPORTS
-	??0SmfMusicRating@@QAE@ABV0@@Z @ 1 NONAME ; SmfMusicRating::SmfMusicRating(class SmfMusicRating const &)
-	?setId@SmfLocation@@QAEXABVQString@@@Z @ 2 NONAME ; void SmfLocation::setId(class QString const &)
-	?id@SmfPost@@QBE?AVQString@@XZ @ 3 NONAME ; class QString SmfPost::id(void) const
-	?convert@SmfContact@@QBEXAAVQContact@QtMobility@@@Z @ 4 NONAME ; void SmfContact::convert(class QtMobility::QContact &) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfArtists@@@Z @ 5 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfArtists &)
-	?setTitle@SmfActivityEntry@@QAE_NABVSmfPost@@@Z @ 6 NONAME ; bool SmfActivityEntry::setTitle(class SmfPost const &)
-	?genre@SmfTrackInfo@@QBE?AVQString@@XZ @ 7 NONAME ; class QString SmfTrackInfo::genre(void) const
-	?artists@SmfTrackInfo@@QBE?AVSmfArtists@@XZ @ 8 NONAME ; class SmfArtists SmfTrackInfo::artists(void) const
-	??_ESmfPictureAlbum@@QAE@I@Z @ 9 NONAME ; SmfPictureAlbum::~SmfPictureAlbum(unsigned int)
-	?playlistUpdated@SmfPlaylistService@@IAEXW4SmfError@@@Z @ 10 NONAME ; void SmfPlaylistService::playlistUpdated(enum SmfError)
-	?tags@SmfPicture@@QBE?AVQStringList@@XZ @ 11 NONAME ; class QStringList SmfPicture::tags(void) const
-	??0SmfEvent@@QAE@XZ @ 12 NONAME ; SmfEvent::SmfEvent(void)
-	?keywords@SmfPictureAlbum@@QBE?AVQStringList@@XZ @ 13 NONAME ; class QStringList SmfPictureAlbum::keywords(void) const
-	??_ESmfMusicEvents@@UAE@I@Z @ 14 NONAME ; SmfMusicEvents::~SmfMusicEvents(unsigned int)
-	?country@SmfLocation@@QBE?AVQString@@XZ @ 15 NONAME ; class QString SmfLocation::country(void) const
-	?getStaticMetaObject@SmfActivityFetcher@@SAABUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const & SmfActivityFetcher::getStaticMetaObject(void)
-	?setCaption@SmfActivityObject@@QAEXABVQString@@@Z @ 17 NONAME ; void SmfActivityObject::setCaption(class QString const &)
-	?id@SmfPicture@@QBE?AVQString@@XZ @ 18 NONAME ; class QString SmfPicture::id(void) const
-	?postRating@SmfMusicSearch@@QAEXVSmfTrackInfo@@VSmfMusicRating@@@Z @ 19 NONAME ; void SmfMusicSearch::postRating(class SmfTrackInfo, class SmfMusicRating)
-	??0SmfPlaylist@@QAE@XZ @ 20 NONAME ; SmfPlaylist::SmfPlaylist(void)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactGuid@QtMobility@@@Z @ 21 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGuid &)
-	?setNames@SmfArtists@@QAEXABVQStringList@@@Z @ 22 NONAME ; void SmfArtists::setNames(class QStringList const &)
-	?id@SmfActivityObject@@QBE?AVQString@@XZ @ 23 NONAME ; class QString SmfActivityObject::id(void) const
-	??4SmfMusicFingerPrint@@QAEAAV0@ABV0@@Z @ 24 NONAME ; class SmfMusicFingerPrint & SmfMusicFingerPrint::operator=(class SmfMusicFingerPrint const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactName@QtMobility@@@Z @ 25 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactName const &)
-	?setLocation@SmfPlaylist@@QAEXABVQUrl@@@Z @ 26 NONAME ; void SmfPlaylist::setLocation(class QUrl const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactThumbnail@QtMobility@@@Z @ 27 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactThumbnail const &)
-	?tr@SmfPostProvider@@SA?AVQString@@PBD0H@Z @ 28 NONAME ; class QString SmfPostProvider::tr(char const *, char const *, int)
-	?trUtf8@SmfActivityFetcher@@SA?AVQString@@PBD0H@Z @ 29 NONAME ; class QString SmfActivityFetcher::trUtf8(char const *, char const *, int)
-	?get@SmfRelationMgr@@QAE?AVSmfRelationItem@@AAVQString@@I@Z @ 30 NONAME ; class SmfRelationItem SmfRelationMgr::get(class QString &, unsigned int)
-	??0SmfGroup@@QAE@PAV?$QList@VSmfContact@@@@@Z @ 31 NONAME ; SmfGroup::SmfGroup(class QList<class SmfContact> *)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactUrl@QtMobility@@@Z @ 32 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactUrl const &)
-	?trUtf8@SmfPlaylistService@@SA?AVQString@@PBD0H@Z @ 33 NONAME ; class QString SmfPlaylistService::trUtf8(char const *, char const *, int)
-	?lyricsAvailable@SmfLyricsService@@IAEXPAV?$QList@VSmfLyrics@@@@W4SmfError@@USmfResultPage@@@Z @ 34 NONAME ; void SmfLyricsService::lyricsAvailable(class QList<class SmfLyrics> *, enum SmfError, struct SmfResultPage)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfPicture@@@Z @ 35 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPicture const &)
-	?staticMetaObject@SmfMusicService@@2UQMetaObject@@B @ 36 NONAME ; struct QMetaObject const SmfMusicService::staticMetaObject
-	?setLength@SmfUrl@@QAEXABVQString@@@Z @ 37 NONAME ; void SmfUrl::setLength(class QString const &)
-	?postEvents@SmfMusicEvents@@QAEXV?$QList@VSmfEvent@@@@@Z @ 38 NONAME ; void SmfMusicEvents::postEvents(class QList<class SmfEvent>)
-	?serviceUrl@SmfProvider@@QBE?AVQUrl@@XZ @ 39 NONAME ; class QUrl SmfProvider::serviceUrl(void) const
-	?setTags@SmfTrackInfo@@QAEXABVQStringList@@@Z @ 40 NONAME ; void SmfTrackInfo::setTags(class QStringList const &)
-	?addComment@SmfPicture@@QAEXABVSmfComment@@@Z @ 41 NONAME ; void SmfPicture::addComment(class SmfComment const &)
-	?metaObject@SmfActivityFetcher@@UBEPBUQMetaObject@@XZ @ 42 NONAME ; struct QMetaObject const * SmfActivityFetcher::metaObject(void) const
-	??4SmfMusicRating@@QAEAAV0@ABV0@@Z @ 43 NONAME ; class SmfMusicRating & SmfMusicRating::operator=(class SmfMusicRating const &)
-	?playlists@SmfPlaylistService@@QAEXHH@Z @ 44 NONAME ; void SmfPlaylistService::playlists(int, int)
-	?venuesAvailable@SmfMusicEvents@@IAEXPAV?$QList@VSmfLocation@@@@W4SmfError@@USmfResultPage@@@Z @ 45 NONAME ; void SmfMusicEvents::venuesAvailable(class QList<class SmfLocation> *, enum SmfError, struct SmfResultPage)
-	?name@SmfAlbum@@QBE?AVQString@@XZ @ 46 NONAME ; class QString SmfAlbum::name(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfComment@@@Z @ 47 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfComment const &)
-	?frameRate@SmfSubtitle@@QBENXZ @ 48 NONAME ; double SmfSubtitle::frameRate(void) const
-	?setId@SmfMusicProfile@@QAEXABVQString@@@Z @ 49 NONAME ; void SmfMusicProfile::setId(class QString const &)
-	?setId@SmfAlbum@@QAEXABVQString@@@Z @ 50 NONAME ; void SmfAlbum::setId(class QString const &)
-	?description@SmfPost@@QBE?AVQString@@XZ @ 51 NONAME ; class QString SmfPost::description(void) const
-	??_ESmfSubtitle@@QAE@I@Z @ 52 NONAME ; SmfSubtitle::~SmfSubtitle(unsigned int)
-	?trUtf8@SmfPostProvider@@SA?AVQString@@PBD0@Z @ 53 NONAME ; class QString SmfPostProvider::trUtf8(char const *, char const *)
-	??_ESmfLocation@@QAE@I@Z @ 54 NONAME ; SmfLocation::~SmfLocation(unsigned int)
-	?setCountry@SmfLocation@@QAEXABVQString@@@Z @ 55 NONAME ; void SmfLocation::setCountry(class QString const &)
-	?zipCode@SmfLocation@@QBE?AVQString@@XZ @ 56 NONAME ; class QString SmfLocation::zipCode(void) const
-	??4SmfTrackInfo@@QAEAAV0@ABV0@@Z @ 57 NONAME ; class SmfTrackInfo & SmfTrackInfo::operator=(class SmfTrackInfo const &)
-	??0SmfActivityFetcher@@QAE@PAVSmfProvider@@@Z @ 58 NONAME ; SmfActivityFetcher::SmfActivityFetcher(class SmfProvider *)
-	?url@SmfPictureAlbum@@QBE?AVQUrl@@XZ @ 59 NONAME ; class QUrl SmfPictureAlbum::url(void) const
-	?qt_metacall@SmfContactFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 60 NONAME ; int SmfContactFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??_ESmfPost@@QAE@I@Z @ 61 NONAME ; SmfPost::~SmfPost(unsigned int)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfSubtitle@@@Z @ 62 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfSubtitle &)
-	?setId@SmfActivityObject@@QAEXABVQString@@@Z @ 63 NONAME ; void SmfActivityObject::setId(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactNote@QtMobility@@@Z @ 64 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactNote &)
-	?duration@SmfTrackInfo@@QBE?AVQTime@@XZ @ 65 NONAME ; class QTime SmfTrackInfo::duration(void) const
-	?author@SmfActivityEntry@@QBE?AVSmfContact@@XZ @ 66 NONAME ; class SmfContact SmfActivityEntry::author(void) const
-	?setId@SmfEvent@@QAEXABVQString@@@Z @ 67 NONAME ; void SmfEvent::setId(class QString const &)
-	?geoPositionInfo@SmfLocation@@QBE?AVQGeoPositionInfo@QtMobility@@XZ @ 68 NONAME ; class QtMobility::QGeoPositionInfo SmfLocation::geoPositionInfo(void) const
-	?duration@SmfEvent@@QBE?AVQTime@@XZ @ 69 NONAME ; class QTime SmfEvent::duration(void) const
-	??_ESmfComment@@QAE@I@Z @ 70 NONAME ; SmfComment::~SmfComment(unsigned int)
-	?location@SmfPlaylist@@QBE?AVQUrl@@XZ @ 71 NONAME ; class QUrl SmfPlaylist::location(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfPost@@@Z @ 72 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPost const &)
-	??4SmfPicture@@QAEAAV0@ABV0@@Z @ 73 NONAME ; class SmfPicture & SmfPicture::operator=(class SmfPicture const &)
-	?setId@SmfActivityEntry@@QAE_NABVQString@@@Z @ 74 NONAME ; bool SmfActivityEntry::setId(class QString const &)
-	?postfinished@SmfMusicSearch@@IAEXW4SmfError@@@Z @ 75 NONAME ; void SmfMusicSearch::postfinished(enum SmfError)
-	?image@SmfArtists@@QBE?AVQImage@@XZ @ 76 NONAME ; class QImage SmfArtists::image(void) const
-	?trackSearchAvailable@SmfMusicSearch@@IAEXPAV?$QList@VSmfTrackInfo@@@@W4SmfError@@USmfResultPage@@@Z @ 77 NONAME ; void SmfMusicSearch::trackSearchAvailable(class QList<class SmfTrackInfo> *, enum SmfError, struct SmfResultPage)
-	?getStaticMetaObject@SmfMusicSearch@@SAABUQMetaObject@@XZ @ 78 NONAME ; struct QMetaObject const & SmfMusicSearch::getStaticMetaObject(void)
-	?qt_metacall@SmfMusicSearch@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 79 NONAME ; int SmfMusicSearch::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactAnniversary@QtMobility@@@Z @ 80 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAnniversary &)
-	?image@SmfPlaylist@@QBE?AVQUrl@@XZ @ 81 NONAME ; class QUrl SmfPlaylist::image(void) const
-	?setGeoPositionInfo@SmfLocation@@QAEXABVQGeoPositionInfo@QtMobility@@@Z @ 82 NONAME ; void SmfLocation::setGeoPositionInfo(class QtMobility::QGeoPositionInfo const &)
-	?staticMetaObject@SmfActivityFetcher@@2UQMetaObject@@B @ 83 NONAME ; struct QMetaObject const SmfActivityFetcher::staticMetaObject
-	??0SmfMusicRating@@QAE@PAVSmfTrackInfo@@@Z @ 84 NONAME ; SmfMusicRating::SmfMusicRating(class SmfTrackInfo *)
-	?qt_metacast@SmfActivityFetcher@@UAEPAXPBD@Z @ 85 NONAME ; void * SmfActivityFetcher::qt_metacast(char const *)
-	?getContact@SmfRelationItem@@QBE?AVSmfContact@@XZ @ 86 NONAME ; class SmfContact SmfRelationItem::getContact(void) const
-	?tr@SmfRelationMgr@@SA?AVQString@@PBD0@Z @ 87 NONAME ; class QString SmfRelationMgr::tr(char const *, char const *)
-	?maxCharsInPost@SmfPostProvider@@QBEHXZ @ 88 NONAME ; int SmfPostProvider::maxCharsInPost(void) const
-	?setVisibility@SmfPicture@@QAEXABW4SmfPictureVisibility@@@Z @ 89 NONAME ; void SmfPicture::setVisibility(enum SmfPictureVisibility const &)
-	?resultsAvailable@SmfActivityFetcher@@IAEXPAV?$QList@VSmfActivityEntry@@@@W4SmfError@@USmfResultPage@@@Z @ 90 NONAME ; void SmfActivityFetcher::resultsAvailable(class QList<class SmfActivityEntry> *, enum SmfError, struct SmfResultPage)
-	?trUtf8@SmfActivityFetcher@@SA?AVQString@@PBD0@Z @ 91 NONAME ; class QString SmfActivityFetcher::trUtf8(char const *, char const *)
-	?setVersion@SmfPlaylist@@QAEXABVQString@@@Z @ 92 NONAME ; void SmfPlaylist::setVersion(class QString const &)
-	?errorLine@SmfPluginUtil@@QBEHXZ @ 93 NONAME ; int SmfPluginUtil::errorLine(void) const
-	?setImage@SmfAlbum@@QAEXABVQImage@@@Z @ 94 NONAME ; void SmfAlbum::setImage(class QImage const &)
-	?description@SmfPictureAlbum@@QBE?AVQString@@XZ @ 95 NONAME ; class QString SmfPictureAlbum::description(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicRating@@@Z @ 96 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicRating const &)
-	?setDescription@SmfPictureAlbum@@QAEXABVQString@@@Z @ 97 NONAME ; void SmfPictureAlbum::setDescription(class QString const &)
-	?trUtf8@SmfMusicService@@SA?AVQString@@PBD0@Z @ 98 NONAME ; class QString SmfMusicService::trUtf8(char const *, char const *)
-	?qt_metacall@SmfLyricsService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 99 NONAME ; int SmfLyricsService::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?venues@SmfMusicEvents@@QAEXVQContactGeoLocation@QtMobility@@HH@Z @ 100 NONAME ; void SmfMusicEvents::venues(class QtMobility::QContactGeoLocation, int, int)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfActivityEntry@@@Z @ 101 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfActivityEntry const &)
-	??1SmfMusicService@@UAE@XZ @ 102 NONAME ; SmfMusicService::~SmfMusicService(void)
-	?trUtf8@SmfContactFetcher@@SA?AVQString@@PBD0@Z @ 103 NONAME ; class QString SmfContactFetcher::trUtf8(char const *, char const *)
-	?tr@SmfGallery@@SA?AVQString@@PBD0H@Z @ 104 NONAME ; class QString SmfGallery::tr(char const *, char const *, int)
-	?musicUsageInfo@SmfMusicProfile@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 105 NONAME ; class QList<class SmfTrackInfo> SmfMusicProfile::musicUsageInfo(void) const
-	??1SmfComment@@QAE@XZ @ 106 NONAME ; SmfComment::~SmfComment(void)
-	?setFrameRate@SmfSubtitle@@QAEXABN@Z @ 107 NONAME ; void SmfSubtitle::setFrameRate(double const &)
-	?maxItems@SmfPostProvider@@QBEHXZ @ 108 NONAME ; int SmfPostProvider::maxItems(void) const
-	?customRequest@SmfPostProvider@@QAEXABHPAVQByteArray@@@Z @ 109 NONAME ; void SmfPostProvider::customRequest(int const &, class QByteArray *)
-	??0SmfContact@@QAE@ABV0@@Z @ 110 NONAME ; SmfContact::SmfContact(class SmfContact const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactName@QtMobility@@@Z @ 111 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactName &)
-	?metadata@SmfPlaylist@@QBE?AV?$QMap@VQString@@VQVariant@@@@XZ @ 112 NONAME ; class QMap<class QString, class QVariant> SmfPlaylist::metadata(void) const
-	?url@SmfLocation@@QBE?AVQUrl@@XZ @ 113 NONAME ; class QUrl SmfLocation::url(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVQContactAddress@QtMobility@@@Z @ 114 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAddress const &)
-	?getStaticMetaObject@SmfMusicEvents@@SAABUQMetaObject@@XZ @ 115 NONAME ; struct QMetaObject const & SmfMusicEvents::getStaticMetaObject(void)
-	?setName@SmfGroup@@QAEXAAVQString@@@Z @ 116 NONAME ; void SmfGroup::setName(class QString &)
+	?eventsUpdated@SmfMusicEvents@@IAEXW4SmfError@@@Z @ 1 NONAME ; void SmfMusicEvents::eventsUpdated(enum SmfError)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfRelationItem@@@Z @ 2 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfRelationItem const &)
+	?count@SmfRelationMgr@@QAEIVQString@@@Z @ 3 NONAME ; unsigned int SmfRelationMgr::count(class QString)
+	?staticMetaObject@SmfRelationMgr@@2UQMetaObject@@B @ 4 NONAME ; struct QMetaObject const SmfRelationMgr::staticMetaObject
+	?trUtf8@SmfPlaylistService@@SA?AVQString@@PBD0@Z @ 5 NONAME ; class QString SmfPlaylistService::trUtf8(char const *, char const *)
+	?customDataAvailable@SmfMusicEvents@@IAEXABHPAVQByteArray@@@Z @ 6 NONAME ; void SmfMusicEvents::customDataAvailable(int const &, class QByteArray *)
+	??0SmfGallery@@QAE@PAVSmfProvider@@@Z @ 7 NONAME ; SmfGallery::SmfGallery(class SmfProvider *)
+	?maxCharsInPost@SmfPostProvider@@QBEHXZ @ 8 NONAME ; int SmfPostProvider::maxCharsInPost(void) const
+	?qt_metacall@SmfMusicSearch@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9 NONAME ; int SmfMusicSearch::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0SmfClient@@QAE@XZ @ 10 NONAME ; SmfClient::SmfClient(void)
+	?tr@SmfContactFetcher@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString SmfContactFetcher::tr(char const *, char const *)
+	?lyrics@SmfLyricsService@@QAEXVSmfTrackInfo@@HH@Z @ 12 NONAME ; void SmfLyricsService::lyrics(class SmfTrackInfo, int, int)
+	?getIndex@SmfRelationItem@@QBEIXZ @ 13 NONAME ; unsigned int SmfRelationItem::getIndex(void) const
+	?trUtf8@SmfMusicSearch@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString SmfMusicSearch::trUtf8(char const *, char const *)
+	?getProvider@SmfMusicSearch@@ABEPAVSmfProvider@@XZ @ 15 NONAME ; class SmfProvider * SmfMusicSearch::getProvider(void) const
+	?getProvider@SmfActivityFetcher@@ABEPAVSmfProvider@@XZ @ 16 NONAME ; class SmfProvider * SmfActivityFetcher::getProvider(void) const
+	?getStaticMetaObject@SmfPostProvider@@SAABUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const & SmfPostProvider::getStaticMetaObject(void)
+	?tr@SmfRelationMgr@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString SmfRelationMgr::tr(char const *, char const *)
+	?filtered@SmfActivityFetcher@@QAEXV?$QList@W4SmfActivityObjectType@@@@HH@Z @ 19 NONAME ; void SmfActivityFetcher::filtered(class QList<enum SmfActivityObjectType>, int, int)
+	?customDataAvailable@SmfMusicService@@IAEXABHPAVQByteArray@@@Z @ 20 NONAME ; void SmfMusicService::customDataAvailable(int const &, class QByteArray *)
+	??1SmfMusicService@@UAE@XZ @ 21 NONAME ; SmfMusicService::~SmfMusicService(void)
+	??1SmfRelationItem@@QAE@XZ @ 22 NONAME ; SmfRelationItem::~SmfRelationItem(void)
+	?descriptionAvailable@SmfGallery@@IAEXVQString@@W4SmfError@@@Z @ 23 NONAME ; void SmfGallery::descriptionAvailable(class QString, enum SmfError)
+	??1SmfPlaylistService@@UAE@XZ @ 24 NONAME ; SmfPlaylistService::~SmfPlaylistService(void)
+	?supportedFormats@SmfPostProvider@@QBE?AV?$QVector@VQTextFormat@@@@XZ @ 25 NONAME ; class QVector<class QTextFormat> SmfPostProvider::supportedFormats(void) const
+	?getStaticMetaObject@SmfMusicSearch@@SAABUQMetaObject@@XZ @ 26 NONAME ; struct QMetaObject const & SmfMusicSearch::getStaticMetaObject(void)
+	??1SmfContactFetcher@@UAE@XZ @ 27 NONAME ; SmfContactFetcher::~SmfContactFetcher(void)
+	?getStaticMetaObject@SmfGallery@@SAABUQMetaObject@@XZ @ 28 NONAME ; struct QMetaObject const & SmfGallery::getStaticMetaObject(void)
+	?venues@SmfMusicEvents@@QAEXVSmfLocation@@HH@Z @ 29 NONAME ; void SmfMusicEvents::venues(class SmfLocation, int, int)
+	?staticMetaObject@SmfGallery@@2UQMetaObject@@B @ 30 NONAME ; struct QMetaObject const SmfGallery::staticMetaObject
+	?customDataAvailable@SmfActivityFetcher@@IAEXABHPAVQByteArray@@@Z @ 31 NONAME ; void SmfActivityFetcher::customDataAvailable(int const &, class QByteArray *)
+	?staticMetaObject@SmfMusicEvents@@2UQMetaObject@@B @ 32 NONAME ; struct QMetaObject const SmfMusicEvents::staticMetaObject
+	??0SmfActivityFetcher@@QAE@PAVSmfProvider@@@Z @ 33 NONAME ; SmfActivityFetcher::SmfActivityFetcher(class SmfProvider *)
+	?maxItems@SmfPostProvider@@QBEHXZ @ 34 NONAME ; int SmfPostProvider::maxItems(void) const
+	?trUtf8@SmfPostProvider@@SA?AVQString@@PBD0H@Z @ 35 NONAME ; class QString SmfPostProvider::trUtf8(char const *, char const *, int)
+	?qt_metacall@SmfRelationMgr@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 36 NONAME ; int SmfRelationMgr::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0SmfLyricsService@@QAE@PAVSmfProvider@@@Z @ 37 NONAME ; SmfLyricsService::SmfLyricsService(class SmfProvider *)
+	?metaObject@SmfGallery@@UBEPBUQMetaObject@@XZ @ 38 NONAME ; struct QMetaObject const * SmfGallery::metaObject(void) const
+	?qt_metacast@SmfActivityFetcher@@UAEPAXPBD@Z @ 39 NONAME ; void * SmfActivityFetcher::qt_metacast(char const *)
+	?qt_metacall@SmfLyricsService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 40 NONAME ; int SmfLyricsService::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacast@SmfMusicEvents@@UAEPAXPBD@Z @ 41 NONAME ; void * SmfMusicEvents::qt_metacast(char const *)
+	?metaObject@SmfMusicEvents@@UBEPBUQMetaObject@@XZ @ 42 NONAME ; struct QMetaObject const * SmfMusicEvents::metaObject(void) const
+	?trUtf8@SmfContactFetcher@@SA?AVQString@@PBD0H@Z @ 43 NONAME ; class QString SmfContactFetcher::trUtf8(char const *, char const *, int)
+	??_ESmfPlaylistService@@UAE@I@Z @ 44 NONAME ; SmfPlaylistService::~SmfPlaylistService(unsigned int)
+	?trUtf8@SmfMusicEvents@@SA?AVQString@@PBD0@Z @ 45 NONAME ; class QString SmfMusicEvents::trUtf8(char const *, char const *)
+	?qt_metacall@SmfContactFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 46 NONAME ; int SmfContactFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?customDataAvailable@SmfMusicSearch@@IAEXABHPAVQByteArray@@@Z @ 47 NONAME ; void SmfMusicSearch::customDataAvailable(int const &, class QByteArray *)
+	?supportsAppearence@SmfPostProvider@@QBE_NXZ @ 48 NONAME ; bool SmfPostProvider::supportsAppearence(void) const
+	?commentOnAPost@SmfPostProvider@@QAEXAAVSmfPost@@0PAVSmfLocation@@@Z @ 49 NONAME ; void SmfPostProvider::commentOnAPost(class SmfPost &, class SmfPost &, class SmfLocation *)
+	?trUtf8@SmfGallery@@SA?AVQString@@PBD0@Z @ 50 NONAME ; class QString SmfGallery::trUtf8(char const *, char const *)
+	?trUtf8@SmfLyricsService@@SA?AVQString@@PBD0@Z @ 51 NONAME ; class QString SmfLyricsService::trUtf8(char const *, char const *)
+	?getStaticMetaObject@SmfPlaylistService@@SAABUQMetaObject@@XZ @ 52 NONAME ; struct QMetaObject const & SmfPlaylistService::getStaticMetaObject(void)
+	?GetServices@SmfClient@@QAEPAV?$QList@VSmfProvider@@@@ABVQString@@@Z @ 53 NONAME ; class QList<class SmfProvider> * SmfClient::GetServices(class QString const &)
+	?qt_metacall@SmfGallery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 54 NONAME ; int SmfGallery::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?staticMetaObject@SmfLyricsService@@2UQMetaObject@@B @ 55 NONAME ; struct QMetaObject const SmfLyricsService::staticMetaObject
+	?getStaticMetaObject@SmfMusicEvents@@SAABUQMetaObject@@XZ @ 56 NONAME ; struct QMetaObject const & SmfMusicEvents::getStaticMetaObject(void)
+	?customRequest@SmfActivityFetcher@@QAEXABHPAVQByteArray@@@Z @ 57 NONAME ; void SmfActivityFetcher::customRequest(int const &, class QByteArray *)
+	?userInfoAvailable@SmfMusicService@@IAEXPAVSmfMusicProfile@@W4SmfError@@@Z @ 58 NONAME ; void SmfMusicService::userInfoAvailable(class SmfMusicProfile *, enum SmfError)
+	?staticMetaObject@SmfActivityFetcher@@2UQMetaObject@@B @ 59 NONAME ; struct QMetaObject const SmfActivityFetcher::staticMetaObject
+	?trUtf8@SmfContactFetcher@@SA?AVQString@@PBD0@Z @ 60 NONAME ; class QString SmfContactFetcher::trUtf8(char const *, char const *)
+	?customRequest@SmfGallery@@QAEXABHPAVQByteArray@@@Z @ 61 NONAME ; void SmfGallery::customRequest(int const &, class QByteArray *)
+	??1SmfMusicSearch@@UAE@XZ @ 62 NONAME ; SmfMusicSearch::~SmfMusicSearch(void)
+	?albumsAvailable@SmfGallery@@IAEXPAV?$QList@VSmfPictureAlbum@@@@W4SmfError@@USmfResultPage@@@Z @ 63 NONAME ; void SmfGallery::albumsAvailable(class QList<class SmfPictureAlbum> *, enum SmfError, struct SmfResultPage)
+	?tracks@SmfMusicSearch@@QAEXVSmfTrackInfo@@HH@Z @ 64 NONAME ; void SmfMusicSearch::tracks(class SmfTrackInfo, int, int)
+	?friendsListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 65 NONAME ; void SmfContactFetcher::friendsListAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	??1SmfClient@@QAE@XZ @ 66 NONAME ; SmfClient::~SmfClient(void)
+	?post@SmfPostProvider@@QAEXAAVSmfPost@@AAVSmfLocation@@@Z @ 67 NONAME ; void SmfPostProvider::post(class SmfPost &, class SmfLocation &)
+	?qt_metacast@SmfMusicSearch@@UAEPAXPBD@Z @ 68 NONAME ; void * SmfMusicSearch::qt_metacast(char const *)
+	?followers@SmfContactFetcher@@QAE_NHH@Z @ 69 NONAME ; bool SmfContactFetcher::followers(int, int)
+	??0SmfMusicService@@QAE@PAVSmfProvider@@@Z @ 70 NONAME ; SmfMusicService::SmfMusicService(class SmfProvider *)
+	?customDataAvailable@SmfLyricsService@@IAEXABHPAVQByteArray@@@Z @ 71 NONAME ; void SmfLyricsService::customDataAvailable(int const &, class QByteArray *)
+	?remove@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@PBVSmfContact@@@Z @ 72 NONAME ; enum SmfError SmfRelationMgr::remove(class QString &, class SmfContact const *)
+	?trUtf8@SmfRelationMgr@@SA?AVQString@@PBD0@Z @ 73 NONAME ; class QString SmfRelationMgr::trUtf8(char const *, char const *)
+	?venuesAvailable@SmfMusicEvents@@IAEXPAV?$QList@VSmfLocation@@@@W4SmfError@@USmfResultPage@@@Z @ 74 NONAME ; void SmfMusicEvents::venuesAvailable(class QList<class SmfLocation> *, enum SmfError, struct SmfResultPage)
+	?setContact@SmfRelationItem@@QAEXAAVSmfContact@@@Z @ 75 NONAME ; void SmfRelationItem::setContact(class SmfContact &)
+	?groupListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfGroup@@@@W4SmfError@@USmfResultPage@@@Z @ 76 NONAME ; void SmfContactFetcher::groupListAvailable(class QList<class SmfGroup> *, enum SmfError, struct SmfResultPage)
+	?searchByContact@SmfRelationMgr@@QAE?AVQString@@VSmfContact@@@Z @ 77 NONAME ; class QString SmfRelationMgr::searchByContact(class SmfContact)
+	?addToPlaylist@SmfPlaylistService@@QAEHVSmfPlaylist@@PAV?$QList@VSmfTrackInfo@@@@@Z @ 78 NONAME ; int SmfPlaylistService::addToPlaylist(class SmfPlaylist, class QList<class SmfTrackInfo> *)
+	?qt_metacast@SmfPlaylistService@@UAEPAXPBD@Z @ 79 NONAME ; void * SmfPlaylistService::qt_metacast(char const *)
+	?postCurrentPlaying@SmfMusicService@@QAEXVSmfTrackInfo@@@Z @ 80 NONAME ; void SmfMusicService::postCurrentPlaying(class SmfTrackInfo)
+	?trUtf8@SmfRelationMgr@@SA?AVQString@@PBD0H@Z @ 81 NONAME ; class QString SmfRelationMgr::trUtf8(char const *, char const *, int)
+	?trUtf8@SmfActivityFetcher@@SA?AVQString@@PBD0H@Z @ 82 NONAME ; class QString SmfActivityFetcher::trUtf8(char const *, char const *, int)
+	?metaObject@SmfPlaylistService@@UBEPBUQMetaObject@@XZ @ 83 NONAME ; struct QMetaObject const * SmfPlaylistService::metaObject(void) const
+	?getStaticMetaObject@SmfRelationMgr@@SAABUQMetaObject@@XZ @ 84 NONAME ; struct QMetaObject const & SmfRelationMgr::getStaticMetaObject(void)
+	?tr@SmfRelationMgr@@SA?AVQString@@PBD0H@Z @ 85 NONAME ; class QString SmfRelationMgr::tr(char const *, char const *, int)
+	?metaObject@SmfPostProvider@@UBEPBUQMetaObject@@XZ @ 86 NONAME ; struct QMetaObject const * SmfPostProvider::metaObject(void) const
+	?getProvider@SmfGallery@@ABEPAVSmfProvider@@XZ @ 87 NONAME ; class SmfProvider * SmfGallery::getProvider(void) const
+	??_ESmfMusicSearch@@UAE@I@Z @ 88 NONAME ; SmfMusicSearch::~SmfMusicSearch(unsigned int)
+	?tr@SmfGallery@@SA?AVQString@@PBD0@Z @ 89 NONAME ; class QString SmfGallery::tr(char const *, char const *)
+	?stores@SmfMusicSearch@@QAEXVSmfTrackInfo@@HH@Z @ 90 NONAME ; void SmfMusicSearch::stores(class SmfTrackInfo, int, int)
+	?create@SmfRelationMgr@@QAE?AVQString@@PAVSmfProvider@@PAVSmfContact@@@Z @ 91 NONAME ; class QString SmfRelationMgr::create(class SmfProvider *, class SmfContact *)
+	?qt_metacall@SmfMusicEvents@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 92 NONAME ; int SmfMusicEvents::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacall@SmfPostProvider@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 93 NONAME ; int SmfPostProvider::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfRelationItem@@@Z @ 94 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfRelationItem &)
+	?storeSearchAvailable@SmfMusicSearch@@IAEXPAV?$QList@VSmfProvider@@@@W4SmfError@@USmfResultPage@@@Z @ 95 NONAME ; void SmfMusicSearch::storeSearchAvailable(class QList<class SmfProvider> *, enum SmfError, struct SmfResultPage)
+	?subtitles@SmfLyricsService@@QAEXVSmfTrackInfo@@W4SmfSubtitleSearchFilter@@HH@Z @ 96 NONAME ; void SmfLyricsService::subtitles(class SmfTrackInfo, enum SmfSubtitleSearchFilter, int, int)
+	?uploadFinished@SmfGallery@@IAEXV?$QList@W4SmfError@@@@@Z @ 97 NONAME ; void SmfGallery::uploadFinished(class QList<enum SmfError>)
+	?searchInGroup@SmfContactFetcher@@QAE_NVSmfGroup@@HH@Z @ 98 NONAME ; bool SmfContactFetcher::searchInGroup(class SmfGroup, int, int)
+	?getStaticMetaObject@SmfMusicService@@SAABUQMetaObject@@XZ @ 99 NONAME ; struct QMetaObject const & SmfMusicService::getStaticMetaObject(void)
+	??_ESmfContactFetcher@@UAE@I@Z @ 100 NONAME ; SmfContactFetcher::~SmfContactFetcher(unsigned int)
+	?tr@SmfGallery@@SA?AVQString@@PBD0H@Z @ 101 NONAME ; class QString SmfGallery::tr(char const *, char const *, int)
+	?getProvider@SmfRelationItem@@QBE?AVSmfProvider@@XZ @ 102 NONAME ; class SmfProvider SmfRelationItem::getProvider(void) const
+	?customRequest@SmfMusicEvents@@QAEXABHPAVQByteArray@@@Z @ 103 NONAME ; void SmfMusicEvents::customRequest(int const &, class QByteArray *)
+	?getProvider@SmfPostProvider@@ABEPAVSmfProvider@@XZ @ 104 NONAME ; class SmfProvider * SmfPostProvider::getProvider(void) const
+	?metaObject@SmfMusicSearch@@UBEPBUQMetaObject@@XZ @ 105 NONAME ; struct QMetaObject const * SmfMusicSearch::metaObject(void) const
+	?getProvider@SmfPlaylistService@@ABEPAVSmfProvider@@XZ @ 106 NONAME ; class SmfProvider * SmfPlaylistService::getProvider(void) const
+	?customDataAvailable@SmfContactFetcher@@IAEXHPAVQByteArray@@@Z @ 107 NONAME ; void SmfContactFetcher::customDataAvailable(int, class QByteArray *)
+	?trUtf8@SmfPostProvider@@SA?AVQString@@PBD0@Z @ 108 NONAME ; class QString SmfPostProvider::trUtf8(char const *, char const *)
+	?getStaticMetaObject@SmfContactFetcher@@SAABUQMetaObject@@XZ @ 109 NONAME ; struct QMetaObject const & SmfContactFetcher::getStaticMetaObject(void)
+	?customDataAvailable@SmfGallery@@IAEXHPAVQByteArray@@@Z @ 110 NONAME ; void SmfGallery::customDataAvailable(int, class QByteArray *)
+	?tr@SmfPostProvider@@SA?AVQString@@PBD0@Z @ 111 NONAME ; class QString SmfPostProvider::tr(char const *, char const *)
+	??1SmfPostProvider@@UAE@XZ @ 112 NONAME ; SmfPostProvider::~SmfPostProvider(void)
+	?trackInfo@SmfMusicSearch@@QAEXVSmfMusicFingerPrint@@HH@Z @ 113 NONAME ; void SmfMusicSearch::trackInfo(class SmfMusicFingerPrint, int, int)
+	?lyricsAvailable@SmfLyricsService@@IAEXPAV?$QList@VSmfLyrics@@@@W4SmfError@@USmfResultPage@@@Z @ 114 NONAME ; void SmfLyricsService::lyricsAvailable(class QList<class SmfLyrics> *, enum SmfError, struct SmfResultPage)
+	?tr@SmfPlaylistService@@SA?AVQString@@PBD0@Z @ 115 NONAME ; class QString SmfPlaylistService::tr(char const *, char const *)
+	?tr@SmfLyricsService@@SA?AVQString@@PBD0H@Z @ 116 NONAME ; class QString SmfLyricsService::tr(char const *, char const *, int)
 	?customRequest@SmfContactFetcher@@QAEXABHPAVQByteArray@@@Z @ 117 NONAME ; void SmfContactFetcher::customRequest(int const &, class QByteArray *)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactNickname@QtMobility@@@Z @ 118 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactNickname &)
-	?setServiceUrl@SmfProvider@@QAEXAAVQUrl@@@Z @ 119 NONAME ; void SmfProvider::setServiceUrl(class QUrl &)
-	?setDescription@SmfPicture@@QAEXABVQString@@@Z @ 120 NONAME ; void SmfPicture::setDescription(class QString const &)
-	??_ESmfContactFetcher@@UAE@I@Z @ 121 NONAME ; SmfContactFetcher::~SmfContactFetcher(unsigned int)
-	?tr@SmfMusicEvents@@SA?AVQString@@PBD0H@Z @ 122 NONAME ; class QString SmfMusicEvents::tr(char const *, char const *, int)
-	?setThumbnail@SmfActivityObject@@QAEXABVQImage@@@Z @ 123 NONAME ; void SmfActivityObject::setThumbnail(class QImage const &)
-	?pictureCount@SmfPictureAlbum@@QBEHXZ @ 124 NONAME ; int SmfPictureAlbum::pictureCount(void) const
-	?post@SmfPostProvider@@QAEXAAVSmfPost@@AAVSmfLocation@@@Z @ 125 NONAME ; void SmfPostProvider::post(class SmfPost &, class SmfLocation &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfArtists@@@Z @ 126 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfArtists const &)
-	?postComments@SmfMusicSearch@@QAEXVSmfTrackInfo@@VSmfComment@@@Z @ 127 NONAME ; void SmfMusicSearch::postComments(class SmfTrackInfo, class SmfComment)
-	?tr@SmfLyricsService@@SA?AVQString@@PBD0@Z @ 128 NONAME ; class QString SmfLyricsService::tr(char const *, char const *)
-	?id@SmfSubtitle@@QBE?AVQString@@XZ @ 129 NONAME ; class QString SmfSubtitle::id(void) const
-	?setId@SmfGroup@@QAEXAAVQString@@@Z @ 130 NONAME ; void SmfGroup::setId(class QString &)
-	?setThumbnail@SmfPictureAlbum@@QAEXABVQImage@@@Z @ 131 NONAME ; void SmfPictureAlbum::setThumbnail(class QImage const &)
-	?getStaticMetaObject@SmfRelationMgr@@SAABUQMetaObject@@XZ @ 132 NONAME ; struct QMetaObject const & SmfRelationMgr::getStaticMetaObject(void)
-	??4SmfComment@@QAEAAV0@ABV0@@Z @ 133 NONAME ; class SmfComment & SmfComment::operator=(class SmfComment const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactAvatar@QtMobility@@@Z @ 134 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAvatar &)
-	?setAlbum@SmfTrackInfo@@QAEXABVSmfAlbum@@@Z @ 135 NONAME ; void SmfTrackInfo::setAlbum(class SmfAlbum const &)
-	?metaObject@SmfLyricsService@@UBEPBUQMetaObject@@XZ @ 136 NONAME ; struct QMetaObject const * SmfLyricsService::metaObject(void) const
-	?staticMetaObject@SmfRelationMgr@@2UQMetaObject@@B @ 137 NONAME ; struct QMetaObject const SmfRelationMgr::staticMetaObject
-	?setPostedDate@SmfPicture@@QAEXABVQDateTime@@@Z @ 138 NONAME ; void SmfPicture::setPostedDate(class QDateTime const &)
-	?qt_metacast@SmfPostProvider@@UAEPAXPBD@Z @ 139 NONAME ; void * SmfPostProvider::qt_metacast(char const *)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactUrl@QtMobility@@@Z @ 140 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactUrl &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfPictureAlbum@@@Z @ 141 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPictureAlbum const &)
-	?postFinished@SmfPostProvider@@IAEXW4SmfError@@@Z @ 142 NONAME ; void SmfPostProvider::postFinished(enum SmfError)
-	?url@SmfPicture@@QBE?AVQUrl@@XZ @ 143 NONAME ; class QUrl SmfPicture::url(void) const
-	?setLanguage@SmfLyrics@@QAEXABVQString@@@Z @ 144 NONAME ; void SmfLyrics::setLanguage(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfEvent@@@Z @ 145 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfEvent &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPicture@@@Z @ 146 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPicture &)
-	?GetServices@SmfClient@@QAEPAV?$QList@VSmfProvider@@@@ABVQString@@@Z @ 147 NONAME ; class QList<class SmfProvider> * SmfClient::GetServices(class QString const &)
-	?eventDateTime@SmfEvent@@QBE?AVQDateTime@@XZ @ 148 NONAME ; class QDateTime SmfEvent::eventDateTime(void) const
-	?albumsAvailable@SmfGallery@@IAEXPAV?$QList@VSmfPictureAlbum@@@@W4SmfError@@USmfResultPage@@@Z @ 149 NONAME ; void SmfGallery::albumsAvailable(class QList<class SmfPictureAlbum> *, enum SmfError, struct SmfResultPage)
-	??1SmfActivityEntry@@QAE@XZ @ 150 NONAME ; SmfActivityEntry::~SmfActivityEntry(void)
-	??4SmfPlaylist@@QAEAAV0@ABV0@@Z @ 151 NONAME ; class SmfPlaylist & SmfPlaylist::operator=(class SmfPlaylist const &)
-	??1SmfPlaylistService@@UAE@XZ @ 152 NONAME ; SmfPlaylistService::~SmfPlaylistService(void)
-	?tr@SmfActivityFetcher@@SA?AVQString@@PBD0H@Z @ 153 NONAME ; class QString SmfActivityFetcher::tr(char const *, char const *, int)
-	?postCurrentPlayingPlaylist@SmfPlaylistService@@QAEHVSmfPlaylist@@@Z @ 154 NONAME ; int SmfPlaylistService::postCurrentPlayingPlaylist(class SmfPlaylist)
-	?tr@SmfPlaylistService@@SA?AVQString@@PBD0@Z @ 155 NONAME ; class QString SmfPlaylistService::tr(char const *, char const *)
-	??_ESmfRelationMgr@@UAE@I@Z @ 156 NONAME ; SmfRelationMgr::~SmfRelationMgr(unsigned int)
-	?url@SmfPost@@QBE?AVQUrl@@XZ @ 157 NONAME ; class QUrl SmfPost::url(void) const
-	?customRequest@SmfGallery@@QAEXABHPAVQByteArray@@@Z @ 158 NONAME ; void SmfGallery::customRequest(int const &, class QByteArray *)
-	?setDescription@SmfPost@@QAEXABVQString@@@Z @ 159 NONAME ; void SmfPost::setDescription(class QString const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfPlaylist@@@Z @ 160 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPlaylist const &)
-	?customDataAvailable@SmfContactFetcher@@IAEXHPAVQByteArray@@@Z @ 161 NONAME ; void SmfContactFetcher::customDataAvailable(int, class QByteArray *)
-	?trUtf8@SmfMusicSearch@@SA?AVQString@@PBD0H@Z @ 162 NONAME ; class QString SmfMusicSearch::trUtf8(char const *, char const *, int)
-	?getIndex@SmfRelationItem@@QBEIXZ @ 163 NONAME ; unsigned int SmfRelationItem::getIndex(void) const
-	?metaObject@SmfMusicSearch@@UBEPBUQMetaObject@@XZ @ 164 NONAME ; struct QMetaObject const * SmfMusicSearch::metaObject(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPost@@@Z @ 165 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPost &)
-	??1SmfEvent@@QAE@XZ @ 166 NONAME ; SmfEvent::~SmfEvent(void)
-	?title@SmfPictureAlbum@@QBE?AVQString@@XZ @ 167 NONAME ; class QString SmfPictureAlbum::title(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVQContactPresence@QtMobility@@@Z @ 168 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactPresence &)
-	?qt_metacast@SmfMusicService@@UAEPAXPBD@Z @ 169 NONAME ; void * SmfMusicService::qt_metacast(char const *)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfContact@@@Z @ 170 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfContact const &)
-	?href@SmfUrl@@QBE?AVQUrl@@XZ @ 171 NONAME ; class QUrl SmfUrl::href(void) const
-	??0SmfLocation@@QAE@ABV0@@Z @ 172 NONAME ; SmfLocation::SmfLocation(class SmfLocation const &)
-	??0SmfProvider@@QAE@XZ @ 173 NONAME ; SmfProvider::SmfProvider(void)
-	?eventsAvailable@SmfMusicEvents@@IAEXPAV?$QList@VSmfEvent@@@@W4SmfError@@USmfResultPage@@@Z @ 174 NONAME ; void SmfMusicEvents::eventsAvailable(class QList<class SmfEvent> *, enum SmfError, struct SmfResultPage)
-	?image@SmfAlbum@@QBE?AVQImage@@XZ @ 175 NONAME ; class QImage SmfAlbum::image(void) const
-	?artists@SmfAlbum@@QBE?AVSmfArtists@@XZ @ 176 NONAME ; class SmfArtists SmfAlbum::artists(void) const
-	?releaseYear@SmfSubtitle@@QBE?AVQDateTime@@XZ @ 177 NONAME ; class QDateTime SmfSubtitle::releaseYear(void) const
-	?tr@SmfRelationMgr@@SA?AVQString@@PBD0H@Z @ 178 NONAME ; class QString SmfRelationMgr::tr(char const *, char const *, int)
-	?staticMetaObject@SmfPostProvider@@2UQMetaObject@@B @ 179 NONAME ; struct QMetaObject const SmfPostProvider::staticMetaObject
-	?setId@SmfPictureAlbum@@QAEXABVQString@@@Z @ 180 NONAME ; void SmfPictureAlbum::setId(class QString const &)
-	?lyrics@SmfLyricsService@@QAEXVSmfTrackInfo@@HH@Z @ 181 NONAME ; void SmfLyricsService::lyrics(class SmfTrackInfo, int, int)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfComment@@@Z @ 182 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfComment &)
-	?getAuthKeys@SmfPluginUtil@@QAEXAAV?$QMap@VQString@@V1@@@VQString@@1@Z @ 183 NONAME ; void SmfPluginUtil::getAuthKeys(class QMap<class QString, class QString> &, class QString, class QString)
-	?setReleaseYear@SmfLyrics@@QAEXABVQDateTime@@@Z @ 184 NONAME ; void SmfLyrics::setReleaseYear(class QDateTime const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactEmailAddress@QtMobility@@@Z @ 185 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactEmailAddress &)
-	?setMusicUsageInfo@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 186 NONAME ; void SmfMusicProfile::setMusicUsageInfo(class QList<class SmfTrackInfo> const &)
-	?id@SmfEvent@@QBE?AVQString@@XZ @ 187 NONAME ; class QString SmfEvent::id(void) const
-	?addTags@SmfPicture@@QAEXABVQStringList@@@Z @ 188 NONAME ; void SmfPicture::addTags(class QStringList const &)
-	?setUrl@SmfLocation@@QAEXABVQUrl@@@Z @ 189 NONAME ; void SmfLocation::setUrl(class QUrl const &)
-	?actionName@SmfActivityEntry@@QBE?AW4SmfActivityVerb@@XZ @ 190 NONAME ; enum SmfActivityVerb SmfActivityEntry::actionName(void) const
-	?searchInGroupFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 191 NONAME ; void SmfContactFetcher::searchInGroupFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactId@QtMobility@@@Z @ 192 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactId &)
-	?id@SmfComment@@QBE?AVQString@@XZ @ 193 NONAME ; class QString SmfComment::id(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicProfile@@@Z @ 194 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicProfile const &)
-	??_ESmfPluginUtil@@QAE@I@Z @ 195 NONAME ; SmfPluginUtil::~SmfPluginUtil(unsigned int)
-	??_ESmfTrackInfo@@QAE@I@Z @ 196 NONAME ; SmfTrackInfo::~SmfTrackInfo(unsigned int)
-	?searchNearFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 197 NONAME ; void SmfContactFetcher::searchNearFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?setName@SmfAlbum@@QAEXABVQString@@@Z @ 198 NONAME ; void SmfAlbum::setName(class QString const &)
-	?owner@SmfPicture@@QBE?AVQString@@XZ @ 199 NONAME ; class QString SmfPicture::owner(void) const
-	?getStaticMetaObject@SmfContactFetcher@@SAABUQMetaObject@@XZ @ 200 NONAME ; struct QMetaObject const & SmfContactFetcher::getStaticMetaObject(void)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfTrackInfo@@@Z @ 201 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfTrackInfo &)
-	?trUtf8@SmfContactFetcher@@SA?AVQString@@PBD0H@Z @ 202 NONAME ; class QString SmfContactFetcher::trUtf8(char const *, char const *, int)
-	??_ESmfPicture@@QAE@I@Z @ 203 NONAME ; SmfPicture::~SmfPicture(unsigned int)
-	?applicationUrl@SmfProvider@@QBE?AVQUrl@@XZ @ 204 NONAME ; class QUrl SmfProvider::applicationUrl(void) const
-	?setDetails@SmfActivityEntry@@QAE_NABVSmfPost@@@Z @ 205 NONAME ; bool SmfActivityEntry::setDetails(class SmfPost const &)
-	?searchInfoAvailable@SmfMusicService@@IAEXAAV?$QList@VSmfMusicProfile@@@@W4SmfError@@USmfResultPage@@@Z @ 206 NONAME ; void SmfMusicService::searchInfoAvailable(class QList<class SmfMusicProfile> &, enum SmfError, struct SmfResultPage)
-	?metaObject@SmfMusicEvents@@UBEPBUQMetaObject@@XZ @ 207 NONAME ; struct QMetaObject const * SmfMusicEvents::metaObject(void) const
-	?postAppearence@SmfPostProvider@@QAE_NW4SmfAppearenceInfo@@@Z @ 208 NONAME ; bool SmfPostProvider::postAppearence(enum SmfAppearenceInfo)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactNote@QtMobility@@@Z @ 209 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactNote const &)
-	??0SmfPictureAlbum@@QAE@ABV0@@Z @ 210 NONAME ; SmfPictureAlbum::SmfPictureAlbum(class SmfPictureAlbum const &)
-	?album@SmfTrackInfo@@QBE?AVSmfAlbum@@XZ @ 211 NONAME ; class SmfAlbum SmfTrackInfo::album(void) const
-	?eventsUpdated@SmfMusicEvents@@IAEXW4SmfError@@@Z @ 212 NONAME ; void SmfMusicEvents::eventsUpdated(enum SmfError)
-	??_ESmfEvent@@QAE@I@Z @ 213 NONAME ; SmfEvent::~SmfEvent(unsigned int)
-	?type@SmfActivityObject@@QBE?AW4SmfActivityObjectType@@XZ @ 214 NONAME ; enum SmfActivityObjectType SmfActivityObject::type(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVQContactOnlineAccount@QtMobility@@@Z @ 215 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactOnlineAccount const &)
-	??0SmfPostProvider@@QAE@PAVSmfProvider@@@Z @ 216 NONAME ; SmfPostProvider::SmfPostProvider(class SmfProvider *)
-	?tr@SmfMusicService@@SA?AVQString@@PBD0@Z @ 217 NONAME ; class QString SmfMusicService::tr(char const *, char const *)
-	?m_myInstance@SmfPluginUtil@@0PAV1@A @ 218 NONAME ; class SmfPluginUtil * SmfPluginUtil::m_myInstance
-	??0SmfLocation@@QAE@XZ @ 219 NONAME ; SmfLocation::SmfLocation(void)
-	?ticketUrl@SmfEvent@@QBE?AVQUrl@@XZ @ 220 NONAME ; class QUrl SmfEvent::ticketUrl(void) const
-	??0SmfContactFetcher@@QAE@PAVSmfProvider@@PAVSmfContact@@@Z @ 221 NONAME ; SmfContactFetcher::SmfContactFetcher(class SmfProvider *, class SmfContact *)
-	?minRating@SmfMusicRating@@QBEHXZ @ 222 NONAME ; int SmfMusicRating::minRating(void) const
-	?tr@SmfPlaylistService@@SA?AVQString@@PBD0H@Z @ 223 NONAME ; class QString SmfPlaylistService::tr(char const *, char const *, int)
-	?tr@SmfMusicSearch@@SA?AVQString@@PBD0@Z @ 224 NONAME ; class QString SmfMusicSearch::tr(char const *, char const *)
-	?setValue@SmfContact@@QAEXABVQString@@AAVQVariant@@@Z @ 225 NONAME ; void SmfContact::setValue(class QString const &, class QVariant &)
-	??0SmfActivityEntry@@QAE@ABV0@@Z @ 226 NONAME ; SmfActivityEntry::SmfActivityEntry(class SmfActivityEntry const &)
-	?pictures@SmfGallery@@QAEXAAV?$QList@VSmfPictureAlbum@@@@HH@Z @ 227 NONAME ; void SmfGallery::pictures(class QList<class SmfPictureAlbum> &, int, int)
-	??0SmfUrl@@QAE@XZ @ 228 NONAME ; SmfUrl::SmfUrl(void)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactGender@QtMobility@@@Z @ 229 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGender &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPlaylist@@@Z @ 230 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPlaylist &)
-	?subtitle@SmfSubtitle@@QBE?AVQByteArray@@XZ @ 231 NONAME ; class QByteArray SmfSubtitle::subtitle(void) const
-	?setUrl@SmfArtists@@QAEXABVQUrl@@@Z @ 232 NONAME ; void SmfArtists::setUrl(class QUrl const &)
-	??0SmfPicture@@QAE@ABVQImage@@@Z @ 233 NONAME ; SmfPicture::SmfPicture(class QImage const &)
-	??_ESmfGroup@@QAE@I@Z @ 234 NONAME ; SmfGroup::~SmfGroup(unsigned int)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfUrl@@@Z @ 235 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfUrl &)
-	?qt_metacall@SmfMusicService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 236 NONAME ; int SmfMusicService::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0SmfPost@@QAE@XZ @ 237 NONAME ; SmfPost::SmfPost(void)
-	?year@SmfTrackInfo@@QBE?AVQDateTime@@XZ @ 238 NONAME ; class QDateTime SmfTrackInfo::year(void) const
-	?staticMetaObject@SmfLyricsService@@2UQMetaObject@@B @ 239 NONAME ; struct QMetaObject const SmfLyricsService::staticMetaObject
-	??4SmfUrl@@QAEAAV0@ABV0@@Z @ 240 NONAME ; class SmfUrl & SmfUrl::operator=(class SmfUrl const &)
-	?tr@SmfMusicSearch@@SA?AVQString@@PBD0H@Z @ 241 NONAME ; class QString SmfMusicSearch::tr(char const *, char const *, int)
-	?description@SmfProvider@@QBE?AVQString@@XZ @ 242 NONAME ; class QString SmfProvider::description(void) const
-	??1SmfActivityFetcher@@UAE@XZ @ 243 NONAME ; SmfActivityFetcher::~SmfActivityFetcher(void)
-	??0SmfClient@@QAE@XZ @ 244 NONAME ; SmfClient::SmfClient(void)
-	?subtitles@SmfLyricsService@@QAEXVSmfTrackInfo@@W4SmfSubtitleSearchFilter@@HH@Z @ 245 NONAME ; void SmfLyricsService::subtitles(class SmfTrackInfo, enum SmfSubtitleSearchFilter, int, int)
-	?stores@SmfMusicSearch@@QAEXVSmfTrackInfo@@HH@Z @ 246 NONAME ; void SmfMusicSearch::stores(class SmfTrackInfo, int, int)
-	?releaseYear@SmfLyrics@@QBE?AVQDateTime@@XZ @ 247 NONAME ; class QDateTime SmfLyrics::releaseYear(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfGroup@@@Z @ 248 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfGroup const &)
-	?postedDate@SmfPicture@@QBE?AVQDateTime@@XZ @ 249 NONAME ; class QDateTime SmfPicture::postedDate(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVQContactAvatar@QtMobility@@@Z @ 250 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAvatar const &)
-	?staticMetaObject@SmfPlaylistService@@2UQMetaObject@@B @ 251 NONAME ; struct QMetaObject const SmfPlaylistService::staticMetaObject
-	??5@YAAAVQDataStream@@AAV0@AAVSmfContact@@@Z @ 252 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfContact &)
-	?trUtf8@SmfLyricsService@@SA?AVQString@@PBD0@Z @ 253 NONAME ; class QString SmfLyricsService::trUtf8(char const *, char const *)
-	??1SmfMusicEvents@@UAE@XZ @ 254 NONAME ; SmfMusicEvents::~SmfMusicEvents(void)
-	??4SmfProvider@@QAEAAV0@ABV0@@Z @ 255 NONAME ; class SmfProvider & SmfProvider::operator=(class SmfProvider const &)
-	?duration@SmfSubtitle@@QBENXZ @ 256 NONAME ; double SmfSubtitle::duration(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfLocation@@@Z @ 257 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfLocation &)
-	?setPicture@SmfPicture@@QAEXABVQImage@@@Z @ 258 NONAME ; void SmfPicture::setPicture(class QImage const &)
-	?title@SmfPicture@@QBE?AVQString@@XZ @ 259 NONAME ; class QString SmfPicture::title(void) const
-	?rating@SmfMusicRating@@QBEHXZ @ 260 NONAME ; int SmfMusicRating::rating(void) const
-	?sharePost@SmfPostProvider@@QAEXAAVSmfPost@@AAVSmfContact@@_N@Z @ 261 NONAME ; void SmfPostProvider::sharePost(class SmfPost &, class SmfContact &, bool)
-	?timeStamp@SmfComment@@QBE?AVQDateTime@@XZ @ 262 NONAME ; class QDateTime SmfComment::timeStamp(void) const
-	?setId@SmfPicture@@QAEXABVQString@@@Z @ 263 NONAME ; void SmfPicture::setId(class QString const &)
-	??4SmfRelationItem@@QAEAAV0@ABV0@@Z @ 264 NONAME ; class SmfRelationItem & SmfRelationItem::operator=(class SmfRelationItem const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfLocation@@@Z @ 265 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfLocation const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactPresence@QtMobility@@@Z @ 266 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactPresence const &)
-	?tags@SmfTrackInfo@@QBE?AVQStringList@@XZ @ 267 NONAME ; class QStringList SmfTrackInfo::tags(void) const
-	?title@SmfTrackInfo@@QBE?AVQString@@XZ @ 268 NONAME ; class QString SmfTrackInfo::title(void) const
-	?qt_metacast@SmfMusicEvents@@UAEPAXPBD@Z @ 269 NONAME ; void * SmfMusicEvents::qt_metacast(char const *)
-	?supportsAppearence@SmfPostProvider@@QBE_NXZ @ 270 NONAME ; bool SmfPostProvider::supportsAppearence(void) const
-	?customDataAvailable@SmfGallery@@IAEXHPAVQByteArray@@@Z @ 271 NONAME ; void SmfGallery::customDataAvailable(int, class QByteArray *)
-	?url@SmfArtists@@QBE?AVQUrl@@XZ @ 272 NONAME ; class QUrl SmfArtists::url(void) const
-	?serviceName@SmfProvider@@QBE?AVQString@@XZ @ 273 NONAME ; class QString SmfProvider::serviceName(void) const
-	?getProvider@SmfLyricsService@@QAEPAVSmfProvider@@XZ @ 274 NONAME ; class SmfProvider * SmfLyricsService::getProvider(void)
-	?qt_metacast@SmfPlaylistService@@UAEPAXPBD@Z @ 275 NONAME ; void * SmfPlaylistService::qt_metacast(char const *)
-	?creationDate@SmfPlaylist@@QBE?AVQDateTime@@XZ @ 276 NONAME ; class QDateTime SmfPlaylist::creationDate(void) const
-	?friends@SmfContactFetcher@@QAE_NHH@Z @ 277 NONAME ; bool SmfContactFetcher::friends(int, int)
-	?title@SmfUrl@@QBE?AVQString@@XZ @ 278 NONAME ; class QString SmfUrl::title(void) const
-	?owner@SmfPost@@QBE?AVSmfContact@@XZ @ 279 NONAME ; class SmfContact SmfPost::owner(void) const
-	??_ESmfContact@@QAE@I@Z @ 280 NONAME ; SmfContact::~SmfContact(unsigned int)
-	??1SmfSubtitle@@QAE@XZ @ 281 NONAME ; SmfSubtitle::~SmfSubtitle(void)
-	?trUtf8@SmfLyricsService@@SA?AVQString@@PBD0H@Z @ 282 NONAME ; class QString SmfLyricsService::trUtf8(char const *, char const *, int)
-	??1SmfRelationMgr@@UAE@XZ @ 283 NONAME ; SmfRelationMgr::~SmfRelationMgr(void)
-	?attribution@SmfPlaylist@@QBE?AV?$QList@VQUrl@@@@XZ @ 284 NONAME ; class QList<class QUrl> SmfPlaylist::attribution(void) const
-	?setInterestInfo@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 285 NONAME ; void SmfMusicProfile::setInterestInfo(class QList<class SmfTrackInfo> const &)
-	??0SmfGallery@@QAE@PAVSmfProvider@@@Z @ 286 NONAME ; SmfGallery::SmfGallery(class SmfProvider *)
-	?content@SmfActivityObject@@QBE?AVQString@@XZ @ 287 NONAME ; class QString SmfActivityObject::content(void) const
-	??_ESmfGallery@@UAE@I@Z @ 288 NONAME ; SmfGallery::~SmfGallery(unsigned int)
-	??0SmfRelationMgr@@QAE@PAVQObject@@@Z @ 289 NONAME ; SmfRelationMgr::SmfRelationMgr(class QObject *)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfProvider@@@Z @ 290 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfProvider &)
-	?setImage@SmfPlaylist@@QAEXABVQUrl@@@Z @ 291 NONAME ; void SmfPlaylist::setImage(class QUrl const &)
-	??4SmfPost@@QAEAAV0@ABV0@@Z @ 292 NONAME ; class SmfPost & SmfPost::operator=(class SmfPost const &)
-	?rating@SmfTrackInfo@@QBE?AVSmfMusicRating@@XZ @ 293 NONAME ; class SmfMusicRating SmfTrackInfo::rating(void) const
-	?playListTitle@SmfPlaylist@@QBE?AVQString@@XZ @ 294 NONAME ; class QString SmfPlaylist::playListTitle(void) const
-	?id@SmfUrl@@QBE?AVQString@@XZ @ 295 NONAME ; class QString SmfUrl::id(void) const
-	??0SmfMusicService@@QAE@PAVSmfProvider@@@Z @ 296 NONAME ; SmfMusicService::SmfMusicService(class SmfProvider *)
-	??0SmfEvent@@QAE@ABV0@@Z @ 297 NONAME ; SmfEvent::SmfEvent(class SmfEvent const &)
-	?name@SmfGroup@@QBE?AVQString@@XZ @ 298 NONAME ; class QString SmfGroup::name(void) const
-	?uploadFinished@SmfGallery@@IAEXV?$QList@W4SmfError@@@@@Z @ 299 NONAME ; void SmfGallery::uploadFinished(class QList<enum SmfError>)
-	?trUtf8@SmfMusicEvents@@SA?AVQString@@PBD0@Z @ 300 NONAME ; class QString SmfMusicEvents::trUtf8(char const *, char const *)
-	??0SmfComment@@QAE@XZ @ 301 NONAME ; SmfComment::SmfComment(void)
-	??1SmfGallery@@UAE@XZ @ 302 NONAME ; SmfGallery::~SmfGallery(void)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactOrganization@QtMobility@@@Z @ 303 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactOrganization const &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfRelationItem@@@Z @ 304 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfRelationItem &)
-	??4SmfAlbum@@QAEAAV0@ABV0@@Z @ 305 NONAME ; class SmfAlbum & SmfAlbum::operator=(class SmfAlbum const &)
-	??1SmfRelationItem@@QAE@XZ @ 306 NONAME ; SmfRelationItem::~SmfRelationItem(void)
-	?artists@SmfEvent@@QBE?AVSmfArtists@@XZ @ 307 NONAME ; class SmfArtists SmfEvent::artists(void) const
-	?setTimeStamp@SmfComment@@QAEXABVQDateTime@@@Z @ 308 NONAME ; void SmfComment::setTimeStamp(class QDateTime const &)
-	?setMaxRating@SmfMusicRating@@QAEXABH@Z @ 309 NONAME ; void SmfMusicRating::setMaxRating(int const &)
-	?trackList@SmfPlaylist@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 310 NONAME ; class QList<class SmfTrackInfo> SmfPlaylist::trackList(void) const
-	?description@SmfPicture@@QBE?AVQString@@XZ @ 311 NONAME ; class QString SmfPicture::description(void) const
-	?setUrl@SmfPicture@@QAEXABVQUrl@@@Z @ 312 NONAME ; void SmfPicture::setUrl(class QUrl const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfEvent@@@Z @ 313 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfEvent const &)
-	?count@SmfRelationMgr@@QAEIVQString@@@Z @ 314 NONAME ; unsigned int SmfRelationMgr::count(class QString)
-	?setAuthor@SmfActivityEntry@@QAE_NABVSmfContact@@@Z @ 315 NONAME ; bool SmfActivityEntry::setAuthor(class SmfContact const &)
-	?searchUser@SmfMusicService@@QAEXVSmfLocation@@HH@Z @ 316 NONAME ; void SmfMusicService::searchUser(class SmfLocation, int, int)
-	?qt_metacast@SmfLyricsService@@UAEPAXPBD@Z @ 317 NONAME ; void * SmfLyricsService::qt_metacast(char const *)
-	?language@SmfSubtitle@@QBE?AVQString@@XZ @ 318 NONAME ; class QString SmfSubtitle::language(void) const
-	?link@SmfActivityObject@@QBE?AVQString@@XZ @ 319 NONAME ; class QString SmfActivityObject::link(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVQContactType@QtMobility@@@Z @ 320 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactType &)
-	?storeSearchAvailable@SmfMusicSearch@@IAEXPAV?$QList@VSmfProvider@@@@W4SmfError@@USmfResultPage@@@Z @ 321 NONAME ; void SmfMusicSearch::storeSearchAvailable(class QList<class SmfProvider> *, enum SmfError, struct SmfResultPage)
-	??0SmfActivityObject@@QAE@XZ @ 322 NONAME ; SmfActivityObject::SmfActivityObject(void)
-	?selfActivities@SmfActivityFetcher@@QAEXHH@Z @ 323 NONAME ; void SmfActivityFetcher::selfActivities(int, int)
-	??0SmfContactFetcher@@QAE@PAVSmfProvider@@@Z @ 324 NONAME ; SmfContactFetcher::SmfContactFetcher(class SmfProvider *)
-	?metaObject@SmfContactFetcher@@UBEPBUQMetaObject@@XZ @ 325 NONAME ; struct QMetaObject const * SmfContactFetcher::metaObject(void) const
-	?setArtists@SmfEvent@@QAEXABVSmfArtists@@@Z @ 326 NONAME ; void SmfEvent::setArtists(class SmfArtists const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactNickname@QtMobility@@@Z @ 327 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactNickname const &)
-	??4SmfContact@@QAEAAV0@ABV0@@Z @ 328 NONAME ; class SmfContact & SmfContact::operator=(class SmfContact const &)
-	??0SmfPicture@@QAE@XZ @ 329 NONAME ; SmfPicture::SmfPicture(void)
-	?setId@SmfPost@@QAEXVQString@@@Z @ 330 NONAME ; void SmfPost::setId(class QString)
-	?getProvider@SmfMusicEvents@@QAEPAVSmfProvider@@XZ @ 331 NONAME ; class SmfProvider * SmfMusicEvents::getProvider(void)
-	?albums@SmfGallery@@QAEXVQStringList@@PAVSmfContact@@HH@Z @ 332 NONAME ; void SmfGallery::albums(class QStringList, class SmfContact *, int, int)
-	?upload@SmfGallery@@QAEXPAV?$QList@VSmfPicture@@@@PAVSmfPictureAlbum@@@Z @ 333 NONAME ; void SmfGallery::upload(class QList<class SmfPicture> *, class SmfPictureAlbum *)
-	?setTargetObj@SmfActivityEntry@@QAE_NABVSmfActivityObject@@@Z @ 334 NONAME ; bool SmfActivityEntry::setTargetObj(class SmfActivityObject const &)
-	?customDataAvailable@SmfPostProvider@@IAEXHPAVQByteArray@@@Z @ 335 NONAME ; void SmfPostProvider::customDataAvailable(int, class QByteArray *)
-	?comments@SmfPicture@@QBE?AV?$QList@VSmfComment@@@@XZ @ 336 NONAME ; class QList<class SmfComment> SmfPicture::comments(void) const
-	?title@SmfEvent@@QBE?AVQString@@XZ @ 337 NONAME ; class QString SmfEvent::title(void) const
-	?setYear@SmfTrackInfo@@QAEXABVQDateTime@@@Z @ 338 NONAME ; void SmfTrackInfo::setYear(class QDateTime const &)
-	?setUrl@SmfPictureAlbum@@QAEXABVQUrl@@@Z @ 339 NONAME ; void SmfPictureAlbum::setUrl(class QUrl const &)
-	?trUtf8@SmfPostProvider@@SA?AVQString@@PBD0H@Z @ 340 NONAME ; class QString SmfPostProvider::trUtf8(char const *, char const *, int)
-	??1SmfMusicProfile@@QAE@XZ @ 341 NONAME ; SmfMusicProfile::~SmfMusicProfile(void)
-	?setEventDateTime@SmfEvent@@QAEXABVQDateTime@@@Z @ 342 NONAME ; void SmfEvent::setEventDateTime(class QDateTime const &)
-	??_ESmfRelationItem@@QAE@I@Z @ 343 NONAME ; SmfRelationItem::~SmfRelationItem(unsigned int)
-	??0SmfRelationItem@@QAE@ABV0@@Z @ 344 NONAME ; SmfRelationItem::SmfRelationItem(class SmfRelationItem const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactPhoneNumber@QtMobility@@@Z @ 345 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactPhoneNumber const &)
-	?setAuthor@SmfPlaylist@@QAEXABVQString@@@Z @ 346 NONAME ; void SmfPlaylist::setAuthor(class QString const &)
-	?image@SmfPost@@QBE?AVQImage@@XZ @ 347 NONAME ; class QImage SmfPost::image(void) const
-	?setCity@SmfLocation@@QAEXABVQString@@@Z @ 348 NONAME ; void SmfLocation::setCity(class QString const &)
-	?setGenre@SmfTrackInfo@@QAEXABVQString@@@Z @ 349 NONAME ; void SmfTrackInfo::setGenre(class QString const &)
-	?updatePost@SmfPostProvider@@QAEXAAVSmfPost@@@Z @ 350 NONAME ; void SmfPostProvider::updatePost(class SmfPost &)
-	?setTrackList@SmfPlaylist@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 351 NONAME ; void SmfPlaylist::setTrackList(class QList<class SmfTrackInfo> const &)
-	?setComment@SmfTrackInfo@@QAEXABV?$QList@VSmfComment@@@@@Z @ 352 NONAME ; void SmfTrackInfo::setComment(class QList<class SmfComment> const &)
-	?setTitle@SmfEvent@@QAEXABVQString@@@Z @ 353 NONAME ; void SmfEvent::setTitle(class QString const &)
-	?setImage@SmfArtists@@QAEXABVQImage@@@Z @ 354 NONAME ; void SmfArtists::setImage(class QImage const &)
-	?trUtf8@SmfGallery@@SA?AVQString@@PBD0H@Z @ 355 NONAME ; class QString SmfGallery::trUtf8(char const *, char const *, int)
-	?setActivities@SmfActivityEntry@@QAE_NAAV?$QList@VSmfActivityObject@@@@@Z @ 356 NONAME ; bool SmfActivityEntry::setActivities(class QList<class SmfActivityObject> &)
-	?setZipCode@SmfLocation@@QAEXABVQString@@@Z @ 357 NONAME ; void SmfLocation::setZipCode(class QString const &)
-	?setProvider@SmfRelationItem@@QAEXAAVSmfProvider@@@Z @ 358 NONAME ; void SmfRelationItem::setProvider(class SmfProvider &)
-	??1SmfPluginUtil@@QAE@XZ @ 359 NONAME ; SmfPluginUtil::~SmfPluginUtil(void)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfActivityObject@@@Z @ 360 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfActivityObject const &)
-	??1SmfPlaylist@@QAE@XZ @ 361 NONAME ; SmfPlaylist::~SmfPlaylist(void)
-	?tr@SmfMusicEvents@@SA?AVQString@@PBD0@Z @ 362 NONAME ; class QString SmfMusicEvents::tr(char const *, char const *)
-	??0SmfMusicEvents@@QAE@PAVSmfProvider@@@Z @ 363 NONAME ; SmfMusicEvents::SmfMusicEvents(class SmfProvider *)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactGeoLocation@QtMobility@@@Z @ 364 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGeoLocation const &)
-	??1SmfAlbum@@QAE@XZ @ 365 NONAME ; SmfAlbum::~SmfAlbum(void)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactType@QtMobility@@@Z @ 366 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactType const &)
-	??_ESmfMusicProfile@@QAE@I@Z @ 367 NONAME ; SmfMusicProfile::~SmfMusicProfile(unsigned int)
-	?id@SmfLyrics@@QBE?AVQString@@XZ @ 368 NONAME ; class QString SmfLyrics::id(void) const
-	?setText@SmfComment@@QAEXABVQString@@@Z @ 369 NONAME ; void SmfComment::setText(class QString const &)
-	?parse@SmfPluginUtil@@QAE?AVQVariant@@ABVQByteArray@@PA_N@Z @ 370 NONAME ; class QVariant SmfPluginUtil::parse(class QByteArray const &, bool *)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfGroup@@@Z @ 371 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfGroup &)
-	?qt_metacast@SmfMusicSearch@@UAEPAXPBD@Z @ 372 NONAME ; void * SmfMusicSearch::qt_metacast(char const *)
-	?setDuration@SmfEvent@@QAEXABVQTime@@@Z @ 373 NONAME ; void SmfEvent::setDuration(class QTime const &)
-	?setId@SmfComment@@QAEXABVQString@@@Z @ 374 NONAME ; void SmfComment::setId(class QString const &)
-	??1SmfActivityObject@@QAE@XZ @ 375 NONAME ; SmfActivityObject::~SmfActivityObject(void)
-	??1SmfPictureAlbum@@QAE@XZ @ 376 NONAME ; SmfPictureAlbum::~SmfPictureAlbum(void)
-	?trUtf8@SmfRelationMgr@@SA?AVQString@@PBD0H@Z @ 377 NONAME ; class QString SmfRelationMgr::trUtf8(char const *, char const *, int)
-	?postDirected@SmfPostProvider@@QAEXAAVSmfPost@@AAVSmfContact@@PAVSmfLocation@@@Z @ 378 NONAME ; void SmfPostProvider::postDirected(class SmfPost &, class SmfContact &, class SmfLocation *)
-	?followers@SmfContactFetcher@@QAE_NHH@Z @ 379 NONAME ; bool SmfContactFetcher::followers(int, int)
-	?setRel@SmfUrl@@QAEXABVQString@@@Z @ 380 NONAME ; void SmfUrl::setRel(class QString const &)
-	?qt_metacall@SmfGallery@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 381 NONAME ; int SmfGallery::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?friendsListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 382 NONAME ; void SmfContactFetcher::friendsListAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?trUtf8@SmfRelationMgr@@SA?AVQString@@PBD0@Z @ 383 NONAME ; class QString SmfRelationMgr::trUtf8(char const *, char const *)
-	??1SmfPostProvider@@UAE@XZ @ 384 NONAME ; SmfPostProvider::~SmfPostProvider(void)
-	?writeLog@SmfClient@@QBEXVQString@@@Z @ 385 NONAME ; void SmfClient::writeLog(class QString) const
-	??0SmfSubtitle@@QAE@XZ @ 386 NONAME ; SmfSubtitle::SmfSubtitle(void)
-	?upload@SmfGallery@@QAEXPAVSmfPicture@@PAVSmfPictureAlbum@@@Z @ 387 NONAME ; void SmfGallery::upload(class SmfPicture *, class SmfPictureAlbum *)
-	?setContact@SmfRelationItem@@QAEXAAVSmfContact@@@Z @ 388 NONAME ; void SmfRelationItem::setContact(class SmfContact &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactOrganization@QtMobility@@@Z @ 389 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactOrganization &)
-	?getNonce@SmfPluginUtil@@QAEXAAVQString@@@Z @ 390 NONAME ; void SmfPluginUtil::getNonce(class QString &)
-	?getProvider@SmfContactFetcher@@QAEPAVSmfProvider@@XZ @ 391 NONAME ; class SmfProvider * SmfContactFetcher::getProvider(void)
-	?tr@SmfMusicService@@SA?AVQString@@PBD0H@Z @ 392 NONAME ; class QString SmfMusicService::tr(char const *, char const *, int)
-	?setServiceName@SmfProvider@@QAEXAAVQString@@@Z @ 393 NONAME ; void SmfProvider::setServiceName(class QString &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicFingerPrint@@@Z @ 394 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicFingerPrint &)
-	??0SmfMusicProfile@@QAE@XZ @ 395 NONAME ; SmfMusicProfile::SmfMusicProfile(void)
-	?id@SmfPlaylist@@QBE?AVQString@@XZ @ 396 NONAME ; class QString SmfPlaylist::id(void) const
-	?setMembers@SmfGroup@@QAEXPAV?$QList@VSmfContact@@@@@Z @ 397 NONAME ; void SmfGroup::setMembers(class QList<class SmfContact> *)
-	?getAll@SmfRelationMgr@@QAE?AV?$QList@VSmfRelationItem@@@@AAVQString@@@Z @ 398 NONAME ; class QList<class SmfRelationItem> SmfRelationMgr::getAll(class QString &)
-	?setLanguage@SmfSubtitle@@QAEXABVQString@@@Z @ 399 NONAME ; void SmfSubtitle::setLanguage(class QString const &)
-	??0SmfPlaylist@@QAE@ABV0@@Z @ 400 NONAME ; SmfPlaylist::SmfPlaylist(class SmfPlaylist const &)
-	??_ESmfMusicSearch@@UAE@I@Z @ 401 NONAME ; SmfMusicSearch::~SmfMusicSearch(unsigned int)
-	?trUtf8@SmfGallery@@SA?AVQString@@PBD0@Z @ 402 NONAME ; class QString SmfGallery::trUtf8(char const *, char const *)
-	??1SmfClient@@QAE@XZ @ 403 NONAME ; SmfClient::~SmfClient(void)
-	?setStreet@SmfLocation@@QAEXABVQString@@@Z @ 404 NONAME ; void SmfLocation::setStreet(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactBirthday@QtMobility@@@Z @ 405 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactBirthday &)
-	??0SmfPlaylistService@@QAE@PAVSmfProvider@@@Z @ 406 NONAME ; SmfPlaylistService::SmfPlaylistService(class SmfProvider *)
-	?groups@SmfContactFetcher@@QAE_NHH@Z @ 407 NONAME ; bool SmfContactFetcher::groups(int, int)
-	?setMusicFingerPrint@SmfMusicFingerPrint@@QAEXABVQByteArray@@@Z @ 408 NONAME ; void SmfMusicFingerPrint::setMusicFingerPrint(class QByteArray const &)
-	??0SmfArtists@@QAE@ABV0@@Z @ 409 NONAME ; SmfArtists::SmfArtists(class SmfArtists const &)
-	?getStaticMetaObject@SmfPostProvider@@SAABUQMetaObject@@XZ @ 410 NONAME ; struct QMetaObject const & SmfPostProvider::getStaticMetaObject(void)
-	?author@SmfPlaylist@@QBE?AVQString@@XZ @ 411 NONAME ; class QString SmfPlaylist::author(void) const
-	?metaObject@SmfMusicService@@UBEPBUQMetaObject@@XZ @ 412 NONAME ; struct QMetaObject const * SmfMusicService::metaObject(void) const
-	?language@SmfLyrics@@QBE?AVQString@@XZ @ 413 NONAME ; class QString SmfLyrics::language(void) const
-	?setSubtitle@SmfSubtitle@@QAEXABVQByteArray@@@Z @ 414 NONAME ; void SmfSubtitle::setSubtitle(class QByteArray const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactBirthday@QtMobility@@@Z @ 415 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactBirthday const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfTrackInfo@@@Z @ 416 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfTrackInfo const &)
-	?postsAvailable@SmfPostProvider@@IAEXPAV?$QList@VSmfPost@@@@W4SmfError@@USmfResultPage@@@Z @ 417 NONAME ; void SmfPostProvider::postsAvailable(class QList<class SmfPost> *, enum SmfError, struct SmfResultPage)
-	??0SmfArtists@@QAE@XZ @ 418 NONAME ; SmfArtists::SmfArtists(void)
-	??1SmfTrackInfo@@QAE@XZ @ 419 NONAME ; SmfTrackInfo::~SmfTrackInfo(void)
-	?setMinRating@SmfMusicRating@@QAEXABH@Z @ 420 NONAME ; void SmfMusicRating::setMinRating(int const &)
-	?setCreationDate@SmfPlaylist@@QAEXABVQDateTime@@@Z @ 421 NONAME ; void SmfPlaylist::setCreationDate(class QDateTime const &)
-	??0SmfPluginUtil@@AAE@XZ @ 422 NONAME ; SmfPluginUtil::SmfPluginUtil(void)
-	?userEvents@SmfMusicProfile@@QBE?AV?$QList@VSmfEvent@@@@XZ @ 423 NONAME ; class QList<class SmfEvent> SmfMusicProfile::userEvents(void) const
-	?setName@SmfLocation@@QAEXABVQString@@@Z @ 424 NONAME ; void SmfLocation::setName(class QString const &)
-	?create@SmfRelationMgr@@QAE?AVQString@@PAVSmfProvider@@PAVSmfContact@@@Z @ 425 NONAME ; class QString SmfRelationMgr::create(class SmfProvider *, class SmfContact *)
-	?setTitle@SmfTrackInfo@@QAEXABVQString@@@Z @ 426 NONAME ; void SmfTrackInfo::setTitle(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactAddress@QtMobility@@@Z @ 427 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAddress &)
-	??0SmfGroup@@QAE@ABV0@@Z @ 428 NONAME ; SmfGroup::SmfGroup(class SmfGroup const &)
-	?id@SmfGroup@@QBE?AVQString@@XZ @ 429 NONAME ; class QString SmfGroup::id(void) const
-	?setOwner@SmfPicture@@QAEXABVQString@@@Z @ 430 NONAME ; void SmfPicture::setOwner(class QString const &)
-	?setImage@SmfPost@@QAEXABVQImage@@@Z @ 431 NONAME ; void SmfPost::setImage(class QImage const &)
-	?parse@SmfPluginUtil@@QAE?AVQVariant@@PAVQIODevice@@PA_N@Z @ 432 NONAME ; class QVariant SmfPluginUtil::parse(class QIODevice *, bool *)
-	?setType@SmfActivityObject@@QAEXABW4SmfActivityObjectType@@@Z @ 433 NONAME ; void SmfActivityObject::setType(enum SmfActivityObjectType const &)
-	??0SmfUrl@@QAE@ABV0@@Z @ 434 NONAME ; SmfUrl::SmfUrl(class SmfUrl const &)
-	?getStaticMetaObject@SmfLyricsService@@SAABUQMetaObject@@XZ @ 435 NONAME ; struct QMetaObject const & SmfLyricsService::getStaticMetaObject(void)
-	?playlistsOf@SmfPlaylistService@@QAEXPAVSmfMusicProfile@@HH@Z @ 436 NONAME ; void SmfPlaylistService::playlistsOf(class SmfMusicProfile *, int, int)
-	?associate@SmfRelationMgr@@QAE?AW4SmfError@@ABVQString@@PBVSmfContact@@PAVSmfProvider@@@Z @ 437 NONAME ; enum SmfError SmfRelationMgr::associate(class QString const &, class SmfContact const *, class SmfProvider *)
-	?serviceIcon@SmfProvider@@QBE?AVQImage@@XZ @ 438 NONAME ; class QImage SmfProvider::serviceIcon(void) const
-	??_ESmfActivityFetcher@@UAE@I@Z @ 439 NONAME ; SmfActivityFetcher::~SmfActivityFetcher(unsigned int)
-	?events@SmfMusicEvents@@QAEXVQContactGeoLocation@QtMobility@@HH@Z @ 440 NONAME ; void SmfMusicEvents::events(class QtMobility::QContactGeoLocation, int, int)
-	?searchInGroup@SmfContactFetcher@@QAE_NVSmfGroup@@HH@Z @ 441 NONAME ; bool SmfContactFetcher::searchInGroup(class SmfGroup, int, int)
-	?postCurrentPlaying@SmfMusicSearch@@QAEXVSmfTrackInfo@@@Z @ 442 NONAME ; void SmfMusicSearch::postCurrentPlaying(class SmfTrackInfo)
-	?recommendations@SmfMusicSearch@@QAEXVSmfTrackInfo@@HH@Z @ 443 NONAME ; void SmfMusicSearch::recommendations(class SmfTrackInfo, int, int)
-	?staticMetaObject@SmfGallery@@2UQMetaObject@@B @ 444 NONAME ; struct QMetaObject const SmfGallery::staticMetaObject
-	??_ESmfLyricsService@@UAE@I@Z @ 445 NONAME ; SmfLyricsService::~SmfLyricsService(unsigned int)
-	?metaObject@SmfRelationMgr@@UBEPBUQMetaObject@@XZ @ 446 NONAME ; struct QMetaObject const * SmfRelationMgr::metaObject(void) const
-	??0SmfPictureAlbum@@QAE@XZ @ 447 NONAME ; SmfPictureAlbum::SmfPictureAlbum(void)
-	?extension@SmfPlaylist@@QBE?AV?$QMap@VQString@@VQVariant@@@@XZ @ 448 NONAME ; class QMap<class QString, class QVariant> SmfPlaylist::extension(void) const
-	?qt_metacast@SmfContactFetcher@@UAEPAXPBD@Z @ 449 NONAME ; void * SmfContactFetcher::qt_metacast(char const *)
-	?trackInfo@SmfMusicSearch@@QAEXVSmfMusicFingerPrint@@HH@Z @ 450 NONAME ; void SmfMusicSearch::trackInfo(class SmfMusicFingerPrint, int, int)
-	?interestInfo@SmfMusicProfile@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 451 NONAME ; class QList<class SmfTrackInfo> SmfMusicProfile::interestInfo(void) const
-	?tr@SmfLyricsService@@SA?AVQString@@PBD0H@Z @ 452 NONAME ; class QString SmfLyricsService::tr(char const *, char const *, int)
-	?staticMetaObject@SmfMusicSearch@@2UQMetaObject@@B @ 453 NONAME ; struct QMetaObject const SmfMusicSearch::staticMetaObject
-	?setSupportedInterfaces@SmfProvider@@QAEXAAVQStringList@@@Z @ 454 NONAME ; void SmfProvider::setSupportedInterfaces(class QStringList &)
-	?id@SmfMusicProfile@@QBE?AVQString@@XZ @ 455 NONAME ; class QString SmfMusicProfile::id(void) const
-	??1SmfMusicRating@@QAE@XZ @ 456 NONAME ; SmfMusicRating::~SmfMusicRating(void)
-	?setPlayListTitle@SmfPlaylist@@QAEXABVQString@@@Z @ 457 NONAME ; void SmfPlaylist::setPlayListTitle(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactTimestamp@QtMobility@@@Z @ 458 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactTimestamp &)
-	?setDuration@SmfTrackInfo@@QAEXABVQTime@@@Z @ 459 NONAME ; void SmfTrackInfo::setDuration(class QTime const &)
-	?getInstance@SmfPluginUtil@@SAPAV1@XZ @ 460 NONAME ; class SmfPluginUtil * SmfPluginUtil::getInstance(void)
-	?subtitleAvailable@SmfLyricsService@@IAEXPAV?$QList@VSmfSubtitle@@@@W4SmfError@@USmfResultPage@@@Z @ 461 NONAME ; void SmfLyricsService::subtitleAvailable(class QList<class SmfSubtitle> *, enum SmfError, struct SmfResultPage)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfActivityObject@@@Z @ 462 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfActivityObject &)
-	?getProvider@SmfRelationItem@@QBE?AVSmfProvider@@XZ @ 463 NONAME ; class SmfProvider SmfRelationItem::getProvider(void) const
-	?setId@SmfSubtitle@@QAEXABVQString@@@Z @ 464 NONAME ; void SmfSubtitle::setId(class QString const &)
-	??1SmfMusicSearch@@UAE@XZ @ 465 NONAME ; SmfMusicSearch::~SmfMusicSearch(void)
-	?qt_metacast@SmfGallery@@UAEPAXPBD@Z @ 466 NONAME ; void * SmfGallery::qt_metacast(char const *)
-	?supportedInterfaces@SmfProvider@@QBE?AV?$QList@VQString@@@@XZ @ 467 NONAME ; class QList<class QString> SmfProvider::supportedInterfaces(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVQContactOnlineAccount@QtMobility@@@Z @ 468 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactOnlineAccount &)
-	?tr@SmfActivityFetcher@@SA?AVQString@@PBD0@Z @ 469 NONAME ; class QString SmfActivityFetcher::tr(char const *, char const *)
-	?setRating@SmfMusicRating@@QAEXABH@Z @ 470 NONAME ; void SmfMusicRating::setRating(int const &)
-	?subTypes@SmfContact@@QBE?AVQStringList@@XZ @ 471 NONAME ; class QStringList SmfContact::subTypes(void) const
-	?supportedFormats@SmfPostProvider@@QBE?AV?$QVector@VQTextFormat@@@@XZ @ 472 NONAME ; class QVector<class QTextFormat> SmfPostProvider::supportedFormats(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVQContactAnniversary@QtMobility@@@Z @ 473 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAnniversary const &)
-	?id@SmfTrackInfo@@QBE?AVQString@@XZ @ 474 NONAME ; class QString SmfTrackInfo::id(void) const
-	?setObjData@SmfActivityObject@@QAEXABVQVariant@@@Z @ 475 NONAME ; void SmfActivityObject::setObjData(class QVariant const &)
-	?qt_metacall@SmfActivityFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 476 NONAME ; int SmfActivityFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?searchNear@SmfContactFetcher@@QAE_NPAVSmfLocation@@W4SmfLocationSearchBoundary@@HH@Z @ 477 NONAME ; bool SmfContactFetcher::searchNear(class SmfLocation *, enum SmfLocationSearchBoundary, int, int)
-	?addToPlaylist@SmfPlaylistService@@QAEHVSmfPlaylist@@PAV?$QList@VSmfTrackInfo@@@@@Z @ 478 NONAME ; int SmfPlaylistService::addToPlaylist(class SmfPlaylist, class QList<class SmfTrackInfo> *)
-	?objData@SmfActivityObject@@QBE?AVQVariant@@XZ @ 479 NONAME ; class QVariant SmfActivityObject::objData(void) const
-	?trUtf8@SmfPlaylistService@@SA?AVQString@@PBD0@Z @ 480 NONAME ; class QString SmfPlaylistService::trUtf8(char const *, char const *)
-	?setTitle@SmfPictureAlbum@@QAEXABVQString@@@Z @ 481 NONAME ; void SmfPictureAlbum::setTitle(class QString const &)
-	?postComment@SmfGallery@@QAEXVSmfPicture@@VSmfComment@@@Z @ 482 NONAME ; void SmfGallery::postComment(class SmfPicture, class SmfComment)
-	?supportedLanguages@SmfProvider@@QBE?AVQStringList@@XZ @ 483 NONAME ; class QStringList SmfProvider::supportedLanguages(void) const
-	??0SmfPost@@QAE@ABV0@@Z @ 484 NONAME ; SmfPost::SmfPost(class SmfPost const &)
-	?getProvider@SmfGallery@@QAEPAVSmfProvider@@XZ @ 485 NONAME ; class SmfProvider * SmfGallery::getProvider(void)
-	?names@SmfArtists@@QBE?AVQStringList@@XZ @ 486 NONAME ; class QStringList SmfArtists::names(void) const
-	??1SmfContact@@QAE@XZ @ 487 NONAME ; SmfContact::~SmfContact(void)
-	?id@SmfLocation@@QBE?AVQString@@XZ @ 488 NONAME ; class QString SmfLocation::id(void) const
-	??_ESmfLyrics@@QAE@I@Z @ 489 NONAME ; SmfLyrics::~SmfLyrics(unsigned int)
-	?setVisibility@SmfPictureAlbum@@QAEXABW4SmfPictureVisibility@@@Z @ 490 NONAME ; void SmfPictureAlbum::setVisibility(enum SmfPictureVisibility const &)
-	?getProvider@SmfMusicSearch@@QAEPAVSmfProvider@@XZ @ 491 NONAME ; class SmfProvider * SmfMusicSearch::getProvider(void)
-	?errorString@SmfPluginUtil@@QBE?AVQString@@XZ @ 492 NONAME ; class QString SmfPluginUtil::errorString(void) const
-	?tr@SmfGallery@@SA?AVQString@@PBD0@Z @ 493 NONAME ; class QString SmfGallery::tr(char const *, char const *)
-	?staticMetaObject@SmfMusicEvents@@2UQMetaObject@@B @ 494 NONAME ; struct QMetaObject const SmfMusicEvents::staticMetaObject
-	?setLicense@SmfPlaylist@@QAEXABVQUrl@@@Z @ 495 NONAME ; void SmfPlaylist::setLicense(class QUrl const &)
-	?setTime@SmfActivityObject@@QAEXABVQDateTime@@@Z @ 496 NONAME ; void SmfActivityObject::setTime(class QDateTime const &)
-	??4SmfLyrics@@QAEAAV0@ABV0@@Z @ 497 NONAME ; class SmfLyrics & SmfLyrics::operator=(class SmfLyrics const &)
-	??4SmfActivityObject@@QAEAAV0@ABV0@@Z @ 498 NONAME ; class SmfActivityObject & SmfActivityObject::operator=(class SmfActivityObject const &)
-	??4SmfMusicProfile@@QAEAAV0@ABV0@@Z @ 499 NONAME ; class SmfMusicProfile & SmfMusicProfile::operator=(class SmfMusicProfile const &)
-	??4SmfGroup@@QAEAAV0@ABV0@@Z @ 500 NONAME ; class SmfGroup & SmfGroup::operator=(class SmfGroup const &)
-	?getProvider@SmfMusicService@@QAEPAVSmfProvider@@XZ @ 501 NONAME ; class SmfProvider * SmfMusicService::getProvider(void)
-	??0SmfLyricsService@@QAE@PAVSmfProvider@@@Z @ 502 NONAME ; SmfLyricsService::SmfLyricsService(class SmfProvider *)
-	?searchByContact@SmfRelationMgr@@QAE?AVQString@@VSmfContact@@@Z @ 503 NONAME ; class QString SmfRelationMgr::searchByContact(class SmfContact)
-	??0SmfContact@@QAE@PAVQObject@@@Z @ 504 NONAME ; SmfContact::SmfContact(class QObject *)
-	?setId@SmfUrl@@QAEXABVQString@@@Z @ 505 NONAME ; void SmfUrl::setId(class QString const &)
-	?qt_metacall@SmfRelationMgr@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 506 NONAME ; int SmfRelationMgr::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?setSupportedLanguages@SmfProvider@@QAEXAAVQStringList@@@Z @ 507 NONAME ; void SmfProvider::setSupportedLanguages(class QStringList &)
-	?setTitle@SmfPost@@QAEXABVQString@@@Z @ 508 NONAME ; void SmfPost::setTitle(class QString const &)
-	??0SmfTrackInfo@@QAE@XZ @ 509 NONAME ; SmfTrackInfo::SmfTrackInfo(void)
-	?setType@SmfUrl@@QAEXABVQString@@@Z @ 510 NONAME ; void SmfUrl::setType(class QString const &)
-	??0SmfActivityEntry@@QAE@XZ @ 511 NONAME ; SmfActivityEntry::SmfActivityEntry(void)
-	?createParameterString@SmfPluginUtil@@QAE?AVQByteArray@@ABVQString@@W4Operation@QNetworkAccessManager@@ABV2@2W4SmfSignatureMethod@@ABV?$QMultiMap@VQByteArray@@V1@@@W4SmfParsingMode@@@Z @ 512 NONAME ; class QByteArray SmfPluginUtil::createParameterString(class QString const &, enum QNetworkAccessManager::Operation, class QByteArray const &, class QByteArray const &, enum SmfSignatureMethod, class QMultiMap<class QByteArray, class QByteArray> const &, enum SmfParsingMode)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfAlbum@@@Z @ 513 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfAlbum &)
-	?length@SmfUrl@@QBE?AVQString@@XZ @ 514 NONAME ; class QString SmfUrl::length(void) const
-	?qt_metacall@SmfMusicEvents@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 515 NONAME ; int SmfMusicEvents::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicFingerPrint@@@Z @ 516 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicFingerPrint const &)
-	?details@SmfActivityEntry@@QBE?AVSmfPost@@XZ @ 517 NONAME ; class SmfPost SmfActivityEntry::details(void) const
-	?lyrics@SmfLyrics@@QBE?AVQByteArray@@XZ @ 518 NONAME ; class QByteArray SmfLyrics::lyrics(void) const
-	?setId@SmfLyrics@@QAEXABVQString@@@Z @ 519 NONAME ; void SmfLyrics::setId(class QString const &)
-	?id@SmfAlbum@@QBE?AVQString@@XZ @ 520 NONAME ; class QString SmfAlbum::id(void) const
-	?thumbnail@SmfActivityObject@@QBE?AVQImage@@XZ @ 521 NONAME ; class QImage SmfActivityObject::thumbnail(void) const
-	??0SmfPost@@QAE@VSmfContact@@VQString@@1VQImage@@VQUrl@@@Z @ 522 NONAME ; SmfPost::SmfPost(class SmfContact, class QString, class QString, class QImage, class QUrl)
-	??1SmfPost@@QAE@XZ @ 523 NONAME ; SmfPost::~SmfPost(void)
-	?members@SmfGroup@@QBE?AV?$QList@VSmfContact@@@@XZ @ 524 NONAME ; class QList<class SmfContact> SmfGroup::members(void) const
-	?followersListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 525 NONAME ; void SmfContactFetcher::followersListAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	?setIndex@SmfRelationItem@@QAEXI@Z @ 526 NONAME ; void SmfRelationItem::setIndex(unsigned int)
-	?searchContactFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 527 NONAME ; void SmfContactFetcher::searchContactFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfProvider@@@Z @ 528 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfProvider const &)
-	?posts@SmfPostProvider@@QAEXPAVSmfContact@@HH@Z @ 529 NONAME ; void SmfPostProvider::posts(class SmfContact *, int, int)
-	?visibility@SmfPicture@@QBE?AW4SmfPictureVisibility@@XZ @ 530 NONAME ; enum SmfPictureVisibility SmfPicture::visibility(void) const
-	??_ESmfProvider@@QAE@I@Z @ 531 NONAME ; SmfProvider::~SmfProvider(unsigned int)
-	?downloadFlag@SmfPicture@@QAE_NXZ @ 532 NONAME ; bool SmfPicture::downloadFlag(void)
-	?tr@SmfPostProvider@@SA?AVQString@@PBD0@Z @ 533 NONAME ; class QString SmfPostProvider::tr(char const *, char const *)
-	?postedDate@SmfPictureAlbum@@QBE?AVQDateTime@@XZ @ 534 NONAME ; class QDateTime SmfPictureAlbum::postedDate(void) const
-	??0SmfTrackInfo@@QAE@ABV0@@Z @ 535 NONAME ; SmfTrackInfo::SmfTrackInfo(class SmfTrackInfo const &)
-	?getAllRelations@SmfRelationMgr@@QAE?AV?$QList@VQString@@@@XZ @ 536 NONAME ; class QList<class QString> SmfRelationMgr::getAllRelations(void)
-	?metaObject@SmfPlaylistService@@UBEPBUQMetaObject@@XZ @ 537 NONAME ; struct QMetaObject const * SmfPlaylistService::metaObject(void) const
-	?playlistsListAvailable@SmfPlaylistService@@IAEXPAV?$QList@VSmfPlaylist@@@@W4SmfError@@USmfResultPage@@@Z @ 538 NONAME ; void SmfPlaylistService::playlistsListAvailable(class QList<class SmfPlaylist> *, enum SmfError, struct SmfResultPage)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactEmailAddress@QtMobility@@@Z @ 539 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactEmailAddress const &)
-	??0SmfRelationItem@@QAE@PAVSmfProvider@@@Z @ 540 NONAME ; SmfRelationItem::SmfRelationItem(class SmfProvider *)
-	??1SmfGroup@@QAE@XZ @ 541 NONAME ; SmfGroup::~SmfGroup(void)
-	?getStaticMetaObject@SmfPlaylistService@@SAABUQMetaObject@@XZ @ 542 NONAME ; struct QMetaObject const & SmfPlaylistService::getStaticMetaObject(void)
-	?addComment@SmfPictureAlbum@@QAEXABVSmfComment@@@Z @ 543 NONAME ; void SmfPictureAlbum::addComment(class SmfComment const &)
-	?tracks@SmfMusicSearch@@QAEXVSmfTrackInfo@@HH@Z @ 544 NONAME ; void SmfMusicSearch::tracks(class SmfTrackInfo, int, int)
-	?license@SmfPlaylist@@QBE?AVQUrl@@XZ @ 545 NONAME ; class QUrl SmfPlaylist::license(void) const
-	?setUserEvents@SmfMusicProfile@@QAEXABV?$QList@VSmfEvent@@@@@Z @ 546 NONAME ; void SmfMusicProfile::setUserEvents(class QList<class SmfEvent> const &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactTimestamp@QtMobility@@@Z @ 547 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactTimestamp const &)
-	?comments@SmfTrackInfo@@QBE?AV?$QList@VSmfComment@@@@XZ @ 548 NONAME ; class QList<class SmfComment> SmfTrackInfo::comments(void) const
-	?setArtists@SmfTrackInfo@@QAEXABVSmfArtists@@@Z @ 549 NONAME ; void SmfTrackInfo::setArtists(class SmfArtists const &)
-	?setDescription@SmfProvider@@QAEXAAVQString@@@Z @ 550 NONAME ; void SmfProvider::setDescription(class QString &)
-	?setComments@SmfPlaylist@@QAEXABV?$QList@VSmfComment@@@@@Z @ 551 NONAME ; void SmfPlaylist::setComments(class QList<class SmfComment> const &)
-	?Delete@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@@Z @ 552 NONAME ; enum SmfError SmfRelationMgr::Delete(class QString &)
-	?comments@SmfPlaylist@@QBE?AV?$QList@VSmfComment@@@@XZ @ 553 NONAME ; class QList<class SmfComment> SmfPlaylist::comments(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVQContactThumbnail@QtMobility@@@Z @ 554 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactThumbnail &)
-	??1SmfContactFetcher@@UAE@XZ @ 555 NONAME ; SmfContactFetcher::~SmfContactFetcher(void)
-	?activities@SmfActivityEntry@@QBE?AV?$QList@VSmfActivityObject@@@@XZ @ 556 NONAME ; class QList<class SmfActivityObject> SmfActivityEntry::activities(void) const
-	?setInfo@SmfPlaylist@@QAEXABVQUrl@@@Z @ 557 NONAME ; void SmfPlaylist::setInfo(class QUrl const &)
-	??1SmfLyricsService@@UAE@XZ @ 558 NONAME ; SmfLyricsService::~SmfLyricsService(void)
-	?userInfoAvailable@SmfMusicService@@IAEXPAVSmfMusicProfile@@W4SmfError@@@Z @ 559 NONAME ; void SmfMusicService::userInfoAvailable(class SmfMusicProfile *, enum SmfError)
-	??_ESmfActivityEntry@@QAE@I@Z @ 560 NONAME ; SmfActivityEntry::~SmfActivityEntry(unsigned int)
-	??0SmfMusicFingerPrint@@QAE@ABV0@@Z @ 561 NONAME ; SmfMusicFingerPrint::SmfMusicFingerPrint(class SmfMusicFingerPrint const &)
-	?id@SmfPictureAlbum@@QBE?AVQString@@XZ @ 562 NONAME ; class QString SmfPictureAlbum::id(void) const
-	?time@SmfActivityObject@@QBE?AVQDateTime@@XZ @ 563 NONAME ; class QDateTime SmfActivityObject::time(void) const
-	??1SmfArtists@@QAE@XZ @ 564 NONAME ; SmfArtists::~SmfArtists(void)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfUrl@@@Z @ 565 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfUrl const &)
-	??4SmfLocation@@QAEAAV0@ABV0@@Z @ 566 NONAME ; class SmfLocation & SmfLocation::operator=(class SmfLocation const &)
-	?setOwner@SmfPost@@QAEXABVSmfContact@@@Z @ 567 NONAME ; void SmfPost::setOwner(class SmfContact const &)
-	?comments@SmfPictureAlbum@@QBE?AV?$QList@VSmfComment@@@@XZ @ 568 NONAME ; class QList<class SmfComment> SmfPictureAlbum::comments(void) const
-	??6@YAAAVQDataStream@@AAV0@ABVSmfLyrics@@@Z @ 569 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfLyrics const &)
-	?hreflang@SmfUrl@@QBE?AVQString@@XZ @ 570 NONAME ; class QString SmfUrl::hreflang(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicProfile@@@Z @ 571 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicProfile &)
-	??1SmfPicture@@QAE@XZ @ 572 NONAME ; SmfPicture::~SmfPicture(void)
-	?friendsActivities@SmfActivityFetcher@@QAEXABVSmfContact@@HH@Z @ 573 NONAME ; void SmfActivityFetcher::friendsActivities(class SmfContact const &, int, int)
-	??4SmfPictureAlbum@@QAEAAV0@ABV0@@Z @ 574 NONAME ; class SmfPictureAlbum & SmfPictureAlbum::operator=(class SmfPictureAlbum const &)
-	??1SmfUrl@@QAE@XZ @ 575 NONAME ; SmfUrl::~SmfUrl(void)
-	?setId@SmfPlaylist@@QAEXABVQString@@@Z @ 576 NONAME ; void SmfPlaylist::setId(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfPictureAlbum@@@Z @ 577 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPictureAlbum &)
-	??0SmfAlbum@@QAE@ABV0@@Z @ 578 NONAME ; SmfAlbum::SmfAlbum(class SmfAlbum const &)
-	?setAttribution@SmfPlaylist@@QAEXABV?$QList@VQUrl@@@@@Z @ 579 NONAME ; void SmfPlaylist::setAttribution(class QList<class QUrl> const &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfSubtitle@@@Z @ 580 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfSubtitle const &)
-	??1SmfProvider@@QAE@XZ @ 581 NONAME ; SmfProvider::~SmfProvider(void)
-	??5@YAAAVQDataStream@@AAV0@AAVQContactPhoneNumber@QtMobility@@@Z @ 582 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactPhoneNumber &)
-	?metaObject@SmfGallery@@UBEPBUQMetaObject@@XZ @ 583 NONAME ; struct QMetaObject const * SmfGallery::metaObject(void) const
-	??_ESmfPostProvider@@UAE@I@Z @ 584 NONAME ; SmfPostProvider::~SmfPostProvider(unsigned int)
-	??_ESmfActivityObject@@QAE@I@Z @ 585 NONAME ; SmfActivityObject::~SmfActivityObject(unsigned int)
-	??_ESmfPlaylist@@QAE@I@Z @ 586 NONAME ; SmfPlaylist::~SmfPlaylist(unsigned int)
-	?getProvider@SmfPostProvider@@QBEPAVSmfProvider@@XZ @ 587 NONAME ; class SmfProvider * SmfPostProvider::getProvider(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicRating@@@Z @ 588 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicRating &)
-	?getProvider@SmfActivityFetcher@@QAEPAVSmfProvider@@XZ @ 589 NONAME ; class SmfProvider * SmfActivityFetcher::getProvider(void)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfRelationItem@@@Z @ 590 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfRelationItem const &)
-	?groupListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfGroup@@@@W4SmfError@@USmfResultPage@@@Z @ 591 NONAME ; void SmfContactFetcher::groupListAvailable(class QList<class SmfGroup> *, enum SmfError, struct SmfResultPage)
-	?musicFingerPrint@SmfMusicFingerPrint@@QBE?AVQByteArray@@XZ @ 592 NONAME ; class QByteArray SmfMusicFingerPrint::musicFingerPrint(void) const
-	?qt_metacall@SmfPlaylistService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 593 NONAME ; int SmfPlaylistService::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?events@SmfMusicEvents@@QAEXVSmfLocation@@HH@Z @ 594 NONAME ; void SmfMusicEvents::events(class SmfLocation, int, int)
-	??0SmfComment@@QAE@ABV0@@Z @ 595 NONAME ; SmfComment::SmfComment(class SmfComment const &)
-	??0SmfProvider@@QAE@ABV0@@Z @ 596 NONAME ; SmfProvider::SmfProvider(class SmfProvider const &)
-	?setActionName@SmfActivityEntry@@QAEXW4SmfActivityVerb@@@Z @ 597 NONAME ; void SmfActivityEntry::setActionName(enum SmfActivityVerb)
-	?trUtf8@SmfMusicService@@SA?AVQString@@PBD0H@Z @ 598 NONAME ; class QString SmfMusicService::trUtf8(char const *, char const *, int)
-	??0SmfPicture@@QAE@ABV0@@Z @ 599 NONAME ; SmfPicture::SmfPicture(class SmfPicture const &)
-	?city@SmfLocation@@QBE?AVQString@@XZ @ 600 NONAME ; class QString SmfLocation::city(void) const
-	??4SmfArtists@@QAEAAV0@ABV0@@Z @ 601 NONAME ; class SmfArtists & SmfArtists::operator=(class SmfArtists const &)
-	??1SmfMusicFingerPrint@@QAE@XZ @ 602 NONAME ; SmfMusicFingerPrint::~SmfMusicFingerPrint(void)
-	??0SmfMusicFingerPrint@@QAE@XZ @ 603 NONAME ; SmfMusicFingerPrint::SmfMusicFingerPrint(void)
-	?qt_metacall@SmfPostProvider@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 604 NONAME ; int SmfPostProvider::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0SmfMusicSearch@@QAE@PAVSmfProvider@@@Z @ 605 NONAME ; SmfMusicSearch::SmfMusicSearch(class SmfProvider *)
-	?setTitle@SmfUrl@@QAEXABVQString@@@Z @ 606 NONAME ; void SmfUrl::setTitle(class QString const &)
-	?getStaticMetaObject@SmfMusicService@@SAABUQMetaObject@@XZ @ 607 NONAME ; struct QMetaObject const & SmfMusicService::getStaticMetaObject(void)
-	?value@SmfContact@@QBE?AVQVariant@@ABVQString@@@Z @ 608 NONAME ; class QVariant SmfContact::value(class QString const &) const
-	?setArtists@SmfAlbum@@QAEXABVSmfArtists@@@Z @ 609 NONAME ; void SmfAlbum::setArtists(class SmfArtists const &)
-	?picturesAvailable@SmfGallery@@IAEXPAV?$QList@VSmfPicture@@@@W4SmfError@@USmfResultPage@@@Z @ 610 NONAME ; void SmfGallery::picturesAvailable(class QList<class SmfPicture> *, enum SmfError, struct SmfResultPage)
-	?setTicketUrl@SmfEvent@@QAEXABVQUrl@@@Z @ 611 NONAME ; void SmfEvent::setTicketUrl(class QUrl const &)
-	?maxRating@SmfMusicRating@@QBEHXZ @ 612 NONAME ; int SmfMusicRating::maxRating(void) const
-	?setPostedDate@SmfPictureAlbum@@QAEXABVQDateTime@@@Z @ 613 NONAME ; void SmfPictureAlbum::setPostedDate(class QDateTime const &)
-	?version@SmfPlaylist@@QBE?AVQString@@XZ @ 614 NONAME ; class QString SmfPlaylist::version(void) const
-	??1SmfLocation@@QAE@XZ @ 615 NONAME ; SmfLocation::~SmfLocation(void)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactId@QtMobility@@@Z @ 616 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactId const &)
-	??0SmfLyrics@@QAE@ABV0@@Z @ 617 NONAME ; SmfLyrics::SmfLyrics(class SmfLyrics const &)
-	??4SmfSubtitle@@QAEAAV0@ABV0@@Z @ 618 NONAME ; class SmfSubtitle & SmfSubtitle::operator=(class SmfSubtitle const &)
-	?caption@SmfActivityObject@@QBE?AVQString@@XZ @ 619 NONAME ; class QString SmfActivityObject::caption(void) const
-	??0SmfActivityObject@@QAE@ABV0@@Z @ 620 NONAME ; SmfActivityObject::SmfActivityObject(class SmfActivityObject const &)
-	?getProvider@SmfPlaylistService@@QAEPAVSmfProvider@@XZ @ 621 NONAME ; class SmfProvider * SmfPlaylistService::getProvider(void)
-	??4SmfEvent@@QAEAAV0@ABV0@@Z @ 622 NONAME ; class SmfEvent & SmfEvent::operator=(class SmfEvent const &)
-	?getStaticMetaObject@SmfGallery@@SAABUQMetaObject@@XZ @ 623 NONAME ; struct QMetaObject const & SmfGallery::getStaticMetaObject(void)
-	?setLink@SmfActivityObject@@QAEXABVQString@@@Z @ 624 NONAME ; void SmfActivityObject::setLink(class QString const &)
-	?setHhreflang@SmfUrl@@QAEXABVQString@@@Z @ 625 NONAME ; void SmfUrl::setHhreflang(class QString const &)
-	?userinfo@SmfMusicService@@QAEXXZ @ 626 NONAME ; void SmfMusicService::userinfo(void)
-	?venue@SmfEvent@@QBE?AVSmfLocation@@XZ @ 627 NONAME ; class SmfLocation SmfEvent::venue(void) const
-	??0SmfSubtitle@@QAE@ABV0@@Z @ 628 NONAME ; SmfSubtitle::SmfSubtitle(class SmfSubtitle const &)
-	?setApplicationUrl@SmfProvider@@QAEXAAVQUrl@@@Z @ 629 NONAME ; void SmfProvider::setApplicationUrl(class QUrl &)
-	?setServiceIcon@SmfProvider@@QAEXAAVQImage@@@Z @ 630 NONAME ; void SmfProvider::setServiceIcon(class QImage &)
-	?info@SmfPlaylist@@QBE?AVQUrl@@XZ @ 631 NONAME ; class QUrl SmfPlaylist::info(void) const
-	?tr@SmfContactFetcher@@SA?AVQString@@PBD0H@Z @ 632 NONAME ; class QString SmfContactFetcher::tr(char const *, char const *, int)
-	?setLyrics@SmfLyrics@@QAEXABVQByteArray@@@Z @ 633 NONAME ; void SmfLyrics::setLyrics(class QByteArray const &)
-	?setMetadata@SmfPlaylist@@QAEXABV?$QMap@VQString@@VQVariant@@@@@Z @ 634 NONAME ; void SmfPlaylist::setMetadata(class QMap<class QString, class QVariant> const &)
-	?remove@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@PBVSmfContact@@@Z @ 635 NONAME ; enum SmfError SmfRelationMgr::remove(class QString &, class SmfContact const *)
-	?description@SmfGallery@@QAE?AVQString@@AAVSmfPicture@@@Z @ 636 NONAME ; class QString SmfGallery::description(class SmfPicture &)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactGuid@QtMobility@@@Z @ 637 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGuid const &)
-	?picture@SmfPicture@@QBE?AVQImage@@XZ @ 638 NONAME ; class QImage SmfPicture::picture(void) const
-	?tr@SmfContactFetcher@@SA?AVQString@@PBD0@Z @ 639 NONAME ; class QString SmfContactFetcher::tr(char const *, char const *)
-	?id@SmfActivityEntry@@QBE?AVQString@@XZ @ 640 NONAME ; class QString SmfActivityEntry::id(void) const
-	?setHref@SmfUrl@@QAEXABVQUrl@@@Z @ 641 NONAME ; void SmfUrl::setHref(class QUrl const &)
-	?setRating@SmfTrackInfo@@QAEXABVSmfMusicRating@@@Z @ 642 NONAME ; void SmfTrackInfo::setRating(class SmfMusicRating const &)
-	?setContent@SmfActivityObject@@QAEXABVQString@@@Z @ 643 NONAME ; void SmfActivityObject::setContent(class QString const &)
-	?street@SmfLocation@@QBE?AVQString@@XZ @ 644 NONAME ; class QString SmfLocation::street(void) const
-	?filtered@SmfActivityFetcher@@QAEXV?$QList@W4SmfActivityObjectType@@@@HH@Z @ 645 NONAME ; void SmfActivityFetcher::filtered(class QList<enum SmfActivityObjectType>, int, int)
-	?setId@SmfTrackInfo@@QAEXABVQString@@@Z @ 646 NONAME ; void SmfTrackInfo::setId(class QString const &)
-	?staticMetaObject@SmfContactFetcher@@2UQMetaObject@@B @ 647 NONAME ; struct QMetaObject const SmfContactFetcher::staticMetaObject
-	?title@SmfActivityEntry@@QBE?AVSmfPost@@XZ @ 648 NONAME ; class SmfPost SmfActivityEntry::title(void) const
-	??0SmfLyrics@@QAE@XZ @ 649 NONAME ; SmfLyrics::SmfLyrics(void)
-	??6@YAAAVQDataStream@@AAV0@ABVQContactGender@QtMobility@@@Z @ 650 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGender const &)
-	?rel@SmfUrl@@QBE?AVQString@@XZ @ 651 NONAME ; class QString SmfUrl::rel(void) const
-	?title@SmfPost@@QBE?AVQString@@XZ @ 652 NONAME ; class QString SmfPost::title(void) const
-	?searchById@SmfRelationMgr@@QAE?AVSmfRelationItem@@ABVQString@@@Z @ 653 NONAME ; class SmfRelationItem SmfRelationMgr::searchById(class QString const &)
-	?setExtension@SmfPlaylist@@QAEXABV?$QMap@VQString@@VQVariant@@@@@Z @ 654 NONAME ; void SmfPlaylist::setExtension(class QMap<class QString, class QVariant> const &)
-	?trUtf8@SmfMusicSearch@@SA?AVQString@@PBD0@Z @ 655 NONAME ; class QString SmfMusicSearch::trUtf8(char const *, char const *)
-	?name@SmfLocation@@QBE?AVQString@@XZ @ 656 NONAME ; class QString SmfLocation::name(void) const
-	?text@SmfComment@@QBE?AVQString@@XZ @ 657 NONAME ; class QString SmfComment::text(void) const
-	?type@SmfUrl@@QBE?AVQString@@XZ @ 658 NONAME ; class QString SmfUrl::type(void) const
-	??5@YAAAVQDataStream@@AAV0@AAVQContactGeoLocation@QtMobility@@@Z @ 659 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGeoLocation &)
-	?qt_metacast@SmfRelationMgr@@UAEPAXPBD@Z @ 660 NONAME ; void * SmfRelationMgr::qt_metacast(char const *)
-	?trUtf8@SmfMusicEvents@@SA?AVQString@@PBD0H@Z @ 661 NONAME ; class QString SmfMusicEvents::trUtf8(char const *, char const *, int)
-	??1SmfLyrics@@QAE@XZ @ 662 NONAME ; SmfLyrics::~SmfLyrics(void)
-	??0SmfAlbum@@QAE@XZ @ 663 NONAME ; SmfAlbum::SmfAlbum(void)
-	??_ESmfPlaylistService@@UAE@I@Z @ 664 NONAME ; SmfPlaylistService::~SmfPlaylistService(unsigned int)
-	?metaObject@SmfPostProvider@@UBEPBUQMetaObject@@XZ @ 665 NONAME ; struct QMetaObject const * SmfPostProvider::metaObject(void) const
-	?setVenue@SmfEvent@@QAEXABVSmfLocation@@@Z @ 666 NONAME ; void SmfEvent::setVenue(class SmfLocation const &)
-	?search@SmfContactFetcher@@QAEXPAVSmfContact@@HH@Z @ 667 NONAME ; void SmfContactFetcher::search(class SmfContact *, int, int)
-	??_ESmfMusicService@@UAE@I@Z @ 668 NONAME ; SmfMusicService::~SmfMusicService(unsigned int)
-	?addKeywords@SmfPictureAlbum@@QAEXABVQStringList@@@Z @ 669 NONAME ; void SmfPictureAlbum::addKeywords(class QStringList const &)
-	?setTitle@SmfPicture@@QAEXABVQString@@@Z @ 670 NONAME ; void SmfPicture::setTitle(class QString const &)
-	??5@YAAAVQDataStream@@AAV0@AAVSmfLyrics@@@Z @ 671 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfLyrics &)
-	?setUrl@SmfPost@@QAEXAAVQUrl@@@Z @ 672 NONAME ; void SmfPost::setUrl(class QUrl &)
-	??6@YAAAVQDataStream@@AAV0@ABVSmfAlbum@@@Z @ 673 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfAlbum const &)
-	?setDuration@SmfSubtitle@@QAEXABN@Z @ 674 NONAME ; void SmfSubtitle::setDuration(double const &)
-	?visibility@SmfPictureAlbum@@QBE?AW4SmfPictureVisibility@@XZ @ 675 NONAME ; enum SmfPictureVisibility SmfPictureAlbum::visibility(void) const
-	??0SmfMusicProfile@@QAE@ABV0@@Z @ 676 NONAME ; SmfMusicProfile::SmfMusicProfile(class SmfMusicProfile const &)
-	?setReleaseYear@SmfSubtitle@@QAEXABVQDateTime@@@Z @ 677 NONAME ; void SmfSubtitle::setReleaseYear(class QDateTime const &)
-	?targetObj@SmfActivityEntry@@QBE?AVSmfActivityObject@@XZ @ 678 NONAME ; class SmfActivityObject SmfActivityEntry::targetObj(void) const
+	?friends@SmfContactFetcher@@QAE_NHH@Z @ 118 NONAME ; bool SmfContactFetcher::friends(int, int)
+	?tr@SmfActivityFetcher@@SA?AVQString@@PBD0H@Z @ 119 NONAME ; class QString SmfActivityFetcher::tr(char const *, char const *, int)
+	?resultsAvailable@SmfActivityFetcher@@IAEXPAV?$QList@VSmfActivityEntry@@@@W4SmfError@@USmfResultPage@@@Z @ 120 NONAME ; void SmfActivityFetcher::resultsAvailable(class QList<class SmfActivityEntry> *, enum SmfError, struct SmfResultPage)
+	??_ESmfPostProvider@@UAE@I@Z @ 121 NONAME ; SmfPostProvider::~SmfPostProvider(unsigned int)
+	?qt_metacall@SmfMusicService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 122 NONAME ; int SmfMusicService::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacall@SmfPlaylistService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 123 NONAME ; int SmfPlaylistService::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??_ESmfMusicService@@UAE@I@Z @ 124 NONAME ; SmfMusicService::~SmfMusicService(unsigned int)
+	?trUtf8@SmfActivityFetcher@@SA?AVQString@@PBD0@Z @ 125 NONAME ; class QString SmfActivityFetcher::trUtf8(char const *, char const *)
+	?tr@SmfPostProvider@@SA?AVQString@@PBD0H@Z @ 126 NONAME ; class QString SmfPostProvider::tr(char const *, char const *, int)
+	?customRequest@SmfLyricsService@@QAEXABHPAVQByteArray@@@Z @ 127 NONAME ; void SmfLyricsService::customRequest(int const &, class QByteArray *)
+	?customRequest@SmfMusicService@@QAEXABHPAVQByteArray@@@Z @ 128 NONAME ; void SmfMusicService::customRequest(int const &, class QByteArray *)
+	?Delete@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@@Z @ 129 NONAME ; enum SmfError SmfRelationMgr::Delete(class QString &)
+	?metaObject@SmfLyricsService@@UBEPBUQMetaObject@@XZ @ 130 NONAME ; struct QMetaObject const * SmfLyricsService::metaObject(void) const
+	??1SmfMusicEvents@@UAE@XZ @ 131 NONAME ; SmfMusicEvents::~SmfMusicEvents(void)
+	?trUtf8@SmfMusicEvents@@SA?AVQString@@PBD0H@Z @ 132 NONAME ; class QString SmfMusicEvents::trUtf8(char const *, char const *, int)
+	?getAll@SmfRelationMgr@@QAE?AV?$QList@VSmfRelationItem@@@@AAVQString@@@Z @ 133 NONAME ; class QList<class SmfRelationItem> SmfRelationMgr::getAll(class QString &)
+	?trUtf8@SmfGallery@@SA?AVQString@@PBD0H@Z @ 134 NONAME ; class QString SmfGallery::trUtf8(char const *, char const *, int)
+	?eventsAvailable@SmfMusicEvents@@IAEXPAV?$QList@VSmfEvent@@@@W4SmfError@@USmfResultPage@@@Z @ 135 NONAME ; void SmfMusicEvents::eventsAvailable(class QList<class SmfEvent> *, enum SmfError, struct SmfResultPage)
+	?tr@SmfMusicEvents@@SA?AVQString@@PBD0H@Z @ 136 NONAME ; class QString SmfMusicEvents::tr(char const *, char const *, int)
+	??_ESmfRelationMgr@@UAE@I@Z @ 137 NONAME ; SmfRelationMgr::~SmfRelationMgr(unsigned int)
+	?events@SmfMusicEvents@@QAEXVSmfLocation@@HH@Z @ 138 NONAME ; void SmfMusicEvents::events(class SmfLocation, int, int)
+	?followersListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 139 NONAME ; void SmfContactFetcher::followersListAvailable(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	?albums@SmfGallery@@QAEXVQStringList@@PAVSmfContact@@HH@Z @ 140 NONAME ; void SmfGallery::albums(class QStringList, class SmfContact *, int, int)
+	??0SmfRelationItem@@QAE@PAVSmfProvider@@@Z @ 141 NONAME ; SmfRelationItem::SmfRelationItem(class SmfProvider *)
+	?recommendations@SmfMusicSearch@@QAEXVSmfTrackInfo@@HH@Z @ 142 NONAME ; void SmfMusicSearch::recommendations(class SmfTrackInfo, int, int)
+	?search@SmfContactFetcher@@QAEXPAVSmfContact@@HH@Z @ 143 NONAME ; void SmfContactFetcher::search(class SmfContact *, int, int)
+	?customRequest@SmfMusicSearch@@QAEXABHPAVQByteArray@@@Z @ 144 NONAME ; void SmfMusicSearch::customRequest(int const &, class QByteArray *)
+	?userinfo@SmfMusicService@@QAEXXZ @ 145 NONAME ; void SmfMusicService::userinfo(void)
+	??0SmfPostProvider@@QAE@PAVSmfProvider@@@Z @ 146 NONAME ; SmfPostProvider::SmfPostProvider(class SmfProvider *)
+	?tr@SmfLyricsService@@SA?AVQString@@PBD0@Z @ 147 NONAME ; class QString SmfLyricsService::tr(char const *, char const *)
+	?getStaticMetaObject@SmfLyricsService@@SAABUQMetaObject@@XZ @ 148 NONAME ; struct QMetaObject const & SmfLyricsService::getStaticMetaObject(void)
+	?playlistUpdated@SmfPlaylistService@@IAEXW4SmfError@@@Z @ 149 NONAME ; void SmfPlaylistService::playlistUpdated(enum SmfError)
+	??_ESmfActivityFetcher@@UAE@I@Z @ 150 NONAME ; SmfActivityFetcher::~SmfActivityFetcher(unsigned int)
+	?trUtf8@SmfMusicService@@SA?AVQString@@PBD0H@Z @ 151 NONAME ; class QString SmfMusicService::trUtf8(char const *, char const *, int)
+	??1SmfActivityFetcher@@UAE@XZ @ 152 NONAME ; SmfActivityFetcher::~SmfActivityFetcher(void)
+	??_ESmfRelationItem@@QAE@I@Z @ 153 NONAME ; SmfRelationItem::~SmfRelationItem(unsigned int)
+	?tr@SmfContactFetcher@@SA?AVQString@@PBD0H@Z @ 154 NONAME ; class QString SmfContactFetcher::tr(char const *, char const *, int)
+	??0SmfMusicSearch@@QAE@PAVSmfProvider@@@Z @ 155 NONAME ; SmfMusicSearch::SmfMusicSearch(class SmfProvider *)
+	?picturesAvailable@SmfGallery@@IAEXPAV?$QList@VSmfPicture@@@@W4SmfError@@USmfResultPage@@@Z @ 156 NONAME ; void SmfGallery::picturesAvailable(class QList<class SmfPicture> *, enum SmfError, struct SmfResultPage)
+	?trUtf8@SmfLyricsService@@SA?AVQString@@PBD0H@Z @ 157 NONAME ; class QString SmfLyricsService::trUtf8(char const *, char const *, int)
+	?getProvider@SmfLyricsService@@ABEPAVSmfProvider@@XZ @ 158 NONAME ; class SmfProvider * SmfLyricsService::getProvider(void) const
+	?posts@SmfPostProvider@@QAEXPAVSmfContact@@HH@Z @ 159 NONAME ; void SmfPostProvider::posts(class SmfContact *, int, int)
+	??1SmfLyricsService@@UAE@XZ @ 160 NONAME ; SmfLyricsService::~SmfLyricsService(void)
+	??0SmfContactFetcher@@QAE@PAVSmfProvider@@PAVSmfContact@@@Z @ 161 NONAME ; SmfContactFetcher::SmfContactFetcher(class SmfProvider *, class SmfContact *)
+	?upload@SmfGallery@@QAEXPAV?$QList@VSmfPicture@@@@PAVSmfPictureAlbum@@@Z @ 162 NONAME ; void SmfGallery::upload(class QList<class SmfPicture> *, class SmfPictureAlbum *)
+	?qt_metacast@SmfMusicService@@UAEPAXPBD@Z @ 163 NONAME ; void * SmfMusicService::qt_metacast(char const *)
+	?postfinished@SmfMusicService@@IAEXW4SmfError@@@Z @ 164 NONAME ; void SmfMusicService::postfinished(enum SmfError)
+	?errorString@SmfClient@@QBE?AVQString@@ABW4SmfError@@@Z @ 165 NONAME ; class QString SmfClient::errorString(enum SmfError const &) const
+	?staticMetaObject@SmfPlaylistService@@2UQMetaObject@@B @ 166 NONAME ; struct QMetaObject const SmfPlaylistService::staticMetaObject
+	?getProvider@SmfContactFetcher@@ABEPAVSmfProvider@@XZ @ 167 NONAME ; class SmfProvider * SmfContactFetcher::getProvider(void) const
+	?trUtf8@SmfPlaylistService@@SA?AVQString@@PBD0H@Z @ 168 NONAME ; class QString SmfPlaylistService::trUtf8(char const *, char const *, int)
+	?groups@SmfContactFetcher@@QAE_NHH@Z @ 169 NONAME ; bool SmfContactFetcher::groups(int, int)
+	?getStaticMetaObject@SmfActivityFetcher@@SAABUQMetaObject@@XZ @ 170 NONAME ; struct QMetaObject const & SmfActivityFetcher::getStaticMetaObject(void)
+	?staticMetaObject@SmfPostProvider@@2UQMetaObject@@B @ 171 NONAME ; struct QMetaObject const SmfPostProvider::staticMetaObject
+	??0SmfRelationItem@@QAE@ABV0@@Z @ 172 NONAME ; SmfRelationItem::SmfRelationItem(class SmfRelationItem const &)
+	?sharePost@SmfPostProvider@@QAEXAAVSmfPost@@AAVSmfContact@@_N@Z @ 173 NONAME ; void SmfPostProvider::sharePost(class SmfPost &, class SmfContact &, bool)
+	?updatePost@SmfPostProvider@@QAEXAAVSmfPost@@@Z @ 174 NONAME ; void SmfPostProvider::updatePost(class SmfPost &)
+	?postFinished@SmfPostProvider@@IAEXW4SmfError@@@Z @ 175 NONAME ; void SmfPostProvider::postFinished(enum SmfError)
+	??_ESmfLyricsService@@UAE@I@Z @ 176 NONAME ; SmfLyricsService::~SmfLyricsService(unsigned int)
+	?customDataAvailable@SmfPlaylistService@@IAEXABHPAVQByteArray@@@Z @ 177 NONAME ; void SmfPlaylistService::customDataAvailable(int const &, class QByteArray *)
+	?getContact@SmfRelationItem@@QBE?AVSmfContact@@XZ @ 178 NONAME ; class SmfContact SmfRelationItem::getContact(void) const
+	?qt_metacall@SmfActivityFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 179 NONAME ; int SmfActivityFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?customDataAvailable@SmfPostProvider@@IAEXHPAVQByteArray@@@Z @ 180 NONAME ; void SmfPostProvider::customDataAvailable(int, class QByteArray *)
+	?postComment@SmfGallery@@QAEXVSmfPicture@@VSmfComment@@@Z @ 181 NONAME ; void SmfGallery::postComment(class SmfPicture, class SmfComment)
+	?staticMetaObject@SmfMusicService@@2UQMetaObject@@B @ 182 NONAME ; struct QMetaObject const SmfMusicService::staticMetaObject
+	?staticMetaObject@SmfMusicSearch@@2UQMetaObject@@B @ 183 NONAME ; struct QMetaObject const SmfMusicSearch::staticMetaObject
+	??_ESmfGallery@@UAE@I@Z @ 184 NONAME ; SmfGallery::~SmfGallery(unsigned int)
+	?trUtf8@SmfMusicService@@SA?AVQString@@PBD0@Z @ 185 NONAME ; class QString SmfMusicService::trUtf8(char const *, char const *)
+	?qt_metacast@SmfGallery@@UAEPAXPBD@Z @ 186 NONAME ; void * SmfGallery::qt_metacast(char const *)
+	?tr@SmfMusicService@@SA?AVQString@@PBD0@Z @ 187 NONAME ; class QString SmfMusicService::tr(char const *, char const *)
+	?playlistsOf@SmfPlaylistService@@QAEXPAVSmfMusicProfile@@HH@Z @ 188 NONAME ; void SmfPlaylistService::playlistsOf(class SmfMusicProfile *, int, int)
+	?metaObject@SmfMusicService@@UBEPBUQMetaObject@@XZ @ 189 NONAME ; struct QMetaObject const * SmfMusicService::metaObject(void) const
+	?trUtf8@SmfMusicSearch@@SA?AVQString@@PBD0H@Z @ 190 NONAME ; class QString SmfMusicSearch::trUtf8(char const *, char const *, int)
+	?tr@SmfMusicSearch@@SA?AVQString@@PBD0H@Z @ 191 NONAME ; class QString SmfMusicSearch::tr(char const *, char const *, int)
+	?getProvider@SmfMusicEvents@@ABEPAVSmfProvider@@XZ @ 192 NONAME ; class SmfProvider * SmfMusicEvents::getProvider(void) const
+	?description@SmfGallery@@QAEXAAVSmfPicture@@@Z @ 193 NONAME ; void SmfGallery::description(class SmfPicture &)
+	?postEvents@SmfMusicEvents@@QAEXV?$QList@VSmfEvent@@@@@Z @ 194 NONAME ; void SmfMusicEvents::postEvents(class QList<class SmfEvent>)
+	?customRequest@SmfPlaylistService@@QAEXABHPAVQByteArray@@@Z @ 195 NONAME ; void SmfPlaylistService::customRequest(int const &, class QByteArray *)
+	?tr@SmfPlaylistService@@SA?AVQString@@PBD0H@Z @ 196 NONAME ; class QString SmfPlaylistService::tr(char const *, char const *, int)
+	?postsAvailable@SmfPostProvider@@IAEXPAV?$QList@VSmfPost@@@@W4SmfError@@USmfResultPage@@@Z @ 197 NONAME ; void SmfPostProvider::postsAvailable(class QList<class SmfPost> *, enum SmfError, struct SmfResultPage)
+	??0SmfMusicEvents@@QAE@PAVSmfProvider@@@Z @ 198 NONAME ; SmfMusicEvents::SmfMusicEvents(class SmfProvider *)
+	??0SmfRelationMgr@@QAE@PAVQObject@@@Z @ 199 NONAME ; SmfRelationMgr::SmfRelationMgr(class QObject *)
+	??1SmfGallery@@UAE@XZ @ 200 NONAME ; SmfGallery::~SmfGallery(void)
+	??0SmfContactFetcher@@QAE@PAVSmfProvider@@@Z @ 201 NONAME ; SmfContactFetcher::SmfContactFetcher(class SmfProvider *)
+	?tr@SmfMusicSearch@@SA?AVQString@@PBD0@Z @ 202 NONAME ; class QString SmfMusicSearch::tr(char const *, char const *)
+	?postDirected@SmfPostProvider@@QAEXAAVSmfPost@@AAVSmfContact@@PAVSmfLocation@@@Z @ 203 NONAME ; void SmfPostProvider::postDirected(class SmfPost &, class SmfContact &, class SmfLocation *)
+	?subtitleAvailable@SmfLyricsService@@IAEXPAV?$QList@VSmfSubtitle@@@@W4SmfError@@USmfResultPage@@@Z @ 204 NONAME ; void SmfLyricsService::subtitleAvailable(class QList<class SmfSubtitle> *, enum SmfError, struct SmfResultPage)
+	?friendsActivities@SmfActivityFetcher@@QAEXABVSmfContact@@HH@Z @ 205 NONAME ; void SmfActivityFetcher::friendsActivities(class SmfContact const &, int, int)
+	?getProvider@SmfMusicService@@ABEPAVSmfProvider@@XZ @ 206 NONAME ; class SmfProvider * SmfMusicService::getProvider(void) const
+	?staticMetaObject@SmfContactFetcher@@2UQMetaObject@@B @ 207 NONAME ; struct QMetaObject const SmfContactFetcher::staticMetaObject
+	?searchNearFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 208 NONAME ; void SmfContactFetcher::searchNearFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	?searchContactFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 209 NONAME ; void SmfContactFetcher::searchContactFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	?postRating@SmfMusicService@@QAEXVSmfTrackInfo@@VSmfMusicRating@@@Z @ 210 NONAME ; void SmfMusicService::postRating(class SmfTrackInfo, class SmfMusicRating)
+	?metaObject@SmfContactFetcher@@UBEPBUQMetaObject@@XZ @ 211 NONAME ; struct QMetaObject const * SmfContactFetcher::metaObject(void) const
+	?searchInGroupFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 212 NONAME ; void SmfContactFetcher::searchInGroupFinished(class QList<class SmfContact> *, enum SmfError, struct SmfResultPage)
+	??1SmfRelationMgr@@UAE@XZ @ 213 NONAME ; SmfRelationMgr::~SmfRelationMgr(void)
+	?qt_metacast@SmfPostProvider@@UAEPAXPBD@Z @ 214 NONAME ; void * SmfPostProvider::qt_metacast(char const *)
+	?pictures@SmfGallery@@QAEXAAV?$QList@VSmfPictureAlbum@@@@HH@Z @ 215 NONAME ; void SmfGallery::pictures(class QList<class SmfPictureAlbum> &, int, int)
+	?selfActivities@SmfActivityFetcher@@QAEXHH@Z @ 216 NONAME ; void SmfActivityFetcher::selfActivities(int, int)
+	?getAllRelations@SmfRelationMgr@@QAE?AV?$QList@VQString@@@@XZ @ 217 NONAME ; class QList<class QString> SmfRelationMgr::getAllRelations(void)
+	?qt_metacast@SmfRelationMgr@@UAEPAXPBD@Z @ 218 NONAME ; void * SmfRelationMgr::qt_metacast(char const *)
+	?postComments@SmfMusicService@@QAEXVSmfTrackInfo@@VSmfComment@@@Z @ 219 NONAME ; void SmfMusicService::postComments(class SmfTrackInfo, class SmfComment)
+	?searchInfoAvailable@SmfMusicService@@IAEXPAV?$QList@VSmfMusicProfile@@@@W4SmfError@@USmfResultPage@@@Z @ 220 NONAME ; void SmfMusicService::searchInfoAvailable(class QList<class SmfMusicProfile> *, enum SmfError, struct SmfResultPage)
+	?setProvider@SmfRelationItem@@QAEXAAVSmfProvider@@@Z @ 221 NONAME ; void SmfRelationItem::setProvider(class SmfProvider &)
+	?setIndex@SmfRelationItem@@QAEXI@Z @ 222 NONAME ; void SmfRelationItem::setIndex(unsigned int)
+	?qt_metacast@SmfLyricsService@@UAEPAXPBD@Z @ 223 NONAME ; void * SmfLyricsService::qt_metacast(char const *)
+	?customRequest@SmfPostProvider@@QAEXABHPAVQByteArray@@@Z @ 224 NONAME ; void SmfPostProvider::customRequest(int const &, class QByteArray *)
+	?tr@SmfActivityFetcher@@SA?AVQString@@PBD0@Z @ 225 NONAME ; class QString SmfActivityFetcher::tr(char const *, char const *)
+	?tr@SmfMusicService@@SA?AVQString@@PBD0H@Z @ 226 NONAME ; class QString SmfMusicService::tr(char const *, char const *, int)
+	?postCurrentPlayingPlaylist@SmfPlaylistService@@QAEHVSmfPlaylist@@@Z @ 227 NONAME ; int SmfPlaylistService::postCurrentPlayingPlaylist(class SmfPlaylist)
+	??0SmfPlaylistService@@QAE@PAVSmfProvider@@@Z @ 228 NONAME ; SmfPlaylistService::SmfPlaylistService(class SmfProvider *)
+	?searchUser@SmfMusicService@@QAEXVSmfLocation@@HH@Z @ 229 NONAME ; void SmfMusicService::searchUser(class SmfLocation, int, int)
+	?metaObject@SmfRelationMgr@@UBEPBUQMetaObject@@XZ @ 230 NONAME ; struct QMetaObject const * SmfRelationMgr::metaObject(void) const
+	?tr@SmfMusicEvents@@SA?AVQString@@PBD0@Z @ 231 NONAME ; class QString SmfMusicEvents::tr(char const *, char const *)
+	?metaObject@SmfActivityFetcher@@UBEPBUQMetaObject@@XZ @ 232 NONAME ; struct QMetaObject const * SmfActivityFetcher::metaObject(void) const
+	?playlists@SmfPlaylistService@@QAEXHH@Z @ 233 NONAME ; void SmfPlaylistService::playlists(int, int)
+	?searchNear@SmfContactFetcher@@QAE_NPAVSmfLocation@@W4SmfLocationSearchBoundary@@HH@Z @ 234 NONAME ; bool SmfContactFetcher::searchNear(class SmfLocation *, enum SmfLocationSearchBoundary, int, int)
+	?playlistsListAvailable@SmfPlaylistService@@IAEXPAV?$QList@VSmfPlaylist@@@@W4SmfError@@USmfResultPage@@@Z @ 235 NONAME ; void SmfPlaylistService::playlistsListAvailable(class QList<class SmfPlaylist> *, enum SmfError, struct SmfResultPage)
+	?trackSearchAvailable@SmfMusicSearch@@IAEXPAV?$QList@VSmfTrackInfo@@@@W4SmfError@@USmfResultPage@@@Z @ 236 NONAME ; void SmfMusicSearch::trackSearchAvailable(class QList<class SmfTrackInfo> *, enum SmfError, struct SmfResultPage)
+	?qt_metacast@SmfContactFetcher@@UAEPAXPBD@Z @ 237 NONAME ; void * SmfContactFetcher::qt_metacast(char const *)
+	?upload@SmfGallery@@QAEXPAVSmfPicture@@PAVSmfPictureAlbum@@@Z @ 238 NONAME ; void SmfGallery::upload(class SmfPicture *, class SmfPictureAlbum *)
+	??_ESmfMusicEvents@@UAE@I@Z @ 239 NONAME ; SmfMusicEvents::~SmfMusicEvents(unsigned int)
+	?get@SmfRelationMgr@@QAEPAVSmfRelationItem@@AAVQString@@I@Z @ 240 NONAME ; class SmfRelationItem * SmfRelationMgr::get(class QString &, unsigned int)
+	?searchById@SmfRelationMgr@@QAEPAVSmfRelationItem@@ABVQString@@@Z @ 241 NONAME ; class SmfRelationItem * SmfRelationMgr::searchById(class QString const &)
+	?associate@SmfRelationMgr@@QAE?AW4SmfError@@AAVQString@@PBVSmfContact@@PAVSmfProvider@@@Z @ 242 NONAME ; enum SmfError SmfRelationMgr::associate(class QString &, class SmfContact const *, class SmfProvider *)
+	?postAppearence@SmfPostProvider@@QAE_NW4SmfAppearenceInfo@@ABVQString@@@Z @ 243 NONAME ; bool SmfPostProvider::postAppearence(enum SmfAppearenceInfo, class QString const &)
 
--- a/smf/smfservermodule/smfclient/client/client.pri	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-INCLUDEPATH += client \
-    ./
-
-PUBLIC_HEADERS += client/smfclient.h \
-    client/smfcontactfetcher.h \
-    client/smfpostprovider.h \
-    client/smfgallery.h \
-    client/smfrelationmgr.h \
-    client/smfmusic.h \
-    client/smfactivityfetcher.h
-    
-PRIVATE_HEADERS += client/smfclient_p.h \
-    client/smfcontactfetcher_p.h \
-    client/smfpostprovider_p.h \
-    client/smfgallery_p.h \
-    client/smfrelationmgr_p.h \
-    client/smfmusic_p.h \
-    client/smfactivityfetcher_p.h
-    
-SOURCES += client/smfrelationmgr_p.cpp \
-    client/smfrelationmgr.cpp \
-    client/smfgallery.cpp \
-    client/smfgallery_p.cpp \
-    client/smfpostprovider.cpp \
-    client/smfpostprovider_p.cpp \
-    client/smfmusic.cpp \
-    client/smfclient.cpp \
-    client/smfclient_p.cpp \
-    client/smfcontactfetcher.cpp \
-    client/smfcontactfetcher_p.cpp \
-    client/smfmusic_p.cpp \
-    client/smfactivityfetcher.cpp \
-    client/smfactivityfetcher_p.cpp 
-    
-symbian: { 
-    BLD_INF_RULES.prj_exports += client/smfclient.h
-    BLD_INF_RULES.prj_exports += client/smfclient_p.h
-    BLD_INF_RULES.prj_exports += client/smfcontactfetcher.h
-    BLD_INF_RULES.prj_exports += client/smfcontactfetcher_p.h
-    BLD_INF_RULES.prj_exports += client/smfclientsymbian.h
-    BLD_INF_RULES.prj_exports += client/smfclientsymbiansession.h
-    BLD_INF_RULES.prj_exports += client/smfpostprovider.h
-    BLD_INF_RULES.prj_exports += client/smfpostprovider_p.h
-    BLD_INF_RULES.prj_exports += client/smfgallery.h
-    BLD_INF_RULES.prj_exports += client/smfgallery_p.h
-    BLD_INF_RULES.prj_exports += client/smfrelationmgr.h
-    BLD_INF_RULES.prj_exports += client/smfrelationmgr_p.h
-    BLD_INF_RULES.prj_exports += client/smfmusic.h
-    BLD_INF_RULES.prj_exports += client/smfmusic_p.h
-    BLD_INF_RULES.prj_exports += client/smfactivityfetcher.h
-    BLD_INF_RULES.prj_exports += client/smfactivityfetcher_p.h
-	
-    PUBLIC_HEADERS += client/smfclientsymbian.h \
-        client/smfclientsymbiansession.h
-
-    SOURCES += client/smfclientsymbian.cpp
-}
-else { 
-    PRIVATE_HEADERS += client/smfclientqt.h
-    SOURCES += client/smfclientqt.cpp
-}
\ No newline at end of file
--- a/smf/smfservermodule/smfclient/client/smfactivityfetcher.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Description:
- * Represents activity in terms similar to standard activity stream http://activitystrea.ms/
- */
-
-#include "smfactivityfetcher.h"
-#include "smfactivityfetcher_p.h"
-
-SmfActivityFetcher::SmfActivityFetcher(SmfProvider *baseprovider)
-:m_baseProvider(baseprovider)
-{
-	  //creating private impl wrapper
-	  m_private = new SmfActivityFetcherPrivate(this);
-}
-
-SmfActivityFetcher::~SmfActivityFetcher()
-{
-	
-}
-
-void SmfActivityFetcher::selfActivities(int pageNum, int perPage)
-{
-	m_private->selfActivities(pageNum,perPage);
-}
-
-SmfProvider *SmfActivityFetcher::getProvider()
-{
-	return m_baseProvider;
-}
-
-void SmfActivityFetcher::filtered(QList<SmfActivityObjectType> filters, int pageNum, int perPage)
-{
-	m_private->filtered(filters,pageNum,perPage);
-}
-
-void SmfActivityFetcher::friendsActivities(const SmfContact & aFriend, int pageNum, int perPage)
-{
-	m_private->friendsActivities(aFriend,pageNum,perPage);
-}
--- a/smf/smfservermodule/smfclient/client/smfactivityfetcher.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Description:
- * Represents activity in terms similar to standard activity stream http://activitystrea.ms/
- */
-
-#ifndef SMFACTIVITYFETCHER_H_
-#define SMFACTIVITYFETCHER_H_
-
-#include <QObject>
-#include <QList>
-#include <qmobilityglobal.h>
-
-#include "smfglobal.h"
-#include "smfprovider.h"
-#include "smfcontact.h"
-#include "smfevent.h"
-#include "smfactions.h"
-
-typedef QList<SmfActivityEntry> SmfActivityEntryList;
-class SmfActivityFetcherPrivate;
-/**
- * @ingroup smf_client_group
- * Basic activity service ("org.symbian.smf.client.activity.fetcher")
- */
-class SMFCLIENT_EXPORT SmfActivityFetcher : public QObject
-	{
-	Q_OBJECT
-
-public:
-
-	/**
-	 * Constructs SmfActivity.
-	 * @param baseProvider The base provider info
-	 */
-	SmfActivityFetcher(SmfProvider* baseprovider = 0);
-
-	~SmfActivityFetcher();
-
-public slots:
-	/**
-	 * Emits signal resultsAvailable() when list of activities for the user is available 
-	 */
-	void selfActivities(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-
-	/**
-	 * Emits signal resultsAvailable() when list of activities for other contact  is available 
-	 */
-	void friendsActivities(const SmfContact& aFriend,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-	
-	/**
-	 * returns only those activities (self) which are from @arg filters
-	 */
-	void filtered(QList<SmfActivityObjectType> filters,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-
-	  /**
-	   * Gets the base provider info
-	   */
-	  SmfProvider* getProvider()  ;
-	
-signals:
-
-	/**
-	 * Signals availability of the result of the previous query
-	 */
-	void resultsAvailable(SmfActivityEntryList* entries, SmfError error, SmfResultPage resultPage);
-private:
-	SmfActivityFetcherPrivate* m_private;
-	SmfProvider* m_baseProvider;
-	friend class SmfActivityFetcherPrivate;
-	};
-
-SMF_SERVICE_NAME(SmfActivityFetcher, "org.symbian.smf.client.activity.fetcher\0.2")
-
-#endif /* SMFACTIVITYFETCHER_H_ */
--- a/smf/smfservermodule/smfclient/client/smfactivityfetcher_p.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Description:
- * 
- */
-#include <QDebug>
-#include "smfactivityfetcher_p.h"
-#ifdef Q_OS_SYMBIAN
-#include "smfclientsymbian.h"
-#else
-#include "SmfClientQt.h"
-#endif
-SmfActivityFetcherPrivate::SmfActivityFetcherPrivate(SmfActivityFetcher *activityFetcher)
-:m_activityFetcher(activityFetcher)
-	{
-	//private impl for symbian
-	#ifdef Q_OS_SYMBIAN
-	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
-	#else
-	//TODO:- Qt private impl
-	#endif
-	}
-
-SmfActivityFetcherPrivate::~SmfActivityFetcherPrivate()
-	{
-	if(m_SmfClientPrivate)
-		{
-		delete m_SmfClientPrivate;
-		m_SmfClientPrivate = NULL;
-		}
-	}
-
-void SmfActivityFetcherPrivate::friendsActivities(const SmfContact & aFriend, int pageNum, int perPage)
-	{
-	  m_xtraInfoSerialized.clear();
-	  m_baseProvider = m_activityFetcher->getProvider();
-	  //serialize start
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  //SmfProvider
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  
-	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-
-	  xtraInfoWrite<<aFriend;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-	  //serialize end
-	  QString intfName(activityFetcherInterface);
-	  int max = MaxSmfActivityEntrySize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfActivityFriendsActivities,max,m_xtraInfoSerialized);
-	}
-
-void SmfActivityFetcherPrivate::filtered(QList<SmfActivityObjectType> filters, int pageNum, int perPage)
-	{
-	  m_xtraInfoSerialized.clear();
-	  m_baseProvider = m_activityFetcher->getProvider();
-	  //serialize start
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  //SmfProvider
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  
-	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-
-	  xtraInfoWrite<<filters;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-	  //serialize end
-	  QString intfName(activityFetcherInterface);
-	  int max = MaxSmfActivityEntrySize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfActivityFiltered,max,m_xtraInfoSerialized);
-	}
-
-void SmfActivityFetcherPrivate::selfActivities(int pageNum, int perPage)
-	{
-	  m_xtraInfoSerialized.clear();
-	  m_baseProvider = m_activityFetcher->getProvider();
-	  //serialize start
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  //SmfProvider
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-
-	  m_xtraInfoFlag = 0;
-	  write<<m_xtraInfoFlag;
-	  //serialize end
-	  QString intfName(activityFetcherInterface);
-	  int max = MaxSmfActivityEntrySize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfActivitySelfActivity,max);
-	}
-void SmfActivityFetcherPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error)
-	{
-	qDebug()<<"SmfPostProviderPrivate::resultsAvailable";
-	qDebug()<<"opcode=";
-	qDebug()<<QString::number(opcode);
-	QDataStream reader(&result,QIODevice::ReadOnly);
-	//Now de-serialize it based on opcode
-	switch(opcode)
-		{
-		case SmfActivityFriendsActivities:
-		case SmfActivityFiltered:
-		case SmfActivitySelfActivity:
-			{
-			if(m_entries)
-				{
-				delete m_entries;
-				m_entries = NULL;
-				}
-
-			m_entries = new SmfActivityEntryList;
-			reader>>*(m_entries);
-			//not incorporating paging now
-			SmfResultPage page;
-
-			emit m_activityFetcher->resultsAvailable(m_entries,error,page);
-			}
-			break;
-		default:
-			Q_ASSERT_X(1,"SmfActivityFetcherPrivate::resultsAvailable","default case");
-		}
-	}
-
-
-
--- a/smf/smfservermodule/smfclient/client/smfactivityfetcher_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Description:
- * 
- */
-
-#ifndef SMFACTIVITYFETCHER_P_H_
-#define SMFACTIVITYFETCHER_P_H_
-
-#include <QObject>
-#include <QList>
-
-#include "smfactivityfetcher.h"
-#include "smfglobal.h"
-#include "smfprovider.h"
-#include "smfcontact.h"
-#include "smfevent.h"
-#include "smfactions.h"
-#include "smfobserver.h"
-
-#ifdef Q_OS_SYMBIAN
-class CSmfClientSymbian;	
-#else
-class SmfClientQt;
-#endif
-
-class SmfActivityFetcherPrivate : public smfObserver
-	{
-	Q_OBJECT
-
-public:
-
-	/**
-	 * Constructs SmfActivityFetcherPrivate.
-	 * 
-	 */
-	SmfActivityFetcherPrivate(SmfActivityFetcher* activityFetcher);
-
-	~SmfActivityFetcherPrivate();
-	/**
-	 * Emits signal resultsAvailable() when list of activities for the user is available 
-	 */
-	void selfActivities(int pageNum,int perPage);
-
-	/**
-	 * Emits signal resultsAvailable() when list of activities for other contact  is available 
-	 */
-	void friendsActivities(const SmfContact& aFriend,int pageNum,int perPage);
-	
-	/**
-	 * returns only those activities (self) which are from @arg filters
-	 */
-	void filtered(QList<SmfActivityObjectType> filters,int pageNum,int perPage);
-	/**
-	 * From smfObserver.
-	 * To notify availibility of asynchronous requests.
-	 * @param result Requested result, before using must check error param.
-	 * @param opcode Requested opcode, for which the result has arrived.
-	 * 
-	 */
-	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error);
-private:
-	  SmfActivityFetcher* m_activityFetcher;
-	  SmfActivityEntryList* m_entries;
-#ifdef Q_OS_SYMBIAN
-	  CSmfClientSymbian* m_SmfClientPrivate;
-	  friend class CSmfClientSymbian;
-#else
-	  SmfClientQt* m_SmfClientPrivate;
-	  friend class SmfClientQt;
-#endif
-	  int m_xtraInfoFlag;
-	  int m_pageInfoFlag;
-	  SmfProvider* m_baseProvider;
-	  //serialized byte array of provider+other info to be sent to the server
-	  //The order:- SmfProvider then params in order of their appearance in fn
-	  QByteArray m_serializedDataToServer;
-	  //serialized xtra info, order of serialization follows order of param
-	  QByteArray m_xtraInfoSerialized;
-	};
-
-#endif /* SMFACTIVITYFETCHER_P_H_ */
--- a/smf/smfservermodule/smfclient/client/smfclient.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-#include "smfclient.h"
-#include "smfclient_p.h"
-
-
-SmfClient::SmfClient()
-	{
-	writeLog("SmfClient::SmfClient");
-	//Create instance of the private wrapper
-	m_private = new SmfClientPrivate(this);
-	m_providerList = NULL;
-	}
-SmfClient::~SmfClient()
-	{
-	if(m_private)
-		{
-		delete m_private;
-		m_private = NULL;
-		}
-	}
-
-QList<SmfProvider>* SmfClient::GetServices(const QString& serviceName)
-	{
-	writeLog("SmfClient::GetServices");
-	if(m_providerList)
-		{
-		delete m_providerList;
-		m_providerList = NULL;
-		}
-	writeLog("Before m_private->GetServices");
-	//Getting the data synchronously
-	m_providerList = m_private->GetServices(serviceName);
-	writeLog("After m_private->GetServices");
-	return m_providerList;
-	}
-void SmfClient::writeLog(QString log) const
-	{
-#ifdef WRITE_LOG
-	QFile file("c:\\data\\SmfClientLogs.txt");
-    if (!file.open(QIODevice::Append | QIODevice::Text))
-	         ;
-    QTextStream out(&file);
-    out << log << "\n";
-    file.close();
-#endif
-	}
--- a/smf/smfservermodule/smfclient/client/smfclient.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfClient class provides a set of APIs to get list of service provider
- * who implement the given interface. Calling GetServices of the instance of this
- * class is mandatory before using any other interface.
- *
- */
-
-#ifndef SMFCLIENT_H
-#define SMFCLIENT_H
-
-#include <QObject>
-#include "smfclientglobal.h"
-
-#ifdef WRITE_LOG 
-#include <QFile>
-#include <QTextStream>
-#endif
-//Forward declarations
-class SmfProvider;
-class SmfClientPrivate;
-/**
- * @ingroup smf_client_group 
- * Interface for a base service provider. Other service provider classes contains 
- * implementation of this base class so that each has access to service provider 
- * information.
- * All of the functionality described here should be implemented by a service
- * specific plug-in object.
- */
-class  SMFCLIENT_EXPORT SmfClient
-{
-
-public:
-	/**
-	 * Constructs SmfClient
-	 */
-	SmfClient();
-	~SmfClient();
-  /**
-   * @param name of the service 
-   * @return service provider list
-   * 
-   * More overloaded APIs will be provided later
-   */
-  QList<SmfProvider>* GetServices(const QString& serviceName); 
-  //QList<SmfProvider>* GetServices(const QString& serviceName, const QString& providerName);
-  //QList<SmfProvider>* GetServices(const QString& serviceName, const SmfProvider& provider);
-
-	/**
-	* Debugging purpose only
-	*/
-	void writeLog(QString log)const;
-private:
-  /**
-   * Private impl wrapper.
-   */
-  SmfClientPrivate* m_private;
-  /**
-   * List of SmfProvider to be returned to the requested code
-   */
-  QList<SmfProvider>* m_providerList;
-  
-};
-
-
-#endif // SMFCLIENT_H
--- a/smf/smfservermodule/smfclient/client/smfclient_p.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-
-#include "smfclient_p.h"
-
-SmfClientPrivate::SmfClientPrivate(SmfClient* client):m_client(client)
-	{
-	m_client->writeLog("SmfClientPrivate::SmfClientPrivate");
-	//private impl for symbian
-	#ifdef Q_OS_SYMBIAN
-	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
-        #else
-        m_SmfClientPrivate = new SmfClientQt(this);
-	#endif
-
-	}
-QList<SmfProvider>* SmfClientPrivate::GetServices(const QString serviceName)
-	{
-	m_client->writeLog("SmfClientPrivate::GetServices");
-	m_baseProvider = NULL;
-	  
-	QString intfName(serviceName);
-  
-	m_providerSerialized.clear();
-	m_client->writeLog("Before m_SmfClientPrivate->sendRequest");
-	//Getting the serialized list of SmfProvider synchronously
-	//TODO:- Max size for SmfProviderList 1000
-	m_providerSerialized = m_SmfClientPrivate->sendRequest(intfName,SmfGetService,1000);
-	if(m_baseProvider)
-		{
-		delete m_baseProvider;
-		m_baseProvider = NULL;
-		}
-	m_baseProvider = new QList<SmfProvider>;
-	//De-serialize it into QList <SmfProvider>
-	QDataStream reader(&m_providerSerialized,QIODevice::ReadOnly);
-	reader>>*(m_baseProvider);
-	return m_baseProvider;
-	}
-//This api is not reqd as result will be synchronous
-void SmfClientPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error)
-	{
-
-	}
--- a/smf/smfservermodule/smfclient/client/smfclient_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-
-#ifndef SMFCLIENT_P_H_
-#define SMFCLIENT_P_H_
-
-#include "smfprovider.h"
-#include "smfobserver.h"
-#include <QObject>
-#include <QDateTime>
-#include <QStringList>
-#include "smfclient.h"
-#include "smfclientglobal.h"
-#include "smfglobal.h"
-#ifdef Q_OS_SYMBIAN
-#include "smfclientsymbian.h"
-#else
-#include "smfclientqt.h"
-#endif
-/**
- * Private Qt wrapper
- * Provided to accomodate diff facilities in diff platforms.
- * Uses Symbian client-server for Symbian
- * QDbus for linux
- * QLocalserver for rest of the platforms
- * Note:- only symbian client-server impl is provided at the moment
- */
-class SmfClientPrivate : public smfObserver
-{
-  Q_OBJECT
-
-public:
-
-  /**
-   * Constructs SmfClientPrivate
-   * @param client SmfClient instance, so that it can directly emit SmfClient's signal
-   */
-  SmfClientPrivate(SmfClient* client=0);
-  ~SmfClientPrivate(){};
-public:
-  /**
-   * Corresponds to SmfClient::GetServices(const QString )
-   */
-  QList<SmfProvider>* GetServices(const QString serviceName);
-   /**
-    * From smfobserver.
-    * This callback is invoked when requested result is available from
-    * other components of Smf (specially from plugin manager).
-    * @param result Parsed and serialized result.
-    * @param opcode Request code.
-    * @param error Error
-    */
-   void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
-private:
-  QList<SmfProvider>* m_baseProvider;
-  //serialized byte array of provider
-  QByteArray m_providerSerialized;
-#ifdef Q_OS_SYMBIAN
-  CSmfClientSymbian* m_SmfClientPrivate;
-  friend class CSmfClientSymbian;
-#else
-  SmfClientQt* m_SmfClientPrivate;
-  friend class SmfClientQt;
-#endif
-  bool m_connected;
-  SmfClient* m_client;
-  //debugging only
-  void writeLog(QString log) const;
-
-};
-
-#endif /* SMFCLIENT_P_H_ */
--- a/smf/smfservermodule/smfclient/client/smfclientqt.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-
-#include "smfclientqt.h"
-
-SmfClientQt::SmfClientQt(QObject *parent)
-    : QObject(parent)
-{
-    m_serverConnection = new QLocalSocket();
-
-    connect(m_serverConnection, SIGNAL(connected()), this, SLOT(connectionEstablished()));
-    connect(m_serverConnection, SIGNAL(readyRead()), this, SLOT(readIncomingData()));
-    connect(m_serverConnection, SIGNAL(error(QLocalSocket::LocalSocketError)),
-            this, SLOT(handleError(QLocalSocket::LocalSocketError)));
-
-    m_serverConnection->connectToServer("SmfServerQt", QIODevice::ReadWrite);
-}
-
-SmfClientQt::~SmfClientQt()
-{
-    m_serverConnection->close();
-    delete m_serverConnection;
-}
-
-/**
- * Send a request to the server.
- * @param aSerializedData serialized by the caller.
- * @param aInterfaceName Interface name
- * @param requestType Opcode
- */
-int SmfClientQt::sendRequest(QByteArray& serializedData, QString interfaceName,
-                             SmfRequestTypeID requestType)
-{
-    QDataStream out(m_serverConnection);
-    out << requestType;
-    out << interfaceName;
-    out << serializedData.size();
-    out << serializedData;
-}
-
-/**
- * This overloaded API is for ESmfGetServices, where data should be
- * fetched synchronously
- */
-QByteArray SmfClientQt::sendRequest(QString interfaceName,
-            SmfRequestTypeID requestType)
-{
-    QDataStream out(m_serverConnection);
-    out << requestType;
-    out << interfaceName;
-
-    // TODO: This needs to be asynchronous. Remove this wait when user API is updated.
-    m_serverConnection->waitForBytesWritten(-1);
-
-    QByteArray in;
-    out >> in;
-    return in;
-}
-
-/**
- * For testing purpose only
- */
-int SmfClientQt::sendDummyRequest(QByteArray* provider,QString aInterfaceName,
-            SmfRequestTypeID requestType)
-{
-    Q_UNUSED(provider);
-    Q_UNUSED(aInterfaceName);
-    Q_UNUSED(requestType);
-}
-
-/**
-* CancelRequest.
-* Cancels an outstanding request.
-*/
-void SmfClientQt::CancelRequest()
-{
-
-}
-
-void SmfClientQt::connectionEstablished()
-{
-    qDebug() << "Connected to server successfully.";
-}
-
-void SmfClientQt::readIncomingData()
-{
-}
-
-void SmfClientQt::handleError(QLocalSocket::LocalSocketError error)
-{
-    switch(error)
-    {
-    case QLocalSocket::ServerNotFoundError:
-        qDebug() << "Server not found.";
-        break;
-    default:
-        qDebug() << "Unhandled socket error";
-        break;
-    }
-}
--- a/smf/smfservermodule/smfclient/client/smfclientqt.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-
-#ifndef SMFCLIENTQT_H
-#define SMFCLIENTQT_H
-
-#include <QObject>
-#include <QByteArray>
-#include <QString>
-#include <QLocalSocket>
-
-#include "smfglobal.h"
-
-class SmfClientQt : public QObject
-{
-Q_OBJECT
-
-public:
-    explicit SmfClientQt(QObject *parent = 0);
-    ~SmfClientQt();
-
-public:
-    /**
-     * Send a request to the server.
-     * @param aSerializedData serialized by the caller.
-     * @param aInterfaceName Interface name
-     * @param requestType Opcode
-     */
-    int sendRequest(QByteArray& aSerializedData,
-                QString aInterfaceName,
-                SmfRequestTypeID requestType);
-
-    /**
-     * This overloaded API is for ESmfGetServices, where data should be
-     * fetched synchronously
-     */
-    QByteArray sendRequest(QString aInterfaceName,
-                SmfRequestTypeID requestType);
-
-    /**
-     * For testing purpose only
-     */
-    int sendDummyRequest(QByteArray* provider,QString aInterfaceName,
-                SmfRequestTypeID requestType);
-
-    /**
-    * CancelRequest.
-    * Cancels an outstanding request.
-    */
-    void CancelRequest();
-
-private slots:
-    void connectionEstablished();
-    void readIncomingData();
-    void handleError(QLocalSocket::LocalSocketError error);
-
-private:
-    QLocalSocket *m_serverConnection;
-};
-
-#endif // SMFCLIENTQT_H
--- a/smf/smfservermodule/smfclient/client/smfclientsymbian.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,546 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-
-#include "smfclientsymbian.h"
-#include <e32cmn.h>
-#include <QtGlobal>
-#include <e32svr.h>
-#include <e32base.h>
-#include <QByteArray>
-#include "smfglobal.h"
-#include "smfclientglobal.h"
-//testing purpose
-#include <QProcess>
-#include <QTextStream>
-#include <QFile>
-//testing end
-// For starting the server process
-static TInt StartServer();
-static TInt CreateServerProcessL();
-
-CSmfClientSymbian::CSmfClientSymbian(smfObserver* aObserver)
-: iObserver(aObserver),CActive( EPriorityStandard ),iDataPtr(NULL, 0, 0)
-	{
-	CActiveScheduler::Add(this);
-	}
-
-CSmfClientSymbian* CSmfClientSymbian::NewL(smfObserver* aObserver )
-    {
-	CSmfClientSymbian* self = NewLC( aObserver );
-    CleanupStack::Pop( self );
-    return( self ) ;
-    }
-
-CSmfClientSymbian* CSmfClientSymbian::NewLC(smfObserver* aObserver )
-    {
-	CSmfClientSymbian* self =
-        new ( ELeave ) CSmfClientSymbian( aObserver );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-void CSmfClientSymbian::ConstructL()
-    {
-	writeLog("CSmfClientSymbian::ConstructL");
-
-    User::LeaveIfError(iSession.connectToServer());
-    }
-void CSmfClientSymbian::writeLog(QString log) 
-	{
-#ifdef WRITE_LOG
-	QFile file("c:\\data\\SmfClientLogs.txt");
-    if (!file.open(QIODevice::Append | QIODevice::Text))
-	         return;
-    QTextStream out(&file);
-    out << log << "\n";
-    file.close();
-#endif
-	}
-
-void CSmfClientSymbian::DoCancel()
-	{
-	Cancel();
-	}
-
-TInt CSmfClientSymbian::RunError(TInt aError)
-	{
-	QString log2("CSmfClientSymbian::RunError=");
-	
-	log2 += QString::number(aError);
-	writeLog(log2);
-	return KErrNone;
-	}
-
-void CSmfClientSymbian::RunL()
-	{
-	QString log2("CSmfClientSymbian::RunL=");
-	log2 += QString::number(iStatus.Int());
-	writeLog(log2);
-    switch ( iStatus.Int() )
-        {
-        case KErrCancel:
-            // The request was canceled
-        	writeLog("KErrCancel");
-            break ;
-
-        case KErrNotReady:
-        	writeLog("KErrNotReady");
-        	break;
-
-        default:
-        	{
-        	writeLog("RunL:-default");
-        	//This contains error followed by actual data
-        	QByteArray receivedData(reinterpret_cast<const char*>(iSession.iDataPtr.Ptr()),iSession.iDataPtr.Length());
-        	writeLog("receivedData size=");
-        	writeLog(QString::number(receivedData.size()));
-        	SmfError errVal;
-        	int errInt;
-        	QByteArray data;
-        	QDataStream reader(&receivedData,QIODevice::ReadOnly);
-        	reader>>errInt;
-        	writeLog("errInt=");
-        	writeLog(QString::number(errInt));
-        	errVal = (SmfError)errInt;
-        	reader>>data;
-        	writeLog("data size=");
-        	writeLog(QString::number(data.size()));
-        	SmfRequestTypeID opcode = (SmfRequestTypeID)iSession.getLastRequest();
-        	if(iObserver)
-        		{
-				iObserver->resultsAvailable(data,opcode,errVal);
-        		}
-        	}
-        	break;
-        }
-	}
-
-QByteArray CSmfClientSymbian::sendRequest(QString aInterfaceName,
-		 SmfRequestTypeID requestType,TInt maxSize)
-	{
-	//This will be a synchronous request
-	//note session is opened in ctor and closed in dtor
-	writeLog("CSmfClientSymbian::sendRequest=");
-	writeLog(aInterfaceName);
-	//Gets data synchronously from the server
-    TPtr8 symbianBuf(iSession.sendSyncRequest(aInterfaceName,requestType,maxSize));
-    //convert this into bytearray
-    QByteArray receivedData(reinterpret_cast<const char*>(symbianBuf.Ptr()),symbianBuf.Length());
-    return receivedData;
-    //
-	}
-QByteArray CSmfClientSymbian::sendDSMSyncRequest(SmfRequestTypeID requestType,QByteArray& aSerializedData,SmfError& aErr,TInt maxSize)
-	{
-	writeLog("CSmfClientSymbian::sendDSMSyncRequest=");
-	writeLog(QString::number(requestType));
-	SmfError err;
-	//Gets data synchronously from the server
-    TPtr8 symbianBuf(iSession.sendDSMSyncRequest(requestType,aSerializedData,err,maxSize));
-    //convert this into bytearray
-    QByteArray receivedData(reinterpret_cast<const char*>(symbianBuf.Ptr()),symbianBuf.Length());
-    writeLog("receivedData size=");
-    writeLog(QString::number(receivedData.size()));
-    return receivedData;
-	}
-TInt CSmfClientSymbian::sendRequest(QByteArray& aSerializedData,
-		 QString aInterfaceName,
-		 SmfRequestTypeID requestType,TInt aMaxAllocation,QByteArray xtraInfo)
-	{
-		//RSessionBase objects sendreceive is called
-		iSession.sendAsyncRequest(aSerializedData,aInterfaceName,requestType,iStatus,aMaxAllocation,xtraInfo);
-		SetActive();
-	}
-
-TInt CSmfClientSymbian::sendDummyRequest(QByteArray* provider,QString aInterfaceName,
-		 SmfRequestTypeID requestType)
-	{
-	switch(requestType)
-		{
-		case SmfTest:
-			{
-
-			}
-			break;
-		default:
-			//should panic
-			break;
-		}
-	}
-
-CSmfClientSymbian::~CSmfClientSymbian()
-	{
-	writeLog("~CSmfClientSymbian");
-    Cancel(); // Causes call to DoCancel()
-    iSession.Close();
-	}
-
-RSmfClientSymbianSession::RSmfClientSymbianSession()
-:iDataPtr(NULL, 0, 0),iDataPtr16(NULL,0),
- iIntfNamePtr(NULL,0),iIntfNamePtr8(NULL,0),
- iPtrProvider(NULL,0),iPtrToSlot0(NULL,0)
-    {
-    // No implementation required
-    }
-
-TInt RSmfClientSymbianSession::connectToServer()
-    {
-	writeLog("RSmfClientSymbianSession::connectToServer");
-    TInt error = ::StartServer();
-    writeLog("StartServerL=");
-    QString err = QString::number(error);
-    writeLog(err);
-    if ( KErrNone == error )
-        {
-		
-        error = CreateSession(KSmfServerName,
-                               Version(),
-                               4 );
-        QString crtSessionErr = QString::number(error);
-        writeLog(crtSessionErr);
-        }
-    return error;
-    }
-
-//testing
-void RSmfClientSymbianSession::writeLog(QString log) const
-	{
-#ifdef WRITE_LOG
-	QFile file("c:\\data\\SmfClientLogs.txt");
-    if (!file.open(QIODevice::Append | QIODevice::Text))
-	         ;
-    QTextStream out(&file);
-    out << log << "\n";
-    file.close();
-#endif
-	}
-/**
- * Sends sync request to the Smf server
- */
-TPtr8 RSmfClientSymbianSession::sendDSMSyncRequest(SmfRequestTypeID aRequestType,
-		QByteArray& aSerializedData,SmfError aErr,
-		TInt maxSize)
-	{
-	/**
-	 * Slot 0:- Data to be passed to DSM
-	 * Slot 1:- Data returned from DSM
-	 * Slot 2:- Error
-	 */
-	writeLog("RSmfClientSymbianSession::sendDSMSyncRequest");
-	iLastRequest = aRequestType;
-	if(iSlot0Buffer)
-		{
-		delete iSlot0Buffer;
-		iSlot0Buffer = NULL;
-		}
-	iSlot0Buffer = HBufC8::NewL(aSerializedData.size());
-	iPtrToSlot0.Set(iSlot0Buffer->Des());
-	if(iBuffer)
-		{
-		delete iBuffer;
-		iBuffer = NULL;
-		}
-    iBuffer = HBufC8::NewL(maxSize);
-    iDataPtr.Set(iBuffer->Des());
-    
-    TIpcArgs args;
-
-    args.Set(0, &iPtrToSlot0);
-    args.Set(1, &iDataPtr);
-    iDSMErr.Zero();
-    args.Set(2,&iDSMErr);
-    
-    TInt sendErr = SendReceive(aRequestType,args);
-    writeLog("SendReceive=");
-    writeLog(QString::number(sendErr));
-    TInt numIndex;
-    TLex iLex(iDSMErr);
-    
-    iLex.Val(numIndex);
-    aErr = (SmfError)numIndex;
-    return iDataPtr;
-	}
-TPtr8 RSmfClientSymbianSession::sendSyncRequest(QString aInterfaceName,
-		SmfRequestTypeID aRequestType,
-		TInt maxSize)
-	{
-	iLastRequest = aRequestType;
-	/**
-	 * The message body consists of.- 
-	 * 1. Interface name as string ("org.symbian.smf.client.gallery")
-	 * 2. Data pointer to be filled by serialized data(QList<smfProvider>)
-	 */
-	QString log("RSmfClientSymbianSession::sendSyncRequest-start-");
-	writeLog(log);
-	writeLog(QString("aInterfaceName=")+aInterfaceName);
-	
-	iInterfaceNamebyte.clear();
-	//Convert the interface name into TPtr
-	iInterfaceName.clear();
-	iInterfaceName = aInterfaceName ;
-	writeLog(QString("iInterfaceName=")+iInterfaceName);
-	//lets pass serialized QString
-	QDataStream intfNameStream(&iInterfaceNamebyte,QIODevice::WriteOnly);
-	intfNameStream<<iInterfaceName;
-	log.clear();
-    log = QString("iInterfaceNamebyte size=");
-    log += QString::number(iInterfaceNamebyte.size());
-    writeLog(log);
-	if(iIntfNameBuffer8)
-		{
-		delete iIntfNameBuffer8;
-		iIntfNameBuffer8 =NULL;
-		}
-	TInt serializedintfsize = iInterfaceNamebyte.size();
-	writeLog("iInterfaceNamebyte.size()=");
-	writeLog(QString::number(serializedintfsize));
-	iIntfNameBuffer8 = HBufC8::NewL(iInterfaceNamebyte.size()*2);
-	iIntfNamePtr8.Set(iIntfNameBuffer8->Des());
-	iIntfNamePtr8.Copy(reinterpret_cast<TUint8*>(iInterfaceNamebyte.data()),iInterfaceNamebyte.length());
-	log.clear();
-    log = QString("iIntfNamePtr8 size=")+QString::number(iIntfNamePtr8.Size());
-    writeLog(log);
-
-    writeLog("Before provider symbian copy");
-	
-	
-	iInterfaceSymbian8.Copy(iIntfNamePtr8);	
-	if(iBuffer)
-		{
-		delete iBuffer;
-		iBuffer = NULL;
-		}
-	writeLog("Allocated for SmfProviderList=");
-	writeLog(QString::number(maxSize));
-	if(iBuffer)
-		{
-		delete iBuffer;
-		iBuffer = NULL;
-		}
-    iBuffer = HBufC8::NewL(maxSize);
-    iDataPtr.Set(iBuffer->Des());
-    log.clear();
-    log = QString("After iDataPtr.Set");
-    writeLog(log);
-
-	
-    TIpcArgs args;
-
-    args.Set(0, &iInterfaceSymbian8);
-    args.Set(1, &iDataPtr);
-    if(maxSize)
-    	{
-		iMaxSize = maxSize;
-		args.Set(2,iMaxSize);
-    	}
-    TInt err(KErrBadHandle);
-    writeLog("Before handle");
-	log.clear();
-    log = QString("iInterfaceSymbian8 size=")+QString::number(iInterfaceSymbian8.Size());
-    writeLog(log);
-    if (Handle()) 
-    	{
-        err = KErrNone;
-        log.clear();
-        log = QString("Before sendreceive");
-        writeLog(log);
-        //synchronous request
-        TInt sendErr = SendReceive(aRequestType, args);
-        if(sendErr)
-        	{
-			writeLog("SendReceive error=");
-			QString errStr = QString::number(sendErr);
-			writeLog(errStr);
-        	}
-        return iDataPtr;
-        }
-	}
-
-/**
- * Calls SendReceive() after converting into symbian descriptors
- *
- */
-void RSmfClientSymbianSession::sendAsyncRequest(QByteArray& aSerializedData,
-		QString aInterfaceName,
-		SmfRequestTypeID aRequestType,
-		TRequestStatus& aStatus,
-		TInt aMaxAllocation,
-		QByteArray aXtraInfo)
-	{
-	/**
-	 * The message body consists of.- 
-	 * Modified,-
-	 * slot 0 = SmfProvider +PageInfo flag+ aPageNum + aPerPage + XtraInfo flag(size of xtra data) Serialized
-	 * slot 1 = Interface name serialized
-	 * slot 2 = Data pointer to filled by server
-	 * slot 3= Xtra info when required by server else empty buffer
-	 */
-	writeLog("RSmfClientSymbianSession::sendAsyncRequest-start-");
-	iLastRequest = aRequestType;
-	
-	
-	
-	
-	if(iProviderBuf)
-		{
-		delete iProviderBuf;
-		iProviderBuf = NULL;
-		}
-	iProviderBuf = HBufC8::NewL(aSerializedData.size());
-	iPtrProvider.Set(iProviderBuf->Des());
-	iPtrProvider.Copy(reinterpret_cast<const TText8*>(aSerializedData.constData()),aSerializedData.length());
-	
-	
-	
-	
-	//convert the QByteArray into TPtr
-    TPtrC8 ptrSlot0(reinterpret_cast<const TText8*>(aSerializedData.constData()),aSerializedData.length());
-    writeLog("ptrSlot0 size=");
-    writeLog(QString::number(ptrSlot0.Size()));
-	//Convert the interface name into TPtr
-	iInterfaceName.clear();
-	iInterfaceName.append(aInterfaceName) ;
-	writeLog(QString("iInterfaceName=")+iInterfaceName);
-	iInterfaceNamebyte.clear();
-	//Pass serialized QString for interface name
-	QDataStream intfNameStream(&iInterfaceNamebyte,QIODevice::WriteOnly);
-	intfNameStream<<iInterfaceName;
-	writeLog("iInterfaceNamebyte size=");
-	writeLog(QString::number(iInterfaceNamebyte.size()));
-	if(iIntfNameBuffer8)
-		{
-		delete iIntfNameBuffer8;
-		iIntfNameBuffer8 = NULL;
-		}
-	iIntfNameBuffer8 = HBufC8::NewL(iInterfaceNamebyte.size());
-	iIntfNamePtr8.Set(iIntfNameBuffer8->Des());
-	iIntfNamePtr8.Copy(reinterpret_cast<const TText8*>(iInterfaceNamebyte.constData()),iInterfaceNamebyte.length());
-	writeLog("After iIntfNamePtr8.Copy");
-	if(iBuffer)
-		{
-		delete iBuffer;
-		iBuffer = NULL;
-		}
-    iBuffer = HBufC8::NewL(aMaxAllocation);
-    iDataPtr.Set(iBuffer->Des());
-    writeLog("After iDataPtr.Set");
-    TIpcArgs args;
-    
-    //filling the slots
-    args.Set(0, &iPtrProvider);
-    args.Set(1, &iIntfNamePtr8);
-    args.Set(2, &iDataPtr);
-    writeLog("After setting 0,1,2 slots");
-    if(aXtraInfo.size())
-    	{
-		TPtrC8 ptrToXtraInfo(reinterpret_cast<const TText8*>(aXtraInfo.constData()),aXtraInfo.length());
-		writeLog("ptrToXtraInfo size=");
-		writeLog(QString::number(ptrToXtraInfo.Size()));
-		args.Set(3, &ptrToXtraInfo);
-    	}
-    TInt err(KErrBadHandle);
-    writeLog("Before Handle()");
-    if (Handle()) 
-    	{
-        err = KErrNone;
-        writeLog("Before sendreceive");
-        SendReceive(aRequestType, args, aStatus);
-        }
-	}
-
-// -----------------------------------------------------------------------------
-// CreateServerProcessL()
-// Creates a server process
-// -----------------------------------------------------------------------------
-//
-static TInt CreateServerProcessL()
-    {
-    TInt result;
-    TUid KSmfServerUID3 = { 0xE5027327 };
-    const TUidType serverUid( KNullUid, KNullUid, KSmfServerUID3 );
-
-    RProcess server;
-
-    result = server.Create( KSmfServerFilename, KNullDesC, serverUid );
-
-    if ( result != KErrNone )
-        {
-        return  result;
-        }
-
-    server.Resume();
-    server.Close();
-
-    return  KErrNone;
-    }
-static TInt StartServer()
-    {
-    TInt result;
-
-    TFindServer findSmfServer( KSmfServerFilename );
-    TFullName name;
-
-    result = findSmfServer.Next( name );
-    if ( result == KErrNone )
-        {
-        // Server already running
-        return KErrNone;
-        }
-
-    RSemaphore semaphore;
-    result = semaphore.CreateGlobal( KSmfServerSemaphoreName, 0 );
-    if ( result != KErrNone )
-        {
-        return  result;
-        }
-
-    result = CreateServerProcessL();
-    if ( result != KErrNone )
-        {
-        return  result;
-        }
-
-    semaphore.Wait();
-    semaphore.Close();
-
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// CreateServerProcess()
-// Creates a server process
-// -----------------------------------------------------------------------------
-//
-static TInt CreateServerProcess()
-    {
-    TInt result;
-    //SmfServer SID
-    TUid KSmfServerUID3 = { 0xE5027327 };
-    const TUidType serverUid( KNullUid, KNullUid, KSmfServerUID3 );
-
-    RProcess server;
-
-    result = server.Create( KSmfServerName, KNullDesC, serverUid );
-
-    if ( result != KErrNone )
-        {
-        return  result;
-        }
-
-    server.Resume();
-    server.Close();
-
-    return  KErrNone;
-    }
--- a/smf/smfservermodule/smfclient/client/smfclientsymbian.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-
-#ifndef SMFCLIENTSYMBIAN_H_
-#define SMFCLIENTSYMBIAN_H_
-
-#include <e32base.h>
-#include <e32cmn.h>
-#include "smfglobal.h"
-#include "smfobserver.h"
-#include "smfprovider.h"
-#include <QStringList>
-#include "smfclientsymbiansession.h"
-
-/**
- * Private client implementation for Symbian.
- */
-class CSmfClientSymbian : public CActive
-{
-
-public: // Constructors and destructors
-	
-	/**
-	 * Two phase contruction.
-	 * @param aObserver For callback
-	 */
-     static CSmfClientSymbian* NewL(smfObserver* aObserver=NULL);
-
-
-     static CSmfClientSymbian* NewLC(smfObserver* aObserver);
-     CSmfClientSymbian(smfObserver* aObserver);
-
-     /**
-     * ~CSmfClientSymbian.
-     * Destructor.
-     * Destroys the object and release all memory objects.
-     */
-     virtual ~CSmfClientSymbian();
-
- public: 
-     /**
-      * Calls SendReceive of the RSessionBase object.
-      * @param aSerializedData serialized by the caller.
-      * @param aInterfaceName Interface name
-      * @param requestType Opcode
-      * @param maxSize Max data size that is allocated in the client side for
-      * receiving this data
-      * @param xtraInfo XtraInfo when required by server other than smfProvider
-      */
-     TInt sendRequest(QByteArray& aSerializedData,
-    		 QString aInterfaceName,
-    		 SmfRequestTypeID requestType,TInt aMaxAllocation,QByteArray xtraInfo=QByteArray());
-     /**
-      * This overloaded API is for ESmfGetServices, where data should be
-      * fetched synchronously
-      */
-     QByteArray sendRequest(QString aInterfaceName,
-    		 SmfRequestTypeID requestType,TInt maxSize=10);
-     
-     /**
-      * For sending request specific to DSM. These are used by SmfRelationMngr API
-      * @param requestType Opcode
-      * @param aSerializedData Data to be passed to DSM through server, interpretation
-      * depends on Relation manager and DSM
-      * @maxSize Size to be allocated in the client side
-      * @return Data received from server, interpretation depends on SmfRelationMngr and DSM
-      */
-     QByteArray sendDSMSyncRequest(SmfRequestTypeID requestType,QByteArray& aSerializedData,SmfError& aErr,TInt maxSize=10);
-     /**
-      * For testing purpose only
-      */
-     TInt sendDummyRequest(QByteArray* provider,QString aInterfaceName,
-    		 SmfRequestTypeID requestType);
-
-     /**
-     * CancelRequest.
-     * Cancels an outstanding request.
-     */
-     void CancelRequest() ;
-     
-
-
- protected: // Functions from base classes
-
-     /**
-     * From CActive, RunL.
-     * Callback function.
-     * Invoked to handle responses from the server.
-     */
-     void RunL();
-
-     /**
-     * From CActive, DoCancel.
-     * Cancels any outstanding operation.
-     */
-     void DoCancel();
-     
-     TInt RunError(TInt aError);
-
- private: // Constructors and destructors
-
-     /**
-     * CSmfClientSymbian.
-     * Performs the first phase of two phase construction.
-     */
-     CSmfClientSymbian();
-
-     /**
-     * ConstructL.
-     * Performs the second phase construction of a
-     * CSmfClientSymbian object.
-     */
-     void ConstructL();
-     
-     //debugging
-     void writeLog(QString log);
-
- private: // Data
-
-     /**
-     * iSession, the server session.
-     */
-     RSmfClientSymbianSession iSession;
-     /**
-      * For callback, when the client gets serviced by the server
-      */
-     smfObserver* iObserver;
-     
-     //Interface name, to be passed to the server
-     TBuf<128> iInterfaceName;
-     QString iInterfaceNameQt;
-     //Data ptr
-     TPtr iDataPtr;
-     
-     //Bytearray
-     QByteArray* iBytearray;
-     HBufC* iBuffer;
-     TInt iMaxMessageSize;
-     
- 	/**
- 	 * Testing
- 	 */
- 	QStringList dummyList;
- 	QByteArray* dummyArray;
-
- 	
-};
-
-#endif /* SMFCLIENTSYMBIAN_H_ */
--- a/smf/smfservermodule/smfclient/client/smfclientsymbiansession.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-
-#ifndef SMFCLIENTSYMBIANSESSION_H_
-#define SMFCLIENTSYMBIANSESSION_H_
-
-#include <e32cmn.h>
-#include <QByteArray>
-#include <QString>
-#include <QVariant>
-#include <QList>
-#include "smfglobal.h"
-
-/**
- * Corresponds to client session in Symbian
- */
-class RSmfClientSymbianSession : public RSessionBase
-{
-public:
-	/**
-	 * Constructs
-	 */
-	RSmfClientSymbianSession();
-	/**
-	 * Creates the server process if not already running and creates session
-	 * @return Error code while creating server process/ creating session
-	 */
-    TInt connectToServer();
-    TVersion Version() const{return TVersion(0,0,1);};
-    /**
-     * Calls SendReceive with requestType opcode and packaged data
-     * depending on requestType
-     */
-    TInt sendRequest(SmfRequestTypeID requestType);
-    void Close(){};
-	bool isConnected();
-	bool connected;
-	/**
-	 * Sends async request to the Smf server
-	 * @param aSerializedData Serialized data to be sent to the server.
-	 * Consists of provider Info(SmfProvider*)+ Other common class data
-	 * (when applicable)-serialized
-	 * @param aInterfaceName Name of the interface
-	 * @param aStatus TRequestStatus
-	 * @param maxSize Size of the data to be allocated. This info is sent to the server
-	 * @param aXtraInfo When xtra common data class instances to be passed other than SmfProvider
-	 * so that it can allocate this much of memory.
-	 */
-	void sendAsyncRequest(QByteArray& aSerializedData,
-			QString aInterfaceName,
-			SmfRequestTypeID aRequestType,
-			TRequestStatus& aStatus,
-			TInt aMaxAllocation,
-			QByteArray aXtraInfo=QByteArray());
-	/**
-	 * Sends sync request to the Smf server
-	 */
-	TPtr8 sendSyncRequest(QString aInterfaceName,
-			SmfRequestTypeID aRequestType,
-			TInt maxSize=0);
-	/**
-	 * Sends DSM related sync request to the Smf server
-	 */
-	TPtr8 sendDSMSyncRequest(SmfRequestTypeID aRequestType,
-			QByteArray& aSerializedData,
-			SmfError aErr,
-			TInt maxSize=0);
-	void writeLog(QString log) const;
-    /**
-     * Returns data,used to return back the data received from server
-     */
-    TPtr8 getData()
-			{
-			 return iDataPtr;
-			}
-    TInt getLastRequest()
-    	{
-    	return iLastRequest;
-    	}
-	/**
-	 * Following are to form message body.
-	 */
-	QByteArray iBaseProvider;
-    TBuf8<525> iProviderSymbian;
-    TBuf<125> iInterfaceSymbian;
-    TBuf8<125> iInterfaceSymbian8;
-    TBuf<100> iDSMErr;
-	QString iInterfaceName;
-	QByteArray iInterfaceNamebyte;
-
-	TPtr8 iDataPtr;
-	TPtr iDataPtr16;
-	HBufC8* iBuffer;
-	HBufC* iBuffer16;
-	HBufC* iIntfNameBuffer;
-	HBufC8* iIntfNameBuffer8;
-	HBufC8* iProviderBuf;
-	TPtr8 iPtrProvider;
-	TPtr iIntfNamePtr;
-	TPtr8 iIntfNamePtr8;
-	HBufC8* iSlot0Buffer;
-	TPtr8 iPtrToSlot0;
-	TInt iMaxMessageSize;
-	TInt iMaxSize;
-	/**
-	 * Last request opcode
-	 */
-	TInt iLastRequest;
-	
-private:
-	QList<QVariant*> result;
-	
-
-	
-};
-#endif /* SMFCLIENTSYMBIANSESSION_H_ */
--- a/smf/smfservermodule/smfclient/client/smfcontactfetcher.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfContactFetcher class is for fetching SmfContact related info
- *
- */
-
-#include "smfcontactfetcher.h"
-#include "smfcontactfetcher_p.h"
-
-SmfContactFetcher::SmfContactFetcher(SmfProvider* baseProvider)
-  {
-  m_baseProvider = baseProvider;
-  //creating private impl wrapper
-  m_private = new SmfContactFetcherPrivate(this);
-  }
-SmfContactFetcher::SmfContactFetcher(SmfProvider* baseProvider, SmfContact* contact)
-{
-	m_baseProvider = baseProvider;
-	m_frndContact = contact;
-	//creating private impl wrapper
-	m_private = new SmfContactFetcherPrivate(this);
-}
-SmfContactFetcher::~SmfContactFetcher()
-{
-	if(m_baseProvider)
-	{
-		delete m_baseProvider;
-		m_baseProvider = NULL;
-	}
-	if(m_frndContact)
-	{
-		delete m_frndContact;
-		m_frndContact = NULL;
-	}
-	/** @TODO:- Request to unload the plugin*/
-}
-bool  SmfContactFetcher::friends(int pageNum,int perPage)
-{
-m_private->friends(pageNum,perPage);
-}
-bool SmfContactFetcher::followers(int pageNum,int perPage)
-{
-	m_private->followers(pageNum,perPage);
-}
-void  SmfContactFetcher::search(SmfContact* contact,int pageNum,int perPage) 
-{
-	m_private->search(contact,pageNum,perPage);
-}
-bool  SmfContactFetcher::searchNear(SmfLocation* location,SmfLocationSearchBoundary proximity,int pageNum,int perPage) 
-{
-	//To be implemented
-}
-bool SmfContactFetcher::groups(int pageNum,int perPage) 
-{
-	m_private->groups(pageNum,perPage);
-}
-bool  SmfContactFetcher::searchInGroup(SmfGroup group,int pageNum,int perPage) 
-{
-	m_private->searchInGroup(group,pageNum,perPage);
-}
-void SmfContactFetcher::customRequest(const int& operationId,QByteArray* customData)
-{
-	//To be implemented
-}
-SmfProvider*  SmfContactFetcher::getProvider() 
-{
-	return m_baseProvider;
-}
--- a/smf/smfservermodule/smfclient/client/smfcontactfetcher.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfEvent class represents an event
- *
- */
-
-#ifndef SMFCONTACTHETCHER_H
-#define SMFCONTACTHETCHER_H
-
-#include <QObject>
-#include "smfglobal.h"
-#include "smfprovider.h"
-#include "smfcontact.h"
-#include "smflocation.h"
-#include "smfgroup.h"
-
-class SmfProvider; //base-class for service provider
-class SmfContact; //class for Contact in a social network
-class SmfGroup; //class for a group in social network
-
-typedef QList<SmfContact>  SmfContactList;
-typedef QList<SmfGroup> SmfGroupList;
-/**
- * @ingroup smf_client_group 
- * Interface to search for contacts/connections from a service provider. This class
- * provides basic functionality to allow applications to obtain list of
- * contacts or friends in a social networking service.
- * Note that to get the base provider info like service name, icon, description etc
- * use getProvider().
- * See also:
- * SmfProvider::serviceName(), SmfProvider::serviceIcon(), SmfProvider::description()
- *
- * All of the functionality described here should be implemented by a service
- * specific plug-in object.
- * Interface name:- org.symbian.smf.client.contact.fetcher
- */
-class  SMFCLIENT_EXPORT SmfContactFetcher : public QObject
-{
-  Q_OBJECT
-
-public:
-
-  /**
-   * Constructs the SmfContactFetcher.
-   * @param parent base provider info
-   * @param contact Used for searching friends of the given contact
-   * Seeing as this is a plug-in implementation, these will realistically
-   * be generated by SMF factory of some kind
-   */
-  SmfContactFetcher(SmfProvider* baseProvider);
-  SmfContactFetcher(SmfProvider* baseProvider, SmfContact* contact);
-  ~SmfContactFetcher();
-
-public:
-  /**
-   * Get the friend listing asynchronously. The friendsListAvailable() signal
-   * is emitted with SmfContactList once data is arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  bool friends(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-
-  /**
-   * Get the list of followers asynchronously. The followersListAvailable() signal
-   * is emitted with SmfContactList once data is arrived. Please note that some
-   * service may not support followers/fans - FALSE is returned if not supported.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  bool followers(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); // list of contact objects
-
-  /**
-   * Searches for a contact The searchContactFinished() signal
-   * is emitted with SmfContactList once data is arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void search(SmfContact* contact,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // list of contact objects
-
-  /**
-   * Searches for a contacts (friends) who are near the user.
-   * Signal searchNearFinished() is emitted with SmfContactList once data is arrived.
-   * Proximity defines accuracy level
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  bool searchNear(SmfLocation* location,SmfLocationSearchBoundary proximity,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ;
-
-
-  /**
-   * Get the list of groups. The groupListAvailable() signal
-   * is emitted with SmfGroupList once data is arrived. False might be returned
-   * if this service doesn't support any mode of grouping (very rare).
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-   bool groups(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // list of group objects
-
-  /**
-   * Searches for Smf Contacts in an Smf group.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   * @param  group The group to be searcged in
-   */
-   bool searchInGroup(SmfGroup group,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); // list of contact objects
-   
-   /**
-    * Request for a custom operation.
-    * @param operationId OperationId
-    * @param customData Custom data to be sent
-    * Note:-Interpretation of operationId and customData is upto the concerned
-    * plugin and client application. service provider should provide some
-    * serializing-deserializing utilities for these custom data
-    */
-   void customRequest(const int& operationId,QByteArray* customData);
-
-  //APIs to get/set base provider info (SmfProvider)
-
-  /**
-   * Gets the base provider info
-   */
-   SmfProvider* getProvider() ;
-
-signals:
-
-	/**
-	 * This signal is emitted when a request to get friends is completed.
-	 * Note if number of friends is large, then it can download the list page by page.
-	 * In that case this signal is emitted multiple times.
-	 *  @param list list of friends
-	 *  @param error error value
-	 *  @param resultPage Page number info
-	 *  @see friends()
-	 */
-	void friendsListAvailable(SmfContactList* list, SmfError error, SmfResultPage resultPage);
-
-	/**
-	 * This signal is emitted when a request to get followers is completed
-	 *  Note if number of followers is large, then it can download the list page by page
-	 *  In that case this signal is emitted multiple times.
-	 *  @param list list of followers
-	 *  @param error error value
-	 *  @param resultPage Page number info
-	 *  @see followers()
-	 */
-	void followersListAvailable(SmfContactList* list, SmfError error, SmfResultPage resultPage);
-
-	/**
-	 * This signal is emitted when a request to get groups is completed
-	 * Note if number of groups is large, then it can download the list page by page
-	 *  In that case this signal is emitted multiple times.
-	 *  @param list list of groups
-	 *  @param error error value
-	 *  @param resultPage Page number info
-	 *  @see groups()
-	 */
-	void groupListAvailable(SmfGroupList* list, SmfError error, SmfResultPage resultPage);
-
-	/**
-	 * Emitted when search for a contact is finished.
-	 * Note if number of contacts in the search is large, then it can download the list page by page
-	 * In that case this signal is emitted multiple times.
-	 * @param list List of filtered contacts
-	 * @param resultPage Page number info
-	 * @see search()
-	 */
-	void searchContactFinished(SmfContactList* list,SmfError error, SmfResultPage resultPage);
-
-
-	/**
-	 * Emitted when search for contacts who are near a geographic location, is finished.
-	 * Note if number of contacts in the search is large, then it can download the list page by page
-	 * In that case this signal is emitted multiple times.
-	 * @param list List of filtered contacts
-	 * @param resultPage Page number info
-	 * @see search()
-	 */
-	void searchNearFinished(SmfContactList* list,SmfError error, SmfResultPage resultPage);
-
-	/**
-	 * Emitted when search for a contact in a group is finished
-	 * Note if number of contacts in the search is large, then it can download the list page by page
-	 * In that case this signal is emitted multiple times.
-	 * @param list list of filtered contacts
-	 * @param resultPage Page number info
-	 * @see searchInGroup()
-	 */
-	void searchInGroupFinished(SmfContactList* list,SmfError error, SmfResultPage resultPage);
-	
-	/**
-	 * Emitted when custom data is available
-	 * @param operationId Requested operation id
-	 * @param customData Custom data received, interpretation is not the responsibility of Smf
-	 */
-	void customDataAvailable(int operationId, QByteArray* customData);
-	//so that private impl can directly call emit
-	friend class SmfContactFetcherPrivate;
-private:
-  SmfProvider* m_baseProvider;
-  SmfContact* m_frndContact; //used for searching
-  //private impl wrapper
-  SmfContactFetcherPrivate* m_private;
-
-};
-
-SMF_SERVICE_NAME(SmfContactFetcher, "org.symbian.smf.client.contact.fetcher\0.2")
-#endif // SMFCONTACTHETCHER_H
--- a/smf/smfservermodule/smfclient/client/smfcontactfetcher_p.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,388 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-#include "smfcontactfetcher_p.h"
-#ifdef WRITE_LOG
-#include <QFile>
-#include <QTextstream>
-#endif
-#ifdef Q_OS_SYMBIAN
-#include "SmfClientSymbian.h"
-#else
-#include "SmfClientQt.h"
-#endif
- /**
-   * Constructs the SmfContactFetcher.
-   * @param parent base provider info
-   * @param contact Used for searching friends of the given contact
-   * Seeing as this is a plug-in implementation, these will realistically
-   * be generated by SMF factory of some kind
-   */
-  SmfContactFetcherPrivate::SmfContactFetcherPrivate(SmfContactFetcher* contactFetcher)
-  : m_contactFetcher(contactFetcher),m_contactList(0)
-	  {
-		//private impl for symbian
-		#ifdef Q_OS_SYMBIAN
-		m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
-		#endif
-	  }
-  SmfContactFetcherPrivate::~SmfContactFetcherPrivate()
-	  {
-	  if(m_SmfClientPrivate)
-		  {
-		  delete m_SmfClientPrivate;
-		  m_SmfClientPrivate = NULL;
-		  }
-	  }
-
-  /**
-   * Get the friend listing asynchronously. The friendsListAvailable() signal
-   * is emitted with SmfContactList once data is arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  bool  SmfContactFetcherPrivate::friends(int pageNum,int perPage)
-	  {
-	  m_providerSerialized.clear();
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_xtraInfoFlag = 0;
-	  m_pageInfoFlag = 1;
-	  m_baseProvider = m_contactFetcher->getProvider();
-	  //serialize start
-	  QDataStream write(&m_providerSerialized,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  write<<m_xtraInfoFlag;
-	  //serialize end
-	  QString intfName(contactFetcherInterface);
-	  int maxAllocation = MaxSmfContactSize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_providerSerialized,intfName,SmfContactGetFriends,maxAllocation,QByteArray());
-	  }
-
-  /**
-   * Get the list of followers asynchronously. The followersListAvailable() signal
-   * is emitted with SmfContactList once data is arrived. Please note that some
-   * service may not support followers/fans - FALSE is returned if not supported.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  bool SmfContactFetcherPrivate::followers(int pageNum,int perPage)
-	  {
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  
-	  m_baseProvider = m_contactFetcher->getProvider();
-	  //serialize start
-	  QDataStream write(&m_providerSerialized,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoFlag = 0;
-	  write<<m_xtraInfoFlag;
-	  //serialize end
-	  
-	  
-	  QString intfName(contactFetcherInterface);
-	  int maxAllocation = MaxSmfContactSize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_providerSerialized,intfName,SmfContactGetFollowers,maxAllocation);
-	  }
-  /**
-   * Searches for a contact The searchContactFinished() signal
-   * is emitted with SmfContactList once data is arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void  SmfContactFetcherPrivate::search(SmfContact* contact,int pageNum,int perPage) 
-	  {
-	  //We need to pass Opcode and SmfProvider+SmfContact serialized into bytearray 
-	  
-	  m_baseProvider = m_contactFetcher->getProvider();
-	  m_xtraInfoSerialized.clear();
-	  m_contact = contact;
-	  //serialize start
-	  QDataStream write(&m_providerSerialized,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<pageNum;
-
-	  
-	  //serialize xtra info
-	  QDataStream writeXtra(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  writeXtra<<*(m_contact);
-	  
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-	  
-	  QString intfName(contactFetcherInterface);
-	  int maxAllocation = MaxSmfContactSize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_providerSerialized,intfName,SmfContactSearch,maxAllocation,m_xtraInfoSerialized);
-	  }
-
-  /**
-   * Searches for a contacts (friends) who are near the user.
-   * Signal searchNearFinished() is emitted with SmfContactList once data is arrived.
-   * Proximity defines accuracy level
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-   bool  SmfContactFetcherPrivate::searchNear(SmfLocation* location,SmfLocationSearchBoundary proximity,int pageNum,int perPage) 
-	   {
-		  m_baseProvider = m_contactFetcher->getProvider();
-		  m_xtraInfoSerialized.clear();
-		  //serialize start
-		  QDataStream write(&m_providerSerialized,QIODevice::WriteOnly);
-		  write<<*(m_baseProvider);
-		  m_pageInfoFlag = 1;
-		  write<<m_pageInfoFlag;
-		  write<<pageNum;
-		  write<<pageNum;
-		  //m_xtraInfoFlag = 1;
-		  //write<<m_xtraInfoFlag;
-		  
-		  //serialize xtra info
-		  QDataStream writeXtra(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-		  writeXtra<<*(location);
-		  writeXtra<<proximity;
-		  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-		  write<<m_xtraInfoFlag;
-		  QString intfName(contactFetcherInterface);
-		  int maxAllocation = MaxSmfContactSize*perPage;
-		  //call private impl's send method
-		  m_SmfClientPrivate->sendRequest(m_providerSerialized,intfName,SmfContactSearchNear,maxAllocation,m_xtraInfoSerialized);
-	   }
-
-
-  /**
-   * Get the list of groups. The groupListAvailable() signal
-   * is emitted with SmfGroupList once data is arrived. False might be returned
-   * if this service doesn't support any mode of grouping (very rare).
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-   bool SmfContactFetcherPrivate::groups(int pageNum,int perPage) 
-	   {
-		  //We need to pass Opcode and SmfProvider serialized into bytearray 
-		  
-		  m_baseProvider = m_contactFetcher->getProvider();
-		  //serialize start
-		  QDataStream write(&m_providerSerialized,QIODevice::WriteOnly);
-		  write<<*(m_baseProvider);
-		  m_pageInfoFlag = 1;
-		  write<<m_pageInfoFlag;
-		  write<<pageNum;
-		  write<<perPage;
-		  m_xtraInfoFlag = 0;
-		  write<<m_xtraInfoFlag;
-		  //serialize end
-		  
-		  
-		  QString intfName(contactFetcherInterface);
-		  int maxAllocation = MaxSmfGroupSize*perPage;
-		  //call private impl's send method
-		  m_SmfClientPrivate->sendRequest(m_providerSerialized,intfName,SmfContactGetGroups,maxAllocation);
-	   }
-
-  /**
-   * Searches for Smf Contacts in an Smf group.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   * @param  group The group to be searcged in
-   */
-bool  SmfContactFetcherPrivate::searchInGroup(SmfGroup group,int pageNum,int perPage) 
-   {
-	  //We need to pass Opcode and SmfProvider+SmfGroup serialized into bytearray 
-	  
-	  m_baseProvider = m_contactFetcher->getProvider();
-	  m_grp = group;
-	  //serialize start
-	  QDataStream write(&m_providerSerialized,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  //m_xtraInfoFlag = 1;
-	  //write<<m_xtraInfoFlag;
-	  
-	  //serialize xtra info
-	  QDataStream writeXtra(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  writeXtra<<m_grp;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-	  //serialize end
-	  
-	  
-	  QString intfName(contactFetcherInterface);
-	  int maxAllocation = MaxSmfContactSize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_providerSerialized,intfName,SmfContactSearchInGroup,maxAllocation);
-	  return 0;
-   }
-void SmfContactFetcherPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error)
-   	{
-	writeLog("SmfContactFetcherPrivate::resultsAvailable");
-	
-   	QDataStream reader(&result,QIODevice::ReadOnly);
-   	
-   	//Now de-serialize it based on opcode
-   	switch(opcode)
-   		{
-   		case SmfContactGetFriends:
-   			{
-
-   			if(m_contactList)
-   				{
-				delete m_contactList;
-				m_contactList = NULL;
-   				}
-   			m_contactList = new SmfContactList;
-   			m_frndist.clear();
-   			reader>>m_frndist;
-   			writeLog("m_frndist.count=");
-   			writeLog(QString::number(m_frndist.count()));
-   			//TODO:-After consulting with PM owner decide page serialization
-   			SmfResultPage page;
-
-   			emit m_contactFetcher->friendsListAvailable(&m_frndist,error,page);
-   			
-   			}
-   			break;
-   		case SmfContactGetFollowers:
-   			{
-   			if(m_contactList)
-   				{
-				delete m_contactList;
-				m_contactList = NULL;
-   				}
-   			m_contactList = new SmfContactList;
-   			reader>>*(m_contactList);
-   			//TODO:-After consulting with PM owner decide page serialization
-   			SmfResultPage page;
-
-   			emit m_contactFetcher->followersListAvailable(m_contactList,error,page);
-			
-   			}
-   			break;
-   		case SmfContactGetGroups:
-   			{
-   			writeLog("Before m_grpList.clear=");
-   			m_grpList.clear();
-   			writeLog("Before reader>>m_grpList=");
-   			reader>>m_grpList ;
-   			/** @TODO:-After consulting with PM owner decide page serialization */
-   			SmfResultPage page;
-   			writeLog("m_grpList.count=");
-   			writeLog(QString::number(m_grpList.count()));
-   			emit m_contactFetcher->groupListAvailable(&m_grpList,error,page);
-   			
-   			}
-   			break;
-   		case SmfContactSearch:
-   			{
-   			if(m_contactList)
-   				{
-				delete m_contactList;
-				m_contactList = NULL;
-   				}
-   			m_contactList = new SmfContactList;
-   			reader>>*(m_contactList);
-   			/** @TODO:-After consulting with PM owner decide page serialization */
-   			SmfResultPage page;
-   			//searchContactFinished
-   			emit m_contactFetcher->searchContactFinished(m_contactList,error,page);
-   			}
-   			break;
-   		case SmfContactSearchNear:
-   			{
-   			if(m_contactList)
-   				{
-				delete m_contactList;
-				m_contactList = NULL;
-   				}
-   			m_contactList = new SmfContactList;
-   			reader>>*(m_contactList);
-   			/** @TODO:-After consulting with PM owner decide page serialization*/
-   			SmfResultPage page;
-   			//searchContactFinished
-   			emit m_contactFetcher->searchNearFinished(m_contactList,error,page);
-   			}
-   			break;
-   		case SmfContactSearchInGroup:
-   			{
-   			if(m_contactList)
-   				{
-				delete m_contactList;
-				m_contactList = NULL;
-   				}
-   			m_contactList = new SmfContactList;
-   			reader>>*(m_contactList);
-   			//TODO:-After consulting with PM owner decide page serialization
-   			SmfResultPage page;
-   			//searchContactFinished
-   			emit m_contactFetcher->searchInGroupFinished(m_contactList,error,page);
-   			}
-   			break;
-   		default:
-   			writeLog("!!!!!!!!!!default!!!!!!!!!!!!!!");
-   		}
-   	
-   	}
-void SmfContactFetcherPrivate::writeLog(QString log) const
-	{
-#ifdef WRITE_LOG
-	QFile file("c:\\data\\SmfClientLogs.txt");
-    if (!file.open(QIODevice::Append | QIODevice::Text))
-	         return;
-    QTextStream out(&file);
-    out << log << "\n";
-    file.close();
-#endif
-	}
-QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfError &err )
-	{
-	quint32 errInt = (quint32)err;
-	aDataStream<<errInt;
-	return aDataStream;
-	}
-
-
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfError &err )
-	{
-	quint32 errInt;
-	aDataStream>>errInt;
-	err = (SmfError)errInt;
-	return aDataStream;
-	}
--- a/smf/smfservermodule/smfclient/client/smfcontactfetcher_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-
-#ifndef SMFCLIENTPRIVATE_H_
-#define SMFCLIENTPRIVATE_H_
-/**
- * Private Qt wrapper
- * Provided to accomodate diff facilities in diff platforms.
- * Uses Symbian client-server for Symbian
- * QDbus for linux
- * QLocalserver for rest of the platforms
- * Note:- only symbian client-server impl is provided at the moment
- **/
-#include "smfprovider.h"
-#include "SmfClientGlobal.h"
-#include "smfGlobal.h"
-#include "SmfObserver.h"
-
-class SmfProvider;
-
-
-#include <QObject>
-#include <QDateTime>
-#include <QStringList>
-
-#include "SmfObserver.h"
-#include "smfcontactfetcher.h"
-#include "smfpostprovider.h"
-#include "smflocation.h"
-#ifdef Q_OS_SYMBIAN
-class CSmfClientSymbian;
-#else
-class SmfClientQt;
-#endif
-
-
-class SmfContactFetcherPrivate : public smfObserver
-{
-  Q_OBJECT
-
-public:
-
-
-  SmfContactFetcherPrivate(SmfContactFetcher* contactFetcher=0);
-  ~SmfContactFetcherPrivate();
-  //Note we need to expose the methods later through some macro
-public:
-  /**
-   * Get the friend listing asynchronously. The friendsListAvailable() signal
-   * is emitted with SmfContactList once data is arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  bool friends(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-
-  /**
-   * Get the list of followers asynchronously. The followersListAvailable() signal
-   * is emitted with SmfContactList once data is arrived. Please note that some
-   * service may not support followers/fans - FALSE is returned if not supported.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  bool followers(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); // list of contact objects
-
-  /**
-   * Searches for a contact The searchContactFinished() signal
-   * is emitted with SmfContactList once data is arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void search(SmfContact* contact,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // list of contact objects
-
-  /**
-   * Searches for a contacts (friends) who are near the user.
-   * Signal searchNearFinished() is emitted with SmfContactList once data is arrived.
-   * Proximity defines accuracy level
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  bool searchNear(SmfLocation* location,SmfLocationSearchBoundary proximity,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ;
-
-
-  /**
-   * Get the list of groups. The groupListAvailable() signal
-   * is emitted with SmfGroupList once data is arrived. False might be returned
-   * if this service doesn't support any mode of grouping (very rare).
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-   bool groups(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // list of group objects
-
-  /**
-   * Searches for Smf Contacts in an Smf group.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   * @param  group The group to be searcged in
-   */
-   bool searchInGroup(SmfGroup group,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ;
-   
-   //from smfobserver
-   void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
-private:
-  SmfProvider* m_baseProvider;
-  //serialized byte array of provider
-  QByteArray m_providerSerialized;
-  //serialized xtra info, order of serialization follows order of param
-  QByteArray m_xtraInfoSerialized;
-#ifdef Q_OS_SYMBIAN
-  CSmfClientSymbian* m_SmfClientPrivate;
-  friend class CSmfClientSymbian;
-  int m_xtraInfoFlag;
-  int m_pageInfoFlag;
- #else
-  SmfClientQt* m_SmfClientPrivate;
-  friend class SmfClientQt;
-#endif
-  bool m_connected;
-  SmfContactFetcher* m_contactFetcher;
-  SmfContactList* m_contactList;
-  QList<SmfGroup> m_grpList;
-  SmfContactList m_frndist;
-  SmfContact* m_contact;
-  SmfGroup m_grp;
-  void writeLog(QString log) const;
-  //debugging
-//  SmfLogger* logger;
-  //void writeLog(QString log) const;
-};
-
-QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfError &err );
-
-
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfError &err );
-#endif /* SMFCLIENTPRIVATE_H_ */
--- a/smf/smfservermodule/smfclient/client/smfgallery.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- * Description:
- * The SmfGallery class 
- *
- */
-
-#include "smfgallery.h"
-#include "smfgallery_p.h"
-
-
-  SmfGallery::SmfGallery(SmfProvider* baseprovider):m_baseProvider(baseprovider)
-	  {
-	  //creating private impl wrapper
-	  m_private = new SmfGalleryPrivate(this);
-	  }
-  SmfGallery::~SmfGallery()
-	  {
-	  if(m_private)
-		  {
-		  delete m_private;
-		  m_private = NULL;
-		  }
-	  }
-
-  /**
- * Get the album listing asynchronously.
- * The albumsAvailable() signal is emitted with SmfPictureAlbumList once the albums have arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
- * @param names the subject or any keywords to be used to filter albums with that name
- * @param user the user whose albums are requested 
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-void SmfGallery::albums(QStringList names, SmfContact* user, int pageNum,int perPage)
-	  {
-		m_private->albums(names,user, pageNum, perPage);	
-	  }
-
-  /**
- * Get the picture listing asynchronously.
- * The picturesAvailable() signal is emitted with SmfPictureList once the pictures have arrived.
- * When the list is big user can specify the page number and per page item data.
- * If not supplied by the user default values are used.
- * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
- * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-void SmfGallery::pictures(SmfPictureAlbumList &albums, int pageNum,int perPage)
-	  {
-	m_private->pictures( albums, pageNum, perPage);
-	  }
-
-  //APIs to get/set base provider info (SmfProvider)
-
-  /**
-   * Gets the base provider info
-   */
-   SmfProvider* SmfGallery::getProvider() 
-	   {
-	   return m_baseProvider;
-	   }
-
-	/**
-	 * Upload an image.Implemented as slot to connect to UI controls more easily
-	 * uploadFinished() signal is emitted with the success value of the upload
-	 * @param image the image to be uploaded
-	 */
-void SmfGallery::upload(SmfPicture* image, SmfPictureAlbum* album)
-	   {
-	m_private->upload(image,album);
-	   }
-
-	/**
-	 * Upload an list image.Implemented as slot to connect to UI controls more easily
-	 * uploadFinished() signal is emitted with the success value of the upload
-	 * @param images the list image to be uploaded
-	 */
-
-void SmfGallery::upload(SmfPictureList* images, SmfPictureAlbum* album) 
-	   {
-	m_private->upload(images,album);
-	   }
-
-  /**
-   * Posts a comment for an image. uploadFinished() signal is emitted
-   * with success of the post once comment is posted.
-   * @param image Image to comment on
-   * @param comment Comment to post
-   */
-   void SmfGallery::postComment(SmfPicture image, SmfComment comment) 
-	   {
-	   m_private->postComment(image,comment);
-	   }
-   
-QString SmfGallery::description(SmfPicture& picture)
-   {
-		Q_UNUSED(picture);
-   }
-/**
- * Request for a custom operation.
- * @param operationId OperationId
- * @param customData Custom data to be sent
- * Note:-Interpretation of operationId and customData is upto the concerned
- * plugin and client application. service provider should provide some
- * serializing-deserializing utilities for these custom data
- */
-void SmfGallery::customRequest(const int& operationId,QByteArray* customData)
-	{
-	/*to be implemented*/
-	Q_UNUSED(operationId);
-	Q_UNUSED(customData);
-	}
--- a/smf/smfservermodule/smfclient/client/smfgallery.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- * Description:
- * The SmfGallery class 
- *
- */
-
-#ifndef SMFGALLERY_H
-#define SMFGALLERY_H
-
-#include "smfglobal.h"
-#include "smfprovider.h"
-#include "smfclientglobal.h"
-#include "smfpicture.h"
-#include "smfpicturealbum.h"
-#include "smfcomment.h"
-#include "smfcontact.h"
-
-#include <QObject>
-#include <QDateTime>
-#include <QStringList>
-
-#include <qmobilityglobal.h>
-
-
-
-class SmfGalleryPrivate;
-/**
- * @ingroup smf_client_group 
- * Interface to a remote gallery service. This class
- * provides some basic gallery functionality to allow applications
- * to interact with a picture gallery in a social network.
- *
- * Note that branding information for the particular service implementation
- * is available from getProvider() API. See also:
- * SmfProvider::serviceName(), SmfProvider::serviceIcon()
- *
- * All of the functionality described here should be implemented by a service
- * specific plug-in object.
- * Interface name for SmfGallery org.symbian.smf.client.gallery
- */
-class SMFCLIENT_EXPORT SmfGallery : public QObject
-{
-  Q_OBJECT
-
-public:
-  /**
-   * Constructs SmfGallery.
-   * @param baseProvider The base provider info
-   * Seeing as this is a plug-in implementation, these will realistically
-   be generated by SMF factory of some kind
-   */
-
-  SmfGallery(SmfProvider* baseprovider);
-  ~SmfGallery();
-
-	public slots:
-	/**
-	 * Get the album listing asynchronously.
-	 * The albumsAvailable() signal is emitted with SmfPictureAlbumList once the albums have arrived.
-	 * When the list is big user can specify the page number and per page item data.
-	 * If not supplied by the user default values are used.
-	 * @param names the subject or any keywords to be used to filter albums with that name
-	 * @param user the user whose albums are requested 
-	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-	 */
-	void albums(QStringList names, SmfContact* user, int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-	
-	
-  /**
-   * Get the picture listing asynchronously.
-   * The picturesAvailable() signal is emitted with SmfPictureList once the pictures have arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-	 * @param albums album(s) whose pictures are being requested
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-	void pictures(SmfPictureAlbumList &albums, int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-
-  /**
-   * Returns a user title/caption for the picture
-   */
-  QString description(SmfPicture& picture);
-  /**
-   * Gets the base provider info
-   */
-   SmfProvider* getProvider() ;
-	//friend so that it can directly emit SmfPostProvider's signal
-	friend class SmfGalleryPrivate;
-public slots:
-	/**
-	 * Upload an image.Implemented as slot to connect to UI controls more easily
-	 * uploadFinished() signal is emitted with the success value of the upload
-	 * @param image the image to be uploaded
-	 * @param album the optional destination album name 
-	 */
-	void upload(SmfPicture* image, SmfPictureAlbum* album=NULL) ;
-
-	/**
-	 * Upload an list image.Implemented as slot to connect to UI controls more easily
-	 * uploadFinished() signal is emitted with the success value of the upload
-	 * @param images the list image to be uploaded
-	 * @param album the optional destination album name 
-	 */
-	void upload(SmfPictureList* images, SmfPictureAlbum* album=NULL) ;
-
-  /**
-   * Posts a comment for an image. uploadFinished() signal is emitted
-   * with success of the post once comment is posted.
-   * @param image Image to comment on
-   * @param comment Comment to post
-   */
-   void postComment(SmfPicture image, SmfComment comment) ;
-   /**
-	* Request for a custom operation.
-	* @param operationId OperationId
-	* @param customData Custom data to be sent
-	* Note:-Interpretation of operationId and customData is upto the concerned
-	* plugin and client application. service provider should provide some
-	* serializing-deserializing utilities for these custom data
-	*/
-   void customRequest(const int& operationId,QByteArray* customData);
-signals:
-	
-	/*
-	 * Notification on arrival of list of SmfPictureAlbum as a result of call to @ref albums().
-	 * @param pics Picture list
-	 * @param error Error string
-	 * @param resultPage Page number info
-	 */
-	void albumsAvailable(SmfPictureAlbumList* albums, SmfError error, SmfResultPage resultPage);
-	
-	/*
-	 * Notification on arrival of list of SmfPicture as a result of request.
-	 * Note if number of friends is large, then it can download the list page by page.
-	 * In that case this signal is emitted multiple times.
-	 * through pictures().
-	 * @param pics Picture list
-	 * @param error Error string
-	 * @param resultPage Page number info
-	 */
-	void picturesAvailable(SmfPictureList* pics, SmfError error, SmfResultPage resultPage);
-
-  /**
-   * Notification of the success of the uploading of image/comment
-   * @param error The upload success result of each individual pictures
-   */
-  void uploadFinished(QList<SmfError> error);
-	/**
-	 * Emitted when custom data is available
-	 * @param operationId Requested operation id
-	 * @param customData Custom data received, interpretation is not the responsibility of Smf
-	 */
-	void customDataAvailable(int operationId, QByteArray* customData);
-
-	/** friend so that it can directly emit SmfGallery's signal*/
-	friend class SmfGalleryPrivate;
-
-
-private:
-	SmfProvider* m_baseProvider;
-	//private impl wrapper
-	SmfGalleryPrivate* m_private;
-
-};
-
-SMF_SERVICE_NAME(SmfGallery, "org.symbian.smf.client.gallery\0.2")
-
-#endif // SMFGALLERY_H
-
--- a/smf/smfservermodule/smfclient/client/smfgallery_p.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,270 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- * Description:
- * Private implementation for SmfGallery class 
- *
- */
-#include "smfgallery_p.h"
-//logging headers
-#ifdef WRITE_LOG
-#include <QTextStream>
-#include <QFile>
-#endif
-#ifdef Q_OS_SYMBIAN
-#include "smfclientsymbian.h"
-#else
-#include "SmfClientQt.h"
-#endif
-
-  SmfGalleryPrivate::SmfGalleryPrivate(SmfGallery* gallery)
-  : m_gallery(gallery)
-  	{
-  	  //private impl for symbian
-  	#ifdef Q_OS_SYMBIAN
-  	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
-  	#endif
-  	}
-  SmfGalleryPrivate::~SmfGalleryPrivate()
-	  {
-	  if(m_SmfClientPrivate)
-		  {
-		  delete m_SmfClientPrivate;
-		  m_SmfClientPrivate = NULL;
-		  }
-	  }
-  
-  /**
- * Get the album listing asynchronously.
- * The albumsAvailable() signal is emitted with SmfPictureAlbumList once the albums have arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
- * @param names the subject or any keywords to be used to filter albums with that name
- * @param user the user whose albums are requested 
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-void SmfGalleryPrivate::albums(QStringList names, SmfContact* user, int pageNum, int perPage)
-	  {
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_gallery->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  //TODO:- use different opcode incase post retreival is for other user
-	  //serialize SmfContact if post retrieval is for other user
-	  if(user)
-		  {
-		  //now serialize SmfContact 
-		  m_xtraInfoSerialized.clear();
-		  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-		  Xtrawrite<<*(user);
-		  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-		  write<<m_xtraInfoFlag;
-		  }
-	  else
-		  {
-		  m_xtraInfoFlag = 0;
-		  write<<m_xtraInfoFlag;
-		  }	
-	  QString intfName(galleryInterface);
-	  int maxalloc = MaxSmfPictureAlbumSize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureGetAlbums,maxalloc,m_xtraInfoSerialized);
-	  }
-
-  /**
- * Get the picture listing asynchronously.
- * The picturesAvailable() signal is emitted with SmfPictureList once the pictures have arrived.
- * When the list is big user can specify the page number and per page item data.
- * If not supplied by the user default values are used.
- * @param albums album(s) whose pictures are being requested
- * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
- * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-void SmfGalleryPrivate::pictures(SmfPictureAlbumList albums,int pageNum,int perPage)
-	  {
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_gallery->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  Xtrawrite<<albums;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(galleryInterface);
-	  int maxalloc = MaxSmfPictureSize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureGetPictures,maxalloc,m_xtraInfoSerialized);
-	  }
-
-  /**
-	 * Upload an image.Implemented as slot to connect to UI controls more easily
-	 * uploadFinished() signal is emitted with the success value of the upload
-	 * @param image the image to be uploaded
-	 */
-void SmfGalleryPrivate::upload(SmfPicture* image, SmfPictureAlbum* album)
-	   {
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_gallery->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  Xtrawrite<<image;
-	  Xtrawrite<<album;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(galleryInterface);
-	  int maxalloc = 100;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureUpload,maxalloc,m_xtraInfoSerialized);
-	  }
-
-	/**
-	 * Upload an list image.Implemented as slot to connect to UI controls more easily
-	 * uploadFinished() signal is emitted with the success value of the upload
-	 * @param images the list image to be uploaded
-	 */
-void SmfGalleryPrivate::upload(SmfPictureList* images, SmfPictureAlbum* album)
-	{
-
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_gallery->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  Xtrawrite<<images;
-	  Xtrawrite<<album;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(galleryInterface);
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureMultiUpload,maxalloc,m_xtraInfoSerialized);
-	  
-	}
-
-  /**
-   * Posts a comment for an image. uploadFinished() signal is emitted
-   * with success of the post once comment is posted.
-   * @param image Image to comment on
-   * @param comment Comment to post
-   */
-   void SmfGalleryPrivate::postComment(SmfPicture image, SmfComment comment)
-	   {
-
-		  //We need to pass Opcode and SmfProvider serialized into bytearray 
-		  m_baseProvider = m_gallery->getProvider();
-		  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-		  write<<*(m_baseProvider);
-		  m_pageInfoFlag = 0;
-		  write<<m_pageInfoFlag;
-
-		  m_xtraInfoSerialized.clear();
-		  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-		  Xtrawrite<<image;
-		  Xtrawrite<<comment;
-		  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-		  write<<m_xtraInfoFlag;
-
-		  QString intfName(galleryInterface);
-		  int maxalloc = 100;
-		  //call private impl's send method
-		  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPicturePostComment,maxalloc,m_xtraInfoSerialized);
-		  
-		}
-   //from smfobserver
-   void SmfGalleryPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error)
-	   {
-	writeLog("SmfPostProviderPrivate::resultsAvailable");
-	
-	//note:- "result" is serialized and we need to de-serialize it as per opcode
-	//Order of serialization Error value followed by data
-	
-	QDataStream reader(&result,QIODevice::ReadOnly);
-	
-	//Now de-serialize it based on opcode
-	switch(opcode)
-		{
-		case SmfPictureGetPicturesComplete:
-				{
-					if(m_picList)
-						{
-						delete m_picList;
-						m_picList = NULL;
-						}
-		
-					m_picList = new SmfPictureList;
-					reader>>*(m_picList);
-					writeLog("m_picList.count=");
-					writeLog(QString::number(m_picList->count()));
-					//not incorporating paging now
-					SmfResultPage page;
-		
-					emit m_gallery->picturesAvailable(m_picList,error,page);
-				
-				}
-				break;
-			case SmfPictureUpload:
-			case SmfPicturePostComment:
-				{
-					
-					int errInt;
-					reader>>errInt;
-					writeLog("success=");
-					QList<SmfError> successList;
-					SmfError success = (SmfError)errInt; 
-					successList.append(success);
-					emit m_gallery->uploadFinished(successList);
-				
-				}
-				break;
-			case SmfPictureMultiUpload:
-				{
-				QList<int> successListInt;
-				QList<SmfError> successList;
-				reader>>successListInt;
-				foreach(int success,successListInt)
-					{
-					successList.append((SmfError)success);
-					}
-				emit m_gallery->uploadFinished(successList);
-			
-				}
-				break;
-				default:
-					User::Panic(_L("Gallerprivate="),opcode);
-					
-		}
-}
-   
--- a/smf/smfservermodule/smfclient/client/smfgallery_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- * Description:
- * Private implementation for SmfGallery class 
- *
- */
-/**
- * Private Qt wrapper
- * Provided to accomodate diff facilities in diff platforms.
- * Uses Symbian client-server for Symbian
- * QDbus for linux
- * QLocalserver for rest of the platforms
- * Note:- only symbian client-server impl is provided at the moment
- **/
-#ifndef SMFGALLERY_P_H
-#define SMFGALLERY_P_H
-
-#include "smfprovider.h"
-#include "SmfClientGlobal.h"
-#include "smfGlobal.h"
-#include "SmfObserver.h"
-
-class SmfProvider;
-
-
-#include <QObject>
-#include <QDateTime>
-#include <QStringList>
-
-#include "SmfObserver.h"
-#include "smfgallery.h"
-#ifdef Q_OS_SYMBIAN
-class CSmfClientSymbian;
-#else
-class SmfClientQt;
-#endif
-class SmfGalleryPrivate : public smfObserver
-{
-  Q_OBJECT
-
-public:
-
-  SmfGalleryPrivate(SmfGallery* gallery=0);
-  ~SmfGalleryPrivate();
-  
-  /**
-	 * Get the album listing asynchronously.
-	 * The albumsAvailable() signal is emitted with SmfPictureAlbumList once the albums have arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-	 * @param names the subject or any keywords to be used to filter albums with that name
-	 * @param user the user whose albums are requested 
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-	void albums(QStringList names, SmfContact* user, int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-
-
-  /**
-	 * Get the picture listing asynchronously.
-	 * The picturesAvailable() signal is emitted with SmfPictureList once the pictures have arrived.
-	 * When the list is big user can specify the page number and per page item data.
-	 * If not supplied by the user default values are used.
-	 * @param albums album(s) whose pictures are being requested
-	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-	void pictures(SmfPictureAlbumList albums, int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-
-  /**
-	 * Upload an image.Implemented as slot to connect to UI controls more easily
-	 * uploadFinished() signal is emitted with the success value of the upload
-	 * @param image the image to be uploaded
-	 * @param album the optional destination album name 
-	 */
-	void upload(SmfPicture* image, SmfPictureAlbum* album=NULL) ;
-
-	/**
-	 * Upload an list image.Implemented as slot to connect to UI controls more easily
-	 * uploadFinished() signal is emitted with the success value of the upload
-	 * @param images the list image to be uploaded
-	 * @param album the optional destination album name 
-	 */
-	void upload(SmfPictureList* images, SmfPictureAlbum* album=NULL) ;
-
-  /**
-   * Posts a comment for an image. uploadFinished() signal is emitted
-   * with success of the post once comment is posted.
-   * @param image Image to comment on
-   * @param comment Comment to post
-   */
-   void postComment(SmfPicture image, SmfComment comment) ;
-	
-	/** from smfobserver */
-   void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
-	
-	
-private:
-	  SmfProvider* m_baseProvider;
-	  //serialized byte array of provider+other info to be sent to the server
-	  //The order:- SmfProvider then params in order of their appearance in fn
-	  QByteArray m_serializedDataToServer;
-	  //serialized xtra info, order of serialization follows order of param
-	  QByteArray m_xtraInfoSerialized;
-	#ifdef Q_OS_SYMBIAN
-	  CSmfClientSymbian* m_SmfClientPrivate;
-	  friend class CSmfClientSymbian;
-	#else
-	  SmfClientQt* m_SmfClientPrivate;
-	  friend class SmfClientQt;
-	#endif
-	  bool m_connected;
-	  SmfGallery* m_gallery;
-	  SmfPictureList* m_picList;
-	  int m_xtraInfoFlag;
-	  int m_pageInfoFlag;
-	 void writeLog(QString log) const{};
-
-};
-#endif
-
-
-
-
-
-
--- a/smf/smfservermodule/smfclient/client/smfmusic.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- * Description:
- * Music related services
- */
-
-#include "smfmusic.h"
-#include "smfmusic_p.h"
-
-//SmfMusicService start
-SmfMusicService::SmfMusicService(SmfProvider *baseProvider)
-: m_baseProvider(baseProvider)
-	{
-	m_private = new SmfMusicServicePrivate(this);
-	}
-SmfMusicService::~SmfMusicService()
-	{
-	  if(m_private)
-		  {
-		  delete m_private;
-		  m_private = NULL;
-		  }
-	}
-void SmfMusicService::userinfo()
-	{
-	m_private->userinfo();
-	}
-void SmfMusicService::searchUser(SmfLocation venue, int pageNum, int perPage)
-	{
-	m_private->searchUser(venue,pageNum,perPage);
-	}
-SmfProvider* SmfMusicService::getProvider()
-	{
-	return m_baseProvider;
-	}
-//SmfMusicService end
-
-//SmfMusicSearch start
-SmfMusicSearch::SmfMusicSearch(SmfProvider *baseProvider)
-:m_baseProvider(baseProvider)
-	{
-	m_private = new SmfMusicSearchPrivate(this);
-	}
-SmfMusicSearch::~SmfMusicSearch()
-	{
-	
-	}
-void SmfMusicSearch::recommendations(SmfTrackInfo track, int pageNum, int perPage)
-	{
-	m_private->recommendations(track,pageNum,perPage);
-	}
-void SmfMusicSearch::tracks(SmfTrackInfo track, int pageNum, int perPage)
-	{
-	m_private->tracks(track,pageNum,perPage);
-	}
-void SmfMusicSearch::trackInfo(SmfMusicFingerPrint signature, int pageNum, int perPage)
-	{
-	m_private->trackInfo(signature,pageNum,perPage);
-	}
-void SmfMusicSearch::stores(SmfTrackInfo track, int pageNum, int perPage)
-	{
-	m_private->stores(track,pageNum,perPage);
-	}
-SmfProvider* SmfMusicSearch::getProvider()
-	{
-	return m_baseProvider;
-	}
-void SmfMusicSearch::postCurrentPlaying(SmfTrackInfo track)
-	{
-	m_private->postCurrentPlaying(track);
-	}
-void SmfMusicSearch::postRating(SmfTrackInfo track, SmfMusicRating rate)
-	{
-	m_private->postRating(track,rate);
-	}
-void SmfMusicSearch::postComments(SmfTrackInfo track, SmfComment comment)
-	{
-	m_private->postComments(track,comment);
-	}
-//SmfMusicSearch end
-
-//SmfPlaylistService start
-SmfPlaylistService::SmfPlaylistService(SmfProvider *baseProvider)
-: m_baseProvider(baseProvider)
-	{
-	m_private = new SmfPlaylistServicePrivate(this);
-	
-	}
-void SmfPlaylistService::playlists(int pageNum, int perPage)
-	{
-	m_private->playlists(pageNum,perPage);
-	}
-void SmfPlaylistService::playlistsOf(SmfMusicProfile *user, int pageNum, int perPage)
-	{
-	m_private->playlistsOf(user,pageNum,perPage);
-	}
-int SmfPlaylistService::addToPlaylist(SmfPlaylist plst, SmfTrackInfoList *tracks)
-	{
-	m_private->addToPlaylist(plst,tracks);
-	}
-int SmfPlaylistService::postCurrentPlayingPlaylist(SmfPlaylist plst)
-	{
-	m_private->postCurrentPlayingPlaylist(plst);
-	}
-SmfProvider* SmfPlaylistService::getProvider()
-	{
-	return m_baseProvider;
-	}
-SmfPlaylistService::~SmfPlaylistService()
-	{
-	
-	}
-//SmfPlaylistService end
-
-//SmfMusicEvents start
-SmfMusicEvents::SmfMusicEvents(SmfProvider *baseProvider)
-:m_baseProvider(baseProvider)
-	{
-	m_private = new SmfMusicEventsPrivate(this);
-	}
-void SmfMusicEvents::events(QContactGeoLocation location, int pageNum, int perPage)
-	{
-	m_private->events(location,pageNum,perPage);
-	}
-void SmfMusicEvents::events(SmfLocation venue, int pageNum, int perPage)
-	{
-	m_private->events(venue,pageNum,perPage);
-	}
-void SmfMusicEvents::venues(QContactGeoLocation location, int pageNum, int perPage)
-	{
-	m_private->venues(location,pageNum,perPage);
-	}
-void SmfMusicEvents::postEvents(SmfEventList events)
-	{
-	m_private->postEvents(events);
-	}
-SmfProvider* SmfMusicEvents::getProvider()
-	{
-	return m_baseProvider;
-	}
-SmfMusicEvents::~SmfMusicEvents()
-	{
-	
-	}
-
-//SmfMusicEvents end
-
-
-//SmfLyricsService start
-SmfLyricsService::SmfLyricsService(SmfProvider *baseProvider)
-:m_baseProvider(baseProvider)
-	{
-	m_private = new SmfLyricsServicePrivate(this);
-	}
-void SmfLyricsService::lyrics(SmfTrackInfo track, int pageNum, int perPage)
-	{
-	m_private->lyrics(track,pageNum,perPage);
-	}
-void SmfLyricsService::subtitles(SmfTrackInfo track, SmfSubtitleSearchFilter filter, int pageNum, int perPage)
-	{
-	m_private->subtitles(track,filter,pageNum,perPage);
-	}
-SmfProvider* SmfLyricsService::getProvider()
-	{
-	return m_baseProvider;
-	}
-
-SmfLyricsService::~SmfLyricsService()
-	{
-	}
-
-//SmfLyricsService end
-
-
--- a/smf/smfservermodule/smfclient/client/smfmusic.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,485 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- * Description:
- * Music related services
- *
- */
-
-#ifndef SMFMUSIC_H
-#define SMFMUSIC_H
-
-#include <qmobilityglobal.h>
-#include <qgeopositioninfo.h>
-#include "smfglobal.h"
-#include "smfprovider.h"
-#include "smfcontact.h"
-#include "smfevent.h"
-#include "smfmusicfingerprint.h"
-#include "smfmusicrating.h"
-#include "smfcomment.h"
-#include "smfsubtitle.h"
-
-#include "smfmusicprofile.h"
-#include "smfalbum.h"
-#include "smfartists.h"
-#include "smfgroup.h"
-#include "smflyrics.h"
-#include "smfplaylist.h"
-#include "smftrackinfo.h"
-#include "smflocation.h"
-class SmfMusicServicePrivate;
-class SmfMusicSearchPrivate;
-class SmfLyricsServicePrivate;
-class SmfPlaylistServicePrivate;
-class SmfMusicEventsPrivate;
-
-using namespace QtMobility;
-
-typedef QList<SmfMusicProfile> SmfMusicProfileList;
-typedef QList<SmfTrackInfo> SmfTrackInfoList;
-typedef QList<SmfPlaylist> SmfPlaylistList;
-typedef QList<SmfLyrics> SmfLyricsList;
-typedef QList<SmfSubtitle> SmfSubtitleList;
-/**
- * @ingroup smf_client_group
-  * Basic music service ("org.symbian.smf.client.music.service")
-  */
-class SMFCLIENT_EXPORT SmfMusicService : public QObject
-{
-  Q_OBJECT
-
-public:
-  /**
-   * Constructs SmfMusicService.
-   * @param baseProvider The base provider info
-   * Seeing as this is a plug-in implementation, these will realistically
-   *  be generated by SMF factory of some kind
-   */
-   SmfMusicService(SmfProvider* baseProvider = 0);
-  ~SmfMusicService();
-
-public slots:
-
-  /**
-   * Gets self profile information asynchronously.
-   * userInfoAvailable() signal is emitted with SmfMusicProfile when the info is arrived
-   */
-  void userinfo() ;
-
-  /**
-   * Asynchronously searches information about other service users for a particular venue
-   * searchInfoAvailable() signal is emitted with SmfMusicProfileList when the info is arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void searchUser(SmfLocation venue,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ;
-
-  /**
-   * Gets the base provider info
-   */
-  SmfProvider* getProvider() ;
-
-
-signals:
-	/**
-	 * Notification on arrival of the self profile as result of userinfo().
-	 * @param profile The self profile
-	 */
-	void userInfoAvailable(SmfMusicProfile* profile, SmfError error);
-	/**
-	 * Notification on arrival of search info
-	 * @param profileList List of music profiles
-	 */
-	void searchInfoAvailable(SmfMusicProfileList& profileList, SmfError error,SmfResultPage resultPage);
-private:
-  SmfProvider* m_baseProvider;
-  SmfMusicServicePrivate* m_private;
-  friend class SmfMusicServicePrivate;
-};
-SMF_SERVICE_NAME(SmfMusicService, "org.symbian.smf.client.music.service\0.2")
-
-
-/**
-* Provides service ("org.symbian.smf.client.music.search") for music search
-*/
-class SMFCLIENT_EXPORT SmfMusicSearch : public QObject
-{
-  Q_OBJECT
-
-public:
-  /**
-   * Constructs SmfMusicSearch with base provider as arguement.
-   * Seeing as this is a plug-in implementation, these will realistically
-   * be generated by SMF factory of some kind
-   */
-
-  SmfMusicSearch(SmfProvider* baseProvider = 0);
-  ~SmfMusicSearch();
-
-public:
-  /**
-   * Searches for music recommendations similar to a particulartrack asynchronously.
-   * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
-   * once its arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param track The track for which similar recommendations need to be fetched.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void recommendations(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ; // basic list of track objects
-
-  /**
-   * Searches for tracks similar to a given track asynchronously.
-   * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
-   * once its arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param track The search criteria, similar tracks are searched
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void tracks(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ; // basic list of track objects
-
-  /**
-   * Searches for a track having similar finger print asynchronously.
-   * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
-   * once its arrived.
-   * @param signature The search criteria,signature to be searched for
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void trackInfo(SmfMusicFingerPrint signature,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ; // search by fingerprint object
-
-  /**
-   * Search information about where to buy this song from asynchronously.
-   * The signal storeSearchAvailable() is emitted with SmfProviderList once its arrived.
-   * @param track The search criteria for stores
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void stores(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ;
-
-  //APIs to get/set base provider info (SmfProvider)
-
-  /**
-   * Gets the base provider info
-   */
-  SmfProvider* getProvider()  ;
-
-
-public slots:
-
-	/**
-	 * Posts currently playing track.
-	 * Success can be checked by checking the signal postFinished()
-	 * @param track Track to post
-	 */
-  void postCurrentPlaying(SmfTrackInfo track)  ;
-  void postRating(SmfTrackInfo track, SmfMusicRating rate)  ;
-  void postComments(SmfTrackInfo track, SmfComment comment)  ;
-
-signals:
-	/**
-	 * Emitted when the search result for a track is available.
-	 * Note if number of tacks in the search is large, then it can download the list page by page.
-	 * In that case this signal is emitted multiple times.
-	 * @param resultPage Page number info
-	 */
-	void trackSearchAvailable(SmfTrackInfoList* result, SmfError error,SmfResultPage resultPage);
-
-	/**
-	 *  Emitted when the search result for a store is available.
-	 *  Note if number of tacks in the search is large, then it can download the list page by page.
-	 *  In that case this signal is emitted multiple times.
-	 *  @param resultPage Page number info
-	 */
-	void storeSearchAvailable(SmfProviderList* result, SmfError error, SmfResultPage resultPage);
-	void postfinished(SmfError error);
-private:
-  SmfProvider* m_baseProvider;
-  SmfMusicSearchPrivate* m_private;
-  friend class SmfMusicSearchPrivate;
-};
-SMF_SERVICE_NAME(SmfMusicSearch, "org.symbian.smf.client.music.search\0.2")
-
-
-/**
- * provides service ("org.symbian.smf.client.music.playlist")
- *
- * Interface to a remote playlist service. This class
- * provides some basic functionality to allow applications
- * to interact with playlists in some music related service provider (e.g. last.fm).
- *
- * Note that branding information for the particular service implementation
- * is available from getProvider() API. See also:
- * SmfProvider::serviceName(), SmfProvider::serviceIcon()
- *
- * All of the functionality described here should be implemented by a service
- * specific plug-in object.
- *
- */
-class SMFCLIENT_EXPORT SmfPlaylistService : public QObject
-{
-  Q_OBJECT
-
-public:
-  /**
-   * Constructs SmfPlaylistService with base provider info
-   * Seeing as this is a plug-in implementation, these will realistically
-   * be generated by SMF factory of some kind
-   */
-  SmfPlaylistService(SmfProvider* baseProvider = 0);
-  ~SmfPlaylistService();
-
-public:
-
-  /**
-   * Gets the list playlists for the logged-in user asynchronously.
-   * The signal playlistsListAvailable() signal is emitted with
-   * SmfPlaylistList once its arrived .
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void playlists(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ; // basic list of playlist objects
-
-  /**
-   * Gets the list playlists for the given user asynchronously.
-   * The signal playlistsListAvailable() signal is emitted with
-   * SmfPlaylistList once its arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param user User for which to get the playlists
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void playlistsOf(SmfMusicProfile* user,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ;
-
-  //APIs to get/set base provider info (SmfProvider)
-
-  /**
-   * Gets the base provider info
-   */
-  SmfProvider* getProvider()  ;
-
-
-public slots:
-
-	/**
-	 * Upload currently playing track to a playlist. Signal
-	 * playlistUpdated() can be checked for success value
-	 * @param plst The playlist to be added in
-	 * @param tracks The list of tracks to uploaded
-	 */
-  int addToPlaylist(SmfPlaylist plst, SmfTrackInfoList* tracks)  ;
-
-	/**
-	 * Upload currently playing playlist . Signal
-	 * playlistUpdated() can be checked for success value
-	 * @param plst The playlist to be uploaded
-	 */
-  int postCurrentPlayingPlaylist(SmfPlaylist plst)  ;
-
-
-signals:
-	/**
-	 * Notification of availability of list of playlists requested.
-	 * Note if number of list is large, then it can download the list page by page.
-	 * In that case this signal is emitted multiple times.
-	 * @param resultPage Page number info
-	 */
-	void playlistsListAvailable(SmfPlaylistList*, SmfError error, SmfResultPage resultPage);
-	/**
-	 * Signals remote updation of playlist with success value
-	 */
-    void playlistUpdated(SmfError success) ;
-private:
-  SmfProvider* m_baseProvider;
-  SmfPlaylistServicePrivate* m_private;
-  friend class SmfPlaylistServicePrivate;
-};
-SMF_SERVICE_NAME(SmfPlaylistService, "org.symbian.smf.client.music.playlist\0.2")
-
-
-/**
-* provides service ("org.symbian.smf.client.music.events")
-*/
-class SMFCLIENT_EXPORT SmfMusicEvents : public QObject
-{
-  Q_OBJECT
-
-public:
-  /**
-   * Constructs SmfMusicEvents with base provider info
-   * Seeing as this is a plug-in implementation, these will realistically
-   *  be generated by SMF factory of some kind
-   */
-  SmfMusicEvents(SmfProvider* baseProvider = 0);
-  ~SmfMusicEvents();
-
-public:
-
-  /**
-   * Gets list of events in a particular location asynchronously.
-   * eventsAvailable() signal is emitted with SmfEventsList once its arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void events(QContactGeoLocation location,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ;
-
-  /**
-   * Gets list of venues of a particular location asynchronously.
-   * venuesAvailable() signal is emitted with SmfLocationList once its arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void venues(QContactGeoLocation location,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ; // basic list of venue objects
-
-  /**
-   * Gets list of events in a particular venue asynchronously.
-   * eventsAvailable() signal is emitted with SmfEventsList once its arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void events(SmfLocation venue,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ; // basic list of events objects
-
-
-  //APIs to get/set base provider info (SmfProvider)
-
-  /**
-   * Gets the base provider info
-   */
-  SmfProvider* getProvider()  ;
-
-
-public slots:
-
-	/**
-	 * Updates events. Might not be supported by all service provider.
-	 * eventsUpdated() signal can be checked for success value.
-	 * @param SmfEventsList List of events to be posted
-	 */
-	 void postEvents(SmfEventList events);
-
-signals:
-
-	/**
-	 * Notification of the success of request to post an event
-	 */
-	void eventsUpdated(SmfError success);
-
-	/**
-	 * Notification on arrival of event lists
-	 * Note if number of list is large, then it can download the list page by page.
-	 * In that case this signal is emitted multiple times.
-	 * @param resultPage Page number info
-	 */
-	void eventsAvailable(SmfEventList* list, SmfError error, SmfResultPage resultPage);
-
-	/**
-	 *  Notification on arrival of venues lists
-	 * Note if number of list is large, then it can download the list page by page.
-	 * In that case this signal is emitted multiple times.
-	 * @param resultPage Page number info
-	 */
-	void venuesAvailable(SmfLocationList* list, SmfError error, SmfResultPage resultPage);
-private:
-  SmfProvider* m_baseProvider;
-  SmfMusicEventsPrivate* m_private;
-  friend class SmfMusicEventsPrivate;
-};
-SMF_SERVICE_NAME(SmfMusicEvents, "org.symbian.smf.client.music.events\0.2")
-
-
-/**
-* provides service ("org.symbian.smf.client.music.lyrics")
-*/
-class SMFCLIENT_EXPORT SmfLyricsService : public QObject
-{
-  Q_OBJECT
-
-public:
-  /**
-   * Constructs SmfLyricsService with base provider info.
-   * Seeing as this is a plug-in implementation, these will realistically
-   * be generated by SMF factory of some kind
-   */
-
-  SmfLyricsService(SmfProvider* baseProvider = 0);
-  ~SmfLyricsService();
-
-public:
-
-  /**
-   * Get the lyrics lists asynchrnously, it fetches texts without time info.
-   * lyricsAvailable() notification comes SmfLyricsList with when the data is available
-   * @param track Track for which lyrics needs to be fetched.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void lyrics(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ;
-
-  /**
-   * Get the lyrics lists asynchrnously, it fetches texts with time info.
-   * Subtitle search filter can be applied
-   * subtitleAvailable() notification comes SmfSubtitleList with when the data is available
-   * @param track Track for which subtitle needs to be fetched.
-   * @param filter Subtitle search filter
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void subtitles(SmfTrackInfo track, SmfSubtitleSearchFilter filter,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ; // texts with time information
-  //APIs to get/set base provider info (SmfProvider)
-
-  /**
-   * Gets the base provider info
-   */
-  SmfProvider* getProvider()  ;
-signals:
-
-	/**
-	 * Notification on arrival of lyrics
-	 * Note if the list is large, then it can download the list page by page.
-	 * In that case this signal is emitted multiple times.
-	 * @param resultPage Page number info
-	 */
-	void lyricsAvailable(SmfLyricsList* list, SmfError error, SmfResultPage resultPage);
-
-	/**
-	 * Notification on arrival of subtitle based on filter.
-	 * Note if the list is large, then it can download the list page by page.
-	 * In that case this signal is emitted multiple times.
-	 * @param resultPage Page number info
-	 */
-	void subtitleAvailable(SmfSubtitleList* list, SmfError error, SmfResultPage resultPage);
-private:
-  SmfProvider* m_baseProvider;
-  SmfLyricsServicePrivate* m_private;
-  friend class SmfLyricsServicePrivate;
-};
-SMF_SERVICE_NAME(SmfLyricsService, "org.symbian.smf.client.music.lyrics\0.2")
-
-#endif // SMFMUSIC_H
-
--- a/smf/smfservermodule/smfclient/client/smfmusic_p.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,791 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * 
- */
-#include "smfmusic_p.h"
-
-
-SmfMusicServicePrivate::SmfMusicServicePrivate(SmfMusicService* aMusicService)
-:m_musicService(aMusicService)
-	{
-	//private impl for symbian
-	#ifdef Q_OS_SYMBIAN
-	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
-	#else
-	//TODO:- Use private impl for other platforms or else Qt impl
-	#endif
-	}
-
-void SmfMusicServicePrivate::searchUser(SmfLocation venue, int pageNum, int perPage)
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicService->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfLocation
-	  Xtrawrite<<venue;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicServiceInterface);
-	  int maxalloc = SmfMusicProfileMaxSize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicSearchUser,maxalloc,m_xtraInfoSerialized);
-	}
-void SmfMusicServicePrivate::userinfo()
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicService->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  m_xtraInfoSerialized.clear();
-	  m_xtraInfoFlag = 0;
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicServiceInterface);
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetUserInfo,maxalloc,m_xtraInfoSerialized);
-	}
-void SmfMusicServicePrivate::resultsAvailable(QByteArray result, SmfRequestTypeID opcode, SmfError error)
-	{
-	//note:- "result" is serialized and we need to de-serialize it as per opcode
-	//Order of serialization Error value followed by data
-	
-	QDataStream reader(&result,QIODevice::ReadOnly);
-	
-	//Now de-serialize it based on opcode
-	switch(opcode)
-		{
-		case SmfMusicGetUserInfo:
-				{
-					if(m_profile)
-						{
-						delete m_profile;
-						m_profile = NULL;
-						}
-		
-					m_profile = new SmfMusicProfile;
-					//TODO:- serialization/deserialization of SmfMusicProfile
-					reader>>*(m_profile);
-					//not incorporating paging now
-					SmfResultPage page;
-		
-					emit m_musicService->userInfoAvailable(m_profile,error);
-				
-				}
-				break;
-		case SmfMusicSearchUser:
-				{
-					m_profileList.clear();
-					//TODO:- serialization/deserialization of SmfMusicProfile
-					reader>>m_profileList;
-					//not incorporating paging now
-					SmfResultPage page;
-		
-					emit m_musicService->searchInfoAvailable(m_profileList,error,page);
-				
-				}
-				break;
-		}
-	}
-
-SmfMusicServicePrivate::~SmfMusicServicePrivate()
-	{
-		if(m_SmfClientPrivate)
-		{
-			delete m_SmfClientPrivate;
-			m_SmfClientPrivate = NULL;
-		}
-	}
-
-SmfMusicSearchPrivate::SmfMusicSearchPrivate(SmfMusicSearch *aMusicSearch)
-: m_musicSearch(aMusicSearch)
-	{
-		//private impl for symbian
-		#ifdef Q_OS_SYMBIAN
-		m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
-		#else
-		//TODO:- Use private impl for other platforms or else Qt impl
-		#endif
-	}
-
-SmfMusicSearchPrivate::~SmfMusicSearchPrivate()
-	{
-		if(m_SmfClientPrivate)
-		{
-			delete m_SmfClientPrivate;
-			m_SmfClientPrivate = NULL;
-		}
-	}
-
-void SmfMusicSearchPrivate::stores(SmfTrackInfo track, int pageNum, int perPage)
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicSearch->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<track;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicSearchInterface);
-	  /** @TODO:-revisit all the maxalloc */
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetStores,maxalloc,m_xtraInfoSerialized);
-	}
-void SmfMusicSearchPrivate::recommendations(SmfTrackInfo track, int pageNum, int perPage)
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicSearch->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<track;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicSearchInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetRecommendations,maxalloc,m_xtraInfoSerialized);
-	}
-
-void SmfMusicSearchPrivate::tracks(SmfTrackInfo track, int pageNum, int perPage)
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicSearch->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<track;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicSearchInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetTracks,maxalloc,m_xtraInfoSerialized);
-	}
-
-void SmfMusicSearchPrivate::trackInfo(SmfMusicFingerPrint signature, int pageNum, int perPage)
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicSearch->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<signature;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicSearchInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetTrackInfo,maxalloc,m_xtraInfoSerialized);
-	}
-void SmfMusicSearchPrivate::postCurrentPlaying(SmfTrackInfo track) 
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicSearch->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<track;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicSearchInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicPostCurrentPlaying,maxalloc,m_xtraInfoSerialized);
-	}
-void SmfMusicSearchPrivate::postRating(SmfTrackInfo track, SmfMusicRating rate) 
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicSearch->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<track;
-	  Xtrawrite<<rate;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicSearchInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicPostRating,maxalloc,m_xtraInfoSerialized);
-	}
-void SmfMusicSearchPrivate::postComments(SmfTrackInfo track, SmfComment comment) 
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicSearch->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<track;
-	  Xtrawrite<<comment;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicSearchInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicPostComment,maxalloc,m_xtraInfoSerialized);
-	}
-void SmfMusicSearchPrivate::resultsAvailable(QByteArray result, SmfRequestTypeID opcode, SmfError error)
-	{
-	//note:- "result" is serialized and we need to de-serialize it as per opcode
-	//Order of serialization Error value followed by data
-	
-	QDataStream reader(&result,QIODevice::ReadOnly);
-	
-	//Now de-serialize it based on opcode
-	switch(opcode)
-		{
-		case SmfMusicGetStores:
-				{
-					if(m_providers)
-						{
-						delete m_providers;
-						m_providers = NULL;
-						}
-		
-					m_providers = new SmfProviderList;
-					//TODO:- serialization/deserialization of SmfMusicProfile
-					reader>>*(m_providers);
-					//not incorporating paging now
-					SmfResultPage page;
-		
-					emit m_musicSearch->storeSearchAvailable(m_providers,error,page);
-				
-				}
-				break;
-		case SmfMusicGetRecommendations:
-		case SmfMusicGetTracks:
-		case SmfMusicGetTrackInfo:
-				{
-
-				if(m_trackInfoList)
-					{
-					delete m_trackInfoList;
-					m_trackInfoList = NULL;
-					}
-	
-				m_trackInfoList = new SmfTrackInfoList;
-				//TODO:- serialization/deserialization of SmfMusicProfile
-				reader>>*(m_trackInfoList);
-				//not incorporating paging now
-				SmfResultPage page;
-	
-				emit m_musicSearch->trackSearchAvailable(m_trackInfoList,error,page);
-			
-				//trackSearchAvailable(SmfTrackInfoList* result
-				}
-				break;
-		case SmfMusicPostCurrentPlaying:
-		case SmfMusicPostRating:
-		case SmfMusicPostComment:
-			{
-			emit m_musicSearch->postfinished(error);
-			}
-			break;
-		}
-	}
-
-SmfPlaylistServicePrivate::SmfPlaylistServicePrivate(SmfPlaylistService *aPlayLstSrvc)
-: m_playlstSrvc(aPlayLstSrvc)
-	{
-	//private impl for symbian
-	#ifdef Q_OS_SYMBIAN
-	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
-	#else
-	//TODO:- Use private impl for other platforms or else Qt impl
-	#endif
-	}
-SmfPlaylistServicePrivate::~SmfPlaylistServicePrivate()
-	{
-	
-	}
-int SmfPlaylistServicePrivate::postCurrentPlayingPlaylist(SmfPlaylist plst)
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_playlstSrvc->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<plst;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(playlistServiceInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicPostCurrentPlayingPlaylist,maxalloc,m_xtraInfoSerialized);
-	}
-
-void SmfPlaylistServicePrivate::playlistsOf(SmfMusicProfile *user, int pageNum, int perPage)
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_playlstSrvc->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<*(user);
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(playlistServiceInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetPlaylistsOfUser,maxalloc,m_xtraInfoSerialized);
-	}
-
-
-void SmfPlaylistServicePrivate::playlists(int pageNum, int perPage)
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_playlstSrvc->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  m_xtraInfoFlag = 0;
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(playlistServiceInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetPlaylists,maxalloc);
-	}
-
-
-
-int SmfPlaylistServicePrivate::addToPlaylist(SmfPlaylist plst, SmfTrackInfoList *tracks)
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_playlstSrvc->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<plst;
-	  Xtrawrite<<*(tracks);
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(playlistServiceInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicAddToPlaylist,maxalloc,m_xtraInfoSerialized);
-	}
-void SmfPlaylistServicePrivate::resultsAvailable(QByteArray result, SmfRequestTypeID opcode, SmfError error)
-	{
-	//note:- "result" is serialized and we need to de-serialize it as per opcode
-	//Order of serialization Error value followed by data
-	
-	QDataStream reader(&result,QIODevice::ReadOnly);
-	
-	//Now de-serialize it based on opcode
-	switch(opcode)
-		{
-		case SmfMusicPostCurrentPlayingPlaylist:
-		case SmfMusicAddToPlaylist:
-				{
-				emit m_playlstSrvc->playlistUpdated(error);				
-				}
-				break;
-		case SmfMusicGetPlaylistsOfUser:
-		case SmfMusicGetPlaylists:
-			{
-			if(m_playlistList)
-				{
-				delete m_playlistList;
-				m_playlistList = NULL;
-				}
-
-			m_playlistList = new SmfPlaylistList;
-			//TODO:- serialization/deserialization
-			reader>>*(m_playlistList);
-			SmfResultPage page;
-			emit m_playlstSrvc->playlistsListAvailable(m_playlistList,error,page);
-			}
-			break;
-		default:
-			Q_ASSERT_X(1,"SmfPlaylistServicePrivate::resultsAvailable","default");
-		}
-	}
-
-SmfMusicEventsPrivate::SmfMusicEventsPrivate(SmfMusicEvents *aMusicEvent)
-:m_musicEvent(aMusicEvent)
-	{
-	//private impl for symbian
-	#ifdef Q_OS_SYMBIAN
-	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
-	#else
-	//TODO:- Use private impl for other platforms or else Qt impl
-	#endif
-	}
-
-SmfMusicEventsPrivate::~SmfMusicEventsPrivate()
-	{
-	
-	}
-
-void SmfMusicEventsPrivate::events(SmfLocation venue, int pageNum, int perPage)
-	{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicEvent->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<venue;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicEventServiceInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetEventsOnVenue,maxalloc,m_xtraInfoSerialized);
-	}
-
-void SmfMusicEventsPrivate::events(QContactGeoLocation location, int pageNum, int perPage)
-{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicEvent->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  QString latLong;
-	  latLong += QString::number(location.latitude());
-	  latLong += ",";
-	  latLong += QString::number(location.longitude());
-	  Xtrawrite<<latLong;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicEventServiceInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetEventsOnLoc,maxalloc,m_xtraInfoSerialized);
-	}
-
-
-
-void SmfMusicEventsPrivate::venues(QContactGeoLocation location, int pageNum, int perPage)
-{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicEvent->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  QString latLong;
-	  latLong += QString::number(location.latitude());
-	  latLong += ",";
-	  latLong += QString::number(location.longitude());
-	  Xtrawrite<<latLong;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicEventServiceInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetVenueOnLoc,maxalloc,m_xtraInfoSerialized);
-	}
-
-void SmfMusicEventsPrivate::postEvents(SmfEventList events)
-{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_musicEvent->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<events;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(musicEventServiceInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicPostEvents,maxalloc,m_xtraInfoSerialized);
-	}
-void SmfMusicEventsPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error)
-	{
-	//note:- "result" is serialized and we need to de-serialize it as per opcode
-	//Order of serialization Error value followed by data
-	
-	QDataStream reader(&result,QIODevice::ReadOnly);
-	
-	//Now de-serialize it based on opcode
-	switch(opcode)
-		{
-		case SmfMusicGetEventsOnVenue:
-			{
-			if(m_events)
-				{
-				delete m_events;
-				m_events = NULL;
-				}
-			m_events = new SmfEventList;
-			reader>>*(m_events);
-			SmfResultPage page;
-			m_musicEvent->eventsAvailable(m_events,error,page);
-			}
-			break;
-		case SmfMusicGetVenueOnLoc:
-			{
-			if(m_venues)
-				{
-				delete m_venues;
-				m_venues = NULL;
-				}
-			m_venues = new SmfLocationList;
-			reader>>*(m_venues);
-			SmfResultPage page;
-			m_musicEvent->venuesAvailable(m_venues,error,page);
-			}
-			break;
-		case SmfMusicPostEvents:
-			{
-			m_musicEvent->eventsUpdated(error);
-			}
-			break;
-		case SmfMusicGetEventsOnLoc:
-			{
-			if(m_venues)
-				{
-				delete m_venues;
-				m_venues = NULL;
-				}
-			m_venues = new SmfLocationList;
-			reader>>*(m_venues);
-			SmfResultPage page;
-			m_musicEvent->venuesAvailable(m_venues,error,page);
-			}
-			break;
-		default:
-			Q_ASSERT_X(1,"SmfMusicEventsPrivate::resultsAvailable","default");
-		}
-	}
-SmfLyricsServicePrivate::SmfLyricsServicePrivate(SmfLyricsService *aLyricsSrvc)
-: m_lyricsSrvc(aLyricsSrvc)
-{
-	//private impl for symbian
-	#ifdef Q_OS_SYMBIAN
-	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
-	#else
-	//TODO:- Use private impl for other platforms or else Qt impl
-	#endif
-}
-
-SmfLyricsServicePrivate::~SmfLyricsServicePrivate()
-	{
-	
-	}
-
-
-
-void SmfLyricsServicePrivate::subtitles(SmfTrackInfo track, SmfSubtitleSearchFilter filter, int pageNum, int perPage)
-{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_lyricsSrvc->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<track;
-	  Xtrawrite<<filter;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(lyricsServiceInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetSubtitle,maxalloc,m_xtraInfoSerialized);
-	}
-
-void SmfLyricsServicePrivate::lyrics(SmfTrackInfo track, int pageNum, int perPage)
-{
-	  //We need to pass Opcode and SmfProvider serialized into bytearray 
-	  m_baseProvider = m_lyricsSrvc->getProvider();
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  m_xtraInfoSerialized.clear();
-	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //TODO:- provide serialization/deserialization of SmfTrackInfo
-	  Xtrawrite<<track;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-
-	  QString intfName(lyricsServiceInterface);
-	  //TODO:-revisit all the maxalloc
-	  int maxalloc = 1000;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfMusicGetLyrics,maxalloc,m_xtraInfoSerialized);
-	}
-void SmfLyricsServicePrivate::resultsAvailable(QByteArray result, SmfRequestTypeID opcode, SmfError error)
-	{
-	//note:- "result" is serialized and we need to de-serialize it as per opcode
-
-	QDataStream reader(&result,QIODevice::ReadOnly);
-	
-	//Now de-serialize it based on opcode
-	switch(opcode)
-		{
-		case SmfMusicGetLyrics:
-			{
-			if(m_lyricsList)
-				{
-				delete m_lyricsList;
-				m_lyricsList = NULL;
-				}
-			m_lyricsList = new SmfLyricsList;
-			reader>>*(m_lyricsList);
-			SmfResultPage page;
-			emit m_lyricsSrvc->lyricsAvailable(m_lyricsList,error,page);
-			}
-			break;
-		case SmfMusicGetSubtitle:
-			{
-			if(m_subList)
-				{
-				delete m_subList;
-				m_subList = NULL;
-				}
-			m_subList = new SmfSubtitleList;
-			reader>>*(m_subList);
-			SmfResultPage page;
-			emit m_lyricsSrvc->subtitleAvailable(m_subList,error,page);
-			}
-			break;
-		default:
-			Q_ASSERT_X(1,"SmfLyricsServicePrivate::resultsAvailable","default");
-		}
-	}
-
--- a/smf/smfservermodule/smfclient/client/smfmusic_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,381 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * 
- */
-
-#ifndef SMFMUSICPRIVATE_H_
-#define SMFMUSICPRIVATE_H_
-
-#include "smfmusic.h"
-#include "smfglobal.h"
-#include "smfobserver.h"
-#include "smfcomment.h"
-#ifdef Q_OS_SYMBIAN
-#include "smfclientsymbian.h"
-#else
-#include "smfclientqt.h"
-#endif
-class SmfMusicService;
-class SmfMusicSearch;
-class SmfPlaylistService;
-class SmfMusicEvents;
-class SmfLyricsService;
-
-class SmfMusicServicePrivate : public smfObserver
-	{
-	Q_OBJECT
-public:
-	/**
-	 * Constructor
-	 */
-	SmfMusicServicePrivate(SmfMusicService* aMusicService);
-	~SmfMusicServicePrivate();
-	/**
-	* Gets self profile information asynchronously.
-	* userInfoAvailable() signal is emitted with SmfMusicProfile when the info is arrived
-	*/
-	void userinfo() ;
-	
-	/**
-	* Asynchronously searches information about other service users for a particular venue
-	* searchInfoAvailable() signal is emitted with SmfMusicProfileList when the info is arrived.
-	* When the list is big user can specify the page number and per page item data.
-	* If not supplied by the user default values are used.
-	* @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-	* @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-	*/
-	void searchUser(SmfLocation venue,int pageNum,int perPage) ;
-	
-	/** from smfobserver */
-   void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
-private:
-	  SmfProvider* m_baseProvider;
-	  //serialized byte array of provider+other info to be sent to the server
-	  //The order:- SmfProvider then params in order of their appearance in fn
-	  QByteArray m_serializedDataToServer;
-	  //serialized xtra info, order of serialization follows order of param
-	  QByteArray m_xtraInfoSerialized;
-	#ifdef Q_OS_SYMBIAN
-	  CSmfClientSymbian* m_SmfClientPrivate;
-	  friend class CSmfClientSymbian;
-	  int m_xtraInfoFlag;
-	  int m_pageInfoFlag;
-	#else
-	  SmfClientQt* m_SmfClientPrivate;
-	  friend class SmfClientQt;
-	#endif
-	  bool m_connected;
-	  SmfMusicService* m_musicService;
-	  SmfMusicProfile* m_profile;
-	  SmfMusicProfileList m_profileList;
-	};
-//SmfMusicSearch
-class SmfMusicSearchPrivate : public smfObserver
-	{
-	Q_OBJECT
-public:
-	/**
-	 * Constructor
-	 */
-	SmfMusicSearchPrivate(SmfMusicSearch* aMusicSearch);
-	~SmfMusicSearchPrivate();
-public:
-	  /**
-	   * Searches for music recommendations similar to a particulartrack asynchronously.
-	   * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
-	   * once its arrived.
-	   * When the list is big user can specify the page number and per page item data.
-	   * If not supplied by the user default values are used.
-	   * @param track The track for which similar recommendations need to be fetched.
-	   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-	   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-	   */
-	  void recommendations(SmfTrackInfo track,int pageNum,int perPage)  ; // basic list of track objects
-
-	  /**
-	   * Searches for tracks similar to a given track asynchronously.
-	   * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
-	   * once its arrived.
-	   * When the list is big user can specify the page number and per page item data.
-	   * If not supplied by the user default values are used.
-	   * @param track The search criteria, similar tracks are searched
-	   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-	   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-	   */
-	  void tracks(SmfTrackInfo track,int pageNum,int perPage)  ; // basic list of track objects
-
-	  /**
-	   * Searches for a track having similar finger print asynchronously.
-	   * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
-	   * once its arrived.
-	   * @param signature The search criteria,signature to be searched for
-	   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-	   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-	   */
-	  void trackInfo(SmfMusicFingerPrint signature,int pageNum,int perPage)  ; // search by fingerprint object
-
-	  /**
-	   * Search information about where to buy this song from asynchronously.
-	   * The signal storeSearchAvailable() is emitted with SmfProviderList once its arrived.
-	   * @param track The search criteria for stores
-	   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-	   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-	   */
-	  void stores(SmfTrackInfo track,int pageNum,int perPage)  ;
-		/**
-		 * Posts currently playing track.
-		 * Success can be checked by checking the signal postFinished()
-		 * @param track Track to post
-		 */
-	  void postCurrentPlaying(SmfTrackInfo track) ;
-	  void postRating(SmfTrackInfo track, SmfMusicRating rate) ;
-	  void postComments(SmfTrackInfo track, SmfComment comment) ;
-		/** from smfobserver */
-	   void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
-private:
-	  SmfProvider* m_baseProvider;
-	  //serialized byte array of provider+other info to be sent to the server
-	  //The order:- SmfProvider then params in order of their appearance in fn
-	  QByteArray m_serializedDataToServer;
-	  //serialized xtra info, order of serialization follows order of param
-	  QByteArray m_xtraInfoSerialized;
-	#ifdef Q_OS_SYMBIAN
-	  CSmfClientSymbian* m_SmfClientPrivate;
-	  friend class CSmfClientSymbian;
-	  int m_xtraInfoFlag;
-	  int m_pageInfoFlag;
-	#else
-	  SmfClientQt* m_SmfClientPrivate;
-	  friend class SmfClientQt;
-	#endif
-	  bool m_connected;
-	  SmfMusicSearch* m_musicSearch;
-	  SmfMusicProfile* m_profile;
-	  SmfProviderList* m_providers;
-	  SmfTrackInfoList* m_trackInfoList;
-	  SmfMusicProfileList m_profileList;
-	};
-class SmfPlaylistServicePrivate : public smfObserver
-{
-  Q_OBJECT
-
-public:
-  /**
-   * Constructs SmfPlaylistService with base provider info
-   * Seeing as this is a plug-in implementation, these will realistically
-   * be generated by SMF factory of some kind
-   */
-  SmfPlaylistServicePrivate(SmfPlaylistService* aPlayLstSrvc);
-  ~SmfPlaylistServicePrivate();
-
-public:
-
-  /**
-   * Gets the list playlists for the logged-in user asynchronously.
-   * The signal playlistsListAvailable() signal is emitted with
-   * SmfPlaylistList once its arrived .
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void playlists(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ; // basic list of playlist objects
-
-  /**
-   * Gets the list playlists for the given user asynchronously.
-   * The signal playlistsListAvailable() signal is emitted with
-   * SmfPlaylistList once its arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param user User for which to get the playlists
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void playlistsOf(SmfMusicProfile* user,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE)  ;
-  /**
-	 * Upload currently playing track to a playlist. Signal
-	 * playlistUpdated() can be checked for success value
-	 * @param plst The playlist to be added in
-	 * @param tracks The list of tracks to uploaded
-	 */
-  int addToPlaylist(SmfPlaylist plst, SmfTrackInfoList* tracks)  ;
-
-	/**
-	 * Upload currently playing playlist . Signal
-	 * playlistUpdated() can be checked for success value
-	 * @param plst The playlist to be uploaded
-	 */
-  int postCurrentPlayingPlaylist(SmfPlaylist plst)  ;
-  /** from smfobserver */
-  void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
-private:
-	SmfProvider* m_baseProvider;
-	//serialized byte array of provider+other info to be sent to the server
-	//The order:- SmfProvider then params in order of their appearance in fn
-	QByteArray m_serializedDataToServer;
-	//serialized xtra info, order of serialization follows order of param
-	QByteArray m_xtraInfoSerialized;
-	#ifdef Q_OS_SYMBIAN
-	CSmfClientSymbian* m_SmfClientPrivate;
-	friend class CSmfClientSymbian;
-	int m_xtraInfoFlag;
-	int m_pageInfoFlag;
-	#else
-	SmfClientQt* m_SmfClientPrivate;
-	friend class SmfClientQt;
-	#endif
-	bool m_connected;
-	SmfPlaylistService* m_playlstSrvc;
-	SmfPlaylistList* m_playlistList;
-};
-
-class SmfMusicEventsPrivate : public smfObserver
-{
-  Q_OBJECT
-
-public:
-  /**
-   * Constructs SmfMusicEvents with base provider info
-   * Seeing as this is a plug-in implementation, these will realistically
-   *  be generated by SMF factory of some kind
-   */
-  SmfMusicEventsPrivate(SmfMusicEvents* aMusicEvent);
-  ~SmfMusicEventsPrivate();
-
-public:
-
-  /**
-   * Gets list of events in a particular location asynchronously.
-   * eventsAvailable() signal is emitted with SmfEventsList once its arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void events(QContactGeoLocation location,int pageNum,int perPage)  ;
-
-  /**
-   * Gets list of venues of a particular location asynchronously.
-   * venuesAvailable() signal is emitted with SmfLocationList once its arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void venues(QContactGeoLocation location,int pageNum,int perPage)  ; // basic list of venue objects
-
-  /**
-   * Gets list of events in a particular venue asynchronously.
-   * eventsAvailable() signal is emitted with SmfEventsList once its arrived.
-   * When the list is big user can specify the page number and per page item data.
-   * If not supplied by the user default values are used.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void events(SmfLocation venue,int pageNum,int perPage)  ; // basic list of events objects
-
-/**
-	 * Updates events. Might not be supported by all service provider.
-	 * eventsUpdated() signal can be checked for success value.
-	 * @param SmfEventsList List of events to be posted
-	 */
-	 void postEvents(SmfEventList events);
-	  /** from smfobserver */
-	  void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
-	private:
-		SmfProvider* m_baseProvider;
-		//serialized byte array of provider+other info to be sent to the server
-		//The order:- SmfProvider then params in order of their appearance in fn
-		QByteArray m_serializedDataToServer;
-		//serialized xtra info, order of serialization follows order of param
-		QByteArray m_xtraInfoSerialized;
-		#ifdef Q_OS_SYMBIAN
-		CSmfClientSymbian* m_SmfClientPrivate;
-		friend class CSmfClientSymbian;
-		int m_xtraInfoFlag;
-		int m_pageInfoFlag;
-		#else
-		SmfClientQt* m_SmfClientPrivate;
-		friend class SmfClientQt;
-		#endif
-		bool m_connected;
-		SmfMusicEvents* m_musicEvent;
-		SmfEventList* m_events;
-		SmfLocationList* m_venues;
-};
-
-/**
-* provides service ("org.symbian.smf.client.music.lyrics")
-*/
-class SmfLyricsServicePrivate : public smfObserver
-{
-  Q_OBJECT
-
-public:
-  /**
-   * Constructs SmfLyricsService with base provider info.
-   * Seeing as this is a plug-in implementation, these will realistically
-   * be generated by SMF factory of some kind
-   */
-
-  SmfLyricsServicePrivate(SmfLyricsService* aLyricsSrvc);
-  ~SmfLyricsServicePrivate();
-
-public:
-
-  /**
-   * Get the lyrics lists asynchrnously, it fetches texts without time info.
-   * lyricsAvailable() notification comes SmfLyricsList with when the data is available
-   * @param track Track for which lyrics needs to be fetched.
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void lyrics(SmfTrackInfo track,int pageNum,int perPage)  ;
-
-  /**
-   * Get the lyrics lists asynchrnously, it fetches texts with time info.
-   * Subtitle search filter can be applied
-   * subtitleAvailable() notification comes SmfSubtitleList with when the data is available
-   * @param track Track for which subtitle needs to be fetched.
-   * @param filter Subtitle search filter
-   * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-   * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
-   */
-  void subtitles(SmfTrackInfo track, SmfSubtitleSearchFilter filter,int pageNum,int perPage)  ; // texts with time information
-  /** from smfobserver */
-  void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
-private:
-	SmfProvider* m_baseProvider;
-	//serialized byte array of provider+other info to be sent to the server
-	//The order:- SmfProvider then params in order of their appearance in fn
-	QByteArray m_serializedDataToServer;
-	//serialized xtra info, order of serialization follows order of param
-	QByteArray m_xtraInfoSerialized;
-	#ifdef Q_OS_SYMBIAN
-	CSmfClientSymbian* m_SmfClientPrivate;
-	friend class CSmfClientSymbian;
-	int m_xtraInfoFlag;
-	int m_pageInfoFlag;
-	#else
-	SmfClientQt* m_SmfClientPrivate;
-	friend class SmfClientQt;
-	#endif
-	bool m_connected;
-	SmfLyricsService* m_lyricsSrvc;
-	SmfLyricsList* m_lyricsList;
-	SmfSubtitleList* m_subList;
-};
-#endif
--- a/smf/smfservermodule/smfclient/client/smfpostprovider.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfEvent class represents an event
- *
- */
-
-#include "smfpostprovider.h"
-#include <QVector>
-#include <QTextFormat>
-
-	/**
-	 * Constructs SmfPostProvider.
-	 * @param baseProvider The base provider info
-	 * Seeing as this is a plug-in implementation, these will realistically
-	 * be generated by SMF factory of some kind
-	 */
-	SmfPostProvider::SmfPostProvider(SmfProvider* baseProvider)
-		{
-		  m_baseProvider = baseProvider;
-		  //creating private impl wrapper
-		  m_private = new SmfPostProviderPrivate(this);
-		}
-	SmfPostProvider::~SmfPostProvider()
-		{
-		
-		}
-	/**
-	 * returns maximum no of chars (unicode) that service provider can post without truncation
-	 * negative value means no limit
-	 */
-	qint32 SmfPostProvider::maxCharsInPost() const
-	{ 
-	
-	}
-	/**
-	 * returns maximum no of items that can be returned in a single query to getPosts
-	 * negative value means feature not supported.
-	 */
-	qint32 SmfPostProvider::maxItems() const
-			{ 
-		
-			}
-
-	/**
-	 * returns all the formatting of posts that this service provider supports.
-	 * May return 0 items to mean only QString is supported.
-	 */
-	QVector<QTextFormat> SmfPostProvider::supportedFormats () const
-			{
-		
-			}
-	
-	/**
-	 * returns whether this SP supports Appearence @see SmfAppearenceInfo
-	 */
-	bool SmfPostProvider::supportsAppearence () const
-			{ 
-		
-			}
-
-	/**
-	 * Gets the posts asynchronously. The signal postsAvailable()with SmfPostList is emitted
-	 * once the post lists are available
-	 * @param user user's contact in this SP, omit for self contact
-	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-     * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE 
-	 * @see postsAvailable()
-	 */
-	void SmfPostProvider::posts(SmfContact* user ,int pageNum,int perPage)
-		{ 
-		m_private->posts(user,pageNum,perPage);
-		}
-	
-	/**
-	 * Updates a post to own area, the success of the post can be checked with signal
-	 * updatePostFinished() signal
-	 * @param postData data to be posted
-	 * @param location location data
-	 */
-	void SmfPostProvider::post(SmfPost& postData,SmfLocation& location) 
-		{
-		m_private->post(postData,location);
-		} 
-	/**
-	 * Updates the last post to own area with new data, the success of the post can be checked with signal
-	 * updatePostFinished() signal
-	 * @param postData edited/new data to be posted
-	 * @param location location data
-	 */
-	void SmfPostProvider::updatePost(SmfPost& postData)
-		{ 
-		m_private->updatePost(postData);
-		} 
-	
-	/**
-	 * Updates a post to a particular Smf contact. the success of the post can be checked with signal
-	 * updatePostFinished() signal.
-	 * @param postData data to be posted
-	 * @param contact contact to which the post is to be directed
-	 * @param location location data
-	 */
-	void SmfPostProvider::postDirected(SmfPost& postData,SmfContact& contact,SmfLocation* location)
-		{ 
-		m_private->postDirected(postData,contact,location);
-		}
-	
-	/**
-	 * Posts appearance info of the user.e.g. appear offline, busy, do-not-disturb
-	 * @param appearence user appearance
-	 * @see SmfPresenceInfo
-	 * @return False on Failure/Not supported 
-	 */
-	bool SmfPostProvider::postAppearence(SmfAppearenceInfo appearence)
-		{ 
-		m_private->postAppearence(appearence);
-		} 
-	/**
-	 * Share /a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook)
-	 * emits updatePostFinished() signal when done.
-	 * @param postData data to be posted
-	 * @param contact contact to which the post belonged
-	 * @param bool whether user changed items within the post
-	 */
-	void SmfPostProvider::sharePost(SmfPost& postData,SmfContact& contact,bool edited)
-		{
-		m_private->sharePost(postData,contact,edited);
-		}
-	
-	//APIs to get/set base provider info (SmfProvider)
-	
-	/**
-	 * Gets the base provider info
-	 */
-	SmfProvider* SmfPostProvider::getProvider() const
-			{
-			return m_baseProvider;
-			}
-
--- a/smf/smfservermodule/smfclient/client/smfpostprovider.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * SmfPostProvider
- *
- */
-#ifndef SMFPOSTPROVIDER_H
-#define SMFPOSTPROVIDER_H
-
-#include <QObject>
-#include <qmobilityglobal.h>
-#include <qgeopositioninfo.h>
-#include <QTextDocument>
-
-#include "smfglobal.h"
-#include "smfclientglobal.h"
-#include "smfprovider.h"
-#include "smfcontact.h"
-#include "smflocation.h"
-#include "smfpost.h"
-#include "smfpostprovider_p.h"
-
-/**
- * @ingroup smf_client_group 
- * Interface to post scrap/tweet like info.
- * Note that branding information for the particular service implementation
- * is available from getProvider() API. See also:
- * SmfProvider::serviceName(), SmfProvider::serviceIcon(), SmfProvider::description()
- *
- * Interface name for SmfPostProvider is org.symbian.smf.client.contact.posts
- */
-class SMFCLIENT_EXPORT SmfPostProvider : public QObject
-	{
-	Q_OBJECT
-
-public:
-	/**
-	 * Constructs SmfPostProvider.
-	 * @param baseProvider The base provider info
-	 * Seeing as this is a plug-in implementation, these will realistically
-	 * be generated by SMF factory of some kind
-	 */
-	SmfPostProvider(SmfProvider* baseProvider);
-	~SmfPostProvider();
-
-
-public:
-	/**
-	 * returns maximum no of chars (unicode) that service provider can post without truncation
-	 * negative value means no limit
-	 */
-	qint32 maxCharsInPost() const;
-	/**
-	 * returns maximum no of items that can be returned in a single query to getPosts
-	 * negative value means feature not supported.
-	 */
-	qint32 maxItems() const;
-
-	/**
-	 * returns all the formatting of posts that this service provider supports.
-	 * May return 0 items to mean only QString is supported.
-	 */
-	QVector<QTextFormat> supportedFormats () const;
-	
-	/**
-	 * returns whether this SP supports Appearence @see SmfAppearenceInfo
-	 */
-	bool supportsAppearence () const;
-
-public slots:
-	/**
-	 * Gets the posts asynchronously. The signal postsAvailable()with SmfPostList is emitted
-	 * once the post lists are available
-	 * @param user user's contact in this SP, omit for self contact
-	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-     * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE 
-	 * @see postsAvailable()
-	 */
-	void posts(SmfContact* user = 0,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-	
-	/**
-	 * Updates a post to own area, the success of the post can be checked with signal
-	 * updatePostFinished() signal
-	 * @param postData data to be posted
-	 * @param location location data
-	 */
-	void post(SmfPost& postData,SmfLocation& location) ; 
-	/**
-	 * Updates the last post to own area with new data, the success of the post can be checked with signal
-	 * updatePostFinished() signal
-	 * @param postData edited/new data to be posted
-	 * @param location location data
-	 */
-	void updatePost(SmfPost& postData); 
-	
-	/**
-	 * Updates a post to a particular Smf contact. the success of the post can be checked with signal
-	 * updatePostFinished() signal.
-	 * @param postData data to be posted
-	 * @param contact contact to which the post is to be directed
-	 * @param location location data
-	 */
-	void postDirected(SmfPost& postData,SmfContact& contact,SmfLocation* location=0);
-	
-	/**
-	 * Posts appearance info of the user.e.g. appear offline, busy, do-not-disturb
-	 * @param appearence user appearance
-	 * @see SmfPresenceInfo
-	 * @return False on Failure/Not supported 
-	 */
-	bool postAppearence(SmfAppearenceInfo appearence); 
-	/**
-	 * Share /a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook)
-	 * emits updatePostFinished() signal when done.
-	 * @param postData data to be posted
-	 * @param contact contact to which the post belonged
-	 * @param bool whether user changed items within the post
-	 */
-	void sharePost(SmfPost& postData,SmfContact& contact,bool edited);
-   /**
-	* Request for a custom operation.
-	* @param operationId OperationId
-	* @param customData Custom data to be sent
-	* Note:-Interpretation of operationId and customData is upto the concerned
-	* plugin and client application. service provider should provide some
-	* serializing-deserializing utilities for these custom data
-	*/
-   void customRequest(const int& operationId,QByteArray* customData){/*to be implemented*/};
-	//APIs to get/set base provider info (SmfProvider)
-	
-	/**
-	 * Gets the base provider info
-	 */
-	SmfProvider* getProvider() const;
-	
-signals:
-	
-	/**
-	 * Emitted when a request to  getPosts() is finished
-	 * Note if number of posts is large, then it can download the list page by page
-	 * In that case this signal is emitted multiple times.
-	 * @param list list of posts
-	 * @param error error string
-	 * @param resultPage Page number info
-	 */
-	void postsAvailable(SmfPostList* list, SmfError error, SmfResultPage resultPage);
-	
-	/**
-	 * Emitted when update post is finished.
-	 * @param success the success of the update
-	 */
-	void postFinished(SmfError success);
-	/**
-	 * Emitted when custom data is available
-	 * @param operationId Requested operation id
-	 * @param customData Custom data received, interpretation is not the responsibility of Smf
-	 */
-	void customDataAvailable(int operationId, QByteArray* customData);
-	//friend so that it can directly emit SmfPostProvider's signal
-	friend class SmfPostProviderPrivate;
-private:
-	SmfProvider* m_baseProvider;
-	//private impl wrapper
-	SmfPostProviderPrivate* m_private;
-};
-
-SMF_SERVICE_NAME(SmfPostProvider, "org.symbian.smf.client.contact.posts\0.2")
-#endif // SMFPOSTPROVIDER_H
--- a/smf/smfservermodule/smfclient/client/smfpostprovider_p.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- *
- */
-
-#include "smfpostprovider_p.h"
-//logging headers
-#ifdef WRITE_LOG
-#include <QTextStream>
-#include <QFile>
-#endif
-#ifdef Q_OS_SYMBIAN
-#include "smfclientsymbian.h"
-#else
-#include "SmfClientQt.h"
-#endif
-SmfPostProviderPrivate::SmfPostProviderPrivate(SmfPostProvider* postProvider)
-: m_postProvider(postProvider),m_postList(NULL)
-	{
-	//private impl for symbian
-	#ifdef Q_OS_SYMBIAN
-	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
-	#endif
-	}
-SmfPostProviderPrivate::~SmfPostProviderPrivate()
-	{
-	if(m_SmfClientPrivate)
-		{
-		delete m_SmfClientPrivate;
-		m_SmfClientPrivate = NULL;
-		}
-	}
-/**
- * Gets the posts asynchronously. The signal postsAvailable()with SmfPostList is emitted
- * once the post lists are available
- * @param user user's contact in this SP, omit for self contact
- * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
- * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE 
- * @see postsAvailable()
- */
-void SmfPostProviderPrivate::posts(SmfContact* user ,int pageNum,int perPage)
-{
-	  //We need to pass Opcode and SmfProvider+SmfContact
-	  // (when user is not NULL) serialized into bytearray 
-	  
-	  m_baseProvider = m_postProvider->getProvider();
-	  //serialize start
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 1;
-	  write<<m_pageInfoFlag;
-	  write<<pageNum;
-	  write<<perPage;
-	  //TODO:- use different opcode incase post retreival is for other user
-	  //serialize SmfContact if post retrieval is for other user
-
-	  if(user)
-		  {
-		  //m_xtraInfoFlag = 1;
-		  //write<<m_xtraInfoFlag;
-		  //now serialize SmfContact 
-		  m_xtraInfoSerialized.clear();
-		  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-		  Xtrawrite<<*(user);
-		  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-		  write<<m_xtraInfoFlag;
-		  }
-	  else
-		  {
-		  m_xtraInfoFlag = 0;
-		  write<<m_xtraInfoFlag;
-		  }
-	  //serialize end
-	  intfName.clear();
-	  intfName.append(postProviderInterface);
-	  int maxAllocation = MaxSmfPostSize*perPage;
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactRetrievePosts,maxAllocation,m_xtraInfoSerialized);
-
-}
-	
-/**
- * Updates a post to own area, the success of the post can be checked with signal
- * updatePostFinished() signal
- * @param postData data to be posted
- * @param location location data
- */
-void SmfPostProviderPrivate::post(SmfPost& postData,SmfLocation& location) 
-	{
-	  m_xtraInfoSerialized.clear();
-	  m_baseProvider = m_postProvider->getProvider();
-	  //serialize start
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  //SmfProvider
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-	  //m_xtraInfoFlag = 1;
-	  //write<<m_xtraInfoFlag;
-	  
-	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //SmfPost
-	  xtraInfoWrite<<postData;
-	  //SmfPlace
-	  xtraInfoWrite<<location;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-	  //serialize end
-	  QString intfName(postProviderInterface);
-	  //we are not mentioning the max size, as we'll receive only bool
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactPost,10,m_xtraInfoSerialized);
-	}
-/**
- * Updates the last post to own area with new data, the success of the post can be checked with signal
- * updatePostFinished() signal
- * @param postData edited/new data to be posted
- * @param location location data
- */
-void SmfPostProviderPrivate::updatePost(SmfPost& postData)
-	{
-	  m_baseProvider = m_postProvider->getProvider();
-	  //serialize start
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  //SmfProvider
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-	  //m_xtraInfoFlag = 1;
-	  //write<<m_xtraInfoFlag;
-	  
-	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //SmfPost
-	  xtraInfoWrite<<postData;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-	  //serialize end
-	  QString intfName(postProviderInterface);
-	  //we are not mentioning the max size, as we'll receive only bool
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactUpdatePost,10,m_xtraInfoSerialized);
-	}
-
-/**
- * Updates a post to a particular Smf contact. the success of the post can be checked with signal
- * updatePostFinished() signal.
- * @param postData data to be posted
- * @param contact contact to which the post is to be directed
- * @param location location data
- */
-void SmfPostProviderPrivate::postDirected(SmfPost& postData,SmfContact& contact,SmfLocation* location)
-	{
-
-	  m_baseProvider = m_postProvider->getProvider();
-	  //serialize start
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  //SmfProvider
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-	  //m_xtraInfoFlag = 1;
-	  //write<<m_xtraInfoFlag;
-	  
-	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  //SmfPost
-	  xtraInfoWrite<<postData;
-	  //SmfContact
-	  xtraInfoWrite<<contact;
-	  //SmfPlace
-	  xtraInfoWrite<<location;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-	  //serialize end
-	  
-	  QString intfName(postProviderInterface);
-	  //we are not mentioning the max size, as we'll receive only bool
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactPostDirected,10,m_xtraInfoSerialized);
-	}
-
-/**
- * Posts appearance info of the user.e.g. appear offline, busy, do-not-disturb
- * @param appearence user appearance
- * @see SmfPresenceInfo
- * @return False on Failure/Not supported 
- */
-//TODO:-How to return "supported" value? should it be synchronous?
-//Currently doing it asynchronously with the assumption of always supported
-//TODO:- implement some signal completion API
-bool SmfPostProviderPrivate::postAppearence(SmfAppearenceInfo appearence)
-	{
-	  m_baseProvider = m_postProvider->getProvider();
-	  //serialize start
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-	  //m_xtraInfoFlag = 1;
-	  //write<<m_xtraInfoFlag;
-	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
-	  xtraInfoWrite<<appearence;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-	  QString intfName(postProviderInterface);
-	  //we are not mentioning the max size, as we'll receive only bool
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactPostAppearence,10,m_xtraInfoSerialized);
-	}
-/**
- * Share /a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook)
- * emits updatePostFinished() signal when done.
- * @param postData data to be posted
- * @param contact contact to which the post belonged
- * @param bool whether user changed items within the post
- */
-void SmfPostProviderPrivate::sharePost(SmfPost& postData,SmfContact& contact,bool edited)
-	{
-	  m_baseProvider = m_postProvider->getProvider();
-	  //serialize start
-	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  write<<*(m_baseProvider);
-	  m_pageInfoFlag = 0;
-	  write<<m_pageInfoFlag;
-	  //m_xtraInfoFlag = 1;
-	  //write<<m_xtraInfoFlag;
-	  
-	  QDataStream xtraInfoWrite(&m_serializedDataToServer,QIODevice::WriteOnly);
-	  xtraInfoWrite<<postData;
-	  xtraInfoWrite<<contact;
-	  xtraInfoWrite<<edited;
-	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
-	  write<<m_xtraInfoFlag;
-	  QString intfName(postProviderInterface);
-	  //we are not mentioning the max size, as we'll receive only bool
-	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactSharePost,10,m_serializedDataToServer);
-	}
-/**
-* From smfobserver
-*/
-void SmfPostProviderPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error)
-   {
-	writeLog("SmfPostProviderPrivate::resultsAvailable");
-	writeLog("opcode=");
-	writeLog(QString::number(opcode));
-	QDataStream reader(&result,QIODevice::ReadOnly);
-	//Now de-serialize it based on opcode
-	switch(opcode)
-		{
-		case SmfContactRetrievePosts:
-			{
-				if(m_postList)
-					{
-					delete m_postList;
-					m_postList = NULL;
-					}
-
-				m_postList = new SmfPostList;
-				reader>>*(m_postList);
-				writeLog("postList.count=");
-				writeLog(QString::number(m_postList->count()));
-				foreach(SmfPost post,*m_postList)
-					{
-					writeLog(post.description());
-					}
-				//not incorporating paging now
-				SmfResultPage page;
-
-				emit m_postProvider->postsAvailable(m_postList,error,page);
-			
-			}
-			break;
-		case SmfContactPost:
-			{
-			int errInt;
-			reader>>errInt;
-			writeLog("success=");
-			SmfError success = (SmfError)errInt; 
-			emit m_postProvider->postFinished(success);
-			
-			}
-			break;
-		case SmfContactUpdatePost:
-		case SmfContactPostDirected:
-		case SmfContactSharePost:
-			{
-			int errInt;
-			reader>>errInt;
-			writeLog("success=");
-			SmfError success = (SmfError)errInt; 
-			emit m_postProvider->postFinished(success);
-			}
-		default:
-			Q_ASSERT_X(1,"SmfPostProviderPrivate::resultsAvailable","default case");
-		}
-   }
-void SmfPostProviderPrivate::writeLog(QString log) const
-	{
-#ifdef WRITE_LOG
-	QFile file("c:\\data\\SmfClientLogs.txt");
-    if (!file.open(QIODevice::Append | QIODevice::Text))
-	         return;
-    QTextStream out(&file);
-    out << log << "\n";
-    file.close();
-#endif
-	}
--- a/smf/smfservermodule/smfclient/client/smfpostprovider_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * 
- *
- */
-#ifndef SMFPOSTPROVIDER_P_H_
-#define SMFPOSTPROVIDER_P_H_
-
-#include "smfprovider.h"
-#include "SmfClientGlobal.h"
-#include "smfGlobal.h"
-#include "SmfObserver.h"
-
-class SmfProvider;
-class SmfPostProvider;
-
-#include <QObject>
-#include <QDateTime>
-#include <QStringList>
-
-#include "smfobserver.h"
-#include "smfpostprovider.h"
-#ifdef Q_OS_SYMBIAN
-class CSmfClientSymbian;
-#else
-class SmfClientQt;
-#endif
-
-/**
- * Data size limits
- */
-/**
- * Single Post-1 MB
- */
-const int KSmfPostMaxSize = 1000000;
-/**
- * Private Qt wrapper
- * Provided to accomodate diff facilities in diff platforms.
- * Uses Symbian client-server for Symbian
- * QDbus for linux
- * QLocalserver for rest of the platforms
- * Note:- only symbian client-server impl is provided at the moment
- **/
-class SmfPostProviderPrivate: public smfObserver
-	{
-	Q_OBJECT
-
-public:
-
-	SmfPostProviderPrivate(SmfPostProvider* postProvider=0);
-	~SmfPostProviderPrivate();
-	/**
-	 * From smfobserver
-	 */
-	  void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
-	/**
-	 * Gets the posts asynchronously. The signal postsAvailable()with SmfPostList is emitted
-	 * once the post lists are available
-	 * @param user user's contact in this SP, omit for self contact
-	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
-     * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE 
-	 * @see postsAvailable()
-	 */
-	void posts(SmfContact* user = 0,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
-	
-	/**
-	 * Updates a post to own area, the success of the post can be checked with signal
-	 * updatePostFinished() signal
-	 * @param postData data to be posted
-	 * @param location location data
-	 */
-	void post(SmfPost& postData,SmfLocation& location) ; 
-	/**
-	 * Updates the last post to own area with new data, the success of the post can be checked with signal
-	 * updatePostFinished() signal
-	 * @param postData edited/new data to be posted
-	 * @param location location data
-	 */
-	void updatePost(SmfPost& postData); 
-	
-	/**
-	 * Updates a post to a particular Smf contact. the success of the post can be checked with signal
-	 * updatePostFinished() signal.
-	 * @param postData data to be posted
-	 * @param contact contact to which the post is to be directed
-	 * @param location location data
-	 */
-	void postDirected(SmfPost& postData,SmfContact& contact,SmfLocation* location=0);
-	
-	/**
-	 * Posts appearance info of the user.e.g. appear offline, busy, do-not-disturb
-	 * @param appearence user appearance
-	 * @see SmfPresenceInfo
-	 * @return False on Failure/Not supported 
-	 */
-	bool postAppearence(SmfAppearenceInfo appearence); 
-	/**
-	 * Share /a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook)
-	 * emits updatePostFinished() signal when done.
-	 * @param postData data to be posted
-	 * @param contact contact to which the post belonged
-	 * @param bool whether user changed items within the post
-	 */
-	void sharePost(SmfPost& postData,SmfContact& contact,bool edited);
-
-	private:
-	  SmfProvider* m_baseProvider;
-	  //serialized byte array of provider+other info to be sent to the server
-	  //The order:- SmfProvider then params in order of their appearance in fn
-	  QByteArray m_serializedDataToServer;
-	  //serialized xtra info, order of serialization follows order of param
-	  QByteArray m_xtraInfoSerialized;
-	#ifdef Q_OS_SYMBIAN
-	  CSmfClientSymbian* m_SmfClientPrivate;
-	  friend class CSmfClientSymbian;
-	#else
-	  SmfClientQt* m_SmfClientPrivate;
-	  friend class SmfClientQt;
-	#endif
-	  bool m_connected;
-	  int m_xtraInfoFlag;
-	  int m_pageInfoFlag;
-	  SmfPostProvider* m_postProvider;
-	  SmfPostList* m_postList;
-	 void writeLog(QString log) const;
-	private:
-	 QString intfName;
-	};
-#endif /* SMFPOSTPROVIDER_P_H_ */
--- a/smf/smfservermodule/smfclient/client/smfrelationmgr.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- */
-
-#include "smfrelationmgr.h"
-#include "smfrelationmgr_p.h"
-
-SmfRelationItem::SmfRelationItem(SmfProvider* provider)
-	{
-	m_provider = *(provider);
-	}
-SmfProvider SmfRelationItem::getProvider() const
-	{
-	return m_provider;
-	}
-void SmfRelationItem::setProvider(SmfProvider& provider)
-	{
-	m_provider = provider;
-	}
-SmfContact SmfRelationItem::getContact() const
-	{
-	return m_contact;
-	}
-void SmfRelationItem::setContact(SmfContact& contact)
-	{
-	m_contact = contact;
-	}
-quint32	SmfRelationItem::getIndex() const
-	{
-	return m_index;
-	}
-void SmfRelationItem::setIndex(quint32 index)
-	{
-	m_index = index;
-	}
-QDataStream &operator<<( QDataStream &aDataStream,const SmfRelationItem &aRelnItem )
-	{
-	aDataStream<<aRelnItem.getProvider();
-	aDataStream<<aRelnItem.getContact();
-	aDataStream<<aRelnItem.getIndex();
-	}
-
-QDataStream &operator>>( QDataStream &aDataStream,SmfRelationItem &aRelnItem)
-	{
-	SmfContact contact;
-	SmfProvider provider;
-	quint32 index;
-	
-	aDataStream>>provider;
-	aDataStream>>contact;
-	aDataStream>>index;
-	
-	aRelnItem.setProvider(provider);
-	aRelnItem.setContact(contact);
-	aRelnItem.setIndex(index);
-	}
-SmfRelationMgr::SmfRelationMgr(QObject* parent):QObject(parent)
-	{
-	m_private = new SmfRelationMgrPrivate(this);
-	}
-SmfRelationMgr::~SmfRelationMgr()
-	{
-	if(m_private)
-		{
-		delete m_private;
-		m_private = NULL;
-		}
-	}
-SmfRelationId SmfRelationMgr::create(SmfProvider *provider, SmfContact *contact)
-	{
-	return m_private->create(provider,contact);
-	}
-SmfError SmfRelationMgr::associate(const SmfRelationId& relation,const SmfContact* contact,SmfProvider* provider)
-	{
-	return m_private->associate(relation,contact,provider);
-	}
-SmfError SmfRelationMgr::remove(SmfRelationId& relation,const SmfContact* contact)
-	{
-	return m_private->remove(relation,contact);
-	}
-SmfRelationItem SmfRelationMgr::searchById(const SmfRelationId& relation)
-	{
-	return m_private->searchById(relation);
-	}
-SmfRelationId SmfRelationMgr::searchByContact( SmfContact contact)
-	{
-	return m_private->searchByContact(contact);
-	}
-uint SmfRelationMgr::count(SmfRelationId relation)
-	{
-	return m_private->count(relation);
-	}
-SmfRelationItem SmfRelationMgr::get(SmfRelationId& relation, quint32 index)
-	{
-	return m_private->get(relation,index);
-	}
-QList<SmfRelationItem> SmfRelationMgr::getAll(SmfRelationId& relation)
-	{
-	return m_private->getAll(relation);
-	}
-QList<SmfRelationId> SmfRelationMgr::getAllRelations()
-	{
-	return m_private->getAllRelations();
-	}
-SmfError SmfRelationMgr::Delete(SmfRelationId& relation)
-	{
-	return m_private->Delete(relation);
-	}
--- a/smf/smfservermodule/smfclient/client/smfrelationmgr.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- * Description:
- * Interface spefication for managing associations between various social contacts
- */
-#ifndef SMFRELATIONMGR_H
-#define SMFRELATIONMGR_H
-
-#include "smfprovider.h"
-#include "smfcontact.h"
-#include "smfglobal.h"
-
-/** implementaion constants */
-const int maxSmfRelationIdSize = 500;
-const int maxSmfRelationItemSize = 1000;
-const int maxRelationItems = 1000;
-
-
-/** forward*/
-class SmfRelationMgrPrivate;
-
-/**
- * persistent Id of a relation.
- */
-typedef QString SmfRelationId;
-
-/**
-* One record of a contact in a relation. Index specifies their position in the relationship.
-*/
-class SMFCLIENT_EXPORT SmfRelationItem : public SmfContact
-	{
-public:
-	SmfRelationItem(SmfProvider* provider=0);
-public:
-	SmfProvider getProvider() const;
-	void setProvider(SmfProvider& provider);
-	SmfContact getContact() const;
-	void setContact(SmfContact& contact);
-	quint32	getIndex() const;
-	void setIndex(quint32 index);
-private:
-	SmfProvider m_provider;
-	SmfContact  m_contact;
-	quint32		 m_index;
-	};
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const SmfRelationItem &aRelnItem );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfRelationItem &aRelnItem);
-/**
- * All remote profiles (e.g. facebook, twitter, flicker) for a particular
- * person (or entity) constitutes a relation. Relation Manager stores
- * these relations in persistent memory.
- *
- * Relations and Items can be visualized in rows and columns.
- * Each row is identified by a RelationId.
- * Each column is identified by index of that Item in the relation
- * Each Items holds necessary information for SmfProvider and SmfContact.
- * In the diagram below C1, C2... could be local or remote contacts, which means
- * that C1, C2 .. could be contacts from device-resident phonebook. For example, for contact C1,
- * items at index 1,2,3.. in this relationship denotes C1's id in Facebook, Twitter, flickr,... .
- *
- *                                  Relation Item           Relation Item          Relation Item      Relation Item        Relation Item
- *                                        Index1                  index2                  index3                  index4                  index5
- *                             _______________________________________________________________________
- *                             |                           |                             |                            |                          |                          |
- * RelationId 1         |           C1           |        Remote        |        Remote       |         Remote    |         Remote     |
- *                             |                           |        Contact        |        Contact       |         Contact     |         Contact     |
- *                             ------------------------------------------------------------------------------------------------------------------
- *                             |                           |                             |                           |                           |                          |
- * RelationId 2         |           C2           |        Remote        |        Remote       |                          |                          |
- *                             |                           |        Contact        |        Contact       |                          |                          |
- *                             -----------------------------------------------------------------------------------------------------------------
- *                             |                           |                             |                            |                          |                          |
- * RelationId 3         |          C3            |        Remote        |                            |                          |                          |
- *                             |                           |        Contact        |                            |                          |                          |
- *                             -----------------------------------------------------------------------------------------------------------------
- *                             |                           |                             |                           |                           |                          |
- * RelationId 4         |           C4           |        Remote        |        Remote       |                          |                          |
- *                             |                           |        Contact        |        Contact       |                          |                          |
- *                             -----------------------------------------------------------------------------------------------------------------
- *                             |                           |                             |                           |                           |                          |
- * RelationId 5         |           C5           |        Remote        |                           |                           |                          |
- *                             |                           |        Contact        |                           |                           |                          |
- *                             -----------------------------------------------------------------------------------------------------------------
- *
- * Items can be added (associated) to a given relation. So this is one-to-many
- * relationship. Typically no items be present in more than one relation.
- *
- * All functions are synchronous at this moment.
- */
-class SMFCLIENT_EXPORT SmfRelationMgr : public QObject
-	{
-	Q_OBJECT
-public:
-	SmfRelationMgr(QObject* parent = 0);
-	~SmfRelationMgr();
-
-public slots:
-
-	/** create a new relation. The contact provided is the first contact in this
-	 * relation.
-	 * Please note that contact should have valid Guid @ref QtMobility::QContactGuid
-	 * (used by Smf to store the unique id of user from facebook, etc.) and valid Url
-	 * @ref QtMobility::QContactUrl
-	 *
-	 * If the contact is already stored with ContactManager (e.g. contact exists in phonebook),
-	 * then it would have QtMobility::QContactId properly filled with managerUri and localId.
-	 * These two field would also be stored in SmfRelationMgr (for easily identifying the SmfContacts).
-	 *
-	 * After successful creation, a relationId would be returned. More and more SmfContacts can
-	 * be added to this relation using this RelationId
-	 */
-	SmfRelationId create(SmfProvider *provider=NULL, SmfContact *contact=NULL);
-
-	/** assign contact to a relation */
-	SmfError associate( const SmfRelationId& relation,
-						const SmfContact* contact,
-						SmfProvider* provider);
-
-	/** remove contact from a relation */
-	SmfError remove(SmfRelationId& relation,
-					const SmfContact* conact);
-
-	/** returns first relation item in the relation when exists, NULL otherwise */
-	SmfRelationItem searchById(const SmfRelationId& relation);
-
-	/** returns relation Id for a given contacts if exists, NULL otherwise */
-	SmfRelationId searchByContact( SmfContact contact);
-
-	/** returns number of contacts in a relation*/
-	uint count(SmfRelationId relation);
-
-	/** contacts and their provider */
-	SmfRelationItem get(SmfRelationId& relation, quint32 index);
-
-	/** list of contacts and their provider */
-	QList<SmfRelationItem> getAll(SmfRelationId& relation);
-
-	/** list of all relations */
-	QList<SmfRelationId> getAllRelations();
-
-	/** delete a particular relation*/
-	SmfError Delete(SmfRelationId& relation);
-
-	private:
-	//private impl wrapper
-	SmfRelationMgrPrivate* m_private;
-	};
-
-#endif // SMFRELATIONMGR_H
--- a/smf/smfservermodule/smfclient/client/smfrelationmgr_p.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- *
- */
-
-#include "smfrelationmgr_p.h"
-//logging headers
-#ifdef WRITE_LOG
-#include <QTextStream>
-#include <QFile>
-#endif
-#ifdef Q_OS_SYMBIAN
-#include "smfclientsymbian.h"
-#else
-#include "SmfClientQt.h"
-#endif
-
-SmfRelationMgrPrivate::SmfRelationMgrPrivate(SmfRelationMgr* relnMngr)
-	{
-	//private impl for symbian
-	#ifdef Q_OS_SYMBIAN
-	m_SmfClientPrivate = CSmfClientSymbian::NewL();
-	#endif
-	}
-SmfRelationMgrPrivate::~SmfRelationMgrPrivate()
-	{
-	if(m_SmfClientPrivate)
-		{
-		delete m_SmfClientPrivate;
-		m_SmfClientPrivate = NULL;
-		}
-	}
-SmfRelationId SmfRelationMgrPrivate::create(SmfProvider *provider, SmfContact *contact)
-	{
-	m_dataForDSM.clear();
-	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
-	writeStream<<*(provider);
-	writeStream<<contact;
-	m_dataFromDSM.clear();
-	SmfError err=SmfNoError;
-	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationCreate,m_dataForDSM,err,maxSmfRelationIdSize);
-	if(err==SmfNoError)
-		{
-		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
-		SmfRelationId relnId;
-		readStream>>relnId;
-		return relnId;
-		}
-	else
-		{
-		User::Panic(_L("DSM err="),err);
-		}
-	}
-SmfError SmfRelationMgrPrivate::associate(const SmfRelationId& relation,const SmfContact* contact,SmfProvider* provider)
-	{
-	m_dataForDSM.clear();
-	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
-	writeStream<<relation;
-	writeStream<<contact;
-	writeStream<<provider;
-	
-	m_dataFromDSM.clear();
-	SmfError err = SmfNoError;
-	int maxAlloc = 100;
-	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationAssociate,m_dataForDSM,err,maxAlloc);
-	if(err == SmfNoError)
-		{
-		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
-		int errInt;
-		readStream>>errInt;
-		err = (SmfError)errInt;
-		}
-	else
-		{
-		User::Panic(_L("DSM err="),err);
-		}
-	return err;
-	}
-SmfError SmfRelationMgrPrivate::remove(SmfRelationId& relation,const SmfContact* contact)
-	{
-	m_dataForDSM.clear();
-	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
-	writeStream<<relation;
-	writeStream<<*(contact);
-	
-	m_dataFromDSM.clear();
-	SmfError err = SmfNoError;
-	int maxAlloc = 100;
-	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationRemove,m_dataForDSM,err,maxAlloc);
-	if(err == SmfNoError)
-		{
-		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
-		int errInt;
-		readStream>>errInt;
-		err = (SmfError)errInt;
-		}
-	else
-		{
-		const QString errStr = QString::number(err);
-		Q_ASSERT_X(1,"SmfRelationMgrPrivate::remove","error");
-		}
-	return err;
-	}
-SmfRelationItem SmfRelationMgrPrivate::searchById(const SmfRelationId& relation)
-	{
-	m_dataForDSM.clear();
-	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
-	writeStream<<relation;
-	
-	m_dataFromDSM.clear();
-	int maxAlloc = MaxSmfContactSize;
-	SmfError err=SmfNoError;
-	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationSearchById,m_dataForDSM,err,maxAlloc);
-	if(err == SmfNoError)
-		{
-		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
-		SmfRelationItem relnItem;
-		readStream>>relnItem;
-		return relnItem;
-		}
-	else
-		{
-		User::Panic(_L("DSM err="),err);
-		}
-	}
-SmfRelationId SmfRelationMgrPrivate::searchByContact( SmfContact contact)
-	{
-	m_dataForDSM.clear();
-	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
-	writeStream<<contact;
-	
-	m_dataFromDSM.clear();
-	int maxAlloc = 1000;
-	SmfError err=SmfNoError;
-	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationSearchByContact,m_dataForDSM,err,maxAlloc);
-	if(err == SmfNoError)
-		{
-		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
-		SmfRelationId relnId;
-		readStream>>relnId;
-		return relnId;
-		}
-	else
-		{
-		User::Panic(_L("DSM err="),err);
-		}
-	}
-//number of contacts in a relation
-uint SmfRelationMgrPrivate::count(SmfRelationId relation)
-	{
-	m_dataForDSM.clear();
-	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
-	writeStream<<relation;
-	
-	m_dataFromDSM.clear();
-	SmfError err = SmfNoError;
-	int maxAlloc = 100;
-	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationCount,m_dataForDSM,err,maxAlloc);
-	if(err == SmfNoError)
-		{
-		QDataStream readStream(&m_dataForDSM,QIODevice::ReadOnly);
-		uint count;
-		readStream>>count;
-		return count;
-		}
-	else
-		{
-		User::Panic(_L("DSM err="),err);
-		}
-	}
-
-SmfRelationItem SmfRelationMgrPrivate::get(SmfRelationId& relation, quint32 index)
-	{
-	m_dataForDSM.clear();
-	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
-	writeStream<<relation;
-	
-	m_dataFromDSM.clear();
-	SmfError err = SmfNoError;
-	int maxAlloc = maxSmfRelationItemSize;
-	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationGet,m_dataForDSM,err,maxAlloc);
-	if(err == SmfNoError)
-		{
-		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
-		SmfRelationItem relationItem;
-		readStream>>relationItem;
-		return relationItem;
-		}
-	else
-		{
-		User::Panic(_L("DSM err="),err);
-		}
-	}
-QList<SmfRelationItem> SmfRelationMgrPrivate::getAll(SmfRelationId& relation)
-	{
-	m_dataForDSM.clear();
-	
-	m_dataFromDSM.clear();
-	SmfError err = SmfNoError;
-	int maxAlloc = maxSmfRelationItemSize*maxRelationItems;
-	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationGetAll,m_dataForDSM,err,maxAlloc);
-	if(err == SmfNoError)
-		{
-	QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
-	QList<SmfRelationItem> relationItemList;
-	readStream>>relationItemList;
-	return relationItemList;
-		}
-	else
-		{
-		User::Panic(_L("DSM err="),err);
-		}
-	}
-QList<SmfRelationId> SmfRelationMgrPrivate::getAllRelations()
-	{
-	m_dataForDSM.clear();
-	
-	m_dataFromDSM.clear();
-	SmfError err = SmfNoError;
-	int maxAlloc = 1000*maxRelationItems;
-	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationGetAllRelations,m_dataForDSM,err,maxAlloc);
-	if(err == SmfNoError)
-		{
-		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
-		QList<SmfRelationId> relationIdList;
-		readStream>>relationIdList;
-		return relationIdList;
-		}
-	else
-		{
-		User::Panic(_L("DSM err="),err);
-		}
-	}
-SmfError SmfRelationMgrPrivate::Delete(SmfRelationId& relation)
-	{
-	
-	}
--- a/smf/smfservermodule/smfclient/client/smfrelationmgr_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- *
- */
-#include "smfprovider.h"
-#include "SmfClientGlobal.h"
-#include "smfGlobal.h"
-#include "SmfObserver.h"
-
-#include <QStringList>
-#include "smfrelationmgr.h"
-class SmfProvider;
-#ifdef Q_OS_SYMBIAN
-class CSmfClientSymbian;
-#else
-class SmfClientQt;
-#endif
-class SmfRelationMgrPrivate
-	{
-public:
-	SmfRelationMgrPrivate(SmfRelationMgr* relnMngr);
-	~SmfRelationMgrPrivate();
-	//create a relation with first contact (id optional)
-	SmfRelationId create(SmfProvider *provider=NULL, SmfContact *contact=NULL);
-	/** assign contact to a relation */
-	SmfError associate( const SmfRelationId& relation,
-						const SmfContact* contact,
-						SmfProvider* provider);
-
-	/** remove contact from a relation */
-	SmfError remove(SmfRelationId& relation,
-					const SmfContact* conact);
-
-	/** returns first relation item in the relation when exists, NULL otherwise */
-	SmfRelationItem searchById(const SmfRelationId& relation);
-
-	/** returns relation Id for a given contacts if exists, NULL otherwise */
-	SmfRelationId searchByContact( SmfContact contact);
-
-	/** returns number of contacts in a relation*/
-	uint count(SmfRelationId relation);
-
-	/** contacts and their provider */
-	SmfRelationItem get(SmfRelationId& relation, quint32 index);
-
-	/** list of contacts and their provider */
-	QList<SmfRelationItem> getAll(SmfRelationId& relation);
-
-	/** list of all relations */
-	QList<SmfRelationId> getAllRelations();
-
-	/** delete a particular relation*/
-	SmfError Delete(SmfRelationId& relation);
-private:
-#ifdef Q_OS_SYMBIAN
-  CSmfClientSymbian* m_SmfClientPrivate;
-  friend class CSmfClientSymbian;
-  int m_xtraInfoFlag;
-  int m_pageInfoFlag;
-#else
-  SmfClientQt* m_SmfClientPrivate;
-  friend class SmfClientQt;
-#endif
-  QByteArray m_dataForDSM;
-  QByteArray m_dataFromDSM;
-	};
--- a/smf/smfservermodule/smfclient/common/common.pri	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-INCLUDEPATH += common \
-    ./
-
-PUBLIC_HEADERS += \
-	common/smfactions.h \
-	common/smfalbum.h \
-	common/smfartists.h \
-	common/smfcomment.h \
-	common/smfcontact.h \
-	common/smfevent.h \
-	common/smfgroup.h \
-	common/smflocation.h \
-	common/smflyrics.h \
-	common/smfmusicfingerprint.h \
-	common/smfmusicprofile.h \
-	common/smfmusicrating.h \
-	common/smfpicture.h \
-	common/smfpicturealbum.h \
-	common/smfplaylist.h \
-	common/smfpluginutil.h \
-	common/smfpost.h \
-	common/smfprovider.h \
-	common/smfsubtitle.h \
-	common/smftrackinfo.h \
-	common/smfurl.h \
-	common/smfclientglobal.h \
-	common/smfglobal.h \
-	common/smfobserver.h
-
-PRIVATE_HEADERS += \
-	common/smfactions_p.h \
-	common/smfalbum_p.h \
-	common/smfartists_p.h \
-	common/smfcomment_p.h \
-	common/smfcontact_p.h \
-	common/smfevent_p.h \
-	common/smfgroup_p.h \
-	common/smflocation_p.h \
-	common/smflyrics_p.h \
-	common/smfmusicfingerprint_p.h \
-	common/smfmusicprofile_p.h \
-	common/smfmusicrating_p.h \
-	common/smfpicture_p.h \
-	common/smfpicturealbum_p.h \
-	common/smfplaylist_p.h \
-	common/smfpost_p.h \
-	common/smfsubtitle_p.h \
-	common/smftrackinfo_p.h \
-	common/smfurl_p.h \
-	common/smfobserver.h
-
-SOURCES += \
-	common/smfactions.cpp \
-	common/smfalbum.cpp \
-	common/smfartists.cpp \
-	common/smfcomment.cpp \
-	common/smfcontact.cpp \
-	common/smfevent.cpp \
-	common/smfgroup.cpp \
-	common/smflocation.cpp \
-	common/smflyrics.cpp \
-	common/smfmusicfingerprint.cpp \
-	common/smfmusicprofile.cpp \
-	common/smfmusicrating.cpp \
-	common/smfpicture.cpp \
-	common/smfpicturealbum.cpp \
-	common/smfplaylist.cpp \
-	common/smfpluginutil.cpp \
-	common/smfpost.cpp \
-	common/smfprovider.cpp \
-	common/smfsubtitle.cpp \
-	common/smftrackinfo.cpp \
-	common/smfurl.cpp
-
-symbian: { 
-	BLD_INF_RULES.prj_exports += common/smfclientglobal.h
-	BLD_INF_RULES.prj_exports += common/smfglobal.h
-	BLD_INF_RULES.prj_exports += common/smfobserver.h
-	BLD_INF_RULES.prj_exports += common/smfactions.h
-	BLD_INF_RULES.prj_exports += common/smfactions_p.h
-	BLD_INF_RULES.prj_exports += common/smfalbum.h
-	BLD_INF_RULES.prj_exports += common/smfalbum_p.h
-	BLD_INF_RULES.prj_exports += common/smfartists.h
-	BLD_INF_RULES.prj_exports += common/smfartists_p.h
-	BLD_INF_RULES.prj_exports += common/smfcomment.h
-	BLD_INF_RULES.prj_exports += common/smfcomment_p.h
-	BLD_INF_RULES.prj_exports += common/smfcontact.h
-	BLD_INF_RULES.prj_exports += common/smfcontact_p.h
-	BLD_INF_RULES.prj_exports += common/smfevent.h
-	BLD_INF_RULES.prj_exports += common/smfevent_p.h
-	BLD_INF_RULES.prj_exports += common/smfgroup.h
-	BLD_INF_RULES.prj_exports += common/smfgroup_p.h
-	BLD_INF_RULES.prj_exports += common/smflocation.h
-	BLD_INF_RULES.prj_exports += common/smflocation_p.h
-	BLD_INF_RULES.prj_exports += common/smflyrics.h
-	BLD_INF_RULES.prj_exports += common/smflyrics_p.h
-	BLD_INF_RULES.prj_exports += common/smfmusicfingerprint.h
-	BLD_INF_RULES.prj_exports += common/smfmusicfingerprint_p.h
-	BLD_INF_RULES.prj_exports += common/smfmusicprofile.h
-	BLD_INF_RULES.prj_exports += common/smfmusicprofile_p.h
-	BLD_INF_RULES.prj_exports += common/smfmusicrating.h
-	BLD_INF_RULES.prj_exports += common/smfmusicrating_p.h
-	BLD_INF_RULES.prj_exports += common/smfpicture.h
-	BLD_INF_RULES.prj_exports += common/smfpicture_p.h
-	BLD_INF_RULES.prj_exports += common/smfpicturealbum.h
-	BLD_INF_RULES.prj_exports += common/smfpicturealbum_p.h
-	BLD_INF_RULES.prj_exports += common/smfplaylist.h
-	BLD_INF_RULES.prj_exports += common/smfplaylist_p.h
-	BLD_INF_RULES.prj_exports += common/smfpluginutil.h
-	BLD_INF_RULES.prj_exports += common/smfpost.h
-	BLD_INF_RULES.prj_exports += common/smfpost_p.h
-	BLD_INF_RULES.prj_exports += common/smfprovider.h
-	BLD_INF_RULES.prj_exports += common/smfsubtitle.h
-	BLD_INF_RULES.prj_exports += common/smfsubtitle_p.h
-	BLD_INF_RULES.prj_exports += common/smftrackinfo.h
-	BLD_INF_RULES.prj_exports += common/smftrackinfo_p.h
-	BLD_INF_RULES.prj_exports += common/smfurl.h
-	BLD_INF_RULES.prj_exports += common/smfurl_p.h
-}
--- a/smf/smfservermodule/smfclient/common/smfactions.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,440 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Represents activities in terms similar to standard activity 
- * stream http://activitystrea.ms/
- *
- */
-
-#include "smfactions.h"
-#include "smfactions_p.h"
-
-
-/**
- * Constructor
- */
-SmfActivityObject::SmfActivityObject( )
-	{
-	d = new SmfActivityObjectPrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfActivityObject::SmfActivityObject( const SmfActivityObject &aOther )
-	: d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfActivityObject& SmfActivityObject::operator=( const SmfActivityObject &aOther )
-	{
-	d->m_id = aOther.d->m_id;
-	d->m_thumbnail = aOther.d->m_thumbnail;
-	d->m_caption = aOther.d->m_caption;
-	d->m_type = aOther.d->m_type;
-	d->m_objData = aOther.d->m_objData;
-	d->m_link = aOther.d->m_link;
-	d->m_time = aOther.d->m_time;
-	d->m_content = aOther.d->m_content;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfActivityObject::~SmfActivityObject( )
-	{
-	}
-
-
-/**
- * @return returns service specific Id of this object in the entry 
- */
-QString SmfActivityObject::id( ) const
-	{
-	return d->m_id;
-	}
-
-/**
- * @return returns thumbnail if availabel for this object in the entry
- */
-QImage SmfActivityObject::thumbnail( ) const
-	{
-	return d->m_thumbnail;
-	}
-
-/**
- * @return Captions for this object
- */
-QString SmfActivityObject::caption( ) const
-	{
-	return d->m_caption;
-	}
-
-/**
- * @return retruns the type of this object
- */
-SmfActivityObjectType SmfActivityObject::type( ) const
-	{
-	return d->m_type;
-	}
-
-/**
- * @return returns data of the object - see type() for casting
- */
-QVariant SmfActivityObject::objData( ) const
-	{
-	return d->m_objData;
-	}
-
-/**
- * @return url of this object, e.g. url of the image on which somebody commented
- */
-QString SmfActivityObject::link( ) const
-	{
-	return d->m_link;
-	}
-
-/**
- * @return Time of creation of this object
- */
-QDateTime SmfActivityObject::time( ) const
-	{
-	return d->m_time;
-	}
-
-/**
- * @return Description of the content of this object
- */
-QString SmfActivityObject::content( ) const
-	{
-	return d->m_content;
-	}
-
-/**
- * Sets service specific id for this object
- * @param aId The id to be set
- */
-void SmfActivityObject::setId(const QString& aId)
-	{
-	d->m_id = aId;
-	}
-
-/**
- * Sets thumbnail for this object , not mandatory
- * @param aIcon The thumbnail image
- */
-void SmfActivityObject::setThumbnail(const QImage& aIcon)
-	{
-	d->m_thumbnail = aIcon;
-	}
-
-/**
- * Sets caption for this object
- * @param aCaption The caption to be set
- */
-void SmfActivityObject::setCaption(const QString& aCap)
-	{
-	d->m_caption = aCap;
-	}
-
-/**
- * Sets type of this object - ObjData should be set next accordingly
- * @param aObjType The activity type to be set
- */
-void SmfActivityObject::setType(const SmfActivityObjectType& aObjType)
-	{
-	d->m_type = aObjType;
-	}
-
-/**
- * Sets object data e,g, SmfImage, SmfComment, SmfMusic, SmfEvent etc
- * setType() with suitable type should have been called before
- * @param aData The object data to be set  
- */
-void SmfActivityObject::setObjData( const QVariant& aData)
-	{
-	d->m_objData = aData;
-	}
-
-/**
- * Sets the url for the object
- * @param aLink The Link to be set
- */
-void SmfActivityObject::setLink( const QString& aLink)
-	{
-	d->m_link = aLink;
-	}
-
-/**
- * Sets the time of creation/last modification of the object
- * @param aTime The time to be set
- */
-void SmfActivityObject::setTime( const QDateTime& aTime)
-	{
-	d->m_time = aTime;
-	}
-
-/**
- * Sets the description of the content of this object
- * @param aText The content to be set
- */
-void SmfActivityObject::setContent( const QString& aText)
-	{
-	d->m_content = aText;
-	}
-
-/**
- * Method for Externalization. Writes the SmfActivityObject object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aObj The SmfActivityObject object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfActivityObject &aObj )
-	{
-	aDataStream<<aObj.d->m_id;
-	aDataStream<<aObj.d->m_thumbnail;
-	aDataStream<<aObj.d->m_caption;
-	aDataStream<<aObj.d->m_type;
-	aDataStream<<aObj.d->m_objData;
-	aDataStream<<aObj.d->m_link;
-	aDataStream<<aObj.d->m_time;
-	aDataStream<<aObj.d->m_content;
-		
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfActivityObject object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aObj The SmfActivityObject object to be internalized
- * @return reference to the stream
- */
- QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfActivityObject &aObj)
-	{
-	aDataStream>>aObj.d->m_id;
-	aDataStream>>aObj.d->m_thumbnail;
-	aDataStream>>aObj.d->m_caption;
-	int i;
-	aDataStream>>i;
-	aObj.d->m_type = (SmfActivityObjectType)i;
-	aDataStream>>aObj.d->m_objData;
-	aDataStream>>aObj.d->m_link;
-	aDataStream>>aObj.d->m_time;
-	aDataStream>>aObj.d->m_content;
-	
-	return aDataStream;
-	}
-
- 
- 
-SmfActivityEntry::SmfActivityEntry()
- 	{
-	d = new SmfActivityEntryPrivate;
- 	}
-SmfActivityEntry::SmfActivityEntry( const SmfActivityEntry &aOther )
-	:d( aOther.d )
-	{
-	}
-SmfActivityEntry::~SmfActivityEntry()
-	{
-	
-	}
-/**
- * @return Returns service specific id of the of entry 
- */
-QString SmfActivityEntry::id() const
-	{
-	return d->m_id;
-	}
-
-/**
- * @return Returns the title of the entry - mostly be a string 
- */
-SmfPost SmfActivityEntry::title() const
-	{
-	return d->m_title;
-	}
-
-/**
- * @return Returns detail descriptiopn of this entry in the activity list. might be absent if title is sufficient
- */
-SmfPost SmfActivityEntry::details() const
-	{
-	return d->m_details;
-	}
-
-/**
- * @return Returns the author of the activity - the name and the uri field are most commonly used
- * Other information fields might be empty
- */
-SmfContact SmfActivityEntry::author() const
-	{
-	return d->m_author;
-	}
-
-/**
- * @return Returns the verb of the activity ,e.g. Robin "marked" Joseph as a friend   
- */
-SmfActivityVerb SmfActivityEntry::actionName() const
-	{
-	return d->m_actionName;
-	}
-
-/**
- * There can be multiple objects in a single activity entry, though this may be rare - only for few verbs.
- * @return list of activity objects (mostly one object)
- */
-QList<SmfActivityObject> SmfActivityEntry::activities() const
-	{
-	return d->m_activities;
-	}
-
-/**
- * @return Returns information about the target of the activity, for verbs that support a target.
- * For example, a target is a photo album to which photos were added
- */
-SmfActivityObject SmfActivityEntry::targetObj() const
-	{
-	return d->m_targetObj;
-	}
-
-/**
- * Sets service specific id of the of entry 
- * @param aId The id to be set
- */
-bool SmfActivityEntry::setId( const QString& aId)
-	{
-	d->m_id = aId;
-	return true;
-	}
-
-/**
- * Sets the title of the entry - mostly be a string
- * @param aTitle The title to be set 
- */
-bool SmfActivityEntry::setTitle(const SmfPost& aTitle)
-	{
-	d->m_title = aTitle;
-	return true;
-	}
-
-/**
- * Sets detail description of this entry in the activity list. might be absent if title is sufficient
- * @param aDetails The details to be set
- */
-bool SmfActivityEntry::setDetails(const SmfPost& aDetails)
-	{
-	d->m_details = aDetails;
-	return true;
-	}
-
-/**
- * Sets the author of the activity - the name and the uri field are most commonly used
- * Oher information fields might be empty
- * @param aContact The author to be set
- */
-bool SmfActivityEntry::setAuthor(const SmfContact& aContact)
-	{
-	d->m_author = aContact;
-	return true;
-	}
-
-/**
- * Sets the verb of the activity ,e.g. Robin "marked" Joseph as a friend
- * @param aVerb The action name to be set   
- */
-void SmfActivityEntry::setActionName(SmfActivityVerb  aVerb)
-	{
-	d->m_actionName = aVerb;
-	}
-
-/**
- * Sets single or multiple objects in a single activity entry, though multiple may be rare - only for few verbs.
- * @param list of activity objects (mostly one object)
- */
-bool SmfActivityEntry::setActivities(QList<SmfActivityObject>& aList)
-	{
-	d->m_activities = aList;
-	return true;
-	}
-
-/**
- * Returns information about the target of the activity, for verbs that support a target.
- * For example, a target is a photo album to which photos were added
- * @param aTarget The activity object to be set
- */
-bool SmfActivityEntry::setTargetObj(const SmfActivityObject& aTarget)
-	{
-	d->m_targetObj = aTarget;
-	return true;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfActivityEntry object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aObj The SmfActivityEntry object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfActivityEntry &aObj )
-	{
-	aDataStream<<aObj.d->m_id;
-	aDataStream<<aObj.d->m_title;
-	aDataStream<<aObj.d->m_details;
-	aDataStream<<aObj.d->m_author;
-	aDataStream<<aObj.d->m_actionName;
-	aDataStream<<aObj.d->m_activities;
-	aDataStream<<aObj.d->m_targetObj;
-		
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfActivityEntry object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aObj The SmfActivityEntry object to be internalized
- * @return reference to the stream
- */
- QDataStream &operator>>( QDataStream &aDataStream, 
-		 SmfActivityEntry &aObj)
-	{
-	aDataStream>>aObj.d->m_id;
-	aDataStream>>aObj.d->m_title;
-	aDataStream>>aObj.d->m_details;
-	aDataStream>>aObj.d->m_author;
-	int i;
-	aDataStream>>i;
-	aObj.d->m_actionName = (SmfActivityVerb)i;
-	aDataStream>>aObj.d->m_activities;
-	aDataStream>>aObj.d->m_targetObj;
-	
-	return aDataStream;
-	}
-
- 
--- a/smf/smfservermodule/smfclient/common/smfactions.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,339 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- * Description:
- * Represents activities in terms similar to standard activity stream http://activitystrea.ms/
- */
-
-#ifndef SMFACTIONS_H_
-#define SMFACTIONS_H_
-
-#include <QList>
-#include <QImage>
-#include <QDateTime>
-#include <QStringList>
-#include <QUrl>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <QMetaType>
-
-#include "smfclientglobal.h"
-#include "smfpost.h"
-#include "smfcontact.h"
-
-/**
- * Implementation const
- */
-const int MaxSmfActivityEntrySize = 5000;
-
-/**
- * The actions in the activity based on Atom Activity Base Schema
- * see http://activitystrea.ms/schema/1.0/activity-schema-01.html
- */
-enum SmfActivityVerb
-	{
-	SmfActivityMarkAsFavorite,
-	SmfActivityStartFollowing,
-	SmfActivityMarkLiked,
-	SmfActivityMakeFriend,
-	SmfActivityJoin,
-	SmfActivityPlay,
-	SmfActivityPost,
-	SmfActivitySave,
-	SmfActivityShare,
-	SmfActivityTag,
-	SmfActivityUpdate
-	};
-
-/**
- * The type of the object on which the activity is performed - as per Atom Activity Base Schema
- * see http://activitystrea.ms/schema/1.0/activity-schema-01.html
- */
-enum SmfActivityObjectType
-	{
-	SmfActivityObjTypeArticle,
-	SmfActivityObjTypeAudio,
-	SmfActivityObjTypeBookmark,
-	SmfActivityObjTypeComment,
-	SmfActivityObjTypeFile,
-	SmfActivityObjTypeFolder,
-	SmfActivityObjTypeGroup,
-	SmfActivityObjTypeList,
-	SmfActivityObjTypeNote,
-	SmfActivityObjTypePerson,
-	SmfActivityObjTypePhoto,
-	SmfActivityObjTypePhotoAlbum,
-	SmfActivityObjTypePlace,
-	SmfActivityObjTypePlaylist,
-	SmfActivityObjTypeProduct,
-	SmfActivityObjTypeReview,
-	SmfActivityObjTypeService,
-	SmfActivityObjTypeStatus,
-	SmfActivityObjTypeVideo,
-	SmfActivityObjTypeMusic,
-	SmfActivityObjTypeEvent,
-	SmfActivityObjTypeAdvanced
-	};
-
-enum SmfActivityFor
-	{
-		SmfActivitySelf,
-		SmfActivityFriend,
-		SmfActivityOthers
-	};
-
-class SmfActivityObjectPrivate;
-/**
- * @ingroup smf_common_group
- * The object class represents an object in an activity (e.g.a picture or a music track on which somebody commented)
- */
-class SMFCLIENT_EXPORT SmfActivityObject 
-	{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfActivityObject();
-
-	/**
-	 * Copy Constructor
-	 */
-	SmfActivityObject(const SmfActivityObject& aOther);
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 * @return The target reference value
-	 */
-	SmfActivityObject& operator=( const SmfActivityObject &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfActivityObject();
-
-	/**
-	 * @return returns service specific Id of this object in the entry 
-	 */
-	QString id() const;
-	
-	/**
-	 * @return returns thumbnail if availabel for this object in the entry
-	 */
-	QImage thumbnail() const;
-	
-	/**
-	 * @return Captions for this object
-	 */
-	QString caption() const;
-	
-	/**
-	 * @return retruns the type of this object
-	 */
-	SmfActivityObjectType type( ) const;
-	
-	/**
-	 * @return returns data of the object - see type() for casting
-	 */
-	QVariant objData() const;
-	
-	/**
-	 * @return url of this object, e.g. url of the image on which somebody commented
-	 */
-	QString link() const;
-	
-	/**
-	 * @return Time of creation of this object
-	 */
-	QDateTime time() const;
-	
-	/**
-	 * @return Description of the content of this object
-	 */
-	QString content() const;
-
-	/**
-	 * Sets service specific id for this object
-	 * @param aId The id to be set
-	 */
-	void setId(const QString& aId);
-	
-	/**
-	 * Sets thumbnail for this object , not mandatory
-	 * @param aIcon The thumbnail image
-	 */
-	void setThumbnail(const QImage& aIcon);
-	
-	/**
-	 * Sets caption for this object
-	 * @param aCaption The caption to be set
-	 */
-	void setCaption(const QString& aCap);
-	
-	/**
-	 * Sets type of this object - ObjData should be set next accordingly
-	 * @param aObjType The activity type to be set
-	 */
-	void setType(const SmfActivityObjectType& aObjType);
-	
-	/**
-	 * Sets object data e,g, SmfImage, SmfComment, SmfMusic, SmfEvent etc
-	 * setType() with suitable type should have been called before  
-	 * @param aData The object data to be set  
-	 */
-	void setObjData( const QVariant& aData);
-	
-	/**
-	 * Sets the url for the object
-	 * @param aLink The Link to be set
-	 */
-	void setLink( const QString& aLink);
-	
-	/**
-	 * Sets the time of creation/last modification of the object
-	 * @param aTime The time to be set
-	 */
-	void setTime( const QDateTime& aTime);
-	
-	/**
-	 * Sets the description of the content of this object
-	 * @param aText The content to be set
-	 */
-	void setContent( const QString& aText) ;
-	
-private:
-	QSharedDataPointer<SmfActivityObjectPrivate> d;
-	
-	friend QDataStream& operator >> ( QDataStream &aOut, SmfActivityObject& aData);
-	friend QDataStream& operator << ( QDataStream &aIn, const SmfActivityObject& aData);	
-	};
-
-SMFCLIENT_EXPORT QDataStream& operator >> ( QDataStream &aOut, SmfActivityObject& aData);
-SMFCLIENT_EXPORT QDataStream& operator << ( QDataStream &aIn, const SmfActivityObject& aData);	
-
-// Make the class SmfActivityObject known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfActivityObject)
-
-
-
-
-class SmfActivityEntryPrivate;
-/**
- * @ingroup smf_common_group
- * The object class represents an entry in the list of activities 
- */
-class SMFCLIENT_EXPORT SmfActivityEntry
-	{
-
-public:
-	
-	SmfActivityEntry();
-	SmfActivityEntry(const SmfActivityEntry& aOther);
-	~SmfActivityEntry();
-	
-	/**
-	 * @return Returns service specific id of the of entry 
-	 */
-	QString id() const;
-	/**
-	 * @return Returns the title of the entry - mostly be a string 
-	 */
-	SmfPost title() const;
-
-	/**
-	 * @return Returns detail descriptiopn of this entry in the activity list. might be absent if title is sufficient
-	 */
-	SmfPost details() const;
-	
-	/**
-	 * @return Returns the author of the activity - the name and the uri field are most commonly used
-	 * Other information fields might be empty
-	 */
-	SmfContact author() const;
-	
-	/**
-	 * @return Returns the verb of the activity ,e.g. Robin "marked" Joseph as a friend   
-	 */
-	SmfActivityVerb actionName() const;
-
-	/**
-	 * There can be multiple objects in a single activity entry, though this may be rare - only for few verbs.
-	 * @return list of activity objects (mostly one object)
-	 */
-	QList<SmfActivityObject> activities() const;
-	
-	/**
-	 * @return Returns information about the target of the activity, for verbs that support a target.
-	 * For example, a target is a photo album to which photos were added
-	 */
-	SmfActivityObject targetObj() const;
-
-	/**
-	 * Sets service specific id of the of entry 
-	 * @param aId The id to be set
-	 */
-	bool setId( const QString& aId);
-	
-	/**
-	 * Sets the title of the entry - mostly be a string
-	 * @param aTitle The title to be set 
-	 */
-	bool setTitle(const SmfPost& aTitle);
-
-	/**
-	 * Sets detail description of this entry in the activity list. might be absent if title is sufficient
-	 * @param aDetails The details to be set
-	 */
-	bool setDetails(const SmfPost& aDetails);
-	
-	/**
-	 * Sets the author of the activity - the name and the uri field are most commonly used
-	 * Oher information fields might be empty
-	 * @param aContact The author to be set
-	 */
-	bool setAuthor(const SmfContact& aContact);
-	
-	/**
-	 * Sets the verb of the activity ,e.g. Robin "marked" Joseph as a friend
-	 * @param aVerb The action name to be set   
-	 */
-	void setActionName(SmfActivityVerb  aVerb);
-
-	/**
-	 * Sets single or multiple objects in a single activity entry, though multiple may be rare - only for few verbs.
-	 * @param list of activity objects (mostly one object)
-	 */
-	bool setActivities(QList<SmfActivityObject>& aList);
-	
-	/**
-	 * Returns information about the target of the activity, for verbs that support a target.
-	 * For example, a target is a photo album to which photos were added
-	 * @param aTarget The activity object to be set
-	 */
-	bool setTargetObj(const SmfActivityObject& aTarget);
-	
-private:
-	QSharedDataPointer<SmfActivityEntryPrivate> d;
-	
-	friend QDataStream& operator >> ( QDataStream &aOut, SmfActivityEntry& aData);
-	friend QDataStream& operator << ( QDataStream &aIn, const SmfActivityEntry& aData);	
-	};
-
-SMFCLIENT_EXPORT QDataStream& operator >> ( QDataStream &aOut, const SmfActivityEntry& aData);
-SMFCLIENT_EXPORT QDataStream& operator << ( QDataStream &aIn, const SmfActivityEntry& aData);	
-
-// Make the class SmfActivityEntry known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfActivityEntry)
-
-#endif /* SMFACTIONS_H_ */
--- a/smf/smfservermodule/smfclient/common/smfactions_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Contains private implementation of the smfactions
- */
-
-#ifndef SMFACTIONS_P_H_
-#define SMFACTIONS_P_H_
-
-#include <QDateTime>
-#include <QSharedData>
-#include <QVariant>
-#include <QImage>
-#include <QDateTime>
-#include <QStringList>
-#include <QUrl>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <QMetaType>
-
-#include "smfactions.h"
-#include "smfpost.h"
-#include "smfcontact.h"
-
-class SmfActivityObjectPrivate: public QSharedData
-	{
-public:	
-	SmfActivityObjectPrivate( ) {
-		m_id.clear();
-		m_caption.clear();
-		m_link.clear();
-		m_content.clear();
-	}
-	
-	SmfActivityObjectPrivate( const SmfActivityObjectPrivate& aOther ) :
-		QSharedData (aOther),
-		m_id (aOther.m_id),
-		m_thumbnail (aOther.m_thumbnail),
-		m_caption (aOther.m_caption),
-		m_type (aOther.m_type),
-		m_objData (aOther.m_objData),
-		m_link (aOther.m_link),
-		m_time (aOther.m_time),
-		m_content (aOther.m_content) { }
-
-	~SmfActivityObjectPrivate( ) {}
-	
-	/**
-	 * Data members
-	 */
-	QString m_id;
-	QImage m_thumbnail;
-	QString m_caption;
-	SmfActivityObjectType m_type;
-	QVariant m_objData;
-	QString m_link;
-	QDateTime m_time;
-	QString m_content;
-	};
-
-class SmfActivityEntryPrivate: public QSharedData
-	{
-public:
-	SmfActivityEntryPrivate( ) {
-		m_id.clear();
-	}
-	
-	SmfActivityEntryPrivate( const SmfActivityEntryPrivate& aOther ) :
-		QSharedData (aOther),
-		m_id (aOther.m_id),
-		m_title (aOther.m_title),
-		m_details (aOther.m_details),
-		m_author (aOther.m_author),
-		m_actionName (aOther.m_actionName),
-		m_activities (aOther.m_activities),
-		m_targetObj (aOther.m_targetObj)  { }
-
-	~SmfActivityEntryPrivate( ) { }
-	
-	/**
-	 * Data members
-	 */
-	QString m_id;
-	SmfPost m_title;
-	SmfPost m_details;
-	SmfContact m_author;
-	SmfActivityVerb m_actionName;
-	QList<SmfActivityObject> m_activities;
-	SmfActivityObject m_targetObj;
-	};
-
-#endif /* SMFACTIONS_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfalbum.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfAlbum class represents a music album
- *
- */
-
-#include <smfalbum.h>
-#include <smfalbum_p.h>
-
-
-/**
- * Constructor with default argument
- */
-SmfAlbum::SmfAlbum( )
-	{
-	d = new SmfAlbumPrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfAlbum::SmfAlbum( const SmfAlbum &aOther )
-	: d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfAlbum& SmfAlbum::operator=( const SmfAlbum &aOther )
-	{
-	d->m_name = aOther.d->m_name;
-	d->m_image = aOther.d->m_image;
-	d->m_artists = aOther.d->m_artists;
-	d->m_albumId = aOther.d->m_albumId;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfAlbum::~SmfAlbum( )
-	{
-	}
-
-/**
- * Method to get the album name
- * @return The album name
- */
-QString SmfAlbum::name( ) const
-	{
-	return d->m_name;
-	}
-
-/**
- * Method to get the album's image
- * @return The album's image
- */
-QImage SmfAlbum::image( ) const
-	{
-	return d->m_image;
-	}
-
-/**
- * Method to get the artist names
- * @return The list of artists in the album
- */
-SmfArtists SmfAlbum::artists( ) const
-	{
-	return d->m_artists;
-	}
-
-/**
- * Method to get the id of the album
- * @return The ID value 
- */
-QString SmfAlbum::id( ) const
-	{
-	return d->m_albumId;
-	}
-
-/**
- * Method to set the album name
- * @param aName The album name
- */
-void SmfAlbum::setName( const QString &aName )
-	{
-	d->m_name = aName;
-	}
-
-/**
- * Method to set the album's image
- * @param aImage The album's image
- */
-void SmfAlbum::setImage( const QImage &aImage )
-	{
-	d->m_image = aImage;
-	}
-
-/**
- * Method to set the artist names
- * @param aArtists The list of artists in the album
- */
-void SmfAlbum::setArtists( const SmfArtists &aArtists )
-	{
-	d->m_artists = aArtists;
-	}
-
-/**
- * Method to set the id of the album
- * @param aId The ID value 
- */
-void SmfAlbum::setId( const QString &aId )
-	{
-	d->m_albumId = aId;
-	}
-
-/**
- * Method for Externalization. Writes the SmfAlbum object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aAlbum The SmfAlbum object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfAlbum &aAlbum )
-	{
-	// Serialize d->m_name
-	aDataStream<<aAlbum.d->m_name;
-	
-	// Serialize d->m_image
-	aDataStream<<aAlbum.d->m_image;
-	
-	// Serialize d->m_artists
-	aDataStream<<aAlbum.d->m_artists;
-	
-	// Serialize d->m_albumId
-	aDataStream<<aAlbum.d->m_albumId;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfAlbum object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aAlbum The SmfAlbum object to be internalized
- * @return reference to the stream
- */
- QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfAlbum &aAlbum)
-	{
-	// Deserialize d->m_name
-	aDataStream>>aAlbum.d->m_name;
-	
-	// Deserialize d->m_image
-	aDataStream>>aAlbum.d->m_image;
-	
-	// Deserialize d->m_artists
-	aDataStream>>aAlbum.d->m_artists;
-	
-	// Deserialize d->m_albumId
-	aDataStream>>aAlbum.d->m_albumId;
-	
-	return aDataStream;
-	}
--- a/smf/smfservermodule/smfclient/common/smfalbum.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfAlbum class represents a music album
- *
- */
-#ifndef SMFALBUM_H_
-#define SMFALBUM_H_
-
-#include <QImage>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-#include <QMetaType>
-
-class SmfAlbumPrivate;
-class SmfArtists;
-
-/**
- * @ingroup smf_common_group
- * The SmfAlbum class represents a music album
- */
-class SMFCLIENT_EXPORT SmfAlbum
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfAlbum( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfAlbum( const SmfAlbum &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 * @return The target reference value
-	 */
-	SmfAlbum& operator=( const SmfAlbum &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfAlbum( );
-	
-	/**
-	 * Method to get the album name
-	 * @return The album name
-	 */
-	QString name( ) const;
-	
-	/**
-	 * Method to get the album's image
-	 * @return The album's image
-	 */
-	QImage image( ) const;
-	
-	/**
-	 * Method to get the artist names
-	 * @return The list of artists in the album
-	 */
-	SmfArtists artists( ) const;
-	
-	/**
-	 * Method to get the id of the album
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to set the album name
-	 * @param aName The album name
-	 */
-	void setName( const QString &aName );
-	
-	/**
-	 * Method to set the album's image
-	 * @param aImage The album's image
-	 */
-	void setImage( const QImage &aImage );
-	
-	/**
-	 * Method to set the artist names
-	 * @param aArtists The list of artists in the album
-	 */
-	void setArtists( const SmfArtists &aArtists );
-	
-	/**
-	 * Method to set the id of the album
-	 * @param aId The ID value 
-	 */
-	void setId( const QString &aId );
-	
-private:
-	QSharedDataPointer<SmfAlbumPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfAlbum &aAlbum );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfAlbum &aAlbum );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfAlbum object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aAlbum The SmfAlbum object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfAlbum &aAlbum );
-
-/**
- * Method for Internalization. Reads a SmfAlbum object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aAlbum The SmfAlbum object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfAlbum &aAlbum);
-
-// Make the class SmfAlbum known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfAlbum)
-
-#endif /* SMFALBUM_H_ */
--- a/smf/smfservermodule/smfclient/common/smfalbum_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfAlbum class
- *
- */
-
-#ifndef SMFALBUM_P_H_
-#define SMFALBUM_P_H_
-
-#include <smfartists.h>
-#include <QStringList>
-#include <QSharedData>
-
-class SmfAlbumPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfAlbumPrivate( ) { 
-		m_name.clear(); 
-		m_albumId.clear();
-		
-	}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfAlbumPrivate( const SmfAlbumPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_name ( aOther.m_name ), 
-		m_image ( aOther.m_image ),
-		m_artists ( aOther.m_artists ),
-		m_albumId ( aOther.m_albumId ) 	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfAlbumPrivate( )
-		{
-		}
-  
-	QString		m_name;		// album name
-	QImage 		m_image;	// album image
-	SmfArtists m_artists;	// album's artists
-	QString 	m_albumId;	// album Id
-	
-};
-
-#endif /* SMFALBUM_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfartists.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfArtists class represents the artists in a track or an album
- *
- */
-
-#include <smfartists.h>
-#include <smfartists_p.h>
-
-/**
- * Constructor with default argument
- */
-SmfArtists::SmfArtists( )
-	{
-	d = new SmfArtistsPrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfArtists::SmfArtists( const SmfArtists &aOther )
-	:d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfArtists& SmfArtists::operator=( const SmfArtists &aOther )
-	{
-	d->m_names = aOther.d->m_names;
-	d->m_image = aOther.d->m_image;
-	d->m_url = aOther.d->m_url;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfArtists::~SmfArtists( )
-	{
-	}
-
-/**
- * Method to get the artists names
- * @return The list of artists
- */
-QStringList SmfArtists::names( ) const
-	{
-	return d->m_names;
-	}
-
-/**
- * Method to get the image of the artists
- * @return The image of te artists
- */
-QImage SmfArtists::image( ) const
-	{
-	return d->m_image;
-	}
-
-/**
- * Method to get the url of the artists
- * @return The url of the artists
- */
-QUrl SmfArtists::url( ) const
-	{
-	return d->m_url;
-	}
-
-/**
- * Method to set the artists names
- * @param aList The list of artists names
- */
-void SmfArtists::setNames( const QStringList &aList )
-	{
-	d->m_names = aList;
-	}
-
-/**
- * Method to set the image of the artists
- * @param aImage The image of the artists
- */
-void SmfArtists::setImage( const QImage &aImage )
-	{
-	d->m_image = aImage;
-	}
-
-/**
- * Method to set the url of the artists
- * @param aUrl The url of the artists
- */
-void SmfArtists::setUrl( const QUrl &aUrl )
-	{
-	d->m_url = aUrl;
-	}
-	
-/**
- * Method for Externalization. Writes the SmfArtists object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aArtists The SmfArtists object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfArtists &aArtists )
-	{
-	// Serialize d->m_image
-	aDataStream<<aArtists.d->m_image;
-	
-	// Serialize d->m_names
-	aDataStream<<aArtists.d->m_names;
-	
-	// Serialize d->m_url
-	aDataStream<<aArtists.d->m_url;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfArtists object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aArtists The SmfArtists object to be internalized
- * @return reference to the stream
- */
- QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfArtists &aArtists)
-	{
-	// Deserialize d->m_image
-	aDataStream>>aArtists.d->m_image;
-	
-	// Deserialize d->m_names
-	aDataStream>>aArtists.d->m_names;
-	
-	// Deserialize d->m_url
-	aDataStream>>aArtists.d->m_url;
-	
-	return aDataStream;
-	}
-
--- a/smf/smfservermodule/smfclient/common/smfartists.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfArtists class represents the artists in a track or an album
- *
- */
-
-#ifndef SMFARTISTS_H_
-#define SMFARTISTS_H_
-
-#include <QImage>
-#include <QUrl>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-#include <QMetaType>
-
-class SmfArtistsPrivate;
-
-/**
- * @ingroup smf_common_group
- * The SmfArtists class represents the artists in a track or an album
- */
-class SMFCLIENT_EXPORT SmfArtists
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfArtists( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfArtists( const SmfArtists &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 */
-	SmfArtists& operator=( const SmfArtists &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfArtists( );
-	
-	/**
-	 * Method to get the artists names
-	 * @return The list of artists
-	 */
-	QStringList names( ) const;
-	
-	/**
-	 * Method to get the image of the artists
-	 * @return The image of te artists
-	 */
-	QImage image( ) const;
-	
-	/**
-	 * Method to get the url of the artists
-	 * @return The url of the artists
-	 */
-	QUrl url( ) const;
-	
-	/**
-	 * Method to set the artists names
-	 * @param aList The list of artists names
-	 */
-	void setNames( const QStringList &aList );
-	
-	/**
-	 * Method to set the image of the artists
-	 * @param aImage The image of the artists
-	 */
-	void setImage( const QImage &aImage );
-	
-	/**
-	 * Method to set the url of the artists
-	 * @param aUrl The url of the artists
-	 */
-	void setUrl( const QUrl &aUrl );
-		
-private:
-	QSharedDataPointer<SmfArtistsPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfArtists &aArtists );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfArtists &aArtists );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfArtists object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aArtists The SmfArtists object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfArtists &aArtists );
-
-/**
- * Method for Internalization. Reads a SmfArtists object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aArtists The SmfArtists object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfArtists &aArtists);
-
-// Make the class SmfArtists known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfArtists)
-
-#endif /* SMFARTISTS_H_ */
--- a/smf/smfservermodule/smfclient/common/smfartists_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfArtists class
- *
- */
-
-#ifndef SMFARTISTS_P_H_
-#define SMFARTISTS_P_H_
-
-#include <QImage>
-#include <QUrl>
-#include <QStringList>
-#include <QSharedData>
-
-class SmfArtistsPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfArtistsPrivate( ) { 
-		m_names.clear(); 
-		m_url.clear();
-	}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfArtistsPrivate( const SmfArtistsPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_names ( aOther.m_names ), 
-		m_image ( aOther.m_image ),
-		m_url ( aOther.m_url ) 	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfArtistsPrivate( )
-		{
-		}
-  
-	QStringList	m_names;	// artist names
-	QImage 		m_image;	// image
-	QUrl 		m_url;		// url
-};
-
-
-#endif /* SMFARTISTS_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfclientglobal.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- * Description:
- * Client DLL macro and server executable name
- *
- */
-
-#ifndef SMFCLIENTGLOBAL_H_
-#define SMFCLIENTGLOBAL_H_
-
- #include <QtCore/QtGlobal>
-#include <QString>
-#ifdef Q_OS_SYMBIAN
-_LIT(KSmfServerName,"smfserver");
-_LIT(KSmfServerSemaphoreName,"smfserverSemaphore");
-_LIT(KSmfServerFilename,"smfserver");
-#else
-const QString KSmfServerName("smfserver");
-const QString KSmfServerSemaphoreName("smfserverSemaphore");
-const QString KSmfServerFilename("smfserver");
-#endif
-//TUid KSmfServerUID3 = { 0xE37E0269 };
-
- #ifdef SMFCLIENT_LIB_EXPORT
- #  define SMFCLIENT_EXPORT Q_DECL_EXPORT
- #else
- #  define SMFCLIENT_EXPORT Q_DECL_IMPORT
- #endif
-
-/**
- * To be designed later
- */
-#define SMF_GETSERVICES(INTERFACE,INTERFACESTRING) ;
-#endif /* SMFCLIENTDEFS_H_ */
--- a/smf/smfservermodule/smfclient/common/smfcomment.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The comment class represents a comment (on a picture or a music track etc)
- *
- */
-
-
-#include "smfcomment.h"
-#include "smfcomment_p.h"
-
-/**
- * Constructor with default argument
- */
-SmfComment::SmfComment()
-	{
-	d = new SmfCommentPrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfComment::SmfComment( const SmfComment &aOther )
-	:d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The current object reference
- */
-SmfComment& SmfComment::operator=(const SmfComment &aOther)
-	{
-	d->m_text = aOther.d->m_text;
-	d->m_timeStamp = aOther.d->m_timeStamp;
-	d->m_commentId = aOther.d->m_commentId;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfComment::~SmfComment( )
-	{
-	}
-
-/**
- * Method to get the comment text
- * @return The comment text
- */
-QString SmfComment::text( ) const
-	{
-	return d->m_text;
-	}
-
-/**
- * Method to get the comment time stamp
- * @return The comment time stamp value
- */
-QDateTime SmfComment::timeStamp( ) const
-	{
-	return d->m_timeStamp;
-	}
-
-/**
- * Method to get the id of the comment
- * @return The ID value 
- */
-QString SmfComment::id( ) const	
-	{
-	return d->m_commentId;
-	}
-
-/**
- * Method to set the comment text
- * @param aText The comment text to be set
- */
-void SmfComment::setText( const QString &aText )
-	{
-	d->m_text = aText;
-	}
-
-/**
- * Method to set the time stamp
- * @param aDateTime The comment time stamp value to be set
- */
-void SmfComment::setTimeStamp( const QDateTime &aDateTime )
-	{
-	d->m_timeStamp = aDateTime;
-	}
-
-/**
- * Method to set the id of the comment
- * @param aId The ID value to be set
- */
-void SmfComment::setId( const QString &aId )
-	{
-	d->m_commentId = aId;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfComment object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aComment The SmfComment object to be externalized
- * @return reference to the written stream
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfComment &aComment )
-	{
-	// Serialize d->m_text
-	aDataStream<<aComment.d->m_text;
-	
-	// Serialize d->m_timeStamp
-	aDataStream<<aComment.d->m_timeStamp;
-	
-	// Serialize d->m_commentId
-	aDataStream<<aComment.d->m_commentId;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfComment object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aComment The SmfComment object to be internalized
- * @return reference to the stream
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfComment &aComment)
-	{
-	// Deserialize d->m_text
-	aDataStream>>aComment.d->m_text;
-	
-	// Deserialize d->m_timeStamp
-	aDataStream>>aComment.d->m_timeStamp;
-	
-	// Deserialize d->m_commentId
-	aDataStream>>aComment.d->m_commentId;
-	
-	return aDataStream;
-	}
-
--- a/smf/smfservermodule/smfclient/common/smfcomment.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The comment class represents a comment (on a picture or a music track etc)
- *
- */
-
-#ifndef SMFCOMMENT_H_
-#define SMFCOMMENT_H_
-
-#include <QDateTime>
-#include <qdatastream.h>
-#include <QSharedData>
-#include "smfclientglobal.h"
-#include <QMetaType>
-
-class SmfCommentPrivate;
-
-/**
- * @ingroup smf_common_group
- * The comment class represents a comment (on a picture or a music track etc)
- */
-class SMFCLIENT_EXPORT SmfComment
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfComment( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfComment( const SmfComment &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 * @return The current object reference
-	 */
-	SmfComment& operator=(const SmfComment &aOther);
-	
-	/**
-	 * Destructor
-	 */
-	~SmfComment( );
-	
-	/**
-	 * Method to get the comment text
-	 * @return The comment text
-	 */
-	QString text( ) const;
-	
-	/**
-	 * Method to get the comment time stamp
-	 * @return The comment time stamp value
-	 */
-	QDateTime timeStamp( ) const;
-	
-	/**
-	 * Method to get the id of the comment
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to set the comment text
-	 * @param aText The comment text to be set
-	 */
-	void setText( const QString &aText );
-	
-	/**
-	 * Method to set the time stamp
-	 * @param aDateTime The comment time stamp value to be set
-	 */
-	void setTimeStamp( const QDateTime &aDateTime );
-	
-	/**
-	 * Method to set the id of the comment
-	 * @param aId The ID value to be set
-	 */
-	void setId( const QString &aId );
-	
-private:
-	QSharedDataPointer<SmfCommentPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfComment &aComment );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfComment &aComment );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfComment object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aComment The SmfComment object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfComment &aComment );
-
-/**
- * Method for Internalization. Reads a SmfComment object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aComment The SmfComment object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfComment &aComment);
-
-
-// Make the class SmfComment known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfComment)
-
-
-#endif /* SMFCOMMENT_H_ */
--- a/smf/smfservermodule/smfclient/common/smfcomment_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfComment class
- *
- */
-
-#ifndef SMFCOMMENT_P_H_
-#define SMFCOMMENT_P_H_
-
-#include <QDateTime>
-#include <QSharedData>
-
-class SmfCommentPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfCommentPrivate( ) { m_text.clear(); m_commentId.clear(); }
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfCommentPrivate( const SmfCommentPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_text ( aOther.m_text ), 
-		m_timeStamp ( aOther.m_timeStamp ),
-		m_commentId ( aOther.m_commentId ) 	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfCommentPrivate( )
-		{
-		}
-  
-	QString m_text;			// comment text
-	QDateTime m_timeStamp;	// comment time stamp
-	QString m_commentId;	// comment Id
-	
-};
-
-#endif /* SMFCOMMENT_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfcontact.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1108 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The contact class represents a social contact
- * Note: This class has dependencies on QtMobility project
- *
- */
-
-#include <QFile>
-#include <QTextStream>
-
-#include "smfcontact.h"
-
-/**
- * Constructor with default argument
- * @param aParent The parent object
- */
-SmfContact::SmfContact( QObject *aParent)
-	{
-	Q_UNUSED(aParent);
-	d = new SmfContactPrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfContact::SmfContact( const SmfContact &aOther ): d (aOther.d)
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfContact& SmfContact::operator=( const SmfContact &aOther )
-	{
-	d->m_details = aOther.d->m_details;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfContact::~SmfContact( )
-	{
-	}
-
-/**
- * Method to get the available sub fields for contacts.
- * The following are the available sub types of a contact
- *   QtMobility::QContactAddress		Address;
- *   QtMobility::QContactAnniversary	Anniversary;
- *   QtMobility::QContactAvatar			Avatar;
- *   QtMobility::QContactBirthday		Birthday;
- *   QtMobility::QContactId				ContactId;
- *   QtMobility::QContactEmailAddress	EmailAddress;
- *   QtMobility::QContactGender			Gender;
- *   QtMobility::QContactGeoLocation	Geolocation;
- *   QtMobility::QContactGuid			Guid;
- *   QtMobility::QContactName			Name;
- *   QtMobility::QContactNickname		Nickname;
- *   QtMobility::QContactNote			Note;
- *   QtMobility::QContactOnlineAccount	OnlineAccount;
- *   QtMobility::QContactOrganization	Organization;
- *   QtMobility::QContactPhoneNumber	PhoneNumber;
- *   QtMobility::QContactPresence		Presence;
- *   QtMobility::QContactThumbnail		Thumbnail;
- *   QtMobility::QContactTimestamp		Timestamp;
- *   QtMobility::QContactType			Type;
- *   QtMobility::QContactUrl			Url;
- * @return The Available sub fields for this contact
- */
-QStringList SmfContact::subTypes( ) const
-	{
-	QStringList list = d->m_details.uniqueKeys();
-	return list;
-	}
-
-/**
- * Method to convert an SmfContact to a QContact
- * Changes made to the returned QContact will not be reflected 
- * in its parent SmfContact object
- * @param aContact QContact corresponding to SmfContact 
- */
-void SmfContact::convert( QContact &aContact ) const
-	{
-// TODO:-
-	Q_UNUSED(aContact);
-	}
-
-/**
- * Method to get the value of a sub field for this contact
- * @param aSubType The sub field type 
- * @return The value of the sub field subType
- * @see subTypes()
- */
-QVariant SmfContact::value( const QString& aSubType ) const
-	{
-	if(d->m_details.contains(aSubType))
-		return d->m_details.value(aSubType);
-	else
-		return QString();
-	}
-
-/**
- * Method to set value for a subtype
- * @param aSubType The subtype string
- * @param value Thhe value to be set for the subtype
- */
-void SmfContact::setValue(const QString& aSubType,QVariant& value)
-	{
-	d->m_details.insert(aSubType,value);
-	}
-
-/**
- * Method for Externalization. Writes the SmfContact object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aContact The SmfContact object to be externalized
- * @return reference to the written stream
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfContact& aContact )
-	{
-	QContactAddress address = aContact.value("Address").value<QContactAddress>();
-	aDataStream<<address;
-	
-	QContactAnniversary anniver = aContact.value("Anniversary").value<QContactAnniversary>();
-	aDataStream<<anniver;
-	
-	QContactAvatar avatar = aContact.value("Avatar").value<QContactAvatar>();
-	aDataStream<<avatar;
-	
-	QContactBirthday bday = aContact.value("Birthday").value<QContactBirthday>();
-	aDataStream<<bday;
-	
-	QContactId contactId = aContact.value("ContactId").value<QContactId>();
-	aDataStream<<contactId;
-	
-	QContactEmailAddress email = aContact.value("EmailAddress").value<QContactEmailAddress>();
-	aDataStream<<email;
-	
-	QContactGender gender = aContact.value("Gender").value<QContactGender>();
-	aDataStream<<gender;
-	
-	QContactGeoLocation geoloc = aContact.value("Geolocation").value<QContactGeoLocation>();
-	aDataStream<<geoloc;
-	
-	QContactGuid guid = aContact.value("Guid").value<QContactGuid>();
-	aDataStream<<guid;
-	
-	QContactName name = aContact.value("Name").value<QContactName>();
-	aDataStream<<name;
-	
-	QContactNickname nickname = aContact.value("Nickname").value<QContactNickname>();
-	aDataStream<<nickname;
-	
-	QContactNote note = aContact.value("Note").value<QContactNote>();
-	aDataStream<<note;
-	
-	QContactOnlineAccount account = aContact.value("OnlineAccount").value<QContactOnlineAccount>();
-	aDataStream<<account;
-	
-	QContactOrganization org = aContact.value("Organization").value<QContactOrganization>();
-	aDataStream<<org;
-	
-	QContactPhoneNumber number = aContact.value("PhoneNumber").value<QContactPhoneNumber>();
-	aDataStream<<number;
-	
-	QContactPresence presence = aContact.value("Presence").value<QContactPresence>();
-	aDataStream<<presence;
-	
-	QContactThumbnail thumbnail = aContact.value("Thumbnail").value<QContactThumbnail>();
-	aDataStream<<thumbnail;
-	
-	QContactTimestamp time = aContact.value("Timestamp").value<QContactTimestamp>();
-	aDataStream<<time;
-	
-	QContactType type = aContact.value("Type").value<QContactType>();
-	aDataStream<<type;
-	
-	QContactUrl url = aContact.value("Url").value<QContactUrl>();
-	aDataStream<<url;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfContact object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aContact The SmfContact object to be internalized
- * @return reference to the stream
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfContact& aContact )
-	{
-	QContactAddress address;
-	aDataStream>>address;
-	QVariant var1 = QVariant::fromValue(address);
-	aContact.setValue("Address",var1);
-	
-	QContactAnniversary anniver;
-	aDataStream>>anniver;
-	QVariant var2 = QVariant::fromValue(anniver);
-	aContact.setValue("Anniversary",var2);
-	
-	QContactAvatar avatar;
-	aDataStream>>avatar;
-	QVariant var3 = QVariant::fromValue(avatar);
-	aContact.setValue("Avatar",var3);
-	
-	QContactBirthday bday;
-	aDataStream>>bday;
-	QVariant var4 = QVariant::fromValue(bday);
-	aContact.setValue("Birthday",var4);
-	
-	QContactId id;
-	aDataStream>>id;
-	QVariant var5 = QVariant::fromValue(id);
-	aContact.setValue("ContactId",var5);
-	
-	QContactEmailAddress email;
-	aDataStream>>email;
-	QVariant var6 = QVariant::fromValue(email);
-	aContact.setValue("EmailAddress",var6);
-	
-	QContactGender gender;
-	aDataStream>>gender;
-	QVariant var7 = QVariant::fromValue(gender);
-	aContact.setValue("Gender",var7);
-	
-	QContactGeoLocation geo;
-	aDataStream>>geo;
-	QVariant var8 = QVariant::fromValue(geo);
-	aContact.setValue("Geolocation",var8);
-	
-	QContactGuid guid;
-	aDataStream>>guid;
-	QVariant var9 = QVariant::fromValue(guid);
-	aContact.setValue("Guid",var9);
-	
-	QContactName name1;
-	aDataStream>>name1;
-	QVariant var10 = QVariant::fromValue(name1);
-	aContact.setValue("Name",var10);
-	
-	QContactNickname nickname;
-	aDataStream>>nickname;
-	QVariant var11 = QVariant::fromValue(nickname);
-	aContact.setValue("Nickname",var11);
-	
-	QContactNote note;
-	aDataStream>>note;
-	QVariant var12 = QVariant::fromValue(note);
-	aContact.setValue("Note",var12);
-	
-	QContactOnlineAccount account;
-	aDataStream>>account;
-	QVariant var13 = QVariant::fromValue(account);
-	aContact.setValue("OnlineAccount",var13);
-	
-	QContactOrganization org;
-	aDataStream>>org;
-	QVariant var14 = QVariant::fromValue(org);
-	aContact.setValue("Organization",var14);
-	
-	QContactPhoneNumber number;
-	aDataStream>>number;
-	QVariant var15 = QVariant::fromValue(number);
-	aContact.setValue("PhoneNumber",var15);
-	
-	QContactPresence presence;
-	aDataStream>>presence;
-	QVariant var16 = QVariant::fromValue(presence);
-	aContact.setValue("Presence",var16);
-	
-	QContactThumbnail thumbnail;
-	aDataStream>>thumbnail;
-	QVariant var17 = QVariant::fromValue(thumbnail);
-	aContact.setValue("Thumbnail",var17);
-	
-	QContactTimestamp time;
-	aDataStream>>time;
-	QVariant var18 = QVariant::fromValue(time);
-	aContact.setValue("Timestamp",var18);
-	
-	QContactType type;
-	aDataStream>>type;
-	QVariant var19 = QVariant::fromValue(type);
-	aContact.setValue("Type",var19);
-	
-	QContactUrl url;
-	aDataStream>>url;
-	QVariant var20 = QVariant::fromValue(url);
-	aContact.setValue("Url",var20);
-	
-	return aDataStream;
-	}
-
-
-
-
-/**
- * Serialization support for QtMobility::QContactAddress
- */
-QDataStream& operator<<( QDataStream &aDataStream, 
-		const QContactAddress &aAddress )
-	{
-	aDataStream<<aAddress.country();
-	aDataStream<<aAddress.locality();
-	aDataStream<<aAddress.postOfficeBox();
-	aDataStream<<aAddress.postcode();
-	aDataStream<<aAddress.region();
-	aDataStream<<aAddress.street();
-	aDataStream<<aAddress.subTypes();
-
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactAddress
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactAddress &aAddress )
-	{
-	QString str;
-	
-	// First one to be deserialized is country
-	aDataStream>>str;
-	aAddress.setCountry(str);
-
-	// Next one to be deserialized is locality
-	str.clear();
-	aDataStream>>str;
-	aAddress.setLocality(str);
-
-	// Next one to be deserialized is postOfficeBox
-	str.clear();
-	aDataStream>>str;
-	aAddress.setPostOfficeBox(str);
-	
-	// Next one to be deserialized is postCode
-	str.clear();
-	aDataStream>>str;
-	aAddress.setPostcode(str);
-	
-	// Next one to be deserialized is region
-	str.clear();
-	aDataStream>>str;
-	aAddress.setRegion(str);
-	
-	// Next one to be deserialized is street
-	str.clear();
-	aDataStream>>str;
-	aAddress.setStreet(str);
-	
-	// Next one to be deserialized is subtypes
-	QStringList list;
-	list.clear();
-	aDataStream>>list;
-	aAddress.setSubTypes(list);
-	
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactAnniversary
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-		const QContactAnniversary &aAnniversary )
-	{
-	aDataStream<<aAnniversary.calendarId();
-	aDataStream<<aAnniversary.event();
-	aDataStream<<aAnniversary.originalDate();
-	aDataStream<<aAnniversary.subType();
-
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactAnniversary
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactAnniversary &aAnniversary)
-	{
-	QString str;
-	QDate date;
-	
-	// First one to be deserialized is calendarId
-	aDataStream>>str;
-	aAnniversary.setCalendarId(str);
-
-	// Next one to be deserialized is event
-	str.clear();
-	aDataStream>>str;
-	aAnniversary.setEvent(str);
-
-	// Next one to be deserialized is originalDate
-	aDataStream>>date;
-	aAnniversary.setOriginalDate(date);
-	
-	// Next one to be deserialized is subType
-	str.clear();
-	aDataStream>>str;
-	aAnniversary.setSubType(str);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactAvatar
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactAvatar &aAvatar )
-	{
-	//TODO:- QContactAvatar derives from QContactDetail,so internalization/externalization
-	//for the same should be provided
-	
-	//Qt mobility introduces API compatibility break
-#ifdef OLDER_QT_MOBILITY
-	aDataStream<<aAvatar.avatar();
-
-#else
-	aDataStream<<aAvatar.imageUrl();
-	aDataStream<<aAvatar.videoUrl();
-#endif
-	
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactAvatar
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-	QContactAvatar &aAvatar)
-	{
-#ifdef OLDER_QT_MOBILITY
-	QString avatarPath;
-	aDataStream>>avatarPath;
-	aAvatar.setAvatar(avatarPath);
-#else
-	QUrl url;
-	aDataStream>>url;
-	aAvatar.setImageUrl(url);
-	
-	url.clear();
-	aDataStream>>url;
-	aAvatar.setVideoUrl(url);
-#endif
-	
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactBirthday
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactBirthday &aBirthday )
-	{
-	aDataStream<<aBirthday.date();
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactBirthday
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactBirthday &aBirthday)
-	{
-	QDate date;
-	aDataStream>>date;
-	aBirthday.setDate(date);
-
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactId
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactId &aContactId )
-	{
-	aDataStream<<aContactId.localId();
-	aDataStream<<aContactId.managerUri();
-
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactId
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactId &aContactId)
-	{
-	QContactLocalId localId;
-	QString str;
-	
-	// First one to be deserialized is localId
-	aDataStream>>localId;
-	aContactId.setLocalId(localId);
-
-	// Next one to be deserialized is managerUri
-	aDataStream>>str;
-	aContactId.setManagerUri(str);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactEmailAddress
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactEmailAddress &aEMail )
-	{
-	aDataStream<<aEMail.emailAddress();
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactEmailAddress
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactEmailAddress &aEMail)
-	{
-	QString str;
-	aDataStream>>str;
-	aEMail.setEmailAddress(str);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactGender
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactGender &aGender )
-	{
-	aDataStream<<aGender.gender();
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactGender
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactGender &aGender)
-	{
-	QString str;
-	aDataStream>>str;
-	aGender.setGender(str);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactGeoLocation
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactGeoLocation &aGeolocation )
-	{
-	aDataStream<<aGeolocation.accuracy();
-	aDataStream<<aGeolocation.altitude();
-	aDataStream<<aGeolocation.altitudeAccuracy();
-	aDataStream<<aGeolocation.heading();
-	aDataStream<<aGeolocation.label();
-	aDataStream<<aGeolocation.latitude();
-	aDataStream<<aGeolocation.longitude();
-	aDataStream<<aGeolocation.speed();
-	aDataStream<<aGeolocation.timestamp();
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactGeoLocation
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactGeoLocation &aGeolocation)
-	{
-	double val;
-	QString str;
-	QDateTime date;
-	
-	// First one to be deserialized is accuracy
-	val = 0;
-	aDataStream>>val;
-	aGeolocation.setAccuracy(val);
-
-	// Next one to be deserialized is altitude
-	val = 0;
-	aDataStream>>val;
-	aGeolocation.setAltitude(val);
-
-	// Next one to be deserialized is altitudeAccuracy
-	val = 0;
-	aDataStream>>val;
-	aGeolocation.setAltitudeAccuracy(val);
-	
-	// Next one to be deserialized is heading
-	val = 0;
-	aDataStream>>val;
-	aGeolocation.setHeading(val);
-	
-	// First one to be deserialized is label
-	aDataStream>>str;
-	aGeolocation.setLabel(str);
-
-	// Next one to be deserialized is latitude
-	val = 0;
-	aDataStream>>val;
-	aGeolocation.setLatitude(val);
-
-	// Next one to be deserialized is longitude
-	val = 0;
-	aDataStream>>val;
-	aGeolocation.setLongitude(val);
-	
-	// Next one to be deserialized is speed
-	val = 0;
-	aDataStream>>val;
-	aGeolocation.setSpeed(val);
-	
-	// Next one to be deserialized is timestamp
-	aDataStream>>date;
-	aGeolocation.setTimestamp(date);
-		
-	return aDataStream;
-	}
-
-/**
- * Serialization support for QtMobility::QContactGuid
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactGuid &aGuid )
-	{
-	aDataStream<<aGuid.guid();
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactGuid
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactGuid &aGuid)
-	{
-	QString str;
-	aDataStream>>str;
-	aGuid.setGuid(str);
-	
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactName
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-		const QContactName &aContact )
-	{
-	//Qt mobility introduces API compatibility break
-#ifdef OLDER_QT_MOBILITY
-	aDataStream<<aContact.first();
-	aDataStream<<aContact.last();
-#else
-	aDataStream<<aContact.customLabel();
-	aDataStream<<aContact.firstName();
-	aDataStream<<aContact.lastName();
-	aDataStream<<aContact.middleName();
-	aDataStream<<aContact.prefix();
-	aDataStream<<aContact.suffix();
-#endif
-	
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactName
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactName &aContact )
-	{
-	QString str;
-	
-	// First one to be deserialized is customlabel
-	str.clear();
-	aDataStream>>str;
-	aContact.setCustomLabel(str);
-	
-	// Next one to be deserialized is firstname
-	str.clear();
-	aDataStream>>str;
-#ifdef OLDER_QT_MOBILITY
-	aContact.setFirst(str);
-#else
-	aContact.setFirstName(str);
-#endif
-
-	// Next one to be deserialized is lastName
-	str.clear();
-	aDataStream>>str;
-#ifdef OLDER_QT_MOBILITY
-	aContact.setLast(str);
-#else
-	aContact.setLastName(str);
-#endif
-	
-
-	
-	// Next one to be deserialized is middlename
-	str.clear();
-	aDataStream>>str;
-	aContact.setMiddleName(str);
-	
-	// Next one to be deserialized is prefix
-	str.clear();
-	aDataStream>>str;
-	aContact.setPrefix(str);
-	
-	// Next one to be deserialized is suffix
-	str.clear();
-	aDataStream>>str;
-	aContact.setSuffix(str);
-	
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactNickname
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactNickname &aNickname )
-	{
-	aDataStream<<aNickname.nickname();
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactNickname
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactNickname &aNickname)
-	{
-	QString str;
-	aDataStream>>str;
-	aNickname.setNickname(str);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactNote
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactNote &aNote )
-	{
-	aDataStream<<aNote.note();
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactNote
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactNote &aNote)
-	{
-	QString str;
-	aDataStream>>str;
-	aNote.setNote(str);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactOnlineAccount
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactOnlineAccount &aOnlineAccount )
-	{
-	aDataStream<<aOnlineAccount.accountUri();
-	aDataStream<<aOnlineAccount.capabilities();
-	aDataStream<<aOnlineAccount.serviceProvider();
-	aDataStream<<aOnlineAccount.subTypes();
-
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactOnlineAccount
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactOnlineAccount &aOnlineAccount)
-	{
-	QString str;
-	QStringList list;
-	
-	// First one to be deserialized is accountUri
-	aDataStream>>str;
-	aOnlineAccount.setAccountUri(str);
-
-	// Next one to be deserialized is capabilities
-	aDataStream>>list;
-	aOnlineAccount.setCapabilities(list);
-
-	// Next one to be deserialized is serviceProvider
-	str.clear();
-	aDataStream>>str;
-	aOnlineAccount.setServiceProvider(str);
-	
-	// Next one to be deserialized is subTypes
-	list.clear();
-	aDataStream>>list;
-	aOnlineAccount.setSubTypes(list);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactOrganization
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactOrganization &aOrganization )
-	{
-	aDataStream<<aOrganization.assistantName();
-	aDataStream<<aOrganization.department();
-	aDataStream<<aOrganization.location();
-	aDataStream<<aOrganization.logoUrl();
-	aDataStream<<aOrganization.name();
-	aDataStream<<aOrganization.role();
-	aDataStream<<aOrganization.title();
-
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactOrganization
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactOrganization &aOrganization )
-	{
-	QString str;
-	QStringList list;
-	QUrl url;
-	
-	// First one to be deserialized is assistantName
-	aDataStream>>str;
-	aOrganization.setAssistantName(str);
-
-	// Next one to be deserialized is department
-	aDataStream>>list;
-	aOrganization.setDepartment(list);
-
-	// Next one to be deserialized is location
-	str.clear();
-	aDataStream>>str;
-	aOrganization.setLocation(str);
-	
-	// Next one to be deserialized is logoUrl
-	aDataStream>>url;
-	aOrganization.setLogoUrl(url);
-	
-	// Next one to be deserialized is name
-	str.clear();
-	aDataStream>>str;
-	aOrganization.setName(str);
-
-	// Next one to be deserialized is role
-	str.clear();
-	aDataStream>>str;
-	aOrganization.setRole(str);
-	
-	// Next one to be deserialized is title
-	str.clear();
-	aDataStream>>str;
-	aOrganization.setTitle(str);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactPhoneNumber
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactPhoneNumber &aPhoneNumber )
-	{
-	aDataStream<<aPhoneNumber.number();
-	aDataStream<<aPhoneNumber.subTypes();
-
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactPhoneNumber
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactPhoneNumber &aPhoneNumber )
-	{
-	QString str;
-	QStringList list;
-	
-	// First one to be deserialized is number
-	aDataStream>>str;
-	aPhoneNumber.setNumber(str);
-	
-	// Next one to be deserialized is subTypes
-	aDataStream>>list;
-	aPhoneNumber.setSubTypes(list);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactPresence
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactPresence &aPresence )
-	{
-	aDataStream<<aPresence.customMessage();
-	aDataStream<<aPresence.nickname();
-	aDataStream<<aPresence.presenceState();
-	aDataStream<<aPresence.presenceStateImageUrl();
-	aDataStream<<aPresence.presenceStateText();
-	aDataStream<<aPresence.timestamp();
-
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactPresence
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactPresence &aPresence )
-	{
-	QString str;
-	QUrl url;
-	QDateTime date;
-	
-	// First one to be deserialized is customMessage
-	aDataStream>>str;
-	aPresence.setCustomMessage(str);
-	
-	// Next one to be deserialized is nickname
-	str.clear();
-	aDataStream>>str;
-	aPresence.setNickname(str);
-	
-	// Next one to be deserialized is presenceState
-	int val;
-	aDataStream>>val;
-	QContactPresence::PresenceState state = (QContactPresence::PresenceState)val;
-	aPresence.setPresenceState(state);
-	
-	// Next one to be deserialized is presenceStateImageUrl
-	aDataStream>>url;
-	aPresence.setPresenceStateImageUrl(url);
-	
-	// Next one to be deserialized is presenceStateText
-	str.clear();
-	aDataStream>>str;
-	aPresence.setPresenceStateText(str);
-	
-	// Next one to be deserialized is timestamp
-	aDataStream>>date;
-	aPresence.setTimestamp(date);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactThumbnail
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactThumbnail &aThumbnail )
-	{
-	aDataStream<<aThumbnail.thumbnail();
-
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactThumbnail
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactThumbnail &aThumbnail )
-	{
-	QImage image;
-	aDataStream>>image;
-	aThumbnail.setThumbnail(image);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactTimestamp
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactTimestamp &aTimestamp )
-	{
-	aDataStream<<aTimestamp.created();
-	aDataStream<<aTimestamp.lastModified();
-
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactTimestamp
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactTimestamp &aTimestamp )
-	{
-	QDateTime date1, date2;
-	
-	// First one to be deserialized is created
-	aDataStream>>date1;
-	aTimestamp.setCreated(date1);
-	
-	// Next one to be deserialized is lastModified
-	aDataStream>>date2;
-	aTimestamp.setLastModified(date2);
-		
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactType
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactType &aType )
-	{
-	aDataStream<<aType.type();
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactType
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactType &aType )
-	{
-	QString str;
-	aDataStream>>str;
-	aType.setType(str);
-	
-	return aDataStream;
-	}
-
-
-/**
- * Serialization support for QtMobility::QContactUrl
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactUrl &aUrl )
-	{
-	aDataStream<<aUrl.subType();
-	aDataStream<<aUrl.url();
-
-	return aDataStream;
-	}
-
-/**
- * Deserialization support for QtMobility::QContactUrl
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactUrl &aUrl)
-	{
-	QString str;
-	
-	// First one to be deserialized is subType
-	aDataStream>>str;
-	aUrl.setSubType(str);
-	
-	// Next one to be deserialized is url
-	str.clear();
-	aDataStream>>str;
-	aUrl.setUrl(str);
-		
-	return aDataStream;
-	}
-
--- a/smf/smfservermodule/smfclient/common/smfcontact.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The contact class represents a social contact
- * Note: This class has dependencies on QtMobility project
- *
- */
-
-#ifndef SMFCONTACT_H_
-#define SMFCONTACT_H_
-
-#include <qtcontacts.h>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <QVariant>
-#include "smfclientglobal.h"
-
-#include "smfcontact_p.h"
-
-using namespace QtMobility;
-
-/**
- * Max size for one SmfContact
- */
-const int MaxSmfContactSize = 1000;
-
-/**
- * @ingroup smf_common_group
- * The contact class represents a social contact
- * 
- * Note: This class has dependencies on QtMobility project
- */
-class  SMFCLIENT_EXPORT SmfContact
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 * @param aParent The parent object
-	 */
-	SmfContact( QObject *aParent = 0 );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfContact( const SmfContact &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 * @return The target reference value
-	 */
-	SmfContact& operator=( const SmfContact &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfContact( );
-	
-public slots:
-	/**
-	 * Method to get the available sub fields for contacts.
-	 * The following are the available sub types of a contact
-	 *   QtMobility::QContactAddress		Address;
-	 *   QtMobility::QContactAnniversary	Anniversary;
-	 *   QtMobility::QContactAvatar			Avatar;
-	 *   QtMobility::QContactBirthday		Birthday;
-	 *   QtMobility::QContactId				ContactId;
-	 *   QtMobility::QContactEmailAddress	EmailAddress;
-	 *   QtMobility::QContactGender			Gender;
-	 *   QtMobility::QContactGeoLocation	Geolocation;
-	 *   QtMobility::QContactGuid			Guid;
-	 *   QtMobility::QContactName			Name;
-	 *   QtMobility::QContactNickname		Nickname;
-	 *   QtMobility::QContactNote			Note;
-	 *   QtMobility::QContactOnlineAccount	OnlineAccount;
-	 *   QtMobility::QContactOrganization	Organization;
-	 *   QtMobility::QContactPhoneNumber	PhoneNumber;
-	 *   QtMobility::QContactPresence		Presence;
-	 *   QtMobility::QContactThumbnail		Thumbnail;
-	 *   QtMobility::QContactTimestamp		Timestamp;
-	 *   QtMobility::QContactType			Type;
-	 *   QtMobility::QContactUrl			Url;
-	 * @return The Available sub fields for this contact
-	 */
-	QStringList subTypes( ) const;
-	
-	/**
-	 * Method to convert an SmfContact to a QContact
-	 * Changes made to the returned QContact will not be reflected 
-	 * in its parent SmfContact object
-	 * @param aContact QContact corresponding to SmfContact 
-	 */
-	void convert( QContact &aContact ) const;
-	
-	/**
-	 * Method to get the value of a sub field for this contact
-	 * @param aSubType The sub field type 
-	 * @return The value of the sub field subType
-	 * @see subTypes()
-	 */
-	QVariant value( const QString& aSubType ) const;
-	
-	/**
-	 * Method to set value for a subtype
-	 * @param aSubType The subtype string
-	 * @param value Thhe value to be set for the subtype
-	 */
-	void setValue(const QString& aSubType,QVariant& value);
-
-private:
-	QSharedDataPointer<SmfContactPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfContact &aContact );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfContact &aContact );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfContact object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aContact The SmfContact object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfContact &aContact );
-
-/**
- * Method for Internalization. Reads a SmfContact object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aContact The SmfContact object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfContact &aContact );
-
-
-typedef QList<SmfContact> SmfContactList;
-
-
-/**
- * Serialization support for QtMobility QContact classes
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactAddress &aAddress );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactAddress &aAddress );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactAnniversary &aAnniversary );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactAnniversary &aAnniversary );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactAvatar &aAvatar );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactAvatar &aAvatar );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactBirthday &aBirthday );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactBirthday &aBirthday );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactEmailAddress &aEMail );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactEmailAddress &aEMail );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactGender &aGender );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactGender &aGender );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactGeoLocation &aGeolocation );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactGeoLocation &aGeolocation );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactGuid &aGuid );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactGuid &aGuid );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactId &aContactId );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactId &aContactId );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactName &aName );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactName &aName );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactNickname &aNickname );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactNickname &aNickname );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactNote &aNote );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactNote &aNote );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactOnlineAccount &aOnlineAccount );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactOnlineAccount &aOnlineAccount );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactOrganization &aOrganization );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactOrganization &aOrganization );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactPhoneNumber &aPhoneNumber );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactPhoneNumber &aPhoneNumber );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactPresence &aPresence );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactPresence &aPresence );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactThumbnail &aThumbnail );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactThumbnail &aThumbnail );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactTimestamp &aTimestamp );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactTimestamp &aTimestamp );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactType &aType );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactType &aType );
-
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-	const QContactUrl &aUrl );
-
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		QContactUrl &aUrl );
-
-
-// Make the class SmfContact known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfContact)
-Q_DECLARE_METATYPE(QList<SmfContact>)
-
-//make qt mobility related classes known to moc
-Q_DECLARE_METATYPE(QContactAddress)
-Q_DECLARE_METATYPE(QContactAnniversary)
-Q_DECLARE_METATYPE(QContactAvatar)
-Q_DECLARE_METATYPE(QContactBirthday)
-Q_DECLARE_METATYPE(QContactId)
-Q_DECLARE_METATYPE(QContactEmailAddress)
-Q_DECLARE_METATYPE(QContactGender)
-Q_DECLARE_METATYPE(QContactGeoLocation)
-Q_DECLARE_METATYPE(QContactGuid)
-Q_DECLARE_METATYPE(QContactName)
-Q_DECLARE_METATYPE(QContactNickname)
-Q_DECLARE_METATYPE(QContactNote)
-Q_DECLARE_METATYPE(QContactOnlineAccount)
-Q_DECLARE_METATYPE(QContactOrganization)
-Q_DECLARE_METATYPE(QContactPhoneNumber)
-Q_DECLARE_METATYPE(QContactPresence)
-Q_DECLARE_METATYPE(QContactThumbnail)
-Q_DECLARE_METATYPE(QContactTimestamp)
-Q_DECLARE_METATYPE(QContactType)
-Q_DECLARE_METATYPE(QContactUrl)
-
-#endif /* SMFCONTACT_H_ */
--- a/smf/smfservermodule/smfclient/common/smfcontact_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfContact class
- *
- */
-
-#ifndef SMFCONTACT_P_H_
-#define SMFCONTACT_P_H_
-
-#include <QSharedData>
-
-using namespace QtMobility;
-
-class SmfContactPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfContactPrivate( ) { m_details.clear(); }
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfContactPrivate( const SmfContactPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_details ( aOther.m_details )	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfContactPrivate( ){};
-  
-	QVariantMap	m_details;// contact details
-	
-};
-
-#endif /* SMFCONTACT_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfevent.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfEvent class represents an event
- *
- */
-
-#include <smfevent.h>
-#include <smfevent_p.h>
-
-/**
- * Constructor with default argument
- */
-SmfEvent::SmfEvent( )
-	{
-	d = new SmfEventPrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfEvent::SmfEvent( const SmfEvent &aOther )
-	:d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfEvent& SmfEvent::operator=( const SmfEvent &aOther )
-	{
-	d->m_name = aOther.d->m_name;
-	d->m_dateTime = aOther.d->m_dateTime;
-	d->m_duration = aOther.d->m_duration;
-	d->m_artists = aOther.d->m_artists;
-	d->m_venue = aOther.d->m_venue;
-	d->m_url = aOther.d->m_url;
-	d->m_eventId = aOther.d->m_eventId;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfEvent::~SmfEvent( )
-	{
-	}
-
-/**
- * Method to get the event name
- * @return The event name
- */
-QString SmfEvent::title( ) const
-	{
-	return d->m_name;
-	}
-
-/**
- * Method to get the event date and time
- * @return The date and time of the event
- */
-QDateTime SmfEvent::eventDateTime( ) const
-	{
-	return d->m_dateTime;
-	}
-
-/**
- * Method to get the event duration
- * @return The duration of the event
- */
-QTime SmfEvent::duration( ) const
-	{
-	return d->m_duration;
-	}
-
-/**
- * Method to get the artist names
- * @return The list of artists in the event
- */
-SmfArtists SmfEvent::artists( ) const
-	{
-	return d->m_artists;
-	}
-
-/**
- * Method to get the venue of the event
- * @return The venue of the event
- */
-SmfLocation SmfEvent::venue( ) const
-	{
-	return d->m_venue;
-	}
-
-/**
- * Method to get the URL for getting tickets for the event
- * @return The Url for getting ticket for the event
- */
-QUrl SmfEvent::ticketUrl( ) const
-	{
-	return d->m_url;
-	}
-
-/**
- * Method to get the id of the event
- * @return The ID value 
- */
-QString SmfEvent::id( ) const
-	{
-	return d->m_eventId;
-	}
-
-/**
- * Method to set the event name
- * @param aName The new event name
- */
-void SmfEvent::setTitle( const QString &aName )
-	{
-	d->m_name = aName;
-	}
-
-/**
- * Method to set the event date and time
- * @param aDateTime The new date and time of the event
- * 
- */
-void SmfEvent::setEventDateTime( const QDateTime &aDateTime )
-	{
-	d->m_dateTime = aDateTime;
-	}
-
-/**
- * Method to set the event duration
- * @param aDuration The new duration of the event
- * 
- */
-void SmfEvent::setDuration( const QTime &aDuration )
-	{
-	d->m_duration = aDuration;
-	}
-
-/**
- * Method to set the artist
- * @param aArtists The new artists in the event
- */
-void SmfEvent::setArtists( const SmfArtists &aArtists )
-	{
-	d->m_artists = aArtists;
-	}
-
-/**
- * Method to set the venue name
- * @param aVenue The new venue of the event
- */
-void SmfEvent::setVenue( const SmfLocation &aVenue )
-	{
-	d->m_venue = aVenue;
-	}
-
-/**
- * Method to set the URL for getting tickets for the event
- * @param aUrl The new Url for getting ticket for the event
- */
-void SmfEvent::setTicketUrl( const QUrl &aUrl )
-	{
-	d->m_url = aUrl;
-	}
-
-/**
- * Method to set the id of the event
- * @param aId The ID value 
- */
-void SmfEvent::setId( const QString &aId )
-	{
-	d->m_eventId = aId;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfEvent object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aEvent The SmfEvent object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfEvent &aEvent )
-	{
-	// Serialize d->m_name
-	aDataStream<<aEvent.d->m_name;
-		
-	// Serialize d->m_dateTime
-	aDataStream<<aEvent.d->m_dateTime;
-	
-	// Serialize d->m_duration
-	aDataStream<<aEvent.d->m_duration;
-	
-	// Serialize d->m_artists
-	aDataStream<<aEvent.d->m_artists;
-	
-	// Serialize d->m_venue
-	aDataStream<<aEvent.d->m_venue;
-	
-	// Serialize d->m_url
-	aDataStream<<aEvent.d->m_url;
-	
-	// Serialize d->m_eventId
-	aDataStream<<aEvent.d->m_eventId;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfEvent object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aEvent The SmfEvent object to be internalized
- * @return reference to the stream
- */
- QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfEvent &aEvent)
-	{
-	// Deserialize d->m_name
-	aDataStream>>aEvent.d->m_name;
-		
-	// Deserialize d->m_dateTime
-	aDataStream>>aEvent.d->m_dateTime;
-	
-	// Deserialize d->m_duration
-	aDataStream>>aEvent.d->m_duration;
-	
-	// Deserialize d->m_artists
-	aDataStream>>aEvent.d->m_artists;
-	
-	// Deserialize d->m_venue
-	aDataStream>>aEvent.d->m_venue;
-	
-	// Deserialize d->m_url
-	aDataStream>>aEvent.d->m_url;
-	
-	// Deserialize d->m_eventId
-	aDataStream>>aEvent.d->m_eventId;
-	
-	return aDataStream;
-	}
--- a/smf/smfservermodule/smfclient/common/smfevent.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfEvent class represents an event
- *
- */
-
-#ifndef SMFEVENT_H_
-#define SMFEVENT_H_
-
-#include "smflocation.h"
-#include "smfartists.h"
-#include <QStringList>
-#include <QDatastream>
-#include <QSharedData>
-#include "smfclientglobal.h"
-#include <QMetaType>
-
-class SmfEventPrivate;
-
-/**
- * @ingroup smf_common_group
- * The event class represents an event
- */
-class SMFCLIENT_EXPORT SmfEvent
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfEvent( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfEvent( const SmfEvent &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 * @return The current object reference
-	 */
-	SmfEvent& operator=( const SmfEvent &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfEvent( );
-	
-	/**
-	 * Method to get the event name
-	 * @return The event name
-	 */
-	QString title( ) const;
-	
-	/**
-	 * Method to get the event date and time
-	 * @return The date and time of the event
-	 */
-	QDateTime eventDateTime( ) const;
-	
-	/**
-	 * Method to get the event duration
-	 * @return The duration of the event
-	 */
-	QTime duration( ) const;
-	
-	/**
-	 * Method to get the artist names
-	 * @return The list of artists in the event
-	 */
-	SmfArtists artists( ) const;
-	
-	/**
-	 * Method to get the venue of the event
-	 * @return The venue of the event
-	 */
-	SmfLocation venue( ) const;
-	
-	/**
-	 * Method to get the URL for getting tickets for the event
-	 * @return The Url for getting ticket for the event
-	 */
-	QUrl ticketUrl( ) const;
-	
-	/**
-	 * Method to get the id of the event
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to set the event name
-	 * @param aName The new event name
-	 */
-	void setTitle( const QString &aName );
-	
-	/**
-	 * Method to set the event date and time
-	 * @param aDateTime The new date and time of the event
-	 * 
-	 */
-	void setEventDateTime( const QDateTime &aDateTime );
-	
-	/**
-	 * Method to set the event duration
-	 * @param aDuration The new duration of the event
-	 * 
-	 */
-	void setDuration( const QTime &aDuration );
-	
-	/**
-	 * Method to set the artist
-	 * @param aArtists The new artists in the event
-	 */
-	void setArtists( const SmfArtists &aArtists );
-	
-	/**
-	 * Method to set the venue name
-	 * @param aVenue The new venue of the event
-	 */
-	void setVenue( const SmfLocation &aVenue );
-	
-	/**
-	 * Method to set the URL for getting tickets for the event
-	 * @param aUrl The new Url for getting ticket for the event
-	 */
-	void setTicketUrl( const QUrl &aUrl );
-	
-	/**
-	 * Method to set the id of the event
-	 * @param aId The ID value 
-	 */
-	void setId( const QString &aId );
-	
-private:
-	QSharedDataPointer<SmfEventPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfEvent &aEvent );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfEvent &aEvent );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfEvent object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aEvent The SmfEvent object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfEvent &aEvent );
-
-/**
- * Method for Internalization. Reads a SmfEvent object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aEvent The SmfEvent object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfEvent &aEvent);
-
-
-typedef QList<SmfEvent> SmfEventList;
-
-// Make the class SmfEvent known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfEvent)
-Q_DECLARE_METATYPE(QList<SmfEvent>)
-
-
-#endif /* SMFEVENT_H_ */
--- a/smf/smfservermodule/smfclient/common/smfevent_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfEvent class
- *
- */
-
-#ifndef SMFEVENT_P_H_
-#define SMFEVENT_P_H_
-
-
-#include <smflocation.h>
-#include <smfartists.h>
-#include <QStringList>
-#include <QSharedData>
-
-class SmfEventPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfEventPrivate( ) { 
-		m_name.clear(); 
-		m_url.clear();
-		m_eventId.clear();
-		
-	}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfEventPrivate( const SmfEventPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_name ( aOther.m_name ), 
-		m_dateTime ( aOther.m_dateTime ),
-		m_duration ( aOther.m_duration ),
-		m_artists ( aOther.m_artists ),
-		m_venue ( aOther.m_venue ),
-		m_url ( aOther.m_url ),
-		m_eventId ( aOther.m_eventId ) 	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfEventPrivate( )
-		{
-		}
-  
-	QString		m_name;		// event name
-	QDateTime 	m_dateTime;	// event date and time
-	QTime		m_duration;	// event duration
-	SmfArtists 	m_artists;	// event artist names
-	SmfLocation	m_venue;	// event venue
-	QUrl 		m_url;		// ticket url
-	QString 	m_eventId;	// event Id
-	
-};
-
-#endif /* SMFEVENT_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfglobal.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,395 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * SMF wide global const and macros, to be shared among SMF components 
- * and SMF clients
- *
- */
-
-#ifndef SMFGLOBAL_H
-#define SMFGLOBAL_H
-
-#ifdef Q_OS_SYMBIAN
-#include <e32cmn.h>
-#endif
-
-#include <qglobal.h>
-#include <QBuffer>
-#include <QNetworkRequest>
-#include <QNetworkAccessManager>
-/**
- * Server name 
- */
-
-/**
- * Exact definition to be decided later
- */
-#define SMF_SERVICE_NAME(INTERFACE,INTERFACENAME)
-
-/**
- * Indicates first page for a web query
- */
-const int SMF_FIRST_PAGE=0;
-
-/**
- * Default value for per page item for web queries
- */
-const int SMF_ITEMS_PER_PAGE=10;
-#ifdef Q_OS_SYMBIAN
-class SmfServerSymbianSession;
-#else
-class SmfServerQtSession;
-#endif
-
-/**
- * The enumeration used to denote errors reported by plugin
- * Smf can't continue without handling these errors
- */
-enum SmfPluginError
-	{
-	SmfPluginErrNone = 0, 
-	SmfPluginErrTooManyRequest,
-	SmfPluginErrRequestQuotaExceeded,
-	SmfPluginErrInvalidRequest,
-	SmfPluginErrUserNotLoggedIn,
-	SmfPluginErrAuthenticationExpired,
-	SmfPluginErrPermissionDenied,
-	SmfPluginErrInvalidApplication,
-	SmfPluginErrServiceUnavailable,
-	SmfPluginErrServiceTemporaryUnavailable,
-	SmfPluginErrFormatNotSupported, 
-	SmfPluginErrDataSizeExceeded,
-	SmfPluginErrServiceNotSupported,
-	SmfPluginErrInvalidArguments,
-	SmfPluginErrRequestNotCreated,
-	SmfPluginErrParsingFailed,
-	SmfPluginErrNetworkError,
-	SmfPluginErrCancelComplete
-	};
-
-/**
- * The enumeration used to track the plugin methods return type
- */
-enum SmfPluginRetType
-	{
-	SmfSendRequestAgain = 0,
-	SmfRequestComplete,
-	SmfRequestError
-	};
-
-
-/**
- * The enumeration used to indicate the type of network operation done
- */
-enum SmfRequestTypeID
-	{
-	SmfGetService,
-	SmfGetServiceComplete,
-	SmfTest,
-	SmfTestComplete,
-	SmfContactGetFriends,
-	SmfContactGetFollowers,
-	SmfContactSearch,
-	SmfContactSearchNear,
-	SmfContactGetGroups,
-	SmfContactSearchInGroup,
-	SmfContactCustomRequest,
-	SmfContactRetrievePosts,
-	SmfContactPost,
-	SmfContactUpdatePost,
-	SmfContactPostDirected,
-	SmfContactCommentOnAPost,
-	SmfContactPostAppearence,
-	SmfContactSharePost,
-	SmfContactPostCustomRequest,
-	SmfMusicGetLyrics,
-	SmfMusicGetSubtitle,
-	SmfMusicLyricsCustomRequest,
-	SmfMusicGetEventsOnLoc,
-	SmfMusicGetVenueOnLoc,
-	SmfMusicGetEventsOnVenue,
-	SmfMusicPostEvents,
-	SmfMusicEventsCustomRequest,
-	SmfMusicGetRecommendations,
-	SmfMusicGetTracks,
-	SmfMusicGetTrackInfo,
-	SmfMusicGetStores,
-	SmfMusicPostCurrentPlaying,
-	SmfMusicPostRating,
-	SmfMusicPostComment,
-	SmfMusicSearchCustomRequest,
-	SmfMusicGetUserInfo,
-	SmfMusicSearchUser,
-	SmfMusicServiceCustomRequest,
-	SmfMusicGetPlaylists,
-	SmfMusicGetPlaylistsOfUser,
-	SmfMusicAddToPlaylist,
-	SmfMusicPostCurrentPlayingPlaylist,
-	SmfMusicPlaylistCustomRequest,
-	SmfPictureGetAlbums,
-	SmfPictureGetPictures,
-	SmfPictureDescription,
-	SmfPictureUpload,
-	SmfPictureMultiUpload,
-	SmfPicturePostComment,
-	SmfPictureCustomRequest,
-	SmfActivityFriendsActivities, //SmfActivityFetcher start
-	SmfActivityFiltered,
-	SmfActivitySelfActivity,
-	SmfActivityCustomRequest,//SmfActivityFetcher end
-	SmfContactGetFriendsComplete,
-	SmfContactGetFollowersComplete,
-	SmfContactSearchComplete,
-	SmfContactSearchNearComplete,
-	SmfContactGetGroupsComplete,
-	SmfContactSearchInGroupComplete,
-	SmfContactRetrievePostsComplete,
-	SmfContactPostComplete,
-	SmfContactUpdatePostComplete,
-	SmfContactPostDirectedComplete,
-	SmfContactCommentOnAPostComplete,
-	SmfContactPostAppearenceComplete,
-	SmfContactSharePostComplete,
-	SmfMusicGetLyricsComplete,
-	SmfMusicGetSubtitleComplete,
-	SmfMusicGetEventsOnLocComplete,
-	SmfMusicGetVenueOnLocComplete,
-	SmfMusicGetEventsOnVenueComplete,
-	SmfMusicPostEventsComplete,
-	SmfMusicGetRecommendationsComplete,
-	SmfMusicGetTracksComplete,
-	SmfMusicGetTrackInfoComplete,
-	SmfMusicGetStoresComplete,
-	SmfMusicPostCurrentPlayingComplete,
-	SmfMusicGetUserInfoComplete,
-	SmfMusicSearchUserComplete,
-	SmfMusicGetPlaylistsComplete,
-	SmfMusicGetPlaylistsOfUserComplete,
-	SmfMusicAddToPlaylistComplete,
-	SmfMusicPostCurrentPlayingPlaylistComplete,
-	SmfPictureGetPicturesComplete,
-	SmfPictureDescriptionComplete,
-	SmfPictureUploadComplete,
-	SmfPictureMultiUploadComplete,
-	SmfPicturePostCommentComplete,
-	SmfRelationCreate,//SmfRelationMngr start
-	SmfRelationAssociate,
-	SmfRelationRemove,
-	SmfRelationSearchById,
-	SmfRelationSearchByContact,
-	SmfRelationCount,
-	SmfRelationGet,
-	SmfRelationGetAll,
-	SmfRelationGetAllRelations//SmfRelationMngr end
-	
-	};
-
-/**
- * The enumeration used to indicate result of transport to the plugins
- */
-enum SmfTransportResult
-	{
-	SmfTransportOpNoError = 0,
-	SmfTransportOpConnectionRefusedError,
-	SmfTransportOpRemoteHostClosedError,
-	SmfTransportOpHostNotFoundError,
-	SmfTransportOpTimeoutError,
-	SmfTransportOpOperationCanceledError,
-	SmfTransportOpSslHandshakeFailedError,
-	SmfTransportOpProxyConnectionRefusedError,
-	SmfTransportOpProxyConnectionClosedError,
-	SmfTransportOpProxyNotFoundError,
-	SmfTransportOpProxyTimeoutError,
-	SmfTransportOpProxyAuthenticationRequiredError,
-	SmfTransportOpContentAccessDenied,
-	SmfTransportOpContentOperationNotPermittedError,
-	SmfTransportOpContentNotFoundError,
-	SmfTransportOpAuthenticationRequiredError,
-	SmfTransportOpContentReSendError,
-	SmfTransportOpProtocolUnknownError,
-	SmfTransportOpProtocolInvalidOperationError,
-	SmfTransportOpUnknownNetworkError,
-	SmfTransportOpUnknownProxyError,
-	SmfTransportOpUnknownContentError,
-	SmfTransportOpProtocolFailure,
-	SmfTransportOpUnknownError,
-	SmfTransportOpIAPChanged,
-	SmfTransportOpCancelled,
-	SmfTransportOpUnsupportedContentEncodingFormat,
-	SmfTransportOpGzipError
-	};
-
-/**
- * The structure used to hold the request created by the plugins
- */
-struct SmfPluginRequestData
-	{
-	/**
-	 * Indicates the type of operation performed, like getting Friends 
-	 * list, upload image etc
-	 */
-	SmfRequestTypeID iRequestType;
-	
-	/**
-	 * The QNetworkRequest that has to be filled up by the plugins
-	 */
-	QNetworkRequest iNetworkRequest;
-	
-	/**
-	 * The data to be posted in case of HTTP POST operation
-	 */
-	QBuffer *iPostData;
-	
-	/**
-	 * The type of HTTP transaction, like GET, POST etc
-	 */
-	QNetworkAccessManager::Operation iHttpOperationType;
-	
-	};
-
-/**
- * The structure used to hold the request created by the plugins
- */
-struct SmfResultPage
-	{
-	/**
-	 * The total number of items
-	 */
-	uint iTotalItems;
-	
-	/**
-	 * The number of items per page
-	 */
-	uint iItemsPerPage;
-	
-	/**
-	 * The total number of pages
-	 */
-	uint iTotalPages;
-	
-	/**
-	 * The current fetched page number
-	 */
-	uint iPageNum;
-	};
-
-
-struct SmfClientAuthID
-	{
-#ifdef Q_OS_SYMBIAN
-	TSecureId pid;
-	SmfServerSymbianSession* session;
-#else
-	QString pid;
-	SmfServerQtSession* session;
-#endif
-	
-	};
-
-/**
- * Smf wide errors
- */
-enum SmfError
-	{
-	SmfNoError = 0,
-	SmfInvalidInterface,						//1
-	SmfNoAuthorizedPlugin,						//2
-	SmfClientAuthFailed,						//3
-	SmfPMPluginNotFound,						//4
-	SmfPMPluginNotLoaded,						//5
-	SmfPMPluginLoadError,						//6
-	SmfPMPluginNotAuthorised,					//7
-	SmfPMPluginRequestCreationFailed,			//8
-	SmfPMPluginUnknownPluginService,			//9
-	SmfPMPluginUnknownHttpService,				//10
-	SmfPMPluginRequestSendingFailed,			//11
-	SmfPMPluginSOPCheckFailed,					//12
-	SmfPMPluginSendRequestAgain,				//13
-	SmfPluginErrorTooManyRequest,				//14
-	SmfPluginErrorRequestQuotaExceeded,			//15
-	SmfPluginErrorInvalidRequest,				//16
-	SmfPluginErrorUserNotLoggedIn,				//17
-	SmfPluginErrorAuthenticationExpired,		//18
-	SmfPluginErrorPermissionDenied,				//19
-	SmfPluginErrorInvalidApplication,			//20
-	SmfPluginErrorServiceUnavailable,			//21
-	SmfPluginErrorServiceTemporaryUnavailable,	//22
-	SmfPluginErrorFormatNotSupported, 			//23
-	SmfPluginErrorDataSizeExceeded ,			//24
-	SmfPluginErrorInvalidArguments,				//25
-	SmfPluginErrorParsingFailed,				//26
-	SmfPluginErrorNetworkError,					//27
-	SmfPluginErrorCancelComplete,				//28
-	SmfTMConnectionRefusedError,				//29
-	SmfTMRemoteHostClosedError,					//30
-	SmfTMHostNotFoundError,						//31
-	SmfTMTimeoutError,							//32
-	SmfTMOperationCanceledError,				//33
-	SmfTMSslHandshakeFailedError,				//34
-	SmfTMProxyConnectionRefusedError,			//35
-	SmfTMProxyConnectionClosedError,			//36
-	SmfTMProxyNotFoundError,					//37
-	SmfTMProxyTimeoutError,						//38
-	SmfTMProxyAuthenticationRequiredError,		//39
-	SmfTMContentAccessDenied,					//40
-	SmfTMContentOperationNotPermittedError,		//41
-	SmfTMContentNotFoundError,					//42
-	SmfTMAuthenticationRequiredError,			//43
-	SmfTMContentReSendError,					//44
-	SmfTMProtocolUnknownError,					//45
-	SmfTMProtocolInvalidOperationError,			//46
-	SmfTMUnknownNetworkError,					//47
-	SmfTMUnknownProxyError,						//48
-	SmfTMUnknownContentError,					//49
-	SmfTMProtocolFailure,						//50
-	SmfTMUnknownError,							//51
-	SmfTMIAPChanged,							//52
-	SmfTMCancelled,								//53
-	SmfTMUnsupportedContentEncodingFormat,		//54
-	SmfTMInitNetworkNotAvailable ,				//55
-	SmfTMInitRoamingNetworkUsageNotEnabled,		//56
-	SmfTMGzipMemoryError,						//57
-	SmfTMGzipStreamError,						//58
-	SmfTMGzipDataError,							//59
-	SmfMemoryAllocationFailure,					//60
-	SmfDbOpeningError,                          //61
-	SmfDbQueryExecutonError,					//61
-	SmfDbContactNotExist,						//63
-	SmfErrItemNotInRelation,                    //64
-	SmfErrInvalidRelation,                      //65  
-	SmfUnknownError								//66
-
-	};
-
-/**
- * Smf wide panics
- */
-enum SmfPanic
-	{
-	SmfRequestPending//to allow one outstanding request per session
-	};
-
-//interface names
-const QString contactFetcherInterface("org.symbian.smf.plugin.contact.fetcher\0.2");
-const QString postProviderInterface("org.symbian.smf.plugin.contact.posts\0.2");
-const QString galleryInterface("org.symbian.smf.plugin.gallery\0.2");
-const QString musicServiceInterface("org.symbian.smf.plugin.music.service\0.2");
-const QString musicSearchInterface("org.symbian.smf.client.music.search\0.2");
-const QString playlistServiceInterface("org.symbian.smf.plugin.music.playlist\0.2");
-const QString musicEventServiceInterface("org.symbian.smf.plugin.music.events\0.2");
-const QString lyricsServiceInterface("org.symbian.smf.plugin.music.lyrics\0.2");
-const QString activityFetcherInterface("org.symbian.smf.plugin.activity.fetcher\0.2");
-
-#endif /* SMFGLOBAL_H_ */
--- a/smf/smfservermodule/smfclient/common/smfgroup.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The group class represents an instance of a group as per SN site terminolgy
- */
-	
-#include "smfgroup.h"
-//private impl
-#include "smfgroup_p.h"
-
-/**
-	 * Constructor with default argument
-	 * @param list The list of members in the group
-	 */
-	SmfGroup::SmfGroup( QList<SmfContact>* list )
-		{
-		d = new SmfGroupPrivate;
-		if(list)
-			d->m_members = list;
-		}
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfGroup::SmfGroup( const SmfGroup &aOther ): d(aOther.d)
-		{
-		
-		}
-	
-	/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfGroup& SmfGroup::operator=( const SmfGroup &aOther )
-	{
-	d->m_members = aOther.d->m_members;
-	d->m_groupName = aOther.d->m_groupName;
-	d->m_groupId = aOther.d->m_groupId;
-	return *this;
-	}
-
-/**
-	 * Destructor
-	 */
-	SmfGroup::~SmfGroup( )
-		{
-		
-		}
-	
-	/**
-	 * Method to get the list of members in the group
-	 * @return The list of members in the group
-	 */
-	QList<SmfContact> SmfGroup::members( ) const
-			{
-			return *(d->m_members) ;
-			}
-	
-	/**
-	 * Method to set members
-	 * 
-	 */
-	void SmfGroup::setMembers(QList<SmfContact>* mems)
-		{
-		d->m_members = mems;
-		}
-	/**
-	 * Method to get the name of the group
-	 * @return The name of the group
-	 */
-	QString SmfGroup::name( ) const
-			{
-			return d->m_groupName;
-			}
-	
-	/**
-	 * Method to set name
-	 */
-	void SmfGroup::setName(QString& name)
-		{
-		d->m_groupName = name;
-		}
-	
-	/**
-	 * Method to get the id of the group
-	 * @return The ID value 
-	 */
-	QString SmfGroup::id( ) const
-			{
-			return d->m_groupId;
-			}
-	
-	/**
-	 * Method to set id
-	 */
-	void SmfGroup::setId(QString& id)
-		{
-		d->m_groupId = id;
-		
-		}
-	/**
-	 * Method for Externalization. Writes the SmfGroup object to 
-	 * the stream and returns a reference to the stream.
-	 * @param aDataStream Stream to be written
-	 * @param aGroup The SmfGroup object to be externalized
-	 * @return reference to the written stream
-	 */
-	//TODO:- implement
-	QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfGroup &aGroup )
-		{
-		//aDataStream<<aGroup.members();
-		aDataStream<<aGroup.name();
-		aDataStream<<aGroup.id();
-		return aDataStream;
-		}
-
-	/**
-	 * Method for Internalization. Reads a SmfGroup object from 
-	 * the stream and returns a reference to the stream.
-	 * @param aDataStream Stream to be read
-	 * @param aGroup The SmfGroup object to be internalized
-	 * @return reference to the stream
-	 */
-	//TODO:- implement
-	QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfGroup &aGroup)
-		{
-		
-		//aDataStream>>aGroup.d->m_members;
-		QString grpname;
-		aDataStream>>grpname;
-		aGroup.d->m_groupName = grpname;
-		QString grpId;
-		aDataStream>>grpId;
-		aGroup.d->m_groupId = grpId;
-		return aDataStream;
-		}
--- a/smf/smfservermodule/smfclient/common/smfgroup.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The group class represents an instance of a group as per SN site terminolgy
- *
- */
-
-#ifndef SMFGROUP_H_
-#define SMFGROUP_H_
-
-#include "smfcontact.h"
-#include <qdatastream.h>
-#include <QSharedData>
-#include "smfclientglobal.h"
-#include <QMetaType>
-#include "smfgroup_p.h"
-
-/**
- * Max number of members per group
- */
-const int MaxMemberPerGroup = 1000;
-/**
- * Max size for one SmfGroup
- */
-const int MaxSmfGroupSize = MaxSmfContactSize*MaxMemberPerGroup;
-/**
- * @ingroup smf_common_group
- * The group class represents an instance of a group as per SN site terminolgy
- */
-
-class  SMFCLIENT_EXPORT SmfGroup //: public QObject
-	{
-	//Q_OBJECT
-public:
-	/**
-	 * Constructor with default argument
-	 * @param list The list of members in the group
-	 */
-	SmfGroup( QList<SmfContact>* list = 0 );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfGroup( const SmfGroup &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 */
-	SmfGroup& operator=( const SmfGroup &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfGroup( );
-	
-public slots:
-	/**
-	 * Method to get the list of members in the group
-	 * @return The list of members in the group
-	 */
-	QList<SmfContact> members( ) const;
-	
-	/**
-	 * Method to set members
-	 * 
-	 */
-	void setMembers(QList<SmfContact>* mems);
-	/**
-	 * Method to get the name of the group
-	 * @return The name of the group
-	 */
-	QString name( ) const;
-	
-	/**
-	 * Method to set name
-	 */
-	void setName(QString& name);
-	
-	/**
-	 * Method to get the id of the group
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to set id
-	 */
-	void setId(QString& id);
-	
-private:
-	QSharedDataPointer<SmfGroupPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfGroup &aGroup );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfGroup &aGroup );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfGroup object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aGroup The SmfGroup object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfGroup &aGroup );
-
-/**
- * Method for Internalization. Reads a SmfGroup object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aGroup The SmfGroup object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfGroup &aGroup);
-
-typedef QList<SmfGroup> SmfGroupList;
-
-// Make the class SmfGroup known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfGroup)
-Q_DECLARE_METATYPE(QList<SmfGroup>)
-
-#endif /* SMFGROUP_H_ */
--- a/smf/smfservermodule/smfclient/common/smfgroup_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfGroup class
- *
- */
-
-#ifndef SMFGROUP_P_H_
-#define SMFGROUP_P_H_
-
-#include <smfcontact.h>
-#include <QSharedData>
-
-class SmfGroupPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfGroupPrivate( ) { m_members = NULL; m_groupName.clear(); m_groupId.clear(); }
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfGroupPrivate( const SmfGroupPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_members ( aOther.m_members ), 
-		m_groupName ( aOther.m_groupName ),
-		m_groupId ( aOther.m_groupId ) 	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfGroupPrivate( ){};
-  
-	QList<SmfContact> *m_members;	// members in the group
-	QString m_groupName;
-	QString m_groupId;
-	// Other details to be added
-};
-
-
-#endif /* SMFGROUP_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smflocation.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,287 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfLocation class represents a location and its related information
- * Note: This class has dependencies on QtMobility project
- *
- */
-
-
-#include <smflocation.h>
-#include <smflocation_p.h>
-
-/**
- * Constructor with default argument
- */
-SmfLocation::SmfLocation( )
-	{
-	d = new SmfLocationPrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfLocation::SmfLocation( const SmfLocation &aOther )
-	:d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator 
- * @param aOther The reference object
- */
-SmfLocation& SmfLocation::operator=( const SmfLocation &aOther )
-	{
-	d->m_name = aOther.d->m_name;
-	d->m_city = aOther.d->m_city;
-	d->m_street = aOther.d->m_street;
-	d->m_zipcode = aOther.d->m_zipcode;
-	d->m_country = aOther.d->m_country;
-	d->m_geo = aOther.d->m_geo;
-	d->m_url = aOther.d->m_url;
-	d->m_placeId = aOther.d->m_placeId;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfLocation::~SmfLocation( )
-	{
-	}
-
-/**
- * Method to get the place name
- * @return The place name
- */
-QString SmfLocation::name( ) const
-	{
-	return d->m_name;
-	}
-
-/**
- * Method to get the city of place
- * @return The city of the place
- */
-QString SmfLocation::city( ) const
-	{
-	return d->m_city;
-	}
-
-/**
- * Method to get the street information of place
- * @return The street information of the place
- */
-QString SmfLocation::street( ) const
-	{
-	return d->m_street;
-	}
-
-/**
- * Method to get the zip code of place
- * @return The zip code of place
- */
-QString SmfLocation::zipCode( ) const
-	{
-	return d->m_zipcode;
-	}
-
-/**
- * Method to get the country of place
- * @return The country of place
- */
-QString SmfLocation::country( ) const
-	{
-	return d->m_country;
-	}
-
-/**
- * Method to get the Geo Position information (like information gathered 
- * on a global position, direction and velocity at a particular point 
- * in time) of the place.
- * @return The Geo Position information of place
- */
-QGeoPositionInfo SmfLocation::geoPositionInfo( ) const
-	{
-	return d->m_geo;
-	}
-
-/**
- * Method to get the url indicating the place
- * @return The url indicating the place
- */
-QUrl SmfLocation::url( ) const
-	{
-	return d->m_url;
-	}
-
-/**
- * Method to get the id of the place
- * @return The ID value 
- */
-QString SmfLocation::id( ) const
-	{
-	return d->m_placeId;
-	}
-
-/**
- * Method to set the place name
- * @param aPlace The new place name
- */
-void SmfLocation::setName( const QString& aPlace )
-	{
-	d->m_name = aPlace;
-	}
-
-/**
- * Method to set the city of  place
- * @param aCity The new city of the place
- */
-void SmfLocation::setCity( const QString& aCity )
-	{
-	d->m_city = aCity;
-	}
-
-/**
- * Method to set the street information of place
- * @param aStreet The new street information of the place
- */
-void SmfLocation::setStreet( const QString& aStreet )
-	{
-	d->m_street = aStreet;
-	}
-
-/**
- * Method to set the zip code of place
- * @param aZipCode The new zip code of place
- */
-void SmfLocation::setZipCode( const QString& aZipCode )
-	{
-	d->m_zipcode = aZipCode;
-	}
-
-/**
- * Method to set the country of place
- * @param aCountry The new country of place
- */
-void SmfLocation::setCountry( const QString& aCountry )
-	{
-	d->m_country = aCountry;
-	}
-
-/**
- * Method to set the Geo Postion information (like information gathered 
- * on a global position, direction and velocity at a particular point 
- * in time) of the place.
- * @param aGeoPosInfo The new Geo Position information of place
- */
-void SmfLocation::setGeoPositionInfo( const QGeoPositionInfo& aGeoPosInfo )
-	{
-	d->m_geo = aGeoPosInfo;
-	}
-
-/**
- * Method to set the url indicating the place
- * @param aUrl The new url indicating the place
- */
-void SmfLocation::setUrl( const QUrl& aUrl )
-	{
-	d->m_url = aUrl;
-	}
-
-/**
- * Method to set the id of the place
- * @return The ID value 
- */
-void SmfLocation::setId( const QString &aId )
-	{
-	d->m_placeId = aId;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfLocation object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aPlace The SmfLocation object to be externalized
- * @return reference to the written stream
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfLocation &aPlace )
-	{
-	// Serialize d->m_name
-	aDataStream<<aPlace.d->m_name;
-	
-	// Serialize d->m_city
-	aDataStream<<aPlace.d->m_city;
-	
-	// Serialize d->m_street
-	aDataStream<<aPlace.d->m_street;
-	
-	// Serialize d->m_zipcode
-	aDataStream<<aPlace.d->m_zipcode;
-	
-	// Serialize d->m_country
-	aDataStream<<aPlace.d->m_country;
-	
-	// Serialize d->m_geo
-	aDataStream<<aPlace.d->m_geo;
-	
-	// Serialize d->m_url
-	aDataStream<<aPlace.d->m_url;
-	
-	// Serialize d->m_placeId
-	aDataStream<<aPlace.d->m_placeId;
-		
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfLocation object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aPlace The SmfLocation object to be internalized
- * @return reference to the stream
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfLocation &aPlace)
-	{
-	// Deserialize d->m_name
-	aDataStream>>aPlace.d->m_name;
-	
-	// Deserialize d->m_city
-	aDataStream>>aPlace.d->m_city;
-	
-	// Deserialize d->m_street
-	aDataStream>>aPlace.d->m_street;
-	
-	// Deserialize d->m_zipcode
-	aDataStream>>aPlace.d->m_zipcode;
-	
-	// Deserialize d->m_country
-	aDataStream>>aPlace.d->m_country;
-	
-	// Deserialize d->m_geo
-	aDataStream>>aPlace.d->m_geo;
-	
-	// Deserialize d->m_url
-	aDataStream>>aPlace.d->m_url;
-	
-	// Deserialize d->m_placeId
-	aDataStream>>aPlace.d->m_placeId;
-		
-	return aDataStream;
-	}
--- a/smf/smfservermodule/smfclient/common/smflocation.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfLocation class represents a place and its related information
- * Note: This class has dependencies on QtMobility project
- *
- */
-
-#ifndef SMFLOCATION_H_
-#define SMFLOCATION_H_
-
-#include <QUrl>
-#include <qgeopositioninfo.h> // Qt mobility class
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-#include <QMetaType>
-
-// Qt mobility - namespace
-using namespace QtMobility;
-
-enum SmfLocationSearchBoundary 
-{
-	SearchByStreet = 0x00,
-	SearchByLocality,
-	SearchByPostOffice,
-	SearchByTown,
-	SearchByRegion,
-	SearchByState,
-	SearchByCountry
-};
-
-class SmfLocationPrivate;
-
-/**
- * @ingroup smf_common_group
- * The SmfLocation class represents a location and its related information.
- * 
- * Note: This class has dependencies on QtMobility project
- */
-class SMFCLIENT_EXPORT SmfLocation
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfLocation( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfLocation( const SmfLocation &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 * @return The current object reference
-	 */
-	SmfLocation& operator=( const SmfLocation &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfLocation( );
-	
-	/**
-	 * Method to get the place name
-	 * @return The place name
-	 */
-	QString name( ) const;
-	
-	/**
-	 * Method to get the city of place
-	 * @return The city of the place
-	 */
-	QString city( ) const;
-	
-	/**
-	 * Method to get the street information of place
-	 * @return The street information of the place
-	 */
-	QString street( ) const;
-	
-	/**
-	 * Method to get the zip code of place
-	 * @return The zip code of place
-	 */
-	QString zipCode( ) const;
-	
-	/**
-	 * Method to get the country of place
-	 * @return The country of place
-	 */
-	QString country( ) const;
-	
-	/**
-	 * Method to get the Geo Position information (like information gathered 
-	 * on a global position, direction and velocity at a particular point 
-	 * in time) of the place.
-	 * @return The Geo Position information of place
-	 */
-	QGeoPositionInfo geoPositionInfo( ) const;
-	
-	/**
-	 * Method to get the url indicating the place
-	 * @return The url indicating the place
-	 */
-	QUrl url( ) const;
-	
-	/**
-	 * Method to get the id of the place
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to set the place name
-	 * @param aPlace The new place name
-	 */
-	void setName( const QString &aPlace );
-	
-	/**
-	 * Method to set the city of  place
-	 * @param aCity The new city of the place
-	 */
-	void setCity( const QString &aCity );
-	
-	/**
-	 * Method to set the street information of place
-	 * @param aStreet The new street information of the place
-	 */
-	void setStreet( const QString &aStreet );
-	
-	/**
-	 * Method to set the zip code of place
-	 * @param aZipCode The new zip code of place
-	 */
-	void setZipCode( const QString &aZipCode );
-	
-	/**
-	 * Method to set the country of place
-	 * @param aCountry The new country of place
-	 */
-	void setCountry( const QString &aCountry );
-	
-	/**
-	 * Method to set the Geo Postion information (like information gathered 
-	 * on a global position, direction and velocity at a particular point 
-	 * in time) of the place.
-	 * @param aGeoPosInfo The new Geo Position information of place
-	 */
-	void setGeoPositionInfo( const QGeoPositionInfo &aGeoPosInfo );
-	
-	/**
-	 * Method to set the url indicating the place
-	 * @param aUrl The new url indicating the place
-	 */
-	void setUrl( const QUrl &aUrl );
-	
-	/**
-	 * Method to set the id of the place
-	 * @return The ID value 
-	 */
-	void setId( const QString &aId );
-	
-private:
-	QSharedDataPointer<SmfLocationPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfLocation &aPlace );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfLocation &aPlace );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfLocation object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aPlace The SmfLocation object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfLocation &aPlace );
-
-/**
- * Method for Internalization. Reads a SmfLocation object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aPlace The SmfLocation object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfLocation &aPlace);
-
-typedef QList<SmfLocation> SmfLocationList;
-
-// Make the class SmfLocation known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfLocation)
-Q_DECLARE_METATYPE(QList<SmfLocation>)
-
-#endif /* SMFLOCATION_H_ */
--- a/smf/smfservermodule/smfclient/common/smflocation_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfLocation class
- * Note: This class has dependencies on QtMobility project
- *
- */
-
-#ifndef SMFLOCATION_P_H_
-#define SMFLOCATION_P_H_
-
-#include <QUrl>
-#include <qgeopositioninfo.h> // Qt mobility class
-#include <QSharedData>
-
-// Qt mobility - namespace
-using namespace QtMobility;
-
-class SmfLocationPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfLocationPrivate( ) { 
-		m_name.clear();
-		m_city.clear();
-		m_street.clear();
-		m_zipcode.clear();
-		m_country.clear();
-		m_url.clear();
-		m_placeId.clear(); }
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfLocationPrivate( const SmfLocationPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_name ( aOther.m_name ),
-		m_city ( aOther.m_city ),
-		m_street ( aOther.m_street ),
-		m_zipcode ( aOther.m_zipcode ),
-		m_country ( aOther.m_country ),
-		m_geo ( aOther.m_geo ),
-		m_url ( aOther.m_url ),
-		m_placeId ( aOther.m_placeId ) 	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfLocationPrivate( )
-		{
-		}
-  
-	QString m_name;			// place name
-	QString m_city;			// city of place
-	QString m_street;		// street of place
-	QString m_zipcode;		// zip code of place
-	QString m_country;		// country of place
-	QGeoPositionInfo m_geo;	// place geo position information
-	QUrl m_url;				// url indicating the place
-	QString m_placeId;		// place id
-	
-};
-
-#endif /* SMFLOCATION_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smflyrics.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfLyrics class represents an instance of a music track's lyrics
- *
- */
-
-#include <smflyrics.h>
-#include <smflyrics_p.h>
-
-/**
- * Constructor with default argument
- */
-SmfLyrics::SmfLyrics( )
-	{
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfLyrics::SmfLyrics( const SmfLyrics &aOther )
-	:d ( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfLyrics& SmfLyrics::operator=( const SmfLyrics &aOther )
-	{
-	d->m_lyrics = aOther.d->m_lyrics;
-	d->m_language = aOther.d->m_language;
-	d->m_releaseYr = aOther.d->m_releaseYr;
-	d->m_lyricsId = aOther.d->m_lyricsId;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfLyrics::~SmfLyrics( )
-	{
-	}
-
-/**
- * Method to get the lyrics
- * @return The lyrics data
- */
-QByteArray SmfLyrics::lyrics( ) const
-	{
-	return d->m_lyrics;
-	}
-
-/**
- * Method to get the language
- * @return The language
- */
-QString SmfLyrics::language( ) const
-	{
-	return d->m_language;
-	}
-
-/**
- * Method to get the release year
- * @return The release year
- */
-QDateTime SmfLyrics::releaseYear( ) const
-	{
-	return d->m_releaseYr;
-	}
-
-/**
- * Method to get the id of the lyrics
- * @return The ID value 
- */
-QString SmfLyrics::id( ) const
-	{
-	return d->m_lyricsId;
-	}
-
-/**
- * Method to set the lyrics
- * @param aLyrics The lyrics data
- */
-void SmfLyrics::setLyrics( const QByteArray &aLyrics )
-	{
-	d->m_lyrics = aLyrics;
-	}
-
-/**
- * Method to set the language
- * @param aLang The language
- */
-void SmfLyrics::setLanguage( const QString &aLang )
-	{
-	d->m_language = aLang;
-	}
-
-/**
- * Method to set the release year
- * @param aRelYear The release year
- */
-void SmfLyrics::setReleaseYear( const QDateTime &aRelYear )
-	{
-	d->m_releaseYr = aRelYear;
-	}
-
-/**
- * Method to set the id of the lyrics
- * @param aId The ID value 
- */
-void SmfLyrics::setId( const QString &aId )
-	{
-	d->m_lyricsId = aId;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfLyrics object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aLyrics The SmfLyrics object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfLyrics &aLyrics )
-	{
-	// Serialize d->m_lyrics
-	aDataStream<<aLyrics.d->m_lyrics;
-	
-	// Serialize d->m_language
-	aDataStream<<aLyrics.d->m_language;
-	
-	// Serialize d->m_releaseYr
-	aDataStream<<aLyrics.d->m_releaseYr;
-	
-	// Serialize d->m_lyricsId
-	aDataStream<<aLyrics.d->m_lyricsId;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfLyrics object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aLyrics The SmfLyrics object to be internalized
- * @return reference to the stream
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfLyrics &aLyrics)
-	{
-	// Deserialize d->m_lyrics
-	aDataStream>>aLyrics.d->m_lyrics;
-	
-	// Deserialize d->m_language
-	aDataStream>>aLyrics.d->m_language;
-	
-	// Deserialize d->m_releaseYr
-	aDataStream>>aLyrics.d->m_releaseYr;
-	
-	// Deserialize d->m_lyricsId
-	aDataStream>>aLyrics.d->m_lyricsId;
-	
-	return aDataStream;
-	}
-
--- a/smf/smfservermodule/smfclient/common/smflyrics.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfLyrics class represents an instance of a music track's lyrics
- *
- */
-
-#ifndef SMFLYRICS_H_
-#define SMFLYRICS_H_
-
-#include <qdatastream.h>
-#include <QDateTime>
-#include <QSharedData>
-#include <smfclientglobal.h>
-#include <QMetaType>
-
-class SmfLyricsPrivate;
-
-/**
- * @ingroup smf_common_group
- * The lyrics class represents an instance of a music track's lyrics
- */
-class SMFCLIENT_EXPORT SmfLyrics
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfLyrics( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfLyrics( const SmfLyrics &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 * @return The current object reference
-	 */
-	SmfLyrics& operator=( const SmfLyrics &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfLyrics( );
-	
-	/**
-	 * Method to get the lyrics
-	 * @return The lyrics data
-	 */
-	QByteArray lyrics( ) const;
-	
-	/**
-	 * Method to get the language
-	 * @return The language
-	 */
-	QString language( ) const;
-	
-	/**
-	 * Method to get the release year
-	 * @return The release year
-	 */
-	QDateTime releaseYear( ) const;
-	
-	/**
-	 * Method to get the id of the lyrics
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to set the lyrics
-	 * @param aLyrics The lyrics data
-	 */
-	void setLyrics( const QByteArray &aLyrics );
-	
-	/**
-	 * Method to set the language
-	 * @param aLang The language
-	 */
-	void setLanguage( const QString &aLang );
-	
-	/**
-	 * Method to set the release year
-	 * @param aRelYear The release year
-	 */
-	void setReleaseYear( const QDateTime &aRelYear );
-	
-	/**
-	 * Method to set the id of the lyrics
-	 * @param aId The ID value 
-	 */
-	void setId( const QString &aId );
-	
-private:
-	QSharedDataPointer<SmfLyricsPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfLyrics &aLyrics );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfLyrics &aLyrics );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfLyrics object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aLyrics The SmfLyrics object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfLyrics &aLyrics );
-
-/**
- * Method for Internalization. Reads a SmfLyrics object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aLyrics The SmfLyrics object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfLyrics &aLyrics);
-
-
-typedef QList<SmfLyrics> SmfLyricsList;
-
-// Make the class SmfLyrics known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfLyrics)
-Q_DECLARE_METATYPE(QList<SmfLyrics>)
-
-
-#endif /* SMFLYRICS_H_ */
--- a/smf/smfservermodule/smfclient/common/smflyrics_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfLyrics class
- *
- */
-
-#ifndef SMFLYRICS_P_H_
-#define SMFLYRICS_P_H_
-
-#include <QDateTime>
-#include <QSharedData>
-
-class SmfLyricsPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfLyricsPrivate( ) { 
-		m_lyrics.clear();
-		m_language.clear();
-		m_lyricsId.clear(); 
-	}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfLyricsPrivate( const SmfLyricsPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_lyrics ( aOther.m_lyrics ),
-		m_language ( aOther.m_language ),
-		m_releaseYr ( aOther.m_releaseYr ),
-		m_lyricsId ( aOther.m_lyricsId ) 	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfLyricsPrivate( )
-		{
-		}
-  
-	QByteArray m_lyrics;	// lyrics data
-	QString m_language;		// language
-	QDateTime m_releaseYr;	// release year
-	QString m_lyricsId;		// lyrics id
-	
-};
-
-#endif /* SMFLYRICS_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfmusicfingerprint.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfMusicFingerPrint class represents a music finger print used in searches
- *
- */
-
-#include <smfmusicfingerprint.h>
-#include <smfmusicfingerprint_p.h>
-
-/**
- * Constructor with default argument
- */
-SmfMusicFingerPrint::SmfMusicFingerPrint( )
-	{
-	d = new SmfMusicFingerPrintPrivate;
-	}
-
-/**
- * Constructor with default argument
- * @param aParent The parent object
- */
-SmfMusicFingerPrint::SmfMusicFingerPrint( const SmfMusicFingerPrint &aOther )
-	:d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfMusicFingerPrint& SmfMusicFingerPrint::operator=( const SmfMusicFingerPrint &aOther )
-	{
-	d->m_fingerPrintData = aOther.d->m_fingerPrintData;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfMusicFingerPrint::~SmfMusicFingerPrint( )
-	{
-	}
-
-/**
- * GEt the music finger print data
- * @return The music finger print data
- */
-QByteArray SmfMusicFingerPrint::musicFingerPrint ( ) const
-	{
-	return d->m_fingerPrintData;
-	}
-
-/**
- * Method to set the music finger print data
- * @param aFp The music finger print data
- */
-void SmfMusicFingerPrint::setMusicFingerPrint ( const QByteArray &aFp)
-	{
-	d->m_fingerPrintData = aFp;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfMusicFingerPrint object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aMFP The SmfMusicFingerPrint object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfMusicFingerPrint &aMFP )
-	{
-	// Serialize d->m_fingerPrintData
-	aDataStream<<aMFP.d->m_fingerPrintData;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfMusicFingerPrint object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aMFP The SmfMusicFingerPrint object to be internalized
- * @return reference to the stream
- */
- QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfMusicFingerPrint &aMFP)
-	{
-	// Deserialize d->m_fingerPrintData
-	aDataStream>>aMFP.d->m_fingerPrintData;
-	
-	return aDataStream;
-	}
-
--- a/smf/smfservermodule/smfclient/common/smfmusicfingerprint.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfMusicFingerPrint class represents a music finger print used in searches
- *
- */
-
-#ifndef SMFMUSICFINGERPRINT_H_
-#define SMFMUSICFINGERPRINT_H_
-
-#include <QDataStream>
-#include <QSharedData>
-#include "smfclientglobal.h"
-#include <QMetaType>
-
-class SmfMusicFingerPrintPrivate;
-
-/**
- * @ingroup smf_common_group
- * The musicfingerprint class represents a music finger print used in searches
- */
-class SMFCLIENT_EXPORT SmfMusicFingerPrint
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfMusicFingerPrint( );
-	
-	/**
-	 * Constructor with default argument
-	 * @param aParent The parent object
-	 */
-	SmfMusicFingerPrint( const SmfMusicFingerPrint &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 */
-	SmfMusicFingerPrint& operator=( const SmfMusicFingerPrint &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfMusicFingerPrint( );
-	
-	/**
-	 * Method to get the music finger print data
-	 * @return The music finger print data
-	 */
-	QByteArray musicFingerPrint ( ) const;
-	
-	/**
-	 * Method to set the music finger print data
-	 * @param aFp The music finger print data
-	 */
-	void setMusicFingerPrint ( const QByteArray &aFp);
-	
-private:
-	QSharedDataPointer<SmfMusicFingerPrintPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfMusicFingerPrint &aMFP );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfMusicFingerPrint &aMFP );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfMusicFingerPrint object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aMFP The SmfMusicFingerPrint object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfMusicFingerPrint &aMFP );
-
-/**
- * Method for Internalization. Reads a SmfMusicFingerPrint object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aMFP The SmfMusicFingerPrint object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfMusicFingerPrint &aMFP);
-
-
-// Make the class SmfMusicFingerPrint known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfMusicFingerPrint)
-
-
-#endif /* SMFMUSICFINGERPRINT_H_ */
--- a/smf/smfservermodule/smfclient/common/smfmusicfingerprint_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfMusicFingerPrint class
- *
- */
-
-#ifndef SMFMUSICFINGERPRINT_P_H_
-#define SMFMUSICFINGERPRINT_P_H_
-
-#include <QSharedData>
-
-class SmfMusicFingerPrintPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfMusicFingerPrintPrivate( )
-		{
-		}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfMusicFingerPrintPrivate( const SmfMusicFingerPrintPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_fingerPrintData ( aOther.m_fingerPrintData )	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfMusicFingerPrintPrivate( )
-		{
-		}
-  
-	QByteArray m_fingerPrintData;	// Finger print data
-	
-};
-
-
-#endif /* SMFMUSICFINGERPRINT_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfmusicprofile.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The music profile class represents a user's profile in music site
- *
- */
-
-#include <smfmusicprofile.h>
-#include <smfmusicprofile_p.h>
-
-/**
- * Constructor with default argument
- */
-SmfMusicProfile::SmfMusicProfile( )
-	{
-	d = new SmfMusicProfilePrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfMusicProfile::SmfMusicProfile( const SmfMusicProfile &aOther )
-	:d ( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfMusicProfile& SmfMusicProfile::operator=( const SmfMusicProfile &aOther )
-	{
-	d->m_usage = aOther.d->m_usage;
-	d->m_interest = aOther.d->m_interest;
-	d->m_events = aOther.d->m_events;
-	d->m_profileId = aOther.d->m_profileId;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfMusicProfile::~SmfMusicProfile( )
-	{
-	}
-
-/**
- * Method to get the user's used tracks
- * @return The users track list
- */
-QList<SmfTrackInfo> SmfMusicProfile::musicUsageInfo( ) const
-	{
-	return d->m_usage;
-	}
-
-/**
- * Method to get the user's interested tracks
- * @return The users interested track list
- */
-QList<SmfTrackInfo> SmfMusicProfile::interestInfo( ) const
-	{
-	return d->m_interest;
-	}
-
-/**
- * Method to get the user events as list of SmfEvents
- * @return The list of events
- */
-QList<SmfEvent> SmfMusicProfile::userEvents( ) const
-	{
-	return d->m_events;
-	}
-
-/**
- * Method to get the id of the music profile
- * @return The ID value 
- */
-QString SmfMusicProfile::id( ) const
-	{
-	return d->m_profileId;
-	}
-
-/**
- * Method to set the user's used tracks
- * @param aUsage The users new track list
- */
-void SmfMusicProfile::setMusicUsageInfo( const QList<SmfTrackInfo>& aUsage )
-	{
-	d->m_usage = aUsage;
-	}
-
-/**
- * Method to set the user's interested tracks
- * @param aInterest The users new interested track list
- */
-void SmfMusicProfile::setInterestInfo( const QList<SmfTrackInfo>& aInterest )
-	{
-	d->m_interest = aInterest;
-	}
-
-/**
- * Method to set the user events as list of SmfEvents
- * @param aList The list of events
- */
-void SmfMusicProfile::setUserEvents( const QList<SmfEvent> &aList )
-	{
-	d->m_events = aList;
-	}
-
-/**
- * Method to set the id of the music profile
- * @param aId The ID value 
- */
-void SmfMusicProfile::setId( const QString &aId )
-	{
-	d->m_profileId = aId;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfMusicProfile object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aProfile The SmfMusicProfile object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfMusicProfile &aProfile )
-	{
-	// Serialize d->m_usage
-	aDataStream<<aProfile.d->m_usage;
-	
-	// Serialize d->m_interest
-	aDataStream<<aProfile.d->m_interest;
-	
-	// Serialize d->m_events
-	aDataStream<<aProfile.d->m_events;
-	
-	// Serialize d->m_profileId
-	aDataStream<<aProfile.d->m_profileId;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfMusicProfile object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aProfile The SmfMusicProfile object to be internalized
- * @return reference to the stream
- */
- QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfMusicProfile &aProfile)
-	{
-	// Deserialize d->m_usage
-	aDataStream>>aProfile.d->m_usage;
-	
-	// Deserialize d->m_interest
-	aDataStream>>aProfile.d->m_interest;
-	
-	// Deserialize d->m_events
-	aDataStream>>aProfile.d->m_events;
-	
-	// Deserialize d->m_profileId
-	aDataStream>>aProfile.d->m_profileId;
-	
-	return aDataStream;
-	}
-
--- a/smf/smfservermodule/smfclient/common/smfmusicprofile.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The music profile class represents a user's profile in music site
- *
- */
-
-#ifndef SMFMUSICPROFILE_H_
-#define SMFMUSICPROFILE_H_
-
-#include "smftrackinfo.h"
-#include "smfevent.h"
-#include <qdatastream.h>
-#include <QSharedData>
-#include "smfclientglobal.h"
-#include <QMetaType>
-
-class SmfMusicProfilePrivate;
-/**
- * Implementation constants
- */
-const int SmfMusicProfileMaxSize = 20000;
-/**
- * @ingroup smf_common_group
- * The music profile class represents a user's profile in music site
- */
-class SMFCLIENT_EXPORT SmfMusicProfile
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfMusicProfile( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfMusicProfile( const SmfMusicProfile &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 */
-	SmfMusicProfile& operator=( const SmfMusicProfile &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfMusicProfile( );
-	
-	/**
-	 * Method to get the user's used tracks
-	 * @return The users track list
-	 */
-	QList<SmfTrackInfo> musicUsageInfo( ) const;
-	
-	/**
-	 * Method to get the user's interested tracks
-	 * @return The users interested track list
-	 */
-	QList<SmfTrackInfo> interestInfo( ) const;
-	
-	/**
-	 * Method to get the user events as list of SmfEvents
-	 * @return The list of events
-	 */
-	QList<SmfEvent> userEvents( ) const;
-	
-	/**
-	 * Method to get the id of the music profile
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to set the user's used tracks
-	 * @param aUsage The users new track list
-	 */
-	void setMusicUsageInfo( const QList<SmfTrackInfo>& aUsage );
-	
-	/**
-	 * Method to set the user's interested tracks
-	 * @param aInterest The users new interested track list
-	 */
-	void setInterestInfo( const QList<SmfTrackInfo>& aInterest );
-	
-	/**
-	 * Method to set the user events as list of SmfEvents
-	 * @param aList The list of events
-	 */
-	void setUserEvents( const QList<SmfEvent> &aList );
-	
-	/**
-	 * Method to set the id of the music profile
-	 * @param aId The ID value 
-	 */
-	void setId( const QString &aId );
-
-private:
-	QSharedDataPointer<SmfMusicProfilePrivate> d;
-
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfMusicProfile &aProfile );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfMusicProfile &aProfile );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfMusicProfile object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aProfile The SmfMusicProfile object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfMusicProfile &aProfile );
-
-/**
- * Method for Internalization. Reads a SmfMusicProfile object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aProfile The SmfMusicProfile object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfMusicProfile &aProfile);
-
-typedef QList<SmfMusicProfile> SmfMusicProfileList;
-
-// Make the class SmfMusicProfile known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfMusicProfile)
-Q_DECLARE_METATYPE(QList<SmfMusicProfile>)
-
-#endif /* SMFMUSICPROFILE_H_ */
--- a/smf/smfservermodule/smfclient/common/smfmusicprofile_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfMusicProfile class
- *
- */
-
-#ifndef SMFMUSICPROFILE_P_H_
-#define SMFMUSICPROFILE_P_H_
-
-
-#include <smftrackinfo.h>
-#include <smfevent.h>
-#include <QSharedData>
-
-class SmfMusicProfilePrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfMusicProfilePrivate( ) { 
-		m_usage.clear(); 
-		m_interest.clear();
-		m_events.clear();
-		m_profileId.clear();
-	}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfMusicProfilePrivate( const SmfMusicProfilePrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_usage ( aOther.m_usage ), 
-		m_interest ( aOther.m_interest ),
-		m_events ( aOther.m_events ),
-		m_profileId ( aOther.m_profileId ) 	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfMusicProfilePrivate( )
-		{
-		}
-  
-	QList<SmfTrackInfo> m_usage;	// usage tracks
-	QList<SmfTrackInfo> m_interest;	// interested tracks
-	QList<SmfEvent> m_events;		// events list
-	QString m_profileId;			// profile Id
-	
-};
-
-#endif /* SMFMUSICPROFILE_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfmusicrating.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The music rating class represents an instance of rating 
- * about a music track
- *
- */
-
-#include "smfmusicrating.h"
-#include "smfmusicrating_p.h"
-
-/**
- * Constructor with default argument
- * @param aParent The SmfTrackInfo instance
- */
-SmfMusicRating::SmfMusicRating( SmfTrackInfo *aParent )
-	{
-	Q_UNUSED(aParent)
-	d = new SmfMusicRatingPrivate();
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfMusicRating::SmfMusicRating( const SmfMusicRating &aOther )
-	: d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator 
- * @param aOther The reference object
- */
-SmfMusicRating& SmfMusicRating::operator=( const SmfMusicRating &aOther )
-	{
-	d->m_rating = aOther.d->m_rating;
-	d->m_max = aOther.d->m_max;
-	d->m_min = aOther.d->m_min;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfMusicRating::~SmfMusicRating( )
-	{
-	}
-
-/**
- * Method to get the rating
- * @return The rating value
- */
-int SmfMusicRating::rating( ) const
-	{
-	return d->m_rating;
-	}
-
-/**
- * Method to get the max rating
- * @return The max rating value
- */
-int SmfMusicRating::maxRating( ) const
-	{
-	return d->m_max;
-	}
-
-/**
- * Method to get the min rating
- * @return The min rating value
- */
-int SmfMusicRating::minRating( ) const
-	{
-	return d->m_min;
-	}
-
-/**
- * Method to set the rating
- * @param aRating The rating value
- */
-void SmfMusicRating::setRating( const int &aRating )
-	{
-	d->m_rating = aRating;
-	}
-
-/**
- * Method to set the max rating
- * @param aMax The max rating value
- */
-void SmfMusicRating::setMaxRating( const int &aMax )
-	{
-	d->m_max = aMax;
-	}
-
-/**
- * Method to set the min rating
- * @param aMin The min rating value
- */
-void SmfMusicRating::setMinRating( const int &aMin )
-	{
-	d->m_min = aMin;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfMusicRating object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aMusicRating The SmfMusicRating object to be externalized
- * @return reference to the written stream
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfMusicRating &aMusicRating )
-	{
-	// Serialize d->m_rating
-	aDataStream<<aMusicRating.d->m_rating;
-	
-	// Serialize d->m_max
-	aDataStream<<aMusicRating.d->m_max;
-	
-	// Serialize d->m_min
-	aDataStream<<aMusicRating.d->m_min;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfMusicRating object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aMusicRating The SmfMusicRating object to be internalized
- * @return reference to the stream
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfMusicRating &aMusicRating)
-	{
-	// Deserialize d->m_rating
-	aDataStream>>aMusicRating.d->m_rating;
-	
-	// Deserialize d->m_max
-	aDataStream>>aMusicRating.d->m_max;
-	
-	// Deserialize d->m_min
-	aDataStream>>aMusicRating.d->m_min;
-	
-	return aDataStream;
-	}
-
--- a/smf/smfservermodule/smfclient/common/smfmusicrating.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The music rating class represents an instance of rating 
- * about a music track
- *
- */
-
-#ifndef SMFMUSICRATING_H_
-#define SMFMUSICRATING_H_
-
-#include <QSharedData>
-#include "smfclientglobal.h"
-#include <QMetaType>
-
-class SmfTrackInfo;
-class SmfMusicRatingPrivate;
-
-/**
- * Indicates range of values to represent ratings,
- * SP should normalize their rating value to this scale
- */
-const int SMF_MAX_RATING = 10;
-const int SMF_MIN_RATING = 0;
-
-/**
- * @ingroup smf_common_group
- * The music rating class represents an instance of rating 
- * about a music track 
- */
-class SMFCLIENT_EXPORT SmfMusicRating
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 * @param aParent The SmfTrackInfo instance
-	 */
-	SmfMusicRating( SmfTrackInfo *aParent = 0 );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfMusicRating( const SmfMusicRating &aOther );
-	
-	/**
-	 * Overloaded = operator 
-	 * @param aOther The reference object
-	 */
-	SmfMusicRating& operator=( const SmfMusicRating &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfMusicRating( );
-	
-	/**
-	 * Method to get the rating
-	 * @return The rating value
-	 */
-	int rating( ) const;
-
-	/**
-	 * Method to get the max rating
-	 * @return The max rating value
-	 */
-	int maxRating( ) const;
-	
-	/**
-	 * Method to get the min rating
-	 * @return The min rating value
-	 */
-	int minRating( ) const;
-	
-	/**
-	 * Method to set the rating
-	 * @param aRating The rating value
-	 */
-	void setRating( const int &aRating );
-
-	/**
-	 * Method to set the max rating
-	 * @param aMax The max rating value
-	 */
-	void setMaxRating( const int &aMax );
-	
-	/**
-	 * Method to set the min rating
-	 * @param aMin The min rating value
-	 */
-	void setMinRating( const int &aMin );
-	
-private:
-	QSharedDataPointer<SmfMusicRatingPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfMusicRating &aMusicRating );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfMusicRating &aMusicRating );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfMusicRating object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aMusicRating The SmfMusicRating object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfMusicRating &aMusicRating );
-
-/**
- * Method for Internalization. Reads a SmfMusicRating object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aMusicRating The SmfMusicRating object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfMusicRating &aMusicRating);
-
-
-// Make the class SmfMusicRating known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfMusicRating)
-
-
-#endif /* SMFMUSICRATING_H_ */
--- a/smf/smfservermodule/smfclient/common/smfmusicrating_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfMusicRating class
- *
- */
-
-#ifndef SMFMUSICRATING_P_H_
-#define SMFMUSICRATING_P_H_
-
-#include <QSharedData>
-#include <smfmusicrating.h>
-
-class SmfMusicRatingPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfMusicRatingPrivate( ) { 
-		m_rating = 0;
-		m_max = SMF_MAX_RATING;
-		m_min = SMF_MIN_RATING;
-	}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfMusicRatingPrivate( const SmfMusicRatingPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_rating ( aOther.m_rating ),
-		m_max ( aOther.m_max ),
-		m_min ( aOther.m_min )  { }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfMusicRatingPrivate( )
-		{
-		}
-  
-	qint32 m_rating;	// rating
-	qint32 m_max;		// max rating
-	qint32 m_min;		// min rating
-	
-};
-
-#endif /* SMFMUSICRATING_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfobserver.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- * Description:
- * Observer class to notify availability of asynchronous requests
- *
- */
-
-#ifndef SMFOBSERVER_H_
-#define SMFOBSERVER_H_
-class QByteArray;
-#include "smfglobal.h"
-#include <QObject>
-/**
- * Observer class to notify availability of asynchronous requests
- */
-class smfObserver : public QObject
-	{
-public:
-	/**
-	 * To notify availibility of asynchronous requests.
-	 * @param result Requested result, before using must check error param.
-	 * @param opcode Requested opcode, for which the result has arrived.
-	 * 
-	 */
-	virtual void resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error)= 0;
-	};
-
-#endif
--- a/smf/smfservermodule/smfclient/common/smfpicture.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,348 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The picture class represents an instance of a picture
- *
- */
-
-#include "smfpicture.h"
-#include "smfpicture_p.h"
-
-/**
- * Constructor with default argument
- */
-SmfPicture::SmfPicture(/*bool aDownloaded*/)
-	{
-	d = new SmfPicturePrivate;
-	//d->isDownloaded = aDownloaded;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfPicture::SmfPicture( const SmfPicture &aOther )
-	: d( aOther.d )
-	{
-	}
-
-/**
- * CConstructs SmfPicture from QImage
- * @param aOther The QImage
- */
-SmfPicture::SmfPicture( const QImage &aImage )
-	{
-	d = new SmfPicturePrivate(aImage);
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfPicture& SmfPicture::operator=( const SmfPicture &aOther )
-	{
-	d->m_photoId = aOther.d->m_photoId;
-	d->m_owner = aOther.d->m_owner;
-	d->m_title = aOther.d->m_title;
-	d->m_description = aOther.d->m_description;
-	d->m_picVisibility = aOther.d->m_picVisibility;
-	d->m_postedOn = aOther.d->m_postedOn;
-	d->m_comments = aOther.d->m_comments;
-	d->m_tags = aOther.d->m_tags;
-	d->m_url = aOther.d->m_url;
-	d->m_picture = aOther.d->m_picture;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfPicture::~SmfPicture( )
-	{
-	}
-
-/**
- * Method to get a picture owner
- * @return The owner of the picture
- */
-QString SmfPicture::owner( ) const
-	{
-	return d->m_owner;
-	}
-
-/**
- * Method to get a picture title
- * @return The title of the picture
- */
-QString SmfPicture::title( ) const
-	{
-	return d->m_title;
-	}
-
-/**
- * Method to get a picture description
- * @return The description of the picture
- */
-QString SmfPicture::description( ) const
-	{
-	return d->m_description;
-	}
-
-/**
- * Method to get a visibility of a picture for public
- * @return The visibility mode of this picture for others
- */
-SmfPictureVisibility SmfPicture::visibility( ) const
-	{
-	return d->m_picVisibility;
-	}
-
-/**
- * Method to get the date of posting the picture
- * @return The posted date of the picture
- */
-QDateTime SmfPicture::postedDate( ) const
-	{
-	return d->m_postedOn;
-	}
-
-/**
- * Method to get the comments for the picture
- * @return The comments for the picture
- */
-QList<SmfComment> SmfPicture::comments( ) const
-	{
-	return d->m_comments;
-	}
-
-/**
- * Method to get the tags for the picture
- * @return The tags for the picture
- */
-QStringList SmfPicture::tags( ) const
-	{
-	return d->m_tags;
-	}
-
-/**
- * Method to get the url of the picture
- * @return The url of the picture
- */
-QUrl SmfPicture::url( ) const
-	{
-	return d->m_url;
-	}
-
-/**
- * Method to get the picture data as QImage
- * @return The picture as QImage
- */
-QImage SmfPicture::picture( ) const
-	{
-	return d->m_picture;
-	}
-	
-/**
- * Method to get the id of the picture
- * @return The ID value 
- */
-QString SmfPicture::id( ) const
-	{
-	return d->m_photoId;
-	}
-bool SmfPicture::downloadFlag()
-	{
-	return d->isDownloaded;
-	}
-/**
- * Method to set a picture owner
- * @param aOwner The owner of the picture
- */
-void SmfPicture::setOwner( const QString &aOwner )
-	{
-	d->m_owner = aOwner;
-	}
-
-/**
- * Method to set a picture title
- * @param aTitle The title of the picture
- */
-void SmfPicture::setTitle( const QString &aTitle )
-	{
-	d->m_title = aTitle;
-	}
-
-/**
- * Method to set a picture description
- * @param aDescription The description of the picture
- */
-void SmfPicture::setDescription( const QString &aDescription )
-	{
-	d->m_description = aDescription;
-	}
-
-/**
- * Method to set a visibility of a picture for public
- * @param aVisibility aVisibility The visibility mode of 
- * this picture for others
- */
-void SmfPicture::setVisibility( const SmfPictureVisibility &aVisibility )
-	{
-	d->m_picVisibility = aVisibility;
-	}
-
-/**
- * Method to set the date of posting the picture
- * @param aDate The post date of the picture
- */
-void SmfPicture::setPostedDate( const QDateTime &aDate )
-	{
-	d->m_postedOn = aDate;
-	}
-
-/**
- * Method to add comment on the picture
- * @param aComment The comment for the picture
- */
-void SmfPicture::addComment( const SmfComment &aComment )
-	{
-	d->m_comments.append(aComment);
-	}
-
-/**
- * Method to add tags for the picture
- * @param aTag The tag for the picture
- */
-void SmfPicture::addTags( const QStringList &aTags )
-	{
-	d->m_tags = aTags;
-	}
-
-/**
- * Method to set the url of the picture
- * @param aUrl The url of the picture
- */
-void SmfPicture::setUrl( const QUrl &aUrl )
-	{
-	d->m_url = aUrl;
-	}
-
-/**
- * Method to set the picture data as QImage
- * @param aData The picture as QImage
- */
-void SmfPicture::setPicture( const QImage &aData )
-	{
-	d->m_picture = aData;
-	}
-
-/**
- * Method to set the id of the picture
- * @param aId The ID value 
- */
-void SmfPicture::setId( const QString &aId )
-	{
-	d->m_photoId = aId;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfPicture object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aPic The SmfPicture object to be externalized
- * @return reference to the written stream
- */
-QDataStream& operator<<( QDataStream &aDataStream, 
-		const SmfPicture &aPic )
-	{
-	// Serialize d->m_photoId
-	aDataStream<<aPic.d->m_photoId;
-	
-	// Serialize d->m_owner
-	aDataStream<<aPic.d->m_owner;
-	
-	// Serialize d->m_title
-	aDataStream<<aPic.d->m_title;
-	
-	// Serialize d->m_description
-	aDataStream<<aPic.d->m_description;
-	
-	// Serialize d->m_picVisibility
-	aDataStream<<aPic.d->m_picVisibility;
-	
-	// Serialize d->m_postedOn
-	aDataStream<<aPic.d->m_postedOn;
-	
-	// Serialize d->m_comments
-	aDataStream<<aPic.d->m_comments;
-	
-	// Serialize d->m_tags
-	aDataStream<<aPic.d->m_tags;
-	
-	// Serialize d->m_url
-	aDataStream<<aPic.d->m_url;
-	
-	// Serialize d->m_picture
-	aDataStream<<aPic.d->m_picture;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfPicture object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aPic The SmfPicture object to be internalized
- * @return reference to the stream
- */
-QDataStream& operator>>( QDataStream &aDataStream, 
-		SmfPicture &aPic)
-	{
-	// Deserialize d->m_photoId
-	aDataStream>>aPic.d->m_photoId;
-	
-	// Deserialize d->m_owner
-	aDataStream>>aPic.d->m_owner;
-	
-	// Deserialize d->m_title
-	aDataStream>>aPic.d->m_title;
-	
-	// Deserialize d->m_description
-	aDataStream>>aPic.d->m_description;
-	
-	// Deserialize d->m_picVisibility
-	quint32 val = 0;
-	aDataStream>>val;
-	aPic.d->m_picVisibility = (SmfPictureVisibility)val;
-
-	// Deserialize d->m_postedOn
-	aDataStream>>aPic.d->m_postedOn;
-	
-	// Deserialize d->m_comments
-	aDataStream>>aPic.d->m_comments;
-	
-	// Deserialize d->m_tags
-	aDataStream>>aPic.d->m_tags;
-	
-	// Deserialize d->m_url
-	aDataStream>>aPic.d->m_url;
-	
-	// Deserialize d->m_picture
-	aDataStream>>aPic.d->m_picture;
-	
-	return aDataStream;
-	}
--- a/smf/smfservermodule/smfclient/common/smfpicture.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The picture class represents an instance of a picture
- *
- */
-
-#ifndef SMFPICTURE_H_
-#define SMFPICTURE_H_
-
-#include <QImage>
-#include <QDateTime>
-#include <QStringList>
-#include <QUrl>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-#include <QMetaType>
-#include <smfcomment.h>
-
-class SmfPicturePrivate;
-/**
- * Max size for one SmfPicture
- */
-const int MaxSmfPictureSize = 1000;
-/**
- * SmfPictureVisibility enumeration
- */
-enum SmfPictureVisibility
-	{
-	SMFVisibilityFriend,
-	SMFVisibilityPersonal,
-	SMFVisibilityFamily,
-	SMFVisibilityGroup,
-	SMFVisibilityPublic
-	};
-
-/**
- * @ingroup smf_common_group
- * The picture class represents an instance of a picture
- */
-class SMFCLIENT_EXPORT SmfPicture
-	{
-public:
-	/**
-	 * Constructor with default argument.
-	 * @param aDownloaded This flag is to know whether the content is downloaded
-	 * in the device(if true). If false it signifies that SmfPicture contains
-	 * a link/url to the location of the content
-	 */
-	SmfPicture(/*bool aDownloaded = false*/ );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfPicture( const SmfPicture &aOther );
-	
-	/**
-	 * CConstructs SmfPicture from QImage
-	 * @param aImage The QImage
-	 */
-	SmfPicture( const QImage &aImage );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 * @return The current object reference
-	 */
-	SmfPicture& operator=(const SmfPicture &aOther);
-	
-	/**
-	 * Destructor
-	 */
-	~SmfPicture( );
-	
-	/**
-	 * Method to get a picture owner
-	 * @return The owner of the picture
-	 */
-	QString owner( ) const;
-	
-	/**
-	 * Method to get a picture title
-	 * @return The title of the picture
-	 */
-	QString title( ) const;
-	
-	/**
-	 * Method to get a picture description
-	 * @return The description of the picture
-	 */
-	QString description( ) const;
-	
-	/**
-	 * Method to get a visibility of a picture for public
-	 * @return The visibility mode of this picture for others
-	 */
-	SmfPictureVisibility visibility( ) const;
-	
-	/**
-	 * Method to get the date of posting the picture
-	 * @return The posted date of the picture
-	 */
-	QDateTime postedDate( ) const;
-	
-	/**
-	 * Method to get the comments for the picture
-	 * @return The comments for the picture
-	 */
-	QList<SmfComment> comments( ) const;
-	
-	/**
-	 * Method to get the tags for the picture
-	 * @return The tags for the picture
-	 */
-	QStringList tags( ) const;
-	
-	/**
-	 * Method to get the url of the picture
-	 * @return The url of the picture
-	 */
-	QUrl url( ) const;
-	
-	/**
-	 * Method to get the picture data as QImage
-	 * @return The picture as QImage
-	 */
-	QImage picture( ) const;
-	
-	/**
-	 * Method to get the id of the picture
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Gets download flag. This flag is to know whether the content is downloaded
-	 * in the device(if true). If false it signifies that SmfPicture contains
-	 * a link/url to the location of the content
-	 */
-	bool downloadFlag();
-			
-	/**
-	 * Method to set a picture owner
-	 * @param aOwner The owner of the picture
-	 */
-	void setOwner( const QString &aOwner );
-	
-	/**
-	 * Method to set a picture title
-	 * @param aTitle The title of the picture
-	 */
-	void setTitle( const QString &aTitle );
-	
-	/**
-	 * Method to set a picture description
-	 * @param aDescription The description of the picture
-	 */
-	void setDescription( const QString &aDescription );
-	
-	/**
-	 * Method to set a visibility of a picture for public
-	 * @param aVisibility aVisibility The visibility mode of 
-	 * this picture for others
-	 */
-	void setVisibility( const SmfPictureVisibility &aVisibility );
-	
-	/**
-	 * Method to set the date of posting the picture
-	 * @param aDate The post date of the picture
-	 */
-	void setPostedDate( const QDateTime &aDate );
-	
-	/**
-	 * Method to add comment on the picture
-	 * @param aComment The comment for the picture
-	 */
-	void addComment( const SmfComment &aComment );
-	
-	/**
-	 * Method to add tags for the picture
-	 * @param aTag The tag for the picture
-	 */
-	void addTags( const QStringList &aTags );
-	
-	/**
-	 * Method to set the url of the picture
-	 * @param aUrl The url of the picture
-	 */
-	void setUrl( const QUrl &aUrl );
-	
-	/**
-	 * Method to set the picture data as QImage
-	 * @param aData The picture as QImage
-	 */
-	void setPicture( const QImage &aData );
-	
-	/**
-	 * Method to set the id of the picture
-	 * @param aId The ID value 
-	 */
-	void setId( const QString &aId );
-	
-private:
-	QSharedDataPointer<SmfPicturePrivate> d;
-	
-	friend QDataStream& operator<<( QDataStream &aDataStream, 
-			const SmfPicture &aPic );
-
-	friend QDataStream& operator>>( QDataStream &aDataStream, 
-			SmfPicture &aPic );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfPicture object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aPic The SmfPicture object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream& operator<<( QDataStream &aDataStream, 
-		const SmfPicture &aPic );
-
-/**
- * Method for Internalization. Reads a SmfPicture object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aPic The SmfPicture object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream& operator>>( QDataStream &aDataStream, 
-		SmfPicture &aPic);
-
-typedef QList<SmfPicture> SmfPictureList;
-
-// Make the class SmfPicture known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfPicture)
-Q_DECLARE_METATYPE(QList<SmfPicture>)
-
-#endif /* SMFPICTURE_H_ */
--- a/smf/smfservermodule/smfclient/common/smfpicture_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfPicture class
- *
- */
-
-#ifndef SMFPICTURE_P_H_
-#define SMFPICTURE_P_H_
-
-
-#include <QDateTime>
-#include <QStringList>
-#include <QUrl>
-#include <QSharedData>
-#include <smfclientglobal.h>
-#include <smfpicture.h>
-
-class SmfPicturePrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfPicturePrivate( ) { 
-		m_photoId.clear();
-		m_owner.clear();
-		m_title.clear();
-		m_description.clear();
-		m_comments.clear();
-		m_tags.clear();
-		m_url.clear();
-		isDownloaded = false;
-	}
-	/**
-	 * Constructor
-	 */
-	SmfPicturePrivate( const QImage &aImage ) { 
-		m_photoId.clear();
-		m_owner.clear();
-		m_title.clear();
-		m_description.clear();
-		m_comments.clear();
-		m_tags.clear();
-		m_url.clear();
-		m_picture = aImage;
-		//false by default
-		isDownloaded = false;
-	}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfPicturePrivate( const SmfPicturePrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_photoId ( aOther.m_photoId ),
-		m_owner ( aOther.m_owner ),
-		m_title ( aOther.m_title ),
-		m_description ( aOther.m_description ),
-		m_picVisibility ( aOther.m_picVisibility ),
-		m_postedOn ( aOther.m_postedOn ),
-		m_comments ( aOther.m_comments ),
-		m_tags ( aOther.m_tags ),
-		m_url ( aOther.m_url ),
-		m_picture ( aOther.m_picture ),
-		isDownloaded(aOther.isDownloaded)
-			{
-		
-			}
-	
-	/**
-	 * Destructor
-	 */
-	~SmfPicturePrivate( )
-		{
-		}
-  
-	QString m_photoId;		// unique ID of the picture, service provider specific
-	QString m_owner;		// owner of the picture
-	QString m_title;		// picture title
-	QString m_description;	// description
-	SmfPictureVisibility m_picVisibility;// picture visibility
-	QDateTime m_postedOn;	// date posted
-	QList<SmfComment> m_comments;		 // comments
-	QStringList m_tags;		// tags
-	QUrl m_url;				// url
-	QImage m_picture;		// picture data as bytearray
-	/**
-	 * Flag whether the content is actually available in device - 
-	 * if this is false then only the url/link to the media is available 
-	 * in the class - clients can use the link to download the content/visit 
-	 * the site.
-	 */
-	bool isDownloaded;
-};
-
-#endif /* SMFPICTURE_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfpicturealbum.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,323 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The album to contain a set pf pictures
- *
- */
-
-#include <smfpicturealbum.h>
-#include <smfpicturealbum_p.h>
-
-/**
- * Constructor with default argument
- */
-SmfPictureAlbum::SmfPictureAlbum( )
-	{
-	d = new SmfPictureAlbumPrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfPictureAlbum::SmfPictureAlbum( const SmfPictureAlbum &aOther )
-	: d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfPictureAlbum& SmfPictureAlbum::operator=( const SmfPictureAlbum &aOther )
-	{
-	d->m_albumId = aOther.d->m_albumId;
-	d->m_title = aOther.d->m_title;
-	d->m_description = aOther.d->m_description;
-	d->m_albumVisibility = aOther.d->m_albumVisibility;
-	d->m_postedOn = aOther.d->m_postedOn;
-	d->m_comments = aOther.d->m_comments;
-	d->m_keywords = aOther.d->m_keywords;
-	d->m_url = aOther.d->m_url;
-	d->m_picCount =aOther.d->m_picCount;
-	d->m_thumbnail = aOther.d->m_thumbnail ;	
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfPictureAlbum::~SmfPictureAlbum( )
-	{
-	
-	}
-
-
-/**
- * Method to get a album title
- * @return The title of the album
- */
-QString SmfPictureAlbum::title( ) const
-	{
-	return d->m_title;
-	}
-
-/**
- * Method to get a album description
- * @return The description of the album
- */
-QString SmfPictureAlbum::description( ) const
-	{
-	return d->m_description;
-	}
-
-/**
- * Method to get a visibility of a album for public
- * @return The visibility mode of this album for others
- */
-SmfPictureVisibility SmfPictureAlbum::visibility( ) const
-	{
-	return d->m_albumVisibility;
-	}
-
-/**
- * Method to get the date of posting the album
- * @return The posted date of the album
- */
-QDateTime SmfPictureAlbum::postedDate( ) const
-	{
-	return d->m_postedOn;
-	}
-
-/**
- * Method to get the comments for the album
- * @return The comments for the album
- */
-QList<SmfComment> SmfPictureAlbum::comments( ) const
-	{
-	return d->m_comments;
-	}
-
-/**
- * Method to get the tags for the album
- * @return The tags for the album
- */
-QStringList SmfPictureAlbum::keywords( ) const
-	{
-	return d->m_keywords;
-	}
-
-/**
- * Method to get the url of the album
- * @return The url of the album
- */
-QUrl SmfPictureAlbum::url( ) const
-	{
-	return d->m_url;
-	}
-
-/**
- * Method to get the album data as QImage
- * @return The album as QImage
- */
-qint32 SmfPictureAlbum::pictureCount( ) const
-	{
-	return d->m_picCount;
-	}
-	
-/**
- * Method to get the id of the album
- * @return The ID value 
- */
-QString SmfPictureAlbum::id( ) const
-	{
-	return d->m_albumId;
-	}
-
-
-/**
- * Method to set a album title
- * @param aTitle The title of the album
- */
-void SmfPictureAlbum::setTitle( const QString &aTitle )
-	{
-	d->m_title = aTitle;
-	}
-
-/**
- * Method to set a album description
- * @param aDescription The description of the album
- */
-void SmfPictureAlbum::setDescription( const QString &aDescription )
-	{
-	d->m_description = aDescription;
-	}
-
-/**
- * Method to set a visibility of a album for public
- * @param aVisibility aVisibility The visibility mode of 
- * this album for others
- */
-void SmfPictureAlbum::setVisibility( const SmfPictureVisibility &aVisibility )
-	{
-	d->m_albumVisibility = aVisibility;
-	}
-
-/**
- * Method to set the date of posting the album
- * @param aDate The post date of the album
- */
-void SmfPictureAlbum::setPostedDate( const QDateTime &aDate )
-	{
-	d->m_postedOn = aDate;
-	}
-
-/**
- * Method to add comment on the album
- * @param aComment The comment for the album
- */
-void SmfPictureAlbum::addComment( const SmfComment &aComment )
-	{
-	d->m_comments.append(aComment);
-	}
-
-/**
- * Method to add tags for the album
- * @param aTag The tag for the album
- */
-void SmfPictureAlbum::addKeywords(const QStringList &aKeywords )
-	{
-	d->m_keywords = aKeywords;
-	}
-
-/**
- * Method to set the url of the album
- * @param aUrl The url of the album
- */
-void SmfPictureAlbum::setUrl( const QUrl &aUrl )
-	{
-	d->m_url = aUrl;
-	}
-
-/**
- * Method to set the album data as QImage
- * @param aData The album as QImage
- */
-void SmfPictureAlbum::setThumbnail( const QImage &aData )
-	{
-	d->m_thumbnail = aData;
-	}
-
-/**
- * Method to set the id of the album
- * @param aId The ID value 
- */
-void SmfPictureAlbum::setId( const QString &aId )
-	{
-	d->m_albumId = aId;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfPictureAlbum object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aPic The SmfPictureAlbum object to be externalized
- * @return reference to the written stream
- */
-QDataStream& operator<<( QDataStream &aDataStream, 
-		const SmfPictureAlbum &aAlbm )
-	{
-	//serialize d->m_albumId;
-	aDataStream << aAlbm.d->m_albumId;
-
-	//serialize d->m_title;
-	aDataStream << aAlbm.d->m_title;
-
-	//serialize d->m_description;
-	aDataStream << aAlbm.d->m_description;
-
-	//serialize d->m_albumVisibility;
-	quint32 val = aAlbm.d->m_albumVisibility;
-	aDataStream << val;
-
-	//serialize d->m_postedOn;
-	aDataStream << aAlbm.d->m_postedOn;
-
-	//serialize d->m_comments;
-	aDataStream << aAlbm.d->m_comments;
-
-	//serialize d->m_keywords;
-	aDataStream << aAlbm.d->m_keywords;
-
-	//serialize d->m_url;
-	aDataStream << aAlbm.d->m_url;
-
-	//serialize d->m_picCount;
-	aDataStream << aAlbm.d->m_picCount;
-
-	//serialize d->m_thumbnail ;	
-	aDataStream << aAlbm.d->m_thumbnail ;	
-
-
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfPictureAlbum object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aPic The SmfPictureAlbum object to be internalized
- * @return reference to the stream
- */
-QDataStream& operator>>( QDataStream &aDataStream, 
-		SmfPictureAlbum &aAlbm)
-	{
-	//deserialize d->m_albumId;
-	aDataStream >> aAlbm.d->m_albumId;
-
-	//deserialize d->m_title;
-	aDataStream >> aAlbm.d->m_title;
-
-	//deserialize d->m_description;
-	aDataStream >> aAlbm.d->m_description;
-
-	//deserialize d->m_albumVisibility;
-	quint32 val =  0;
-	aDataStream >>val;
-	aAlbm.d->m_albumVisibility = (SmfPictureVisibility)val;
-
-	//deserialize d->m_postedOn;
-	aDataStream >> aAlbm.d->m_postedOn;
-
-	//deserialize d->m_comments;
-	aDataStream >> aAlbm.d->m_comments;
-
-	//deserialize d->m_keywords;
-	aDataStream >> aAlbm.d->m_keywords;
-
-	//deserialize d->m_url;
-	aDataStream >> aAlbm.d->m_url;
-
-	//deserialize d->m_picCount;
-	aDataStream >> aAlbm.d->m_picCount;
-
-	//deserialize d->m_thumbnail ;	
-	aDataStream >> aAlbm.d->m_thumbnail ;	
-
-	return aDataStream;
-	}
--- a/smf/smfservermodule/smfclient/common/smfpicturealbum.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,226 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The album class represents an online picture album (collection/gallery)
- *
- */
-
-#ifndef SMFPICTUREALBUM_H_
-#define SMFPICTUREALBUM_H_
-
-#include <QImage>
-#include <QDateTime>
-#include <QStringList>
-#include <QUrl>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-#include <QMetaType>
-#include <smfcomment.h>
-#include <smfpicture.h>
-
-class SmfPictureAlbumPrivate;
-/**Implementation const */
-const int MaxSmfPictureAlbumSize = 20000;//20KB
-/**
- * @ingroup smf_common_group
- * album class represents an online picture album (collection)
- */
-class SMFCLIENT_EXPORT SmfPictureAlbum
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfPictureAlbum( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfPictureAlbum( const SmfPictureAlbum &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 * @return The current object reference
-	 */
-	SmfPictureAlbum& operator=(const SmfPictureAlbum &aOther);
-	
-	/**
-	 * Destructor
-	 */
-	~SmfPictureAlbum( );
-	
-	/**
-	 * Method to get a album title
-	 * @return The title of the album
-	 */
-	QString title( ) const;
-	
-	/**
-	 * Method to get a album description
-	 * @return The description of the album
-	 */
-	QString description( ) const;
-	
-	/**
-	 * Method to get a visibility of a album for public
-	 * @return The visibility mode of this album for others
-	 */
-	SmfPictureVisibility visibility( ) const;
-	
-	/**
-	 * Method to get the date of posting the album
-	 * @return The posted date of the album
-	 */
-	QDateTime postedDate( ) const;
-	
-	/**
-	 * Method to get the comments for the album
-	 * @return The comments for the album
-	 */
-	QList<SmfComment> comments( ) const;
-	
-	/**
-	 * Method to get the keywords for the album
-	 * @return The keywords for the album
-	 */
-	QStringList keywords( ) const;
-	
-	/**
-	 * Method to get the url of the album
-	 * @return The url of the album
-	 */
-	QUrl url( ) const;
-	
-	/**
-	 * Method to get the thumbnail for this album as QImage
-	 * @return The picture as QImage
-	 */
-	QImage thumbnail( ) const;
-
-	/**
-	 * Method to get the number of pictures in this album
-	 * @return number of pictures in this album
-	 */
-	qint32 pictureCount( ) const;
-
-	/**
-	 * Method to get the id of the album
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-		
-	/**
-	 * Method to set a album title
-	 * @param aTitle The title of the album
-	 */
-	void setTitle( const QString &aTitle );
-	
-	/**
-	 * Method to set a album description
-	 * @param aDescription The description of the album
-	 */
-	void setDescription( const QString &aDescription );
-	
-	/**
-	 * Method to set a visibility of a album for public
-	 * @param aVisibility aVisibility The visibility mode of 
-	 * this album for others
-	 */
-	void setVisibility( const SmfPictureVisibility &aVisibility );
-	
-	/**
-	 * Method to set the date of posting the album
-	 * @param aDate The post date of the album
-	 */
-	void setPostedDate( const QDateTime &aDate );
-	
-	/**
-	 * Method to add comment on the album
-	 * @param aComment The comment for the album
-	 */
-	void addComment( const SmfComment &aComment );
-	
-	/**
-	 * Method to add keywords for the album
-	 * @param aTag The tag for the album
-	 */
-	void addKeywords( const QStringList &aWords );
-	
-	/**
-	 * Method to set the url of the album
-	 * @param aUrl The url of the album
-	 */
-	void setUrl( const QUrl &aUrl );
-
-	/**
-	 * Method to set the thumbnail for this album as QImage
-	 * @return The picture as QImage
-	 */
-	void setThumbnail(const QImage &aImage );
-	
-	/**
-	 * Method to get the number of pictures in this album
-	 * @return number of pictures in this album
-	 */
-	 void setPictureCount( const qint32 aCount);
-
-	/**
-	 * Method to set the id of the album
-	 * @param aId The ID value 
-	 */
-	void setId( const QString &aId );
-	
-private:
-	QSharedDataPointer<SmfPictureAlbumPrivate> d;
-	
-	friend QDataStream& operator<<( QDataStream &aDataStream, 
-			const SmfPictureAlbum &aAlbm );
-
-	friend QDataStream& operator>>( QDataStream &aDataStream, 
-			SmfPictureAlbum &aAlbm );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfPictureAlbum object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aAlbm The SmfPictureAlbum object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream& operator<<( QDataStream &aDataStream, 
-		const SmfPictureAlbum &aAlbm );
-
-/**
- * Method for Internalization. Reads a SmfPictureAlbum object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aAlbm The SmfPictureAlbum object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream& operator>>( QDataStream &aDataStream, 
-		SmfPictureAlbum &aAlbm);
-
-typedef QList<SmfPictureAlbum> SmfPictureAlbumList;
-
-// Make the class SmfPictureAlbum known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfPictureAlbum)
-Q_DECLARE_METATYPE(QList<SmfPictureAlbum>)
-
-#endif /* SMFPICTUREALBUM_H_ */
--- a/smf/smfservermodule/smfclient/common/smfpicturealbum_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfPictureAlbum class
- *
- */
-
-#ifndef SMFPICTUREALBUM_P_H_
-#define SMFPICTUREALBUM_P_H_
-
-
-#include <QDateTime>
-#include <QStringList>
-#include <QUrl>
-#include <QSharedData>
-#include <smfclientglobal.h>
-#include <smfpicturealbum.h>
-
-class SmfPictureAlbumPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfPictureAlbumPrivate( ) { 
-		m_title.clear();		// album title
-		m_description.clear();	// description
-		m_albumVisibility = SMFVisibilityPublic;// album visibility
-		m_comments.clear();		 // comments
-		m_keywords.clear();		// tags
-		m_url.clear();				// url
-		m_picCount=0;	//count of pictures
-		m_albumId.clear();		// unique ID of the album, service provider specific	
-	}
-	
-
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfPictureAlbumPrivate( const SmfPictureAlbumPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_albumId ( aOther.m_albumId),
-		m_title ( aOther.m_title ),
-		m_description ( aOther.m_description ),
-		m_albumVisibility ( aOther.m_albumVisibility ),
-		m_postedOn ( aOther.m_postedOn ),
-		m_comments ( aOther.m_comments ),
-		m_keywords ( aOther.m_keywords ),
-		m_url ( aOther.m_url ),
-		m_picCount (aOther.m_picCount),
-		m_thumbnail ( aOther.m_thumbnail )	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfPictureAlbumPrivate( )
-		{
-		}
-  
-	/**
-	 * Member variables
-	 */
-	QString m_title;		// album title
-	QString m_description;	// description
-	SmfPictureVisibility m_albumVisibility;// album visibility
-	QDateTime m_postedOn;	// date posted
-	QList<SmfComment> m_comments;		 // comments
-	QStringList m_keywords;		// tags
-	QUrl m_url;				// url
-	QImage m_thumbnail;		// thumbnail data
-	quint32	 m_picCount;	//count of pictures
-	QString m_albumId;		// unique ID of the album, service provider specific	
-};
-
-#endif /* SMFPICTUREALBUM_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfplaylist.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The playlist class represents an instance of a playlist.
- * SmfPlaylist class is in accordance with the XML Shareable Playlist Format (XSPF)
- * as mentioned in http://xspf.org/xspf-v1.html
- *
- */
-
-#include <smfplaylist.h>
-#include <smfplaylist_p.h>
-
-/**
- * Constructor with default argument
- */
-SmfPlaylist::SmfPlaylist( )
-	{
-	d = new SmfPlaylistPrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfPlaylist::SmfPlaylist( const SmfPlaylist &aOther )
-	: d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfPlaylist& SmfPlaylist::operator=( const SmfPlaylist &aOther )
-	{
-	d->m_version = aOther.d->m_version;
-	d->m_title = aOther.d->m_title;
-	d->m_author = aOther.d->m_author;
-	d->m_comments = aOther.d->m_comments;
-	d->m_info = aOther.d->m_info;
-	d->m_location = aOther.d->m_location;
-	d->m_playlistId = aOther.d->m_playlistId;
-	d->m_image = aOther.d->m_image;
-	d->m_creationDate = aOther.d->m_creationDate;
-	d->m_license = aOther.d->m_license;
-	d->m_attribution = aOther.d->m_attribution;
-	d->m_metadata = aOther.d->m_metadata;
-	d->m_extension = aOther.d->m_extension;
-	d->m_trackList = aOther.d->m_trackList;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfPlaylist::~SmfPlaylist( )
-	{
-	}
-
-/**
- * Method to get the version of the playlist
- * @return The version of the playlist
- */
-QString SmfPlaylist::version( ) const
-	{
-	return d->m_version;
-	}
-
-/**
- * Method to get the playlist title
- * @return The title of the playlist
- */
-QString SmfPlaylist::playListTitle( ) const
-	{
-	return d->m_title;
-	}
-
-/**
- * Method to get the author of the playlist
- * @return The author of the playlist
- */
-QString SmfPlaylist::author( ) const
-	{
-	return d->m_author;
-	}
-
-/**
- * Method to get the comments on the playlist
- * @return The comments on the playlist
- */
-QList<SmfComment> SmfPlaylist::comments( ) const
-	{
-	return d->m_comments;
-	}
-
-/**
- * Method to get the URI of a web page to find out more about this playlist
- * @return The info Url
- */
-QUrl SmfPlaylist::info( ) const
-	{
-	return d->m_info;
-	}
-		
-/**
- * Method to get the Source URI for this playlist
- * @return The Source URI for this playlist
- */
-QUrl SmfPlaylist::location( ) const
-	{
-	return d->m_location;
-	}
-
-/**
- * Method to get the id of the playlist
- * @return The ID value 
- */
-QString SmfPlaylist::id( ) const
-	{
-	return d->m_playlistId;
-	}
-
-/**
- * Method to get the URI of an image to display in the absence 
- * of an image for playlist's tracks
- * @return The deafult image Url
- */
-QUrl SmfPlaylist::image( ) const
-	{
-	return d->m_image;
-	}
-
-/**
- * Method to get the creation date of the playlist
- * @return The date and time of creation of the playlist
- */
-QDateTime SmfPlaylist::creationDate( ) const
-	{
-	return d->m_creationDate;
-	}
-
-/**
- * Method to get the URI of a resource that describes the license 
- * under which this playlist was released
- * @return The license Url
- */
-QUrl SmfPlaylist::license( ) const
-	{
-	return d->m_license;
-	}
-
-/**
- * Method to get the ordered list of URIs. The purpose is to satisfy 
- * licenses allowing modification but requiring attribution
- * @return The list of license Urls
- */
-QList<QUrl> SmfPlaylist::attribution( ) const
-	{
-	return d->m_attribution;
-	}
-
-/**
- * Method to get the meta element that allows metadata fields to be added to XSPF
- * @return The meta elements as a QVarintMap
- */
-QVariantMap SmfPlaylist::metadata( ) const
-	{
-	return d->m_metadata;
-	}
-
-/**
- * Method to get the extension element that allows non-XSPF XML 
- * to be included in XSPF documents
- * @return The extension elements as a QVarintMap
- */
-QVariantMap SmfPlaylist::extension( ) const
-	{
-	return d->m_extension;
-	}
-
-/**
- * Method to get the list of tracks in the playlist
- * @return The list of tracks in the playlist
- */
-QList<SmfTrackInfo> SmfPlaylist::trackList( ) const
-	{
-	return d->m_trackList;
-	}
-
-/**
- * Method to set the version of the playlist
- * @param aVersion The version of the playlist
- */
-void SmfPlaylist::setVersion( const QString& aVersion )
-	{
-	d->m_version = aVersion;
-	}
-
-/**
- * Method to set the playlist title
- * @param aTitle The title of the playlist
- */
-void SmfPlaylist::setPlayListTitle( const QString &aTitle )
-	{
-	d->m_title = aTitle;
-	}
-
-/**
- * Method to set the author of the playlist
- * @param aAuthor The author of the playlist
- */
-void SmfPlaylist::setAuthor( const QString& aAuthor )
-	{
-	d->m_author = aAuthor;
-	}
-
-/**
- * Method to set the comments on the playlist
- * @param aComments The comments on the playlist
- */
-void SmfPlaylist::setComments( const QList<SmfComment>& aComments )
-	{
-	d->m_comments = aComments;
-	}
-
-/**
- * Method to set the URI of a web page to find out more about this playlist
- * @param aInfoUrl The info Url
- */
-void SmfPlaylist::setInfo( const QUrl& aInfoUrl )
-	{
-	d->m_info = aInfoUrl;
-	}
-
-/**
- * Method to set the Source URI for this playlist
- * @param aLocation The Source URI for this playlist
- */
-void SmfPlaylist::setLocation( const QUrl& aLocation )
-	{
-	d->m_location = aLocation;
-	}
-
-/**
- * Method to set the id of the playlist
- * @param aId The ID value 
- */
-void SmfPlaylist::setId( const QString &aId)
-	{
-	d->m_playlistId = aId;
-	}
-
-/**
- * Method to set the URI of an image to display in the absence 
- * of an image for playlist's tracks
- * @param aImage The default image Url
- */
-void SmfPlaylist::setImage( const QUrl& aImage )
-	{
-	d->m_image = aImage;
-	}
-
-/**
- * Method to set the creation date of the playlist
- * @param aDate The date and time of creation of the playlist
- */
-void SmfPlaylist::setCreationDate( const QDateTime& aDate )
-	{
-	d->m_creationDate = aDate;
-	}
-
-/**
- * Method to set the URI of a resource that describes the license 
- * under which this playlist was released
- * @param aLicense The license Url
- */
-void SmfPlaylist::setLicense( const QUrl& aLicense )
-	{
-	d->m_license = aLicense;
-	}
-
-/**
- * Method to set the ordered list of URIs. The purpose is to satisfy 
- * licenses allowing modification but requiring attribution
- * @param aAttribution The list of license Urls
- */
-void SmfPlaylist::setAttribution( const QList<QUrl>& aAttribution )
-	{
-	d->m_attribution = aAttribution;
-	}
-
-/**
- * Method to set the meta element that allows metadata fields to be added to XSPF
- * @param aMetaData The meta elements as a QVarintMap
- */
-void SmfPlaylist::setMetadata( const QVariantMap& aMetaData )
-	{
-	d->m_metadata = aMetaData;
-	}
-
-/**
- * Method to set the extension element that allows non-XSPF XML 
- * to be included in XSPF documents
- * @param aExtension The extension elements as a QVarintMap
- */
-void SmfPlaylist::setExtension( const QVariantMap& aExtension )
-	{
-	d->m_extension = aExtension;
-	}
-
-/**
- * Method to set the list of tracks in the playlist
- * @param aList The new list of tracks in the playlist
- */
-void SmfPlaylist::setTrackList( const QList<SmfTrackInfo> &aList )
-	{
-	d->m_trackList = aList;
-	}
-
-/**
- * Method for Externalization. Writes the SmfPlaylist object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aPlaylist The SmfPlaylist object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfPlaylist &aPlaylist )
-	{
-	// Serialize d->m_version
-	aDataStream<<aPlaylist.d->m_version;
-	
-	// Serialize d->m_title
-	aDataStream<<aPlaylist.d->m_title;
-	
-	// Serialize d->m_author
-	aDataStream<<aPlaylist.d->m_author;
-	
-	// Serialize d->m_comments
-	aDataStream<<aPlaylist.d->m_comments;
-	
-	// Serialize d->m_info
-	aDataStream<<aPlaylist.d->m_info;
-	
-	// Serialize d->m_location
-	aDataStream<<aPlaylist.d->m_location;
-	
-	// Serialize d->m_playlistId
-	aDataStream<<aPlaylist.d->m_playlistId;
-	
-	// Serialize d->m_image
-	aDataStream<<aPlaylist.d->m_image;
-	
-	// Serialize d->m_creationDate
-	aDataStream<<aPlaylist.d->m_creationDate;
-	
-	// Serialize d->m_license
-	aDataStream<<aPlaylist.d->m_license;
-	
-	// Serialize d->m_attribution
-	aDataStream<<aPlaylist.d->m_attribution;
-	
-	// Serialize d->m_metadata
-	aDataStream<<aPlaylist.d->m_metadata;
-	
-	// Serialize d->m_extension
-	aDataStream<<aPlaylist.d->m_extension;
-	
-	// Serialize d->m_trackList
-	aDataStream<<aPlaylist.d->m_trackList;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfPlaylist object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aPlaylist The SmfPlaylist object to be internalized
- * @return reference to the stream
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfPlaylist &aPlaylist)
-	{
-	// Deserialize d->m_version
-	aDataStream>>aPlaylist.d->m_version;
-	
-	// Deserialize d->m_title
-	aDataStream>>aPlaylist.d->m_title;
-	
-	// Deserialize d->m_author
-	aDataStream>>aPlaylist.d->m_author;
-	
-	// Deserialize d->m_comments
-	aDataStream>>aPlaylist.d->m_comments;
-	
-	// Deserialize d->m_info
-	aDataStream>>aPlaylist.d->m_info;
-	
-	// Deserialize d->m_location
-	aDataStream>>aPlaylist.d->m_location;
-	
-	// Deserialize d->m_playlistId
-	aDataStream>>aPlaylist.d->m_playlistId;
-	
-	// Deserialize d->m_image
-	aDataStream>>aPlaylist.d->m_image;
-	
-	// Deserialize d->m_creationDate
-	aDataStream>>aPlaylist.d->m_creationDate;
-	
-	// Deserialize d->m_license
-	aDataStream>>aPlaylist.d->m_license;
-	
-	// Deserialize d->m_attribution
-	aDataStream>>aPlaylist.d->m_attribution;
-	
-	// Deserialize d->m_metadata
-	aDataStream>>aPlaylist.d->m_metadata;
-	
-	// Deserialize d->m_extension
-	aDataStream>>aPlaylist.d->m_extension;
-	
-	// Deserialize d->m_trackList
-	aDataStream>>aPlaylist.d->m_trackList;
-	
-	return aDataStream;
-	}
--- a/smf/smfservermodule/smfclient/common/smfplaylist.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The playlist class represents an instance of a playlist.
- * SmfPlaylist class is in accordance with the XML Shareable Playlist Format (XSPF)
- * as mentioned in http://xspf.org/xspf-v1.html
- *
- */
-
-#ifndef SMFPLAYLIST_H_
-#define SMFPLAYLIST_H_
-
-#include <qdatastream.h>
-#include <QSharedData>
-#include <QMetaType>
-#include <QVariant>
-
-#include "smfclientglobal.h"
-#include "smftrackinfo.h"
-#include "smfcomment.h"
-
-class SmfPlaylistPrivate;
-
-/**
- * @ingroup smf_common_group
- * The playlist class represents an instance of a playlist.
- * SmfPlaylist class is in accordance with the XML Shareable Playlist Format (XSPF)
- * as mentioned in http://xspf.org/xspf-v1.html
- */
-class SMFCLIENT_EXPORT SmfPlaylist
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfPlaylist( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfPlaylist( const SmfPlaylist &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 */
-	SmfPlaylist& operator=( const SmfPlaylist &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfPlaylist( );
-	
-	/**
-	 * Method to get the version of the playlist
-	 * @return The version of the playlist
-	 */
-	QString version( ) const;
-	
-	/**
-	 * Method to get the playlist title
-	 * @return The title of the playlist
-	 */
-	QString playListTitle( ) const;
-	
-	/**
-	 * Method to get the author of the playlist
-	 * @return The author of the playlist
-	 */
-	QString author( ) const;
-	
-	/**
-	 * Method to get the comments on the playlist
-	 * @return The comments on the playlist
-	 */
-	QList<SmfComment> comments( ) const;
-	
-	/**
-	 * Method to get the URI of a web page to find out more about this playlist
-	 * @return The info Url
-	 */
-	QUrl info( ) const;
-	
-	/**
-	 * Method to get the Source URI for this playlist
-	 * @return The Source URI for this playlist
-	 */
-	QUrl location( ) const;
-	
-	/**
-	 * Method to get the id of the playlist
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to get the URI of an image to display in the absence 
-	 * of an image for playlist's tracks
-	 * @return The deafult image Url
-	 */
-	QUrl image( ) const;
-	
-	/**
-	 * Method to get the creation date of the playlist
-	 * @return The date and time of creation of the playlist
-	 */
-	QDateTime creationDate( ) const;
-	
-	/**
-	 * Method to get the URI of a resource that describes the license 
-	 * under which this playlist was released
-	 * @return The license Url
-	 */
-	QUrl license( ) const;
-	
-	/**
-	 * Method to get the ordered list of URIs. The purpose is to satisfy 
-	 * licenses allowing modification but requiring attribution
-	 * @return The list of license Urls
-	 */
-	QList<QUrl> attribution( ) const;
-	
-	/**
-	 * Method to get the meta element that allows metadata fields to be added to XSPF
-	 * @return The meta elements as a QVarintMap
-	 */
-	QVariantMap metadata( ) const;
-	
-	/**
-	 * Method to get the extension element that allows non-XSPF XML 
-	 * to be included in XSPF documents
-	 * @return The extension elements as a QVarintMap
-	 */
-	QVariantMap extension( ) const;
-	
-	/**
-	 * Method to get the list of tracks in the playlist
-	 * @return The list of tracks in the playlist
-	 */
-	QList<SmfTrackInfo> trackList( ) const;
-	
-	/**
-	 * Method to set the version of the playlist
-	 * @param aVersion The version of the playlist
-	 */
-	void setVersion( const QString& aVersion );
-	
-	/**
-	 * Method to set the playlist title
-	 * @param aTitle The title of the playlist
-	 */
-	void setPlayListTitle( const QString &aTitle );
-	
-	/**
-	 * Method to set the author of the playlist
-	 * @param aAuthor The author of the playlist
-	 */
-	void setAuthor( const QString& aAuthor );
-	
-	/**
-	 * Method to set the comments on the playlist
-	 * @param aComments The comments on the playlist
-	 */
-	void setComments( const QList<SmfComment>& aComments );
-	
-	/**
-	 * Method to set the URI of a web page to find out more about this playlist
-	 * @param aInfoUrl The info Url
-	 */
-	void setInfo( const QUrl& aInfoUrl );
-	
-	/**
-	 * Method to set the Source URI for this playlist
-	 * @param aLocation The Source URI for this playlist
-	 */
-	void setLocation( const QUrl& aLocation );
-	
-	/**
-	 * Method to set the id of the playlist
-	 * @param aId The ID value 
-	 */
-	void setId( const QString &aId);
-	
-	/**
-	 * Method to set the URI of an image to display in the absence 
-	 * of an image for playlist's tracks
-	 * @param aImage The default image Url
-	 */
-	void setImage( const QUrl& aImage );
-	
-	/**
-	 * Method to set the creation date of the playlist
-	 * @param aDate The date and time of creation of the playlist
-	 */
-	void setCreationDate( const QDateTime& aDate );
-	
-	/**
-	 * Method to set the URI of a resource that describes the license 
-	 * under which this playlist was released
-	 * @param aLicense The license Url
-	 */
-	void setLicense( const QUrl& aLicense );
-	
-	/**
-	 * Method to set the ordered list of URIs. The purpose is to satisfy 
-	 * licenses allowing modification but requiring attribution
-	 * @param aAttribution The list of license Urls
-	 */
-	void setAttribution( const QList<QUrl>& aAttribution );
-	
-	/**
-	 * Method to set the meta element that allows metadata fields to be added to XSPF
-	 * @param aMetaData The meta elements as a QVarintMap
-	 */
-	void setMetadata( const QVariantMap& aMetaData );
-	
-	/**
-	 * Method to set the extension element that allows non-XSPF XML 
-	 * to be included in XSPF documents
-	 * @param aExtension The extension elements as a QVarintMap
-	 */
-	void setExtension( const QVariantMap& aExtension );
-	
-	/**
-	 * Method to set the list of tracks in the playlist
-	 * @param aList The new list of tracks in the playlist
-	 */
-	void setTrackList( const QList<SmfTrackInfo> &aList );
-	
-private:
-	QSharedDataPointer<SmfPlaylistPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfPlaylist &aPlaylist );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfPlaylist &aPlaylist );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfPlaylist object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aPlaylist The SmfPlaylist object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfPlaylist &aPlaylist );
-
-/**
- * Method for Internalization. Reads a SmfPlaylist object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aPlaylist The SmfPlaylist object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfPlaylist &aPlaylist);
-
-typedef QList<SmfPlaylist> SmfPlaylistList;
-
-// Make the class SmfPlaylist known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfPlaylist)
-Q_DECLARE_METATYPE(QList<SmfPlaylist>)
-
-#endif /* SMFPLAYLIST_H_ */
-
--- a/smf/smfservermodule/smfclient/common/smfplaylist_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfPlaylist class
- *
- */
-
-#ifndef SMFPLAYLIST_P_H_
-#define SMFPLAYLIST_P_H_
-
-#include <smftrackinfo.h>
-#include <QSharedData>
-
-class SmfPlaylistPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfPlaylistPrivate( ) { 
-		m_version.clear();
-		m_title.clear();
-		m_author.clear();
-		m_comments.clear();
-		m_info.clear();
-		m_location.clear();
-		m_playlistId.clear();
-		m_image.clear();
-		m_license.clear();
-		m_attribution.clear();
-		m_trackList.clear();
-	}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfPlaylistPrivate( const SmfPlaylistPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_version ( aOther.m_version ), 
-		m_title ( aOther.m_title ),
-		m_author ( aOther.m_author ),
-		m_comments ( aOther.m_comments ), 
-		m_info ( aOther.m_info ),
-		m_location ( aOther.m_location ),
-		m_playlistId ( aOther.m_playlistId ), 
-		m_image ( aOther.m_image ),
-		m_creationDate ( aOther.m_creationDate ),
-		m_license ( aOther.m_license ), 
-		m_attribution ( aOther.m_attribution ),
-		m_metadata ( aOther.m_metadata ),
-		m_extension ( aOther.m_extension ),
-		m_trackList ( aOther.m_trackList ) { }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfPlaylistPrivate( )
-		{
-		}
-  
-	/**
-	 * Data members
-	 */
-	QString m_version;				// playlist version
-	QString m_title;				// playlist title
-	QString m_author;				// playlist creator
-	QList<SmfComment> m_comments;	// comments about the playlist
-	QUrl m_info;					// URI of a web page to find out more about this playlist
-	QUrl m_location;				// The Source URI for this playlist
-	QString m_playlistId;			// The playlist ID
-	QUrl m_image;					// URI of an image to display in the absence of an 
-									// image for playlist's tracks
-	QDateTime m_creationDate;		// creation date of the playlist
-	QUrl m_license;					// URI of a resource that describes the license under 
-									// which this playlist was released
-	QList<QUrl> m_attribution;		// An ordered list of URIs. The purpose is to satisfy licenses 
-									// allowing modification but requiring attribution
-	QVariantMap m_metadata;			// The meta element allows metadata fields to be added to XSPF
-	QVariantMap m_extension; 		// The extension element allows non-XSPF XML 
-									// to be included in XSPF documents
-	QList<SmfTrackInfo> m_trackList;// list of tracks in the playlist
-	
-};
-
-#endif /* SMFPLAYLIST_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfpluginutil.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The Plugin util class provides the information required for the 
- * plugins from Smf framework 
- *
- */
-
-#include <smfpluginutil.h>
-
-// Static data initialisation
-SmfPluginUtil* SmfPluginUtil::m_myInstance = NULL;
-
-/**
- * Method to get the instance of SmfPluginUtil class
- * @return The instance of SmfPluginUtil class
- */
-SmfPluginUtil* SmfPluginUtil::getInstance ( )
-	{
-	if(NULL == m_myInstance)
-		m_myInstance = new SmfPluginUtil();
-	return m_myInstance;
-	}
-
-/**
- * Constructor with default argument
- */
-SmfPluginUtil::SmfPluginUtil ( )
-	{
-	m_jsonParser = new QJson::Parser;
-	}
-	
-/**
- * Destructor
- */
-SmfPluginUtil::~SmfPluginUtil ( )
-	{
-	if(m_jsonParser)
-		delete m_jsonParser;
-	
-	if(m_myInstance)
-		delete m_myInstance;
-	}
-	
-
-/**
-* Read JSON string from the I/O Device and converts it to a QVariant object
-* @param io Input output device
-* @param ok if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
-* @returns a QVariant object generated from the JSON string
-*/
-QVariant SmfPluginUtil::parse ( QIODevice* io, bool* ok )
-	{
-	return m_jsonParser->parse(io, ok);
-	}
-
-/**
-* This is a method provided for convenience.
-* @param jsonData data containing the JSON object representation
-* @param ok if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
-* @returns a QVariant object generated from the JSON string
-* @sa errorString
-* @sa errorLine
-*/
-QVariant SmfPluginUtil::parse ( const QByteArray& jsonData, bool* ok )
-	{
-	return m_jsonParser->parse(jsonData, ok);
-	}
-
-/**
-* This method returns the error message tha ocuured during last parsing
-* @returns a QString object containing the error message of the last parse operation
-*/
-QString SmfPluginUtil::errorString ( ) const
-	{
-	return m_jsonParser->errorString();
-	}
-
-/**
-* This method returns line number where the last QJson parsing error occurred
-* @returns the line number where the error occurred
- */
-int SmfPluginUtil::errorLine ( ) const
-	{
-	return m_jsonParser->errorLine();
-	}
-
-/**
- * Method called by plugins to get the OAuth Keys. The PM sends the 
- * keys only if the pluginID is that of a currently loaded plugin
- * @param aKeys [out] The OAuth keys
- * @param aRegToken The plugin's registration token
- * @param aPluginID The ID of the plugin that requests for 
- * the OAuth keys
- */
-void SmfPluginUtil::getAuthKeys( QMap<QString, QString> &aKeys, 
-		const QString aRegToken, 
-		const QString aPluginID )
-	{
-	Q_UNUSED(aKeys)
-	Q_UNUSED(aRegToken)
-	Q_UNUSED(aPluginID)
-	//// Call Credential manager function to get the keys passing the 
-	//// registration token and the plugin
-	}
-
-/**
- * Method called by plugins to get the Nonce value
- * @param aNonceString [out] The Nonce string
- */
-void SmfPluginUtil::getNonce( QString &aNonceString )
-	{
-	Q_UNUSED(aNonceString)
-	//// Call Credential manager function to get the nonce string
-	}
-
-/**
- * Method called by plugins to generate a parameters string required to 
- * access Protected Resources using OAuth authorization.
- * @param aRequestUrl The request URL
- * @param aOperation The type of http operation
- * @param aToken The access token
- * @param aTokenSecret The token secret
- * @param aSignatureMethod The signature method to be used
- * @param aParams A map of parameters to its values
- * @param aMode The mode of creation of the request
- * @return The cretd parameter string
- */
-QByteArray SmfPluginUtil::createParameterString( const QString &aRequestUrl, 
-		QNetworkAccessManager::Operation aOperation, 
-		const QByteArray &aToken, 
-		const QByteArray &aTokenSecret, 
-		const SmfSignatureMethod aSignatureMethod, 
-		const QMultiMap<QByteArray, QByteArray> &aParams, 
-		const SmfParsingMode aMode)
-	{
-	Q_UNUSED(aRequestUrl)
-	Q_UNUSED(aOperation)
-	Q_UNUSED(aToken)
-	Q_UNUSED(aTokenSecret)
-	Q_UNUSED(aSignatureMethod)
-	Q_UNUSED(aParams)
-	Q_UNUSED(aMode)
-	return QByteArray();
-	//// Call Credential manager function to create and sign the parameter string
-	}
-
--- a/smf/smfservermodule/smfclient/common/smfpluginutil.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The Plugin util class provides the information required for the 
- * plugins from Smf framework 
- *
- */
-
-#ifndef SMFPLUGINUTIL_H_
-#define SMFPLUGINUTIL_H_
-
-#include <QNetworkAccessManager>
-#include <QMap>
-#include <QVariant>
-#include <parser.h>
-#include <smfclientglobal.h>
-
-enum SmfSignatureMethod
-	{
-	HMAC_SHA1,
-	RSA_SHA1,
-	PLAINTEXT
-	};
-
-enum SmfParsingMode
-	{
-	ParseForRequestContent, //Inline query format (foo=bar&bar=baz&baz=foo ...), suitable for POST requests.
-	ParseForInlineQuery, // Same as ParseForRequestContent, but prepends the string with a question mark - 
-						// suitable for GET requests (appending parameters to the request URL) 
-	ParseForHeaderArguments // HTTP request header format (parameters to be put inside a request header). 
-	};
-
-/**
- * The Plugin util class provides the information required for the 
- * plugins from Smf framework
- */
-class SMFCLIENT_EXPORT SmfPluginUtil
-	{
-public:
-	/**
-	 * Method to get the instance of SmfPluginUtil class
-	 * @return The instance of SmfPluginUtil class
-	 */
-	static SmfPluginUtil* getInstance ( );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfPluginUtil ( );
-	
-	/**
-    * Read JSON string from the I/O Device and converts it to a QVariant object
-    * @param io Input output device
-    * @param ok if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
-    * @returns a QVariant object generated from the JSON string
-	 */
-    QVariant parse ( QIODevice* io, bool* ok = 0 );
-
-    /**
-    * This is a method provided for convenience.
-    * @param jsonData data containing the JSON object representation
-    * @param ok if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
-    * @returns a QVariant object generated from the JSON string
-    * @sa errorString
-    * @sa errorLine
-    */
-    QVariant parse ( const QByteArray& jsonData, bool* ok = 0 );
-    
-    /**
-    * This method returns the error message tha ocuured during last parsing
-    * @returns a QString object containing the error message of the last parse operation
-    */
-    QString errorString ( ) const;
-
-    /**
-    * This method returns line number where the last QJson parsing error occurred
-    * @returns the line number where the error occurred
-    */
-    int errorLine ( ) const;
-	
-	/**
-	 * Method called by plugins to get the OAuth Keys. The PM sends the 
-	 * keys only if the pluginID is that of a currently loaded plugin
-	 * @param aKeys [out] The OAuth keys
-	 * @param aRegToken The plugin's registration token
-	 * @param aPluginID The ID of the plugin that requests for 
-	 * the OAuth keys
-	 */
-	void getAuthKeys( QMap<QString, QString> &aKeys, 
-			const QString aRegToken, 
-			const QString aPluginID );
-	
-	/**
-	 * Method called by plugins to get the Nonce value
-	 * @param aNonceString [out] The Nonce string
-	 */
-	void getNonce( QString &aNonceString );
-	
-	/**
-	 * Method called by plugins to generate a parameters string required to 
-	 * access Protected Resources using OAuth authorization.
-	 * @param aRequestUrl The request URL
-	 * @param aOperation The type of http operation
-	 * @param aToken The access token
-	 * @param aTokenSecret The token secret
-	 * @param aSignatureMethod The signature method to be used
-	 * @param aParams A map of parameters to its values
-	 * @param aMode The mode of creation of the request
-	 * @return The cretd parameter string
-	 */
-	QByteArray createParameterString( const QString &aRequestUrl, 
-			QNetworkAccessManager::Operation aOperation, 
-			const QByteArray &aToken, 
-			const QByteArray &aTokenSecret, 
-			const SmfSignatureMethod aSignatureMethod, 
-			const QMultiMap<QByteArray, QByteArray> &aParams, 
-			const SmfParsingMode aMode);
-	
-private:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfPluginUtil ( );
-
-	
-private:
-	/**
-	 * The single instance of SmfPluginUtil
-	 */
-	static SmfPluginUtil* m_myInstance;
-	
-	/**
-	 * The instance of QJson::Parser
-	 */
-	QJson::Parser *m_jsonParser;
-	
-	};
-
-#endif /* SMFPLUGINUTIL_H_ */
--- a/smf/smfservermodule/smfclient/common/smfpost.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-/**
-* Copyright (c) 2010 Sasken Communication Technologies Ltd.
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the "Eclipse Public License v1.0" 
-* which accompanies  this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html"
-*
-* Initial Contributors:
-* Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
-*
-* Contributors:
-* Manasij Roy, Nalina Hariharan
-* 
-* Description:
-* The post class represents an instance of a post to a SN site
-*
-*/
-
-#include "smfpost.h"
-#include "smfpost_p.h"
-
-/**
- * Constructor with default argument
- * @param text Text
- */
-SmfPost::SmfPost( )
-	{
-	d = new SmfPostPrivate();
-	}
-
-/**
- * Constructor
- * @param aText The post's text
- * @param aImage The post's image
- * @param aUrl The post's url
- */
-SmfPost::SmfPost( SmfContact aOwner,QString aTitle, QString aDesc, QImage aImage, QUrl aUrl )
-	{
-	d = new SmfPostPrivate(aOwner,aTitle, aDesc, aImage, aUrl);
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfPost::SmfPost( const SmfPost &aOther )
-: d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfPost& SmfPost::operator=( const SmfPost &aOther )
-	{
-	d->m_title = aOther.d->m_title;
-	d->m_desc = aOther.d->m_desc;
-	d->m_image = aOther.d->m_image;
-	d->m_url = aOther.d->m_url;
-	d->m_postId = aOther.d->m_postId;
-	return *this;
-	}
-/**
- * Destructor
- */
-SmfPost::~SmfPost( )
-	{
-	}
-SmfContact SmfPost::owner() const
-	{
-	return d->m_owner;
-	}
-/**
- * Method to get the title of the post
- * @return The post's title
- */
-QString SmfPost::title( ) const
-	{
-	return d->m_title;
-	}
-
-/**
- * Method to get the description of the post
- * @return The post's description
- */
-QString SmfPost::description( ) const
-		{
-	return d->m_desc;
-		}
-
-/**
- * Method to get the image of the post
- * @return The post's image
- */
-QImage SmfPost::image( ) const
-		{
-	return d->m_image;
-		}
-
-/**
- * Method to get the url of the post
- * @return The post's url
- */
-QUrl SmfPost::url( ) const
-		{
-	return d->m_url;
-		}
-void SmfPost::setOwner(const SmfContact& aOwner)
-	{
-	d->m_owner = aOwner;
-	}
-/**
- * Method to get the id of the post
- * @return The ID value 
- */
-QString SmfPost::id( ) const
-		{
-	return d->m_postId;
-		}
-void SmfPost::setId(QString aPostId)
-	{
-	d->m_postId = aPostId;
-	}
-/**
- * Method to set the title of the post
- * @param aTitle The post's new title
- */
-void SmfPost::setTitle( const QString &aTitle )
-	{
-	d->m_title = aTitle;
-	}
-
-/**
- * Method to set the description of the post
- * @param aDesc The post's new description
- */
-void SmfPost::setDescription( const QString &aDesc )
-	{
-	d->m_desc = aDesc;
-	}
-
-/**
- * Method to set the image of the post
- * @param aPic The post's image
- */
-void SmfPost::setImage( const QImage& aPic )
-	{
-	d->m_image = aPic;
-	}
-
-/**
- * Method to set the url of the post
- * @param aUrl The post's url
- */
-void SmfPost::setUrl( QUrl& aUrl )
-	{
-	d->m_url = aUrl;
-	}
-
-
-
-/**
- * Method for Externalization. Writes the SmfPost object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aPost The SmfPost object to be externalized
- * @return reference to the written stream
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfPost &aPost )
-	{
-	aDataStream<<aPost.owner();
-	aDataStream<<aPost.title();
-	aDataStream<<aPost.description();
-	aDataStream<<aPost.image();
-	aDataStream<<aPost.url();
-	aDataStream<<aPost.id();
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfPost object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aPost The SmfPost object to be internalized
- * @return reference to the stream
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfPost &aPost)
-	{
-	SmfContact owner;
-	aDataStream>>owner;
-	aPost.setOwner(owner);
-	QString title;
-	aDataStream>>title;
-	aPost.setTitle(title);
-	
-	QString desc;
-	aDataStream>>desc;
-	aPost.setDescription(desc);
-
-	QImage img;
-	aDataStream>>img;
-	aPost.setImage(img);
-
-	QUrl url;
-	aDataStream>>url;
-	aPost.setUrl(url);
-
-	QString id;
-	aDataStream>>id;
-	aPost.setId(id);
-
-	return aDataStream;
-	}
--- a/smf/smfservermodule/smfclient/common/smfpost.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,190 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The post class represents an instance of a post to a SN site
- *
- */
-
-#ifndef SMFPOST_H_
-#define SMFPOST_H_
-
-#include <QImage>
-#include <QUrl>
-#include <qdatastream.h>
-#include <QMetaType>
-#include <QSharedData>
-#include <QTextDocument>
-#include <smfclientglobal.h>
-
-#include "smfpost_p.h"
-const int MaxSmfPostSize=1000;
-/**
- *  Presence info of the user
- */
-enum SmfAppearenceInfo
-	{
-	EAppearanceNotSupported,
-	EOnline,
-	EOffline,
-	EBusy,
-	EDoNotDisturb,
-	EAppearOffline,
-	EOther
-	};
-//To sort out conflict betwn client and PM, later should be removed
-typedef SmfAppearenceInfo SmfPresenceInfo;
-/**
- * @ingroup smf_common_group
- * The post class represents an instance of a post to a SN site
- */
-class SMFCLIENT_EXPORT SmfPost //: public QTextDocument
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 * @param text Text
-	 */
-	SmfPost( );
-	
-	/**
-	 * Constructor
-	 * @param aOwner Owner of the post(who posted this message) of type SmfContact
-	 * @param aText The post's text
-	 * @param aImage The post's image
-	 * @param aUrl The post's url
-	 */
-	SmfPost(SmfContact aOwner, QString aTitle, QString aDesc, QImage aImage, QUrl aUrl );
-
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfPost( const SmfPost &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 * @return The target reference value
-	 */
-	SmfPost& operator=( const SmfPost &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfPost( );
-	/**
-	 * Returns the owner(who posted this message)
-	 */
-	SmfContact owner() const;
-	/**
-	 * Method to get the title of the post
-	 * @return The post's title
-	 */
-	QString title( ) const;
-	
-	/**
-	 * Method to get the description of the post
-	 * @return The post's description
-	 */
-	QString description( ) const;
-	
-	/**
-	 * Method to get the image of the post
-	 * @return The post's image
-	 */
-	QImage image( ) const;
-	
-	/**
-	 * Method to get the url of the post
-	 * @return The post's url
-	 */
-	QUrl url( ) const;
-	
-	/**
-	 * Method to get the id of the post
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	/**
-	 * sets the owner of the post
-	 */
-	void setOwner(const SmfContact& aOwner);
-	/**
-	 * Method to set the title of the post
-	 * @param aTitle The post's new title
-	 */
-	void setTitle( const QString &aTitle );
-	
-	/**
-	 * Method to set the description of the post
-	 * @param aDesc The post's new description
-	 */
-	void setDescription( const QString &aDesc );
-	
-	/**
-	 * Method to set the image of the post
-	 * @param aPic The post's image
-	 */
-	void setImage( const QImage& aPic );
-	
-	/**
-	 * Method to set the url of the post
-	 * @param aUrl The post's url
-	 */
-	void setUrl( QUrl& aUrl );
-	/**
-	 * Method to get the id of the post
-	 */
-	void setId(QString aPostId);
-	
-private:
-	QSharedDataPointer<SmfPostPrivate> d;
-
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfPost &aPost );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfPost &aPost );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfPost object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aPost The SmfPost object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfPost &aPost );
-
-/**
- * Method for Internalization. Reads a SmfPost object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aPost The SmfPost object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfPost &aPost);
-
-typedef QList<SmfPost> SmfPostList;
-
-// Make the class SmfPost known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfPost)
-Q_DECLARE_METATYPE(SmfPostList)
-
-#endif /* SMFPOST_H_ */
--- a/smf/smfservermodule/smfclient/common/smfpost_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfPost class
- *
- */
-
-#ifndef SMFPOST_P_H_
-#define SMFPOST_P_H_
-
-#include <QSharedData>
-#include "smfcontact.h"
-class SmfPostPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfPostPrivate( ) { m_title.clear(); m_desc.clear(); m_url.clear(); m_postId.clear(); }
-	
-	/**
-	 * Constructor
-	 */
-	SmfPostPrivate(SmfContact aOwner, QString aTitle, QString aDesc, QImage aImage, QUrl aUrl ) 
-		{
-		m_owner = aOwner;
-		m_title = aTitle; 
-		m_desc = aDesc;
-		m_image = aImage;
-		m_url = aUrl;
-		m_postId.clear();
-		}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfPostPrivate( const SmfPostPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_title ( aOther.m_title ), 
-		m_desc ( aOther.m_desc ),
-		m_image ( aOther.m_image ),
-		m_url ( aOther.m_url ),
-		m_postId ( aOther.m_postId )	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfPostPrivate( )
-		{
-		}
-	SmfContact m_owner; //owner of the post(who posted this message)
-	QString m_title;	// title
-	QString m_desc;		// description
-	QImage m_image;		// image
-	QUrl m_url;			// url
-	QString m_postId;	// post's unique Id
-	
-};
-
-#endif /* SMFPOST_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfprovider.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Interface for a base service provider
- *
- */
-#include "smfprovider.h"
-
- SmfProvider::SmfProvider()
-  {
-  
-  }
- SmfProvider::~SmfProvider()
-  {
-  
-  }
-QString SmfProvider::serviceName() const
- {
-	return m_serviceName;
- }
-QImage SmfProvider::serviceIcon() const
- {
-	return m_serviceIcon;
- }
-QString SmfProvider::description() const
- {
-	 return m_description;
- }
-QUrl SmfProvider::serviceUrl() const
- {
-	 return m_serviceUrl;
- }
-QUrl SmfProvider::applicationUrl() const  
- {
-	  return m_appUrl;
- }
-QList<QString> SmfProvider::supportedInterfaces() const
- {
-	return m_serviceTypes;
- }
-/**
- * List of languages supported by this service provider
- * @return a QStringList of languages supported by this service 
- * provider in 2 letter ISO 639-1 format.
- */
-QStringList SmfProvider::supportedLanguages() const
-	{
-	return m_supportedLanguages;
-	}
-void SmfProvider::setServiceName(QString& name)
-	  {
-	  m_serviceName = name;
-	  }
-void SmfProvider::setServiceIcon(QImage& image)
-	  {
-	  m_serviceIcon = image;
-	  }
-void SmfProvider::setDescription(QString& desc)
-	  {
-	  m_description = desc;
-	  }
-void SmfProvider::setServiceUrl(QUrl& url)
-	  {
-	  m_serviceUrl = url;
-	  }
-void SmfProvider::setApplicationUrl(QUrl& url)
-	  {
-	  m_appUrl = url;
-	  }
-void SmfProvider::setSupportedInterfaces( QStringList& types)
-	 {
-	 m_serviceTypes = types;
-	 }
-/**
- * Sets the list of languages supported by this service provider
- * @param lang A QStringList of languages supported by this service 
- * provider in 2 letter ISO 639-1 format.
- */
-void SmfProvider::setSupportedLanguages( QStringList& lang )
-	{
-	m_supportedLanguages = lang;
-	}
-
-QDataStream &operator<<(QDataStream& out, const SmfProvider& base)
- 	{
-	out<<base.m_serviceName;
- 	out<<base.m_serviceIcon;
- 	out<<base.m_description;
- 	out<<base.m_serviceUrl;
- 	out<<base.m_appUrl;
- 	return out; 
- 	}
-QDataStream &operator>>(QDataStream& in, SmfProvider& base)
- 	{
- 	in>>base.m_serviceName;
- 	in>>base.m_serviceIcon;
- 	in>>base.m_description;
- 	in>>base.m_serviceUrl;
- 	in>>base.m_appUrl;
- 	return in; 
- 	}
--- a/smf/smfservermodule/smfclient/common/smfprovider.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Interface for a base service provider
- *
- */
-
-#ifndef SMFPROVIDER_H
-#define SMFPROVIDER_H
-
-#include <QObject>
-#include <QImage>
-#include <QUrl>
-#include <QStringList>
-#include <QMetaType>
-
-#include "smfclientglobal.h"
-/**
- * @ingroup smf_client_group 
- * Interface for a base service provider. Other service provider classes contains 
- * implementation of this base class so that each has access to service provider 
- * information.
- * All of the functionality described here should be implemented by a service
- * specific plug-in object.
- */
-class SMFCLIENT_EXPORT SmfProvider
-{
-
-public:
-	
-	/**
-	 * Constructor
-	 */
-	SmfProvider();
-	/**
-	 * Destructor
-	 */
-	~SmfProvider();
-
-public:
-  /**
-   * Localizable name of the service 
-   * @return service name
-   */
-  QString serviceName() const; 
-  
-  /**
-   * Logo of the service
-   * @return logo image of the service
-   */
-  QImage serviceIcon() const; 
-  
-  /**
-   * Readable service description
-   * @return service description
-   */
-  QString description() const; 
-  
-  /*
-   * Website of the service
-   */
-  QUrl serviceUrl() const;
-  
-  /**
-   * URL of the application providing this service
-   */
-  QUrl applicationUrl() const; //
-  
-  /**
-   * List of interfaces that this provider support
-   */
-  QList<QString> supportedInterfaces() const;
-  
-  /**
-   * List of languages supported by this service provider
-   * @return a QStringList of languages supported by this service 
-   * provider in 2 letter ISO 639-1 format.
-   */
-  QStringList supportedLanguages() const;
-  
-  /**
-   * Sets Localizable name of the service 
-   * 
-   */
-  void setServiceName(QString& name); 
-  
-  /**
-   * Sets Logo of the service
-   * 
-   */
-  void setServiceIcon(QImage& image) ; 
-  
-  /**
-   * Sets Readable service description
-   * 
-   */
-  void setDescription(QString& desc) ; 
-  
-  /*
-   * Sets Website of the service
-   */
-  void setServiceUrl(QUrl& url) ;
-  
-  /**
-   * Sets URL of the application providing this service
-   */
-  void setApplicationUrl(QUrl& url) ; 
-  
-  /**
-   * Sets list of interfaces that this provider supports
-   */
- void setSupportedInterfaces( QStringList& types);
- 
- /**
-  * Sets the list of languages supported by this service provider
-  * @param lang A QStringList of languages supported by this service 
-  * provider in 2 letter ISO 639-1 format.
-  */
- void setSupportedLanguages( QStringList& lang );
- 
-private:
-  QString m_serviceName;
-  QImage m_serviceIcon;
-  QString m_description;
-  QUrl m_serviceUrl;
-  QUrl m_appUrl;
-  QStringList m_serviceTypes;
-  QStringList m_supportedLanguages;
-  friend QDataStream &operator<<(QDataStream &, const SmfProvider&);
-  friend QDataStream &operator>>(QDataStream &, SmfProvider&);
-};
-/**
-* Externalization
-*/
-SMFCLIENT_EXPORT QDataStream &operator<<(QDataStream &, const SmfProvider&);
-/**
- * Internalization
- */
-SMFCLIENT_EXPORT QDataStream &operator>>(QDataStream &, SmfProvider&);
-
-typedef QList<SmfProvider> SmfProviderList;
-
-// Make the class SmfProvider known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfProvider)
-Q_DECLARE_METATYPE(QList<SmfProvider>)
-
-#endif // SMFPROVIDER_H
--- a/smf/smfservermodule/smfclient/common/smfsubtitle.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,233 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The subtitle class represents information about a track's subtitle
- *
- */
-
-#include <smfsubtitle.h>
-#include <smfsubtitle_p.h>
-
-/**
- * Constructor with default argument
- */
-SmfSubtitle::SmfSubtitle( )
-	{
-	d = new SmfSubtitlePrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfSubtitle::SmfSubtitle( const SmfSubtitle &aOther )
-	:d(aOther.d)
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfSubtitle& SmfSubtitle::operator=( const SmfSubtitle &aOther )
-	{
-	d->m_subtitle = aOther.d->m_subtitle;
-	d->m_language = aOther.d->m_language;
-	d->m_frameRate = aOther.d->m_frameRate;
-	d->m_duration = aOther.d->m_duration;
-	d->m_releaseYr = aOther.d->m_releaseYr;
-	d->m_subtitleId = aOther.d->m_subtitleId;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfSubtitle::~SmfSubtitle( )
-	{
-	}
-
-/**
- * Method to get the subtitle as a bytearray
- * @return The subtitle content
- */
-QByteArray SmfSubtitle::subtitle( ) const
-	{
-	return d->m_subtitle;
-	}
-
-/**
- * Method to get the language
- * @return The language
- */
-QString SmfSubtitle::language( ) const
-	{
-	return d->m_language;
-	}
-
-/**
- * Method to get the frame rate
- * @return the frame rate
- */
-double SmfSubtitle::frameRate( ) const
-	{
-	return d->m_frameRate;
-	}
-
-/**
- * Method to get the duration
- * @return the duration
- */
-double SmfSubtitle::duration( ) const
-	{
-	return d->m_duration;
-	}
-
-/**
- * Method to get the release year
- * @return The release year
- */
-QDateTime SmfSubtitle::releaseYear( ) const
-	{
-	return d->m_releaseYr;
-	}
-
-/**
- * Method to get the id of the subtitle
- * @return The ID value 
- */
-QString SmfSubtitle::id( ) const
-	{
-	return d->m_subtitleId;
-	}
-
-/**
- * Method to set the subtitle as a bytearray
- * @param aSubtitle The subtitle content
- */
-void SmfSubtitle::setSubtitle( const QByteArray &aSubtitle )
-	{
-	d->m_subtitle = aSubtitle;
-	}
-
-/**
- * Method to set the language
- * @param aLang The language
- */
-void SmfSubtitle::setLanguage( const QString &aLang )
-	{
-	d->m_language = aLang;
-	}
-
-/**
- * Method to set the frame rate
- * @param aFramerate the frame rate
- */
-void SmfSubtitle::setFrameRate( const double &aFramerate )
-	{
-	d->m_frameRate = aFramerate;
-	}
-
-/**
- * Method to set the duration
- * @param aDuration the duration
- */
-void SmfSubtitle::setDuration( const double &aDuration )
-	{
-	d->m_duration = aDuration;
-	}
-
-/**
- * Method to set the release year
- * @param aRelYear The release year
- */
-void SmfSubtitle::setReleaseYear( const QDateTime &aRelYear )
-	{
-	d->m_releaseYr = aRelYear;
-	}
-
-/**
- * Method to set the id of the subtitle
- * @param aId The ID value 
- */
-void SmfSubtitle::setId( const QString &aId )
-	{
-	d->m_subtitleId = aId;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfSubtitle object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aSubtitle The SmfSubtitle object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfSubtitle &aSubtitle )
-	{
-	// Serialize m_subtitle
-	aDataStream<<aSubtitle.d->m_subtitle;
-	
-	// Serialize m_language
-	aDataStream<<aSubtitle.d->m_language;
-	
-	// Serialize m_frameRate
-	aDataStream<<aSubtitle.d->m_frameRate;
-	
-	// Serialize m_duration
-	aDataStream<<aSubtitle.d->m_duration;
-	
-	// Serialize m_releaseYr
-	aDataStream<<aSubtitle.d->m_releaseYr;
-	
-	// Serialize m_subtitleId
-	aDataStream<<aSubtitle.d->m_subtitleId;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfSubtitle object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aSubtitle The SmfSubtitle object to be internalized
- * @return reference to the stream
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfSubtitle &aSubtitle)
-	{
-	// Deserialize m_subtitle
-	aDataStream>>aSubtitle.d->m_subtitle;
-	
-	// Deserialize m_language
-	aDataStream>>aSubtitle.d->m_language;
-	
-	// Deserialize m_frameRate
-	aDataStream>>aSubtitle.d->m_frameRate;
-	
-	// Deserialize m_duration
-	aDataStream>>aSubtitle.d->m_duration;
-	
-	// Deserialize m_releaseYr
-	aDataStream>>aSubtitle.d->m_releaseYr;
-	
-	// Deserialize m_subtitleId
-	aDataStream>>aSubtitle.d->m_subtitleId;
-	
-	return aDataStream;
-	}
-
--- a/smf/smfservermodule/smfclient/common/smfsubtitle.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,181 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The subtitle class represents information about a track's subtitle
- *
- */
-
-#ifndef SMFSUBTITLE_H_
-#define SMFSUBTITLE_H_
-
-#include <qdatastream.h>
-#include <QDateTime>
-#include <QSharedData>
-#include "smfclientglobal.h"
-#include <QMetaType>
-
-enum SmfSubtitleSearchFilter
-	{
-	SubtitleLanguage = 0,
-	SubtitleFrameRate,		// value = 1
-	SubtitleDuration,		// value = 2
-	SubtitleReleaseYear,	// value = 3
-	SubtitleAll = SubtitleLanguage | SubtitleFrameRate | 
-			SubtitleDuration | SubtitleReleaseYear
-	};
-
-class SmfSubtitlePrivate;
-
-/**
- * @ingroup smf_common_group
- * The subtitle class represents information about a track's subtitle
- */
-class SMFCLIENT_EXPORT SmfSubtitle
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfSubtitle( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfSubtitle( const SmfSubtitle &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 */
-	SmfSubtitle& operator=( const SmfSubtitle &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfSubtitle( );
-	
-	/**
-	 * Method to get the subtitle as a bytearray
-	 * @return The subtitle content
-	 */
-	QByteArray subtitle( ) const;
-	
-	/**
-	 * Method to get the language
-	 * @return The language
-	 */
-	QString language( ) const;
-	
-	/**
-	 * Method to get the frame rate
-	 * @return the frame rate
-	 */
-	double frameRate( ) const;
-	
-	/**
-	 * Method to get the duration
-	 * @return the duration
-	 */
-	double duration( ) const;
-	
-	/**
-	 * Method to get the release year
-	 * @return The release year
-	 */
-	QDateTime releaseYear( ) const;
-	
-	/**
-	 * Method to get the id of the subtitle
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to set the subtitle as a bytearray
-	 * @param aSubtitle The subtitle content
-	 */
-	void setSubtitle( const QByteArray &aSubtitle );
-	
-	/**
-	 * Method to set the language
-	 * @param aLang The language
-	 */
-	void setLanguage( const QString &aLang );
-	
-	/**
-	 * Method to set the frame rate
-	 * @param aFramerate the frame rate
-	 */
-	void setFrameRate( const double &aFramerate );
-	
-	/**
-	 * Method to set the duration
-	 * @param aDuration the duration
-	 */
-	void setDuration( const double &aDuration );
-	
-	/**
-	 * Method to set the release year
-	 * @param aRelYear The release year
-	 */
-	void setReleaseYear( const QDateTime &aRelYear );
-	
-	/**
-	 * Method to set the id of the subtitle
-	 * @param aId The ID value 
-	 */
-	void setId( const QString &aId );
-	
-private:
-	QSharedDataPointer<SmfSubtitlePrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfSubtitle &aSubtitle );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfSubtitle &aSubtitle );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfSubtitle object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aSubtitle The SmfSubtitle object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT  QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfSubtitle &aSubtitle );
-
-/**
- * Method for Internalization. Reads a SmfSubtitle object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aSubtitle The SmfSubtitle object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfSubtitle &aSubtitle);
-
-
-typedef QList<SmfSubtitle> SmfSubtitleList;
-
-// Make the class SmfSubtitle known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfSubtitle)
-Q_DECLARE_METATYPE(QList<SmfSubtitle>)
-
-#endif /* SMFSUBTITLE_H_ */
--- a/smf/smfservermodule/smfclient/common/smfsubtitle_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfSubtitle class
- *
- */
-
-#ifndef SMFSUBTITLE_P_H_
-#define SMFSUBTITLE_P_H_
-
-#include <QDateTime>
-#include <QSharedData>
-
-class SmfSubtitlePrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfSubtitlePrivate( ) { 
-		m_language.clear();
-		m_frameRate = 0;
-		m_duration = 0;
-		m_subtitleId.clear();
-	}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfSubtitlePrivate( const SmfSubtitlePrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_subtitle ( aOther.m_subtitle ), 
-		m_language ( aOther.m_language ),
-		m_frameRate ( aOther.m_frameRate ),
-		m_duration ( aOther.m_duration ),
-		m_releaseYr ( aOther.m_releaseYr ),
-		m_subtitleId ( aOther.m_subtitleId ) 	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfSubtitlePrivate( )
-		{
-		}
-  
-	QByteArray m_subtitle;	// subtitle data
-	QString m_language;		// language
-	double m_frameRate;		// frame rate
-	double m_duration;		// duration
-	QDateTime m_releaseYr;	// release year
-	QString m_subtitleId;	// subtitle id
-	
-};
-
-#endif /* SMFSUBTITLE_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smftrackinfo.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,333 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The track info class represents information about a music track
- *
- */
-
-#include <smftrackinfo.h>
-#include <smftrackinfo_p.h>
-
-/**
- * Constructor with default argument
- */
-SmfTrackInfo::SmfTrackInfo( )
-	{
-	d = new SmfTrackInfoPrivate( );
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfTrackInfo::SmfTrackInfo( const SmfTrackInfo &aOther )
-	: d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfTrackInfo& SmfTrackInfo::operator=( const SmfTrackInfo &aOther )
-	{
-	d->m_trackId = aOther.d->m_trackId;
-	d->m_title = aOther.d->m_title;
-	d->m_album = aOther.d->m_album;
-	d->m_artists = aOther.d->m_artists;
-	d->m_genre = aOther.d->m_genre;
-	d->m_tags = aOther.d->m_tags;
-	d->m_year = aOther.d->m_year;
-	d->m_rating = aOther.d->m_rating;
-	d->m_comments = aOther.d->m_comments;
-	d->m_duration = aOther.d->m_duration;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfTrackInfo::~SmfTrackInfo( )
-	{
-	}
-
-/**
- * Method to get the track title
- * @return The title of the track
- */
-QString SmfTrackInfo::title( ) const
-	{
-	return d->m_title;
-	}
-
-/**
- * Method to get the track album
- * @return The album of the track
- */
-SmfAlbum SmfTrackInfo::album( ) const
-	{
-	return d->m_album;
-	}
-
-/**
- * Method to get the track's artists
- * @return The artists of the track
- */
-SmfArtists SmfTrackInfo::artists( ) const
-	{
-	return d->m_artists;
-	}		
-
-/**
- * Method to get the genre of the track
- * @return The genre of the track
- */
-QString SmfTrackInfo::genre( ) const
-	{
-	return d->m_genre;
-	}
-
-/**
- * Method to get the track's tag
- * @return The tag of the track
- */
-QStringList SmfTrackInfo::tags( ) const
-	{
-	return d->m_tags;
-	}
-
-/**
- * Method to get the release year of the track
- * @return The release year of the track
- */
-QDateTime SmfTrackInfo::year( ) const
-	{
-	return d->m_year;
-	}
-
-/**
- * Method to get the track's rating
- * @return The rating of the track
- */
-SmfMusicRating SmfTrackInfo::rating( ) const
-	{
-	return d->m_rating;
-	}
-
-/**
- * Method to get the comments on the track
- * @return The comments on the track
- */
-QList<SmfComment> SmfTrackInfo::comments( ) const
-	{
-	return d->m_comments;
-	}
-
-/**
- * Method to get the track's duration
- * @return The duration of the track
- */
-QTime SmfTrackInfo::duration( ) const
-	{
-	return d->m_duration;
-	}
-
-/**
- * Method to get the id of the track
- * @return The ID value 
- */
-QString SmfTrackInfo::id( ) const
-	{
-	return d->m_trackId;
-	}
-
-/**
- * Method to set the track title
- * @param aTitle The new title of the track
- */
-void SmfTrackInfo::setTitle( const QString &aTitle )
-	{
-	d->m_title = aTitle;
-	}
-
-/**
- * Method to set the track album
- * @param aAlbum The new album of the track
- */
-void SmfTrackInfo::setAlbum( const SmfAlbum &aAlbum )
-	{
-	d->m_album = aAlbum;
-	}
-
-/**
- * Method to set the track's artists
- * @param aArtists The new artists of the track
- */
-void SmfTrackInfo::setArtists( const SmfArtists &aArtists )
-	{
-	d->m_artists = aArtists;
-	}
-
-/**
- * Method to set the genre of the track
- * @param aGenre The new genre of the track
- */
-void SmfTrackInfo::setGenre( const QString &aGenre )
-	{
-	d->m_genre = aGenre;
-	}
-
-/**
- * Method to set the track's tag
- * @param aTag The tag of the track
- */
-void SmfTrackInfo::setTags( const QStringList &aTags )
-	{
-	d->m_tags = aTags;
-	}
-
-/**
- * Method to set the release year of the track
- * @param aYear The new release year of the track
- */
-void SmfTrackInfo::setYear( const QDateTime &aYear )
-	{
-	d->m_year = aYear;
-	}
-
-/**
- * Method to set the track's rating
- * @param aRating The new rating of the track
- */
-void SmfTrackInfo::setRating( const SmfMusicRating &aRating )
-	{
-	d->m_rating = aRating;
-	}
-
-/**
- * Method to set the comments on the track
- * @param aComment The new comment of the track
- */
-void SmfTrackInfo::setComment( const QList<SmfComment> &aComments )
-	{
-	d->m_comments = aComments;
-	}
-
-/**
- * Method to set the duration of the track
- * @param aDuration The new duration of the track
- */
-void SmfTrackInfo::setDuration( const QTime &aDuration )
-	{
-	d->m_duration = aDuration;
-	}
-
-/**
- * Method to set the id of the track
- * @param aId The ID value 
- */
-void SmfTrackInfo::setId( const QString &aId )
-	{
-	d->m_trackId = aId;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfTrackInfo object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aTrackInfo The SmfTrackInfo object to be externalized
- * @return reference to the written stream
- */
-QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfTrackInfo &aTrackInfo )
-	{
-	// Serialize d->m_trackId
-	aDataStream<<aTrackInfo.d->m_trackId;
-	
-	// Serialize d->m_title
-	aDataStream<<aTrackInfo.d->m_title;
-	
-	// Serialize d->m_album
-	aDataStream<<aTrackInfo.d->m_album;
-	
-	// Serialize d->m_artists
-	aDataStream<<aTrackInfo.d->m_artists;
-	
-	// Serialize d->m_genre
-	aDataStream<<aTrackInfo.d->m_genre;
-	
-	// Serialize d->m_tags
-	aDataStream<<aTrackInfo.d->m_tags;
-	
-	// Serialize d->m_year
-	aDataStream<<aTrackInfo.d->m_year;
-	
-	// Serialize d->m_rating
-	aDataStream<<aTrackInfo.d->m_rating;
-	
-	// Serialize d->m_comments
-	aDataStream<<aTrackInfo.d->m_comments;
-	
-	// Serialize d->m_duration
-	aDataStream<<aTrackInfo.d->m_duration;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfTrackInfo object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aTrackInfo The SmfTrackInfo object to be internalized
- * @return reference to the stream
- */
- QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfTrackInfo &aTrackInfo)
-	{
-	// Deserialize d->m_trackId
-	aDataStream>>aTrackInfo.d->m_trackId;
-	
-	// Deserialize d->m_title
-	aDataStream>>aTrackInfo.d->m_title;
-	
-	// Deserialize d->m_album
-	aDataStream>>aTrackInfo.d->m_album;
-	
-	// Deserialize d->m_artists
-	aDataStream>>aTrackInfo.d->m_artists;
-	
-	// Deserialize d->m_genre
-	aDataStream>>aTrackInfo.d->m_genre;
-	
-	// Deserialize d->m_tags
-	aDataStream>>aTrackInfo.d->m_tags;
-	
-	// Deserialize d->m_year
-	aDataStream>>aTrackInfo.d->m_year;
-	
-	// Deserialize d->m_rating
-	aDataStream>>aTrackInfo.d->m_rating;
-	
-	// Deserialize d->m_comments
-	aDataStream>>aTrackInfo.d->m_comments;
-	
-	// Deserialize d->m_duration
-	aDataStream>>aTrackInfo.d->m_duration;
-	
-	return aDataStream;
-	}
-
--- a/smf/smfservermodule/smfclient/common/smftrackinfo.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The track info class represents information about a music track
- *
- */
-
-#ifndef SMFTRACKINFO_H_
-#define SMFTRACKINFO_H_
-
-#include <QTime>
-#include <qdatastream.h>
-#include <smfmusicrating.h>
-#include <smfartists.h>
-#include "smfalbum.h"
-#include <smfcomment.h>
-#include <QStringList>
-#include <QSharedData>
-#include <smfclientglobal.h>
-#include <QMetaType>
-
-class SmfTrackInfoPrivate;
-
-/**
- * @ingroup smf_common_group
- * The track info class represents information about a music track
- */
-class SMFCLIENT_EXPORT SmfTrackInfo
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfTrackInfo( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfTrackInfo( const SmfTrackInfo &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 */
-	SmfTrackInfo& operator=( const SmfTrackInfo &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfTrackInfo( );
-	
-	/**
-	 * Method to get the track title
-	 * @return The title of the track
-	 */
-	QString title( ) const;
-	
-	/**
-	 * Method to get the track album
-	 * @return The album of the track
-	 */
-	SmfAlbum album( ) const;
-	
-	/**
-	 * Method to get the track's artists
-	 * @return The artists of the track
-	 */
-	SmfArtists artists( ) const;
-	
-	/**
-	 * Method to get the genre of the track
-	 * @return The genre of the track
-	 */
-	QString genre( ) const;
-	
-	/**
-	 * Method to get the track's tag
-	 * @return The tag of the track
-	 */
-	QStringList tags( ) const;
-	
-	/**
-	 * Method to get the release year of the track
-	 * @return The release year of the track
-	 */
-	QDateTime year( ) const;
-	
-	/**
-	 * Method to get the track's rating
-	 * @return The rating of the track
-	 */
-	SmfMusicRating rating( ) const;
-	
-	/**
-	 * Method to get the comments on the track
-	 * @return The comments on the track
-	 */
-	QList<SmfComment> comments( ) const;
-	
-	/**
-	 * Method to get the track's duration
-	 * @return The duration of the track
-	 */
-	QTime duration( ) const;
-	
-	/**
-	 * Method to get the id of the track
-	 * @return The ID value 
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to set the track title
-	 * @param aTitle The new title of the track
-	 */
-	void setTitle( const QString &aTitle );
-	
-	/**
-	 * Method to set the track album
-	 * @param aAlbum The new album of the track
-	 */
-	void setAlbum( const SmfAlbum &aAlbum );
-	
-	/**
-	 * Method to set the track's artists
-	 * @param aArtists The new artists of the track
-	 */
-	void setArtists( const SmfArtists &aArtists );
-	
-	/**
-	 * Method to set the genre of the track
-	 * @param aGenre The new genre of the track
-	 */
-	void setGenre( const QString &aGenre );
-	
-	/**
-	 * Method to set the track's tag
-	 * @param aTag The tag of the track
-	 */
-	void setTags( const QStringList &aTags );
-	
-	/**
-	 * Method to set the release year of the track
-	 * @param aYear The new release year of the track
-	 */
-	void setYear( const QDateTime &aYear );
-	
-	/**
-	 * Method to set the track's rating
-	 * @param aRating The new rating of the track
-	 */
-	void setRating( const SmfMusicRating &aRating );
-	
-	/**
-	 * Method to set the comments on the track
-	 * @param aComment The new comment of the track
-	 */
-	void setComment( const QList<SmfComment> &aComments );
-	
-	/**
-	 * Method to set the duration of the track
-	 * @param aDuration The new duration of the track
-	 */
-	void setDuration( const QTime &aDuration );
-	
-	/**
-	 * Method to set the id of the track
-	 * @param aId The ID value 
-	 */
-	void setId( const QString &aId );
-
-private:
-	QSharedDataPointer<SmfTrackInfoPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfTrackInfo &aTrackInfo );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfTrackInfo &aTrackInfo );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfTrackInfo object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aTrackInfo The SmfTrackInfo object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfTrackInfo &aTrackInfo );
-
-/**
- * Method for Internalization. Reads a SmfTrackInfo object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aTrackInfo The SmfTrackInfo object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfTrackInfo &aTrackInfo);
-
-
-typedef QList<SmfTrackInfo> SmfTrackInfoList;
-
-// Make the class SmfTrackInfo known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfTrackInfo)
-Q_DECLARE_METATYPE(QList<SmfTrackInfo>)
-
-#endif /* SMFTRACKINFO_H_ */
--- a/smf/smfservermodule/smfclient/common/smftrackinfo_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfTrackInfo class
- *
- */
-
-#ifndef SMFTRACKINFO_P_H_
-#define SMFTRACKINFO_P_H_
-
-#include <QTime>
-#include <smfmusicrating.h>
-#include <smfcomment.h>
-#include <QStringList>
-#include <QSharedData>
-
-class SmfTrackInfoPrivate : public QSharedData
-{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfTrackInfoPrivate( ) : m_rating( ) 
-		{ 
-		m_trackId.clear();
-		m_title.clear();
-		m_genre.clear();
-		m_tags.clear();
-		m_comments.clear();
-	}
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfTrackInfoPrivate( const SmfTrackInfoPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_trackId ( aOther.m_trackId ),
-		m_title ( aOther.m_title ),
-		m_album ( aOther.m_album ),
-		m_artists ( aOther.m_artists ),
-		m_genre ( aOther.m_genre ),
-		m_tags ( aOther.m_tags ),
-		m_year ( aOther.m_year ),
-		m_rating ( aOther.m_rating ),
-		m_comments ( aOther.m_comments ),
-		m_duration ( aOther.m_duration ) 	{ }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfTrackInfoPrivate( )
-		{
-		}
-  
-	QString m_trackId;		// track id
-	QString m_title;		// title
-	SmfAlbum m_album;		// album 
-	SmfArtists m_artists;	// artist name
-	QString m_genre;		// genre information
-	QStringList m_tags;		// tag information
-	QDateTime m_year;		// release year
-	SmfMusicRating m_rating;// rating
-	QList<SmfComment> m_comments;	// comments
-	QTime m_duration;		// duration
-	
-};
-
-#endif /* SMFTRACKINFO_P_H_ */
--- a/smf/smfservermodule/smfclient/common/smfurl.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfUrl class represents an URL. This class has been constructed based on 
- * the link element of the The Atom Syndication Format 
- * (refer http://tools.ietf.org/html/rfc4287)
- * For detailed description about atom link relations, refer 
- * "http://www.iana.org/assignments/link-relations/link-relations.xhtml"
- *
- */
-
-#include <QUrl>
-
-#include "smfurl.h"
-#include "smfurl_p.h"
-
-/**
- * Constructor with default argument
- */
-SmfUrl::SmfUrl( )
-	{
-	d = new SmfUrlPrivate;
-	}
-
-/**
- * Copy Constructor
- * @param aOther The reference object
- */
-SmfUrl::SmfUrl( const SmfUrl &aOther )
-	: d( aOther.d )
-	{
-	}
-
-/**
- * Overloaded = operator
- * @param aOther The reference object
- * @return The target reference value
- */
-SmfUrl& SmfUrl::operator=( const SmfUrl &aOther )
-	{
-	d->m_id = aOther.d->m_id;
-	return *this;
-	}
-
-/**
- * Destructor
- */
-SmfUrl::~SmfUrl( )
-	{
-	}
-
-
-/**
- * Method to get the href attribute of the link
- * @return The href attribute of the link
- */
-QUrl SmfUrl::href( ) const
-	{
-	return d->m_href;
-	}
-
-/**
- * Method to get the rel attribute of the link
- * @return The rel attribute of the link
- */
-QString SmfUrl::rel( ) const
-	{
-	return d->m_rel;
-	}
-
-/**
- * Method to get the type attribute of the link
- * @return The type attribute of the link
- */
-QString SmfUrl::type( ) const
-	{
-	return d->m_type;
-	}
-
-/**
- * Method to get the hreflang attribute of the link
- * @return The hreflang attribute of the link
- */
-QString SmfUrl::hreflang( ) const
-	{
-	return d->m_hreflang;
-	}
-
-/**
- * Method to get the title attribute of the link
- * @return The title attribute of the link
- */
-QString SmfUrl::title( ) const
-	{
-	return d->m_title;
-	}
-
-/**
- * Method to get the length attribute of the link
- * @return The length attribute of the link
- */
-QString SmfUrl::length( ) const
-	{
-	return d->m_length;
-	}
-
-/**
- * Method to get the id of the URL
- * @return The ID of the URL
- */
-QString SmfUrl::id( ) const
-	{
-	return d->m_id;
-	}
-
-/**
- * Method to set the href attribute of the link
- * @param aData The href attribute of the link
- */
-void SmfUrl::setHref( const QUrl& aData )
-	{
-	d->m_href = aData;
-	}
-
-/**
- * Method to set the rel attribute of the link
- * @param aData The rel attribute of the link
- */
-void SmfUrl::setRel( const QString &aData )
-	{
-	d->m_rel = aData;
-	}
-
-/**
- * Method to set the type attribute of the link
- * @param aData The type attribute of the link
- */
-void SmfUrl::setType( const QString &aData )
-	{
-	d->m_type = aData;
-	}
-
-/**
- * Method to set the hreflang attribute of the link
- * @param aData The hreflang attribute of the link
- */
-void SmfUrl::setHhreflang( const QString &aData )
-	{
-	d->m_hreflang = aData;
-	}
-
-/**
- * Method to set the title attribute of the link
- * @param aData The title attribute of the link
- */
-void SmfUrl::setTitle( const QString &aData )
-	{
-	d->m_title = aData;
-	}
-
-/**
- * Method to set the length attribute of the link
- * @param aData The length attribute of the link
- */
-void SmfUrl::setLength( const QString &aData )
-	{
-	d->m_length = aData;
-	}
-
-/**
- * Method to set the id of the URL
- * @param aId The ID of the URL
- */
-void SmfUrl::setId( const QString &aId )
-	{
-	d->m_id = aId;
-	}
-
-
-/**
- * Method for Externalization. Writes the SmfUrl object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aUrl The SmfUrl object to be externalized
- * @return reference to the written stream
- */
- QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfUrl &aUrl )
-	{
-	// Serialize d->m_href
-	aDataStream<<aUrl.d->m_href;
-	
-	// Serialize d->m_rel
-	aDataStream<<aUrl.d->m_rel;
-	
-	// Serialize d->m_type
-	aDataStream<<aUrl.d->m_type;
-	
-	// Serialize d->m_hreflang
-	aDataStream<<aUrl.d->m_hreflang;
-	
-	// Serialize d->m_title
-	aDataStream<<aUrl.d->m_title;
-	
-	// Serialize d->m_length
-	aDataStream<<aUrl.d->m_length;
-	
-	// Serialize d->m_id
-	aDataStream<<aUrl.d->m_id;
-	
-	return aDataStream;
-	}
-
-/**
- * Method for Internalization. Reads a SmfUrl object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aUrl The SmfUrl object to be internalized
- * @return reference to the stream
- */
-QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfUrl &aUrl)
-	{
-	// Deserialize d->m_href
-	aDataStream>>aUrl.d->m_href;
-	
-	// Deserialize d->m_rel
-	aDataStream>>aUrl.d->m_rel;
-	
-	// Deserialize d->m_type
-	aDataStream>>aUrl.d->m_type;
-	
-	// Deserialize d->m_hreflang
-	aDataStream>>aUrl.d->m_hreflang;
-	
-	// Deserialize d->m_title
-	aDataStream>>aUrl.d->m_title;
-	
-	// Deserialize d->m_length
-	aDataStream>>aUrl.d->m_length;
-	
-	// Deserialize d->m_id
-	aDataStream>>aUrl.d->m_id;
-	
-	return aDataStream;
-	}
-
--- a/smf/smfservermodule/smfclient/common/smfurl.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,190 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * The SmfUrl class represents an URL. This class has been constructed based on 
- * the link element of the The Atom Syndication Format 
- * (refer http://tools.ietf.org/html/rfc4287).
- * For detailed description about atom link relations, refer 
- * "http://www.iana.org/assignments/link-relations/link-relations.xhtml"
- *
- */
-
-#ifndef SMFURL_H_
-#define SMFURL_H_
-
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-#include <QMetaType>
-
-class SmfUrlPrivate;
-
-/**
- * @ingroup smf_common_group
- * The SmfUrl class represents an URL. This class has been constructed based on 
- * the link element of the The Atom Syndication Format 
- * (refer http://tools.ietf.org/html/rfc4287)
- * For detailed description about atom link relations, refer 
- * "http://www.iana.org/assignments/link-relations/link-relations.xhtml"
- */
-class SMFCLIENT_EXPORT SmfUrl
-	{
-public:
-	/**
-	 * Constructor with default argument
-	 */
-	SmfUrl( );
-	
-	/**
-	 * Copy Constructor
-	 * @param aOther The reference object
-	 */
-	SmfUrl( const SmfUrl &aOther );
-	
-	/**
-	 * Overloaded = operator
-	 * @param aOther The reference object
-	 */
-	SmfUrl& operator=( const SmfUrl &aOther );
-	
-	/**
-	 * Destructor
-	 */
-	~SmfUrl( );
-	
-	/**
-	 * Method to get the href attribute of the link
-	 * @return The href attribute of the link
-	 */
-	QUrl href( ) const;
-	
-	/**
-	 * Method to get the rel attribute of the link
-	 * @return The rel attribute of the link
-	 */
-	QString rel( ) const;
-	
-	/**
-	 * Method to get the type attribute of the link
-	 * @return The type attribute of the link
-	 */
-	QString type( ) const;
-	
-	/**
-	 * Method to get the hreflang attribute of the link
-	 * @return The hreflang attribute of the link
-	 */
-	QString hreflang( ) const;
-	
-	/**
-	 * Method to get the title attribute of the link
-	 * @return The title attribute of the link
-	 */
-	QString title( ) const;
-	
-	/**
-	 * Method to get the length attribute of the link
-	 * @return The length attribute of the link
-	 */
-	QString length( ) const;
-	
-	/**
-	 * Method to get the id of the URL
-	 * @return The ID of the URL
-	 */
-	QString id( ) const;
-	
-	/**
-	 * Method to set the href attribute of the link
-	 * @param aData The href attribute of the link
-	 */
-	void setHref( const QUrl& aData );
-	
-	/**
-	 * Method to set the rel attribute of the link
-	 * @param aData The rel attribute of the link
-	 */
-	void setRel( const QString &aData );
-	
-	/**
-	 * Method to set the type attribute of the link
-	 * @param aData The type attribute of the link
-	 */
-	void setType( const QString &aData );
-	
-	/**
-	 * Method to set the hreflang attribute of the link
-	 * @param aData The hreflang attribute of the link
-	 */
-	void setHhreflang( const QString &aData );
-	
-	/**
-	 * Method to set the title attribute of the link
-	 * @param aData The title attribute of the link
-	 */
-	void setTitle( const QString &aData );
-	
-	/**
-	 * Method to set the length attribute of the link
-	 * @param aData The length attribute of the link
-	 */
-	void setLength( const QString &aData );
-	
-	/**
-	 * Method to set the id of the URL
-	 * @param aId The ID of the URL
-	 */
-	void setId( const QString &aId );
-	
-private:
-	QSharedDataPointer<SmfUrlPrivate> d;
-	
-	friend QDataStream &operator<<( QDataStream &aDataStream, 
-			const SmfUrl &aUrl );
-
-	friend QDataStream &operator>>( QDataStream &aDataStream, 
-			SmfUrl &aUrl );
-	
-	};
-
-
-/**
- * Method for Externalization. Writes the SmfUrl object to 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be written
- * @param aUrl The SmfUrl object to be externalized
- * @return reference to the written stream
- */
-SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
-		const SmfUrl &aUrl );
-
-/**
- * Method for Internalization. Reads a SmfUrl object from 
- * the stream and returns a reference to the stream.
- * @param aDataStream Stream to be read
- * @param aUrl The SmfUrl object to be internalized
- * @return reference to the stream
- */
-SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
-		SmfUrl &aUrl);
-
-typedef QList<SmfUrl> SmfUrlList;
-
-// Make the class SmfUrl known to QMetaType, so that as to register it.
-Q_DECLARE_METATYPE(SmfUrl)
-Q_DECLARE_METATYPE(QList<SmfUrl>)
-
-#endif /* SMFURL_H_ */
-
--- a/smf/smfservermodule/smfclient/common/smfurl_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * 
- * Description:
- * Private class implemented for implicit sharing of SmfUrl class
- *
- */
-
-#ifndef SMFURL_P_H_
-#define SMFURL_P_H_
-
-#include <QSharedData>
-#include <QUrl>
-
-class SmfUrlPrivate : public QSharedData
-	{
-public:
-	/**
-	 * Constructor
-	 */
-	SmfUrlPrivate( ) { 
-		m_id.clear();
-	}
-	
-	/**
-	 * Copy Consturctor
-	 * @param aOther The reference object to be copy constructed
-	 */
-	SmfUrlPrivate( const SmfUrlPrivate &aOther ) : 
-		QSharedData ( aOther ), 
-		m_id ( aOther.m_id ) { }
-	
-	/**
-	 * Destructor
-	 */
-	~SmfUrlPrivate( )
-		{
-		}
-
-	/**
-	 * Data members
-	 */
-	QUrl 	m_href;		// The href attribute of an Atom link element, contains the link's IRI
-	QString m_rel;		// The rel attribute that indicates the link relation type
-	QString m_type;		// The type attribute. It is a hint about the type of the 
-						// representation that is expected to be returned when the 
-						// value of the href attribute is dereferenced
-	QString m_hreflang;	// The hreflang attribute describes the language of the resource 
-						// pointed to by the href attribute
-	QString m_title;	// The title attribute conveys human-readable information about the link
-	QString m_length;	// The length attribute indicates an advisory length 
-						// of the linked content in octets
-	QString m_id;		// The url ID
-	
-	};
-
-#endif /* SMFURL_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/eabi/smfclientu.def	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,268 @@
+EXPORTS
+	_ZN10SmfGallery11descriptionER10SmfPicture @ 1 NONAME
+	_ZN10SmfGallery11postCommentE10SmfPicture10SmfComment @ 2 NONAME
+	_ZN10SmfGallery11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME
+	_ZN10SmfGallery11qt_metacastEPKc @ 4 NONAME
+	_ZN10SmfGallery13customRequestERKiP10QByteArray @ 5 NONAME
+	_ZN10SmfGallery14uploadFinishedE5QListI8SmfErrorE @ 6 NONAME
+	_ZN10SmfGallery15albumsAvailableEP5QListI15SmfPictureAlbumE8SmfError13SmfResultPage @ 7 NONAME
+	_ZN10SmfGallery16staticMetaObjectE @ 8 NONAME DATA 16
+	_ZN10SmfGallery17picturesAvailableEP5QListI10SmfPictureE8SmfError13SmfResultPage @ 9 NONAME
+	_ZN10SmfGallery19customDataAvailableEiP10QByteArray @ 10 NONAME
+	_ZN10SmfGallery19getStaticMetaObjectEv @ 11 NONAME
+	_ZN10SmfGallery20descriptionAvailableE7QString8SmfError @ 12 NONAME
+	_ZN10SmfGallery6albumsE11QStringListP10SmfContactii @ 13 NONAME
+	_ZN10SmfGallery6uploadEP10SmfPictureP15SmfPictureAlbum @ 14 NONAME
+	_ZN10SmfGallery6uploadEP5QListI10SmfPictureEP15SmfPictureAlbum @ 15 NONAME
+	_ZN10SmfGallery8picturesER5QListI15SmfPictureAlbumEii @ 16 NONAME
+	_ZN10SmfGalleryC1EP11SmfProvider @ 17 NONAME
+	_ZN10SmfGalleryC2EP11SmfProvider @ 18 NONAME
+	_ZN10SmfGalleryD0Ev @ 19 NONAME
+	_ZN10SmfGalleryD1Ev @ 20 NONAME
+	_ZN10SmfGalleryD2Ev @ 21 NONAME
+	_ZN14SmfMusicEvents10postEventsE5QListI8SmfEventE @ 22 NONAME
+	_ZN14SmfMusicEvents11qt_metacallEN11QMetaObject4CallEiPPv @ 23 NONAME
+	_ZN14SmfMusicEvents11qt_metacastEPKc @ 24 NONAME
+	_ZN14SmfMusicEvents13customRequestERKiP10QByteArray @ 25 NONAME
+	_ZN14SmfMusicEvents13eventsUpdatedE8SmfError @ 26 NONAME
+	_ZN14SmfMusicEvents15eventsAvailableEP5QListI8SmfEventE8SmfError13SmfResultPage @ 27 NONAME
+	_ZN14SmfMusicEvents15venuesAvailableEP5QListI11SmfLocationE8SmfError13SmfResultPage @ 28 NONAME
+	_ZN14SmfMusicEvents16staticMetaObjectE @ 29 NONAME DATA 16
+	_ZN14SmfMusicEvents19customDataAvailableERKiP10QByteArray @ 30 NONAME
+	_ZN14SmfMusicEvents19getStaticMetaObjectEv @ 31 NONAME
+	_ZN14SmfMusicEvents6eventsE11SmfLocationii @ 32 NONAME
+	_ZN14SmfMusicEvents6venuesE11SmfLocationii @ 33 NONAME
+	_ZN14SmfMusicEventsC1EP11SmfProvider @ 34 NONAME
+	_ZN14SmfMusicEventsC2EP11SmfProvider @ 35 NONAME
+	_ZN14SmfMusicEventsD0Ev @ 36 NONAME
+	_ZN14SmfMusicEventsD1Ev @ 37 NONAME
+	_ZN14SmfMusicEventsD2Ev @ 38 NONAME
+	_ZN14SmfMusicSearch11qt_metacallEN11QMetaObject4CallEiPPv @ 39 NONAME
+	_ZN14SmfMusicSearch11qt_metacastEPKc @ 40 NONAME
+	_ZN14SmfMusicSearch13customRequestERKiP10QByteArray @ 41 NONAME
+	_ZN14SmfMusicSearch15recommendationsE12SmfTrackInfoii @ 42 NONAME
+	_ZN14SmfMusicSearch16staticMetaObjectE @ 43 NONAME DATA 16
+	_ZN14SmfMusicSearch19customDataAvailableERKiP10QByteArray @ 44 NONAME
+	_ZN14SmfMusicSearch19getStaticMetaObjectEv @ 45 NONAME
+	_ZN14SmfMusicSearch20storeSearchAvailableEP5QListI11SmfProviderE8SmfError13SmfResultPage @ 46 NONAME
+	_ZN14SmfMusicSearch20trackSearchAvailableEP5QListI12SmfTrackInfoE8SmfError13SmfResultPage @ 47 NONAME
+	_ZN14SmfMusicSearch6storesE12SmfTrackInfoii @ 48 NONAME
+	_ZN14SmfMusicSearch6tracksE12SmfTrackInfoii @ 49 NONAME
+	_ZN14SmfMusicSearch9trackInfoE19SmfMusicFingerPrintii @ 50 NONAME
+	_ZN14SmfMusicSearchC1EP11SmfProvider @ 51 NONAME
+	_ZN14SmfMusicSearchC2EP11SmfProvider @ 52 NONAME
+	_ZN14SmfMusicSearchD0Ev @ 53 NONAME
+	_ZN14SmfMusicSearchD1Ev @ 54 NONAME
+	_ZN14SmfMusicSearchD2Ev @ 55 NONAME
+	_ZN14SmfRelationMgr10searchByIdERK7QString @ 56 NONAME
+	_ZN14SmfRelationMgr11qt_metacallEN11QMetaObject4CallEiPPv @ 57 NONAME
+	_ZN14SmfRelationMgr11qt_metacastEPKc @ 58 NONAME
+	_ZN14SmfRelationMgr15getAllRelationsEv @ 59 NONAME
+	_ZN14SmfRelationMgr15searchByContactE10SmfContact @ 60 NONAME
+	_ZN14SmfRelationMgr16staticMetaObjectE @ 61 NONAME DATA 16
+	_ZN14SmfRelationMgr19getStaticMetaObjectEv @ 62 NONAME
+	_ZN14SmfRelationMgr3getER7QStringj @ 63 NONAME
+	_ZN14SmfRelationMgr5countE7QString @ 64 NONAME
+	_ZN14SmfRelationMgr6DeleteER7QString @ 65 NONAME
+	_ZN14SmfRelationMgr6createEP11SmfProviderP10SmfContact @ 66 NONAME
+	_ZN14SmfRelationMgr6getAllER7QString @ 67 NONAME
+	_ZN14SmfRelationMgr6removeER7QStringPK10SmfContact @ 68 NONAME
+	_ZN14SmfRelationMgr9associateER7QStringPK10SmfContactP11SmfProvider @ 69 NONAME
+	_ZN14SmfRelationMgrC1EP7QObject @ 70 NONAME
+	_ZN14SmfRelationMgrC2EP7QObject @ 71 NONAME
+	_ZN14SmfRelationMgrD0Ev @ 72 NONAME
+	_ZN14SmfRelationMgrD1Ev @ 73 NONAME
+	_ZN14SmfRelationMgrD2Ev @ 74 NONAME
+	_ZN15SmfMusicService10postRatingE12SmfTrackInfo14SmfMusicRating @ 75 NONAME
+	_ZN15SmfMusicService10searchUserE11SmfLocationii @ 76 NONAME
+	_ZN15SmfMusicService11qt_metacallEN11QMetaObject4CallEiPPv @ 77 NONAME
+	_ZN15SmfMusicService11qt_metacastEPKc @ 78 NONAME
+	_ZN15SmfMusicService12postCommentsE12SmfTrackInfo10SmfComment @ 79 NONAME
+	_ZN15SmfMusicService12postfinishedE8SmfError @ 80 NONAME
+	_ZN15SmfMusicService13customRequestERKiP10QByteArray @ 81 NONAME
+	_ZN15SmfMusicService16staticMetaObjectE @ 82 NONAME DATA 16
+	_ZN15SmfMusicService17userInfoAvailableEP15SmfMusicProfile8SmfError @ 83 NONAME
+	_ZN15SmfMusicService18postCurrentPlayingE12SmfTrackInfo @ 84 NONAME
+	_ZN15SmfMusicService19customDataAvailableERKiP10QByteArray @ 85 NONAME
+	_ZN15SmfMusicService19getStaticMetaObjectEv @ 86 NONAME
+	_ZN15SmfMusicService19searchInfoAvailableEP5QListI15SmfMusicProfileE8SmfError13SmfResultPage @ 87 NONAME
+	_ZN15SmfMusicService8userinfoEv @ 88 NONAME
+	_ZN15SmfMusicServiceC1EP11SmfProvider @ 89 NONAME
+	_ZN15SmfMusicServiceC2EP11SmfProvider @ 90 NONAME
+	_ZN15SmfMusicServiceD0Ev @ 91 NONAME
+	_ZN15SmfMusicServiceD1Ev @ 92 NONAME
+	_ZN15SmfMusicServiceD2Ev @ 93 NONAME
+	_ZN15SmfPostProvider10updatePostER7SmfPost @ 94 NONAME
+	_ZN15SmfPostProvider11qt_metacallEN11QMetaObject4CallEiPPv @ 95 NONAME
+	_ZN15SmfPostProvider11qt_metacastEPKc @ 96 NONAME
+	_ZN15SmfPostProvider12postDirectedER7SmfPostR10SmfContactP11SmfLocation @ 97 NONAME
+	_ZN15SmfPostProvider12postFinishedE8SmfError @ 98 NONAME
+	_ZN15SmfPostProvider13customRequestERKiP10QByteArray @ 99 NONAME
+	_ZN15SmfPostProvider14commentOnAPostER7SmfPostS1_P11SmfLocation @ 100 NONAME
+	_ZN15SmfPostProvider14postAppearenceE17SmfAppearenceInfoRK7QString @ 101 NONAME
+	_ZN15SmfPostProvider14postsAvailableEP5QListI7SmfPostE8SmfError13SmfResultPage @ 102 NONAME
+	_ZN15SmfPostProvider16staticMetaObjectE @ 103 NONAME DATA 16
+	_ZN15SmfPostProvider19customDataAvailableEiP10QByteArray @ 104 NONAME
+	_ZN15SmfPostProvider19getStaticMetaObjectEv @ 105 NONAME
+	_ZN15SmfPostProvider4postER7SmfPostR11SmfLocation @ 106 NONAME
+	_ZN15SmfPostProvider5postsEP10SmfContactii @ 107 NONAME
+	_ZN15SmfPostProvider9sharePostER7SmfPostR10SmfContactb @ 108 NONAME
+	_ZN15SmfPostProviderC1EP11SmfProvider @ 109 NONAME
+	_ZN15SmfPostProviderC2EP11SmfProvider @ 110 NONAME
+	_ZN15SmfPostProviderD0Ev @ 111 NONAME
+	_ZN15SmfPostProviderD1Ev @ 112 NONAME
+	_ZN15SmfPostProviderD2Ev @ 113 NONAME
+	_ZN15SmfRelationItem10setContactER10SmfContact @ 114 NONAME
+	_ZN15SmfRelationItem11setProviderER11SmfProvider @ 115 NONAME
+	_ZN15SmfRelationItem8setIndexEj @ 116 NONAME
+	_ZN15SmfRelationItemC1EP11SmfProvider @ 117 NONAME
+	_ZN15SmfRelationItemC2EP11SmfProvider @ 118 NONAME
+	_ZN16SmfLyricsService11qt_metacallEN11QMetaObject4CallEiPPv @ 119 NONAME
+	_ZN16SmfLyricsService11qt_metacastEPKc @ 120 NONAME
+	_ZN16SmfLyricsService13customRequestERKiP10QByteArray @ 121 NONAME
+	_ZN16SmfLyricsService15lyricsAvailableEP5QListI9SmfLyricsE8SmfError13SmfResultPage @ 122 NONAME
+	_ZN16SmfLyricsService16staticMetaObjectE @ 123 NONAME DATA 16
+	_ZN16SmfLyricsService17subtitleAvailableEP5QListI11SmfSubtitleE8SmfError13SmfResultPage @ 124 NONAME
+	_ZN16SmfLyricsService19customDataAvailableERKiP10QByteArray @ 125 NONAME
+	_ZN16SmfLyricsService19getStaticMetaObjectEv @ 126 NONAME
+	_ZN16SmfLyricsService6lyricsE12SmfTrackInfoii @ 127 NONAME
+	_ZN16SmfLyricsService9subtitlesE12SmfTrackInfo23SmfSubtitleSearchFilterii @ 128 NONAME
+	_ZN16SmfLyricsServiceC1EP11SmfProvider @ 129 NONAME
+	_ZN16SmfLyricsServiceC2EP11SmfProvider @ 130 NONAME
+	_ZN16SmfLyricsServiceD0Ev @ 131 NONAME
+	_ZN16SmfLyricsServiceD1Ev @ 132 NONAME
+	_ZN16SmfLyricsServiceD2Ev @ 133 NONAME
+	_ZN17SmfContactFetcher10searchNearEP11SmfLocation25SmfLocationSearchBoundaryii @ 134 NONAME
+	_ZN17SmfContactFetcher11qt_metacallEN11QMetaObject4CallEiPPv @ 135 NONAME
+	_ZN17SmfContactFetcher11qt_metacastEPKc @ 136 NONAME
+	_ZN17SmfContactFetcher13customRequestERKiP10QByteArray @ 137 NONAME
+	_ZN17SmfContactFetcher13searchInGroupE8SmfGroupii @ 138 NONAME
+	_ZN17SmfContactFetcher16staticMetaObjectE @ 139 NONAME DATA 16
+	_ZN17SmfContactFetcher18groupListAvailableEP5QListI8SmfGroupE8SmfError13SmfResultPage @ 140 NONAME
+	_ZN17SmfContactFetcher18searchNearFinishedEP5QListI10SmfContactE8SmfError13SmfResultPage @ 141 NONAME
+	_ZN17SmfContactFetcher19customDataAvailableEiP10QByteArray @ 142 NONAME
+	_ZN17SmfContactFetcher19getStaticMetaObjectEv @ 143 NONAME
+	_ZN17SmfContactFetcher20friendsListAvailableEP5QListI10SmfContactE8SmfError13SmfResultPage @ 144 NONAME
+	_ZN17SmfContactFetcher21searchContactFinishedEP5QListI10SmfContactE8SmfError13SmfResultPage @ 145 NONAME
+	_ZN17SmfContactFetcher21searchInGroupFinishedEP5QListI10SmfContactE8SmfError13SmfResultPage @ 146 NONAME
+	_ZN17SmfContactFetcher22followersListAvailableEP5QListI10SmfContactE8SmfError13SmfResultPage @ 147 NONAME
+	_ZN17SmfContactFetcher6groupsEii @ 148 NONAME
+	_ZN17SmfContactFetcher6searchEP10SmfContactii @ 149 NONAME
+	_ZN17SmfContactFetcher7friendsEii @ 150 NONAME
+	_ZN17SmfContactFetcher9followersEii @ 151 NONAME
+	_ZN17SmfContactFetcherC1EP11SmfProvider @ 152 NONAME
+	_ZN17SmfContactFetcherC1EP11SmfProviderP10SmfContact @ 153 NONAME
+	_ZN17SmfContactFetcherC2EP11SmfProvider @ 154 NONAME
+	_ZN17SmfContactFetcherC2EP11SmfProviderP10SmfContact @ 155 NONAME
+	_ZN17SmfContactFetcherD0Ev @ 156 NONAME
+	_ZN17SmfContactFetcherD1Ev @ 157 NONAME
+	_ZN17SmfContactFetcherD2Ev @ 158 NONAME
+	_ZN18SmfActivityFetcher11qt_metacallEN11QMetaObject4CallEiPPv @ 159 NONAME
+	_ZN18SmfActivityFetcher11qt_metacastEPKc @ 160 NONAME
+	_ZN18SmfActivityFetcher13customRequestERKiP10QByteArray @ 161 NONAME
+	_ZN18SmfActivityFetcher14selfActivitiesEii @ 162 NONAME
+	_ZN18SmfActivityFetcher16resultsAvailableEP5QListI16SmfActivityEntryE8SmfError13SmfResultPage @ 163 NONAME
+	_ZN18SmfActivityFetcher16staticMetaObjectE @ 164 NONAME DATA 16
+	_ZN18SmfActivityFetcher17friendsActivitiesERK10SmfContactii @ 165 NONAME
+	_ZN18SmfActivityFetcher19customDataAvailableERKiP10QByteArray @ 166 NONAME
+	_ZN18SmfActivityFetcher19getStaticMetaObjectEv @ 167 NONAME
+	_ZN18SmfActivityFetcher8filteredE5QListI21SmfActivityObjectTypeEii @ 168 NONAME
+	_ZN18SmfActivityFetcherC1EP11SmfProvider @ 169 NONAME
+	_ZN18SmfActivityFetcherC2EP11SmfProvider @ 170 NONAME
+	_ZN18SmfActivityFetcherD0Ev @ 171 NONAME
+	_ZN18SmfActivityFetcherD1Ev @ 172 NONAME
+	_ZN18SmfActivityFetcherD2Ev @ 173 NONAME
+	_ZN18SmfPlaylistService11playlistsOfEP15SmfMusicProfileii @ 174 NONAME
+	_ZN18SmfPlaylistService11qt_metacallEN11QMetaObject4CallEiPPv @ 175 NONAME
+	_ZN18SmfPlaylistService11qt_metacastEPKc @ 176 NONAME
+	_ZN18SmfPlaylistService13addToPlaylistE11SmfPlaylistP5QListI12SmfTrackInfoE @ 177 NONAME
+	_ZN18SmfPlaylistService13customRequestERKiP10QByteArray @ 178 NONAME
+	_ZN18SmfPlaylistService15playlistUpdatedE8SmfError @ 179 NONAME
+	_ZN18SmfPlaylistService16staticMetaObjectE @ 180 NONAME DATA 16
+	_ZN18SmfPlaylistService19customDataAvailableERKiP10QByteArray @ 181 NONAME
+	_ZN18SmfPlaylistService19getStaticMetaObjectEv @ 182 NONAME
+	_ZN18SmfPlaylistService22playlistsListAvailableEP5QListI11SmfPlaylistE8SmfError13SmfResultPage @ 183 NONAME
+	_ZN18SmfPlaylistService26postCurrentPlayingPlaylistE11SmfPlaylist @ 184 NONAME
+	_ZN18SmfPlaylistService9playlistsEii @ 185 NONAME
+	_ZN18SmfPlaylistServiceC1EP11SmfProvider @ 186 NONAME
+	_ZN18SmfPlaylistServiceC2EP11SmfProvider @ 187 NONAME
+	_ZN18SmfPlaylistServiceD0Ev @ 188 NONAME
+	_ZN18SmfPlaylistServiceD1Ev @ 189 NONAME
+	_ZN18SmfPlaylistServiceD2Ev @ 190 NONAME
+	_ZN9SmfClient11GetServicesERK7QString @ 191 NONAME
+	_ZN9SmfClientC1Ev @ 192 NONAME
+	_ZN9SmfClientC2Ev @ 193 NONAME
+	_ZN9SmfClientD1Ev @ 194 NONAME
+	_ZN9SmfClientD2Ev @ 195 NONAME
+	_ZNK10SmfGallery10metaObjectEv @ 196 NONAME
+	_ZNK10SmfGallery11getProviderEv @ 197 NONAME
+	_ZNK14SmfMusicEvents10metaObjectEv @ 198 NONAME
+	_ZNK14SmfMusicEvents11getProviderEv @ 199 NONAME
+	_ZNK14SmfMusicSearch10metaObjectEv @ 200 NONAME
+	_ZNK14SmfMusicSearch11getProviderEv @ 201 NONAME
+	_ZNK14SmfRelationMgr10metaObjectEv @ 202 NONAME
+	_ZNK15SmfMusicService10metaObjectEv @ 203 NONAME
+	_ZNK15SmfMusicService11getProviderEv @ 204 NONAME
+	_ZNK15SmfPostProvider10metaObjectEv @ 205 NONAME
+	_ZNK15SmfPostProvider11getProviderEv @ 206 NONAME
+	_ZNK15SmfPostProvider14maxCharsInPostEv @ 207 NONAME
+	_ZNK15SmfPostProvider16supportedFormatsEv @ 208 NONAME
+	_ZNK15SmfPostProvider18supportsAppearenceEv @ 209 NONAME
+	_ZNK15SmfPostProvider8maxItemsEv @ 210 NONAME
+	_ZNK15SmfRelationItem10getContactEv @ 211 NONAME
+	_ZNK15SmfRelationItem11getProviderEv @ 212 NONAME
+	_ZNK15SmfRelationItem8getIndexEv @ 213 NONAME
+	_ZNK16SmfLyricsService10metaObjectEv @ 214 NONAME
+	_ZNK16SmfLyricsService11getProviderEv @ 215 NONAME
+	_ZNK17SmfContactFetcher10metaObjectEv @ 216 NONAME
+	_ZNK17SmfContactFetcher11getProviderEv @ 217 NONAME
+	_ZNK18SmfActivityFetcher10metaObjectEv @ 218 NONAME
+	_ZNK18SmfActivityFetcher11getProviderEv @ 219 NONAME
+	_ZNK18SmfPlaylistService10metaObjectEv @ 220 NONAME
+	_ZNK18SmfPlaylistService11getProviderEv @ 221 NONAME
+	_ZNK9SmfClient11errorStringERK8SmfError @ 222 NONAME
+	_ZTI10SmfGallery @ 223 NONAME
+	_ZTI14SmfMusicEvents @ 224 NONAME
+	_ZTI14SmfMusicSearch @ 225 NONAME
+	_ZTI14SmfRelationMgr @ 226 NONAME
+	_ZTI15SmfMusicService @ 227 NONAME
+	_ZTI15SmfPostProvider @ 228 NONAME
+	_ZTI16SmfClientPrivate @ 229 NONAME
+	_ZTI16SmfLyricsService @ 230 NONAME
+	_ZTI17CSmfClientSymbian @ 231 NONAME
+	_ZTI17SmfContactFetcher @ 232 NONAME
+	_ZTI17SmfGalleryPrivate @ 233 NONAME
+	_ZTI18SmfActivityFetcher @ 234 NONAME
+	_ZTI18SmfPlaylistService @ 235 NONAME
+	_ZTI21SmfMusicEventsPrivate @ 236 NONAME
+	_ZTI21SmfMusicSearchPrivate @ 237 NONAME
+	_ZTI22SmfMusicServicePrivate @ 238 NONAME
+	_ZTI22SmfPostProviderPrivate @ 239 NONAME
+	_ZTI23SmfLyricsServicePrivate @ 240 NONAME
+	_ZTI24SmfContactFetcherPrivate @ 241 NONAME
+	_ZTI25SmfActivityFetcherPrivate @ 242 NONAME
+	_ZTI25SmfPlaylistServicePrivate @ 243 NONAME
+	_ZTV10SmfGallery @ 244 NONAME
+	_ZTV14SmfMusicEvents @ 245 NONAME
+	_ZTV14SmfMusicSearch @ 246 NONAME
+	_ZTV14SmfRelationMgr @ 247 NONAME
+	_ZTV15SmfMusicService @ 248 NONAME
+	_ZTV15SmfPostProvider @ 249 NONAME
+	_ZTV16SmfClientPrivate @ 250 NONAME
+	_ZTV16SmfLyricsService @ 251 NONAME
+	_ZTV17CSmfClientSymbian @ 252 NONAME
+	_ZTV17SmfContactFetcher @ 253 NONAME
+	_ZTV17SmfGalleryPrivate @ 254 NONAME
+	_ZTV18SmfActivityFetcher @ 255 NONAME
+	_ZTV18SmfPlaylistService @ 256 NONAME
+	_ZTV21SmfMusicEventsPrivate @ 257 NONAME
+	_ZTV21SmfMusicSearchPrivate @ 258 NONAME
+	_ZTV22SmfMusicServicePrivate @ 259 NONAME
+	_ZTV22SmfPostProviderPrivate @ 260 NONAME
+	_ZTV23SmfLyricsServicePrivate @ 261 NONAME
+	_ZTV24SmfContactFetcherPrivate @ 262 NONAME
+	_ZTV25SmfActivityFetcherPrivate @ 263 NONAME
+	_ZTV25SmfPlaylistServicePrivate @ 264 NONAME
+	_ZlsR11QDataStreamRK15SmfRelationItem @ 265 NONAME
+	_ZrsR11QDataStreamR15SmfRelationItem @ 266 NONAME
+
--- a/smf/smfservermodule/smfclient/main.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- * */
-
-#include <QtCore>
-#include <QCoreApplication>
-
-int main(int argc, char *argv[])
-{
-    QCoreApplication a(argc, argv);
-	
-    return a.exec();
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfactivityfetcher.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Represents activity in terms similar to standard activity stream http://activitystrea.ms/
+ * 
+ */
+
+#include <smfprovider.h>
+#include <smfcontact.h>
+
+#include "smfactivityfetcher.h"
+#include "smfactivityfetcher_p.h"
+
+
+SmfActivityFetcher::SmfActivityFetcher(SmfProvider *baseprovider)
+		:m_baseProvider(baseprovider)
+	{
+	  //creating private impl wrapper
+	  m_private = new SmfActivityFetcherPrivate(this);
+	}
+
+SmfActivityFetcher::~SmfActivityFetcher()
+	{
+	}
+
+void SmfActivityFetcher::selfActivities(int pageNum, int perPage)
+	{
+	m_private->selfActivities(pageNum,perPage);
+	}
+
+void SmfActivityFetcher::friendsActivities(const SmfContact & aFriend, int pageNum, int perPage)
+	{
+	m_private->friendsActivities(aFriend,pageNum,perPage);
+	}
+
+void SmfActivityFetcher::filtered(QList<SmfActivityObjectType> filters, int pageNum, int perPage)
+	{
+	m_private->filtered(filters,pageNum,perPage);
+	}
+
+void SmfActivityFetcher::customRequest(const int& operationId,QByteArray* customData)
+	{
+	m_private->customRequest(operationId, customData);
+	}
+
+SmfProvider* SmfActivityFetcher::getProvider() const
+	{
+	return m_baseProvider;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfactivityfetcher.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,110 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Represents activity in terms similar to standard activity stream http://activitystrea.ms/
+ * 
+ */
+
+#ifndef SMFACTIVITYFETCHER_H_
+#define SMFACTIVITYFETCHER_H_
+
+#include <QList>
+#include <smfglobal.h>
+#include <smfactions.h>
+
+// Forward declaration
+class SmfActivityFetcherPrivate;
+class SmfProvider;
+class SmfContact;
+
+
+/**
+ * @ingroup smf_client_group
+ * Basic activity service ("org.symbian.smf.client.activity.fetcher")
+ */
+class SMFCLIENT_EXPORT SmfActivityFetcher : public QObject
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructs SmfActivity.
+	 * @param baseProvider The base provider info
+	 */
+	SmfActivityFetcher(SmfProvider* baseprovider = 0);
+
+	/**
+	 * Destructor
+	 */
+	~SmfActivityFetcher();
+
+public slots:
+	/**
+	 * Emits signal resultsAvailable() when list of activities for the user is available 
+	 */
+	void selfActivities(int pageNum = SMF_FIRST_PAGE,int perPage = SMF_ITEMS_PER_PAGE);
+
+	/**
+	 * Emits signal resultsAvailable() when list of activities for other contact  is available 
+	 */
+	void friendsActivities(const SmfContact& aFriend, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * returns only those activities (self) which are from @arg filters
+	 */
+	void filtered(QList<SmfActivityObjectType> filters, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+
+signals:
+	/**
+	 * Signals availability of the result of the previous query
+	 */
+	void resultsAvailable(SmfActivityEntryList* entries, SmfError error, SmfResultPage resultPage);
+	
+	/**
+	 * Signals availability of the result of the customRequest
+	 */
+	void customDataAvailable( const int& operationId, QByteArray* customData );
+
+private:
+	/**
+	 * Gets the base provider info
+	 */
+	SmfProvider* getProvider() const;
+	  
+// Friend Class
+	friend class SmfActivityFetcherPrivate;
+	  
+private:
+	SmfActivityFetcherPrivate* m_private;
+	SmfProvider* m_baseProvider;
+
+	};
+
+SMF_SERVICE_NAME(SmfActivityFetcher, "org.symbian.smf.client.activity.fetcher\0.2")
+
+#endif /* SMFACTIVITYFETCHER_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfactivityfetcher_p.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,193 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private Implementation of SmfActivityFetcher
+ * 
+ */
+
+#include <QDebug>
+
+#include "smfactivityfetcher.h"
+#include "smfactivityfetcher_p.h"
+#ifdef Q_OS_SYMBIAN
+	#include "smfclientsymbian.h"
+#else
+	#include "smfclientqt.h"
+#endif
+
+
+SmfActivityFetcherPrivate::SmfActivityFetcherPrivate(SmfActivityFetcher *activityFetcher)
+		:m_activityFetcher(activityFetcher)
+	{
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
+#else
+	//TODO:- Qt private impl
+#endif
+	}
+
+SmfActivityFetcherPrivate::~SmfActivityFetcherPrivate()
+	{
+	if(m_SmfClientPrivate)
+		{
+		delete m_SmfClientPrivate;
+		m_SmfClientPrivate = NULL;
+		}
+	}
+
+void SmfActivityFetcherPrivate::selfActivities(int pageNum, int perPage)
+	{
+	SmfProvider* m_baseProvider = m_activityFetcher->getProvider();
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	//SmfProvider
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	//serialize end
+	
+	QString intfName(activityFetcherInterface);
+	int max = MaxSmfActivityEntrySize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfActivitySelfActivity, max);
+	}
+
+void SmfActivityFetcherPrivate::friendsActivities(const SmfContact & aFriend, int pageNum, int perPage)
+	{
+	SmfProvider* m_baseProvider = m_activityFetcher->getProvider();
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	//SmfProvider
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<aFriend;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(activityFetcherInterface);
+	int max = MaxSmfActivityEntrySize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfActivityFriendsActivities, max);
+	}
+
+void SmfActivityFetcherPrivate::filtered(QList<SmfActivityObjectType> filters, int pageNum, int perPage)
+	{
+	SmfProvider* m_baseProvider = m_activityFetcher->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	//SmfProvider
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<filters;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(activityFetcherInterface);
+	int max = MaxSmfActivityEntrySize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfActivityFiltered, max);
+	}
+
+void SmfActivityFetcherPrivate::customRequest ( const int& operationId, QByteArray* customData )
+	{
+	SmfProvider* m_baseProvider = m_activityFetcher->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<operationId;
+	if(customData)
+		{
+		write<<m_argFlag;
+		write<<*customData;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(activityFetcherInterface);
+//ToDo:- How much size to allocate for custom data? keeping MaxSmfActivityEntrySize for now
+	int maxAllocation = MaxSmfActivityEntrySize;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfActivityCustomRequest, maxAllocation);
+	}
+
+void SmfActivityFetcherPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error)
+	{
+	qDebug()<<"SmfActivityFetcherPrivate::resultsAvailable";
+	qDebug()<<"opcode = "<<opcode;
+
+	QDataStream reader(&result,QIODevice::ReadOnly);
+	
+	//Now de-serialize it based on opcode
+	switch(opcode)
+		{
+		case SmfActivitySelfActivity:
+		case SmfActivityFriendsActivities:
+		case SmfActivityFiltered:
+			{
+			SmfActivityEntryList* m_entries = new SmfActivityEntryList;
+			reader>>*m_entries;
+			qDebug()<<"m_entries.count = "<<m_entries->count();
+			
+			//ToDo:- not incorporating paging now
+			SmfResultPage page;
+
+			emit m_activityFetcher->resultsAvailable(m_entries,error,page);
+			}
+			break;
+			
+   		case SmfActivityCustomRequest:
+   			{
+   			int operationId;
+   			QByteArray *data = new QByteArray;
+   			reader>>operationId;
+   			reader>>*data;
+   			
+   			qDebug()<<"operationId = "<<operationId;
+   			qDebug()<<"data size = "<<data->size();
+   			emit m_activityFetcher->customDataAvailable(operationId, data);
+   			}
+   			break;
+		default:
+			Q_ASSERT_X(1,"Activity Private Unknown opcode","default case");
+		}
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfactivityfetcher_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private Implementation of SmfActivityFetcher
+ * 
+ */
+
+#ifndef SMFACTIVITYFETCHER_P_H_
+#define SMFACTIVITYFETCHER_P_H_
+
+#include <QList>
+#include <smfglobal.h>
+#include <smfactions.h>
+#include <smfobserver.h>
+
+class SmfActivityFetcher;
+class SmfProvider;
+class SmfContact;
+#ifdef Q_OS_SYMBIAN
+	class CSmfClientSymbian;	
+#else
+	class SmfClientQt;
+#endif
+
+	
+class SmfActivityFetcherPrivate : public smfObserver
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructs SmfActivityFetcherPrivate.
+	 */
+	SmfActivityFetcherPrivate(SmfActivityFetcher* activityFetcher);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfActivityFetcherPrivate();
+	
+	/**
+	 * Emits signal resultsAvailable() when list of activities for the user is available 
+	 */
+	void selfActivities(int pageNum, int perPage);
+
+	/**
+	 * Emits signal resultsAvailable() when list of activities for other contact  is available 
+	 */
+	void friendsActivities(const SmfContact& aFriend, int pageNum, int perPage);
+	
+	/**
+	 * returns only those activities (self) which are from @arg filters
+	 */
+	void filtered(QList<SmfActivityObjectType> filters, int pageNum, int perPage);
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+public: //From smfObserver
+	/**
+	 * To notify availibility of asynchronous requests.
+	 * @param result Requested result, before using must check error param.
+	 * @param opcode Requested opcode, for which the result has arrived.
+	 * @param error Error 
+	 */
+	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error);
+	
+private:
+	  SmfActivityFetcher* m_activityFetcher;
+#ifdef Q_OS_SYMBIAN
+	  CSmfClientSymbian* m_SmfClientPrivate;
+	  friend class CSmfClientSymbian;
+#else
+	  SmfClientQt* m_SmfClientPrivate;
+	  friend class SmfClientQt;
+#endif
+	  int m_argFlag;
+	  //serialized byte array of provider+other info to be sent to the server
+	  //The order:- SmfProvider then params in order of their appearance in fn
+	  QByteArray m_serializedDataToServer;
+
+	};
+
+#endif /* SMFACTIVITYFETCHER_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfclient.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,347 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfClient class provides a set of APIs to get list of service provider
+ * who implement the given interface. Calling GetServices of the instance of this
+ * class is mandatory before using any other interface.
+ *
+ */
+
+#include <qdebug.h>
+
+#include "smfclient.h"
+#include "smfclient_p.h"
+
+SmfClient::SmfClient()
+	{
+	qDebug()<<"Inside SmfClient::SmfClient()";
+	
+	//Create instance of the private wrapper
+	m_private = new SmfClientPrivate(this);
+	m_providerList = NULL;
+	}
+
+SmfClient::~SmfClient()
+	{
+	if(m_private)
+		{
+		delete m_private;
+		m_private = NULL;
+		}
+	}
+
+QList<SmfProvider>* SmfClient::GetServices(const QString& serviceName)
+	{
+	qDebug()<<"Inside SmfClient::GetServices()";
+	
+	if(m_providerList)
+		{
+		delete m_providerList;
+		m_providerList = NULL;
+		}
+	qDebug()<<"Before m_private->GetServices";
+	
+	//Getting the data synchronously
+	m_providerList = m_private->GetServices(serviceName);
+	qDebug()<<"After m_private->GetServices";
+	
+	return m_providerList;
+	}
+
+
+/**
+* This method returns the error message for the mentioned argument error code
+* @param aErrorCode The SmfError code for which the error string is required
+* @returns a QString object containing the required error message
+*/
+QString SmfClient::errorString ( const SmfError &aErrorCode ) const
+	{
+	QString str;
+	str.clear();
+	
+	switch(aErrorCode)
+		{
+		case SmfNoError:								//0
+			str.append("No Error");
+			break;
+			
+		case SmfInvalidInterface:						//1
+		    str.append("Smf Error : Invalid interface name");
+			break;
+			
+		case SmfNoAuthorizedPlugin:						//2
+		    str.append("Smf Error : No Authorised plugins are available");
+			break;
+			
+		case SmfClientAuthFailed:						//3
+		    str.append("Smf Error : Smf Client authorisation failed");
+			break;
+			
+		case SmfPMPluginNotFound:						//4
+		    str.append("Smf Error : Plugin not found");
+			break;
+			
+		case SmfPMPluginNotLoaded:						//5
+		    str.append("Smf Error : Plugin could not be loaded");
+			break;
+			
+		case SmfPMPluginLoadError:						//6
+		    str.append("Smf Error : Plugin Load failed");
+			break;
+			
+		case SmfPMPluginNotAuthorised:					//7
+		    str.append("Smf Error : Plugin not authorised");
+			break;
+			
+		case SmfPMPluginRequestCreationFailed:			//8
+		    str.append("Smf Error : Plugin request creation failed");
+			break;
+			
+		case SmfPMPluginUnknownPluginService:			//9
+		    str.append("Smf Error : Requested Plugin service not supported");
+			break;
+			
+		case SmfPMPluginUnknownHttpService:				//10
+		    str.append("Smf Error : Unknown http service requested by plugin");
+			break;
+			
+		case SmfPMPluginRequestSendingFailed:			//11
+		    str.append("Smf Error : Request created by plugin could not be send");
+			break;
+			
+		case SmfPMPluginSOPCheckFailed:					//12
+		    str.append("Smf Error : Same Origin Policy violation by plugin");
+			break;
+			
+		case SmfPMPluginSendRequestAgain:				//13
+		    str.append("Smf Error : Send request again");
+			break;
+			
+		case SmfPluginErrorTooManyRequest:				//14
+		    str.append("Plugin Error: Too many requests");
+			break;
+			
+		case SmfPluginErrorRequestQuotaExceeded:		//15
+		    str.append("Plugin Error: Request Quota Exceeded");
+			break;
+			
+		case SmfPluginErrorInvalidRequest:				//16
+		    str.append("Plugin Error: Invalid Request");
+			break;
+			
+		case SmfPluginErrorUserNotLoggedIn:				//17
+		    str.append("Plugin Error: User not logged in");
+			break;
+			
+		case SmfPluginErrorAuthenticationExpired:		//18
+		    str.append("Plugin Error: Authentication Expired");
+			break;
+			
+		case SmfPluginErrorPermissionDenied:			//19
+		    str.append("Plugin Error: Permission denied");
+			break;
+			
+		case SmfPluginErrorInvalidApplication:			//20
+		    str.append("Plugin Error: Request Quota Exceeded");
+			break;
+			
+		case SmfPluginErrorServiceUnavailable:			//21
+			str.append("Plugin Error: Service unavailable");
+			break;
+			
+		case SmfPluginErrorServiceTemporaryUnavailable:	//22
+		    str.append("Plugin Error: Service temporarily unavailable");
+			break;
+			
+		case SmfPluginErrorFormatNotSupported: 			//23
+		    str.append("Plugin Error: Format not supported");
+			break;
+			
+		case SmfPluginErrorDataSizeExceeded :			//24
+		    str.append("Plugin Error: Data Size exceeded");
+			break;
+			
+		case SmfPluginErrorInvalidArguments:			//25
+		    str.append("Plugin Error: Invalid request arguments");
+			break;
+			
+		case SmfPluginErrorParsingFailed:				//26
+		    str.append("Plugin Error: Parsing failed");
+			break;
+			
+		case SmfPluginErrorNetworkError:				//27
+		    str.append("Plugin Error: Network Error");
+			break;
+			
+		case SmfPluginErrorCancelComplete:				//28
+		    str.append("Smf : Operation Cancelled");
+			break;
+			
+		case SmfTMConnectionRefusedError:				//29
+		    str.append("Network Error: Connection Refused");
+			break;
+			
+		case SmfTMRemoteHostClosedError:				//30
+		    str.append("Network Error: Remote Host Closed");
+			break;
+			
+		case SmfTMHostNotFoundError:					//31
+		    str.append("Network Error: Host Not Found");
+			break;
+			
+		case SmfTMTimeoutError:							//32
+		    str.append("Network Error: Time Out");
+			break;
+			
+		case SmfTMOperationCanceledError:				//33
+		    str.append("Network Error: Operation cancelled");
+			break;
+			
+		case SmfTMSslHandshakeFailedError:				//34
+		    str.append("Network Error: Handshake Failed");
+			break;
+			
+		case SmfTMProxyConnectionRefusedError:			//35
+		    str.append("Network Error: Proxy Connection Refused");
+			break;
+			
+		case SmfTMProxyConnectionClosedError:			//36
+		    str.append("Network Error: Proxy Connection Closed");
+			break;
+			
+		case SmfTMProxyNotFoundError:					//37
+		    str.append("Network Error: Proxy Not Found");
+			break;
+			
+		case SmfTMProxyTimeoutError:					//38
+		    str.append("Network Error: Proxy Timeout");
+			break;
+			
+		case SmfTMProxyAuthenticationRequiredError:		//39
+			str.append("Network Error: Proxy Authentication Required");
+			break;
+			
+		case SmfTMContentAccessDenied:					//40
+		    str.append("Network Error: Content Access Denied");
+			break;
+			
+		case SmfTMContentOperationNotPermittedError:	//41
+		    str.append("Network Error: Content Operation Not Permitted");
+			break;
+			
+		case SmfTMContentNotFoundError:					//42
+		    str.append("Network Error: Content Not Found");
+			break;
+			
+		case SmfTMAuthenticationRequiredError:			//43
+		    str.append("Network Error: Remote Server Required Authentication");
+			break;
+			
+		case SmfTMContentReSendError:					//44
+		    str.append("Network Error: Content Resend Error");
+			break;
+			
+		case SmfTMProtocolUnknownError:					//45
+		    str.append("Network Error: Protocol Unknown");
+			break;
+			
+		case SmfTMProtocolInvalidOperationError:		//46
+		    str.append("Network Error: Protocol Invalid Operation");
+			break;
+			
+		case SmfTMUnknownNetworkError:					//47
+		    str.append("Network Error: Unknown Network Error");
+			break;
+			
+		case SmfTMUnknownProxyError:					//48
+		    str.append("Network Error: Unknown Proxy Error");
+			break;
+			
+		case SmfTMUnknownContentError:					//49
+		    str.append("Network Error: Unknown Content Error");
+			break;
+			
+		case SmfTMProtocolFailure:						//50
+		    str.append("Network Error: Protocol Failure");
+			break;
+			
+		case SmfTMUnknownError:							//51
+		    str.append("Network Error: Unknown Error");
+			break;
+			
+		case SmfTMIAPChanged:							//52
+		    str.append("Network Error: IAP Changed");
+			break;
+			
+		case SmfTMCancelled:							//53
+		    str.append("Network Error: Cancelled");
+			break;
+			
+		case SmfTMUnsupportedContentEncodingFormat:		//54
+		    str.append("Smf Error: Unsupported Content Encoding Format");
+			break;
+			
+		case SmfTMInitNetworkNotAvailable :				//55
+		    str.append("Smf Error: Network Not Available");
+			break;
+			
+		case SmfTMInitRoamingNetworkUsageNotEnabled:	//56
+		    str.append("Smf Error: Network Usage While Roaming is Disabled");
+			break;
+			
+		case SmfTMGzipMemoryError:						//57
+		    str.append("Smf Error: Gzip Memory Error");
+			break;
+			
+		case SmfTMGzipStreamError:						//58
+		    str.append("Smf Error: Gzip Stream Error");
+			break;
+			
+		case SmfTMGzipDataError:						//59
+		    str.append("Smf Error: Gzip Data Error");
+			break;
+			
+		case SmfMemoryAllocationFailure:				//60
+		    str.append("Smf Error: Memory failed");
+			break;
+			
+		case SmfDbOpeningError:                         //61
+		    str.append("Smf Database Error: Opening Error");
+			break;
+			
+		case SmfDbQueryExecutonError:					//61
+		    str.append("Smf Database Error: Query Error");
+			break;
+			
+		case SmfDbContactNotExist:						//63
+		    str.append("Smf Database Error: No contacts in Database");
+			break;
+			
+		case SmfErrItemNotInRelation:                   //64
+		    str.append("Smf Error: Item not in relation");
+			break;
+			
+		case SmfErrInvalidRelation:                     //65
+			str.append("Smf Error: Invalid relation");
+			break;
+			
+		case SmfUnknownError:							//66
+		default:
+			str.append("Smf Error: Unknown Error");
+		}
+		
+	return str;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfclient.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfClient class provides a set of APIs to get list of service provider
+ * who implement the given interface. Calling GetServices of the instance of this
+ * class is mandatory before using any other interface.
+ *
+ */
+
+#ifndef SMFCLIENT_H
+#define SMFCLIENT_H
+
+#include <QObject>
+
+#include "smfclientglobal.h"
+#include "smfglobal.h"
+
+//Forward declarations
+class SmfProvider;
+class SmfClientPrivate;
+
+/**
+ * @ingroup smf_client_group 
+ * Interface for a base service provider. Other service provider classes contains 
+ * implementation of this base class so that each has access to service provider 
+ * information.
+ * All of the functionality described here should be implemented by a service
+ * specific plug-in object.
+ */
+class  SMFCLIENT_EXPORT SmfClient
+	{
+public:
+	/**
+	 * Constructs SmfClient
+	 */
+	SmfClient();
+	
+	/**
+	 * Destructor
+	 */
+	~SmfClient();
+	
+	/**
+	 * Method to get the list of services for a given service (interface name)
+	 * @param serviceName The name of the service 
+	 * @return Service provider's list (ownership of memory is transferred 
+	 * to the calling party)
+	 */
+	QList<SmfProvider>* GetServices(const QString& serviceName);
+	
+	// ToDo :- More overloaded APIs will be provided later
+	//QList<SmfProvider>* GetServices(const QString& serviceName, const QString& providerName);
+	//QList<SmfProvider>* GetServices(const QString& serviceName, const SmfProvider& provider);
+  
+	/**
+	 * This method returns the error message for the mentioned argument error code
+	 * @param aErrorCode The SmfError code for which the error string is required
+	 * @returns a QString object containing the required error message
+	 */
+	QString errorString ( const SmfError &aErrorCode ) const;
+
+private:
+	/**
+	 * Private impl wrapper.
+	 */
+	SmfClientPrivate* m_private;
+	
+	/**
+	 * List of SmfProvider to be returned to the requested code
+	 */
+	QList<SmfProvider>* m_providerList;
+  
+	};
+
+#endif // SMFCLIENT_H
--- a/smf/smfservermodule/smfclient/smfclient.pkg	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfclient.pkg	Thu Aug 05 16:48:48 2010 +0530
@@ -1,4 +1,4 @@
-; SmfClientIntf_template.pkg generated by qmake at 2010-04-21T19:01:17
+; smfclient.pkg generated by qmake at 2010-04-21T19:01:17
 ; This file is generated by qmake and should not be modified by the user
 ;
 
@@ -6,7 +6,8 @@
 &EN
 
 ; SIS header: name, uid, version
-#{"smfclient"},(0xE3E6303C),1,0,0
+#{"smfclient"},(0xE08059D4),1,0,0
+
 
 ; Localised Vendor name
 %{"Vendor"}
@@ -22,10 +23,12 @@
 [0x1028315F],0,0,0,{"S60ProductID"}
  
 ; Default dependency to Qt libraries
-(0x2001E61C), 4, 6, 1, {"Qt"}
+(0x2001E61C), 4, 6, 2, {"Qt"}
+; Default dependency to QtMobility libraries
+(0x2002AC89), 1, 0, 0, {"QtMobility"}
 
 ; Executable and default resource files
 ; DEPLOYMENT, shoudn't be hard coded
-"E:/Symbian/S60_5th_Edition_SDK_v1.0_2/epoc32/release/$(PLATFORM)/$(TARGET)/smfclient.dll"    - "!:\sys\bin\smfclient.dll"
+"/S60/devices/S60_5th_Edition_SDK_v0.9/epoc32/release/$(PLATFORM)/$(TARGET)/smfclient.dll"    - "!:\sys\bin\smfclient.dll"
 
 ; Manual PKG post-rules from PRO files
--- a/smf/smfservermodule/smfclient/smfclient.pro	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfclient/smfclient.pro	Thu Aug 05 16:48:48 2010 +0530
@@ -6,28 +6,76 @@
 CONFIG += mobility
 MOBILITY += contacts \
     location
-DEFINES += WRITE_LOG \
-    SMFCLIENT_LIB_EXPORT 
-
-include(client/client.pri)
-include(common/common.pri)
-
-!symbian {
+DEFINES += SMFCLIENT_LIB_EXPORT
+PUBLIC_HEADERS += smfclient.h \
+    smfcontactfetcher.h \
+    smfpostprovider.h \
+    smfgallery.h \
+    smfrelationmgr.h \
+    smfmusic.h \
+    smfactivityfetcher.h
+PRIVATE_HEADERS += smfclient_p.h \
+    smfcontactfetcher_p.h \
+    smfpostprovider_p.h \
+    smfgallery_p.h \
+    smfrelationmgr_p.h \
+    smfmusic_p.h \
+    smfactivityfetcher_p.h
+SOURCES +=  \
+    smfrelationmgr_p.cpp \
+    smfrelationmgr.cpp \
+    smfgallery.cpp \
+    smfgallery_p.cpp \
+    smfpostprovider.cpp \
+    smfpostprovider_p.cpp \
+    smfmusic.cpp \
+    smfclient.cpp \
+    smfclient_p.cpp \
+    smfcontactfetcher.cpp \
+    smfcontactfetcher_p.cpp \
+    smfmusic_p.cpp \
+    smfactivityfetcher.cpp \
+    smfactivityfetcher_p.cpp
+HEADERS += $$PUBLIC_HEADERS \
+    $$PRIVATE_HEADERS
+!symbian { 
     include(../../desktop.pri)
     LIBS += -lqjson
 }
-
-HEADERS += $$PUBLIC_HEADERS \
-    $$PRIVATE_HEADERS
 symbian: { 
     TARGET.UID3 = 0xE08059D4
     TARGET.CAPABILITY = NetworkServices \
-    	ReadUserData \
+        ReadUserData \
         WriteUserData \
         LocalServices \
         UserEnvironment \
         ReadDeviceData \
         WriteDeviceData
     TARGET.EPOCALLOWDLLDATA = 1
-    LIBS += -lqjson.dll
+    LIBS += -lsmfcommon
+    BLD_INF_RULES.prj_exports += smfclient.h
+    BLD_INF_RULES.prj_exports += smfclient_p.h
+    BLD_INF_RULES.prj_exports += smfcontactfetcher.h
+    BLD_INF_RULES.prj_exports += smfcontactfetcher_p.h
+    BLD_INF_RULES.prj_exports += smfclientsymbian.h
+    BLD_INF_RULES.prj_exports += smfclientsymbiansession.h
+    BLD_INF_RULES.prj_exports += smfpostprovider.h
+    BLD_INF_RULES.prj_exports += smfpostprovider_p.h
+    BLD_INF_RULES.prj_exports += smfgallery.h
+    BLD_INF_RULES.prj_exports += smfgallery_p.h
+    BLD_INF_RULES.prj_exports += smfrelationmgr.h
+    BLD_INF_RULES.prj_exports += smfrelationmgr_p.h
+    BLD_INF_RULES.prj_exports += smfmusic.h
+    BLD_INF_RULES.prj_exports += smfmusic_p.h
+    BLD_INF_RULES.prj_exports += smfactivityfetcher.h
+    BLD_INF_RULES.prj_exports += smfactivityfetcher_p.h
 }
+symbian: { 
+    PUBLIC_HEADERS += smfclientsymbian.h \
+        smfclientsymbiansession.h
+    SOURCES += smfclientsymbian.cpp
+}
+else { 
+    PRIVATE_HEADERS += smfclientqt.h
+    SOURCES += smfclientqt.cpp
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfclient_p.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Private Qt wrapper
+ */
+
+#include <qdebug.h>
+
+#include "smfclient_p.h"
+
+SmfClientPrivate::SmfClientPrivate(SmfClient* client):m_client(client)
+	{
+	qDebug()<<"Inside SmfClientPrivate::SmfClientPrivate()";
+	
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
+#else
+	m_SmfClientPrivate = new SmfClientQt(this);
+#endif
+	}
+
+
+QList<SmfProvider>* SmfClientPrivate::GetServices(const QString serviceName)
+	{
+	qDebug()<<"Inside SmfClientPrivate::GetServices()";
+	m_baseProvider = NULL;
+	  
+	QString intfName(serviceName);
+	m_providerSerialized.clear();
+	
+	//Getting the serialized list of SmfProvider synchronously
+	//TODO:- Max size for SmfProviderList 1000
+	qDebug()<<"Before m_SmfClientPrivate->sendRequest";
+	QByteArray notused;
+	m_providerSerialized = m_SmfClientPrivate->sendSyncRequest(intfName,SmfGetService,1000, notused);
+	
+	if(m_baseProvider)
+		{
+		delete m_baseProvider;
+		m_baseProvider = NULL;
+		}
+	m_baseProvider = new QList<SmfProvider>;
+	
+	//De-serialize it into QList<SmfProvider>
+	QDataStream reader(&m_providerSerialized,QIODevice::ReadOnly);
+	reader>>*(m_baseProvider);
+	return m_baseProvider;
+	}
+
+//This api is not reqd as result will be synchronous
+void SmfClientPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error)
+	{
+	Q_UNUSED(result)
+	Q_UNUSED(opcode)
+	Q_UNUSED(error)
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfclient_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,93 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Private Qt wrapper
+ */
+
+#ifndef SMFCLIENT_P_H_
+#define SMFCLIENT_P_H_
+
+#include <QObject>
+#include <QDateTime>
+#include <QStringList>
+
+#include "smfclient.h"
+#include "smfclientglobal.h"
+#include "smfglobal.h"
+#include "smfprovider.h"
+#include "smfobserver.h"
+#ifdef Q_OS_SYMBIAN
+	#include "smfclientsymbian.h"
+#else
+	#include "smfclientqt.h"
+#endif
+
+
+/**
+ * Private Qt wrapper
+ * Provided to accomodate diff facilities in diff platforms.
+ * Uses Symbian client-server for Symbian
+ * QDbus for linux
+ * QLocalserver for rest of the platforms
+ * Note:- only symbian client-server impl is provided at the moment
+ */
+class SmfClientPrivate : public smfObserver
+{
+	Q_OBJECT
+
+public:
+
+	/**
+	 * Constructs SmfClientPrivate
+	 * @param client SmfClient instance, so that it can directly emit SmfClient's signal
+	 */
+	SmfClientPrivate(SmfClient* client = 0);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfClientPrivate(){};
+	
+public:
+	/**
+	 * Corresponds to SmfClient::GetServices(const QString )
+	 */
+	QList<SmfProvider>* GetServices(const QString serviceName);
+	
+	/**
+	* From smfobserver.
+	* This callback is invoked when requested result is available from
+	* other components of Smf (specially from plugin manager).
+	* @param result Parsed and serialized result.
+	* @param opcode Request code.
+	* @param error Error
+	*/
+	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
+	
+private:
+	SmfClient* m_client;
+	QList<SmfProvider>* m_baseProvider;
+	QByteArray m_providerSerialized;	// serialized byte array of provider
+	
+#ifdef Q_OS_SYMBIAN
+	CSmfClientSymbian* m_SmfClientPrivate;
+	friend class CSmfClientSymbian;
+#else
+	SmfClientQt* m_SmfClientPrivate;
+	friend class SmfClientQt;
+#endif
+		
+	};
+
+#endif /* SMFCLIENT_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfclientqt.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,116 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ */
+
+#include "smfclientqt.h"
+
+SmfClientQt::SmfClientQt(QObject *parent)
+    : QObject(parent)
+{
+    m_serverConnection = new QLocalSocket();
+
+    connect(m_serverConnection, SIGNAL(connected()), this, SLOT(connectionEstablished()));
+    connect(m_serverConnection, SIGNAL(readyRead()), this, SLOT(readIncomingData()));
+    connect(m_serverConnection, SIGNAL(error(QLocalSocket::LocalSocketError)),
+            this, SLOT(handleError(QLocalSocket::LocalSocketError)));
+
+    m_serverConnection->connectToServer("SmfServerQt", QIODevice::ReadWrite);
+}
+
+SmfClientQt::~SmfClientQt()
+{
+    m_serverConnection->close();
+    delete m_serverConnection;
+}
+
+/**
+ * Send a request to the server.
+ * @param aSerializedData serialized by the caller.
+ * @param aInterfaceName Interface name
+ * @param requestType Opcode
+ */
+int SmfClientQt::sendRequest(QByteArray& serializedData, QString interfaceName,
+                             SmfRequestTypeID requestType)
+{
+    QDataStream out(m_serverConnection);
+    out << requestType;
+    out << interfaceName;
+    out << serializedData.size();
+    out << serializedData;
+}
+
+/**
+ * This overloaded API is for ESmfGetServices, where data should be
+ * fetched synchronously
+ */
+QByteArray SmfClientQt::sendRequest(QString interfaceName,
+            SmfRequestTypeID requestType)
+{
+    QDataStream out(m_serverConnection);
+    out << requestType;
+    out << interfaceName;
+
+    // TODO: This needs to be asynchronous. Remove this wait when user API is updated.
+    m_serverConnection->waitForBytesWritten(-1);
+
+    QByteArray in;
+    out >> in;
+    return in;
+}
+
+/**
+ * For testing purpose only
+ */
+int SmfClientQt::sendDummyRequest(QByteArray* provider,QString aInterfaceName,
+            SmfRequestTypeID requestType)
+{
+    Q_UNUSED(provider);
+    Q_UNUSED(aInterfaceName);
+    Q_UNUSED(requestType);
+    // ToDo :-
+}
+
+/**
+* CancelRequest.
+* Cancels an outstanding request.
+*/
+void SmfClientQt::CancelRequest()
+{
+// ToDo :-
+}
+
+void SmfClientQt::connectionEstablished()
+{
+    qDebug() << "Connected to server successfully.";
+    // ToDo :-
+}
+
+void SmfClientQt::readIncomingData()
+{
+	// ToDo :-
+}
+
+void SmfClientQt::handleError(QLocalSocket::LocalSocketError error)
+{
+    switch(error)
+    {
+    case QLocalSocket::ServerNotFoundError:
+        qDebug() << "Server not found.";
+        break;
+        
+    default:
+        qDebug() << "Unhandled socket error";
+        break;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfclientqt.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ */
+
+#ifndef SMFCLIENTQT_H
+#define SMFCLIENTQT_H
+
+#include <QObject>
+#include <QByteArray>
+#include <QString>
+#include <QLocalSocket>
+
+#include "smfglobal.h"
+
+class SmfClientQt : public QObject
+	{
+Q_OBJECT
+
+public:
+    explicit SmfClientQt(QObject *parent = 0);
+    
+    ~SmfClientQt();
+
+public:
+    /**
+     * Send a request to the server.
+     * @param aSerializedData serialized by the caller.
+     * @param aInterfaceName Interface name
+     * @param requestType Opcode
+     */
+    int sendRequest(QByteArray& aSerializedData,
+                QString aInterfaceName,
+                SmfRequestTypeID requestType);
+
+    /**
+     * This overloaded API is for ESmfGetServices, where data should be
+     * fetched synchronously
+     */
+    QByteArray sendRequest(QString aInterfaceName,
+                SmfRequestTypeID requestType);
+
+    /**
+     * For testing purpose only
+     */
+    int sendDummyRequest(QByteArray* provider,QString aInterfaceName,
+                SmfRequestTypeID requestType);
+
+    /**
+    * CancelRequest.
+    * Cancels an outstanding request.
+    */
+    void CancelRequest();
+
+private slots:
+    void connectionEstablished();
+    void readIncomingData();
+    void handleError(QLocalSocket::LocalSocketError error);
+
+private:
+    QLocalSocket *m_serverConnection;
+	};
+
+#endif // SMFCLIENTQT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfclientsymbian.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,543 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ */
+
+
+#include <e32cmn.h>
+#include <QtGlobal>
+#include <e32svr.h>
+#include <e32base.h>
+#include <QByteArray>
+#include <qdebug.h>
+
+#include "smfclientsymbian.h"
+
+// Function Declaration - For starting the server process
+static TInt StartServerL();
+static TInt CreateServerProcessL();
+
+
+CSmfClientSymbian* CSmfClientSymbian::NewL(smfObserver* aObserver )
+    {
+	CSmfClientSymbian* self = NewLC( aObserver );
+    CleanupStack::Pop( self );
+    return( self ) ;
+    }
+
+CSmfClientSymbian* CSmfClientSymbian::NewLC(smfObserver* aObserver )
+    {
+	CSmfClientSymbian* self = new ( ELeave ) CSmfClientSymbian( aObserver );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+CSmfClientSymbian::CSmfClientSymbian(smfObserver* aObserver)
+		: iObserver(aObserver),
+		  CActive( EPriorityStandard ),
+		  iDataPtr(NULL, 0, 0)
+	{
+	CActiveScheduler::Add(this);
+	}
+
+void CSmfClientSymbian::ConstructL()
+    {
+	qDebug()<<"Inside CSmfClientSymbian::ConstructL()";
+    User::LeaveIfError(iSession.connectToServer());
+    }
+
+CSmfClientSymbian::~CSmfClientSymbian()
+	{
+	qDebug()<<"~CSmfClientSymbian";
+    Cancel(); // Causes call to DoCancel()
+    iSession.Close();
+	}
+
+void CSmfClientSymbian::DoCancel()
+	{
+	Cancel();
+	}
+
+TInt CSmfClientSymbian::RunError(TInt aError)
+	{
+	qDebug()<<"Inside CSmfClientSymbian::RunError(), error = "<<aError;
+	return KErrNone;
+	}
+
+void CSmfClientSymbian::RunL()
+	{
+	qDebug()<<"Inside CSmfClientSymbian::RunL()";
+	qDebug()<<"iStatus = "<<iStatus.Int();
+	
+    switch ( iStatus.Int() )
+        {
+        case KErrCancel:
+            // The request was canceled
+        	qDebug()<<"KErrCancel";
+            break ;
+
+        case KErrNotReady:
+        	qDebug()<<"KErrNotReady";
+        	break;
+
+        default:
+        	{
+        	qDebug()<<"RunL :- default";
+        	//This contains error followed by actual data
+        	QByteArray receivedData(reinterpret_cast<const char*>(iSession.iDataPtr8.Ptr()),iSession.iDataPtr8.Length());
+        	qDebug()<<"receivedData size = "<<receivedData.size();
+
+        	SmfError errVal;
+        	int errInt;
+        	QByteArray data;
+        	QDataStream reader(&receivedData,QIODevice::ReadOnly);
+        	reader>>errInt;
+        	qDebug()<<"errInt = "<<errInt;
+
+        	errVal = (SmfError)errInt;
+        	reader>>data;
+        	qDebug()<<"data size = "<<data.size();
+
+        	SmfRequestTypeID opcode = (SmfRequestTypeID)iSession.getLastRequest();
+        	if(iObserver)
+        		{
+				iObserver->resultsAvailable(data,opcode,errVal);
+        		}
+        	}
+        	break;
+        }
+	}
+
+// Sync request for server other than getservices
+QByteArray CSmfClientSymbian::sendRequest(QString aInterfaceName, 
+				 SmfRequestTypeID requestType, 
+				 TInt aMaxAllocation,
+				 QByteArray& aSerializedData)
+	{
+	qDebug()<<"Inside CSmfClientSymbian::sendRequest() for intf = "<<aInterfaceName;
+	
+	//Gets data synchronously from the server
+    TPtr8 symbianBuf(iSession.sendSyncRequest(aInterfaceName,requestType, aMaxAllocation, aSerializedData));
+    //convert this into bytearray
+    QByteArray receivedData(reinterpret_cast<const char*>(symbianBuf.Ptr()),symbianBuf.Length());
+    return receivedData;
+	}
+
+QByteArray CSmfClientSymbian::sendSyncRequest(QString aInterfaceName,
+		 SmfRequestTypeID requestType,TInt maxSize,
+		 QByteArray& aSerializedData )
+	{
+	//This will be a synchronous request
+	//note session is opened in ctor and closed in dtor
+	qDebug()<<"Inside CSmfClientSymbian::sendSyncRequest()";
+	qDebug()<<"Interface name = "<<aInterfaceName;
+
+	//Gets data synchronously from the server
+    TPtr8 symbianBuf(iSession.sendSyncRequest(aInterfaceName,requestType,maxSize, aSerializedData));
+    //convert this into bytearray
+    QByteArray receivedData(reinterpret_cast<const char*>(symbianBuf.Ptr()),symbianBuf.Length());
+    return receivedData;
+	}
+
+QByteArray CSmfClientSymbian::sendDSMSyncRequest(SmfRequestTypeID requestType,QByteArray& aSerializedData,SmfError& aErr,TInt maxSize)
+	{
+	Q_UNUSED(aErr)
+			
+	qDebug()<<"CSmfClientSymbian::sendDSMSyncRequest for : "<<requestType;
+	SmfError err = SmfNoError;
+	//Gets data synchronously from the server
+    TPtr8 symbianBuf(iSession.sendDSMSyncRequest(requestType,aSerializedData,err,maxSize));
+    //convert this into bytearray
+    QByteArray receivedData(reinterpret_cast<const char*>(symbianBuf.Ptr()),symbianBuf.Length());
+    qDebug()<<"receivedData size="<<receivedData.size();
+    return receivedData;
+	}
+
+TInt CSmfClientSymbian::sendRequest( QByteArray& aSerializedData, QString aInterfaceName,
+		 SmfRequestTypeID requestType, TInt aMaxAllocation)
+	{
+	//RSessionBase objects sendreceive is called
+	iSession.sendAsyncRequest(aSerializedData,aInterfaceName,requestType,iStatus,aMaxAllocation);
+	SetActive();
+	
+	return KErrNone;
+	}
+
+
+
+
+RSmfClientSymbianSession::RSmfClientSymbianSession()
+		:iDataPtr8(NULL, 0, 0),iDataPtr16(NULL,0),
+		 iIntfNamePtr(NULL,0),iIntfNamePtr8(NULL,0),
+		 iPtrProvider(NULL,0),iPtrProvider8(NULL,0),
+		 iPtrToXtraInfo8(NULL,0),iPtrToXtraInfo(NULL, 0),
+		 iPtr8ToSlot0(NULL,0)
+    {
+    // No implementation required
+    }
+
+TInt RSmfClientSymbianSession::connectToServer()
+    {
+	qDebug()<<"Inside RSmfClientSymbianSession::connectToServer()";
+	
+    TInt error = ::StartServerL();
+    qDebug()<<"StartServerL = "<<error;
+
+    if ( KErrNone == error )
+        {
+		error = CreateSession(KSmfServerName,
+                               Version(),
+                               4 );	// 4 slots used
+        qDebug()<<"CreateSession = "<<error;
+        }
+    return error;
+    }
+
+TPtr8 RSmfClientSymbianSession::sendSyncRequest(QByteArray& aSerializedData, 
+		QString aInterfaceName, SmfRequestTypeID aRequestType, TInt maxSize)
+	{
+	qDebug()<<"Inside RSmfClientSymbianSession::sendSyncRequest() for plugins";
+	qDebug()<<"iInterfaceName = "<<aInterfaceName;
+	iLastRequest = aRequestType;
+	/**
+	 * The message body consists of.- 
+	 * 1. Serialized data to server SmfProvider+page information+extra information
+	 * 2. Interface name as string ("org.symbian.smf.client.gallery")
+	 * 3. Data pointer to be filled by serialized data(QList<smfProvider>)
+	 * 4. Xtra information if any
+	 */
+	if(iProviderBuf8)
+		{
+		delete iProviderBuf8;
+		iProviderBuf8 = NULL;
+		}
+	iProviderBuf8 = HBufC8::NewL(aSerializedData.size());
+	iPtrProvider8.Set(iProviderBuf8->Des());
+	iPtrProvider8.Copy(reinterpret_cast<const TText8*>(aSerializedData.constData()),aSerializedData.length());
+
+	//convert the QByteArray into TPtr
+	TPtrC8 ptrSlot0(reinterpret_cast<const TText8*>(aSerializedData.constData()),aSerializedData.length());
+	qDebug()<<"ptrSlot0 size = "<<ptrSlot0.Size();
+
+	
+	iInterfaceNamebyte.clear();
+	//Pass serialized QString for interface name
+	QDataStream intfNameStream(&iInterfaceNamebyte,QIODevice::WriteOnly);
+	intfNameStream<<aInterfaceName;
+	qDebug()<<"iInterfaceNamebyte size = "<<iInterfaceNamebyte.size();
+	if(iIntfNameBuffer8)
+		{
+		delete iIntfNameBuffer8;
+		iIntfNameBuffer8 = NULL;
+		}
+	iIntfNameBuffer8 = HBufC8::NewL(iInterfaceNamebyte.size());
+	iIntfNamePtr8.Set(iIntfNameBuffer8->Des());
+	iIntfNamePtr8.Copy(reinterpret_cast<const TText8*>(iInterfaceNamebyte.constData()),iInterfaceNamebyte.length());
+	qDebug()<<"After iIntfNamePtr8.Copy";
+
+	if(iBuffer8)
+		{
+		delete iBuffer8;
+		iBuffer8 = NULL;
+		}
+    iBuffer8 = HBufC8::NewL(maxSize);
+    iDataPtr8.Set(iBuffer8->Des());
+    qDebug()<<"After iDataPtr8.Set";
+
+	TIpcArgs args;
+
+    //filling the slots
+    args.Set(0, &iPtrProvider8);
+    args.Set(1, &iIntfNamePtr8);
+    args.Set(2, &iDataPtr8);
+    qDebug()<<"After setting 0,1,2 slots";
+
+    TInt err(KErrBadHandle);
+    qDebug()<<"Before handle";
+    if (Handle()) 
+    	{
+        err = KErrNone;
+        qDebug()<<"Before sendreceive";
+        //synchronous request
+        TInt sendErr = SendReceive(aRequestType, args);
+        if(sendErr)
+			qDebug()<<"SendReceive error = "<<sendErr;
+        }
+    return iDataPtr8;
+	}
+
+
+
+TPtr8 RSmfClientSymbianSession::sendSyncRequest(QString aInterfaceName,
+		SmfRequestTypeID aRequestType,
+		TInt maxSize,
+		QByteArray& aSerializedData)
+	{
+	qDebug()<<"Inside RSmfClientSymbianSession::sendSyncRequest()";
+	qDebug()<<"aInterfaceName = "<<aInterfaceName;
+	
+	iLastRequest = aRequestType;
+	/**
+	 * The message body consists of.- 
+	 * slot 0 = SmfProvider + argument flag + argument + etc
+	 * slot 1 = Interface name serialized
+	 * slot 2 = Data pointer to be filled by server
+	 * slot 3 = not used now
+	 */
+		
+	//Convert the interface name into TPtr
+	//lets pass serialized QString
+	iInterfaceNamebyte.clear();
+	QDataStream intfNameStream(&iInterfaceNamebyte,QIODevice::WriteOnly);
+	intfNameStream<<aInterfaceName;
+    qDebug()<<"iInterfaceNamebyte size = "<<iInterfaceNamebyte.size();
+	if(iIntfNameBuffer8)
+		{
+		delete iIntfNameBuffer8;
+		iIntfNameBuffer8 = NULL;
+		}
+	iIntfNameBuffer8 = HBufC8::NewL(iInterfaceNamebyte.size());
+	iIntfNamePtr8.Set(iIntfNameBuffer8->Des());
+	iIntfNamePtr8.Copy(reinterpret_cast<TUint8*>(iInterfaceNamebyte.data()),iInterfaceNamebyte.length());
+    qDebug()<<"iIntfNamePtr8 size = "<<iIntfNamePtr8.Size();
+	
+	if(iBuffer8)
+		{
+		delete iBuffer8;
+		iBuffer8 = NULL;
+		}
+	qDebug()<<"Allocated for output = "<<maxSize;
+    iBuffer8 = HBufC8::NewL(maxSize);
+    iDataPtr8.Set(iBuffer8->Des());
+    qDebug()<<"After iDataPtr8.Set";
+    
+	if(iProviderBuf8)
+		{
+		delete iProviderBuf8;
+		iProviderBuf8 = NULL;
+		}
+	iProviderBuf8 = HBufC8::NewL(aSerializedData.size());
+	iPtrProvider8.Set(iProviderBuf8->Des());
+	iPtrProvider8.Copy(reinterpret_cast<const TText8*>(aSerializedData.constData()),aSerializedData.length());
+
+	//convert the QByteArray into TPtr
+	TPtrC8 ptrSlot0(reinterpret_cast<const TText8*>(aSerializedData.constData()),aSerializedData.length());
+	qDebug()<<"ptrSlot0 size = "<<ptrSlot0.Size();
+        
+    TIpcArgs args;
+    args.Set(0, &iPtrProvider8);
+    args.Set(1, &iIntfNamePtr8);
+    args.Set(2, &iDataPtr8);
+        
+    TInt err(KErrBadHandle);
+    qDebug()<<"Before handle";
+    if (Handle()) 
+    	{
+        err = KErrNone;
+        qDebug()<<"Before sendreceive";
+        TInt sendErr = SendReceive(aRequestType, args);
+        if(sendErr)
+			qDebug()<<"SendReceive error = "<<sendErr;
+        }
+    return iDataPtr8;
+	}
+
+/**
+ * Sends sync DSM request to the Smf server
+ */
+TPtr8 RSmfClientSymbianSession::sendDSMSyncRequest(SmfRequestTypeID aRequestType,
+		QByteArray& aSerializedData, SmfError aErr, TInt maxSize)
+	{
+	/**
+	 * Slot 0:- Data to be passed to DSM
+	 * Slot 1:- Data returned from DSM
+	 * Slot 2:- Error
+	 */
+	qDebug()<<"Inside RSmfClientSymbianSession::sendDSMSyncRequest()";
+	iLastRequest = aRequestType;
+	if(iSlot0Buffer8)
+		{
+		delete iSlot0Buffer8;
+		iSlot0Buffer8 = NULL;
+		}
+	iSlot0Buffer8 = HBufC8::NewL(aSerializedData.size());
+	iPtr8ToSlot0.Set(iSlot0Buffer8->Des());
+	
+	if(iBuffer8)
+		{
+		delete iBuffer8;
+		iBuffer8 = NULL;
+		}
+    iBuffer8 = HBufC8::NewL(maxSize);
+    iDataPtr8.Set(iBuffer8->Des());
+    
+    TIpcArgs args;
+    args.Set(0, &iPtr8ToSlot0);
+    args.Set(1, &iDataPtr8);
+    iDSMErr.Zero();
+    args.Set(2,&iDSMErr);
+    
+    TInt sendErr = SendReceive(aRequestType,args);
+    qDebug()<<"DSM SendReceive = "<<sendErr;
+    TInt numIndex;
+    TLex iLex(iDSMErr);
+    
+    iLex.Val(numIndex);
+    aErr = (SmfError)numIndex;
+    return iDataPtr8;
+	}
+
+/**
+ * sendAsyncRequest()
+ * Calls SendReceive() after converting into symbian descriptors
+ */
+void RSmfClientSymbianSession::sendAsyncRequest(QByteArray& aSerializedData,
+		QString aInterfaceName,
+		SmfRequestTypeID aRequestType,
+		TRequestStatus& aStatus,
+		TInt aMaxAllocation )
+	{
+	/**
+	 * The message body consists of.- 
+	 * slot 0 = SmfProvider + argument flag + argument + etc
+	 * slot 1 = Interface name serialized
+	 * slot 2 = Data pointer to be filled by server
+	 * slot 3 = not used now
+	 */
+	qDebug()<<"Inside RSmfClientSymbianSession::sendAsyncRequest()";
+	qDebug()<<"iInterfaceName = "<<aInterfaceName;
+	iLastRequest = aRequestType;
+	
+	if(iProviderBuf8)
+		{
+		delete iProviderBuf8;
+		iProviderBuf8 = NULL;
+		}
+	iProviderBuf8 = HBufC8::NewL(aSerializedData.size());
+	iPtrProvider8.Set(iProviderBuf8->Des());
+	iPtrProvider8.Copy(reinterpret_cast<const TText8*>(aSerializedData.constData()),aSerializedData.length());
+
+	//convert the QByteArray into TPtr
+    TPtrC8 ptrSlot0(reinterpret_cast<const TText8*>(aSerializedData.constData()),aSerializedData.length());
+    qDebug()<<"ptrSlot0 size = "<<ptrSlot0.Size();
+    
+	//Convert the interface name into TPtr
+    //Pass serialized QString for interface name
+	iInterfaceNamebyte.clear();
+	QDataStream intfNameStream(&iInterfaceNamebyte,QIODevice::WriteOnly);
+	intfNameStream<<aInterfaceName;
+	qDebug()<<"iInterfaceNamebyte size = "<<iInterfaceNamebyte.size();
+	if(iIntfNameBuffer8)
+		{
+		delete iIntfNameBuffer8;
+		iIntfNameBuffer8 = NULL;
+		}
+	iIntfNameBuffer8 = HBufC8::NewL(iInterfaceNamebyte.size());
+	iIntfNamePtr8.Set(iIntfNameBuffer8->Des());
+	iIntfNamePtr8.Copy(reinterpret_cast<const TText8*>(iInterfaceNamebyte.constData()),iInterfaceNamebyte.length());
+	qDebug()<<"After iIntfNamePtr8.Copy";
+	
+	if(iBuffer8)
+		{
+		delete iBuffer8;
+		iBuffer8 = NULL;
+		}
+    iBuffer8 = HBufC8::NewL(aMaxAllocation);
+    iDataPtr8.Set(iBuffer8->Des());
+    qDebug()<<"After iDataPtr.Set";
+    
+    
+    TIpcArgs args;
+    
+    //filling the slots
+    args.Set(0, &iPtrProvider8);
+    args.Set(1, &iIntfNamePtr8);
+    args.Set(2, &iDataPtr8);
+    qDebug()<<"After setting 0,1,2 slots";
+    
+    TInt err(KErrBadHandle);
+    qDebug()<<"Before Handle()";
+    if (Handle()) 
+    	{
+        err = KErrNone;
+        qDebug()<<"Before sendreceive";
+        SendReceive(aRequestType, args, aStatus);
+        }
+	}
+
+// -----------------------------------------------------------------------------
+// CreateServerProcessL()
+// Creates a server process
+// -----------------------------------------------------------------------------
+//
+static TInt CreateServerProcessL()
+    {
+    TInt result;
+    TUid KSmfServerUID3 = { 0xE5027327 };
+    const TUidType serverUid( KNullUid, KNullUid, KSmfServerUID3 );
+
+    RProcess server;
+
+    result = server.Create( KSmfServerFilename, KNullDesC, serverUid );
+    if ( result != KErrNone )
+        {
+        return  result;
+        }
+
+    server.Resume();
+    server.Close();
+    return  KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// StartServerL()
+// Starts the server - Internally creates a server process
+// -----------------------------------------------------------------------------
+//
+static TInt StartServerL()
+    {
+    TInt result;
+
+    TFindServer findSmfServer( KSmfServerFilename );
+    TFullName name;
+
+    result = findSmfServer.Next( name );
+    
+    if ( result == KErrNone )
+        {
+        // Server already running
+        return KErrNone;
+        }
+
+    RSemaphore semaphore;
+    result = semaphore.CreateGlobal( KSmfServerSemaphoreName, 0 );
+    
+    if ( result != KErrNone )
+        {
+        return  result;
+        }
+
+    result = CreateServerProcessL();
+    qDebug()<<"CreateServerProcessL = "<<result;
+    
+    if ( result != KErrNone )
+        {
+        return  result;
+        }
+
+    semaphore.Wait();
+    semaphore.Close();
+
+    return KErrNone;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfclientsymbian.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,168 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Describes the classes that implement the symbian client part of Smf server.
+ * Private client implementation for Symbian.
+ * 
+ */
+
+#ifndef SMFCLIENTSYMBIAN_H_
+#define SMFCLIENTSYMBIAN_H_
+
+#include <e32base.h>
+#include <e32cmn.h>
+#include <QStringList>
+#include <smfglobal.h>
+#include <smfobserver.h>
+#include <smfprovider.h>
+
+#include "smfclientsymbiansession.h"
+
+/**
+ * Private client implementation for Symbian.
+ */
+class CSmfClientSymbian : public CActive
+{
+
+public: // Constructors and destructors
+	/**
+	 * Two phase contruction - NewL
+	 * @param aObserver For callback
+	 */
+	static CSmfClientSymbian* NewL(smfObserver* aObserver=NULL);
+	
+	/**
+	 * Two phase contruction - NewLC
+	 * @param aObserver For callback
+	 */
+	static CSmfClientSymbian* NewLC(smfObserver* aObserver);
+	
+	/**
+	 * Destructor.
+	 * Destroys the object and release all memory objects.
+	 */
+	virtual ~CSmfClientSymbian();
+	
+public: 
+	/**
+	* This overloaded API is for Synchronous calls to plugin APIs
+	* @param aSerializedData serialized by the caller.
+	* @param aInterfaceName Interface name
+	* @param requestType Opcode
+	* @param aMaxAllocation Max data size that is allocated in the client side for
+	* receiving this data
+	* @return QByteArray
+	*/
+	QByteArray sendRequest(QString aInterfaceName, SmfRequestTypeID requestType,
+	TInt aMaxAllocation, QByteArray& aSerializedData);
+	
+	/**
+	* This API is for Synchronous calls to server
+	* @param aInterfaceName Interface name
+	* @param requestType Opcode
+	* @param maxSize Max data size that is allocated in the client side for
+	* receiving this data
+	* @param aSerializedData serialized by the caller.
+	* @return QByteArray
+	*/
+	QByteArray sendSyncRequest ( QString aInterfaceName, 
+			SmfRequestTypeID requestType, TInt maxSize, 
+			QByteArray &aSerializedData );
+	
+	/**
+	* For sending request specific to DSM. These are used by SmfRelationMngr API
+	* @param requestType Opcode
+	* @param aSerializedData Data to be passed to DSM through server, interpretation
+	* depends on Relation manager and DSM
+	* @maxSize Size to be allocated in the client side
+	* @return Data received from server, interpretation depends on SmfRelationMngr and DSM
+	*/
+	QByteArray sendDSMSyncRequest ( SmfRequestTypeID requestType, 
+			QByteArray& aSerializedData, SmfError& aErr, TInt maxSize = 10 );
+	
+	/**
+	 * Calls SendReceive (Asynchronous) of the RSessionBase object.
+	 * @param aSerializedData serialized by the caller.
+	 * @param aInterfaceName Interface name
+	 * @param requestType Opcode
+	 * @param aMaxAllocation Max data size that is allocated in the 
+	 * client side for receiving this data
+	 * @param xtraInfo XtraInfo when required by server other than smfProvider
+	 */
+	TInt sendRequest( QByteArray& aSerializedData, QString aInterfaceName, 
+			SmfRequestTypeID requestType, TInt aMaxAllocation );
+		
+	/**
+	* CancelRequest.
+	* Cancels an outstanding request.
+	*/
+	void CancelRequest() ;
+	
+protected: // Functions from the base class CActive
+	/**
+	 * From CActive, RunL.
+	 * Callback function.
+	 * Invoked to handle responses from the server.
+	 */
+	void RunL();
+	
+	/**
+	 * From CActive, DoCancel.
+	 * Cancels any outstanding operation.
+	 */
+	void DoCancel();
+	
+	/**
+	 * From CActive, RunError.
+	 */
+	TInt RunError(TInt aError);
+	
+private: // Constructors
+	/**
+	 * CSmfClientSymbian.
+	 * Performs the first phase of two phase construction.
+	 */
+	CSmfClientSymbian(smfObserver* aObserver);
+	
+	/**
+	 * ConstructL.
+	 * Performs the second phase construction of a
+	 * CSmfClientSymbian object.
+	 */
+	void ConstructL();
+	
+private: // Data
+	/**
+	 * iSession, the server session.
+	 */
+	RSmfClientSymbianSession iSession;
+	
+	/**
+	 * For callback, when the client gets serviced by the server
+	 */
+	smfObserver* iObserver;
+	
+	//Interface name, to be passed to the server
+	TBuf<128> iInterfaceName;
+	QString iInterfaceNameQt;
+	//Data ptr
+	TPtr iDataPtr;
+	//Bytearray
+	QByteArray* iBytearray;
+	HBufC* iBuffer;
+	TInt iMaxMessageSize;
+
+	};
+
+#endif /* SMFCLIENTSYMBIAN_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfclientsymbiansession.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,146 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ */
+
+#ifndef SMFCLIENTSYMBIANSESSION_H_
+#define SMFCLIENTSYMBIANSESSION_H_
+
+#include <e32cmn.h>
+#include <QByteArray>
+#include <QString>
+#include <QVariant>
+#include <QList>
+#include <smfglobal.h>
+
+/**
+ * Corresponds to client session in Symbian
+ */
+class RSmfClientSymbianSession : public RSessionBase
+{
+public:
+	/**
+	 * Constructs
+	 */
+	RSmfClientSymbianSession();
+	
+	/**
+	 * Creates the server process if not already running and creates session
+	 * @return Error code while creating server process/ creating session
+	 */
+    TInt connectToServer();
+    
+	/**
+	 * Version
+	 */
+    TVersion Version() const{return TVersion(0,0,1);};
+    
+    void Close(){};
+    
+	bool isConnected();
+	
+	bool connected;
+
+    /**
+     * Calls SendReceive with requestType opcode and packaged data
+     * depending on requestType
+     */
+    TInt sendRequest(SmfRequestTypeID requestType);
+    
+	/**
+	 * Sends sync request to the Smf server - overloaded
+	 */
+	TPtr8 sendSyncRequest(QByteArray& aSerializedData, 
+			QString aInterfaceName, 
+			SmfRequestTypeID aRequestType, 
+			TInt maxSize);
+    
+	/**
+	 * Sends DSM related sync request to the Smf server
+	 */
+	TPtr8 sendDSMSyncRequest(SmfRequestTypeID aRequestType,	
+			QByteArray& aSerializedData,
+			SmfError aErr, TInt maxSize = 0 );
+    
+	/**
+	 * Sends synchronous requests to the Smf server
+	 */
+	TPtr8 sendSyncRequest( QString aInterfaceName, 
+			SmfRequestTypeID aRequestType,
+			TInt maxSize, QByteArray& aSerializedData );
+	
+	/**
+	 * Sends async request to the Smf server
+	 * @param aSerializedData Serialized data to be sent to the server.
+	 * Consists of provider Info(SmfProvider*)+ Other common class data
+	 * (when applicable)-serialized
+	 * @param aInterfaceName Name of the interface
+	 * @param aStatus TRequestStatus
+	 * @param maxSize Size of the data to be allocated. This info is sent to the server
+	 */
+	void sendAsyncRequest(QByteArray& aSerializedData,
+			QString aInterfaceName, SmfRequestTypeID aRequestType,
+			TRequestStatus& aStatus, TInt aMaxAllocation);
+	
+    /**
+     * Returns data,used to return back the data received from server
+     */
+    TPtr8 getData()
+		{
+		 return iDataPtr8;
+		}
+    
+    TInt getLastRequest()
+    	{
+    	return iLastRequest;
+    	}
+	TPtr8 iDataPtr8;
+	TPtr iDataPtr16;
+private:
+	/**
+	 * Following are to form message body.
+	 */
+	QByteArray iBaseProvider;
+    TBuf8<525> iProviderSymbian;
+    TBuf<125> iInterfaceSymbian;
+    TBuf8<125> iInterfaceSymbian8;
+    QString iInterfaceName;
+    HBufC* iIntfNameBuffer;
+    TPtr iIntfNamePtr;
+    HBufC* iBuffer16;
+    TPtr iPtrToXtraInfo;
+    TPtr iPtrProvider;
+	QByteArray iInterfaceNamebyte;
+	TBuf<100> iDSMErr;
+	HBufC8* iProviderBuf8;
+	TPtr8 iPtrProvider8;
+	HBufC8* iIntfNameBuffer8;
+	TPtr8 iIntfNamePtr8;
+	HBufC8* iBuffer8;
+	HBufC8* iXtraInfoBuf8;
+	TPtr8 iPtrToXtraInfo8;
+	HBufC8* iSlot0Buffer8;
+	TPtr8 iPtr8ToSlot0;
+	TInt iMaxMessageSize;
+	TInt iMaxSize;
+	/**
+	 * Last request opcode
+	 */
+	TInt iLastRequest;
+	
+private:
+	QList<QVariant*> result;
+
+	};
+
+#endif /* SMFCLIENTSYMBIANSESSION_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfcontactfetcher.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,93 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfContactFetcher class is for fetching SmfContact related info
+ *
+ */
+
+#include "smfcontactfetcher.h"
+#include "smfcontactfetcher_p.h"
+
+SmfContactFetcher::SmfContactFetcher(SmfProvider* baseProvider)
+	{
+	m_baseProvider = baseProvider;
+	
+	//creating private impl wrapper
+	m_private = new SmfContactFetcherPrivate(this);
+	}
+
+SmfContactFetcher::SmfContactFetcher(SmfProvider* baseProvider, SmfContact* contact)
+	{
+	m_baseProvider = baseProvider;
+	m_frndContact = contact;
+	
+	//creating private impl wrapper
+	m_private = new SmfContactFetcherPrivate(this);
+	}
+
+SmfContactFetcher::~SmfContactFetcher()
+	{
+	if(m_baseProvider)
+		{
+		delete m_baseProvider;
+		m_baseProvider = NULL;
+		}
+	if(m_frndContact)
+		{
+		delete m_frndContact;
+		m_frndContact = NULL;
+		}
+	/** @TODO:- Request to unload the plugin*/
+	}
+
+bool SmfContactFetcher::friends(int pageNum,int perPage)
+	{
+	return m_private->friends(pageNum,perPage);
+	}
+
+bool SmfContactFetcher::followers(int pageNum,int perPage)
+	{
+	return m_private->followers(pageNum,perPage);
+	}
+
+void  SmfContactFetcher::search(SmfContact* contact,int pageNum,int perPage) 
+	{
+	m_private->search(contact,pageNum,perPage);
+	}
+
+bool  SmfContactFetcher::searchNear(SmfLocation* location,SmfLocationSearchBoundary proximity,int pageNum,int perPage) 
+	{
+	return m_private->searchNear(location, proximity, pageNum, perPage);
+	}
+
+bool SmfContactFetcher::groups(int pageNum,int perPage) 
+	{
+	return m_private->groups(pageNum,perPage);
+	}
+
+bool  SmfContactFetcher::searchInGroup(SmfGroup group,int pageNum,int perPage) 
+	{
+	return m_private->searchInGroup(group,pageNum,perPage);
+	}
+
+void SmfContactFetcher::customRequest(const int& operationId,QByteArray* customData)
+	{
+	m_private->customRequest(operationId, customData);
+	}
+
+SmfProvider* SmfContactFetcher::getProvider() const
+	{
+	return m_baseProvider;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfcontactfetcher.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,258 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfContactFetcher class is for fetching SmfContact related info
+ * 
+ */
+
+#ifndef SMFCONTACTHETCHER_H
+#define SMFCONTACTHETCHER_H
+
+#include <QObject>
+#include <smfglobal.h>
+#include <smfcontact.h>
+#include <smflocation.h>
+#include <smfgroup.h>
+
+// Forward declaration
+class SmfProvider; //base-class for service provider
+
+/**
+ * @ingroup smf_client_group 
+ * Interface to search for contacts/connections from a service provider. This class
+ * provides basic functionality to allow applications to obtain list of
+ * contacts or friends in a social networking service.
+ * Note that to get the base provider info like service name, icon, description etc
+ * use getProvider().
+ * See also:
+ * SmfProvider::serviceName(), SmfProvider::serviceIcon(), SmfProvider::description()
+ *
+ * All of the functionality described here should be implemented by a service
+ * specific plug-in object.
+ * Interface name:- org.symbian.smf.client.contact.fetcher
+ */
+class  SMFCLIENT_EXPORT SmfContactFetcher : public QObject
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructs the SmfContactFetcher.
+	 * @param parent base provider info
+	 * Seeing as this is a plug-in implementation, these will realistically
+	 * be generated by SMF factory of some kind
+	 */
+	SmfContactFetcher( SmfProvider* baseProvider );
+	
+	/**
+	 * Constructs the SmfContactFetcher.
+	 * @param parent base provider info
+	 * @param contact Used for searching friends of the given contact
+	 * Seeing as this is a plug-in implementation, these will realistically
+	 * be generated by SMF factory of some kind
+	 */
+	SmfContactFetcher( SmfProvider* baseProvider, SmfContact* contact );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfContactFetcher();
+
+public:
+	/**
+	 * Get the friend listing asynchronously. The friendsListAvailable() signal 
+	 * is emitted with SmfContactList once data is arrived. When the list is big,
+	 * user can specify the page number and per page item data. If not supplied 
+	 * by the user default values are used. 
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 * @return true if success, else false
+	 */
+	bool friends ( int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE );
+
+	/**
+	 * Get the list of followers asynchronously. The followersListAvailable() signal
+	 * is emitted with SmfContactList once data is arrived. Please note that some
+	 * service may not support followers/fans - FALSE is returned if not supported.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 * @return true if success, else false
+	 */
+	bool followers ( int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE );
+
+	/**
+	 * Searches for a contact The searchContactFinished() signal
+	 * is emitted with SmfContactList once data is arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param contact The contact to be searched. The serach criteria must be 
+	 * set as one of its fields.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void search ( SmfContact* contact, int pageNum = SMF_FIRST_PAGE,
+					int perPage = SMF_ITEMS_PER_PAGE );
+
+	/**
+	 * Searches for a contacts (friends) who are near the user. The signal 
+	 * searchNearFinished() is emitted with SmfContactList once data is arrived.
+	 * Proximity defines accuracy level. When the list is big user can specify 
+	 * the page number and per page item data. If not supplied by the user 
+	 * default values are used.
+	 * @param location The location information
+	 * @param proximity The search boundary criteria
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	bool searchNear ( SmfLocation* location, 
+					SmfLocationSearchBoundary proximity,
+					int pageNum = SMF_FIRST_PAGE,
+					int perPage = SMF_ITEMS_PER_PAGE);
+
+	/**
+	 * Get the list of groups. The groupListAvailable() signal is emitted with 
+	 * SmfGroupList once data is arrived. False might be returned if this service 
+	 * doesn't support any mode of grouping (very rare). When the list is big, 
+	 * user can specify the page number and per page item data. If not supplied 
+	 * by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	bool groups ( int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE );
+	
+	/**
+	 * Searches for Smf Contacts in an Smf group. The signal searchInGroupFinished() 
+	 * is emitted with SmfContactList once data is arrived. When the list is big user 
+	 * can specify the page number and per page item data. If not supplied by the 
+	 * user default values are used.
+	 * @param group The group to be searched in
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 * @return true if success, else false
+	 */
+	bool searchInGroup ( SmfGroup group,
+						int pageNum = SMF_FIRST_PAGE,
+						int perPage = SMF_ITEMS_PER_PAGE );
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+signals:
+
+	/**
+	 * This signal is emitted when a request to get friends is completed.
+	 * Note if number of friends is large, then it can download the list 
+	 * page by page. In that case this signal is emitted multiple times.
+	 * @param list list of friends. Ownership of memory is transferred.
+	 * @param error error value
+	 * @param resultPage Page number info
+	 * @see friends()
+	 */
+	void friendsListAvailable ( SmfContactList* list, 
+			SmfError error, SmfResultPage resultPage );
+
+	/**
+	 * This signal is emitted when a request to get followers is completed
+	 * Note if number of followers is large, then it can download the list 
+	 * page by page. In that case this signal is emitted multiple times.
+	 * @param list list of followers. Ownership of memory is transferred.
+	 * @param error error value
+	 * @param resultPage Page number info
+	 * @see followers()
+	 */
+	void followersListAvailable ( SmfContactList* list, 
+			SmfError error, SmfResultPage resultPage );
+	
+	/**
+	 * This signal is emitted when search for a contact is finished.
+	 * Note if number of contacts in the search is large, then it can download 
+	 * the list page by page. In that case this signal is emitted multiple times.
+	 * @param list List of filtered contacts. Ownership of memory is transferred.
+	 * @param resultPage Page number info
+	 * @see search()
+	 */
+	void searchContactFinished ( SmfContactList* list,
+			SmfError error, SmfResultPage resultPage );
+
+	/**
+	 * Emitted when search for contacts who are near a geographic location, is finished.
+	 * Note if number of contacts in the search is large, then it can download the list page by page
+	 * In that case this signal is emitted multiple times.
+	 * @param list List of filtered contacts. Ownership of memory is transferred.
+	 * @param resultPage Page number info
+	 * @see search()
+	 */
+	void searchNearFinished(SmfContactList* list,SmfError error, SmfResultPage resultPage);
+
+	/**
+	 * This signal is emitted when a request to get groups is completed
+	 * Note if number of groups is large, then it can download the list 
+	 * page by page. In that case this signal is emitted multiple times.
+	 * @param list list of groups. Ownership of memory is transferred.
+	 * @param error error value
+	 * @param resultPage Page number info
+	 * @see groups()
+	 */
+	void groupListAvailable ( SmfGroupList* list, 
+			SmfError error, SmfResultPage resultPage );
+
+	/**
+	 * Emitted when search for a contact in a group is finished
+	 * Note if number of contacts in the search is large, then it can download the list page by page
+	 * In that case this signal is emitted multiple times.
+	 * @param list list of filtered contacts. Ownership of memory is transferred.
+	 * @param resultPage Page number info
+	 * @see searchInGroup()
+	 */
+	void searchInGroupFinished(SmfContactList* list,SmfError error, SmfResultPage resultPage);
+	
+	/**
+	 * Emitted when custom data is available
+	 * @param operationId Requested operation id
+	 * @param customData Custom data received, interpretation is not the responsibility 
+	 * of Smf. Ownership of memory is transferred.
+	 */
+	void customDataAvailable ( int operationId, QByteArray* customData );
+	
+private:
+	/**
+	 * Gets the base provider info
+	 */
+	SmfProvider* getProvider() const;
+	
+// Friend Class declaration
+	//so that private impl can directly call emit
+	friend class SmfContactFetcherPrivate;
+	
+private:
+	SmfProvider* m_baseProvider;
+	SmfContact* m_frndContact; 				//used for searching
+	SmfContactFetcherPrivate* m_private;	//private impl wrapper
+
+	};
+
+SMF_SERVICE_NAME(SmfContactFetcher, "org.symbian.smf.client.contact.fetcher\0.2")
+
+#endif // SMFCONTACTHETCHER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfcontactfetcher_p.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,457 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private Qt wrapper for SmfContactFetcher
+ * 
+ */
+
+#include <qdebug.h>
+
+#include "smfcontactfetcher.h"
+#include "smfcontactfetcher_p.h"
+#ifdef Q_OS_SYMBIAN
+	#include "smfclientsymbian.h"
+#else
+	#include "smfclientqt.h"
+#endif
+
+/**
+ * Constructor
+ * @param contactFetcher The SmfContactFetcher instance
+ */
+SmfContactFetcherPrivate::SmfContactFetcherPrivate ( SmfContactFetcher* contactFetcher )
+		: m_contactFetcher(contactFetcher)
+	{
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
+#endif
+	}
+
+/**
+ * Destructor
+ */
+SmfContactFetcherPrivate::~SmfContactFetcherPrivate()
+	{
+	if(m_SmfClientPrivate)
+		{
+		delete m_SmfClientPrivate;
+		m_SmfClientPrivate = NULL;
+		}
+	}
+
+/**
+ * Get the friend listing asynchronously. The friendsListAvailable() signal 
+ * is emitted with SmfContactList once data is arrived. When the list is big,
+ * user can specify the page number and per page item data. If not supplied 
+ * by the user default values are used. 
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+ * @return true if success, else false
+ */
+bool SmfContactFetcherPrivate::friends(int pageNum,int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	m_argFlag = 1;
+	SmfProvider* m_baseProvider = m_contactFetcher->getProvider();
+	
+	//serialize start
+	m_dataSerialized.clear();
+	QDataStream write(&m_dataSerialized,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(contactFetcherInterface);
+	int maxAllocation = MaxSmfContactSize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_dataSerialized, intfName, 
+			SmfContactGetFriends, maxAllocation);
+	
+	return true;
+	}
+
+/**
+ * Get the list of followers asynchronously. The followersListAvailable() signal
+ * is emitted with SmfContactList once data is arrived. Please note that some
+ * service may not support followers/fans - FALSE is returned if not supported.
+ * When the list is big user can specify the page number and per page item data.
+ * If not supplied by the user default values are used.
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+ * @return true if success, else false
+ */
+bool SmfContactFetcherPrivate::followers(int pageNum,int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_contactFetcher->getProvider();
+	
+	//serialize start
+	m_dataSerialized.clear();
+	QDataStream write(&m_dataSerialized,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+		
+	QString intfName(contactFetcherInterface);
+	int maxAllocation = MaxSmfContactSize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_dataSerialized, intfName,
+			SmfContactGetFollowers, maxAllocation);
+	
+	return true;
+	}
+  
+/**
+ * Searches for a contact The searchContactFinished() signal
+ * is emitted with SmfContactList once data is arrived.
+ * When the list is big user can specify the page number and per page item data.
+ * If not supplied by the user default values are used.
+ * @param contact The contact to be searched. The serach criteria must be 
+ * set as one of its fields.
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+ */
+void  SmfContactFetcherPrivate::search(SmfContact* contact,int pageNum,int perPage) 
+	{
+	//We need to pass Opcode and SmfProvider+SmfContact serialized into bytearray 
+	SmfProvider* m_baseProvider = m_contactFetcher->getProvider();
+	m_dataSerialized.clear();
+	//serialize start
+	QDataStream write(&m_dataSerialized,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	if(contact)
+		{
+		m_argFlag = 1;
+		write<<m_argFlag;
+		write<<*contact;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<pageNum;
+	
+	QString intfName(contactFetcherInterface);
+	int maxAllocation = MaxSmfContactSize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_dataSerialized, intfName,
+			SmfContactSearch, maxAllocation);
+	}
+
+/**
+ * Searches for a contacts (friends) who are near the user. The signal 
+ * searchNearFinished() is emitted with SmfContactList once data is arrived.
+ * Proximity defines accuracy level. When the list is big user can specify 
+ * the page number and per page item data. If not supplied by the user 
+ * default values are used.
+ * @param location The location information
+ * @param proximity The search boundary criteria
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+ */
+bool  SmfContactFetcherPrivate::searchNear(SmfLocation* location,
+		SmfLocationSearchBoundary proximity,
+		int pageNum,int perPage) 
+	{
+	SmfProvider* m_baseProvider = m_contactFetcher->getProvider();
+	m_dataSerialized.clear();
+	
+	//serialize start
+	QDataStream write(&m_dataSerialized,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	if(location)
+		{
+		m_argFlag = 1;
+		write<<m_argFlag;
+		write<<*location;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	write<<m_argFlag;
+	write<<proximity;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(contactFetcherInterface);
+	int maxAllocation = MaxSmfContactSize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_dataSerialized, intfName,
+			SmfContactSearchNear, maxAllocation);
+	
+	return true;
+	}
+
+/**
+ * Get the list of groups. The groupListAvailable() signal is emitted with 
+ * SmfGroupList once data is arrived. False might be returned if this service 
+ * doesn't support any mode of grouping (very rare). When the list is big, 
+ * user can specify the page number and per page item data. If not supplied 
+ * by the user default values are used.
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+ */
+bool SmfContactFetcherPrivate::groups(int pageNum,int perPage) 
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_contactFetcher->getProvider();
+	m_dataSerialized.clear();
+	
+	//serialize start
+	QDataStream write(&m_dataSerialized,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+		
+	QString intfName(contactFetcherInterface);
+	int maxAllocation = MaxSmfGroupSize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_dataSerialized, intfName,
+			SmfContactGetGroups, maxAllocation);
+	
+	return true;
+	}
+
+/**
+ * Searches for Smf Contacts in an Smf group. The signal searchInGroupFinished() 
+ * is emitted with SmfContactList once data is arrived. When the list is big user 
+ * can specify the page number and per page item data. If not supplied by the 
+ * user default values are used.
+ * @param group The group to be searched in
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+ * @return true if success, else false
+ */
+bool  SmfContactFetcherPrivate::searchInGroup(SmfGroup group,int pageNum,int perPage) 
+	{
+	//We need to pass Opcode and SmfProvider+SmfGroup serialized into bytearray 
+	SmfProvider* m_baseProvider = m_contactFetcher->getProvider();
+	
+	//serialize start
+	m_dataSerialized.clear();
+	QDataStream write(&m_dataSerialized,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<group;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(contactFetcherInterface);
+	int maxAllocation = MaxSmfContactSize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_dataSerialized, intfName,
+			SmfContactSearchInGroup, maxAllocation);
+	
+	return true;
+	}
+
+/**
+ * Request for a custom operation. The signal customDataAvailable() is emitted 
+ * when the result is available.
+ * @param operationId OperationId
+ * @param customData Custom data to be sent
+ * Note:-Interpretation of operationId and customData is upto the concerned
+ * plugin and client application. service provider should provide some
+ * serializing-deserializing utilities for these custom data
+ */
+void SmfContactFetcherPrivate::customRequest ( const int& operationId, QByteArray* customData )
+	{
+	//We need to pass Opcode and SmfProvider+SmfGroup serialized into bytearray 
+	SmfProvider* m_baseProvider = m_contactFetcher->getProvider();
+	
+	//serialize start
+	m_dataSerialized.clear();
+	QDataStream write(&m_dataSerialized,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<operationId;
+	if(customData)
+		{
+		write<<m_argFlag;
+		write<<*customData;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(contactFetcherInterface);
+//ToDo:- How much size to allocate for custom data? keeping MaxSmfContactSize for now
+	int maxAllocation = MaxSmfContactSize;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_dataSerialized, intfName,
+			SmfContactCustomRequest, maxAllocation);
+	}
+
+/**
+ * To notify availibility of asynchronous requests.
+ * @param result Requested result, before using must check error param.
+ * @param opcode Requested opcode, for which the result has arrived.
+ * @param error Error
+ */
+void SmfContactFetcherPrivate::resultsAvailable(QByteArray result,
+		SmfRequestTypeID opcode,SmfError error)
+   	{
+	qDebug()<<"SmfContactFetcherPrivate::resultsAvailable";
+	
+   	QDataStream reader(&result,QIODevice::ReadOnly);
+   	
+   	//Now de-serialize it based on opcode
+   	switch(opcode)
+   		{
+   		case SmfContactGetFriends:
+   			{
+   			SmfContactList* m_contactList = new SmfContactList;
+   			reader>>*m_contactList;
+   			qDebug()<<"m_contactList.count = "<<m_contactList->count();
+
+   			//TODO:-After consulting with PM owner decide page serialization
+   			SmfResultPage page;
+
+   			emit m_contactFetcher->friendsListAvailable(m_contactList,error,page);
+   			}
+   			break;
+   			
+   		case SmfContactGetFollowers:
+   			{
+   			SmfContactList* m_contactList = new SmfContactList;
+   			reader>>*(m_contactList);
+   			qDebug()<<"m_contactList.count = "<<m_contactList->count();
+   			
+   			//TODO:-After consulting with PM owner decide page serialization
+   			SmfResultPage page;
+
+   			emit m_contactFetcher->followersListAvailable(m_contactList,error,page);
+			}
+   			break;
+   			
+   		case SmfContactSearch:
+   			{
+   			SmfContactList* m_contactList = new SmfContactList;
+   			reader>>*(m_contactList);
+   			qDebug()<<"m_contactList.count = "<<m_contactList->count();
+   			
+   			/** @TODO:-After consulting with PM owner decide page serialization */
+   			SmfResultPage page;
+   			
+  			emit m_contactFetcher->searchContactFinished(m_contactList,error,page);
+   			}
+   			break;
+   			
+   		case SmfContactSearchNear:
+   			{
+   			SmfContactList* m_contactList = new SmfContactList;
+   			reader>>*(m_contactList);
+   			qDebug()<<"m_contactList.count = "<<m_contactList->count();
+   			
+   			/** @TODO:-After consulting with PM owner decide page serialization*/
+   			SmfResultPage page;
+   			
+   			emit m_contactFetcher->searchNearFinished(m_contactList,error,page);
+   			}
+   			break;
+   			
+   		case SmfContactGetGroups:
+   			{
+   			qDebug()<<"Before reader>>m_grpList";
+   			SmfGroupList *m_grpList = new SmfGroupList;
+   			reader>>*(m_grpList);
+   			
+   			/** @TODO:-After consulting with PM owner decide page serialization */
+   			SmfResultPage page;
+   			
+   			qDebug()<<"m_grpList.count = "<<m_grpList->count();
+   			emit m_contactFetcher->groupListAvailable(m_grpList,error,page);
+   			}
+   			break;
+   			
+   		case SmfContactSearchInGroup:
+   			{
+   			SmfContactList* m_contactList = new SmfContactList;
+   			reader>>*(m_contactList);
+   			
+   			//TODO:-After consulting with PM owner decide page serialization
+   			SmfResultPage page;
+   			
+   			qDebug()<<"m_contactList.count = "<<m_contactList->count();
+   			
+   			emit m_contactFetcher->searchInGroupFinished(m_contactList,error,page);
+   			}
+   			break;
+   			
+   		case SmfContactCustomRequest:
+   			{
+   			int operationId;
+   			QByteArray *data = new QByteArray;
+   			reader>>operationId;
+   			reader>>*data;
+   			
+   			qDebug()<<"operationId = "<<operationId;
+   			qDebug()<<"data size = "<<data->size();
+   			emit m_contactFetcher->customDataAvailable(operationId, data);
+   			}
+   			break;
+   			
+   		default:
+   			qDebug()<<"default - Contact Private Unknown opcode";
+   			User::Panic(_L("Contact Private Unknown opcode = "),opcode);
+   		}
+   	}
+
+QDataStream &operator<<( QDataStream &aDataStream, const SmfError &err )
+	{
+	quint32 errInt = (quint32)err;
+	aDataStream<<errInt;
+	return aDataStream;
+	}
+
+
+QDataStream &operator>>( QDataStream &aDataStream, SmfError &err )
+	{
+	quint32 errInt;
+	aDataStream>>errInt;
+	err = (SmfError)errInt;
+	return aDataStream;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfcontactfetcher_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,183 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private Qt wrapper for SmfContactFetcher
+ * 
+ */
+
+#ifndef SMFCLIENTPRIVATE_H_
+#define SMFCLIENTPRIVATE_H_
+
+#include <smfprovider.h>
+#include <smfclientglobal.h>
+#include <smfglobal.h>
+#include <smfobserver.h>
+#include <smflocation.h>
+#include <smfgroup.h>
+
+// Forward Declaration
+class SmfProvider;
+class SmfContact;
+class SmfContactFetcher;
+#ifdef Q_OS_SYMBIAN
+	class CSmfClientSymbian;
+#else
+	class SmfClientQt;
+#endif
+
+
+/**
+ * Private Qt wrapper
+ * Provided to accomodate diff facilities in diff platforms.
+ * Uses Symbian client-server for Symbian
+ * QDbus for linux
+ * QLocalserver for rest of the platforms
+ * Note:- only symbian client-server impl is provided at the moment
+ **/
+class SmfContactFetcherPrivate : public smfObserver
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructor
+	 * @param contactFetcher The SmfContactFetcher instance
+	 */
+	SmfContactFetcherPrivate ( SmfContactFetcher* contactFetcher = 0 );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfContactFetcherPrivate();
+	//Note we need to expose the methods later through some macro
+	
+public:
+	/**
+	 * Get the friend listing asynchronously. The friendsListAvailable() signal 
+	 * is emitted with SmfContactList once data is arrived. When the list is big,
+	 * user can specify the page number and per page item data. If not supplied 
+	 * by the user default values are used. 
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 * @return true if success, else false
+	 */
+	bool friends ( int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE );
+
+	/**
+	 * Get the list of followers asynchronously. The followersListAvailable() signal
+	 * is emitted with SmfContactList once data is arrived. Please note that some
+	 * service may not support followers/fans - FALSE is returned if not supported.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 * @return true if success, else false
+	 */
+	bool followers ( int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE );
+
+	/**
+	 * Searches for a contact The searchContactFinished() signal
+	 * is emitted with SmfContactList once data is arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param contact The contact to be searched. The serach criteria must be 
+	 * set as one of its fields.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void search ( SmfContact* contact, int pageNum = SMF_FIRST_PAGE,
+					int perPage = SMF_ITEMS_PER_PAGE );
+	
+	/**
+	 * Searches for a contacts (friends) who are near the user. The signal 
+	 * searchNearFinished() is emitted with SmfContactList once data is arrived.
+	 * Proximity defines accuracy level. When the list is big user can specify 
+	 * the page number and per page item data. If not supplied by the user 
+	 * default values are used.
+	 * @param location The location information
+	 * @param proximity The search boundary criteria
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	bool searchNear ( SmfLocation* location, 
+					SmfLocationSearchBoundary proximity,
+					int pageNum = SMF_FIRST_PAGE,
+					int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Get the list of groups. The groupListAvailable() signal is emitted with 
+	 * SmfGroupList once data is arrived. False might be returned if this service 
+	 * doesn't support any mode of grouping (very rare). When the list is big, 
+	 * user can specify the page number and per page item data. If not supplied 
+	 * by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	bool groups ( int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE );
+
+	/**
+	 * Searches for Smf Contacts in an Smf group. The signal searchInGroupFinished() 
+	 * is emitted with SmfContactList once data is arrived. When the list is big user 
+	 * can specify the page number and per page item data. If not supplied by the 
+	 * user default values are used.
+	 * @param group The group to be searched in
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 * @return true if success, else false
+	 */
+	bool searchInGroup ( SmfGroup group,
+						int pageNum = SMF_FIRST_PAGE,
+						int perPage = SMF_ITEMS_PER_PAGE );
+
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+   
+public: //from smfobserver
+	/**
+	 * To notify availibility of asynchronous requests.
+	 * @param result Requested result, before using must check error param.
+	 * @param opcode Requested opcode, for which the result has arrived.
+	 * @param error Error
+	 */
+	void resultsAvailable ( QByteArray result,
+			SmfRequestTypeID opcode, SmfError error );
+	
+private:
+	SmfContactFetcher* m_contactFetcher;
+	QByteArray m_dataSerialized;	//serialized byte array of provider and data
+	//QByteArray m_xtraInfoSerialized;	//serialized xtra info, order of serialization follows order of param
+	quint8 m_argFlag;
+#ifdef Q_OS_SYMBIAN
+	CSmfClientSymbian* m_SmfClientPrivate;
+	friend class CSmfClientSymbian;
+#else
+	SmfClientQt* m_SmfClientPrivate;
+	friend class SmfClientQt;
+#endif
+	
+	};
+
+QDataStream &operator<<( QDataStream &aDataStream, const SmfError &err );
+QDataStream &operator>>( QDataStream &aDataStream, SmfError &err );
+
+#endif /* SMFCLIENTPRIVATE_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfgallery.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ *
+ * Description:
+ * The SmfGallery class 
+ *
+ */
+
+#include "smfgallery.h"
+#include "smfgallery_p.h"
+
+
+SmfGallery::SmfGallery(SmfProvider* baseprovider):m_baseProvider(baseprovider)
+	{
+	//creating private impl wrapper
+	m_private = new SmfGalleryPrivate(this);
+	}
+
+SmfGallery::~SmfGallery()
+	{
+	if(m_private)
+		{
+		delete m_private;
+		m_private = NULL;
+		}
+	}
+
+/**
+ * Get the album listing asynchronously. The albumsAvailable() signal is 
+ * emitted with SmfPictureAlbumList once the albums have arrived.
+ * When the list is big user can specify the page number and per page item data.
+ * If not supplied by the user default values are used.
+ * @param names the subject or any keywords to be used to filter albums with that name
+ * @param user the user whose albums are requested 
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+ */
+void SmfGallery::albums(QStringList names, SmfContact* user, int pageNum, int perPage)
+	{
+	m_private->albums(names,user, pageNum, perPage);	
+	}
+
+/**
+ * Get the picture listing asynchronously. The picturesAvailable() signal is 
+ * emitted with SmfPictureList once the pictures have arrived.
+ * When the list is big user can specify the page number and per page item data.
+ * If not supplied by the user default values are used.
+ * @param albums album(s) whose pictures are being requested
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+ */
+void SmfGallery::pictures(SmfPictureAlbumList &albums, int pageNum, int perPage)
+	{
+	m_private->pictures( albums, pageNum, perPage);
+	}
+
+
+/**
+ * Returns a user title/caption for the picture
+ */
+void SmfGallery::description ( SmfPicture& picture )
+	{
+	m_private->description(picture);
+	}
+
+/**
+ * Upload an image.Implemented as slot to connect to UI controls more easily
+ * uploadFinished() signal is emitted with the success value of the upload
+ * @param image the image to be uploaded
+ * @param album the optional destination album name 
+ */
+void SmfGallery::upload(SmfPicture* image, SmfPictureAlbum* album)
+	{
+	m_private->upload(image,album);
+	}
+
+/**
+ * Upload an list image.Implemented as slot to connect to UI controls more easily
+ * uploadFinished() signal is emitted with the success value of the upload
+ * @param images the list image to be uploaded
+ * @param album the optional destination album name 
+ */
+void SmfGallery::upload(SmfPictureList* images, SmfPictureAlbum* album) 
+	{
+	m_private->upload(images,album);
+	}
+
+/**
+ * Posts a comment for an image. uploadFinished() signal is emitted
+ * with success of the post once comment is posted.
+ * @param image Image to comment on
+ * @param comment Comment to post
+ */
+void SmfGallery::postComment(SmfPicture image, SmfComment comment) 
+	{
+	m_private->postComment(image,comment);
+	}
+   
+/**
+ * Request for a custom operation.
+ * @param operationId OperationId
+ * @param customData Custom data to be sent
+ * Note:-Interpretation of operationId and customData is upto the concerned
+ * plugin and client application. service provider should provide some
+ * serializing-deserializing utilities for these custom data
+ */
+void SmfGallery::customRequest(const int& operationId,QByteArray* customData)
+	{
+	m_private->customRequest(operationId, customData);
+	}
+
+/**
+* Gets the base provider info
+*/
+SmfProvider* SmfGallery::getProvider() const
+	{
+	return m_baseProvider;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfgallery.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,188 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ *
+ * Description:
+ * The SmfGallery class 
+ *
+ */
+
+#ifndef SMFGALLERY_H
+#define SMFGALLERY_H
+
+#include <QObject>
+#include <smfglobal.h>
+#include <smfclientglobal.h>
+#include <smfpicture.h>
+#include <smfpicturealbum.h>
+
+class SmfGalleryPrivate;
+class SmfProvider;
+class SmfContact;
+class SmfComment;
+
+/**
+ * @ingroup smf_client_group 
+ * Interface to a remote gallery service. This class
+ * provides some basic gallery functionality to allow applications
+ * to interact with a picture gallery in a social network.
+ *
+ * Note that branding information for the particular service implementation
+ * is available from getProvider() API. See also:
+ * SmfProvider::serviceName(), SmfProvider::serviceIcon()
+ *
+ * All of the functionality described here should be implemented by a service
+ * specific plug-in object.
+ * Interface name for SmfGallery org.symbian.smf.client.gallery
+ */
+class SMFCLIENT_EXPORT SmfGallery : public QObject
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructs SmfGallery.
+	 * @param baseProvider The base provider info
+	 */
+	SmfGallery(SmfProvider* baseprovider);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfGallery();
+
+public slots:
+	/**
+	 * Get the album listing asynchronously. The albumsAvailable() signal is 
+	 * emitted with SmfPictureAlbumList once the albums have arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param names the subject or any keywords to be used to filter albums with that name
+	 * @param user the user whose albums are requested 
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void albums ( QStringList names, SmfContact* user, 
+					int pageNum = SMF_FIRST_PAGE,
+					int perPage = SMF_ITEMS_PER_PAGE );
+		
+	/**
+	 * Get the picture listing asynchronously. The picturesAvailable() signal is 
+	 * emitted with SmfPictureList once the pictures have arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param albums album(s) whose pictures are being requested
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void pictures ( SmfPictureAlbumList &albums, 
+					int pageNum = SMF_FIRST_PAGE,
+					int perPage = SMF_ITEMS_PER_PAGE );
+
+	/**
+	 * Returns a user title/caption for the picture
+	 */
+	void description ( SmfPicture& picture );
+	
+public slots:
+	/**
+	 * Upload an image.Implemented as slot to connect to UI controls more easily
+	 * uploadFinished() signal is emitted with the success value of the upload
+	 * @param image the image to be uploaded
+	 * @param album the optional destination album name 
+	 */
+	void upload ( SmfPicture* image, SmfPictureAlbum* album = NULL );
+
+	/**
+	 * Upload an list image.Implemented as slot to connect to UI controls more easily
+	 * uploadFinished() signal is emitted with the success value of the upload
+	 * @param images the list image to be uploaded
+	 * @param album the optional destination album name 
+	 */
+	void upload ( SmfPictureList* images, SmfPictureAlbum* album = NULL );
+
+	/**
+	 * Posts a comment for an image. uploadFinished() signal is emitted
+	 * with success of the post once comment is posted.
+	 * @param image Image to comment on
+	 * @param comment Comment to post
+	 */
+	void postComment ( SmfPicture image, SmfComment comment );
+	
+	/**
+	 * Request for a custom operation.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+signals:
+	/**
+	 * Notification on arrival of list of SmfPictureAlbum as a result of call to @ref albums().
+	 * @param pics Picture list
+	 * @param error Error string
+	 * @param resultPage Page number info
+	 */
+	void albumsAvailable ( SmfPictureAlbumList* albums, 
+			SmfError error, SmfResultPage resultPage );
+	
+	/**
+	 * Notification on arrival of list of SmfPicture as a result of request.
+	 * Note if number of friends is large, then it can download the list page by page.
+	 * In that case this signal is emitted multiple times.
+	 * through pictures().
+	 * @param pics Picture list
+	 * @param error Error string
+	 * @param resultPage Page number info
+	 */
+	void picturesAvailable ( SmfPictureList* pics, 
+			SmfError error, SmfResultPage resultPage );
+	
+	void descriptionAvailable( QString desc, SmfError error );
+
+	/**
+	 * Notification of the success of the uploading of image/comment
+	 * @param error The upload success result of each individual pictures
+	 */
+	void uploadFinished ( QList<SmfError> error );
+	
+	/**
+	 * Emitted when custom data is available
+	 * @param operationId Requested operation id
+	 * @param customData Custom data received, interpretation is not the responsibility of Smf
+	 */
+	void customDataAvailable ( int operationId, QByteArray* customData );
+
+private:
+	/**
+	 * Gets the base provider info
+	 */
+	SmfProvider* getProvider() const;
+	
+// Friend Class
+	//friend so that it can directly emit SmfPostProvider's signal
+	friend class SmfGalleryPrivate;
+
+private:
+	SmfProvider* m_baseProvider;
+	SmfGalleryPrivate* m_private;	//private impl wrapper
+	
+	};
+
+SMF_SERVICE_NAME(SmfGallery, "org.symbian.smf.client.gallery\0.2")
+
+#endif // SMFGALLERY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfgallery_p.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,402 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ *
+ * Description:
+ * Private implementation for SmfGallery class 
+ *
+ */
+
+#include <qdebug.h>
+#include <smfprovider.h>
+#include <smfcontact.h>
+#include <smfcomment.h>
+
+#include "smfgallery.h"
+#include "smfgallery_p.h"
+#ifdef Q_OS_SYMBIAN
+	#include "smfclientsymbian.h"
+#else
+	#include "SmfClientQt.h"
+#endif
+
+SmfGalleryPrivate::SmfGalleryPrivate(SmfGallery* gallery)
+		: m_gallery(gallery)
+	{
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
+#endif
+	}
+
+SmfGalleryPrivate::~SmfGalleryPrivate()
+	{
+	if(m_SmfClientPrivate)
+		{
+		delete m_SmfClientPrivate;
+		m_SmfClientPrivate = NULL;
+		}
+	}
+  
+/**
+ * Get the album listing asynchronously. The albumsAvailable() signal is 
+ * emitted with SmfPictureAlbumList once the albums have arrived.
+ * When the list is big user can specify the page number and per page item data.
+ * If not supplied by the user default values are used.
+ * @param names the subject or any keywords to be used to filter albums with that name
+ * @param user the user whose albums are requested 
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+ */
+void SmfGalleryPrivate::albums(QStringList names, SmfContact* user, int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_gallery->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<names;
+	if(user)
+		{
+		write<<m_argFlag;
+		write<<*user;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(galleryInterface);
+	int maxalloc = MaxSmfPictureAlbumSize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfPictureGetAlbums, maxalloc);
+	}
+
+
+/**
+ * Get the picture listing asynchronously. The picturesAvailable() signal is 
+ * emitted with SmfPictureList once the pictures have arrived.
+ * When the list is big user can specify the page number and per page item data.
+ * If not supplied by the user default values are used.
+ * @param albums album(s) whose pictures are being requested
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+ */
+void SmfGalleryPrivate::pictures(SmfPictureAlbumList &albums,int pageNum,int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_gallery->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<albums;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+		
+	QString intfName(galleryInterface);
+	int maxalloc = MaxSmfPictureSize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+		  SmfPictureGetPictures, maxalloc);
+	}
+
+/**
+ * Returns a user title/caption for the picture
+ */
+void SmfGalleryPrivate::description ( SmfPicture& picture )
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_gallery->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<picture;
+	
+	QString intfName(galleryInterface);
+	// ToDo :- Setting max limit of description string as 1000
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+		  SmfPictureDescription, maxalloc);
+	}
+
+/**
+ * Upload an image.Implemented as slot to connect to UI controls more easily
+ * uploadFinished() signal is emitted with the success value of the upload
+ * @param image the image to be uploaded
+ * @param album the optional destination album name 
+ */
+void SmfGalleryPrivate::upload(SmfPicture* image, SmfPictureAlbum* album)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_gallery->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	if(image)
+		{
+		m_argFlag = 1;
+		write<<m_argFlag;
+		write<<*image;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+
+	if(album)
+		{
+		m_argFlag = 1;
+		write<<m_argFlag;
+		write<<*album;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(galleryInterface);
+	int maxalloc = 100; // ToDo:- limit set as 100
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+		  SmfPictureUpload, maxalloc);
+	}
+
+/**
+ * Upload an list image.Implemented as slot to connect to UI controls more easily
+ * uploadFinished() signal is emitted with the success value of the upload
+ * @param images the list image to be uploaded
+ * @param album the optional destination album name 
+ */
+void SmfGalleryPrivate::upload(SmfPictureList* images, SmfPictureAlbum* album)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray
+	m_serializedDataToServer.clear();
+	SmfProvider* m_baseProvider = m_gallery->getProvider();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	if(images)
+		{
+		m_argFlag = 1;
+		write<<m_argFlag;
+		write<<*images;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+
+	if(album)
+		{
+		m_argFlag = 1;
+		write<<m_argFlag;
+		write<<*album;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+		
+	QString intfName(galleryInterface);
+	int maxalloc = 1000; // ToDo:- limit set as 1000
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfPictureMultiUpload, maxalloc);
+	}
+
+/**
+ * Posts a comment for an image. uploadFinished() signal is emitted
+ * with success of the post once comment is posted.
+ * @param image Image to comment on
+ * @param comment Comment to post
+ */
+void SmfGalleryPrivate::postComment(SmfPicture image, SmfComment comment)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_gallery->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<image;
+	write<<m_argFlag;
+	write<<comment;
+		
+	QString intfName(galleryInterface);
+	int maxalloc = 100; // ToDo:- limit set as 100
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfPicturePostComment, maxalloc);
+	}
+
+/**
+ * Request for a custom operation.
+ * @param operationId OperationId
+ * @param customData Custom data to be sent
+ * Note:-Interpretation of operationId and customData is upto the concerned
+ * plugin and client application. service provider should provide some
+ * serializing-deserializing utilities for these custom data
+ */
+void SmfGalleryPrivate::customRequest ( const int& operationId, QByteArray* customData )
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_gallery->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<operationId;
+	if(customData)
+		{
+		write<<m_argFlag;
+		write<<*customData;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+
+	QString intfName(galleryInterface);
+	//ToDo:- How much size to allocate for custo data? keeping MaxSmfPictureSize for now
+	int maxAlloc = MaxSmfPictureSize;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfPictureCustomRequest, maxAlloc);
+	}
+
+
+/**
+ * To notify availibility of asynchronous requests.
+ * @param result Requested result, before using must check error param.
+ * @param opcode Requested opcode, for which the result has arrived.
+ * @param error Error
+ */
+void SmfGalleryPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error)
+	{
+	qDebug()<<"SmfGalleryPrivate::resultsAvailable";
+	qDebug()<<"opcode = "<<opcode;
+	
+	//note:- "result" is serialized and we need to de-serialize it as per opcode
+	//Order of serialization Error value followed by data
+	
+	QDataStream reader(&result,QIODevice::ReadOnly);
+	
+	//Now de-serialize it based on opcode
+	switch(opcode)
+		{
+		case SmfPictureGetAlbums:
+			{
+			qDebug()<<"fOR ALBUMS LIST";
+			SmfPictureAlbumList* m_albums = new SmfPictureAlbumList;
+			reader>>*(m_albums);
+			qDebug()<<" Albums count = "<<m_albums->count();
+			
+			SmfResultPage page; // ToDo :-
+			
+			emit m_gallery->albumsAvailable(m_albums,error,page);
+			break;
+			}
+
+		case SmfPictureGetPictures:
+			{
+			SmfPictureList* m_picList = new SmfPictureList;
+			reader>>*(m_picList);
+			qDebug()<<"m_picList.count = "<<m_picList->count();
+			
+			//ToDo:- not incorporating paging now
+			SmfResultPage page;
+			
+			emit m_gallery->picturesAvailable(m_picList,error,page);
+			break;
+			}
+			
+		case SmfPictureDescription:
+			{
+			QString str;
+			reader>>str;
+			qDebug()<<"Pic desc = "<<str;
+			
+			emit m_gallery->descriptionAvailable(str,error);
+			break;
+			}
+			
+		case SmfPictureUpload:
+		case SmfPicturePostComment:
+			{
+			int errInt;
+			reader>>errInt;
+			qDebug()<<"success = "<<errInt;
+			QList<SmfError> successList;
+			SmfError success = (SmfError)errInt; 
+			successList.append(success);
+			emit m_gallery->uploadFinished(successList);
+			break;
+			}
+			
+		case SmfPictureMultiUpload:
+			{
+			QList<int> successListInt;
+			QList<SmfError> successList;
+			reader>>successListInt;
+			foreach(int success,successListInt)
+				successList.append((SmfError)success);
+
+			emit m_gallery->uploadFinished(successList);
+			break;
+			}
+			
+		case SmfPictureCustomRequest:
+   			{
+   			int operationId;
+   			QByteArray *data = new QByteArray;
+   			reader>>operationId;
+   			reader>>*data;
+   			qDebug()<<"operationId = "<<operationId;
+   			qDebug()<<"data size = "<<data->size();
+   			emit m_gallery->customDataAvailable(operationId, data);
+   			break;
+   			}
+
+		default:
+			User::Panic(_L("Gallery Private = "),opcode);
+		}
+	}
+   
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfgallery_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,153 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ *
+ * Description:
+ * Private implementation for SmfGallery class 
+ *
+ */
+
+#ifndef SMFGALLERY_P_H
+#define SMFGALLERY_P_H
+
+#include <smfclientglobal.h>
+#include <smfglobal.h>
+#include <smfobserver.h>
+#include <smfpicture.h>
+#include <smfpicturealbum.h>
+
+// Forward Declarations
+class SmfProvider;
+class SmfGallery;
+class SmfContact;
+class SmfComment;
+#ifdef Q_OS_SYMBIAN
+	class CSmfClientSymbian;
+#else
+	class SmfClientQt;
+#endif
+
+	
+/**
+ * Private Qt wrapper
+ * Provided to accomodate diff facilities in diff platforms.
+ * Uses Symbian client-server for Symbian
+ * QDbus for linux
+ * QLocalserver for rest of the platforms
+ * Note:- only symbian client-server impl is provided at the moment
+ **/
+class SmfGalleryPrivate : public smfObserver
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructor
+	 */
+	SmfGalleryPrivate(SmfGallery* gallery = 0);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfGalleryPrivate();
+  
+	/**
+	 * Get the album listing asynchronously. The albumsAvailable() signal is 
+	 * emitted with SmfPictureAlbumList once the albums have arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param names the subject or any keywords to be used to filter albums with that name
+	 * @param user the user whose albums are requested 
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void albums ( QStringList names, SmfContact* user, 
+					int pageNum = SMF_FIRST_PAGE,
+					int perPage = SMF_ITEMS_PER_PAGE );
+		
+	/**
+	 * Get the picture listing asynchronously. The picturesAvailable() signal is 
+	 * emitted with SmfPictureList once the pictures have arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param albums album(s) whose pictures are being requested
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void pictures ( SmfPictureAlbumList &albums, 
+					int pageNum = SMF_FIRST_PAGE,
+					int perPage = SMF_ITEMS_PER_PAGE );
+
+	/**
+	 * Returns a user title/caption for the picture
+	 */
+	void description ( SmfPicture& picture );
+
+	/**
+	 * Upload an image.Implemented as slot to connect to UI controls more easily
+	 * uploadFinished() signal is emitted with the success value of the upload
+	 * @param image the image to be uploaded
+	 * @param album the optional destination album name 
+	 */
+	void upload ( SmfPicture* image, SmfPictureAlbum* album = NULL );
+
+	/**
+	 * Upload an list image.Implemented as slot to connect to UI controls more easily
+	 * uploadFinished() signal is emitted with the success value of the upload
+	 * @param images the list image to be uploaded
+	 * @param album the optional destination album name 
+	 */
+	void upload ( SmfPictureList* images, SmfPictureAlbum* album = NULL );
+
+	/**
+	 * Posts a comment for an image. uploadFinished() signal is emitted
+	 * with success of the post once comment is posted.
+	 * @param image Image to comment on
+	 * @param comment Comment to post
+	 */
+	void postComment ( SmfPicture image, SmfComment comment );
+	
+	/**
+	 * Request for a custom operation.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+public:// from smfobserver
+	/**
+	 * To notify availibility of asynchronous requests.
+	 * @param result Requested result, before using must check error param.
+	 * @param opcode Requested opcode, for which the result has arrived.
+	 * @param error Error
+	 */
+	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
+	
+private:
+	SmfGallery* m_gallery;
+	QByteArray m_serializedDataToServer;//serialized byte array of provider+other info to be sent to the server
+	int m_argFlag;
+#ifdef Q_OS_SYMBIAN
+	CSmfClientSymbian* m_SmfClientPrivate;
+	friend class CSmfClientSymbian;
+#else
+	SmfClientQt* m_SmfClientPrivate;
+	friend class SmfClientQt;
+#endif
+
+	};
+
+#endif // SMFGALLERY_P_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfmusic.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,254 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ *
+ * Description:
+ * Music related services
+ */
+
+#include <smfmusicrating.h>
+#include <smfcomment.h>
+#include <smfmusicfingerprint.h>
+
+#include "smfmusic.h"
+#include "smfmusic_p.h"
+
+
+//SmfMusicService start
+SmfMusicService::SmfMusicService(SmfProvider *baseProvider)
+		: m_baseProvider(baseProvider)
+	{
+	m_private = new SmfMusicServicePrivate(this);
+	}
+
+SmfMusicService::~SmfMusicService()
+	{
+	if(m_private)
+		{
+		delete m_private;
+		m_private = NULL;
+		}
+	}
+
+void SmfMusicService::userinfo()
+	{
+	m_private->userinfo();
+	}
+
+void SmfMusicService::searchUser(SmfLocation venue, int pageNum, int perPage)
+	{
+	m_private->searchUser(venue,pageNum,perPage);
+	}
+
+void SmfMusicService::customRequest(const int& operationId,QByteArray* customData)
+	{
+	m_private->customRequest(operationId, customData);
+	}
+
+void SmfMusicService::postCurrentPlaying(SmfTrackInfo track)
+	{
+	m_private->postCurrentPlaying(track);
+	}
+
+void SmfMusicService::postRating(SmfTrackInfo track, SmfMusicRating rate)
+	{
+	m_private->postRating(track,rate);
+	}
+
+void SmfMusicService::postComments(SmfTrackInfo track, SmfComment comment)
+	{
+	m_private->postComments(track,comment);
+	}
+
+SmfProvider* SmfMusicService::getProvider() const
+	{
+	return m_baseProvider;
+	}
+//SmfMusicService end
+
+
+//SmfMusicSearch start
+SmfMusicSearch::SmfMusicSearch(SmfProvider *baseProvider)
+		:m_baseProvider(baseProvider)
+	{
+	m_private = new SmfMusicSearchPrivate(this);
+	}
+
+SmfMusicSearch::~SmfMusicSearch()
+	{
+	if(m_private)
+		{
+		delete m_private;
+		m_private = NULL;
+		}
+	}
+
+void SmfMusicSearch::recommendations(SmfTrackInfo track, int pageNum, int perPage)
+	{
+	m_private->recommendations(track,pageNum,perPage);
+	}
+
+void SmfMusicSearch::tracks(SmfTrackInfo track, int pageNum, int perPage)
+	{
+	m_private->tracks(track,pageNum,perPage);
+	}
+
+void SmfMusicSearch::trackInfo(SmfMusicFingerPrint signature, int pageNum, int perPage)
+	{
+	m_private->trackInfo(signature,pageNum,perPage);
+	}
+
+void SmfMusicSearch::stores(SmfTrackInfo track, int pageNum, int perPage)
+	{
+	m_private->stores(track,pageNum,perPage);
+	}
+
+void SmfMusicSearch::customRequest(const int& operationId,QByteArray* customData)
+	{
+	m_private->customRequest(operationId, customData);
+	}
+
+SmfProvider* SmfMusicSearch::getProvider() const
+	{
+	return m_baseProvider;
+	}
+//SmfMusicSearch end
+
+
+//SmfPlaylistService start
+SmfPlaylistService::SmfPlaylistService(SmfProvider *baseProvider)
+		: m_baseProvider(baseProvider)
+	{
+	m_private = new SmfPlaylistServicePrivate(this);
+	}
+
+SmfPlaylistService::~SmfPlaylistService()
+	{
+	if(m_private)
+		{
+		delete m_private;
+		m_private = NULL;
+		}
+	}
+
+void SmfPlaylistService::playlists(int pageNum, int perPage)
+	{
+	m_private->playlists(pageNum,perPage);
+	}
+
+void SmfPlaylistService::playlistsOf(SmfMusicProfile *user, int pageNum, int perPage)
+	{
+	m_private->playlistsOf(user,pageNum,perPage);
+	}
+
+int SmfPlaylistService::addToPlaylist(SmfPlaylist plst, SmfTrackInfoList *tracks)
+	{
+	return m_private->addToPlaylist(plst,tracks);
+	}
+
+int SmfPlaylistService::postCurrentPlayingPlaylist(SmfPlaylist plst)
+	{
+	return m_private->postCurrentPlayingPlaylist(plst);
+	}
+
+void SmfPlaylistService::customRequest(const int& operationId,QByteArray* customData)
+	{
+	m_private->customRequest(operationId, customData);
+	}
+
+SmfProvider* SmfPlaylistService::getProvider() const
+	{
+	return m_baseProvider;
+	}
+//SmfPlaylistService end
+
+
+//SmfMusicEvents start
+SmfMusicEvents::SmfMusicEvents(SmfProvider *baseProvider)
+		:m_baseProvider(baseProvider)
+	{
+	m_private = new SmfMusicEventsPrivate(this);
+	}
+
+SmfMusicEvents::~SmfMusicEvents()
+	{
+	if(m_private)
+		{
+		delete m_private;
+		m_private = NULL;
+		}
+	}
+
+void SmfMusicEvents::events(SmfLocation venue, int pageNum, int perPage)
+	{
+	m_private->events(venue,pageNum,perPage);
+	}
+
+void SmfMusicEvents::venues(SmfLocation location, int pageNum, int perPage)
+	{
+	m_private->venues(location,pageNum,perPage);
+	}
+
+void SmfMusicEvents::postEvents(SmfEventList events)
+	{
+	m_private->postEvents(events);
+	}
+
+void SmfMusicEvents::customRequest(const int& operationId,QByteArray* customData)
+	{
+	m_private->customRequest(operationId, customData);
+	}
+
+SmfProvider* SmfMusicEvents::getProvider() const
+	{
+	return m_baseProvider;
+	}
+//SmfMusicEvents end
+
+
+//SmfLyricsService start
+SmfLyricsService::SmfLyricsService(SmfProvider *baseProvider)
+		:m_baseProvider(baseProvider)
+	{
+	m_private = new SmfLyricsServicePrivate(this);
+	}
+
+SmfLyricsService::~SmfLyricsService()
+	{
+	if(m_private)
+		{
+		delete m_private;
+		m_private = NULL;
+		}
+	}
+
+void SmfLyricsService::lyrics(SmfTrackInfo track, int pageNum, int perPage)
+	{
+	m_private->lyrics(track,pageNum,perPage);
+	}
+
+void SmfLyricsService::subtitles(SmfTrackInfo track, SmfSubtitleSearchFilter filter, int pageNum, int perPage)
+	{
+	m_private->subtitles(track,filter,pageNum,perPage);
+	}
+
+void SmfLyricsService::customRequest(const int& operationId,QByteArray* customData)
+	{
+	m_private->customRequest(operationId, customData);
+	}
+
+SmfProvider* SmfLyricsService::getProvider() const
+	{
+	return m_baseProvider;
+	}
+//SmfLyricsService end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfmusic.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,595 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ *
+ * Description:
+ * Music related services
+ *
+ */
+
+#ifndef SMFMUSIC_H
+#define SMFMUSIC_H
+
+#include <qcontactgeolocation.h>
+#include <smfglobal.h>
+#include <smfevent.h>
+#include <smfsubtitle.h>
+#include <smfmusicprofile.h>
+#include <smflyrics.h>
+#include <smfplaylist.h>
+#include <smftrackinfo.h>
+#include <smflocation.h>
+#include <smfprovider.h>
+
+class SmfMusicServicePrivate;
+class SmfMusicSearchPrivate;
+class SmfLyricsServicePrivate;
+class SmfPlaylistServicePrivate;
+class SmfMusicEventsPrivate;
+class SmfMusicFingerPrint;
+class SmfMusicRating;
+class SmfComment;
+
+using namespace QtMobility;
+
+
+/**
+ * @ingroup smf_client_group
+ * Basic music service ("org.symbian.smf.client.music.service")
+ */
+class SMFCLIENT_EXPORT SmfMusicService : public QObject
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructs SmfMusicService.
+	 * @param baseProvider The base provider info
+	 */
+	SmfMusicService ( SmfProvider* baseProvider = 0 );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicService ( );
+
+public slots:
+	/**
+	 * Gets self profile information asynchronously.
+	 * userInfoAvailable() signal is emitted with SmfMusicProfile when the info is arrived
+	 */
+	void userinfo ( );
+
+	/**
+	 * Asynchronously searches information about other service users for a particular venue
+	 * searchInfoAvailable() signal is emitted with SmfMusicProfileList when the info is arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void searchUser ( SmfLocation venue, int pageNum = SMF_FIRST_PAGE,
+						int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+public slots:
+	/**
+	 * Posts currently playing track.
+	 * Success can be checked by checking the signal postFinished()
+	 * @param track Track to post
+	 */
+	void postCurrentPlaying ( SmfTrackInfo track);
+	
+	void postRating ( SmfTrackInfo track, SmfMusicRating rate);
+	
+	void postComments ( SmfTrackInfo track, SmfComment comment);
+
+signals:
+	/**
+	 * Notification on arrival of the self profile as result of userinfo().
+	 * @param profile The self profile
+	 */
+	void userInfoAvailable ( SmfMusicProfile* profile, SmfError error );
+	
+	/**
+	 * Notification on arrival of search info
+	 * @param profileList List of music profiles
+	 */
+	void searchInfoAvailable ( SmfMusicProfileList* profileList, 
+			SmfError error, SmfResultPage resultPage );
+	
+	/**
+	 * Signals availability of the result of the customRequest
+	 * @param operationId The ID to be shared between clients and the plugin
+	 * @param customData data
+	 */
+	void customDataAvailable( const int& operationId, QByteArray* customData );
+	
+	/**
+	 * Signals availability of the result of the posting a track or a comment or a rating
+	 * @param error Error if any
+	 */
+	void postfinished ( SmfError error );
+	
+private:
+	/**
+	 * Gets the base provider info
+	 */
+	SmfProvider* getProvider() const;
+	
+// Friend Class
+	friend class SmfMusicServicePrivate;
+	
+private:
+	SmfProvider* m_baseProvider;
+	SmfMusicServicePrivate* m_private;
+
+	};
+
+SMF_SERVICE_NAME(SmfMusicService, "org.symbian.smf.client.music.service\0.2")
+
+
+/**
+ * Provides service ("org.symbian.smf.client.music.search") for music search
+ */
+class SMFCLIENT_EXPORT SmfMusicSearch : public QObject
+	{
+	Q_OBJECT
+	
+public:
+	/**
+	 * Constructs SmfMusicSearch with base provider as arguement.
+	 */
+	SmfMusicSearch ( SmfProvider* baseProvider = 0 );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicSearch();
+	
+public:
+	/**
+	 * Searches for music recommendations similar to a particulartrack asynchronously.
+	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
+	 * once its arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param track The track for which similar recommendations need to be fetched.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void recommendations ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Searches for tracks similar to a given track asynchronously.
+	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
+	 * once its arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param track The search criteria, similar tracks are searched
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void tracks ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Searches for a track having similar finger print asynchronously.
+	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
+	 * once its arrived.
+	 * @param signature The search criteria,signature to be searched for
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void trackInfo ( SmfMusicFingerPrint signature, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Search information about where to buy this song from asynchronously.
+	 * The signal storeSearchAvailable() is emitted with SmfProviderList once its arrived.
+	 * @param track The search criteria for stores
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void stores ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE, 
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+signals:
+	/**
+	 * Emitted when the search result for a track is available.
+	 * Note if number of tacks in the search is large, then it can download the list page by page.
+	 * In that case this signal is emitted multiple times.
+	 * @param resultPage Page number info
+	 */
+	void trackSearchAvailable ( SmfTrackInfoList* result, 
+			SmfError error, SmfResultPage resultPage);
+	
+	/**
+	 *  Emitted when the search result for a store is available.
+	 *  Note if number of tacks in the search is large, then it can download the list page by page.
+	 *  In that case this signal is emitted multiple times.
+	 *  @param resultPage Page number info
+	 */
+	void storeSearchAvailable ( SmfProviderList* result, 
+			SmfError error, SmfResultPage resultPage );
+	
+	/**
+	 * Signals availability of the result of the customRequest
+	 * @param operationId The ID to be shared between clients and the plugin
+	 * @param customData data
+	 */
+	void customDataAvailable( const int& operationId, QByteArray* customData );
+	
+private:
+	/**
+	 * Gets the base provider info
+	 */
+	SmfProvider* getProvider() const;
+	
+private:
+	SmfProvider* m_baseProvider;
+	SmfMusicSearchPrivate* m_private;
+	friend class SmfMusicSearchPrivate;
+	
+	};
+
+SMF_SERVICE_NAME(SmfMusicSearch, "org.symbian.smf.client.music.search\0.2")
+
+
+/**
+ * Provides service ("org.symbian.smf.client.music.playlist")
+ *
+ * Interface to a remote playlist service. This class
+ * provides some basic functionality to allow applications
+ * to interact with playlists in some music related service provider (e.g. last.fm).
+ *
+ * Note that branding information for the particular service implementation
+ * is available from getProvider() API. See also:
+ * SmfProvider::serviceName(), SmfProvider::serviceIcon()
+ *
+ * All of the functionality described here should be implemented by a service
+ * specific plug-in object.
+ *
+ */
+class SMFCLIENT_EXPORT SmfPlaylistService : public QObject
+	{
+	Q_OBJECT
+	
+public:
+	/**
+	 * Constructs SmfPlaylistService with base provider info
+	 * Seeing as this is a plug-in implementation, these will realistically
+	 * be generated by SMF factory of some kind
+	 */
+	SmfPlaylistService ( SmfProvider* baseProvider = 0 );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPlaylistService ( );
+	
+public:
+	/**
+	 * Gets the list playlists for the logged-in user asynchronously.
+	 * The signal playlistsListAvailable() signal is emitted with
+	 * SmfPlaylistList once its arrived .
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void playlists ( int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Gets the list playlists for the given user asynchronously.
+	 * The signal playlistsListAvailable() signal is emitted with
+	 * SmfPlaylistList once its arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param user User for which to get the playlists
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void playlistsOf ( SmfMusicProfile* user, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+public slots:
+	/**
+	 * Upload currently playing track to a playlist. Signal
+	 * playlistUpdated() can be checked for success value
+	 * @param plst The playlist to be added in
+	 * @param tracks The list of tracks to uploaded
+	 */
+	int addToPlaylist ( SmfPlaylist plst, SmfTrackInfoList* tracks );
+	
+	/**
+	 * Upload currently playing playlist . Signal
+	 * playlistUpdated() can be checked for success value
+	 * @param plst The playlist to be uploaded
+	 */
+	int postCurrentPlayingPlaylist ( SmfPlaylist plst );
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+		
+signals:
+	/**
+	 * Notification of availability of list of playlists requested.
+	 * Note if number of list is large, then it can download the list page by page.
+	 * In that case this signal is emitted multiple times.
+	 * @param resultPage Page number info
+	 */
+	void playlistsListAvailable ( SmfPlaylistList*, 
+			SmfError error, SmfResultPage resultPage );
+	/**
+	 * Signals remote updation of playlist with success value
+	 */
+	void playlistUpdated ( SmfError success );
+	
+	/**
+	 * Signals availability of the result of the customRequest
+	 * @param operationId The ID to be shared between clients and the plugin
+	 * @param customData data
+	 */
+	void customDataAvailable( const int& operationId, QByteArray* customData );
+
+private:
+	/**
+	 * Gets the base provider info
+	 */
+	SmfProvider* getProvider() const;
+	
+private:
+	SmfProvider* m_baseProvider;
+	SmfPlaylistServicePrivate* m_private;
+	friend class SmfPlaylistServicePrivate;
+	
+	};
+
+SMF_SERVICE_NAME(SmfPlaylistService, "org.symbian.smf.client.music.playlist\0.2")
+
+
+/**
+ * provides service ("org.symbian.smf.client.music.events")
+ */
+class SMFCLIENT_EXPORT SmfMusicEvents : public QObject
+	{
+	Q_OBJECT
+	
+public:
+	/**
+	 * Constructs SmfMusicEvents with base provider info
+	 * Seeing as this is a plug-in implementation, these will realistically
+	 *  be generated by SMF factory of some kind
+	 */
+	SmfMusicEvents ( SmfProvider* baseProvider = 0 );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicEvents ( );
+	
+public:
+	/**
+	 * Gets list of events in a particular venue asynchronously.
+	 * eventsAvailable() signal is emitted with SmfEventsList once its arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void events ( SmfLocation venue, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Gets list of venues of a particular location asynchronously.
+	 * venuesAvailable() signal is emitted with SmfLocationList once its arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void venues ( SmfLocation location, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+public slots:
+	/**
+	 * Updates events. Might not be supported by all service provider.
+	 * eventsUpdated() signal can be checked for success value.
+	 * @param SmfEventsList List of events to be posted
+	 */
+	void postEvents ( SmfEventList events );
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+signals:
+	/**
+	 * Notification on arrival of event lists
+	 * Note if number of list is large, then it can download the list page by page.
+	 * In that case this signal is emitted multiple times.
+	 * @param resultPage Page number info
+	 */
+	void eventsAvailable ( SmfEventList* list, 
+			SmfError error, SmfResultPage resultPage );
+	
+	/**
+	 * Notification on arrival of venues lists
+	 * Note if number of list is large, then it can download the list page by page.
+	 * In that case this signal is emitted multiple times.
+	 * @param resultPage Page number info
+	 */
+	void venuesAvailable ( SmfLocationList* list, 
+			SmfError error, SmfResultPage resultPage );
+	
+	/**
+	 * Notification of the success of request to post an event
+	 */
+	void eventsUpdated ( SmfError success );
+	
+	/**
+	 * Signals availability of the result of the customRequest
+	 * @param operationId The ID to be shared between clients and the plugin
+	 * @param customData data
+	 */
+	void customDataAvailable( const int& operationId, QByteArray* customData );
+	
+private:
+	/**
+	 * Gets the base provider info
+	 */
+	SmfProvider* getProvider() const;
+	
+private:
+	SmfProvider* m_baseProvider;
+	SmfMusicEventsPrivate* m_private;
+	friend class SmfMusicEventsPrivate;
+	
+	};
+
+SMF_SERVICE_NAME(SmfMusicEvents, "org.symbian.smf.client.music.events\0.2")
+
+
+/**
+ * provides service ("org.symbian.smf.client.music.lyrics")
+ */
+class SMFCLIENT_EXPORT SmfLyricsService : public QObject
+	{
+	Q_OBJECT
+	
+public:
+	/**
+	 * Constructs SmfLyricsService with base provider info.
+	 */
+	SmfLyricsService ( SmfProvider* baseProvider = 0 );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfLyricsService ( );
+	
+public:
+	/**
+	 * Get the lyrics lists asynchrnously, it fetches texts without time info.
+	 * lyricsAvailable() notification comes SmfLyricsList with when the data is available
+	 * @param track Track for which lyrics needs to be fetched.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void lyrics ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Get the lyrics lists asynchrnously, it fetches texts with time info.
+	 * Subtitle search filter can be applied
+	 * subtitleAvailable() notification comes SmfSubtitleList with when the data is available
+	 * @param track Track for which subtitle needs to be fetched.
+	 * @param filter Subtitle search filter
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void subtitles ( SmfTrackInfo track, SmfSubtitleSearchFilter filter,
+			int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+
+signals:
+	/**
+	 * Notification on arrival of lyrics
+	 * Note if the list is large, then it can download the list page by page.
+	 * In that case this signal is emitted multiple times.
+	 * @param resultPage Page number info
+	 */
+	void lyricsAvailable ( SmfLyricsList* list, 
+			SmfError error, SmfResultPage resultPage );
+	
+	/**
+	 * Notification on arrival of subtitle based on filter.
+	 * Note if the list is large, then it can download the list page by page.
+	 * In that case this signal is emitted multiple times.
+	 * @param resultPage Page number info
+	 */
+	void subtitleAvailable ( SmfSubtitleList* list, 
+			SmfError error, SmfResultPage resultPage );
+	
+	/**
+	 * Signals availability of the result of the customRequest
+	 * @param operationId The ID to be shared between clients and the plugin
+	 * @param customData data
+	 */
+	void customDataAvailable( const int& operationId, QByteArray* customData );
+	
+private:
+	/**
+	 * Gets the base provider info
+	 */
+	SmfProvider* getProvider() const;
+	
+private:
+	SmfProvider* m_baseProvider;
+	SmfLyricsServicePrivate* m_private;
+	friend class SmfLyricsServicePrivate;
+	
+	};
+
+SMF_SERVICE_NAME(SmfLyricsService, "org.symbian.smf.client.music.lyrics\0.2")
+
+#endif // SMFMUSIC_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfmusic_p.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,986 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private implementation of music related services
+ * 
+ */
+
+#include <qdebug.h>
+#include <smfmusicrating.h>
+#include <smfcomment.h>
+#include <smfmusicfingerprint.h>
+#include <smfcontact.h>
+
+#include "smfmusic.h"
+#include "smfmusic_p.h"
+#ifdef Q_OS_SYMBIAN
+	#include "smfclientsymbian.h"
+#else
+	#include "smfclientqt.h"
+#endif
+
+
+//SmfMusicServicePrivate start
+SmfMusicServicePrivate::SmfMusicServicePrivate(SmfMusicService* aMusicService)
+		:m_musicService(aMusicService)
+	{
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
+#else
+	//TODO:- Use private impl for other platforms or else Qt impl
+#endif
+	}
+
+SmfMusicServicePrivate::~SmfMusicServicePrivate()
+	{
+	if(m_SmfClientPrivate)
+		{
+		delete m_SmfClientPrivate;
+		m_SmfClientPrivate = NULL;
+		}
+	}
+
+void SmfMusicServicePrivate::userinfo()
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicService->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	
+	QString intfName(musicServiceInterface);
+	int maxalloc = SmfMusicProfileMaxSize;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName, 
+			SmfMusicGetUserInfo, maxalloc);
+	}
+
+void SmfMusicServicePrivate::searchUser(SmfLocation venue, int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicService->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<venue;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(musicServiceInterface);
+	int maxalloc = SmfMusicProfileMaxSize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+	SmfMusicSearchUser, maxalloc);
+	}
+
+void SmfMusicServicePrivate::customRequest ( const int& operationId, QByteArray* customData )
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicService->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<operationId;
+	if(customData)
+		{
+		write<<m_argFlag;
+		write<<*customData;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(musicServiceInterface);
+	//ToDo:- How much size to allocate for custo data? keeping SmfMusicProfileMaxSize for now
+	int maxAlloc = SmfMusicProfileMaxSize;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicServiceCustomRequest, maxAlloc);
+	}
+
+void SmfMusicServicePrivate::postCurrentPlaying(SmfTrackInfo track) 
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicService->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<track;
+	
+	QString intfName(musicServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicPostCurrentPlaying, maxalloc);
+	}
+
+void SmfMusicServicePrivate::postRating(SmfTrackInfo track, SmfMusicRating rate) 
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicService->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<track;
+	write<<m_argFlag;
+	write<<rate;
+
+	QString intfName(musicServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+	SmfMusicPostRating, maxalloc);
+	}
+
+void SmfMusicServicePrivate::postComments(SmfTrackInfo track, SmfComment comment) 
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicService->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<track;
+	write<<m_argFlag;
+	write<<comment;
+	
+	QString intfName(musicServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicPostComment, maxalloc);
+	}
+
+void SmfMusicServicePrivate::resultsAvailable(QByteArray result, SmfRequestTypeID opcode, SmfError error)
+	{
+	//note:- "result" is serialized and we need to de-serialize it as per opcode
+	//Order of serialization Error value followed by data
+	
+	QDataStream reader(&result,QIODevice::ReadOnly);
+	
+	//Now de-serialize it based on opcode
+	switch(opcode)
+		{
+		case SmfMusicGetUserInfo:
+			{
+			SmfMusicProfile* m_profile = new SmfMusicProfile;
+			reader>>*m_profile;
+
+			emit m_musicService->userInfoAvailable(m_profile,error);
+			break;
+			}
+				
+		case SmfMusicSearchUser:
+			{
+			SmfMusicProfileList* m_profileList = new SmfMusicProfileList;
+			reader>>*m_profileList;
+			
+			//ToDo :- not incorporating paging now
+			SmfResultPage page;
+
+			emit m_musicService->searchInfoAvailable(m_profileList, error, page);
+			break;
+			}
+			
+		case SmfMusicPostCurrentPlaying:
+		case SmfMusicPostRating:
+		case SmfMusicPostComment:
+			{
+			emit m_musicService->postfinished(error);
+			break;
+			}
+			
+		case SmfMusicServiceCustomRequest:
+   			{
+   			int operationId;
+   			QByteArray *data = new QByteArray;
+   			reader>>operationId;
+   			reader>>*data;
+   			qDebug()<<"operationId = "<<operationId;
+   			qDebug()<<"data size = "<<data->size();
+   			emit m_musicService->customDataAvailable(operationId, data);
+   			break;
+   			}
+   			
+		default:
+			User::Panic(_L("Music Service Private = "),opcode);
+		}
+	}
+//SmfMusicServicePrivate start
+
+
+//SmfMusicSearchPrivate start
+SmfMusicSearchPrivate::SmfMusicSearchPrivate(SmfMusicSearch *aMusicSearch)
+		: m_musicSearch(aMusicSearch)
+	{
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
+#else
+	//TODO:- Use private impl for other platforms or else Qt impl
+#endif
+	}
+
+SmfMusicSearchPrivate::~SmfMusicSearchPrivate()
+	{
+	if(m_SmfClientPrivate)
+		{
+		delete m_SmfClientPrivate;
+		m_SmfClientPrivate = NULL;
+		}
+	}
+
+void SmfMusicSearchPrivate::recommendations(SmfTrackInfo track, int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray
+	m_serializedDataToServer.clear();
+	SmfProvider* m_baseProvider = m_musicSearch->getProvider();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<track;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+		
+	QString intfName(musicSearchInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicGetRecommendations, maxalloc);
+	}
+
+void SmfMusicSearchPrivate::tracks(SmfTrackInfo track, int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicSearch->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<track;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(musicSearchInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicGetTracks, maxalloc);
+	}
+
+void SmfMusicSearchPrivate::trackInfo(SmfMusicFingerPrint signature, int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicSearch->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<signature;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(musicSearchInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName, 
+			SmfMusicGetTrackInfo, maxalloc);
+	}
+
+void SmfMusicSearchPrivate::stores(SmfTrackInfo track, int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicSearch->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<track;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(musicSearchInterface);
+	/** @TODO:-revisit all the maxalloc */
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicGetStores, maxalloc);
+	}
+
+void SmfMusicSearchPrivate::customRequest ( const int& operationId, QByteArray* customData )
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicSearch->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<operationId;
+	
+	if(customData)
+		{
+		write<<m_argFlag;
+		write<<*customData;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(musicSearchInterface);
+	/** @TODO:-revisit all the maxalloc */
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicSearchCustomRequest, maxalloc);
+	}
+
+
+
+void SmfMusicSearchPrivate::resultsAvailable(QByteArray result, SmfRequestTypeID opcode, SmfError error)
+	{
+	//note:- "result" is serialized and we need to de-serialize it as per opcode
+	//Order of serialization Error value followed by data
+	
+	QDataStream reader(&result,QIODevice::ReadOnly);
+	
+	//Now de-serialize it based on opcode
+	switch(opcode)
+		{
+		case SmfMusicGetRecommendations:
+		case SmfMusicGetTracks:
+		case SmfMusicGetTrackInfo:
+				{
+				SmfTrackInfoList* m_trackInfoList = new SmfTrackInfoList;
+				reader>>*(m_trackInfoList);
+				
+				//ToDo :- not incorporating paging now
+				SmfResultPage page;
+	
+				emit m_musicSearch->trackSearchAvailable(m_trackInfoList,error,page);
+				break;
+				}
+				
+		case SmfMusicGetStores:
+			{
+			SmfProviderList* m_providers = new SmfProviderList;
+			reader>>*(m_providers);
+			
+			//ToDo :- not incorporating paging now
+			SmfResultPage page;
+
+			emit m_musicSearch->storeSearchAvailable(m_providers,error,page);
+			break;
+			}
+
+		case SmfMusicSearchCustomRequest:
+   			{
+   			int operationId;
+   			QByteArray *data = new QByteArray;
+   			reader>>operationId;
+   			reader>>*data;
+   			qDebug()<<"operationId = "<<operationId;
+   			qDebug()<<"data size = "<<data->size();
+   			emit m_musicSearch->customDataAvailable(operationId, data);
+   			break;
+   			}
+
+		default:
+			User::Panic(_L("Music Search Private = "),opcode);
+		}
+	}
+//SmfMusicSearchPrivate end
+
+
+//SmfPlaylistServicePrivate start
+SmfPlaylistServicePrivate::SmfPlaylistServicePrivate(SmfPlaylistService *aPlayLstSrvc)
+		: m_playlstSrvc(aPlayLstSrvc)
+	{
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
+#else
+	//TODO:- Use private impl for other platforms or else Qt impl
+#endif
+	}
+
+SmfPlaylistServicePrivate::~SmfPlaylistServicePrivate()
+	{
+	if(m_SmfClientPrivate)
+		{
+		delete m_SmfClientPrivate;
+		m_SmfClientPrivate = NULL;
+		}	
+	}
+
+void SmfPlaylistServicePrivate::playlists(int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_playlstSrvc->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(playlistServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicGetPlaylists, maxalloc);
+	}
+
+void SmfPlaylistServicePrivate::playlistsOf(SmfMusicProfile *user, int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_playlstSrvc->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	if(user)
+		{
+		m_argFlag = 1;
+		write<<m_argFlag;
+		write<<*user;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+		
+	QString intfName(playlistServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicGetPlaylistsOfUser, maxalloc);
+	}
+
+int SmfPlaylistServicePrivate::addToPlaylist(SmfPlaylist plst, SmfTrackInfoList *tracks)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_playlstSrvc->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<plst;
+	if(tracks)
+		{
+		write<<m_argFlag;
+		write<<*tracks;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+		
+	QString intfName(playlistServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	return m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicAddToPlaylist, maxalloc);
+	}
+
+int SmfPlaylistServicePrivate::postCurrentPlayingPlaylist(SmfPlaylist plst)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_playlstSrvc->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<plst;
+	
+	QString intfName(playlistServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	return m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicPostCurrentPlayingPlaylist, maxalloc);
+	}
+
+void SmfPlaylistServicePrivate::customRequest ( const int& operationId, QByteArray* customData )
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_playlstSrvc->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<operationId;
+	
+	if(customData)
+		{
+		write<<m_argFlag;
+		write<<*customData;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(playlistServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicPlaylistCustomRequest, maxalloc);
+	}
+
+void SmfPlaylistServicePrivate::resultsAvailable(QByteArray result, SmfRequestTypeID opcode, SmfError error)
+	{
+	//note:- "result" is serialized and we need to de-serialize it as per opcode
+	//Order of serialization Error value followed by data
+	
+	QDataStream reader(&result,QIODevice::ReadOnly);
+	
+	//Now de-serialize it based on opcode
+	switch(opcode)
+		{
+		case SmfMusicGetPlaylists:
+		case SmfMusicGetPlaylistsOfUser:
+			{
+			SmfPlaylistList* m_playlistList = new SmfPlaylistList;
+			reader>>*(m_playlistList);
+			
+			//ToDo:-
+			SmfResultPage page;
+			
+			emit m_playlstSrvc->playlistsListAvailable(m_playlistList,error,page);
+			break;
+			}
+			
+		case SmfMusicAddToPlaylist:
+		case SmfMusicPostCurrentPlayingPlaylist:
+			{
+			emit m_playlstSrvc->playlistUpdated(error);
+			break;
+			}
+			
+		case SmfMusicPlaylistCustomRequest:
+   			{
+   			int operationId;
+   			QByteArray *data = new QByteArray;
+   			reader>>operationId;
+   			reader>>*data;
+   			qDebug()<<"operationId = "<<operationId;
+   			qDebug()<<"data size = "<<data->size();
+   			emit m_playlstSrvc->customDataAvailable(operationId, data);
+   			break;
+   			}
+		default:
+			Q_ASSERT_X(1,"SmfPlaylistServicePrivate::resultsAvailable","unknown opcode");
+		}
+	}
+//SmfPlaylistServicePrivate end
+
+
+//SmfMusicEventsPrivate start
+SmfMusicEventsPrivate::SmfMusicEventsPrivate(SmfMusicEvents *aMusicEvent)
+		:m_musicEvent(aMusicEvent)
+	{
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
+#else
+	//TODO:- Use private impl for other platforms or else Qt impl
+#endif
+	}
+
+SmfMusicEventsPrivate::~SmfMusicEventsPrivate()
+	{
+	if(m_SmfClientPrivate)
+		{
+		delete m_SmfClientPrivate;
+		m_SmfClientPrivate = NULL;
+		}
+	}
+
+void SmfMusicEventsPrivate::events(SmfLocation venue, int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicEvent->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<venue;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+		
+	QString intfName(musicEventServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicGetEventsOnLoc, maxalloc);
+	}
+
+void SmfMusicEventsPrivate::venues(SmfLocation location, int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicEvent->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<location;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+		
+	QString intfName(musicEventServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicGetVenueOnLoc, maxalloc);
+	}
+
+void SmfMusicEventsPrivate::postEvents(SmfEventList events)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicEvent->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<events;
+	
+	QString intfName(musicEventServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicPostEvents, maxalloc);
+	}
+
+void SmfMusicEventsPrivate::customRequest ( const int& operationId, QByteArray* customData )
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_musicEvent->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<operationId;
+	
+	if(customData)
+		{
+		write<<m_argFlag;
+		write<<*customData;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(musicEventServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicEventsCustomRequest, maxalloc);
+	}
+
+void SmfMusicEventsPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error)
+	{
+	//note:- "result" is serialized and we need to de-serialize it as per opcode
+	//Order of serialization Error value followed by data
+	
+	QDataStream reader(&result,QIODevice::ReadOnly);
+	
+	//Now de-serialize it based on opcode
+	switch(opcode)
+		{
+		case SmfMusicGetEventsOnLoc:
+			{
+			SmfEventList* m_events = new SmfEventList;
+			reader>>*(m_events);
+			
+			// ToDo :-
+			SmfResultPage page;
+			
+			m_musicEvent->eventsAvailable(m_events,error,page);
+			break;
+			}
+			
+		case SmfMusicGetVenueOnLoc:
+			{
+			SmfLocationList* m_venues = new SmfLocationList;
+			reader>>*(m_venues);
+			
+			//ToDo :-
+			SmfResultPage page;
+			
+			m_musicEvent->venuesAvailable(m_venues,error,page);
+			break;
+			}
+			
+		case SmfMusicPostEvents:
+			m_musicEvent->eventsUpdated(error);
+			break;
+			
+		case SmfMusicEventsCustomRequest:
+   			{
+   			int operationId;
+   			QByteArray *data = new QByteArray;
+   			reader>>operationId;
+   			reader>>*data;
+   			qDebug()<<"operationId = "<<operationId;
+   			qDebug()<<"data size = "<<data->size();
+   			emit m_musicEvent->customDataAvailable(operationId, data);
+   			break;
+   			}
+   			
+		default:
+			Q_ASSERT_X(1,"SmfMusicEventsPrivate::resultsAvailable","unknown opcode");
+		}
+	}
+//SmfMusicEventsPrivate end
+
+
+//SmfLyricsServicePrivate start
+SmfLyricsServicePrivate::SmfLyricsServicePrivate(SmfLyricsService *aLyricsSrvc)
+		: m_lyricsSrvc(aLyricsSrvc)
+	{
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
+#else
+	//TODO:- Use private impl for other platforms or else Qt impl
+#endif
+	}
+
+SmfLyricsServicePrivate::~SmfLyricsServicePrivate()
+	{
+	if(m_SmfClientPrivate)
+		{
+		delete m_SmfClientPrivate;
+		m_SmfClientPrivate = NULL;
+		}
+	}
+
+void SmfLyricsServicePrivate::lyrics(SmfTrackInfo track, int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_lyricsSrvc->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<track;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+		
+	QString intfName(lyricsServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicGetLyrics, maxalloc);
+	}
+
+void SmfLyricsServicePrivate::subtitles(SmfTrackInfo track, SmfSubtitleSearchFilter filter, 
+		int pageNum, int perPage)
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_lyricsSrvc->getProvider();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*(m_baseProvider);
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<track;
+	write<<m_argFlag;
+	write<<filter;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+		
+	QString intfName(lyricsServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicGetSubtitle, maxalloc);
+	}
+
+void SmfLyricsServicePrivate::customRequest ( const int& operationId, QByteArray* customData )
+	{
+	//We need to pass Opcode and SmfProvider serialized into bytearray 
+	SmfProvider* m_baseProvider = m_lyricsSrvc->getProvider();
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<operationId;
+	
+	if(customData)
+		{
+		write<<m_argFlag;
+		write<<*customData;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(lyricsServiceInterface);
+	//TODO:-revisit all the maxalloc
+	int maxalloc = 1000;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfMusicLyricsCustomRequest, maxalloc);
+	}
+
+void SmfLyricsServicePrivate::resultsAvailable(QByteArray result, SmfRequestTypeID opcode, SmfError error)
+	{
+	//note:- "result" is serialized and we need to de-serialize it as per opcode
+
+	QDataStream reader(&result,QIODevice::ReadOnly);
+	
+	//Now de-serialize it based on opcode
+	switch(opcode)
+		{
+		case SmfMusicGetLyrics:
+			{
+			SmfLyricsList* m_lyricsList = new SmfLyricsList;
+			reader>>*(m_lyricsList);
+			
+			// ToDo :-
+			SmfResultPage page;
+			
+			emit m_lyricsSrvc->lyricsAvailable(m_lyricsList,error,page);
+			break;
+			}
+			
+		case SmfMusicGetSubtitle:
+			{
+			SmfSubtitleList* m_subList = new SmfSubtitleList;
+			reader>>*(m_subList);
+			
+			// ToDo :-
+			SmfResultPage page;
+			
+			emit m_lyricsSrvc->subtitleAvailable(m_subList,error,page);
+			break;
+			}
+			
+		case SmfMusicLyricsCustomRequest:
+   			{
+   			int operationId;
+   			QByteArray *data = new QByteArray;
+   			reader>>operationId;
+   			reader>>*data;
+   			qDebug()<<"operationId = "<<operationId;
+   			qDebug()<<"data size = "<<data->size();
+   			emit m_lyricsSrvc->customDataAvailable(operationId, data);
+   			break;
+   			}
+   			
+		default:
+			Q_ASSERT_X(1,"SmfLyricsServicePrivate::resultsAvailable","unknown opcode");
+		}
+	}
+
+//SmfLyricsServicePrivate end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfmusic_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,482 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private implementation of music related services
+ * 
+ */
+
+#ifndef SMFMUSICPRIVATE_H_
+#define SMFMUSICPRIVATE_H_
+
+#include <qcontactgeolocation.h>
+#include <smfglobal.h>
+#include <smfobserver.h>
+#include <smfevent.h>
+#include <smfsubtitle.h>
+#include <smfmusicprofile.h>
+#include <smflyrics.h>
+#include <smfplaylist.h>
+#include <smftrackinfo.h>
+#include <smflocation.h>
+#include <smfprovider.h>
+
+#ifdef Q_OS_SYMBIAN
+	class CSmfClientSymbian;	
+#else
+	class SmfClientQt;
+#endif
+class SmfMusicService;
+class SmfMusicSearch;
+class SmfPlaylistService;
+class SmfMusicEvents;
+class SmfLyricsService;
+class SmfMusicFingerPrint;
+class SmfMusicRating;
+class SmfComment;
+
+
+class SmfMusicServicePrivate : public smfObserver
+	{
+	Q_OBJECT
+public:
+	/**
+	 * Constructor
+	 */
+	SmfMusicServicePrivate(SmfMusicService* aMusicService);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicServicePrivate();
+	
+	/**
+	 * Gets self profile information asynchronously.
+	 * userInfoAvailable() signal is emitted with SmfMusicProfile when the info is arrived
+	 */
+	void userinfo ( );
+
+	/**
+	 * Asynchronously searches information about other service users for a particular venue
+	 * searchInfoAvailable() signal is emitted with SmfMusicProfileList when the info is arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void searchUser ( SmfLocation venue, int pageNum = SMF_FIRST_PAGE,
+						int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+	/**
+	 * Posts currently playing track.
+	 * Success can be checked by checking the signal postFinished()
+	 * @param track Track to post
+	 */
+	void postCurrentPlaying ( SmfTrackInfo track);
+	
+	void postRating ( SmfTrackInfo track, SmfMusicRating rate);
+	
+	void postComments ( SmfTrackInfo track, SmfComment comment);
+	
+public: // from smfObserver
+	/**
+	 * To notify availibility of asynchronous requests.
+	 * @param result Requested result, before using must check error param.
+	 * @param opcode Requested opcode, for which the result has arrived.
+	 * @param error Error 
+	 */
+	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error);
+	
+private:
+	SmfMusicService* m_musicService;
+	//serialized byte array of provider+other info to be sent to the server
+	//The order:- SmfProvider then params in order of their appearance in fn
+	QByteArray m_serializedDataToServer;
+#ifdef Q_OS_SYMBIAN
+	CSmfClientSymbian* m_SmfClientPrivate;
+	friend class CSmfClientSymbian;
+#else
+	SmfClientQt* m_SmfClientPrivate;
+	friend class SmfClientQt;
+#endif
+	int m_argFlag;
+	
+	};
+
+
+//SmfMusicSearch
+class SmfMusicSearchPrivate : public smfObserver
+	{
+	Q_OBJECT
+public:
+	/**
+	 * Constructor
+	 */
+	SmfMusicSearchPrivate(SmfMusicSearch* aMusicSearch);
+	
+	/**
+	 * Constructor
+	 */
+	~SmfMusicSearchPrivate();
+	
+public:
+	/**
+	 * Searches for music recommendations similar to a particulartrack asynchronously.
+	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
+	 * once its arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param track The track for which similar recommendations need to be fetched.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void recommendations ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Searches for tracks similar to a given track asynchronously.
+	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
+	 * once its arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param track The search criteria, similar tracks are searched
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void tracks ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Searches for a track having similar finger print asynchronously.
+	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
+	 * once its arrived.
+	 * @param signature The search criteria,signature to be searched for
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void trackInfo ( SmfMusicFingerPrint signature, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Search information about where to buy this song from asynchronously.
+	 * The signal storeSearchAvailable() is emitted with SmfProviderList once its arrived.
+	 * @param track The search criteria for stores
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void stores ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE, 
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+public: //From smfObserver
+	/**
+	 * To notify availibility of asynchronous requests.
+	 * @param result Requested result, before using must check error param.
+	 * @param opcode Requested opcode, for which the result has arrived.
+	 * @param error Error 
+	 */
+	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error);
+	
+private:
+	SmfMusicSearch *m_musicSearch;
+	//serialized byte array of provider+other info to be sent to the server
+	//The order:- SmfProvider then params in order of their appearance in fn
+	QByteArray m_serializedDataToServer;
+#ifdef Q_OS_SYMBIAN
+	CSmfClientSymbian* m_SmfClientPrivate;
+	friend class CSmfClientSymbian;
+#else
+	SmfClientQt* m_SmfClientPrivate;
+	friend class SmfClientQt;
+#endif
+	int m_argFlag;
+
+	};
+
+
+class SmfPlaylistServicePrivate : public smfObserver
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructs SmfPlaylistService with base provider info
+	 */
+	SmfPlaylistServicePrivate(SmfPlaylistService* aPlayLstSrvc);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPlaylistServicePrivate();
+
+public:
+	/**
+	 * Gets the list playlists for the logged-in user asynchronously.
+	 * The signal playlistsListAvailable() signal is emitted with
+	 * SmfPlaylistList once its arrived .
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void playlists ( int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Gets the list playlists for the given user asynchronously.
+	 * The signal playlistsListAvailable() signal is emitted with
+	 * SmfPlaylistList once its arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param user User for which to get the playlists
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void playlistsOf ( SmfMusicProfile* user, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Upload currently playing track to a playlist. Signal
+	 * playlistUpdated() can be checked for success value
+	 * @param plst The playlist to be added in
+	 * @param tracks The list of tracks to uploaded
+	 */
+	int addToPlaylist ( SmfPlaylist plst, SmfTrackInfoList* tracks );
+	
+	/**
+	 * Upload currently playing playlist . Signal
+	 * playlistUpdated() can be checked for success value
+	 * @param plst The playlist to be uploaded
+	 */
+	int postCurrentPlayingPlaylist ( SmfPlaylist plst );
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+public: //From smfObserver
+	/**
+	 * To notify availibility of asynchronous requests.
+	 * @param result Requested result, before using must check error param.
+	 * @param opcode Requested opcode, for which the result has arrived.
+	 * @param error Error 
+	 */
+	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error);
+
+private:
+	SmfPlaylistService* m_playlstSrvc;
+	//serialized byte array of provider+other info to be sent to the server
+	//The order:- SmfProvider then params in order of their appearance in fn
+	QByteArray m_serializedDataToServer;
+
+#ifdef Q_OS_SYMBIAN
+	CSmfClientSymbian* m_SmfClientPrivate;
+	friend class CSmfClientSymbian;
+#else
+	SmfClientQt* m_SmfClientPrivate;
+	friend class SmfClientQt;
+#endif
+	int m_argFlag;
+	
+	};
+
+
+class SmfMusicEventsPrivate : public smfObserver
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructs SmfMusicEvents with base provider info
+	 */
+	SmfMusicEventsPrivate(SmfMusicEvents* aMusicEvent);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicEventsPrivate();
+
+public:
+	/**
+	 * Gets list of events in a particular venue asynchronously.
+	 * eventsAvailable() signal is emitted with SmfEventsList once its arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void events ( SmfLocation venue, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Gets list of venues of a particular location asynchronously.
+	 * venuesAvailable() signal is emitted with SmfLocationList once its arrived.
+	 * When the list is big user can specify the page number and per page item data.
+	 * If not supplied by the user default values are used.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void venues ( SmfLocation location, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Updates events. Might not be supported by all service provider.
+	 * eventsUpdated() signal can be checked for success value.
+	 * @param SmfEventsList List of events to be posted
+	 */
+	void postEvents ( SmfEventList events );
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+public: //From smfObserver
+	/**
+	 * To notify availibility of asynchronous requests.
+	 * @param result Requested result, before using must check error param.
+	 * @param opcode Requested opcode, for which the result has arrived.
+	 * @param error Error 
+	 */
+	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error);
+
+private:
+	SmfMusicEvents* m_musicEvent;
+	//serialized byte array of provider+other info to be sent to the server
+	//The order:- SmfProvider then params in order of their appearance in fn
+	QByteArray m_serializedDataToServer;
+#ifdef Q_OS_SYMBIAN
+	CSmfClientSymbian* m_SmfClientPrivate;
+	friend class CSmfClientSymbian;
+#else
+	SmfClientQt* m_SmfClientPrivate;
+	friend class SmfClientQt;
+#endif
+	int m_argFlag;
+	
+	};
+
+
+/**
+ * provides service ("org.symbian.smf.client.music.lyrics")
+ */
+class SmfLyricsServicePrivate : public smfObserver
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructs SmfLyricsService with base provider info.
+	 */
+	SmfLyricsServicePrivate(SmfLyricsService* aLyricsSrvc);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfLyricsServicePrivate();
+
+public:
+	/**
+	 * Get the lyrics lists asynchrnously, it fetches texts without time info.
+	 * lyricsAvailable() notification comes SmfLyricsList with when the data is available
+	 * @param track Track for which lyrics needs to be fetched.
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void lyrics ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
+			int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Get the lyrics lists asynchrnously, it fetches texts with time info.
+	 * Subtitle search filter can be applied
+	 * subtitleAvailable() notification comes SmfSubtitleList with when the data is available
+	 * @param track Track for which subtitle needs to be fetched.
+	 * @param filter Subtitle search filter
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
+	 */
+	void subtitles ( SmfTrackInfo track, SmfSubtitleSearchFilter filter,
+			int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Request for a custom operation. The signal customDataAvailable() is emitted 
+	 * when the result is available.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest ( const int& operationId, QByteArray* customData );
+	
+public: //From smfObserver
+	/**
+	 * To notify availibility of asynchronous requests.
+	 * @param result Requested result, before using must check error param.
+	 * @param opcode Requested opcode, for which the result has arrived.
+	 * @param error Error 
+	 */
+	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error);
+	
+private:
+	SmfLyricsService *m_lyricsSrvc;
+	//serialized byte array of provider+other info to be sent to the server
+	//The order:- SmfProvider then params in order of their appearance in fn
+	QByteArray m_serializedDataToServer;
+#ifdef Q_OS_SYMBIAN
+	CSmfClientSymbian* m_SmfClientPrivate;
+	friend class CSmfClientSymbian;
+#else
+	SmfClientQt* m_SmfClientPrivate;
+	friend class SmfClientQt;
+#endif
+	int m_argFlag;
+
+	};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfpostprovider.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * SmfPostProvider
+ *
+ */
+
+#include <QVector>
+#include <QTextFormat>
+
+#include "smfpostprovider.h"
+#include "smfpostprovider_p.h"
+
+/**
+ * Constructs SmfPostProvider.
+ * @param baseProvider The base provider info
+ * Seeing as this is a plug-in implementation, these will realistically
+ * be generated by SMF factory of some kind
+ */
+SmfPostProvider::SmfPostProvider(SmfProvider* baseProvider)
+	{
+	  m_baseProvider = baseProvider;
+	  //creating private impl wrapper
+	  m_private = new SmfPostProviderPrivate(this);
+	}
+
+SmfPostProvider::~SmfPostProvider()
+	{
+	
+	}
+
+/**
+ * returns maximum no of chars (unicode) that service provider can post without truncation
+ * negative value means no limit
+ */
+qint32 SmfPostProvider::maxCharsInPost() const
+	{ 
+	return m_private->maxCharsInPost();
+	}
+
+/**
+ * returns maximum no of items that can be returned in a single query to getPosts
+ * negative value means feature not supported.
+ */
+qint32 SmfPostProvider::maxItems() const
+	{ 
+	return m_private->maxItems();
+	}
+
+/**
+ * returns all the formatting of posts that this service provider supports.
+ * May return 0 items to mean only QString is supported.
+ */
+QVector<QTextFormat> SmfPostProvider::supportedFormats () const
+	{
+	return m_private->supportedFormats();
+	}
+
+/**
+ * returns whether this SP supports Appearence @see SmfAppearenceInfo
+ */
+bool SmfPostProvider::supportsAppearence () const
+	{ 
+	return m_private->supportsAppearence();
+	}
+
+/**
+ * Gets the posts asynchronously. The signal postsAvailable()with SmfPostList is emitted
+ * once the post lists are available
+ * @param user user's contact in this SP, omit for self contact
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE 
+ * @see postsAvailable()
+ */
+void SmfPostProvider::posts(SmfContact* user ,int pageNum,int perPage)
+	{ 
+	m_private->posts(user,pageNum,perPage);
+	}
+
+/**
+ * Updates a post to own area, the success of the post can be checked with signal
+ * updatePostFinished() signal
+ * @param postData data to be posted
+ * @param location location data
+ */
+void SmfPostProvider::post(SmfPost& postData,SmfLocation& location) 
+	{
+	m_private->post(postData,location);
+	} 
+
+/**
+ * Updates the last post to own area with new data, the success of the post can be checked with signal
+ * updatePostFinished() signal
+ * @param postData edited/new data to be posted
+ * @param location location data
+ */
+void SmfPostProvider::updatePost(SmfPost& postData)
+	{ 
+	m_private->updatePost(postData);
+	} 
+
+/**
+ * Updates a post to a particular Smf contact. the success of the post can be checked with signal
+ * updatePostFinished() signal.
+ * @param postData data to be posted
+ * @param contact contact to which the post is to be directed
+ * @param location location data
+ */
+void SmfPostProvider::postDirected(SmfPost& postData,SmfContact& contact,SmfLocation* location)
+	{ 
+	m_private->postDirected(postData,contact,location);
+	}
+
+/**
+ * Method to post a comment on a post.
+ * @param aTarget Post on which comment has to be posted
+ * @param aComment comment to be posted
+ * @param aLocation location data
+ */
+void SmfPostProvider::commentOnAPost( SmfPost &aTarget, SmfPost &aComment, 
+		SmfLocation *aLocation)
+	{
+	m_private->commentOnAPost(aTarget,aComment,aLocation);
+	}
+
+/**
+ * Posts appearance info of the user.e.g. appear offline, busy, do-not-disturb
+ * @param appearence user appearance
+ * @see SmfPresenceInfo
+ * @return False on Failure/Not supported 
+ */
+bool SmfPostProvider::postAppearence(SmfAppearenceInfo appearence, const QString &status)
+	{ 
+	return m_private->postAppearence(appearence, status);
+	} 
+
+/**
+ * Share /a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook)
+ * emits updatePostFinished() signal when done.
+ * @param postData data to be posted
+ * @param contact contact to which the post belonged
+ * @param bool whether user changed items within the post
+ */
+void SmfPostProvider::sharePost(SmfPost& postData,SmfContact& contact,bool edited)
+	{
+	m_private->sharePost(postData,contact,edited);
+	}
+
+void SmfPostProvider::customRequest(const int& operationId,QByteArray* customData)
+	{
+	m_private->customRequest(operationId, customData);
+	}
+
+/**
+ * Gets the base provider info
+ */
+SmfProvider* SmfPostProvider::getProvider() const
+	{
+	return m_baseProvider;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfpostprovider.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,201 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * SmfPostProvider
+ *
+ */
+
+#ifndef SMFPOSTPROVIDER_H
+#define SMFPOSTPROVIDER_H
+
+#include <QObject>
+#include <qmobilityglobal.h>
+#include <qgeopositioninfo.h>
+#include <QTextDocument>
+#include <smfglobal.h>
+#include <smfclientglobal.h>
+#include <smfprovider.h>
+#include <smfcontact.h>
+#include <smflocation.h>
+#include <smfpost.h>
+
+class SmfPostProviderPrivate;
+
+/**
+ * @ingroup smf_client_group 
+ * Interface to post scrap/tweet like info.
+ * Note that branding information for the particular service implementation
+ * is available from getProvider() API. See also:
+ * SmfProvider::serviceName(), SmfProvider::serviceIcon(), SmfProvider::description()
+ *
+ * Interface name for SmfPostProvider is org.symbian.smf.client.contact.posts
+ */
+class SMFCLIENT_EXPORT SmfPostProvider : public QObject
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructs SmfPostProvider.
+	 * @param baseProvider The base provider info
+	 * Seeing as this is a plug-in implementation, these will realistically
+	 * be generated by SMF factory of some kind
+	 */
+	SmfPostProvider(SmfProvider* baseProvider);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPostProvider();
+
+public:
+	/**
+	 * returns maximum no of chars (unicode) that service provider can post without truncation
+	 * negative value means no limit
+	 */
+	qint32 maxCharsInPost() const;
+	
+	/**
+	 * returns maximum no of items that can be returned in a single query to getPosts
+	 * negative value means feature not supported.
+	 */
+	qint32 maxItems() const;
+
+	/**
+	 * returns all the formatting of posts that this service provider supports.
+	 * May return 0 items to mean only QString is supported.
+	 */
+	QVector<QTextFormat> supportedFormats () const;
+	
+	/**
+	 * returns whether this SP supports Appearence @see SmfAppearenceInfo
+	 */
+	bool supportsAppearence () const;
+
+public slots:
+	/**
+	 * Gets the posts asynchronously. The signal postsAvailable()with SmfPostList is emitted
+	 * once the post lists are available
+	 * @param user user's contact in this SP, omit for self contact
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+     * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE 
+	 * @see postsAvailable()
+	 */
+	void posts(SmfContact* user = 0,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Updates a post to own area, the success of the post can be checked with signal
+	 * updatePostFinished() signal
+	 * @param postData data to be posted
+	 * @param location location data
+	 */
+	void post(SmfPost& postData,SmfLocation& location);
+	
+	/**
+	 * Updates the last post to own area with new data, the success of the post can be checked with signal
+	 * updatePostFinished() signal
+	 * @param postData edited/new data to be posted
+	 * @param location location data
+	 */
+	void updatePost(SmfPost& postData); 
+	
+	/**
+	 * Updates a post to a particular Smf contact. the success of the post can be checked with signal
+	 * updatePostFinished() signal.
+	 * @param postData data to be posted
+	 * @param contact contact to which the post is to be directed
+	 * @param location location data
+	 */
+	void postDirected(SmfPost& postData,SmfContact& contact,SmfLocation* location=0);
+	
+	/**
+	 * Method to post a comment on a post.
+	 * @param aTarget Post on which comment has to be posted
+	 * @param aComment comment to be posted
+	 * @param aLocation location data
+	 */
+	void commentOnAPost( SmfPost &aTarget, SmfPost &aComment, SmfLocation *aLocation = NULL);
+	
+	/**
+	 * Posts appearance info of the user.e.g. appear offline, busy, do-not-disturb
+	 * @param appearence user appearance
+	 * @see SmfPresenceInfo
+	 * @return False on Failure/Not supported 
+	 */
+	bool postAppearence(SmfAppearenceInfo appearence, const QString &status); 
+	
+	/**
+	 * Share /a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook)
+	 * emits updatePostFinished() signal when done.
+	 * @param postData data to be posted
+	 * @param contact contact to which the post belonged
+	 * @param bool whether user changed items within the post
+	 */
+	void sharePost(SmfPost& postData,SmfContact& contact,bool edited);
+	
+   /**
+	* Request for a custom operation.
+	* @param operationId OperationId
+	* @param customData Custom data to be sent
+	* Note:-Interpretation of operationId and customData is upto the concerned
+	* plugin and client application. service provider should provide some
+	* serializing-deserializing utilities for these custom data
+	*/
+   void customRequest(const int& operationId,QByteArray* customData);
+	
+signals:
+	
+	/**
+	 * Emitted when a request to  getPosts() is finished
+	 * Note if number of posts is large, then it can download the list page by page
+	 * In that case this signal is emitted multiple times.
+	 * @param list list of posts
+	 * @param error error string
+	 * @param resultPage Page number info
+	 */
+	void postsAvailable(SmfPostList* list, SmfError error, SmfResultPage resultPage);
+	
+	/**
+	 * Emitted when update post is finished.
+	 * @param success the success of the update
+	 */
+	void postFinished(SmfError success);
+	
+	/**
+	 * Emitted when custom data is available
+	 * @param operationId Requested operation id
+	 * @param customData Custom data received, interpretation is not the responsibility of Smf
+	 */
+	void customDataAvailable(int operationId, QByteArray* customData);
+	
+private:
+	/**
+	 * Gets the base provider info
+	 */
+	SmfProvider* getProvider() const;
+	
+// Friend Class
+	//friend so that it can directly emit SmfPostProvider's signal
+	friend class SmfPostProviderPrivate;
+	
+private:
+	SmfProvider* m_baseProvider;
+	SmfPostProviderPrivate* m_private;	//private impl wrapper
+	
+	};
+
+SMF_SERVICE_NAME(SmfPostProvider, "org.symbian.smf.client.contact.posts\0.2")
+
+#endif // SMFPOSTPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfpostprovider_p.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,502 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private implementation of SmfPostProvider
+ *
+ */
+
+#include <qdebug.h>
+
+#include "smfpostprovider.h"
+#include "smfpostprovider_p.h"
+#ifdef Q_OS_SYMBIAN
+	#include "smfclientsymbian.h"
+#else
+	#include "SmfClientQt.h"
+#endif
+
+
+SmfPostProviderPrivate::SmfPostProviderPrivate(SmfPostProvider* postProvider)
+		: m_postProvider(postProvider)
+	{
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
+#endif
+	}
+
+
+SmfPostProviderPrivate::~SmfPostProviderPrivate()
+	{
+	if(m_SmfClientPrivate)
+		{
+		delete m_SmfClientPrivate;
+		m_SmfClientPrivate = NULL;
+		}
+	}
+
+
+/**
+ * returns maximum no of chars (unicode) that service provider can post without truncation
+ * negative value means no limit
+ */
+qint32 SmfPostProviderPrivate::maxCharsInPost()
+	{ 
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	
+	//SmfProvider
+	write<<*m_baseProvider;
+	
+	QString intfName(postProviderInterface);
+	//setting max size to 10
+	//call private impl's send method
+	QByteArray data = m_SmfClientPrivate->sendSyncRequest(intfName,	
+			SmfPostGetMaxCharsInPost, 10, m_serializedDataToServer);
+	
+	//De-serialize it into qint32
+	QDataStream reader(&data,QIODevice::ReadOnly);
+	qint32 val;
+	reader>>val;
+	return val;
+	}
+
+/**
+ * returns maximum no of items that can be returned in a single query to getPosts
+ * negative value means feature not supported.
+ */
+qint32 SmfPostProviderPrivate::maxItems()
+	{ 
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	
+	//SmfProvider
+	write<<*m_baseProvider;
+	
+	QString intfName(postProviderInterface);
+	//setting max size to 10
+	//call private impl's send method
+	QByteArray data = m_SmfClientPrivate->sendSyncRequest(intfName,
+			SmfPostGetMaxItems, 10, m_serializedDataToServer);
+	
+	//De-serialize it into qint32
+	QDataStream reader(&data,QIODevice::ReadOnly);
+	qint32 val;
+	reader>>val;
+	return val;
+	}
+
+/**
+ * returns all the formatting of posts that this service provider supports.
+ * May return 0 items to mean only QString is supported.
+ */
+QVector<QTextFormat> SmfPostProviderPrivate::supportedFormats ()
+	{
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	
+	//SmfProvider
+	write<<*m_baseProvider;
+	
+	QString intfName(postProviderInterface);
+	//ToDo :- Setting maxsize to 1000
+	
+	//call private impl's send method
+	QByteArray data = m_SmfClientPrivate->sendSyncRequest(intfName,
+			SmfPostGetSupportedFormats, 1000, m_serializedDataToServer);
+	
+	//De-serialize it into QVector<QTextFormat>
+	QDataStream reader(&data,QIODevice::ReadOnly);
+	QVector<QTextFormat> val;
+	reader>>val;
+	return val;
+	}
+
+/**
+ * returns whether this SP supports Appearence @see SmfAppearenceInfo
+ */
+bool SmfPostProviderPrivate::supportsAppearence ()
+	{ 
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	
+	//SmfProvider
+	write<<*m_baseProvider;
+	
+	QString intfName(postProviderInterface);
+	//we are not mentioning the max size, as we'll receive only bool
+	//call private impl's send method
+	QByteArray data = m_SmfClientPrivate->sendSyncRequest(intfName,
+			SmfPostGetAppearanceSupport, 10, m_serializedDataToServer);
+	
+	//De-serialize it into bool
+	QDataStream reader(&data,QIODevice::ReadOnly);
+	bool val;
+	reader>>val;
+	return val;
+	}
+
+/**
+ * Gets the posts asynchronously. The signal postsAvailable()with SmfPostList is emitted
+ * once the post lists are available
+ * @param user user's contact in this SP, omit for self contact
+ * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+ * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE 
+ * @see postsAvailable()
+ */
+void SmfPostProviderPrivate::posts(SmfContact* user ,int pageNum,int perPage)
+	{
+	//We need to pass Opcode and SmfProvider+SmfContact (when user is not NULL) serialized into bytearray 
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	if(user)
+		{
+		write<<m_argFlag;
+		write<<*user;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<pageNum;
+	write<<m_argFlag;
+	write<<perPage;
+	
+	QString intfName(postProviderInterface);
+	int maxAllocation = MaxSmfPostSize*perPage;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfContactRetrievePosts, maxAllocation);
+	}
+	
+/**
+ * Updates a post to own area, the success of the post can be checked with signal
+ * updatePostFinished() signal
+ * @param postData data to be posted
+ * @param location location data
+ */
+void SmfPostProviderPrivate::post(SmfPost& postData,SmfLocation& location) 
+	{
+	m_serializedDataToServer.clear();
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	
+	//SmfProvider
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<postData;
+	write<<m_argFlag;
+	write<<location;
+	
+	QString intfName(postProviderInterface);
+	
+	//we are not mentioning the max size, as we'll receive only bool
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfContactPost, 10);
+	}
+
+/**
+ * Updates the last post to own area with new data, the success of the post can be checked with signal
+ * updatePostFinished() signal
+ * @param postData edited/new data to be posted
+ * @param location location data
+ */
+void SmfPostProviderPrivate::updatePost(SmfPost& postData)
+	{
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	//SmfProvider
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<postData;
+	
+	QString intfName(postProviderInterface);
+	//we are not mentioning the max size, as we'll receive only bool
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfContactUpdatePost, 10);
+	}
+
+/**
+ * Updates a post to a particular Smf contact. the success of the post can be checked with signal
+ * updatePostFinished() signal.
+ * @param postData data to be posted
+ * @param contact contact to which the post is to be directed
+ * @param location location data
+ */
+void SmfPostProviderPrivate::postDirected(SmfPost& postData,SmfContact& contact,SmfLocation* location)
+	{
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	
+	//SmfProvider
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<postData;
+	write<<m_argFlag;
+	write<<contact;
+	if(location)
+		{
+		write<<m_argFlag;
+		write<<*location;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(postProviderInterface);
+	//we are not mentioning the max size, as we'll receive only bool
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfContactPostDirected, 10);
+	}
+
+/**
+ * Method to post a comment on a post.
+ * @param aTarget Post on which comment has to be posted
+ * @param aComment comment to be posted
+ * @param aLocation location data
+ */
+void SmfPostProviderPrivate::commentOnAPost( SmfPost &aTarget, SmfPost &aComment, 
+		SmfLocation *aLocation)
+	{
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	
+	//SmfProvider
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<aTarget;
+	write<<m_argFlag;
+	write<<aComment;
+	
+	if(aLocation)
+		{
+		write<<m_argFlag;
+		write<<*aLocation;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(postProviderInterface);
+	//we are not mentioning the max size, as we'll receive only bool
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfContactCommentOnAPost, 10);
+	}
+
+/**
+ * Posts appearance info of the user.e.g. appear offline, busy, do-not-disturb
+ * @param appearence user appearance
+ * @see SmfPresenceInfo
+ * @return False on Failure/Not supported 
+ */
+bool SmfPostProviderPrivate::postAppearence(SmfAppearenceInfo appearence,
+		const QString &status)
+	{
+	//TODO:-How to return "supported" value? should it be synchronous?
+	//Currently doing it asynchronously with the assumption of always supported
+	//TODO:- implement some signal completion API
+	m_serializedDataToServer.clear();
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<appearence;
+	write<<m_argFlag;
+	write<<status;
+		
+	QString intfName(postProviderInterface);
+	//we are not mentioning the max size, as we'll receive only bool
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfContactPostAppearence, 10);
+	
+	return true;
+	}
+
+/**
+ * Share a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook)
+ * emits updatePostFinished() signal when done.
+ * @param postData data to be posted
+ * @param contact contact to which the post belonged
+ * @param bool whether user changed items within the post
+ */
+void SmfPostProviderPrivate::sharePost(SmfPost& postData,SmfContact& contact,bool edited)
+	{
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<postData;
+	write<<m_argFlag;
+	write<<contact;
+	write<<m_argFlag;
+	write<<edited;
+	
+	QString intfName(postProviderInterface);
+	//we are not mentioning the max size, as we'll receive only bool
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfContactSharePost, 10);
+	}
+
+/**
+ * Request for a custom operation. The signal customDataAvailable() is emitted 
+ * when the result is available.
+ * @param operationId OperationId
+ * @param customData Custom data to be sent
+ * Note:-Interpretation of operationId and customData is upto the concerned
+ * plugin and client application. service provider should provide some
+ * serializing-deserializing utilities for these custom data
+ */
+void SmfPostProviderPrivate::customRequest ( const int& operationId, QByteArray* customData )
+	{
+	SmfProvider* m_baseProvider = m_postProvider->getProvider();
+	
+	//serialize start
+	m_serializedDataToServer.clear();
+	QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	write<<*m_baseProvider;
+	m_argFlag = 1;
+	write<<m_argFlag;
+	write<<operationId;
+	if(customData)
+		{
+		write<<m_argFlag;
+		write<<*customData;
+		}
+	else
+		{
+		m_argFlag = 0;
+		write<<m_argFlag;
+		}
+	
+	QString intfName(postProviderInterface);
+	//ToDo:- How much size to allocate for custo data? keeping MaxSmfPostSize for now
+	int maxAllocation = MaxSmfPostSize;
+	
+	//call private impl's send method
+	m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName,
+			SmfContactPostCustomRequest, maxAllocation);
+	}
+
+/**
+* From smfobserver
+*/
+void SmfPostProviderPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error)
+   {
+	qDebug()<<"Inside SmfPostProviderPrivate::resultsAvailable()";
+	qDebug()<<"opcode = "<<opcode;
+
+	QDataStream reader(&result,QIODevice::ReadOnly);
+	
+	//Now de-serialize it based on opcode
+	switch(opcode)
+		{
+		case SmfContactRetrievePosts:
+			{
+			SmfPostList* m_postList = new SmfPostList;
+			reader>>*(m_postList);
+			
+			qDebug()<<"postList.count="<<m_postList->count();
+			
+			//not incorporating paging now
+			SmfResultPage page;
+
+			emit m_postProvider->postsAvailable(m_postList,error,page);
+			}
+			break;
+			
+		case SmfContactPost:	
+		case SmfContactUpdatePost:
+		case SmfContactPostDirected:
+		case SmfContactCommentOnAPost:
+		case SmfContactPostAppearence:
+		case SmfContactSharePost:
+			{
+			int errInt;
+			reader>>errInt;
+			qDebug()<<"success = "<<errInt;
+			SmfError success = (SmfError)errInt;
+			emit m_postProvider->postFinished(success);
+			}
+			break;
+			
+		case SmfContactPostCustomRequest:
+   			{
+   			int operationId;
+   			QByteArray *data = new QByteArray;
+   			reader>>operationId;
+   			reader>>*data;
+   			qDebug()<<"operationId = "<<operationId;
+   			qDebug()<<"data size = "<<data->size();
+   			emit m_postProvider->customDataAvailable(operationId, data);
+   			}
+   			break;
+			
+		default:
+			Q_ASSERT_X(1,"PostProvider Private Unknown opcode","default case");
+		}
+   }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfpostprovider_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,189 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private implementation of SmfPostProvider
+ *
+ */
+
+#ifndef SMFPOSTPROVIDER_P_H_
+#define SMFPOSTPROVIDER_P_H_
+
+#include <QVector>
+#include <QTextFormat>
+#include <smfclientglobal.h>
+#include <smfglobal.h>
+#include <smfobserver.h>
+#include <smfpost.h>
+
+// Forward declaration
+class SmfProvider;
+class SmfContact;
+class SmfLocation;
+class SmfPostProvider;
+#ifdef Q_OS_SYMBIAN
+	class CSmfClientSymbian;
+#else
+	class SmfClientQt;
+#endif
+
+/**
+ * Data size limits
+ */
+/**
+ * Single Post-1 MB
+ */
+const int KSmfPostMaxSize = 1000000;
+
+
+/**
+ * Private Qt wrapper
+ * Provided to accomodate diff facilities in diff platforms.
+ * Uses Symbian client-server for Symbian
+ * QDbus for linux
+ * QLocalserver for rest of the platforms
+ * Note:- only symbian client-server impl is provided at the moment
+ **/
+class SmfPostProviderPrivate: public smfObserver
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructor
+	 */
+	SmfPostProviderPrivate(SmfPostProvider* postProvider=0);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPostProviderPrivate();
+	
+public:
+	/**
+	 * returns maximum no of chars (unicode) that service provider can post without truncation
+	 * negative value means no limit
+	 */
+	qint32 maxCharsInPost();
+	
+	/**
+	 * returns maximum no of items that can be returned in a single query to getPosts
+	 * negative value means feature not supported.
+	 */
+	qint32 maxItems();
+
+	/**
+	 * returns all the formatting of posts that this service provider supports.
+	 * May return 0 items to mean only QString is supported.
+	 */
+	QVector<QTextFormat> supportedFormats();
+	
+	/**
+	 * returns whether this SP supports Appearence @see SmfAppearenceInfo
+	 */
+	bool supportsAppearence();
+
+	/**
+	 * Gets the posts asynchronously. The signal postsAvailable()with SmfPostList is emitted
+	 * once the post lists are available
+	 * @param user user's contact in this SP, omit for self contact
+	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
+     * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE 
+	 * @see postsAvailable()
+	 */
+	void posts(SmfContact* user = 0,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE);
+	
+	/**
+	 * Updates a post to own area, the success of the post can be checked with signal
+	 * updatePostFinished() signal
+	 * @param postData data to be posted
+	 * @param location location data
+	 */
+	void post(SmfPost& postData,SmfLocation& location) ; 
+	
+	/**
+	 * Updates the last post to own area with new data, the success of the post can be checked with signal
+	 * updatePostFinished() signal
+	 * @param postData edited/new data to be posted
+	 * @param location location data
+	 */
+	void updatePost(SmfPost& postData); 
+	
+	/**
+	 * Updates a post to a particular Smf contact. the success of the post can be checked with signal
+	 * updatePostFinished() signal.
+	 * @param postData data to be posted
+	 * @param contact contact to which the post is to be directed
+	 * @param location location data
+	 */
+	void postDirected(SmfPost& postData,SmfContact& contact,SmfLocation* location=0);
+	
+	/**
+	 * Method to post a comment on a post.
+	 * @param aTarget Post on which comment has to be posted
+	 * @param aComment comment to be posted
+	 * @param aLocation location data
+	 */
+	void commentOnAPost( SmfPost &aTarget, SmfPost &aComment, SmfLocation *aLocation = NULL);
+	
+	/**
+	 * Posts appearance info of the user.e.g. appear offline, busy, do-not-disturb
+	 * @param appearence user appearance
+	 * @see SmfPresenceInfo
+	 * @return False on Failure/Not supported 
+	 */
+	bool postAppearence(SmfAppearenceInfo appearence, const QString &status); 
+	
+	/**
+	 * Share /a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook)
+	 * emits updatePostFinished() signal when done.
+	 * @param postData data to be posted
+	 * @param contact contact to which the post belonged
+	 * @param bool whether user changed items within the post
+	 */
+	void sharePost(SmfPost& postData,SmfContact& contact,bool edited);
+	
+	/**
+	 * Request for a custom operation.
+	 * @param operationId OperationId
+	 * @param customData Custom data to be sent
+	 * Note:-Interpretation of operationId and customData is upto the concerned
+	 * plugin and client application. service provider should provide some
+	 * serializing-deserializing utilities for these custom data
+	 */
+	void customRequest(const int& operationId,QByteArray* customData);
+   
+public:	//From smfobserver 
+	/**
+	 * To notify availibility of asynchronous requests.
+	 * @param result Requested result, before using must check error param.
+	 * @param opcode Requested opcode, for which the result has arrived.
+	 * @param error Error
+	 */
+	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error);
+
+private:
+	SmfPostProvider* m_postProvider;
+	QByteArray m_serializedDataToServer;	//serialized xtra info, order of serialization follows order of param
+	quint8 m_argFlag;
+#ifdef Q_OS_SYMBIAN
+	CSmfClientSymbian* m_SmfClientPrivate;
+	friend class CSmfClientSymbian;
+#else
+	SmfClientQt* m_SmfClientPrivate;
+	friend class SmfClientQt;
+#endif
+	};
+
+#endif /* SMFPOSTPROVIDER_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfrelationmgr.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Interface spefication for managing associations between various social contacts
+ * 
+ */
+
+#include "smfrelationmgr.h"
+#include "smfrelationmgr_p.h"
+
+SmfRelationItem::SmfRelationItem(SmfProvider* provider)
+	{
+	m_provider = *(provider);
+	}
+
+SmfProvider SmfRelationItem::getProvider() const
+	{
+	return m_provider;
+	}
+
+void SmfRelationItem::setProvider(SmfProvider& provider)
+	{
+	m_provider = provider;
+	}
+
+SmfContact SmfRelationItem::getContact() const
+	{
+	return m_contact;
+	}
+
+void SmfRelationItem::setContact(SmfContact& contact)
+	{
+	m_contact = contact;
+	}
+
+quint32	SmfRelationItem::getIndex() const
+	{
+	return m_index;
+	}
+
+void SmfRelationItem::setIndex(quint32 index)
+	{
+	m_index = index;
+	}
+
+QDataStream &operator<<( QDataStream &aDataStream,const SmfRelationItem &aRelnItem )
+	{
+	aDataStream<<aRelnItem.getProvider();
+	aDataStream<<aRelnItem.getContact();
+	aDataStream<<aRelnItem.getIndex();
+	
+	return aDataStream;
+	}
+
+QDataStream &operator>>( QDataStream &aDataStream,SmfRelationItem &aRelnItem)
+	{
+	SmfContact contact;
+	SmfProvider provider;
+	quint32 index;
+	
+	aDataStream>>provider;
+	aDataStream>>contact;
+	aDataStream>>index;
+	
+	aRelnItem.setProvider(provider);
+	aRelnItem.setContact(contact);
+	aRelnItem.setIndex(index);
+	
+	return aDataStream;
+	}
+
+
+
+SmfRelationMgr::SmfRelationMgr(QObject* parent):QObject(parent)
+	{
+	m_private = new SmfRelationMgrPrivate(this);
+	}
+
+SmfRelationMgr::~SmfRelationMgr()
+	{
+	if(m_private)
+		{
+		delete m_private;
+		m_private = NULL;
+		}
+	}
+
+SmfRelationId SmfRelationMgr::create(SmfProvider *provider, SmfContact *contact)
+	{
+	return m_private->create(provider,contact);
+	}
+
+SmfError SmfRelationMgr::associate(SmfRelationId& relation,const SmfContact* contact,SmfProvider* provider)
+	{
+	return m_private->associate(relation,contact,provider);
+	}
+
+SmfError SmfRelationMgr::remove(SmfRelationId& relation,const SmfContact* contact)
+	{
+	return m_private->remove(relation,contact);
+	}
+
+SmfRelationItem* SmfRelationMgr::searchById(const SmfRelationId& relation)
+	{
+	return m_private->searchById(relation);
+	}
+
+SmfRelationId SmfRelationMgr::searchByContact( SmfContact contact)
+	{
+	return m_private->searchByContact(contact);
+	}
+
+uint SmfRelationMgr::count(SmfRelationId relation)
+	{
+	return m_private->count(relation);
+	}
+
+SmfRelationItem* SmfRelationMgr::get(SmfRelationId& relation, quint32 index)
+	{
+	return m_private->get(relation,index);
+	}
+
+QList<SmfRelationItem> SmfRelationMgr::getAll(SmfRelationId& relation)
+	{
+	return m_private->getAll(relation);
+	}
+
+QList<SmfRelationId> SmfRelationMgr::getAllRelations()
+	{
+	return m_private->getAllRelations();
+	}
+
+SmfError SmfRelationMgr::Delete(SmfRelationId& relation)
+	{
+	return m_private->Delete(relation);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfrelationmgr.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,170 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ *
+ * Description:
+ * Interface spefication for managing associations between various social contacts
+ * 
+ */
+
+#ifndef SMFRELATIONMGR_H
+#define SMFRELATIONMGR_H
+
+#include <smfprovider.h>
+#include <smfcontact.h>
+#include <smfglobal.h>
+
+// forward declaation
+class SmfRelationMgrPrivate;
+
+// implementaion constants
+const int maxSmfRelationIdSize = 500;
+const int maxSmfRelationItemSize = 1000;
+const int maxRelationItems = 1000;
+
+
+// persistent Id of a relation.
+typedef QString SmfRelationId;
+
+/**
+ * One record of a contact in a relation. Index specifies their position in the relationship.
+ */
+class SMFCLIENT_EXPORT SmfRelationItem : public SmfContact
+	{
+public:
+	SmfRelationItem(SmfProvider* provider=0);
+	
+public:
+	SmfProvider getProvider() const;
+	void setProvider(SmfProvider& provider);
+	
+	SmfContact getContact() const;
+	void setContact(SmfContact& contact);
+	
+	quint32	getIndex() const;
+	void setIndex(quint32 index);
+	
+private:
+	SmfProvider m_provider;
+	SmfContact  m_contact;
+	quint32		 m_index;
+	};
+
+SMFCLIENT_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const SmfRelationItem &aRelnItem );
+
+SMFCLIENT_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfRelationItem &aRelnItem);
+
+
+/**
+ * All remote profiles (e.g. facebook, twitter, flicker) for a particular
+ * person (or entity) constitutes a relation. Relation Manager stores
+ * these relations in persistent memory.
+ *
+ * Relations and Items can be visualized in rows and columns.
+ * Each row is identified by a RelationId.
+ * Each column is identified by index of that Item in the relation
+ * Each Items holds necessary information for SmfProvider and SmfContact.
+ * In the diagram below C1, C2... could be local or remote contacts, which means
+ * that C1, C2 .. could be contacts from device-resident phonebook. For example, for contact C1,
+ * items at index 1,2,3.. in this relationship denotes C1's id in Facebook, Twitter, flickr,... .
+ *
+ *                                  Relation Item           Relation Item          Relation Item      Relation Item        Relation Item
+ *                                        Index1                  index2                  index3                  index4                  index5
+ *                             _______________________________________________________________________
+ *                             |                           |                             |                            |                          |                          |
+ * RelationId 1         |           C1           |        Remote        |        Remote       |         Remote    |         Remote     |
+ *                             |                           |        Contact        |        Contact       |         Contact     |         Contact     |
+ *                             ------------------------------------------------------------------------------------------------------------------
+ *                             |                           |                             |                           |                           |                          |
+ * RelationId 2         |           C2           |        Remote        |        Remote       |                          |                          |
+ *                             |                           |        Contact        |        Contact       |                          |                          |
+ *                             -----------------------------------------------------------------------------------------------------------------
+ *                             |                           |                             |                            |                          |                          |
+ * RelationId 3         |          C3            |        Remote        |                            |                          |                          |
+ *                             |                           |        Contact        |                            |                          |                          |
+ *                             -----------------------------------------------------------------------------------------------------------------
+ *                             |                           |                             |                           |                           |                          |
+ * RelationId 4         |           C4           |        Remote        |        Remote       |                          |                          |
+ *                             |                           |        Contact        |        Contact       |                          |                          |
+ *                             -----------------------------------------------------------------------------------------------------------------
+ *                             |                           |                             |                           |                           |                          |
+ * RelationId 5         |           C5           |        Remote        |                           |                           |                          |
+ *                             |                           |        Contact        |                           |                           |                          |
+ *                             -----------------------------------------------------------------------------------------------------------------
+ *
+ * Items can be added (associated) to a given relation. So this is one-to-many
+ * relationship. Typically no items be present in more than one relation.
+ *
+ * All functions are synchronous at this moment.
+ */
+class SMFCLIENT_EXPORT SmfRelationMgr : public QObject
+	{
+	Q_OBJECT
+public:
+	SmfRelationMgr(QObject* parent = 0);
+	~SmfRelationMgr();
+
+public slots:
+
+	/** create a new relation. The contact provided is the first contact in this
+	 * relation.
+	 * Please note that contact should have valid Guid @ref QtMobility::QContactGuid
+	 * (used by Smf to store the unique id of user from facebook, etc.) and valid Url
+	 * @ref QtMobility::QContactUrl
+	 *
+	 * If the contact is already stored with ContactManager (e.g. contact exists in phonebook),
+	 * then it would have QtMobility::QContactId properly filled with managerUri and localId.
+	 * These two field would also be stored in SmfRelationMgr (for easily identifying the SmfContacts).
+	 *
+	 * After successful creation, a relationId would be returned. More and more SmfContacts can
+	 * be added to this relation using this RelationId
+	 */
+	SmfRelationId create(SmfProvider *provider=NULL, SmfContact *contact=NULL);
+
+	/** assign contact to a relation */
+	SmfError associate( SmfRelationId& relation,
+						const SmfContact* contact,
+						SmfProvider* provider);
+
+	/** remove contact from a relation */
+	SmfError remove(SmfRelationId& relation,
+					const SmfContact* contact);
+
+	/** returns first relation item in the relation when exists, NULL otherwise */
+	SmfRelationItem* searchById(const SmfRelationId& relation);
+
+	/** returns relation Id for a given contacts if exists, NULL otherwise */
+	SmfRelationId searchByContact( SmfContact contact);
+
+	/** returns number of contacts in a relation*/
+	uint count(SmfRelationId relation);
+
+	/** contacts and their provider */
+	SmfRelationItem* get(SmfRelationId& relation, quint32 index);
+
+	/** list of contacts and their provider */
+	QList<SmfRelationItem> getAll(SmfRelationId& relation);
+
+	/** list of all relations */
+	QList<SmfRelationId> getAllRelations();
+
+	/** delete a particular relation*/
+	SmfError Delete(SmfRelationId& relation);
+
+private:
+	SmfRelationMgrPrivate* m_private;	//private impl wrapper
+	};
+
+#endif // SMFRELATIONMGR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfrelationmgr_p.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,348 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private Implementation of Relation Manager
+ * 
+ */
+
+#include "smfrelationmgr.h"
+#include "smfrelationmgr_p.h"
+
+#ifdef Q_OS_SYMBIAN
+	#include "smfclientsymbian.h"
+#else
+	#include "smfclientqt.h"
+#endif
+
+
+SmfRelationMgrPrivate::SmfRelationMgrPrivate(SmfRelationMgr* relnMngr)
+	{
+	Q_UNUSED(relnMngr)
+#ifdef Q_OS_SYMBIAN
+	//private impl for symbian
+	m_SmfClientPrivate = CSmfClientSymbian::NewL();
+#endif
+	}
+
+SmfRelationMgrPrivate::~SmfRelationMgrPrivate()
+	{
+	if(m_SmfClientPrivate)
+		{
+		delete m_SmfClientPrivate;
+		m_SmfClientPrivate = NULL;
+		}
+	}
+
+SmfRelationId SmfRelationMgrPrivate::create( SmfProvider *provider, SmfContact *contact)
+	{
+	m_dataForDSM.clear();
+	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
+	if(provider)
+		{
+		m_argFlag = 1;
+		writeStream<<m_argFlag;
+		writeStream<<*provider;
+		}
+	else
+		{
+		m_argFlag = 0;
+		writeStream<<m_argFlag;
+		}
+	if(contact)
+		{
+		m_argFlag = 1;
+		writeStream<<m_argFlag;
+		writeStream<<*contact;
+		}
+	else
+		{
+		m_argFlag = 0;
+		writeStream<<m_argFlag;
+		}
+	
+	m_dataFromDSM.clear();
+	SmfError err = SmfNoError;
+	SmfRelationId relnId;
+	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationCreate,m_dataForDSM,err,maxSmfRelationIdSize);
+	if(err == SmfNoError)
+		{
+		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
+		readStream>>relnId;
+		}
+	else
+		{
+		User::Panic(_L("DSM err = "),err);
+		}
+	return relnId;
+	}
+
+SmfError SmfRelationMgrPrivate::associate( SmfRelationId& relation,
+		const SmfContact* contact, SmfProvider* provider)
+	{
+	m_dataForDSM.clear();
+	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
+	writeStream<<relation;
+	if(contact)
+		{
+		m_argFlag = 1;
+		writeStream<<m_argFlag;
+		writeStream<<*contact;
+		}
+	else
+		{
+		m_argFlag = 0;
+		writeStream<<m_argFlag;
+		}
+	if(provider)
+		{
+		m_argFlag = 1;
+		writeStream<<m_argFlag;
+		writeStream<<*provider;
+		}
+	else
+		{
+		m_argFlag = 0;
+		writeStream<<m_argFlag;
+		}
+	
+	m_dataFromDSM.clear();
+	SmfError err = SmfNoError;
+	int maxAlloc = 100;
+	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationAssociate,m_dataForDSM,err,maxAlloc);
+	if(err == SmfNoError)
+		{
+		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
+		int errInt;
+		readStream>>errInt;
+		err = (SmfError)errInt;
+		}
+	else
+		{
+		User::Panic(_L("DSM err = "),err);
+		}
+	return err;
+	}
+
+SmfError SmfRelationMgrPrivate::remove(SmfRelationId& relation,const SmfContact* contact)
+	{
+	m_dataForDSM.clear();
+	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
+	writeStream<<relation;
+	if(contact)
+		{
+		m_argFlag = 1;
+		writeStream<<m_argFlag;
+		writeStream<<*contact;
+		}
+	else
+		{
+		m_argFlag = 0;
+		writeStream<<m_argFlag;
+		}
+	
+	m_dataFromDSM.clear();
+	SmfError err = SmfNoError;
+	int maxAlloc = 100;
+	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationRemove,m_dataForDSM,err,maxAlloc);
+	if(err == SmfNoError)
+		{
+		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
+		int errInt;
+		readStream>>errInt;
+		err = (SmfError)errInt;
+		}
+	else
+		{
+		const QString errStr = QString::number(err);
+		Q_ASSERT_X(1,"SmfRelationMgrPrivate::remove","error");
+		}
+	return err;
+	}
+
+SmfRelationItem* SmfRelationMgrPrivate::searchById(const SmfRelationId& relation)
+	{
+	m_dataForDSM.clear();
+	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
+	writeStream<<relation;
+	
+	m_dataFromDSM.clear();
+	int maxAlloc = MaxSmfContactSize;
+	SmfError err = SmfNoError;
+	SmfRelationItem *relnItem = NULL;
+	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationSearchById,m_dataForDSM,err,maxAlloc);
+	if(err == SmfNoError)
+		{
+		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
+		m_argFlag = 0;
+		readStream>>m_argFlag;
+		if(m_argFlag)
+			{
+			relnItem = new SmfRelationItem;
+			readStream>>*(relnItem);
+			}
+		}
+	else
+		{
+		User::Panic(_L("DSM err = "),err);
+		}
+	return relnItem;
+	}
+
+SmfRelationId SmfRelationMgrPrivate::searchByContact( SmfContact contact)
+	{
+	m_dataForDSM.clear();
+	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
+	writeStream<<contact;
+	
+	m_dataFromDSM.clear();
+	int maxAlloc = 1000;
+	SmfError err = SmfNoError;
+	SmfRelationId relnId;
+	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationSearchByContact,m_dataForDSM,err,maxAlloc);
+	if(err == SmfNoError)
+		{
+		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
+		readStream>>relnId;
+		}
+	else
+		{
+		User::Panic(_L("DSM err = "),err);
+		}
+	return relnId;
+	}
+
+//number of contacts in a relation
+uint SmfRelationMgrPrivate::count(SmfRelationId relation)
+	{
+	m_dataForDSM.clear();
+	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
+	writeStream<<relation;
+	
+	m_dataFromDSM.clear();
+	SmfError err = SmfNoError;
+	int maxAlloc = 100;
+	uint count;
+	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationCount,m_dataForDSM,err,maxAlloc);
+	if(err == SmfNoError)
+		{
+		QDataStream readStream(&m_dataForDSM,QIODevice::ReadOnly);
+		readStream>>count;
+		}
+	else
+		{
+		User::Panic(_L("DSM err = "),err);
+		}
+	return count;
+	}
+
+SmfRelationItem* SmfRelationMgrPrivate::get(SmfRelationId& relation, quint32 index)
+	{
+	m_dataForDSM.clear();
+	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
+	writeStream<<relation;
+	writeStream<<index;
+	
+	m_dataFromDSM.clear();
+	SmfError err = SmfNoError;
+	int maxAlloc = maxSmfRelationItemSize;
+	SmfRelationItem* relationItem = NULL;
+	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationGet,m_dataForDSM,err,maxAlloc);
+	if(err == SmfNoError)
+		{
+		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
+		m_argFlag = 0;
+		readStream>>m_argFlag;
+		if(m_argFlag)
+			{
+			relationItem = new SmfRelationItem;
+			readStream>>*(relationItem);
+			}
+		}
+	else
+		{
+		User::Panic(_L("DSM err = "),err);
+		}
+	return relationItem;
+	}
+
+QList<SmfRelationItem> SmfRelationMgrPrivate::getAll(SmfRelationId& relation)
+	{
+	m_dataForDSM.clear();
+	
+	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
+	writeStream<<relation;
+		
+	m_dataFromDSM.clear();
+	SmfError err = SmfNoError;
+	QList<SmfRelationItem> relationItemList;
+	int maxAlloc = maxSmfRelationItemSize*maxRelationItems;
+	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationGetAll,m_dataForDSM,err,maxAlloc);
+	if(err == SmfNoError)
+		{
+		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
+		readStream>>relationItemList;
+		}
+	else
+		{
+		User::Panic(_L("DSM err = "),err);
+		}
+	return relationItemList;
+	}
+
+QList<SmfRelationId> SmfRelationMgrPrivate::getAllRelations()
+	{
+	m_dataForDSM.clear();
+	
+	m_dataFromDSM.clear();
+	SmfError err = SmfNoError;
+	int maxAlloc = 1000*maxRelationItems;
+	QList<SmfRelationId> relationIdList;
+	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationGetAllRelations,m_dataForDSM,err,maxAlloc);
+	if(err == SmfNoError)
+		{
+		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
+		readStream>>relationIdList;
+		}
+	else
+		{
+		User::Panic(_L("DSM err = "),err);
+		}
+	return relationIdList;
+	}
+
+SmfError SmfRelationMgrPrivate::Delete(SmfRelationId& relation)
+	{
+	m_dataForDSM.clear();
+	
+	QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly);
+	writeStream<<relation;
+		
+	m_dataFromDSM.clear();
+	SmfError err = SmfNoError;
+	int maxAlloc = 100;
+	m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationDeleteRelation,m_dataForDSM,err,maxAlloc);
+	if(err == SmfNoError)
+		{
+		QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly);
+		int errInt;
+		readStream>>errInt;
+		err = (SmfError)errInt;
+		}
+	else
+		{
+		User::Panic(_L("DSM err = "),err);
+		}
+	return err;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfclient/smfrelationmgr_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private Implementation of Relation Manager
+ * 
+ */
+
+#ifndef SMFRELATIONMGR_P_H
+#define SMFRELATIONMGR_P_H
+
+#include <QStringList>
+#include <smfprovider.h>
+#include <smfclientglobal.h>
+#include <smfglobal.h>
+#include <smfobserver.h>
+
+class SmfRelationMgr;
+class SmfProvider;
+#ifdef Q_OS_SYMBIAN
+	class CSmfClientSymbian;
+#else
+	class SmfClientQt;
+#endif
+	
+class SmfRelationMgrPrivate
+	{
+public:
+	SmfRelationMgrPrivate(SmfRelationMgr* relnMngr);
+	~SmfRelationMgrPrivate();
+	
+public:
+	/** create a relation with first contact (id optional) */
+	SmfRelationId create(SmfProvider *provider=NULL, SmfContact *contact=NULL);
+
+	/** assign contact to a relation */
+	SmfError associate( SmfRelationId& relation,
+						const SmfContact* contact,
+						SmfProvider* provider);
+
+	/** remove contact from a relation */
+	SmfError remove(SmfRelationId& relation,
+					const SmfContact* contact);
+
+	/** returns first relation item in the relation when exists, NULL otherwise */
+	SmfRelationItem* searchById(const SmfRelationId& relation);
+
+	/** returns relation Id for a given contacts if exists, NULL otherwise */
+	SmfRelationId searchByContact( SmfContact contact);
+
+	/** returns number of contacts in a relation*/
+	uint count(SmfRelationId relation);
+
+	/** contacts and their provider */
+	SmfRelationItem* get(SmfRelationId& relation, quint32 index);
+
+	/** list of contacts and their provider */
+	QList<SmfRelationItem> getAll(SmfRelationId& relation);
+
+	/** list of all relations */
+	QList<SmfRelationId> getAllRelations();
+
+	/** delete a particular relation*/
+	SmfError Delete(SmfRelationId& relation);
+	
+private:
+#ifdef Q_OS_SYMBIAN
+	CSmfClientSymbian* m_SmfClientPrivate;
+	friend class CSmfClientSymbian;
+#else
+	SmfClientQt* m_SmfClientPrivate;
+	friend class SmfClientQt;
+#endif
+	QByteArray m_dataForDSM;
+	quint8 m_argFlag;
+	QByteArray m_dataFromDSM;
+	};
+
+#endif // SMFRELATIONMGR_P_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/bwins/smfcommonu.def	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,438 @@
+EXPORTS
+	??0SmfPictureAlbum@@QAE@XZ @ 1 NONAME ; SmfPictureAlbum::SmfPictureAlbum(void)
+	?setCreationDate@SmfPlaylist@@QAEXABVQDateTime@@@Z @ 2 NONAME ; void SmfPlaylist::setCreationDate(class QDateTime const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfGroup@@@Z @ 3 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfGroup &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfPictureAlbum@@@Z @ 4 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPictureAlbum const &)
+	??0SmfPicture@@QAE@XZ @ 5 NONAME ; SmfPicture::SmfPicture(void)
+	?createParameterString@SmfPluginUtil@@QAE?AVQByteArray@@ABVQString@@W4Operation@QNetworkAccessManager@@ABV2@2W4SmfSignatureMethod@@ABV?$QMultiMap@VQByteArray@@V1@@@W4SmfParsingMode@@@Z @ 6 NONAME ; class QByteArray SmfPluginUtil::createParameterString(class QString const &, enum QNetworkAccessManager::Operation, class QByteArray const &, class QByteArray const &, enum SmfSignatureMethod, class QMultiMap<class QByteArray, class QByteArray> const &, enum SmfParsingMode)
+	?applicationUrl@SmfProvider@@QBE?AVQUrl@@XZ @ 7 NONAME ; class QUrl SmfProvider::applicationUrl(void) const
+	?setDetails@SmfActivityEntry@@QAE_NABVSmfPost@@@Z @ 8 NONAME ; bool SmfActivityEntry::setDetails(class SmfPost const &)
+	?setDuration@SmfTrackInfo@@QAEXABVQTime@@@Z @ 9 NONAME ; void SmfTrackInfo::setDuration(class QTime const &)
+	?setId@SmfLocation@@QAEXABVQString@@@Z @ 10 NONAME ; void SmfLocation::setId(class QString const &)
+	?owner@SmfPost@@QBE?AVSmfContact@@XZ @ 11 NONAME ; class SmfContact SmfPost::owner(void) const
+	?setGeoPositionInfo@SmfLocation@@QAEXABVQGeoPositionInfo@QtMobility@@@Z @ 12 NONAME ; void SmfLocation::setGeoPositionInfo(class QtMobility::QGeoPositionInfo const &)
+	?setLanguage@SmfLyrics@@QAEXABVQString@@@Z @ 13 NONAME ; void SmfLyrics::setLanguage(class QString const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactType@QtMobility@@@Z @ 14 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactType const &)
+	?metadata@SmfPlaylist@@QBE?AV?$QMap@VQString@@VQVariant@@@@XZ @ 15 NONAME ; class QMap<class QString, class QVariant> SmfPlaylist::metadata(void) const
+	?extension@SmfPlaylist@@QBE?AV?$QMap@VQString@@VQVariant@@@@XZ @ 16 NONAME ; class QMap<class QString, class QVariant> SmfPlaylist::extension(void) const
+	?duration@SmfSubtitle@@QBENXZ @ 17 NONAME ; double SmfSubtitle::duration(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfContact@@@Z @ 18 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfContact const &)
+	?setLocation@SmfPlaylist@@QAEXABVQUrl@@@Z @ 19 NONAME ; void SmfPlaylist::setLocation(class QUrl const &)
+	?postedDateTime@SmfPost@@QBE?AVQDateTime@@XZ @ 20 NONAME ; class QDateTime SmfPost::postedDateTime(void) const
+	?setDescription@SmfPictureAlbum@@QAEXABVQString@@@Z @ 21 NONAME ; void SmfPictureAlbum::setDescription(class QString const &)
+	?link@SmfActivityObject@@QBE?AVQString@@XZ @ 22 NONAME ; class QString SmfActivityObject::link(void) const
+	?image@SmfArtists@@QBE?AVQImage@@XZ @ 23 NONAME ; class QImage SmfArtists::image(void) const
+	?setVersion@SmfPlaylist@@QAEXABVQString@@@Z @ 24 NONAME ; void SmfPlaylist::setVersion(class QString const &)
+	??0SmfLocation@@QAE@ABV0@@Z @ 25 NONAME ; SmfLocation::SmfLocation(class SmfLocation const &)
+	?setTicketUrl@SmfEvent@@QAEXABVQUrl@@@Z @ 26 NONAME ; void SmfEvent::setTicketUrl(class QUrl const &)
+	?setId@SmfAlbum@@QAEXABVQString@@@Z @ 27 NONAME ; void SmfAlbum::setId(class QString const &)
+	??0SmfTrackInfo@@QAE@ABV0@@Z @ 28 NONAME ; SmfTrackInfo::SmfTrackInfo(class SmfTrackInfo const &)
+	??1SmfMusicRating@@QAE@XZ @ 29 NONAME ; SmfMusicRating::~SmfMusicRating(void)
+	?setObjData@SmfActivityObject@@QAEXABVQVariant@@@Z @ 30 NONAME ; void SmfActivityObject::setObjData(class QVariant const &)
+	?setName@SmfAlbum@@QAEXABVQString@@@Z @ 31 NONAME ; void SmfAlbum::setName(class QString const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactTimestamp@QtMobility@@@Z @ 32 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactTimestamp const &)
+	?parse@SmfPluginUtil@@QAE?AVQVariant@@PAVQIODevice@@PA_N@Z @ 33 NONAME ; class QVariant SmfPluginUtil::parse(class QIODevice *, bool *)
+	??0SmfMusicProfile@@QAE@ABV0@@Z @ 34 NONAME ; SmfMusicProfile::SmfMusicProfile(class SmfMusicProfile const &)
+	??0SmfPost@@QAE@XZ @ 35 NONAME ; SmfPost::SmfPost(void)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicFingerPrint@@@Z @ 36 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicFingerPrint &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactBirthday@QtMobility@@@Z @ 37 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactBirthday &)
+	?caption@SmfActivityObject@@QBE?AVQString@@XZ @ 38 NONAME ; class QString SmfActivityObject::caption(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfTrackInfo@@@Z @ 39 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfTrackInfo const &)
+	?title@SmfUrl@@QBE?AVQString@@XZ @ 40 NONAME ; class QString SmfUrl::title(void) const
+	?tags@SmfPicture@@QBE?AVQStringList@@XZ @ 41 NONAME ; class QStringList SmfPicture::tags(void) const
+	?language@SmfSubtitle@@QBE?AVQString@@XZ @ 42 NONAME ; class QString SmfSubtitle::language(void) const
+	??0SmfSubtitle@@QAE@ABV0@@Z @ 43 NONAME ; SmfSubtitle::SmfSubtitle(class SmfSubtitle const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactNickname@QtMobility@@@Z @ 44 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactNickname const &)
+	?userEvents@SmfMusicProfile@@QBE?AV?$QList@VSmfEvent@@@@XZ @ 45 NONAME ; class QList<class SmfEvent> SmfMusicProfile::userEvents(void) const
+	??4SmfPicture@@QAEAAV0@ABV0@@Z @ 46 NONAME ; class SmfPicture & SmfPicture::operator=(class SmfPicture const &)
+	?id@SmfUrl@@QBE?AVQString@@XZ @ 47 NONAME ; class QString SmfUrl::id(void) const
+	?setImage@SmfPost@@QAEXABVQImage@@@Z @ 48 NONAME ; void SmfPost::setImage(class QImage const &)
+	?supportedInterfaces@SmfProvider@@QBE?AV?$QList@VQString@@@@XZ @ 49 NONAME ; class QList<class QString> SmfProvider::supportedInterfaces(void) const
+	??0SmfComment@@QAE@ABV0@@Z @ 50 NONAME ; SmfComment::SmfComment(class SmfComment const &)
+	?setCaption@SmfActivityObject@@QAEXABVQString@@@Z @ 51 NONAME ; void SmfActivityObject::setCaption(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicProfile@@@Z @ 52 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicProfile &)
+	?setLyrics@SmfLyrics@@QAEXABVQByteArray@@@Z @ 53 NONAME ; void SmfLyrics::setLyrics(class QByteArray const &)
+	?setServiceUrl@SmfProvider@@QAEXAAVQUrl@@@Z @ 54 NONAME ; void SmfProvider::setServiceUrl(class QUrl &)
+	??4SmfAlbum@@QAEAAV0@ABV0@@Z @ 55 NONAME ; class SmfAlbum & SmfAlbum::operator=(class SmfAlbum const &)
+	?setTitle@SmfActivityEntry@@QAE_NABVSmfPost@@@Z @ 56 NONAME ; bool SmfActivityEntry::setTitle(class SmfPost const &)
+	?setUrl@SmfPost@@QAEXAAVQUrl@@@Z @ 57 NONAME ; void SmfPost::setUrl(class QUrl &)
+	?length@SmfUrl@@QBE?AVQString@@XZ @ 58 NONAME ; class QString SmfUrl::length(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfComment@@@Z @ 59 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfComment const &)
+	??0SmfPictureAlbum@@QAE@ABV0@@Z @ 60 NONAME ; SmfPictureAlbum::SmfPictureAlbum(class SmfPictureAlbum const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfLyrics@@@Z @ 61 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfLyrics const &)
+	?setLicense@SmfPlaylist@@QAEXABVQUrl@@@Z @ 62 NONAME ; void SmfPlaylist::setLicense(class QUrl const &)
+	?creationDate@SmfPlaylist@@QBE?AVQDateTime@@XZ @ 63 NONAME ; class QDateTime SmfPlaylist::creationDate(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfEvent@@@Z @ 64 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfEvent &)
+	??0SmfGroup@@QAE@ABV0@@Z @ 65 NONAME ; SmfGroup::SmfGroup(class SmfGroup const &)
+	?parse@SmfPluginUtil@@QAE?AVQVariant@@ABVQByteArray@@PA_N@Z @ 66 NONAME ; class QVariant SmfPluginUtil::parse(class QByteArray const &, bool *)
+	?id@SmfGroup@@QBE?AVQString@@XZ @ 67 NONAME ; class QString SmfGroup::id(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfArtists@@@Z @ 68 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfArtists const &)
+	?setUserEvents@SmfMusicProfile@@QAEXABV?$QList@VSmfEvent@@@@@Z @ 69 NONAME ; void SmfMusicProfile::setUserEvents(class QList<class SmfEvent> const &)
+	?setRel@SmfUrl@@QAEXABVQString@@@Z @ 70 NONAME ; void SmfUrl::setRel(class QString const &)
+	?setUrl@SmfArtists@@QAEXABVQUrl@@@Z @ 71 NONAME ; void SmfArtists::setUrl(class QUrl const &)
+	?setMaxRating@SmfMusicRating@@QAEXABH@Z @ 72 NONAME ; void SmfMusicRating::setMaxRating(int const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfPictureAlbum@@@Z @ 73 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPictureAlbum &)
+	?serviceName@SmfProvider@@QBE?AVQString@@XZ @ 74 NONAME ; class QString SmfProvider::serviceName(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfActivityEntry@@@Z @ 75 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfActivityEntry &)
+	?title@SmfTrackInfo@@QBE?AVQString@@XZ @ 76 NONAME ; class QString SmfTrackInfo::title(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfAlbum@@@Z @ 77 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfAlbum const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactTimestamp@QtMobility@@@Z @ 78 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactTimestamp &)
+	?visibility@SmfPictureAlbum@@QBE?AW4SmfPictureVisibility@@XZ @ 79 NONAME ; enum SmfPictureVisibility SmfPictureAlbum::visibility(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVQContactBirthday@QtMobility@@@Z @ 80 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactBirthday const &)
+	?setTime@SmfActivityObject@@QAEXABVQDateTime@@@Z @ 81 NONAME ; void SmfActivityObject::setTime(class QDateTime const &)
+	?rating@SmfTrackInfo@@QBE?AVSmfMusicRating@@XZ @ 82 NONAME ; class SmfMusicRating SmfTrackInfo::rating(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVQContactOnlineAccount@QtMobility@@@Z @ 83 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactOnlineAccount &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactGeoLocation@QtMobility@@@Z @ 84 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGeoLocation &)
+	?type@SmfUrl@@QBE?AVQString@@XZ @ 85 NONAME ; class QString SmfUrl::type(void) const
+	?setVenue@SmfEvent@@QAEXABVSmfLocation@@@Z @ 86 NONAME ; void SmfEvent::setVenue(class SmfLocation const &)
+	?rating@SmfMusicRating@@QBEHXZ @ 87 NONAME ; int SmfMusicRating::rating(void) const
+	?id@SmfActivityObject@@QBE?AVQString@@XZ @ 88 NONAME ; class QString SmfActivityObject::id(void) const
+	?setId@SmfPictureAlbum@@QAEXABVQString@@@Z @ 89 NONAME ; void SmfPictureAlbum::setId(class QString const &)
+	??4SmfUrl@@QAEAAV0@ABV0@@Z @ 90 NONAME ; class SmfUrl & SmfUrl::operator=(class SmfUrl const &)
+	??0SmfPost@@QAE@ABV0@@Z @ 91 NONAME ; SmfPost::SmfPost(class SmfPost const &)
+	?setVisibility@SmfPicture@@QAEXABW4SmfPictureVisibility@@@Z @ 92 NONAME ; void SmfPicture::setVisibility(enum SmfPictureVisibility const &)
+	?setTimeStamp@SmfComment@@QAEXABVQDateTime@@@Z @ 93 NONAME ; void SmfComment::setTimeStamp(class QDateTime const &)
+	?setContent@SmfActivityObject@@QAEXABVQString@@@Z @ 94 NONAME ; void SmfActivityObject::setContent(class QString const &)
+	?id@SmfMusicProfile@@QBE?AVQString@@XZ @ 95 NONAME ; class QString SmfMusicProfile::id(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfLyrics@@@Z @ 96 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfLyrics &)
+	??4SmfPlaylist@@QAEAAV0@ABV0@@Z @ 97 NONAME ; class SmfPlaylist & SmfPlaylist::operator=(class SmfPlaylist const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactThumbnail@QtMobility@@@Z @ 98 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactThumbnail const &)
+	?setOwner@SmfPicture@@QAEXABVQString@@@Z @ 99 NONAME ; void SmfPicture::setOwner(class QString const &)
+	??4SmfPictureAlbum@@QAEAAV0@ABV0@@Z @ 100 NONAME ; class SmfPictureAlbum & SmfPictureAlbum::operator=(class SmfPictureAlbum const &)
+	?tags@SmfTrackInfo@@QBE?AVQStringList@@XZ @ 101 NONAME ; class QStringList SmfTrackInfo::tags(void) const
+	?setType@SmfActivityObject@@QAEXABW4SmfActivityObjectType@@@Z @ 102 NONAME ; void SmfActivityObject::setType(enum SmfActivityObjectType const &)
+	?id@SmfAlbum@@QBE?AVQString@@XZ @ 103 NONAME ; class QString SmfAlbum::id(void) const
+	?maxRating@SmfMusicRating@@QBEHXZ @ 104 NONAME ; int SmfMusicRating::maxRating(void) const
+	??0SmfPlaylist@@QAE@ABV0@@Z @ 105 NONAME ; SmfPlaylist::SmfPlaylist(class SmfPlaylist const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactAddress@QtMobility@@@Z @ 106 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAddress const &)
+	?picture@SmfPicture@@QBE?AVQImage@@XZ @ 107 NONAME ; class QImage SmfPicture::picture(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfActivityEntry@@@Z @ 108 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfActivityEntry const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfPost@@@Z @ 109 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPost const &)
+	??1SmfPluginUtil@@QAE@XZ @ 110 NONAME ; SmfPluginUtil::~SmfPluginUtil(void)
+	?setActivities@SmfActivityEntry@@QAE_NAAV?$QList@VSmfActivityObject@@@@@Z @ 111 NONAME ; bool SmfActivityEntry::setActivities(class QList<class SmfActivityObject> &)
+	?thumbnail@SmfPictureAlbum@@QBE?AVQImage@@XZ @ 112 NONAME ; class QImage SmfPictureAlbum::thumbnail(void) const
+	??4SmfSubtitle@@QAEAAV0@ABV0@@Z @ 113 NONAME ; class SmfSubtitle & SmfSubtitle::operator=(class SmfSubtitle const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfPlaylist@@@Z @ 114 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPlaylist &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfTrackInfo@@@Z @ 115 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfTrackInfo &)
+	?setRating@SmfMusicRating@@QAEXABH@Z @ 116 NONAME ; void SmfMusicRating::setRating(int const &)
+	?comments@SmfPlaylist@@QBE?AV?$QList@VSmfComment@@@@XZ @ 117 NONAME ; class QList<class SmfComment> SmfPlaylist::comments(void) const
+	??0SmfGroup@@QAE@PAV?$QList@VSmfContact@@@@@Z @ 118 NONAME ; SmfGroup::SmfGroup(class QList<class SmfContact> *)
+	?playListTitle@SmfPlaylist@@QBE?AVQString@@XZ @ 119 NONAME ; class QString SmfPlaylist::playListTitle(void) const
+	?convert@SmfContact@@QBEXAAVQContact@QtMobility@@@Z @ 120 NONAME ; void SmfContact::convert(class QtMobility::QContact &) const
+	??4SmfTrackInfo@@QAEAAV0@ABV0@@Z @ 121 NONAME ; class SmfTrackInfo & SmfTrackInfo::operator=(class SmfTrackInfo const &)
+	?street@SmfLocation@@QBE?AVQString@@XZ @ 122 NONAME ; class QString SmfLocation::street(void) const
+	?author@SmfPlaylist@@QBE?AVQString@@XZ @ 123 NONAME ; class QString SmfPlaylist::author(void) const
+	?duration@SmfTrackInfo@@QBE?AVQTime@@XZ @ 124 NONAME ; class QTime SmfTrackInfo::duration(void) const
+	??1SmfPictureAlbum@@QAE@XZ @ 125 NONAME ; SmfPictureAlbum::~SmfPictureAlbum(void)
+	?setServiceIcon@SmfProvider@@QAEXAAVQImage@@@Z @ 126 NONAME ; void SmfProvider::setServiceIcon(class QImage &)
+	??0SmfMusicRating@@QAE@ABV0@@Z @ 127 NONAME ; SmfMusicRating::SmfMusicRating(class SmfMusicRating const &)
+	?setTitle@SmfPicture@@QAEXABVQString@@@Z @ 128 NONAME ; void SmfPicture::setTitle(class QString const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfPicture@@@Z @ 129 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPicture const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicRating@@@Z @ 130 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicRating const &)
+	?url@SmfLocation@@QBE?AVQUrl@@XZ @ 131 NONAME ; class QUrl SmfLocation::url(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVQContactPhoneNumber@QtMobility@@@Z @ 132 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactPhoneNumber const &)
+	?url@SmfPictureAlbum@@QBE?AVQUrl@@XZ @ 133 NONAME ; class QUrl SmfPictureAlbum::url(void) const
+	?image@SmfAlbum@@QBE?AVQImage@@XZ @ 134 NONAME ; class QImage SmfAlbum::image(void) const
+	?duration@SmfEvent@@QBE?AVQTime@@XZ @ 135 NONAME ; class QTime SmfEvent::duration(void) const
+	?setOwner@SmfPost@@QAEXABVSmfContact@@@Z @ 136 NONAME ; void SmfPost::setOwner(class SmfContact const &)
+	?setId@SmfPost@@QAEXVQString@@@Z @ 137 NONAME ; void SmfPost::setId(class QString)
+	??0SmfAlbum@@QAE@ABV0@@Z @ 138 NONAME ; SmfAlbum::SmfAlbum(class SmfAlbum const &)
+	?url@SmfPicture@@QBE?AVQUrl@@XZ @ 139 NONAME ; class QUrl SmfPicture::url(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfPlaylist@@@Z @ 140 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfPlaylist const &)
+	??_ESmfComment@@QAE@I@Z @ 141 NONAME ; SmfComment::~SmfComment(unsigned int)
+	?setText@SmfComment@@QAEXABVQString@@@Z @ 142 NONAME ; void SmfComment::setText(class QString const &)
+	?postedDate@SmfPicture@@QBE?AVQDateTime@@XZ @ 143 NONAME ; class QDateTime SmfPicture::postedDate(void) const
+	?setArtists@SmfAlbum@@QAEXABVSmfArtists@@@Z @ 144 NONAME ; void SmfAlbum::setArtists(class SmfArtists const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactOnlineAccount@QtMobility@@@Z @ 145 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactOnlineAccount const &)
+	??1SmfUrl@@QAE@XZ @ 146 NONAME ; SmfUrl::~SmfUrl(void)
+	??1SmfActivityEntry@@QAE@XZ @ 147 NONAME ; SmfActivityEntry::~SmfActivityEntry(void)
+	?artists@SmfTrackInfo@@QBE?AVSmfArtists@@XZ @ 148 NONAME ; class SmfArtists SmfTrackInfo::artists(void) const
+	??0SmfMusicProfile@@QAE@XZ @ 149 NONAME ; SmfMusicProfile::SmfMusicProfile(void)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactThumbnail@QtMobility@@@Z @ 150 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactThumbnail &)
+	?title@SmfActivityEntry@@QBE?AVSmfPost@@XZ @ 151 NONAME ; class SmfPost SmfActivityEntry::title(void) const
+	??0SmfAlbum@@QAE@XZ @ 152 NONAME ; SmfAlbum::SmfAlbum(void)
+	?ticketUrl@SmfEvent@@QBE?AVQUrl@@XZ @ 153 NONAME ; class QUrl SmfEvent::ticketUrl(void) const
+	?setId@SmfGroup@@QAEXAAVQString@@@Z @ 154 NONAME ; void SmfGroup::setId(class QString &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactName@QtMobility@@@Z @ 155 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactName &)
+	?text@SmfComment@@QBE?AVQString@@XZ @ 156 NONAME ; class QString SmfComment::text(void) const
+	?setTargetObj@SmfActivityEntry@@QAE_NABVSmfActivityObject@@@Z @ 157 NONAME ; bool SmfActivityEntry::setTargetObj(class SmfActivityObject const &)
+	?setName@SmfGroup@@QAEXAAVQString@@@Z @ 158 NONAME ; void SmfGroup::setName(class QString &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfProvider@@@Z @ 159 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfProvider &)
+	??_ESmfEvent@@QAE@I@Z @ 160 NONAME ; SmfEvent::~SmfEvent(unsigned int)
+	?setValue@SmfContact@@QAEXABVQString@@AAVQVariant@@@Z @ 161 NONAME ; void SmfContact::setValue(class QString const &, class QVariant &)
+	?info@SmfPlaylist@@QBE?AVQUrl@@XZ @ 162 NONAME ; class QUrl SmfPlaylist::info(void) const
+	?author@SmfActivityEntry@@QBE?AVSmfContact@@XZ @ 163 NONAME ; class SmfContact SmfActivityEntry::author(void) const
+	?setLink@SmfActivityObject@@QAEXABVQString@@@Z @ 164 NONAME ; void SmfActivityObject::setLink(class QString const &)
+	?subtitle@SmfSubtitle@@QBE?AVQByteArray@@XZ @ 165 NONAME ; class QByteArray SmfSubtitle::subtitle(void) const
+	?setId@SmfTrackInfo@@QAEXABVQString@@@Z @ 166 NONAME ; void SmfTrackInfo::setId(class QString const &)
+	?setImage@SmfAlbum@@QAEXABVQImage@@@Z @ 167 NONAME ; void SmfAlbum::setImage(class QImage const &)
+	?id@SmfPost@@QBE?AVQString@@XZ @ 168 NONAME ; class QString SmfPost::id(void) const
+	?setGenre@SmfTrackInfo@@QAEXABVQString@@@Z @ 169 NONAME ; void SmfTrackInfo::setGenre(class QString const &)
+	?serviceUrl@SmfProvider@@QBE?AVQUrl@@XZ @ 170 NONAME ; class QUrl SmfProvider::serviceUrl(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfActivityObject@@@Z @ 171 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfActivityObject &)
+	?releaseYear@SmfLyrics@@QBE?AVQDateTime@@XZ @ 172 NONAME ; class QDateTime SmfLyrics::releaseYear(void) const
+	?frameRate@SmfSubtitle@@QBENXZ @ 173 NONAME ; double SmfSubtitle::frameRate(void) const
+	??1SmfEvent@@QAE@XZ @ 174 NONAME ; SmfEvent::~SmfEvent(void)
+	?setPostedDate@SmfPicture@@QAEXABVQDateTime@@@Z @ 175 NONAME ; void SmfPicture::setPostedDate(class QDateTime const &)
+	?setTitle@SmfPictureAlbum@@QAEXABVQString@@@Z @ 176 NONAME ; void SmfPictureAlbum::setTitle(class QString const &)
+	?comments@SmfPicture@@QBE?AV?$QList@VSmfComment@@@@XZ @ 177 NONAME ; class QList<class SmfComment> SmfPicture::comments(void) const
+	??1SmfMusicFingerPrint@@QAE@XZ @ 178 NONAME ; SmfMusicFingerPrint::~SmfMusicFingerPrint(void)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfProvider@@@Z @ 179 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfProvider const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactAvatar@QtMobility@@@Z @ 180 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAvatar const &)
+	?trackList@SmfPlaylist@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 181 NONAME ; class QList<class SmfTrackInfo> SmfPlaylist::trackList(void) const
+	??1SmfArtists@@QAE@XZ @ 182 NONAME ; SmfArtists::~SmfArtists(void)
+	??_ESmfActivityObject@@QAE@I@Z @ 183 NONAME ; SmfActivityObject::~SmfActivityObject(unsigned int)
+	??4SmfMusicRating@@QAEAAV0@ABV0@@Z @ 184 NONAME ; class SmfMusicRating & SmfMusicRating::operator=(class SmfMusicRating const &)
+	?getNonce@SmfPluginUtil@@QAEXAAVQString@@_J@Z @ 185 NONAME ; void SmfPluginUtil::getNonce(class QString &, long long)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactAvatar@QtMobility@@@Z @ 186 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAvatar &)
+	??0SmfActivityObject@@QAE@XZ @ 187 NONAME ; SmfActivityObject::SmfActivityObject(void)
+	?musicFingerPrint@SmfMusicFingerPrint@@QBE?AVQByteArray@@XZ @ 188 NONAME ; class QByteArray SmfMusicFingerPrint::musicFingerPrint(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfSubtitle@@@Z @ 189 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfSubtitle &)
+	??4SmfComment@@QAEAAV0@ABV0@@Z @ 190 NONAME ; class SmfComment & SmfComment::operator=(class SmfComment const &)
+	?subTypes@SmfContact@@QBE?AVQStringList@@XZ @ 191 NONAME ; class QStringList SmfContact::subTypes(void) const
+	??0SmfActivityObject@@QAE@ABV0@@Z @ 192 NONAME ; SmfActivityObject::SmfActivityObject(class SmfActivityObject const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactNote@QtMobility@@@Z @ 193 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactNote &)
+	?setImage@SmfArtists@@QAEXABVQImage@@@Z @ 194 NONAME ; void SmfArtists::setImage(class QImage const &)
+	?setTitle@SmfTrackInfo@@QAEXABVQString@@@Z @ 195 NONAME ; void SmfTrackInfo::setTitle(class QString const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactEmailAddress@QtMobility@@@Z @ 196 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactEmailAddress const &)
+	??4SmfContact@@QAEAAV0@ABV0@@Z @ 197 NONAME ; class SmfContact & SmfContact::operator=(class SmfContact const &)
+	??1SmfLocation@@QAE@XZ @ 198 NONAME ; SmfLocation::~SmfLocation(void)
+	?version@SmfPlaylist@@QBE?AVQString@@XZ @ 199 NONAME ; class QString SmfPlaylist::version(void) const
+	??1SmfLyrics@@QAE@XZ @ 200 NONAME ; SmfLyrics::~SmfLyrics(void)
+	??0SmfEvent@@QAE@ABV0@@Z @ 201 NONAME ; SmfEvent::SmfEvent(class SmfEvent const &)
+	?setMusicFingerPrint@SmfMusicFingerPrint@@QAEXABVQByteArray@@@Z @ 202 NONAME ; void SmfMusicFingerPrint::setMusicFingerPrint(class QByteArray const &)
+	?hreflang@SmfUrl@@QBE?AVQString@@XZ @ 203 NONAME ; class QString SmfUrl::hreflang(void) const
+	?setDescription@SmfProvider@@QAEXAAVQString@@@Z @ 204 NONAME ; void SmfProvider::setDescription(class QString &)
+	??0SmfActivityEntry@@QAE@ABV0@@Z @ 205 NONAME ; SmfActivityEntry::SmfActivityEntry(class SmfActivityEntry const &)
+	?activities@SmfActivityEntry@@QBE?AV?$QList@VSmfActivityObject@@@@XZ @ 206 NONAME ; class QList<class SmfActivityObject> SmfActivityEntry::activities(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVQContactUrl@QtMobility@@@Z @ 207 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactUrl &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactOrganization@QtMobility@@@Z @ 208 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactOrganization const &)
+	?comments@SmfTrackInfo@@QBE?AV?$QList@VSmfComment@@@@XZ @ 209 NONAME ; class QList<class SmfComment> SmfTrackInfo::comments(void) const
+	?setComment@SmfTrackInfo@@QAEXABV?$QList@VSmfComment@@@@@Z @ 210 NONAME ; void SmfTrackInfo::setComment(class QList<class SmfComment> const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfSubtitle@@@Z @ 211 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfSubtitle const &)
+	?attribution@SmfPlaylist@@QBE?AV?$QList@VQUrl@@@@XZ @ 212 NONAME ; class QList<class QUrl> SmfPlaylist::attribution(void) const
+	?addKeywords@SmfPictureAlbum@@QAEXABVQStringList@@@Z @ 213 NONAME ; void SmfPictureAlbum::addKeywords(class QStringList const &)
+	?setTags@SmfTrackInfo@@QAEXABVQStringList@@@Z @ 214 NONAME ; void SmfTrackInfo::setTags(class QStringList const &)
+	?setExtension@SmfPlaylist@@QAEXABV?$QMap@VQString@@VQVariant@@@@@Z @ 215 NONAME ; void SmfPlaylist::setExtension(class QMap<class QString, class QVariant> const &)
+	?setArtists@SmfEvent@@QAEXABVSmfArtists@@@Z @ 216 NONAME ; void SmfEvent::setArtists(class SmfArtists const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfGroup@@@Z @ 217 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfGroup const &)
+	?id@SmfPicture@@QBE?AVQString@@XZ @ 218 NONAME ; class QString SmfPicture::id(void) const
+	?description@SmfPost@@QBE?AVQString@@XZ @ 219 NONAME ; class QString SmfPost::description(void) const
+	?value@SmfContact@@QBE?AVQVariant@@ABVQString@@@Z @ 220 NONAME ; class QVariant SmfContact::value(class QString const &) const
+	??0SmfActivityEntry@@QAE@XZ @ 221 NONAME ; SmfActivityEntry::SmfActivityEntry(void)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactPhoneNumber@QtMobility@@@Z @ 222 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactPhoneNumber &)
+	?targetObj@SmfActivityEntry@@QBE?AVSmfActivityObject@@XZ @ 223 NONAME ; class SmfActivityObject SmfActivityEntry::targetObj(void) const
+	?id@SmfPlaylist@@QBE?AVQString@@XZ @ 224 NONAME ; class QString SmfPlaylist::id(void) const
+	?title@SmfPicture@@QBE?AVQString@@XZ @ 225 NONAME ; class QString SmfPicture::title(void) const
+	?title@SmfEvent@@QBE?AVQString@@XZ @ 226 NONAME ; class QString SmfEvent::title(void) const
+	?setMinRating@SmfMusicRating@@QAEXABH@Z @ 227 NONAME ; void SmfMusicRating::setMinRating(int const &)
+	??0SmfPicture@@QAE@ABV0@@Z @ 228 NONAME ; SmfPicture::SmfPicture(class SmfPicture const &)
+	?setId@SmfUrl@@QAEXABVQString@@@Z @ 229 NONAME ; void SmfUrl::setId(class QString const &)
+	?setId@SmfActivityEntry@@QAE_NABVQString@@@Z @ 230 NONAME ; bool SmfActivityEntry::setId(class QString const &)
+	?setDescription@SmfPost@@QAEXABVQString@@@Z @ 231 NONAME ; void SmfPost::setDescription(class QString const &)
+	?href@SmfUrl@@QBE?AVQUrl@@XZ @ 232 NONAME ; class QUrl SmfUrl::href(void) const
+	?image@SmfPost@@QBE?AVQImage@@XZ @ 233 NONAME ; class QImage SmfPost::image(void) const
+	?id@SmfLyrics@@QBE?AVQString@@XZ @ 234 NONAME ; class QString SmfLyrics::id(void) const
+	?setUrl@SmfPicture@@QAEXABVQUrl@@@Z @ 235 NONAME ; void SmfPicture::setUrl(class QUrl const &)
+	??4SmfEvent@@QAEAAV0@ABV0@@Z @ 236 NONAME ; class SmfEvent & SmfEvent::operator=(class SmfEvent const &)
+	??1SmfContact@@QAE@XZ @ 237 NONAME ; SmfContact::~SmfContact(void)
+	??4SmfPost@@QAEAAV0@ABV0@@Z @ 238 NONAME ; class SmfPost & SmfPost::operator=(class SmfPost const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactPresence@QtMobility@@@Z @ 239 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactPresence &)
+	?genre@SmfTrackInfo@@QBE?AVQString@@XZ @ 240 NONAME ; class QString SmfTrackInfo::genre(void) const
+	??0SmfLocation@@QAE@XZ @ 241 NONAME ; SmfLocation::SmfLocation(void)
+	?license@SmfPlaylist@@QBE?AVQUrl@@XZ @ 242 NONAME ; class QUrl SmfPlaylist::license(void) const
+	?setId@SmfEvent@@QAEXABVQString@@@Z @ 243 NONAME ; void SmfEvent::setId(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactGuid@QtMobility@@@Z @ 244 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGuid &)
+	?serviceIcon@SmfProvider@@QBE?AVQImage@@XZ @ 245 NONAME ; class QImage SmfProvider::serviceIcon(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVQContactEmailAddress@QtMobility@@@Z @ 246 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactEmailAddress &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfContact@@@Z @ 247 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfContact &)
+	?interestInfo@SmfMusicProfile@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 248 NONAME ; class QList<class SmfTrackInfo> SmfMusicProfile::interestInfo(void) const
+	?setStreet@SmfLocation@@QAEXABVQString@@@Z @ 249 NONAME ; void SmfLocation::setStreet(class QString const &)
+	??1SmfPost@@QAE@XZ @ 250 NONAME ; SmfPost::~SmfPost(void)
+	?members@SmfGroup@@QBE?AV?$QList@VSmfContact@@@@XZ @ 251 NONAME ; class QList<class SmfContact> SmfGroup::members(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfMusicRating@@@Z @ 252 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfMusicRating &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactId@QtMobility@@@Z @ 253 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactId &)
+	?setYear@SmfTrackInfo@@QAEXABVQDateTime@@@Z @ 254 NONAME ; void SmfTrackInfo::setYear(class QDateTime const &)
+	?geoPositionInfo@SmfLocation@@QBE?AVQGeoPositionInfo@QtMobility@@XZ @ 255 NONAME ; class QtMobility::QGeoPositionInfo SmfLocation::geoPositionInfo(void) const
+	??0SmfMusicFingerPrint@@QAE@ABV0@@Z @ 256 NONAME ; SmfMusicFingerPrint::SmfMusicFingerPrint(class SmfMusicFingerPrint const &)
+	?setPlayListTitle@SmfPlaylist@@QAEXABVQString@@@Z @ 257 NONAME ; void SmfPlaylist::setPlayListTitle(class QString const &)
+	?time@SmfActivityObject@@QBE?AVQDateTime@@XZ @ 258 NONAME ; class QDateTime SmfActivityObject::time(void) const
+	??1SmfComment@@QAE@XZ @ 259 NONAME ; SmfComment::~SmfComment(void)
+	?description@SmfPicture@@QBE?AVQString@@XZ @ 260 NONAME ; class QString SmfPicture::description(void) const
+	?visibility@SmfPicture@@QBE?AW4SmfPictureVisibility@@XZ @ 261 NONAME ; enum SmfPictureVisibility SmfPicture::visibility(void) const
+	?setName@SmfLocation@@QAEXABVQString@@@Z @ 262 NONAME ; void SmfLocation::setName(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactOrganization@QtMobility@@@Z @ 263 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactOrganization &)
+	?eventDateTime@SmfEvent@@QBE?AVQDateTime@@XZ @ 264 NONAME ; class QDateTime SmfEvent::eventDateTime(void) const
+	?setEventDateTime@SmfEvent@@QAEXABVQDateTime@@@Z @ 265 NONAME ; void SmfEvent::setEventDateTime(class QDateTime const &)
+	?setAuthor@SmfPlaylist@@QAEXABVQString@@@Z @ 266 NONAME ; void SmfPlaylist::setAuthor(class QString const &)
+	?location@SmfPlaylist@@QBE?AVQUrl@@XZ @ 267 NONAME ; class QUrl SmfPlaylist::location(void) const
+	?lyrics@SmfLyrics@@QBE?AVQByteArray@@XZ @ 268 NONAME ; class QByteArray SmfLyrics::lyrics(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfAlbum@@@Z @ 269 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfAlbum &)
+	?thumbnail@SmfActivityObject@@QBE?AVQImage@@XZ @ 270 NONAME ; class QImage SmfActivityObject::thumbnail(void) const
+	??0SmfUrl@@QAE@ABV0@@Z @ 271 NONAME ; SmfUrl::SmfUrl(class SmfUrl const &)
+	?comments@SmfPictureAlbum@@QBE?AV?$QList@VSmfComment@@@@XZ @ 272 NONAME ; class QList<class SmfComment> SmfPictureAlbum::comments(void) const
+	??1SmfMusicProfile@@QAE@XZ @ 273 NONAME ; SmfMusicProfile::~SmfMusicProfile(void)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicFingerPrint@@@Z @ 274 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicFingerPrint const &)
+	?title@SmfPost@@QBE?AVQString@@XZ @ 275 NONAME ; class QString SmfPost::title(void) const
+	??1SmfSubtitle@@QAE@XZ @ 276 NONAME ; SmfSubtitle::~SmfSubtitle(void)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactType@QtMobility@@@Z @ 277 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactType &)
+	?setLength@SmfUrl@@QAEXABVQString@@@Z @ 278 NONAME ; void SmfUrl::setLength(class QString const &)
+	?setZipCode@SmfLocation@@QAEXABVQString@@@Z @ 279 NONAME ; void SmfLocation::setZipCode(class QString const &)
+	?details@SmfActivityEntry@@QBE?AVSmfPost@@XZ @ 280 NONAME ; class SmfPost SmfActivityEntry::details(void) const
+	?names@SmfArtists@@QBE?AVQStringList@@XZ @ 281 NONAME ; class QStringList SmfArtists::names(void) const
+	?setFrameRate@SmfSubtitle@@QAEXABN@Z @ 282 NONAME ; void SmfSubtitle::setFrameRate(double const &)
+	?setType@SmfUrl@@QAEXABVQString@@@Z @ 283 NONAME ; void SmfUrl::setType(class QString const &)
+	?setServiceName@SmfProvider@@QAEXAAVQString@@@Z @ 284 NONAME ; void SmfProvider::setServiceName(class QString &)
+	?errorLine@SmfPluginUtil@@QBEHXZ @ 285 NONAME ; int SmfPluginUtil::errorLine(void) const
+	?id@SmfEvent@@QBE?AVQString@@XZ @ 286 NONAME ; class QString SmfEvent::id(void) const
+	?description@SmfPictureAlbum@@QBE?AVQString@@XZ @ 287 NONAME ; class QString SmfPictureAlbum::description(void) const
+	?setSubtitle@SmfSubtitle@@QAEXABVQByteArray@@@Z @ 288 NONAME ; void SmfSubtitle::setSubtitle(class QByteArray const &)
+	?setVisibility@SmfPictureAlbum@@QAEXABW4SmfPictureVisibility@@@Z @ 289 NONAME ; void SmfPictureAlbum::setVisibility(enum SmfPictureVisibility const &)
+	?id@SmfActivityEntry@@QBE?AVQString@@XZ @ 290 NONAME ; class QString SmfActivityEntry::id(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVQContactPresence@QtMobility@@@Z @ 291 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactPresence const &)
+	?setReleaseYear@SmfSubtitle@@QAEXABVQDateTime@@@Z @ 292 NONAME ; void SmfSubtitle::setReleaseYear(class QDateTime const &)
+	??4SmfGroup@@QAEAAV0@ABV0@@Z @ 293 NONAME ; class SmfGroup & SmfGroup::operator=(class SmfGroup const &)
+	??4SmfArtists@@QAEAAV0@ABV0@@Z @ 294 NONAME ; class SmfArtists & SmfArtists::operator=(class SmfArtists const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfEvent@@@Z @ 295 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfEvent const &)
+	?city@SmfLocation@@QBE?AVQString@@XZ @ 296 NONAME ; class QString SmfLocation::city(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfUrl@@@Z @ 297 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfUrl &)
+	??1SmfProvider@@QAE@XZ @ 298 NONAME ; SmfProvider::~SmfProvider(void)
+	??_ESmfContact@@QAE@I@Z @ 299 NONAME ; SmfContact::~SmfContact(unsigned int)
+	?downloadFlag@SmfPicture@@QAE_NXZ @ 300 NONAME ; bool SmfPicture::downloadFlag(void)
+	?venue@SmfEvent@@QBE?AVSmfLocation@@XZ @ 301 NONAME ; class SmfLocation SmfEvent::venue(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVQContactAnniversary@QtMobility@@@Z @ 302 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactAnniversary const &)
+	?actionName@SmfActivityEntry@@QBE?AW4SmfActivityVerb@@XZ @ 303 NONAME ; enum SmfActivityVerb SmfActivityEntry::actionName(void) const
+	?setLanguage@SmfSubtitle@@QAEXABVQString@@@Z @ 304 NONAME ; void SmfSubtitle::setLanguage(class QString const &)
+	?releaseYear@SmfSubtitle@@QBE?AVQDateTime@@XZ @ 305 NONAME ; class QDateTime SmfSubtitle::releaseYear(void) const
+	?name@SmfGroup@@QBE?AVQString@@XZ @ 306 NONAME ; class QString SmfGroup::name(void) const
+	??4SmfMusicFingerPrint@@QAEAAV0@ABV0@@Z @ 307 NONAME ; class SmfMusicFingerPrint & SmfMusicFingerPrint::operator=(class SmfMusicFingerPrint const &)
+	??0SmfLyrics@@QAE@ABV0@@Z @ 308 NONAME ; SmfLyrics::SmfLyrics(class SmfLyrics const &)
+	?setMusicUsageInfo@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 309 NONAME ; void SmfMusicProfile::setMusicUsageInfo(class QList<class SmfTrackInfo> const &)
+	?setInfo@SmfPlaylist@@QAEXABVQUrl@@@Z @ 310 NONAME ; void SmfPlaylist::setInfo(class QUrl const &)
+	?setId@SmfLyrics@@QAEXABVQString@@@Z @ 311 NONAME ; void SmfLyrics::setId(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfComment@@@Z @ 312 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfComment &)
+	?setPostedDate@SmfPictureAlbum@@QAEXABVQDateTime@@@Z @ 313 NONAME ; void SmfPictureAlbum::setPostedDate(class QDateTime const &)
+	??1SmfPicture@@QAE@XZ @ 314 NONAME ; SmfPicture::~SmfPicture(void)
+	??0SmfArtists@@QAE@XZ @ 315 NONAME ; SmfArtists::SmfArtists(void)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactName@QtMobility@@@Z @ 316 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactName const &)
+	?setAlbum@SmfTrackInfo@@QAEXABVSmfAlbum@@@Z @ 317 NONAME ; void SmfTrackInfo::setAlbum(class SmfAlbum const &)
+	?setId@SmfPicture@@QAEXABVQString@@@Z @ 318 NONAME ; void SmfPicture::setId(class QString const &)
+	?pictureCount@SmfPictureAlbum@@QBEHXZ @ 319 NONAME ; int SmfPictureAlbum::pictureCount(void) const
+	?artists@SmfEvent@@QBE?AVSmfArtists@@XZ @ 320 NONAME ; class SmfArtists SmfEvent::artists(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfArtists@@@Z @ 321 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfArtists &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactUrl@QtMobility@@@Z @ 322 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactUrl const &)
+	?addComment@SmfPicture@@QAEXABVSmfComment@@@Z @ 323 NONAME ; void SmfPicture::addComment(class SmfComment const &)
+	?objData@SmfActivityObject@@QBE?AVQVariant@@XZ @ 324 NONAME ; class QVariant SmfActivityObject::objData(void) const
+	?setSupportedInterfaces@SmfProvider@@QAEXAAVQStringList@@@Z @ 325 NONAME ; void SmfProvider::setSupportedInterfaces(class QStringList &)
+	?setHhreflang@SmfUrl@@QAEXABVQString@@@Z @ 326 NONAME ; void SmfUrl::setHhreflang(class QString const &)
+	??0SmfUrl@@QAE@XZ @ 327 NONAME ; SmfUrl::SmfUrl(void)
+	??0SmfPicture@@QAE@ABVQImage@@@Z @ 328 NONAME ; SmfPicture::SmfPicture(class QImage const &)
+	??0SmfMusicFingerPrint@@QAE@XZ @ 329 NONAME ; SmfMusicFingerPrint::SmfMusicFingerPrint(void)
+	?setId@SmfPlaylist@@QAEXABVQString@@@Z @ 330 NONAME ; void SmfPlaylist::setId(class QString const &)
+	?setSupportedLanguages@SmfProvider@@QAEXAAVQStringList@@@Z @ 331 NONAME ; void SmfProvider::setSupportedLanguages(class QStringList &)
+	?setId@SmfSubtitle@@QAEXABVQString@@@Z @ 332 NONAME ; void SmfSubtitle::setId(class QString const &)
+	??0SmfSubtitle@@QAE@XZ @ 333 NONAME ; SmfSubtitle::SmfSubtitle(void)
+	?addTags@SmfPicture@@QAEXABVQStringList@@@Z @ 334 NONAME ; void SmfPicture::addTags(class QStringList const &)
+	??0SmfTrackInfo@@QAE@XZ @ 335 NONAME ; SmfTrackInfo::SmfTrackInfo(void)
+	??0SmfPost@@QAE@VSmfContact@@VQString@@1VQImage@@VQUrl@@@Z @ 336 NONAME ; SmfPost::SmfPost(class SmfContact, class QString, class QString, class QImage, class QUrl)
+	?setHref@SmfUrl@@QAEXABVQUrl@@@Z @ 337 NONAME ; void SmfUrl::setHref(class QUrl const &)
+	?url@SmfArtists@@QBE?AVQUrl@@XZ @ 338 NONAME ; class QUrl SmfArtists::url(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVQContactAddress@QtMobility@@@Z @ 339 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAddress &)
+	?setPictureCount@SmfPictureAlbum@@QAEXH@Z @ 340 NONAME ; void SmfPictureAlbum::setPictureCount(int)
+	?setPicture@SmfPicture@@QAEXABVQImage@@@Z @ 341 NONAME ; void SmfPicture::setPicture(class QImage const &)
+	?setNames@SmfArtists@@QAEXABVQStringList@@@Z @ 342 NONAME ; void SmfArtists::setNames(class QStringList const &)
+	?setId@SmfActivityObject@@QAEXABVQString@@@Z @ 343 NONAME ; void SmfActivityObject::setId(class QString const &)
+	??1SmfPlaylist@@QAE@XZ @ 344 NONAME ; SmfPlaylist::~SmfPlaylist(void)
+	?setApplicationUrl@SmfProvider@@QAEXAAVQUrl@@@Z @ 345 NONAME ; void SmfProvider::setApplicationUrl(class QUrl &)
+	?id@SmfTrackInfo@@QBE?AVQString@@XZ @ 346 NONAME ; class QString SmfTrackInfo::id(void) const
+	?minRating@SmfMusicRating@@QBEHXZ @ 347 NONAME ; int SmfMusicRating::minRating(void) const
+	??0SmfPluginUtil@@QAE@XZ @ 348 NONAME ; SmfPluginUtil::SmfPluginUtil(void)
+	?name@SmfLocation@@QBE?AVQString@@XZ @ 349 NONAME ; class QString SmfLocation::name(void) const
+	?title@SmfPictureAlbum@@QBE?AVQString@@XZ @ 350 NONAME ; class QString SmfPictureAlbum::title(void) const
+	?setAuthor@SmfActivityEntry@@QAE_NABVSmfContact@@@Z @ 351 NONAME ; bool SmfActivityEntry::setAuthor(class SmfContact const &)
+	?addComment@SmfPictureAlbum@@QAEXABVSmfComment@@@Z @ 352 NONAME ; void SmfPictureAlbum::addComment(class SmfComment const &)
+	??0SmfProvider@@QAE@XZ @ 353 NONAME ; SmfProvider::SmfProvider(void)
+	?timeStamp@SmfComment@@QBE?AVQDateTime@@XZ @ 354 NONAME ; class QDateTime SmfComment::timeStamp(void) const
+	??0SmfArtists@@QAE@ABV0@@Z @ 355 NONAME ; SmfArtists::SmfArtists(class SmfArtists const &)
+	?name@SmfAlbum@@QBE?AVQString@@XZ @ 356 NONAME ; class QString SmfAlbum::name(void) const
+	?setId@SmfComment@@QAEXABVQString@@@Z @ 357 NONAME ; void SmfComment::setId(class QString const &)
+	?image@SmfPlaylist@@QBE?AVQUrl@@XZ @ 358 NONAME ; class QUrl SmfPlaylist::image(void) const
+	?getAuthKeys@SmfPluginUtil@@QAEXAAV?$QMap@VQByteArray@@V1@@@VQString@@ABVQDateTime@@1@Z @ 359 NONAME ; void SmfPluginUtil::getAuthKeys(class QMap<class QByteArray, class QByteArray> &, class QString, class QDateTime const &, class QString)
+	?setCountry@SmfLocation@@QAEXABVQString@@@Z @ 360 NONAME ; void SmfLocation::setCountry(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfLocation@@@Z @ 361 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfLocation &)
+	??0SmfContact@@QAE@ABV0@@Z @ 362 NONAME ; SmfContact::SmfContact(class SmfContact const &)
+	?artists@SmfAlbum@@QBE?AVSmfArtists@@XZ @ 363 NONAME ; class SmfArtists SmfAlbum::artists(void) const
+	??4SmfMusicProfile@@QAEAAV0@ABV0@@Z @ 364 NONAME ; class SmfMusicProfile & SmfMusicProfile::operator=(class SmfMusicProfile const &)
+	?setId@SmfMusicProfile@@QAEXABVQString@@@Z @ 365 NONAME ; void SmfMusicProfile::setId(class QString const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactId@QtMobility@@@Z @ 366 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactId const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactNote@QtMobility@@@Z @ 367 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactNote const &)
+	?setUrl@SmfPictureAlbum@@QAEXABVQUrl@@@Z @ 368 NONAME ; void SmfPictureAlbum::setUrl(class QUrl const &)
+	??1SmfActivityObject@@QAE@XZ @ 369 NONAME ; SmfActivityObject::~SmfActivityObject(void)
+	?rel@SmfUrl@@QBE?AVQString@@XZ @ 370 NONAME ; class QString SmfUrl::rel(void) const
+	?errorString@SmfPluginUtil@@QBE?AVQString@@XZ @ 371 NONAME ; class QString SmfPluginUtil::errorString(void) const
+	?setTitle@SmfUrl@@QAEXABVQString@@@Z @ 372 NONAME ; void SmfUrl::setTitle(class QString const &)
+	?setInterestInfo@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 373 NONAME ; void SmfMusicProfile::setInterestInfo(class QList<class SmfTrackInfo> const &)
+	?keywords@SmfPictureAlbum@@QBE?AVQStringList@@XZ @ 374 NONAME ; class QStringList SmfPictureAlbum::keywords(void) const
+	?supportedLanguages@SmfProvider@@QBE?AVQStringList@@XZ @ 375 NONAME ; class QStringList SmfProvider::supportedLanguages(void) const
+	?description@SmfProvider@@QBE?AVQString@@XZ @ 376 NONAME ; class QString SmfProvider::description(void) const
+	?setRating@SmfTrackInfo@@QAEXABVSmfMusicRating@@@Z @ 377 NONAME ; void SmfTrackInfo::setRating(class SmfMusicRating const &)
+	??0SmfPlaylist@@QAE@XZ @ 378 NONAME ; SmfPlaylist::SmfPlaylist(void)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfActivityObject@@@Z @ 379 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfActivityObject const &)
+	?owner@SmfPicture@@QBE?AVQString@@XZ @ 380 NONAME ; class QString SmfPicture::owner(void) const
+	?type@SmfActivityObject@@QBE?AW4SmfActivityObjectType@@XZ @ 381 NONAME ; enum SmfActivityObjectType SmfActivityObject::type(void) const
+	??6@YAAAVQDataStream@@AAV0@ABVSmfUrl@@@Z @ 382 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfUrl const &)
+	?id@SmfLocation@@QBE?AVQString@@XZ @ 383 NONAME ; class QString SmfLocation::id(void) const
+	?setThumbnail@SmfPictureAlbum@@QAEXABVQImage@@@Z @ 384 NONAME ; void SmfPictureAlbum::setThumbnail(class QImage const &)
+	?setActionName@SmfActivityEntry@@QAEXW4SmfActivityVerb@@@Z @ 385 NONAME ; void SmfActivityEntry::setActionName(enum SmfActivityVerb)
+	?setReleaseYear@SmfLyrics@@QAEXABVQDateTime@@@Z @ 386 NONAME ; void SmfLyrics::setReleaseYear(class QDateTime const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfLocation@@@Z @ 387 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfLocation const &)
+	??5@YAAAVQDataStream@@AAV0@AAVSmfPicture@@@Z @ 388 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPicture &)
+	?setTrackList@SmfPlaylist@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 389 NONAME ; void SmfPlaylist::setTrackList(class QList<class SmfTrackInfo> const &)
+	??0SmfEvent@@QAE@XZ @ 390 NONAME ; SmfEvent::SmfEvent(void)
+	?setTitle@SmfEvent@@QAEXABVQString@@@Z @ 391 NONAME ; void SmfEvent::setTitle(class QString const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactGender@QtMobility@@@Z @ 392 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGender const &)
+	??4SmfActivityObject@@QAEAAV0@ABV0@@Z @ 393 NONAME ; class SmfActivityObject & SmfActivityObject::operator=(class SmfActivityObject const &)
+	?setMembers@SmfGroup@@QAEXPAV?$QList@VSmfContact@@@@@Z @ 394 NONAME ; void SmfGroup::setMembers(class QList<class SmfContact> *)
+	??0SmfMusicRating@@QAE@PAVSmfTrackInfo@@@Z @ 395 NONAME ; SmfMusicRating::SmfMusicRating(class SmfTrackInfo *)
+	??0SmfLyrics@@QAE@XZ @ 396 NONAME ; SmfLyrics::SmfLyrics(void)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactGender@QtMobility@@@Z @ 397 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactGender &)
+	??0SmfComment@@QAE@XZ @ 398 NONAME ; SmfComment::SmfComment(void)
+	??1SmfAlbum@@QAE@XZ @ 399 NONAME ; SmfAlbum::~SmfAlbum(void)
+	?year@SmfTrackInfo@@QBE?AVQDateTime@@XZ @ 400 NONAME ; class QDateTime SmfTrackInfo::year(void) const
+	?country@SmfLocation@@QBE?AVQString@@XZ @ 401 NONAME ; class QString SmfLocation::country(void) const
+	?postedDate@SmfPictureAlbum@@QBE?AVQDateTime@@XZ @ 402 NONAME ; class QDateTime SmfPictureAlbum::postedDate(void) const
+	?musicUsageInfo@SmfMusicProfile@@QBE?AV?$QList@VSmfTrackInfo@@@@XZ @ 403 NONAME ; class QList<class SmfTrackInfo> SmfMusicProfile::musicUsageInfo(void) const
+	??0SmfContact@@QAE@PAVQObject@@@Z @ 404 NONAME ; SmfContact::SmfContact(class QObject *)
+	??1SmfTrackInfo@@QAE@XZ @ 405 NONAME ; SmfTrackInfo::~SmfTrackInfo(void)
+	?language@SmfLyrics@@QBE?AVQString@@XZ @ 406 NONAME ; class QString SmfLyrics::language(void) const
+	?setArtists@SmfTrackInfo@@QAEXABVSmfArtists@@@Z @ 407 NONAME ; void SmfTrackInfo::setArtists(class SmfArtists const &)
+	?id@SmfComment@@QBE?AVQString@@XZ @ 408 NONAME ; class QString SmfComment::id(void) const
+	?id@SmfPictureAlbum@@QBE?AVQString@@XZ @ 409 NONAME ; class QString SmfPictureAlbum::id(void) const
+	?setDuration@SmfEvent@@QAEXABVQTime@@@Z @ 410 NONAME ; void SmfEvent::setDuration(class QTime const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactGuid@QtMobility@@@Z @ 411 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGuid const &)
+	?setUrl@SmfLocation@@QAEXABVQUrl@@@Z @ 412 NONAME ; void SmfLocation::setUrl(class QUrl const &)
+	?setComments@SmfPlaylist@@QAEXABV?$QList@VSmfComment@@@@@Z @ 413 NONAME ; void SmfPlaylist::setComments(class QList<class SmfComment> const &)
+	?id@SmfSubtitle@@QBE?AVQString@@XZ @ 414 NONAME ; class QString SmfSubtitle::id(void) const
+	?setImage@SmfPlaylist@@QAEXABVQUrl@@@Z @ 415 NONAME ; void SmfPlaylist::setImage(class QUrl const &)
+	?setDescription@SmfPicture@@QAEXABVQString@@@Z @ 416 NONAME ; void SmfPicture::setDescription(class QString const &)
+	??4SmfLocation@@QAEAAV0@ABV0@@Z @ 417 NONAME ; class SmfLocation & SmfLocation::operator=(class SmfLocation const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactAnniversary@QtMobility@@@Z @ 418 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactAnniversary &)
+	??4SmfLyrics@@QAEAAV0@ABV0@@Z @ 419 NONAME ; class SmfLyrics & SmfLyrics::operator=(class SmfLyrics const &)
+	??6@YAAAVQDataStream@@AAV0@ABVQContactGeoLocation@QtMobility@@@Z @ 420 NONAME ; class QDataStream & operator<<(class QDataStream &, class QtMobility::QContactGeoLocation const &)
+	??6@YAAAVQDataStream@@AAV0@ABVSmfMusicProfile@@@Z @ 421 NONAME ; class QDataStream & operator<<(class QDataStream &, class SmfMusicProfile const &)
+	?setMetadata@SmfPlaylist@@QAEXABV?$QMap@VQString@@VQVariant@@@@@Z @ 422 NONAME ; void SmfPlaylist::setMetadata(class QMap<class QString, class QVariant> const &)
+	?album@SmfTrackInfo@@QBE?AVSmfAlbum@@XZ @ 423 NONAME ; class SmfAlbum SmfTrackInfo::album(void) const
+	?url@SmfPost@@QBE?AVQUrl@@XZ @ 424 NONAME ; class QUrl SmfPost::url(void) const
+	?content@SmfActivityObject@@QBE?AVQString@@XZ @ 425 NONAME ; class QString SmfActivityObject::content(void) const
+	?setThumbnail@SmfActivityObject@@QAEXABVQImage@@@Z @ 426 NONAME ; void SmfActivityObject::setThumbnail(class QImage const &)
+	??1SmfGroup@@QAE@XZ @ 427 NONAME ; SmfGroup::~SmfGroup(void)
+	?zipCode@SmfLocation@@QBE?AVQString@@XZ @ 428 NONAME ; class QString SmfLocation::zipCode(void) const
+	??5@YAAAVQDataStream@@AAV0@AAVSmfPost@@@Z @ 429 NONAME ; class QDataStream & operator>>(class QDataStream &, class SmfPost &)
+	?setPostedDateTime@SmfPost@@QAEXAAVQDateTime@@@Z @ 430 NONAME ; void SmfPost::setPostedDateTime(class QDateTime &)
+	?setAttribution@SmfPlaylist@@QAEXABV?$QList@VQUrl@@@@@Z @ 431 NONAME ; void SmfPlaylist::setAttribution(class QList<class QUrl> const &)
+	?setCity@SmfLocation@@QAEXABVQString@@@Z @ 432 NONAME ; void SmfLocation::setCity(class QString const &)
+	??5@YAAAVQDataStream@@AAV0@AAVQContactNickname@QtMobility@@@Z @ 433 NONAME ; class QDataStream & operator>>(class QDataStream &, class QtMobility::QContactNickname &)
+	?setDuration@SmfSubtitle@@QAEXABN@Z @ 434 NONAME ; void SmfSubtitle::setDuration(double const &)
+	??_ESmfTrackInfo@@QAE@I@Z @ 435 NONAME ; SmfTrackInfo::~SmfTrackInfo(unsigned int)
+	?setTitle@SmfPost@@QAEXABVQString@@@Z @ 436 NONAME ; void SmfPost::setTitle(class QString const &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/eabi/smfcommonu.def	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,499 @@
+EXPORTS
+	_ZN10SmfArtists6setUrlERK4QUrl @ 1 NONAME
+	_ZN10SmfArtists8setImageERK6QImage @ 2 NONAME
+	_ZN10SmfArtists8setNamesERK11QStringList @ 3 NONAME
+	_ZN10SmfArtistsC1ERKS_ @ 4 NONAME
+	_ZN10SmfArtistsC1Ev @ 5 NONAME
+	_ZN10SmfArtistsC2ERKS_ @ 6 NONAME
+	_ZN10SmfArtistsC2Ev @ 7 NONAME
+	_ZN10SmfArtistsD1Ev @ 8 NONAME
+	_ZN10SmfArtistsD2Ev @ 9 NONAME
+	_ZN10SmfArtistsaSERKS_ @ 10 NONAME
+	_ZN10SmfComment12setTimeStampERK9QDateTime @ 11 NONAME
+	_ZN10SmfComment5setIdERK7QString @ 12 NONAME
+	_ZN10SmfComment7setTextERK7QString @ 13 NONAME
+	_ZN10SmfCommentC1ERKS_ @ 14 NONAME
+	_ZN10SmfCommentC1Ev @ 15 NONAME
+	_ZN10SmfCommentC2ERKS_ @ 16 NONAME
+	_ZN10SmfCommentC2Ev @ 17 NONAME
+	_ZN10SmfCommentD1Ev @ 18 NONAME
+	_ZN10SmfCommentD2Ev @ 19 NONAME
+	_ZN10SmfCommentaSERKS_ @ 20 NONAME
+	_ZN10SmfContact8setValueERK7QStringR8QVariant @ 21 NONAME
+	_ZN10SmfContactC1EP7QObject @ 22 NONAME
+	_ZN10SmfContactC1ERKS_ @ 23 NONAME
+	_ZN10SmfContactC2EP7QObject @ 24 NONAME
+	_ZN10SmfContactC2ERKS_ @ 25 NONAME
+	_ZN10SmfContactD1Ev @ 26 NONAME
+	_ZN10SmfContactD2Ev @ 27 NONAME
+	_ZN10SmfContactaSERKS_ @ 28 NONAME
+	_ZN10SmfPicture10addCommentERK10SmfComment @ 29 NONAME
+	_ZN10SmfPicture10setPictureERK6QImage @ 30 NONAME
+	_ZN10SmfPicture12downloadFlagEv @ 31 NONAME
+	_ZN10SmfPicture13setPostedDateERK9QDateTime @ 32 NONAME
+	_ZN10SmfPicture13setVisibilityERK20SmfPictureVisibility @ 33 NONAME
+	_ZN10SmfPicture14setDescriptionERK7QString @ 34 NONAME
+	_ZN10SmfPicture5setIdERK7QString @ 35 NONAME
+	_ZN10SmfPicture6setUrlERK4QUrl @ 36 NONAME
+	_ZN10SmfPicture7addTagsERK11QStringList @ 37 NONAME
+	_ZN10SmfPicture8setOwnerERK7QString @ 38 NONAME
+	_ZN10SmfPicture8setTitleERK7QString @ 39 NONAME
+	_ZN10SmfPictureC1ERK6QImage @ 40 NONAME
+	_ZN10SmfPictureC1ERKS_ @ 41 NONAME
+	_ZN10SmfPictureC1Ev @ 42 NONAME
+	_ZN10SmfPictureC2ERK6QImage @ 43 NONAME
+	_ZN10SmfPictureC2ERKS_ @ 44 NONAME
+	_ZN10SmfPictureC2Ev @ 45 NONAME
+	_ZN10SmfPictureD1Ev @ 46 NONAME
+	_ZN10SmfPictureD2Ev @ 47 NONAME
+	_ZN10SmfPictureaSERKS_ @ 48 NONAME
+	_ZN11SmfLocation10setCountryERK7QString @ 49 NONAME
+	_ZN11SmfLocation10setZipCodeERK7QString @ 50 NONAME
+	_ZN11SmfLocation18setGeoPositionInfoERKN10QtMobility16QGeoPositionInfoE @ 51 NONAME
+	_ZN11SmfLocation5setIdERK7QString @ 52 NONAME
+	_ZN11SmfLocation6setUrlERK4QUrl @ 53 NONAME
+	_ZN11SmfLocation7setCityERK7QString @ 54 NONAME
+	_ZN11SmfLocation7setNameERK7QString @ 55 NONAME
+	_ZN11SmfLocation9setStreetERK7QString @ 56 NONAME
+	_ZN11SmfLocationC1ERKS_ @ 57 NONAME
+	_ZN11SmfLocationC1Ev @ 58 NONAME
+	_ZN11SmfLocationC2ERKS_ @ 59 NONAME
+	_ZN11SmfLocationC2Ev @ 60 NONAME
+	_ZN11SmfLocationD1Ev @ 61 NONAME
+	_ZN11SmfLocationD2Ev @ 62 NONAME
+	_ZN11SmfLocationaSERKS_ @ 63 NONAME
+	_ZN11SmfPlaylist10setLicenseERK4QUrl @ 64 NONAME
+	_ZN11SmfPlaylist10setVersionERK7QString @ 65 NONAME
+	_ZN11SmfPlaylist11setCommentsERK5QListI10SmfCommentE @ 66 NONAME
+	_ZN11SmfPlaylist11setLocationERK4QUrl @ 67 NONAME
+	_ZN11SmfPlaylist11setMetadataERK4QMapI7QString8QVariantE @ 68 NONAME
+	_ZN11SmfPlaylist12setExtensionERK4QMapI7QString8QVariantE @ 69 NONAME
+	_ZN11SmfPlaylist12setTrackListERK5QListI12SmfTrackInfoE @ 70 NONAME
+	_ZN11SmfPlaylist14setAttributionERK5QListI4QUrlE @ 71 NONAME
+	_ZN11SmfPlaylist15setCreationDateERK9QDateTime @ 72 NONAME
+	_ZN11SmfPlaylist16setPlayListTitleERK7QString @ 73 NONAME
+	_ZN11SmfPlaylist5setIdERK7QString @ 74 NONAME
+	_ZN11SmfPlaylist7setInfoERK4QUrl @ 75 NONAME
+	_ZN11SmfPlaylist8setImageERK4QUrl @ 76 NONAME
+	_ZN11SmfPlaylist9setAuthorERK7QString @ 77 NONAME
+	_ZN11SmfPlaylistC1ERKS_ @ 78 NONAME
+	_ZN11SmfPlaylistC1Ev @ 79 NONAME
+	_ZN11SmfPlaylistC2ERKS_ @ 80 NONAME
+	_ZN11SmfPlaylistC2Ev @ 81 NONAME
+	_ZN11SmfPlaylistD1Ev @ 82 NONAME
+	_ZN11SmfPlaylistD2Ev @ 83 NONAME
+	_ZN11SmfPlaylistaSERKS_ @ 84 NONAME
+	_ZN11SmfProvider13setServiceUrlER4QUrl @ 85 NONAME
+	_ZN11SmfProvider14setDescriptionER7QString @ 86 NONAME
+	_ZN11SmfProvider14setServiceIconER6QImage @ 87 NONAME
+	_ZN11SmfProvider14setServiceNameER7QString @ 88 NONAME
+	_ZN11SmfProvider17setApplicationUrlER4QUrl @ 89 NONAME
+	_ZN11SmfProvider21setSupportedLanguagesER11QStringList @ 90 NONAME
+	_ZN11SmfProvider22setSupportedInterfacesER11QStringList @ 91 NONAME
+	_ZN11SmfProviderC1Ev @ 92 NONAME
+	_ZN11SmfProviderC2Ev @ 93 NONAME
+	_ZN11SmfProviderD1Ev @ 94 NONAME
+	_ZN11SmfProviderD2Ev @ 95 NONAME
+	_ZN11SmfSubtitle11setDurationERKd @ 96 NONAME
+	_ZN11SmfSubtitle11setLanguageERK7QString @ 97 NONAME
+	_ZN11SmfSubtitle11setSubtitleERK10QByteArray @ 98 NONAME
+	_ZN11SmfSubtitle12setFrameRateERKd @ 99 NONAME
+	_ZN11SmfSubtitle14setReleaseYearERK9QDateTime @ 100 NONAME
+	_ZN11SmfSubtitle5setIdERK7QString @ 101 NONAME
+	_ZN11SmfSubtitleC1ERKS_ @ 102 NONAME
+	_ZN11SmfSubtitleC1Ev @ 103 NONAME
+	_ZN11SmfSubtitleC2ERKS_ @ 104 NONAME
+	_ZN11SmfSubtitleC2Ev @ 105 NONAME
+	_ZN11SmfSubtitleD1Ev @ 106 NONAME
+	_ZN11SmfSubtitleD2Ev @ 107 NONAME
+	_ZN11SmfSubtitleaSERKS_ @ 108 NONAME
+	_ZN12SmfTrackInfo10setArtistsERK10SmfArtists @ 109 NONAME
+	_ZN12SmfTrackInfo10setCommentERK5QListI10SmfCommentE @ 110 NONAME
+	_ZN12SmfTrackInfo11setDurationERK5QTime @ 111 NONAME
+	_ZN12SmfTrackInfo5setIdERK7QString @ 112 NONAME
+	_ZN12SmfTrackInfo7setTagsERK11QStringList @ 113 NONAME
+	_ZN12SmfTrackInfo7setYearERK9QDateTime @ 114 NONAME
+	_ZN12SmfTrackInfo8setAlbumERK8SmfAlbum @ 115 NONAME
+	_ZN12SmfTrackInfo8setGenreERK7QString @ 116 NONAME
+	_ZN12SmfTrackInfo8setTitleERK7QString @ 117 NONAME
+	_ZN12SmfTrackInfo9setRatingERK14SmfMusicRating @ 118 NONAME
+	_ZN12SmfTrackInfoC1ERKS_ @ 119 NONAME
+	_ZN12SmfTrackInfoC1Ev @ 120 NONAME
+	_ZN12SmfTrackInfoC2ERKS_ @ 121 NONAME
+	_ZN12SmfTrackInfoC2Ev @ 122 NONAME
+	_ZN12SmfTrackInfoD1Ev @ 123 NONAME
+	_ZN12SmfTrackInfoD2Ev @ 124 NONAME
+	_ZN12SmfTrackInfoaSERKS_ @ 125 NONAME
+	_ZN13SmfPluginUtil11getAuthKeysER4QMapI10QByteArrayS1_E7QStringRK9QDateTimeS4_ @ 126 NONAME
+	_ZN13SmfPluginUtil21createParameterStringERK7QStringN21QNetworkAccessManager9OperationERK10QByteArrayS7_18SmfSignatureMethodRK9QMultiMapIS5_S5_E14SmfParsingMode @ 127 NONAME
+	_ZN13SmfPluginUtil5parseEP9QIODevicePb @ 128 NONAME
+	_ZN13SmfPluginUtil5parseERK10QByteArrayPb @ 129 NONAME
+	_ZN13SmfPluginUtil8getNonceER7QStringx @ 130 NONAME
+	_ZN13SmfPluginUtilC1Ev @ 131 NONAME
+	_ZN13SmfPluginUtilC2Ev @ 132 NONAME
+	_ZN13SmfPluginUtilD1Ev @ 133 NONAME
+	_ZN13SmfPluginUtilD2Ev @ 134 NONAME
+	_ZN14SmfMusicRating12setMaxRatingERKi @ 135 NONAME
+	_ZN14SmfMusicRating12setMinRatingERKi @ 136 NONAME
+	_ZN14SmfMusicRating9setRatingERKi @ 137 NONAME
+	_ZN14SmfMusicRatingC1EP12SmfTrackInfo @ 138 NONAME
+	_ZN14SmfMusicRatingC1ERKS_ @ 139 NONAME
+	_ZN14SmfMusicRatingC2EP12SmfTrackInfo @ 140 NONAME
+	_ZN14SmfMusicRatingC2ERKS_ @ 141 NONAME
+	_ZN14SmfMusicRatingD1Ev @ 142 NONAME
+	_ZN14SmfMusicRatingD2Ev @ 143 NONAME
+	_ZN14SmfMusicRatingaSERKS_ @ 144 NONAME
+	_ZN15SmfMusicProfile13setUserEventsERK5QListI8SmfEventE @ 145 NONAME
+	_ZN15SmfMusicProfile15setInterestInfoERK5QListI12SmfTrackInfoE @ 146 NONAME
+	_ZN15SmfMusicProfile17setMusicUsageInfoERK5QListI12SmfTrackInfoE @ 147 NONAME
+	_ZN15SmfMusicProfile5setIdERK7QString @ 148 NONAME
+	_ZN15SmfMusicProfileC1ERKS_ @ 149 NONAME
+	_ZN15SmfMusicProfileC1Ev @ 150 NONAME
+	_ZN15SmfMusicProfileC2ERKS_ @ 151 NONAME
+	_ZN15SmfMusicProfileC2Ev @ 152 NONAME
+	_ZN15SmfMusicProfileD1Ev @ 153 NONAME
+	_ZN15SmfMusicProfileD2Ev @ 154 NONAME
+	_ZN15SmfMusicProfileaSERKS_ @ 155 NONAME
+	_ZN15SmfPictureAlbum10addCommentERK10SmfComment @ 156 NONAME
+	_ZN15SmfPictureAlbum11addKeywordsERK11QStringList @ 157 NONAME
+	_ZN15SmfPictureAlbum12setThumbnailERK6QImage @ 158 NONAME
+	_ZN15SmfPictureAlbum13setPostedDateERK9QDateTime @ 159 NONAME
+	_ZN15SmfPictureAlbum13setVisibilityERK20SmfPictureVisibility @ 160 NONAME
+	_ZN15SmfPictureAlbum14setDescriptionERK7QString @ 161 NONAME
+	_ZN15SmfPictureAlbum15setPictureCountEi @ 162 NONAME
+	_ZN15SmfPictureAlbum5setIdERK7QString @ 163 NONAME
+	_ZN15SmfPictureAlbum6setUrlERK4QUrl @ 164 NONAME
+	_ZN15SmfPictureAlbum8setTitleERK7QString @ 165 NONAME
+	_ZN15SmfPictureAlbumC1ERKS_ @ 166 NONAME
+	_ZN15SmfPictureAlbumC1Ev @ 167 NONAME
+	_ZN15SmfPictureAlbumC2ERKS_ @ 168 NONAME
+	_ZN15SmfPictureAlbumC2Ev @ 169 NONAME
+	_ZN15SmfPictureAlbumD1Ev @ 170 NONAME
+	_ZN15SmfPictureAlbumD2Ev @ 171 NONAME
+	_ZN15SmfPictureAlbumaSERKS_ @ 172 NONAME
+	_ZN16SmfActivityEntry10setDetailsERK7SmfPost @ 173 NONAME
+	_ZN16SmfActivityEntry12setTargetObjERK17SmfActivityObject @ 174 NONAME
+	_ZN16SmfActivityEntry13setActionNameE15SmfActivityVerb @ 175 NONAME
+	_ZN16SmfActivityEntry13setActivitiesER5QListI17SmfActivityObjectE @ 176 NONAME
+	_ZN16SmfActivityEntry5setIdERK7QString @ 177 NONAME
+	_ZN16SmfActivityEntry8setTitleERK7SmfPost @ 178 NONAME
+	_ZN16SmfActivityEntry9setAuthorERK10SmfContact @ 179 NONAME
+	_ZN16SmfActivityEntryC1ERKS_ @ 180 NONAME
+	_ZN16SmfActivityEntryC1Ev @ 181 NONAME
+	_ZN16SmfActivityEntryC2ERKS_ @ 182 NONAME
+	_ZN16SmfActivityEntryC2Ev @ 183 NONAME
+	_ZN16SmfActivityEntryD1Ev @ 184 NONAME
+	_ZN16SmfActivityEntryD2Ev @ 185 NONAME
+	_ZN17SmfActivityObject10setCaptionERK7QString @ 186 NONAME
+	_ZN17SmfActivityObject10setContentERK7QString @ 187 NONAME
+	_ZN17SmfActivityObject10setObjDataERK8QVariant @ 188 NONAME
+	_ZN17SmfActivityObject12setThumbnailERK6QImage @ 189 NONAME
+	_ZN17SmfActivityObject5setIdERK7QString @ 190 NONAME
+	_ZN17SmfActivityObject7setLinkERK7QString @ 191 NONAME
+	_ZN17SmfActivityObject7setTimeERK9QDateTime @ 192 NONAME
+	_ZN17SmfActivityObject7setTypeERK21SmfActivityObjectType @ 193 NONAME
+	_ZN17SmfActivityObjectC1ERKS_ @ 194 NONAME
+	_ZN17SmfActivityObjectC1Ev @ 195 NONAME
+	_ZN17SmfActivityObjectC2ERKS_ @ 196 NONAME
+	_ZN17SmfActivityObjectC2Ev @ 197 NONAME
+	_ZN17SmfActivityObjectD1Ev @ 198 NONAME
+	_ZN17SmfActivityObjectD2Ev @ 199 NONAME
+	_ZN17SmfActivityObjectaSERKS_ @ 200 NONAME
+	_ZN19SmfMusicFingerPrint19setMusicFingerPrintERK10QByteArray @ 201 NONAME
+	_ZN19SmfMusicFingerPrintC1ERKS_ @ 202 NONAME
+	_ZN19SmfMusicFingerPrintC1Ev @ 203 NONAME
+	_ZN19SmfMusicFingerPrintC2ERKS_ @ 204 NONAME
+	_ZN19SmfMusicFingerPrintC2Ev @ 205 NONAME
+	_ZN19SmfMusicFingerPrintD1Ev @ 206 NONAME
+	_ZN19SmfMusicFingerPrintD2Ev @ 207 NONAME
+	_ZN19SmfMusicFingerPrintaSERKS_ @ 208 NONAME
+	_ZN6SmfUrl12setHhreflangERK7QString @ 209 NONAME
+	_ZN6SmfUrl5setIdERK7QString @ 210 NONAME
+	_ZN6SmfUrl6setRelERK7QString @ 211 NONAME
+	_ZN6SmfUrl7setHrefERK4QUrl @ 212 NONAME
+	_ZN6SmfUrl7setTypeERK7QString @ 213 NONAME
+	_ZN6SmfUrl8setTitleERK7QString @ 214 NONAME
+	_ZN6SmfUrl9setLengthERK7QString @ 215 NONAME
+	_ZN6SmfUrlC1ERKS_ @ 216 NONAME
+	_ZN6SmfUrlC1Ev @ 217 NONAME
+	_ZN6SmfUrlC2ERKS_ @ 218 NONAME
+	_ZN6SmfUrlC2Ev @ 219 NONAME
+	_ZN6SmfUrlD1Ev @ 220 NONAME
+	_ZN6SmfUrlD2Ev @ 221 NONAME
+	_ZN6SmfUrlaSERKS_ @ 222 NONAME
+	_ZN7SmfPost14setDescriptionERK7QString @ 223 NONAME
+	_ZN7SmfPost17setPostedDateTimeER9QDateTime @ 224 NONAME
+	_ZN7SmfPost5setIdE7QString @ 225 NONAME
+	_ZN7SmfPost6setUrlER4QUrl @ 226 NONAME
+	_ZN7SmfPost8setImageERK6QImage @ 227 NONAME
+	_ZN7SmfPost8setOwnerERK10SmfContact @ 228 NONAME
+	_ZN7SmfPost8setTitleERK7QString @ 229 NONAME
+	_ZN7SmfPostC1E10SmfContact7QStringS1_6QImage4QUrl @ 230 NONAME
+	_ZN7SmfPostC1ERKS_ @ 231 NONAME
+	_ZN7SmfPostC1Ev @ 232 NONAME
+	_ZN7SmfPostC2E10SmfContact7QStringS1_6QImage4QUrl @ 233 NONAME
+	_ZN7SmfPostC2ERKS_ @ 234 NONAME
+	_ZN7SmfPostC2Ev @ 235 NONAME
+	_ZN7SmfPostD1Ev @ 236 NONAME
+	_ZN7SmfPostD2Ev @ 237 NONAME
+	_ZN7SmfPostaSERKS_ @ 238 NONAME
+	_ZN8SmfAlbum10setArtistsERK10SmfArtists @ 239 NONAME
+	_ZN8SmfAlbum5setIdERK7QString @ 240 NONAME
+	_ZN8SmfAlbum7setNameERK7QString @ 241 NONAME
+	_ZN8SmfAlbum8setImageERK6QImage @ 242 NONAME
+	_ZN8SmfAlbumC1ERKS_ @ 243 NONAME
+	_ZN8SmfAlbumC1Ev @ 244 NONAME
+	_ZN8SmfAlbumC2ERKS_ @ 245 NONAME
+	_ZN8SmfAlbumC2Ev @ 246 NONAME
+	_ZN8SmfAlbumD1Ev @ 247 NONAME
+	_ZN8SmfAlbumD2Ev @ 248 NONAME
+	_ZN8SmfAlbumaSERKS_ @ 249 NONAME
+	_ZN8SmfEvent10setArtistsERK10SmfArtists @ 250 NONAME
+	_ZN8SmfEvent11setDurationERK5QTime @ 251 NONAME
+	_ZN8SmfEvent12setTicketUrlERK4QUrl @ 252 NONAME
+	_ZN8SmfEvent16setEventDateTimeERK9QDateTime @ 253 NONAME
+	_ZN8SmfEvent5setIdERK7QString @ 254 NONAME
+	_ZN8SmfEvent8setTitleERK7QString @ 255 NONAME
+	_ZN8SmfEvent8setVenueERK11SmfLocation @ 256 NONAME
+	_ZN8SmfEventC1ERKS_ @ 257 NONAME
+	_ZN8SmfEventC1Ev @ 258 NONAME
+	_ZN8SmfEventC2ERKS_ @ 259 NONAME
+	_ZN8SmfEventC2Ev @ 260 NONAME
+	_ZN8SmfEventD1Ev @ 261 NONAME
+	_ZN8SmfEventD2Ev @ 262 NONAME
+	_ZN8SmfEventaSERKS_ @ 263 NONAME
+	_ZN8SmfGroup10setMembersEP5QListI10SmfContactE @ 264 NONAME
+	_ZN8SmfGroup5setIdER7QString @ 265 NONAME
+	_ZN8SmfGroup7setNameER7QString @ 266 NONAME
+	_ZN8SmfGroupC1EP5QListI10SmfContactE @ 267 NONAME
+	_ZN8SmfGroupC1ERKS_ @ 268 NONAME
+	_ZN8SmfGroupC2EP5QListI10SmfContactE @ 269 NONAME
+	_ZN8SmfGroupC2ERKS_ @ 270 NONAME
+	_ZN8SmfGroupD1Ev @ 271 NONAME
+	_ZN8SmfGroupD2Ev @ 272 NONAME
+	_ZN8SmfGroupaSERKS_ @ 273 NONAME
+	_ZN9SmfLyrics11setLanguageERK7QString @ 274 NONAME
+	_ZN9SmfLyrics14setReleaseYearERK9QDateTime @ 275 NONAME
+	_ZN9SmfLyrics5setIdERK7QString @ 276 NONAME
+	_ZN9SmfLyrics9setLyricsERK10QByteArray @ 277 NONAME
+	_ZN9SmfLyricsC1ERKS_ @ 278 NONAME
+	_ZN9SmfLyricsC1Ev @ 279 NONAME
+	_ZN9SmfLyricsC2ERKS_ @ 280 NONAME
+	_ZN9SmfLyricsC2Ev @ 281 NONAME
+	_ZN9SmfLyricsD1Ev @ 282 NONAME
+	_ZN9SmfLyricsD2Ev @ 283 NONAME
+	_ZN9SmfLyricsaSERKS_ @ 284 NONAME
+	_ZNK10SmfArtists3urlEv @ 285 NONAME
+	_ZNK10SmfArtists5imageEv @ 286 NONAME
+	_ZNK10SmfArtists5namesEv @ 287 NONAME
+	_ZNK10SmfComment2idEv @ 288 NONAME
+	_ZNK10SmfComment4textEv @ 289 NONAME
+	_ZNK10SmfComment9timeStampEv @ 290 NONAME
+	_ZNK10SmfContact5valueERK7QString @ 291 NONAME
+	_ZNK10SmfContact7convertERN10QtMobility8QContactE @ 292 NONAME
+	_ZNK10SmfContact8subTypesEv @ 293 NONAME
+	_ZNK10SmfPicture10postedDateEv @ 294 NONAME
+	_ZNK10SmfPicture10visibilityEv @ 295 NONAME
+	_ZNK10SmfPicture11descriptionEv @ 296 NONAME
+	_ZNK10SmfPicture2idEv @ 297 NONAME
+	_ZNK10SmfPicture3urlEv @ 298 NONAME
+	_ZNK10SmfPicture4tagsEv @ 299 NONAME
+	_ZNK10SmfPicture5ownerEv @ 300 NONAME
+	_ZNK10SmfPicture5titleEv @ 301 NONAME
+	_ZNK10SmfPicture7pictureEv @ 302 NONAME
+	_ZNK10SmfPicture8commentsEv @ 303 NONAME
+	_ZNK11SmfLocation15geoPositionInfoEv @ 304 NONAME
+	_ZNK11SmfLocation2idEv @ 305 NONAME
+	_ZNK11SmfLocation3urlEv @ 306 NONAME
+	_ZNK11SmfLocation4cityEv @ 307 NONAME
+	_ZNK11SmfLocation4nameEv @ 308 NONAME
+	_ZNK11SmfLocation6streetEv @ 309 NONAME
+	_ZNK11SmfLocation7countryEv @ 310 NONAME
+	_ZNK11SmfLocation7zipCodeEv @ 311 NONAME
+	_ZNK11SmfPlaylist11attributionEv @ 312 NONAME
+	_ZNK11SmfPlaylist12creationDateEv @ 313 NONAME
+	_ZNK11SmfPlaylist13playListTitleEv @ 314 NONAME
+	_ZNK11SmfPlaylist2idEv @ 315 NONAME
+	_ZNK11SmfPlaylist4infoEv @ 316 NONAME
+	_ZNK11SmfPlaylist5imageEv @ 317 NONAME
+	_ZNK11SmfPlaylist6authorEv @ 318 NONAME
+	_ZNK11SmfPlaylist7licenseEv @ 319 NONAME
+	_ZNK11SmfPlaylist7versionEv @ 320 NONAME
+	_ZNK11SmfPlaylist8commentsEv @ 321 NONAME
+	_ZNK11SmfPlaylist8locationEv @ 322 NONAME
+	_ZNK11SmfPlaylist8metadataEv @ 323 NONAME
+	_ZNK11SmfPlaylist9extensionEv @ 324 NONAME
+	_ZNK11SmfPlaylist9trackListEv @ 325 NONAME
+	_ZNK11SmfProvider10serviceUrlEv @ 326 NONAME
+	_ZNK11SmfProvider11descriptionEv @ 327 NONAME
+	_ZNK11SmfProvider11serviceIconEv @ 328 NONAME
+	_ZNK11SmfProvider11serviceNameEv @ 329 NONAME
+	_ZNK11SmfProvider14applicationUrlEv @ 330 NONAME
+	_ZNK11SmfProvider18supportedLanguagesEv @ 331 NONAME
+	_ZNK11SmfProvider19supportedInterfacesEv @ 332 NONAME
+	_ZNK11SmfSubtitle11releaseYearEv @ 333 NONAME
+	_ZNK11SmfSubtitle2idEv @ 334 NONAME
+	_ZNK11SmfSubtitle8durationEv @ 335 NONAME
+	_ZNK11SmfSubtitle8languageEv @ 336 NONAME
+	_ZNK11SmfSubtitle8subtitleEv @ 337 NONAME
+	_ZNK11SmfSubtitle9frameRateEv @ 338 NONAME
+	_ZNK12SmfTrackInfo2idEv @ 339 NONAME
+	_ZNK12SmfTrackInfo4tagsEv @ 340 NONAME
+	_ZNK12SmfTrackInfo4yearEv @ 341 NONAME
+	_ZNK12SmfTrackInfo5albumEv @ 342 NONAME
+	_ZNK12SmfTrackInfo5genreEv @ 343 NONAME
+	_ZNK12SmfTrackInfo5titleEv @ 344 NONAME
+	_ZNK12SmfTrackInfo6ratingEv @ 345 NONAME
+	_ZNK12SmfTrackInfo7artistsEv @ 346 NONAME
+	_ZNK12SmfTrackInfo8commentsEv @ 347 NONAME
+	_ZNK12SmfTrackInfo8durationEv @ 348 NONAME
+	_ZNK13SmfPluginUtil11errorStringEv @ 349 NONAME
+	_ZNK13SmfPluginUtil9errorLineEv @ 350 NONAME
+	_ZNK14SmfMusicRating6ratingEv @ 351 NONAME
+	_ZNK14SmfMusicRating9maxRatingEv @ 352 NONAME
+	_ZNK14SmfMusicRating9minRatingEv @ 353 NONAME
+	_ZNK15SmfMusicProfile10userEventsEv @ 354 NONAME
+	_ZNK15SmfMusicProfile12interestInfoEv @ 355 NONAME
+	_ZNK15SmfMusicProfile14musicUsageInfoEv @ 356 NONAME
+	_ZNK15SmfMusicProfile2idEv @ 357 NONAME
+	_ZNK15SmfPictureAlbum10postedDateEv @ 358 NONAME
+	_ZNK15SmfPictureAlbum10visibilityEv @ 359 NONAME
+	_ZNK15SmfPictureAlbum11descriptionEv @ 360 NONAME
+	_ZNK15SmfPictureAlbum12pictureCountEv @ 361 NONAME
+	_ZNK15SmfPictureAlbum2idEv @ 362 NONAME
+	_ZNK15SmfPictureAlbum3urlEv @ 363 NONAME
+	_ZNK15SmfPictureAlbum5titleEv @ 364 NONAME
+	_ZNK15SmfPictureAlbum8commentsEv @ 365 NONAME
+	_ZNK15SmfPictureAlbum8keywordsEv @ 366 NONAME
+	_ZNK15SmfPictureAlbum9thumbnailEv @ 367 NONAME
+	_ZNK16SmfActivityEntry10actionNameEv @ 368 NONAME
+	_ZNK16SmfActivityEntry10activitiesEv @ 369 NONAME
+	_ZNK16SmfActivityEntry2idEv @ 370 NONAME
+	_ZNK16SmfActivityEntry5titleEv @ 371 NONAME
+	_ZNK16SmfActivityEntry6authorEv @ 372 NONAME
+	_ZNK16SmfActivityEntry7detailsEv @ 373 NONAME
+	_ZNK16SmfActivityEntry9targetObjEv @ 374 NONAME
+	_ZNK17SmfActivityObject2idEv @ 375 NONAME
+	_ZNK17SmfActivityObject4linkEv @ 376 NONAME
+	_ZNK17SmfActivityObject4timeEv @ 377 NONAME
+	_ZNK17SmfActivityObject4typeEv @ 378 NONAME
+	_ZNK17SmfActivityObject7captionEv @ 379 NONAME
+	_ZNK17SmfActivityObject7contentEv @ 380 NONAME
+	_ZNK17SmfActivityObject7objDataEv @ 381 NONAME
+	_ZNK17SmfActivityObject9thumbnailEv @ 382 NONAME
+	_ZNK19SmfMusicFingerPrint16musicFingerPrintEv @ 383 NONAME
+	_ZNK6SmfUrl2idEv @ 384 NONAME
+	_ZNK6SmfUrl3relEv @ 385 NONAME
+	_ZNK6SmfUrl4hrefEv @ 386 NONAME
+	_ZNK6SmfUrl4typeEv @ 387 NONAME
+	_ZNK6SmfUrl5titleEv @ 388 NONAME
+	_ZNK6SmfUrl6lengthEv @ 389 NONAME
+	_ZNK6SmfUrl8hreflangEv @ 390 NONAME
+	_ZNK7SmfPost11descriptionEv @ 391 NONAME
+	_ZNK7SmfPost14postedDateTimeEv @ 392 NONAME
+	_ZNK7SmfPost2idEv @ 393 NONAME
+	_ZNK7SmfPost3urlEv @ 394 NONAME
+	_ZNK7SmfPost5imageEv @ 395 NONAME
+	_ZNK7SmfPost5ownerEv @ 396 NONAME
+	_ZNK7SmfPost5titleEv @ 397 NONAME
+	_ZNK8SmfAlbum2idEv @ 398 NONAME
+	_ZNK8SmfAlbum4nameEv @ 399 NONAME
+	_ZNK8SmfAlbum5imageEv @ 400 NONAME
+	_ZNK8SmfAlbum7artistsEv @ 401 NONAME
+	_ZNK8SmfEvent13eventDateTimeEv @ 402 NONAME
+	_ZNK8SmfEvent2idEv @ 403 NONAME
+	_ZNK8SmfEvent5titleEv @ 404 NONAME
+	_ZNK8SmfEvent5venueEv @ 405 NONAME
+	_ZNK8SmfEvent7artistsEv @ 406 NONAME
+	_ZNK8SmfEvent8durationEv @ 407 NONAME
+	_ZNK8SmfEvent9ticketUrlEv @ 408 NONAME
+	_ZNK8SmfGroup2idEv @ 409 NONAME
+	_ZNK8SmfGroup4nameEv @ 410 NONAME
+	_ZNK8SmfGroup7membersEv @ 411 NONAME
+	_ZNK9SmfLyrics11releaseYearEv @ 412 NONAME
+	_ZNK9SmfLyrics2idEv @ 413 NONAME
+	_ZNK9SmfLyrics6lyricsEv @ 414 NONAME
+	_ZNK9SmfLyrics8languageEv @ 415 NONAME
+	_ZlsR11QDataStreamRK10SmfArtists @ 416 NONAME
+	_ZlsR11QDataStreamRK10SmfComment @ 417 NONAME
+	_ZlsR11QDataStreamRK10SmfContact @ 418 NONAME
+	_ZlsR11QDataStreamRK10SmfPicture @ 419 NONAME
+	_ZlsR11QDataStreamRK11SmfLocation @ 420 NONAME
+	_ZlsR11QDataStreamRK11SmfPlaylist @ 421 NONAME
+	_ZlsR11QDataStreamRK11SmfProvider @ 422 NONAME
+	_ZlsR11QDataStreamRK11SmfSubtitle @ 423 NONAME
+	_ZlsR11QDataStreamRK12SmfTrackInfo @ 424 NONAME
+	_ZlsR11QDataStreamRK14SmfMusicRating @ 425 NONAME
+	_ZlsR11QDataStreamRK15SmfMusicProfile @ 426 NONAME
+	_ZlsR11QDataStreamRK15SmfPictureAlbum @ 427 NONAME
+	_ZlsR11QDataStreamRK16SmfActivityEntry @ 428 NONAME
+	_ZlsR11QDataStreamRK17SmfActivityObject @ 429 NONAME
+	_ZlsR11QDataStreamRK19SmfMusicFingerPrint @ 430 NONAME
+	_ZlsR11QDataStreamRK6SmfUrl @ 431 NONAME
+	_ZlsR11QDataStreamRK7SmfPost @ 432 NONAME
+	_ZlsR11QDataStreamRK8SmfAlbum @ 433 NONAME
+	_ZlsR11QDataStreamRK8SmfEvent @ 434 NONAME
+	_ZlsR11QDataStreamRK8SmfGroup @ 435 NONAME
+	_ZlsR11QDataStreamRK9SmfLyrics @ 436 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility10QContactIdE @ 437 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility11QContactUrlE @ 438 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility12QContactGuidE @ 439 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility12QContactNameE @ 440 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility12QContactNoteE @ 441 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility12QContactTypeE @ 442 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility14QContactAvatarE @ 443 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility14QContactGenderE @ 444 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility15QContactAddressE @ 445 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility16QContactBirthdayE @ 446 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility16QContactNicknameE @ 447 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility16QContactPresenceE @ 448 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility17QContactThumbnailE @ 449 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility17QContactTimestampE @ 450 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility19QContactAnniversaryE @ 451 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility19QContactGeoLocationE @ 452 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility19QContactPhoneNumberE @ 453 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility20QContactEmailAddressE @ 454 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility20QContactOrganizationE @ 455 NONAME
+	_ZlsR11QDataStreamRKN10QtMobility21QContactOnlineAccountE @ 456 NONAME
+	_ZrsR11QDataStreamR10SmfArtists @ 457 NONAME
+	_ZrsR11QDataStreamR10SmfComment @ 458 NONAME
+	_ZrsR11QDataStreamR10SmfContact @ 459 NONAME
+	_ZrsR11QDataStreamR10SmfPicture @ 460 NONAME
+	_ZrsR11QDataStreamR11SmfLocation @ 461 NONAME
+	_ZrsR11QDataStreamR11SmfPlaylist @ 462 NONAME
+	_ZrsR11QDataStreamR11SmfProvider @ 463 NONAME
+	_ZrsR11QDataStreamR11SmfSubtitle @ 464 NONAME
+	_ZrsR11QDataStreamR12SmfTrackInfo @ 465 NONAME
+	_ZrsR11QDataStreamR14SmfMusicRating @ 466 NONAME
+	_ZrsR11QDataStreamR15SmfMusicProfile @ 467 NONAME
+	_ZrsR11QDataStreamR15SmfPictureAlbum @ 468 NONAME
+	_ZrsR11QDataStreamR16SmfActivityEntry @ 469 NONAME
+	_ZrsR11QDataStreamR17SmfActivityObject @ 470 NONAME
+	_ZrsR11QDataStreamR19SmfMusicFingerPrint @ 471 NONAME
+	_ZrsR11QDataStreamR6SmfUrl @ 472 NONAME
+	_ZrsR11QDataStreamR7SmfPost @ 473 NONAME
+	_ZrsR11QDataStreamR8SmfAlbum @ 474 NONAME
+	_ZrsR11QDataStreamR8SmfEvent @ 475 NONAME
+	_ZrsR11QDataStreamR8SmfGroup @ 476 NONAME
+	_ZrsR11QDataStreamR9SmfLyrics @ 477 NONAME
+	_ZrsR11QDataStreamRN10QtMobility10QContactIdE @ 478 NONAME
+	_ZrsR11QDataStreamRN10QtMobility11QContactUrlE @ 479 NONAME
+	_ZrsR11QDataStreamRN10QtMobility12QContactGuidE @ 480 NONAME
+	_ZrsR11QDataStreamRN10QtMobility12QContactNameE @ 481 NONAME
+	_ZrsR11QDataStreamRN10QtMobility12QContactNoteE @ 482 NONAME
+	_ZrsR11QDataStreamRN10QtMobility12QContactTypeE @ 483 NONAME
+	_ZrsR11QDataStreamRN10QtMobility14QContactAvatarE @ 484 NONAME
+	_ZrsR11QDataStreamRN10QtMobility14QContactGenderE @ 485 NONAME
+	_ZrsR11QDataStreamRN10QtMobility15QContactAddressE @ 486 NONAME
+	_ZrsR11QDataStreamRN10QtMobility16QContactBirthdayE @ 487 NONAME
+	_ZrsR11QDataStreamRN10QtMobility16QContactNicknameE @ 488 NONAME
+	_ZrsR11QDataStreamRN10QtMobility16QContactPresenceE @ 489 NONAME
+	_ZrsR11QDataStreamRN10QtMobility17QContactThumbnailE @ 490 NONAME
+	_ZrsR11QDataStreamRN10QtMobility17QContactTimestampE @ 491 NONAME
+	_ZrsR11QDataStreamRN10QtMobility19QContactAnniversaryE @ 492 NONAME
+	_ZrsR11QDataStreamRN10QtMobility19QContactGeoLocationE @ 493 NONAME
+	_ZrsR11QDataStreamRN10QtMobility19QContactPhoneNumberE @ 494 NONAME
+	_ZrsR11QDataStreamRN10QtMobility20QContactEmailAddressE @ 495 NONAME
+	_ZrsR11QDataStreamRN10QtMobility20QContactOrganizationE @ 496 NONAME
+	_ZrsR11QDataStreamRN10QtMobility21QContactOnlineAccountE @ 497 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfactions.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,440 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Represents activities in terms similar to standard activity 
+ * stream http://activitystrea.ms/
+ *
+ */
+
+#include "smfactions.h"
+#include "smfactions_p.h"
+
+
+/**
+ * Constructor
+ */
+SmfActivityObject::SmfActivityObject( )
+	{
+	d = new SmfActivityObjectPrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfActivityObject::SmfActivityObject( const SmfActivityObject &aOther )
+	: d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfActivityObject& SmfActivityObject::operator=( const SmfActivityObject &aOther )
+	{
+	d->m_id = aOther.d->m_id;
+	d->m_thumbnail = aOther.d->m_thumbnail;
+	d->m_caption = aOther.d->m_caption;
+	d->m_type = aOther.d->m_type;
+	d->m_objData = aOther.d->m_objData;
+	d->m_link = aOther.d->m_link;
+	d->m_time = aOther.d->m_time;
+	d->m_content = aOther.d->m_content;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfActivityObject::~SmfActivityObject( )
+	{
+	}
+
+
+/**
+ * @return returns service specific Id of this object in the entry 
+ */
+QString SmfActivityObject::id( ) const
+	{
+	return d->m_id;
+	}
+
+/**
+ * @return returns thumbnail if availabel for this object in the entry
+ */
+QImage SmfActivityObject::thumbnail( ) const
+	{
+	return d->m_thumbnail;
+	}
+
+/**
+ * @return Captions for this object
+ */
+QString SmfActivityObject::caption( ) const
+	{
+	return d->m_caption;
+	}
+
+/**
+ * @return retruns the type of this object
+ */
+SmfActivityObjectType SmfActivityObject::type( ) const
+	{
+	return d->m_type;
+	}
+
+/**
+ * @return returns data of the object - see type() for casting
+ */
+QVariant SmfActivityObject::objData( ) const
+	{
+	return d->m_objData;
+	}
+
+/**
+ * @return url of this object, e.g. url of the image on which somebody commented
+ */
+QString SmfActivityObject::link( ) const
+	{
+	return d->m_link;
+	}
+
+/**
+ * @return Time of creation of this object
+ */
+QDateTime SmfActivityObject::time( ) const
+	{
+	return d->m_time;
+	}
+
+/**
+ * @return Description of the content of this object
+ */
+QString SmfActivityObject::content( ) const
+	{
+	return d->m_content;
+	}
+
+/**
+ * Sets service specific id for this object
+ * @param aId The id to be set
+ */
+void SmfActivityObject::setId(const QString& aId)
+	{
+	d->m_id = aId;
+	}
+
+/**
+ * Sets thumbnail for this object , not mandatory
+ * @param aIcon The thumbnail image
+ */
+void SmfActivityObject::setThumbnail(const QImage& aIcon)
+	{
+	d->m_thumbnail = aIcon;
+	}
+
+/**
+ * Sets caption for this object
+ * @param aCaption The caption to be set
+ */
+void SmfActivityObject::setCaption(const QString& aCap)
+	{
+	d->m_caption = aCap;
+	}
+
+/**
+ * Sets type of this object - ObjData should be set next accordingly
+ * @param aObjType The activity type to be set
+ */
+void SmfActivityObject::setType(const SmfActivityObjectType& aObjType)
+	{
+	d->m_type = aObjType;
+	}
+
+/**
+ * Sets object data e,g, SmfImage, SmfComment, SmfMusic, SmfEvent etc
+ * setType() with suitable type should have been called before
+ * @param aData The object data to be set  
+ */
+void SmfActivityObject::setObjData( const QVariant& aData)
+	{
+	d->m_objData = aData;
+	}
+
+/**
+ * Sets the url for the object
+ * @param aLink The Link to be set
+ */
+void SmfActivityObject::setLink( const QString& aLink)
+	{
+	d->m_link = aLink;
+	}
+
+/**
+ * Sets the time of creation/last modification of the object
+ * @param aTime The time to be set
+ */
+void SmfActivityObject::setTime( const QDateTime& aTime)
+	{
+	d->m_time = aTime;
+	}
+
+/**
+ * Sets the description of the content of this object
+ * @param aText The content to be set
+ */
+void SmfActivityObject::setContent( const QString& aText)
+	{
+	d->m_content = aText;
+	}
+
+/**
+ * Method for Externalization. Writes the SmfActivityObject object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aObj The SmfActivityObject object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfActivityObject &aObj )
+	{
+	aDataStream<<aObj.d->m_id;
+	aDataStream<<aObj.d->m_thumbnail;
+	aDataStream<<aObj.d->m_caption;
+	aDataStream<<aObj.d->m_type;
+	aDataStream<<aObj.d->m_objData;
+	aDataStream<<aObj.d->m_link;
+	aDataStream<<aObj.d->m_time;
+	aDataStream<<aObj.d->m_content;
+		
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfActivityObject object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aObj The SmfActivityObject object to be internalized
+ * @return reference to the stream
+ */
+ QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfActivityObject &aObj)
+	{
+	aDataStream>>aObj.d->m_id;
+	aDataStream>>aObj.d->m_thumbnail;
+	aDataStream>>aObj.d->m_caption;
+	int i;
+	aDataStream>>i;
+	aObj.d->m_type = (SmfActivityObjectType)i;
+	aDataStream>>aObj.d->m_objData;
+	aDataStream>>aObj.d->m_link;
+	aDataStream>>aObj.d->m_time;
+	aDataStream>>aObj.d->m_content;
+	
+	return aDataStream;
+	}
+
+ 
+ 
+SmfActivityEntry::SmfActivityEntry()
+ 	{
+	d = new SmfActivityEntryPrivate;
+ 	}
+SmfActivityEntry::SmfActivityEntry( const SmfActivityEntry &aOther )
+	:d( aOther.d )
+	{
+	}
+SmfActivityEntry::~SmfActivityEntry()
+	{
+	
+	}
+/**
+ * @return Returns service specific id of the of entry 
+ */
+QString SmfActivityEntry::id() const
+	{
+	return d->m_id;
+	}
+
+/**
+ * @return Returns the title of the entry - mostly be a string 
+ */
+SmfPost SmfActivityEntry::title() const
+	{
+	return d->m_title;
+	}
+
+/**
+ * @return Returns detail descriptiopn of this entry in the activity list. might be absent if title is sufficient
+ */
+SmfPost SmfActivityEntry::details() const
+	{
+	return d->m_details;
+	}
+
+/**
+ * @return Returns the author of the activity - the name and the uri field are most commonly used
+ * Other information fields might be empty
+ */
+SmfContact SmfActivityEntry::author() const
+	{
+	return d->m_author;
+	}
+
+/**
+ * @return Returns the verb of the activity ,e.g. Robin "marked" Joseph as a friend   
+ */
+SmfActivityVerb SmfActivityEntry::actionName() const
+	{
+	return d->m_actionName;
+	}
+
+/**
+ * There can be multiple objects in a single activity entry, though this may be rare - only for few verbs.
+ * @return list of activity objects (mostly one object)
+ */
+QList<SmfActivityObject> SmfActivityEntry::activities() const
+	{
+	return d->m_activities;
+	}
+
+/**
+ * @return Returns information about the target of the activity, for verbs that support a target.
+ * For example, a target is a photo album to which photos were added
+ */
+SmfActivityObject SmfActivityEntry::targetObj() const
+	{
+	return d->m_targetObj;
+	}
+
+/**
+ * Sets service specific id of the of entry 
+ * @param aId The id to be set
+ */
+bool SmfActivityEntry::setId( const QString& aId)
+	{
+	d->m_id = aId;
+	return true;
+	}
+
+/**
+ * Sets the title of the entry - mostly be a string
+ * @param aTitle The title to be set 
+ */
+bool SmfActivityEntry::setTitle(const SmfPost& aTitle)
+	{
+	d->m_title = aTitle;
+	return true;
+	}
+
+/**
+ * Sets detail description of this entry in the activity list. might be absent if title is sufficient
+ * @param aDetails The details to be set
+ */
+bool SmfActivityEntry::setDetails(const SmfPost& aDetails)
+	{
+	d->m_details = aDetails;
+	return true;
+	}
+
+/**
+ * Sets the author of the activity - the name and the uri field are most commonly used
+ * Oher information fields might be empty
+ * @param aContact The author to be set
+ */
+bool SmfActivityEntry::setAuthor(const SmfContact& aContact)
+	{
+	d->m_author = aContact;
+	return true;
+	}
+
+/**
+ * Sets the verb of the activity ,e.g. Robin "marked" Joseph as a friend
+ * @param aVerb The action name to be set   
+ */
+void SmfActivityEntry::setActionName(SmfActivityVerb  aVerb)
+	{
+	d->m_actionName = aVerb;
+	}
+
+/**
+ * Sets single or multiple objects in a single activity entry, though multiple may be rare - only for few verbs.
+ * @param list of activity objects (mostly one object)
+ */
+bool SmfActivityEntry::setActivities(QList<SmfActivityObject>& aList)
+	{
+	d->m_activities = aList;
+	return true;
+	}
+
+/**
+ * Returns information about the target of the activity, for verbs that support a target.
+ * For example, a target is a photo album to which photos were added
+ * @param aTarget The activity object to be set
+ */
+bool SmfActivityEntry::setTargetObj(const SmfActivityObject& aTarget)
+	{
+	d->m_targetObj = aTarget;
+	return true;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfActivityEntry object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aObj The SmfActivityEntry object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfActivityEntry &aObj )
+	{
+	aDataStream<<aObj.d->m_id;
+	aDataStream<<aObj.d->m_title;
+	aDataStream<<aObj.d->m_details;
+	aDataStream<<aObj.d->m_author;
+	aDataStream<<aObj.d->m_actionName;
+	aDataStream<<aObj.d->m_activities;
+	aDataStream<<aObj.d->m_targetObj;
+		
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfActivityEntry object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aObj The SmfActivityEntry object to be internalized
+ * @return reference to the stream
+ */
+ QDataStream &operator>>( QDataStream &aDataStream, 
+		 SmfActivityEntry &aObj)
+	{
+	aDataStream>>aObj.d->m_id;
+	aDataStream>>aObj.d->m_title;
+	aDataStream>>aObj.d->m_details;
+	aDataStream>>aObj.d->m_author;
+	int i;
+	aDataStream>>i;
+	aObj.d->m_actionName = (SmfActivityVerb)i;
+	aDataStream>>aObj.d->m_activities;
+	aDataStream>>aObj.d->m_targetObj;
+	
+	return aDataStream;
+	}
+
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfactions.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,375 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ *
+ * Description:
+ * Represents activities in terms similar to standard activity stream http://activitystrea.ms/
+ */
+
+#ifndef SMFACTIONS_H_
+#define SMFACTIONS_H_
+
+#include <QList>
+#include <QImage>
+#include <QDateTime>
+#include <QStringList>
+#include <QUrl>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <QMetaType>
+
+#include "smfclientglobal.h"
+#include "smfpost.h"
+#include "smfcontact.h"
+
+/**
+ * Implementation const
+ */
+const int MaxSmfActivityEntrySize = 5000;
+
+/**
+ * The actions in the activity based on Atom Activity Base Schema
+ * see http://activitystrea.ms/schema/1.0/activity-schema-01.html
+ */
+enum SmfActivityVerb
+	{
+	SmfActivityMarkAsFavorite,
+	SmfActivityStartFollowing,
+	SmfActivityMarkLiked,
+	SmfActivityMakeFriend,
+	SmfActivityJoin,
+	SmfActivityPlay,
+	SmfActivityPost,
+	SmfActivitySave,
+	SmfActivityShare,
+	SmfActivityTag,
+	SmfActivityUpdate
+	};
+
+/**
+ * The type of the object on which the activity is performed - as per Atom Activity Base Schema
+ * see http://activitystrea.ms/schema/1.0/activity-schema-01.html
+ */
+enum SmfActivityObjectType
+	{
+	SmfActivityObjTypeArticle,
+	SmfActivityObjTypeAudio,
+	SmfActivityObjTypeBookmark,
+	SmfActivityObjTypeComment,
+	SmfActivityObjTypeFile,
+	SmfActivityObjTypeFolder,
+	SmfActivityObjTypeGroup,
+	SmfActivityObjTypeList,
+	SmfActivityObjTypeNote,
+	SmfActivityObjTypePerson,
+	SmfActivityObjTypePhoto,
+	SmfActivityObjTypePhotoAlbum,
+	SmfActivityObjTypePlace,
+	SmfActivityObjTypePlaylist,
+	SmfActivityObjTypeProduct,
+	SmfActivityObjTypeReview,
+	SmfActivityObjTypeService,
+	SmfActivityObjTypeStatus,
+	SmfActivityObjTypeVideo,
+	SmfActivityObjTypeMusic,
+	SmfActivityObjTypeEvent,
+	SmfActivityObjTypeAdvanced
+	};
+
+enum SmfActivityFor
+	{
+		SmfActivitySelf,
+		SmfActivityFriend,
+		SmfActivityOthers
+	};
+
+class SmfActivityObjectPrivate;
+//class SmfActivityEntryPrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The object class represents an object in an activity (e.g.a picture or a music track on which somebody commented)
+ */
+class SMFCOMMON_EXPORT SmfActivityObject 
+	{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfActivityObject();
+
+	/**
+	 * Copy Constructor
+	 */
+	SmfActivityObject(const SmfActivityObject& aOther);
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 * @return The target reference value
+	 */
+	SmfActivityObject& operator=( const SmfActivityObject &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfActivityObject();
+
+	/**
+	 * @return returns service specific Id of this object in the entry 
+	 */
+	QString id() const;
+	
+	/**
+	 * @return returns thumbnail if availabel for this object in the entry
+	 */
+	QImage thumbnail() const;
+	
+	/**
+	 * @return Captions for this object
+	 */
+	QString caption() const;
+	
+	/**
+	 * @return retruns the type of this object
+	 */
+	SmfActivityObjectType type( ) const;
+	
+	/**
+	 * @return returns data of the object - see type() for casting
+	 */
+	QVariant objData() const;
+	
+	/**
+	 * @return url of this object, e.g. url of the image on which somebody commented
+	 */
+	QString link() const;
+	
+	/**
+	 * @return Time of creation of this object
+	 */
+	QDateTime time() const;
+	
+	/**
+	 * @return Description of the content of this object
+	 */
+	QString content() const;
+
+	/**
+	 * Sets service specific id for this object
+	 * @param aId The id to be set
+	 */
+	void setId(const QString& aId);
+	
+	/**
+	 * Sets thumbnail for this object , not mandatory
+	 * @param aIcon The thumbnail image
+	 */
+	void setThumbnail(const QImage& aIcon);
+	
+	/**
+	 * Sets caption for this object
+	 * @param aCaption The caption to be set
+	 */
+	void setCaption(const QString& aCap);
+	
+	/**
+	 * Sets type of this object - ObjData should be set next accordingly
+	 * @param aObjType The activity type to be set
+	 */
+	void setType(const SmfActivityObjectType& aObjType);
+	
+	/**
+	 * Sets object data e,g, SmfImage, SmfComment, SmfMusic, SmfEvent etc
+	 * setType() with suitable type should have been called before  
+	 * @param aData The object data to be set  
+	 */
+	void setObjData( const QVariant& aData);
+	
+	/**
+	 * Sets the url for the object
+	 * @param aLink The Link to be set
+	 */
+	void setLink( const QString& aLink);
+	
+	/**
+	 * Sets the time of creation/last modification of the object
+	 * @param aTime The time to be set
+	 */
+	void setTime( const QDateTime& aTime);
+	
+	/**
+	 * Sets the description of the content of this object
+	 * @param aText The content to be set
+	 */
+	void setContent( const QString& aText) ;
+	
+private:
+	QSharedDataPointer<SmfActivityObjectPrivate> d;
+	
+	friend QDataStream& operator >> ( QDataStream &aOut, SmfActivityObject& aData);
+	friend QDataStream& operator << ( QDataStream &aIn, const SmfActivityObject& aData);	
+	};
+
+SMFCOMMON_EXPORT QDataStream& operator >> ( QDataStream &aOut, SmfActivityObject& aData);
+SMFCOMMON_EXPORT QDataStream& operator << ( QDataStream &aIn, const SmfActivityObject& aData);	
+
+typedef QList<SmfActivityObject> SmfActivityObjectList;
+
+// Make the class SmfActivityObject known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfActivityObject)
+Q_DECLARE_METATYPE(QList<SmfActivityObject>)
+
+
+class SmfActivityEntryPrivate: public QSharedData
+	{
+public:
+	SmfActivityEntryPrivate( ) {
+		m_id.clear();
+	}
+	
+	SmfActivityEntryPrivate( const SmfActivityEntryPrivate& aOther ) :
+		QSharedData (aOther),
+		m_id (aOther.m_id),
+		m_title (aOther.m_title),
+		m_details (aOther.m_details),
+		m_author (aOther.m_author),
+		m_actionName (aOther.m_actionName),
+		m_activities (aOther.m_activities),
+		m_targetObj (aOther.m_targetObj)  { }
+
+	~SmfActivityEntryPrivate( ) { }
+	
+	/**
+	 * Data members
+	 */
+	QString m_id;
+	SmfPost m_title;
+	SmfPost m_details;
+	SmfContact m_author;
+	SmfActivityVerb m_actionName;
+	QList<SmfActivityObject> m_activities;
+	SmfActivityObject m_targetObj;
+	};
+
+/**
+ * @ingroup smf_common_group
+ * The object class represents an entry in the list of activities 
+ */
+class SMFCOMMON_EXPORT SmfActivityEntry
+	{
+
+public:
+	
+	SmfActivityEntry();
+	SmfActivityEntry(const SmfActivityEntry& aOther);
+	~SmfActivityEntry();
+	
+	/**
+	 * @return Returns service specific id of the of entry 
+	 */
+	QString id() const;
+	/**
+	 * @return Returns the title of the entry - mostly be a string 
+	 */
+	SmfPost title() const;
+
+	/**
+	 * @return Returns detail descriptiopn of this entry in the activity list. might be absent if title is sufficient
+	 */
+	SmfPost details() const;
+	
+	/**
+	 * @return Returns the author of the activity - the name and the uri field are most commonly used
+	 * Other information fields might be empty
+	 */
+	SmfContact author() const;
+	
+	/**
+	 * @return Returns the verb of the activity ,e.g. Robin "marked" Joseph as a friend   
+	 */
+	SmfActivityVerb actionName() const;
+
+	/**
+	 * There can be multiple objects in a single activity entry, though this may be rare - only for few verbs.
+	 * @return list of activity objects (mostly one object)
+	 */
+	QList<SmfActivityObject> activities() const;
+	
+	/**
+	 * @return Returns information about the target of the activity, for verbs that support a target.
+	 * For example, a target is a photo album to which photos were added
+	 */
+	SmfActivityObject targetObj() const;
+
+	/**
+	 * Sets service specific id of the of entry 
+	 * @param aId The id to be set
+	 */
+	bool setId( const QString& aId);
+	
+	/**
+	 * Sets the title of the entry - mostly be a string
+	 * @param aTitle The title to be set 
+	 */
+	bool setTitle(const SmfPost& aTitle);
+
+	/**
+	 * Sets detail description of this entry in the activity list. might be absent if title is sufficient
+	 * @param aDetails The details to be set
+	 */
+	bool setDetails(const SmfPost& aDetails);
+	
+	/**
+	 * Sets the author of the activity - the name and the uri field are most commonly used
+	 * Oher information fields might be empty
+	 * @param aContact The author to be set
+	 */
+	bool setAuthor(const SmfContact& aContact);
+	
+	/**
+	 * Sets the verb of the activity ,e.g. Robin "marked" Joseph as a friend
+	 * @param aVerb The action name to be set   
+	 */
+	void setActionName(SmfActivityVerb  aVerb);
+
+	/**
+	 * Sets single or multiple objects in a single activity entry, though multiple may be rare - only for few verbs.
+	 * @param list of activity objects (mostly one object)
+	 */
+	bool setActivities(QList<SmfActivityObject>& aList);
+	
+	/**
+	 * Returns information about the target of the activity, for verbs that support a target.
+	 * For example, a target is a photo album to which photos were added
+	 * @param aTarget The activity object to be set
+	 */
+	bool setTargetObj(const SmfActivityObject& aTarget);
+	
+private:
+	QSharedDataPointer<SmfActivityEntryPrivate> d;
+	
+	friend QDataStream& operator >> ( QDataStream &aOut, SmfActivityEntry& aData);
+	friend QDataStream& operator << ( QDataStream &aIn, const SmfActivityEntry& aData);	
+	};
+
+SMFCOMMON_EXPORT QDataStream& operator >> ( QDataStream &aOut, SmfActivityEntry& aData);
+SMFCOMMON_EXPORT QDataStream& operator << ( QDataStream &aIn, const SmfActivityEntry& aData);	
+
+typedef QList<SmfActivityEntry> SmfActivityEntryList;
+
+// Make the class SmfActivityEntry known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfActivityEntry)
+Q_DECLARE_METATYPE(QList<SmfActivityEntry>)
+
+#endif /* SMFACTIONS_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfactions_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,75 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Contains private implementation of the smfactions
+ */
+
+#ifndef SMFACTIONS_P_H_
+#define SMFACTIONS_P_H_
+
+#include <QDateTime>
+#include <QSharedData>
+#include <QVariant>
+#include <QImage>
+#include <QDateTime>
+#include <QStringList>
+#include <QUrl>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <QMetaType>
+
+#include "smfactions.h"
+#include "smfpost.h"
+#include "smfcontact.h"
+
+class SmfActivityObjectPrivate: public QSharedData
+	{
+public:	
+	SmfActivityObjectPrivate( ) {
+		m_id.clear();
+		m_caption.clear();
+		m_link.clear();
+		m_content.clear();
+	}
+	
+	SmfActivityObjectPrivate( const SmfActivityObjectPrivate& aOther ) :
+		QSharedData (aOther),
+		m_id (aOther.m_id),
+		m_thumbnail (aOther.m_thumbnail),
+		m_caption (aOther.m_caption),
+		m_type (aOther.m_type),
+		m_objData (aOther.m_objData),
+		m_link (aOther.m_link),
+		m_time (aOther.m_time),
+		m_content (aOther.m_content) { }
+
+	~SmfActivityObjectPrivate( ) {}
+	
+	/**
+	 * Data members
+	 */
+	QString m_id;
+	QImage m_thumbnail;
+	QString m_caption;
+	SmfActivityObjectType m_type;
+	QVariant m_objData;
+	QString m_link;
+	QDateTime m_time;
+	QString m_content;
+	};
+
+
+
+#endif /* SMFACTIONS_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfalbum.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,182 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfAlbum class represents a music album
+ *
+ */
+
+#include <smfalbum.h>
+#include <smfalbum_p.h>
+
+
+/**
+ * Constructor with default argument
+ */
+SmfAlbum::SmfAlbum( )
+	{
+	d = new SmfAlbumPrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfAlbum::SmfAlbum( const SmfAlbum &aOther )
+	: d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfAlbum& SmfAlbum::operator=( const SmfAlbum &aOther )
+	{
+	d->m_name = aOther.d->m_name;
+	d->m_image = aOther.d->m_image;
+	d->m_artists = aOther.d->m_artists;
+	d->m_albumId = aOther.d->m_albumId;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfAlbum::~SmfAlbum( )
+	{
+	}
+
+/**
+ * Method to get the album name
+ * @return The album name
+ */
+QString SmfAlbum::name( ) const
+	{
+	return d->m_name;
+	}
+
+/**
+ * Method to get the album's image
+ * @return The album's image
+ */
+QImage SmfAlbum::image( ) const
+	{
+	return d->m_image;
+	}
+
+/**
+ * Method to get the artist names
+ * @return The list of artists in the album
+ */
+SmfArtists SmfAlbum::artists( ) const
+	{
+	return d->m_artists;
+	}
+
+/**
+ * Method to get the id of the album
+ * @return The ID value 
+ */
+QString SmfAlbum::id( ) const
+	{
+	return d->m_albumId;
+	}
+
+/**
+ * Method to set the album name
+ * @param aName The album name
+ */
+void SmfAlbum::setName( const QString &aName )
+	{
+	d->m_name = aName;
+	}
+
+/**
+ * Method to set the album's image
+ * @param aImage The album's image
+ */
+void SmfAlbum::setImage( const QImage &aImage )
+	{
+	d->m_image = aImage;
+	}
+
+/**
+ * Method to set the artist names
+ * @param aArtists The list of artists in the album
+ */
+void SmfAlbum::setArtists( const SmfArtists &aArtists )
+	{
+	d->m_artists = aArtists;
+	}
+
+/**
+ * Method to set the id of the album
+ * @param aId The ID value 
+ */
+void SmfAlbum::setId( const QString &aId )
+	{
+	d->m_albumId = aId;
+	}
+
+/**
+ * Method for Externalization. Writes the SmfAlbum object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aAlbum The SmfAlbum object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfAlbum &aAlbum )
+	{
+	// Serialize d->m_name
+	aDataStream<<aAlbum.d->m_name;
+	
+	// Serialize d->m_image
+	aDataStream<<aAlbum.d->m_image;
+	
+	// Serialize d->m_artists
+	aDataStream<<aAlbum.d->m_artists;
+	
+	// Serialize d->m_albumId
+	aDataStream<<aAlbum.d->m_albumId;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfAlbum object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aAlbum The SmfAlbum object to be internalized
+ * @return reference to the stream
+ */
+ QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfAlbum &aAlbum)
+	{
+	// Deserialize d->m_name
+	aDataStream>>aAlbum.d->m_name;
+	
+	// Deserialize d->m_image
+	aDataStream>>aAlbum.d->m_image;
+	
+	// Deserialize d->m_artists
+	aDataStream>>aAlbum.d->m_artists;
+	
+	// Deserialize d->m_albumId
+	aDataStream>>aAlbum.d->m_albumId;
+	
+	return aDataStream;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfalbum.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,145 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfAlbum class represents a music album
+ *
+ */
+#ifndef SMFALBUM_H_
+#define SMFALBUM_H_
+
+#include <QImage>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <QMetaType>
+
+class SmfAlbumPrivate;
+class SmfArtists;
+
+/**
+ * @ingroup smf_common_group
+ * The SmfAlbum class represents a music album
+ */
+class SMFCOMMON_EXPORT SmfAlbum
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfAlbum( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfAlbum( const SmfAlbum &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 * @return The target reference value
+	 */
+	SmfAlbum& operator=( const SmfAlbum &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfAlbum( );
+	
+	/**
+	 * Method to get the album name
+	 * @return The album name
+	 */
+	QString name( ) const;
+	
+	/**
+	 * Method to get the album's image
+	 * @return The album's image
+	 */
+	QImage image( ) const;
+	
+	/**
+	 * Method to get the artist names
+	 * @return The list of artists in the album
+	 */
+	SmfArtists artists( ) const;
+	
+	/**
+	 * Method to get the id of the album
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to set the album name
+	 * @param aName The album name
+	 */
+	void setName( const QString &aName );
+	
+	/**
+	 * Method to set the album's image
+	 * @param aImage The album's image
+	 */
+	void setImage( const QImage &aImage );
+	
+	/**
+	 * Method to set the artist names
+	 * @param aArtists The list of artists in the album
+	 */
+	void setArtists( const SmfArtists &aArtists );
+	
+	/**
+	 * Method to set the id of the album
+	 * @param aId The ID value 
+	 */
+	void setId( const QString &aId );
+	
+private:
+	QSharedDataPointer<SmfAlbumPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfAlbum &aAlbum );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfAlbum &aAlbum );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfAlbum object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aAlbum The SmfAlbum object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfAlbum &aAlbum );
+
+/**
+ * Method for Internalization. Reads a SmfAlbum object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aAlbum The SmfAlbum object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfAlbum &aAlbum);
+
+// Make the class SmfAlbum known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfAlbum)
+Q_DECLARE_METATYPE(QList<SmfAlbum>)
+
+#endif /* SMFALBUM_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfalbum_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfAlbum class
+ *
+ */
+
+#ifndef SMFALBUM_P_H_
+#define SMFALBUM_P_H_
+
+#include <smfartists.h>
+#include <QStringList>
+#include <QSharedData>
+
+class SmfAlbumPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfAlbumPrivate( ) { 
+		m_name.clear(); 
+		m_albumId.clear();
+		
+	}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfAlbumPrivate( const SmfAlbumPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_name ( aOther.m_name ), 
+		m_image ( aOther.m_image ),
+		m_artists ( aOther.m_artists ),
+		m_albumId ( aOther.m_albumId ) 	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfAlbumPrivate( )
+		{
+		}
+  
+	QString		m_name;		// album name
+	QImage 		m_image;	// album image
+	SmfArtists m_artists;	// album's artists
+	QString 	m_albumId;	// album Id
+	
+};
+
+#endif /* SMFALBUM_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfartists.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfArtists class represents the artists in a track or an album
+ *
+ */
+
+#include <smfartists.h>
+#include <smfartists_p.h>
+
+/**
+ * Constructor with default argument
+ */
+SmfArtists::SmfArtists( )
+	{
+	d = new SmfArtistsPrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfArtists::SmfArtists( const SmfArtists &aOther )
+	:d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfArtists& SmfArtists::operator=( const SmfArtists &aOther )
+	{
+	d->m_names = aOther.d->m_names;
+	d->m_image = aOther.d->m_image;
+	d->m_url = aOther.d->m_url;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfArtists::~SmfArtists( )
+	{
+	}
+
+/**
+ * Method to get the artists names
+ * @return The list of artists
+ */
+QStringList SmfArtists::names( ) const
+	{
+	return d->m_names;
+	}
+
+/**
+ * Method to get the image of the artists
+ * @return The image of te artists
+ */
+QImage SmfArtists::image( ) const
+	{
+	return d->m_image;
+	}
+
+/**
+ * Method to get the url of the artists
+ * @return The url of the artists
+ */
+QUrl SmfArtists::url( ) const
+	{
+	return d->m_url;
+	}
+
+/**
+ * Method to set the artists names
+ * @param aList The list of artists names
+ */
+void SmfArtists::setNames( const QStringList &aList )
+	{
+	d->m_names = aList;
+	}
+
+/**
+ * Method to set the image of the artists
+ * @param aImage The image of the artists
+ */
+void SmfArtists::setImage( const QImage &aImage )
+	{
+	d->m_image = aImage;
+	}
+
+/**
+ * Method to set the url of the artists
+ * @param aUrl The url of the artists
+ */
+void SmfArtists::setUrl( const QUrl &aUrl )
+	{
+	d->m_url = aUrl;
+	}
+	
+/**
+ * Method for Externalization. Writes the SmfArtists object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aArtists The SmfArtists object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfArtists &aArtists )
+	{
+	// Serialize d->m_image
+	aDataStream<<aArtists.d->m_image;
+	
+	// Serialize d->m_names
+	aDataStream<<aArtists.d->m_names;
+	
+	// Serialize d->m_url
+	aDataStream<<aArtists.d->m_url;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfArtists object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aArtists The SmfArtists object to be internalized
+ * @return reference to the stream
+ */
+ QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfArtists &aArtists)
+	{
+	// Deserialize d->m_image
+	aDataStream>>aArtists.d->m_image;
+	
+	// Deserialize d->m_names
+	aDataStream>>aArtists.d->m_names;
+	
+	// Deserialize d->m_url
+	aDataStream>>aArtists.d->m_url;
+	
+	return aDataStream;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfartists.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfArtists class represents the artists in a track or an album
+ *
+ */
+
+#ifndef SMFARTISTS_H_
+#define SMFARTISTS_H_
+
+#include <QImage>
+#include <QUrl>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <QMetaType>
+
+class SmfArtistsPrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The SmfArtists class represents the artists in a track or an album
+ */
+class SMFCOMMON_EXPORT SmfArtists
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfArtists( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfArtists( const SmfArtists &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 */
+	SmfArtists& operator=( const SmfArtists &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfArtists( );
+	
+	/**
+	 * Method to get the artists names
+	 * @return The list of artists
+	 */
+	QStringList names( ) const;
+	
+	/**
+	 * Method to get the image of the artists
+	 * @return The image of te artists
+	 */
+	QImage image( ) const;
+	
+	/**
+	 * Method to get the url of the artists
+	 * @return The url of the artists
+	 */
+	QUrl url( ) const;
+	
+	/**
+	 * Method to set the artists names
+	 * @param aList The list of artists names
+	 */
+	void setNames( const QStringList &aList );
+	
+	/**
+	 * Method to set the image of the artists
+	 * @param aImage The image of the artists
+	 */
+	void setImage( const QImage &aImage );
+	
+	/**
+	 * Method to set the url of the artists
+	 * @param aUrl The url of the artists
+	 */
+	void setUrl( const QUrl &aUrl );
+		
+private:
+	QSharedDataPointer<SmfArtistsPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfArtists &aArtists );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfArtists &aArtists );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfArtists object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aArtists The SmfArtists object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfArtists &aArtists );
+
+/**
+ * Method for Internalization. Reads a SmfArtists object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aArtists The SmfArtists object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfArtists &aArtists);
+
+// Make the class SmfArtists known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfArtists)
+Q_DECLARE_METATYPE(QList<SmfArtists>)
+
+#endif /* SMFARTISTS_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfartists_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfArtists class
+ *
+ */
+
+#ifndef SMFARTISTS_P_H_
+#define SMFARTISTS_P_H_
+
+#include <QImage>
+#include <QUrl>
+#include <QStringList>
+#include <QSharedData>
+
+class SmfArtistsPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfArtistsPrivate( ) { 
+		m_names.clear(); 
+		m_url.clear();
+	}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfArtistsPrivate( const SmfArtistsPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_names ( aOther.m_names ), 
+		m_image ( aOther.m_image ),
+		m_url ( aOther.m_url ) 	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfArtistsPrivate( )
+		{
+		}
+  
+	QStringList	m_names;	// artist names
+	QImage 		m_image;	// image
+	QUrl 		m_url;		// url
+};
+
+
+#endif /* SMFARTISTS_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfclientglobal.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ *
+ * Description:
+ * Client DLL macro and server executable name
+ *
+ */
+
+#ifndef SMFCLIENTGLOBAL_H_
+#define SMFCLIENTGLOBAL_H_
+
+#include <QtCore/QtGlobal>
+#include <QString>
+
+#ifdef Q_OS_SYMBIAN
+	_LIT(KSmfServerName,"smfserver");
+	_LIT(KSmfServerSemaphoreName,"smfserverSemaphore");
+	_LIT(KSmfServerFilename,"smfserver");
+#else
+	const QString KSmfServerName("smfserver");
+	const QString KSmfServerSemaphoreName("smfserverSemaphore");
+	const QString KSmfServerFilename("smfserver");
+#endif
+
+
+ #ifdef SMFCLIENT_LIB_EXPORT
+	 #define SMFCLIENT_EXPORT Q_DECL_EXPORT
+ #else
+	 #define SMFCLIENT_EXPORT Q_DECL_IMPORT
+ #endif
+	
+#ifdef SMFCOMMON_LIB_EXPORT
+	 #define SMFCOMMON_EXPORT Q_DECL_EXPORT
+#else
+	 #define SMFCOMMON_EXPORT Q_DECL_IMPORT
+#endif
+
+	
+/**
+ * To be designed later
+ */
+#define SMF_GETSERVICES(INTERFACE,INTERFACESTRING)
+	
+#endif /* SMFCLIENTDEFS_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfcomment.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,159 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The comment class represents a comment (on a picture or a music track etc)
+ *
+ */
+
+
+#include "smfcomment.h"
+#include "smfcomment_p.h"
+
+/**
+ * Constructor with default argument
+ */
+SmfComment::SmfComment()
+	{
+	d = new SmfCommentPrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfComment::SmfComment( const SmfComment &aOther )
+	:d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The current object reference
+ */
+SmfComment& SmfComment::operator=(const SmfComment &aOther)
+	{
+	d->m_text = aOther.d->m_text;
+	d->m_timeStamp = aOther.d->m_timeStamp;
+	d->m_commentId = aOther.d->m_commentId;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfComment::~SmfComment( )
+	{
+	}
+
+/**
+ * Method to get the comment text
+ * @return The comment text
+ */
+QString SmfComment::text( ) const
+	{
+	return d->m_text;
+	}
+
+/**
+ * Method to get the comment time stamp
+ * @return The comment time stamp value
+ */
+QDateTime SmfComment::timeStamp( ) const
+	{
+	return d->m_timeStamp;
+	}
+
+/**
+ * Method to get the id of the comment
+ * @return The ID value 
+ */
+QString SmfComment::id( ) const	
+	{
+	return d->m_commentId;
+	}
+
+/**
+ * Method to set the comment text
+ * @param aText The comment text to be set
+ */
+void SmfComment::setText( const QString &aText )
+	{
+	d->m_text = aText;
+	}
+
+/**
+ * Method to set the time stamp
+ * @param aDateTime The comment time stamp value to be set
+ */
+void SmfComment::setTimeStamp( const QDateTime &aDateTime )
+	{
+	d->m_timeStamp = aDateTime;
+	}
+
+/**
+ * Method to set the id of the comment
+ * @param aId The ID value to be set
+ */
+void SmfComment::setId( const QString &aId )
+	{
+	d->m_commentId = aId;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfComment object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aComment The SmfComment object to be externalized
+ * @return reference to the written stream
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfComment &aComment )
+	{
+	// Serialize d->m_text
+	aDataStream<<aComment.d->m_text;
+	
+	// Serialize d->m_timeStamp
+	aDataStream<<aComment.d->m_timeStamp;
+	
+	// Serialize d->m_commentId
+	aDataStream<<aComment.d->m_commentId;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfComment object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aComment The SmfComment object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfComment &aComment)
+	{
+	// Deserialize d->m_text
+	aDataStream>>aComment.d->m_text;
+	
+	// Deserialize d->m_timeStamp
+	aDataStream>>aComment.d->m_timeStamp;
+	
+	// Deserialize d->m_commentId
+	aDataStream>>aComment.d->m_commentId;
+	
+	return aDataStream;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfcomment.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,134 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The comment class represents a comment (on a picture or a music track etc)
+ *
+ */
+
+#ifndef SMFCOMMENT_H_
+#define SMFCOMMENT_H_
+
+#include <QDateTime>
+#include <qdatastream.h>
+#include <QSharedData>
+#include "smfclientglobal.h"
+#include <QMetaType>
+
+class SmfCommentPrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The comment class represents a comment (on a picture or a music track etc)
+ */
+class SMFCOMMON_EXPORT SmfComment
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfComment( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfComment( const SmfComment &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 * @return The current object reference
+	 */
+	SmfComment& operator=(const SmfComment &aOther);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfComment( );
+	
+	/**
+	 * Method to get the comment text
+	 * @return The comment text
+	 */
+	QString text( ) const;
+	
+	/**
+	 * Method to get the comment time stamp
+	 * @return The comment time stamp value
+	 */
+	QDateTime timeStamp( ) const;
+	
+	/**
+	 * Method to get the id of the comment
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to set the comment text
+	 * @param aText The comment text to be set
+	 */
+	void setText( const QString &aText );
+	
+	/**
+	 * Method to set the time stamp
+	 * @param aDateTime The comment time stamp value to be set
+	 */
+	void setTimeStamp( const QDateTime &aDateTime );
+	
+	/**
+	 * Method to set the id of the comment
+	 * @param aId The ID value to be set
+	 */
+	void setId( const QString &aId );
+	
+private:
+	QSharedDataPointer<SmfCommentPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfComment &aComment );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfComment &aComment );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfComment object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aComment The SmfComment object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfComment &aComment );
+
+/**
+ * Method for Internalization. Reads a SmfComment object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aComment The SmfComment object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfComment &aComment);
+
+
+// Make the class SmfComment known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfComment)
+Q_DECLARE_METATYPE(QList<SmfComment>)
+
+#endif /* SMFCOMMENT_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfcomment_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfComment class
+ *
+ */
+
+#ifndef SMFCOMMENT_P_H_
+#define SMFCOMMENT_P_H_
+
+#include <QDateTime>
+#include <QSharedData>
+
+class SmfCommentPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfCommentPrivate( ) { m_text.clear(); m_commentId.clear(); }
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfCommentPrivate( const SmfCommentPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_text ( aOther.m_text ), 
+		m_timeStamp ( aOther.m_timeStamp ),
+		m_commentId ( aOther.m_commentId ) 	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfCommentPrivate( )
+		{
+		}
+  
+	QString m_text;			// comment text
+	QDateTime m_timeStamp;	// comment time stamp
+	QString m_commentId;	// comment Id
+	
+};
+
+#endif /* SMFCOMMENT_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfcommon.pkg	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,30 @@
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"smfcommon"},(0xEE9F4502),1,0,0
+
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+; Manual PKG pre-rules from PRO files
+; Default HW/platform dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+ 
+; Default dependency to Qt libraries
+(0x2001E61C), 4, 6, 2, {"Qt"}
+; Default dependency to QtMobility libraries
+(0x2002AC89), 1, 0, 0, {"QtMobility"}
+
+; Executable and default resource files
+; DEPLOYMENT, shoudn't be hard coded
+"/S60/devices/S60_5th_Edition_SDK_v0.9/epoc32/release/$(PLATFORM)/$(TARGET)/smfcommon.dll"    - "!:\sys\bin\smfcommon.dll"
+
+; Manual PKG post-rules from PRO files
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfcommon.pro	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,135 @@
+TEMPLATE = lib
+TARGET = smfcommon
+QT += core \
+    gui \
+    network
+CONFIG += mobility
+MOBILITY += contacts \
+    location
+DEFINES += SMFCOMMON_LIB_EXPORT
+PUBLIC_HEADERS += \
+	smfactions.h \
+	smfalbum.h \
+	smfartists.h \
+	smfcomment.h \
+	smfcontact.h \
+	smfevent.h \
+	smfgroup.h \
+	smflocation.h \
+	smflyrics.h \
+	smfmusicfingerprint.h \
+	smfmusicprofile.h \
+	smfmusicrating.h \
+	smfpicture.h \
+	smfpicturealbum.h \
+	smfplaylist.h \
+	smfpluginutil.h \
+	smfpost.h \
+	smfprovider.h \
+	smfsubtitle.h \
+	smftrackinfo.h \
+	smfurl.h \
+	smfclientglobal.h \
+	smfglobal.h \
+	smfobserver.h
+PRIVATE_HEADERS += \
+	smfactions_p.h \
+	smfalbum_p.h \
+	smfartists_p.h \
+	smfcomment_p.h \
+	smfcontact_p.h \
+	smfevent_p.h \
+	smfgroup_p.h \
+	smflocation_p.h \
+	smflyrics_p.h \
+	smfmusicfingerprint_p.h \
+	smfmusicprofile_p.h \
+	smfmusicrating_p.h \
+	smfpicture_p.h \
+	smfpicturealbum_p.h \
+	smfplaylist_p.h \
+	smfpost_p.h \
+	smfsubtitle_p.h \
+	smftrackinfo_p.h \
+	smfurl_p.h \
+	smfobserver.h
+SOURCES += \
+	smfactions.cpp \
+	smfalbum.cpp \
+	smfartists.cpp \
+	smfcomment.cpp \
+	smfcontact.cpp \
+	smfevent.cpp \
+	smfgroup.cpp \
+	smflocation.cpp \
+	smflyrics.cpp \
+	smfmusicfingerprint.cpp \
+	smfmusicprofile.cpp \
+	smfmusicrating.cpp \
+	smfpicture.cpp \
+	smfpicturealbum.cpp \
+	smfplaylist.cpp \
+	smfpluginutil.cpp \
+	smfpost.cpp \
+	smfprovider.cpp \
+	smfsubtitle.cpp \
+	smftrackinfo.cpp \
+	smfurl.cpp    
+HEADERS += $$PUBLIC_HEADERS \
+    $$PRIVATE_HEADERS
+symbian: { 
+    TARGET.UID3 = 0xEE9F4502
+    TARGET.CAPABILITY = NetworkServices \
+    	ReadUserData \
+        WriteUserData \
+        LocalServices \
+        UserEnvironment \
+        ReadDeviceData \
+        WriteDeviceData
+    TARGET.EPOCALLOWDLLDATA = 1
+    LIBS += -lqjson.dll -lsmfcredmgrclient
+    
+   	BLD_INF_RULES.prj_exports += smfclientglobal.h
+	BLD_INF_RULES.prj_exports += smfglobal.h
+	BLD_INF_RULES.prj_exports += smfobserver.h
+	BLD_INF_RULES.prj_exports += smfactions.h
+	BLD_INF_RULES.prj_exports += smfactions_p.h
+	BLD_INF_RULES.prj_exports += smfalbum.h
+	BLD_INF_RULES.prj_exports += smfalbum_p.h
+	BLD_INF_RULES.prj_exports += smfartists.h
+	BLD_INF_RULES.prj_exports += smfartists_p.h
+	BLD_INF_RULES.prj_exports += smfcomment.h
+	BLD_INF_RULES.prj_exports += smfcomment_p.h
+	BLD_INF_RULES.prj_exports += smfcontact.h
+	BLD_INF_RULES.prj_exports += smfcontact_p.h
+	BLD_INF_RULES.prj_exports += smfevent.h
+	BLD_INF_RULES.prj_exports += smfevent_p.h
+	BLD_INF_RULES.prj_exports += smfgroup.h
+	BLD_INF_RULES.prj_exports += smfgroup_p.h
+	BLD_INF_RULES.prj_exports += smflocation.h
+	BLD_INF_RULES.prj_exports += smflocation_p.h
+	BLD_INF_RULES.prj_exports += smflyrics.h
+	BLD_INF_RULES.prj_exports += smflyrics_p.h
+	BLD_INF_RULES.prj_exports += smfmusicfingerprint.h
+	BLD_INF_RULES.prj_exports += smfmusicfingerprint_p.h
+	BLD_INF_RULES.prj_exports += smfmusicprofile.h
+	BLD_INF_RULES.prj_exports += smfmusicprofile_p.h
+	BLD_INF_RULES.prj_exports += smfmusicrating.h
+	BLD_INF_RULES.prj_exports += smfmusicrating_p.h
+	BLD_INF_RULES.prj_exports += smfpicture.h
+	BLD_INF_RULES.prj_exports += smfpicture_p.h
+	BLD_INF_RULES.prj_exports += smfpicturealbum.h
+	BLD_INF_RULES.prj_exports += smfpicturealbum_p.h
+	BLD_INF_RULES.prj_exports += smfplaylist.h
+	BLD_INF_RULES.prj_exports += smfplaylist_p.h
+	BLD_INF_RULES.prj_exports += smfpluginutil.h
+	BLD_INF_RULES.prj_exports += smfpost.h
+	BLD_INF_RULES.prj_exports += smfpost_p.h
+	BLD_INF_RULES.prj_exports += smfprovider.h
+	BLD_INF_RULES.prj_exports += smfsubtitle.h
+	BLD_INF_RULES.prj_exports += smfsubtitle_p.h
+	BLD_INF_RULES.prj_exports += smftrackinfo.h
+	BLD_INF_RULES.prj_exports += smftrackinfo_p.h
+	BLD_INF_RULES.prj_exports += smfurl.h
+	BLD_INF_RULES.prj_exports += smfurl_p.h
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfcontact.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,1108 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The contact class represents a social contact
+ * Note: This class has dependencies on QtMobility project
+ *
+ */
+
+#include <QFile>
+#include <QTextStream>
+
+#include "smfcontact.h"
+
+/**
+ * Constructor with default argument
+ * @param aParent The parent object
+ */
+SmfContact::SmfContact( QObject *aParent)
+	{
+	Q_UNUSED(aParent);
+	d = new SmfContactPrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfContact::SmfContact( const SmfContact &aOther ): d (aOther.d)
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfContact& SmfContact::operator=( const SmfContact &aOther )
+	{
+	d->m_details = aOther.d->m_details;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfContact::~SmfContact( )
+	{
+	}
+
+/**
+ * Method to get the available sub fields for contacts.
+ * The following are the available sub types of a contact
+ *   QtMobility::QContactAddress		Address;
+ *   QtMobility::QContactAnniversary	Anniversary;
+ *   QtMobility::QContactAvatar			Avatar;
+ *   QtMobility::QContactBirthday		Birthday;
+ *   QtMobility::QContactId				ContactId;
+ *   QtMobility::QContactEmailAddress	EmailAddress;
+ *   QtMobility::QContactGender			Gender;
+ *   QtMobility::QContactGeoLocation	Geolocation;
+ *   QtMobility::QContactGuid			Guid;
+ *   QtMobility::QContactName			Name;
+ *   QtMobility::QContactNickname		Nickname;
+ *   QtMobility::QContactNote			Note;
+ *   QtMobility::QContactOnlineAccount	OnlineAccount;
+ *   QtMobility::QContactOrganization	Organization;
+ *   QtMobility::QContactPhoneNumber	PhoneNumber;
+ *   QtMobility::QContactPresence		Presence;
+ *   QtMobility::QContactThumbnail		Thumbnail;
+ *   QtMobility::QContactTimestamp		Timestamp;
+ *   QtMobility::QContactType			Type;
+ *   QtMobility::QContactUrl			Url;
+ * @return The Available sub fields for this contact
+ */
+QStringList SmfContact::subTypes( ) const
+	{
+	QStringList list = d->m_details.uniqueKeys();
+	return list;
+	}
+
+/**
+ * Method to convert an SmfContact to a QContact
+ * Changes made to the returned QContact will not be reflected 
+ * in its parent SmfContact object
+ * @param aContact QContact corresponding to SmfContact 
+ */
+void SmfContact::convert( QContact &aContact ) const
+	{
+// TODO:-
+	Q_UNUSED(aContact);
+	}
+
+/**
+ * Method to get the value of a sub field for this contact
+ * @param aSubType The sub field type 
+ * @return The value of the sub field subType
+ * @see subTypes()
+ */
+QVariant SmfContact::value( const QString& aSubType ) const
+	{
+	if(d->m_details.contains(aSubType))
+		return d->m_details.value(aSubType);
+	else
+		return QString();
+	}
+
+/**
+ * Method to set value for a subtype
+ * @param aSubType The subtype string
+ * @param value Thhe value to be set for the subtype
+ */
+void SmfContact::setValue(const QString& aSubType,QVariant& value)
+	{
+	d->m_details.insert(aSubType,value);
+	}
+
+/**
+ * Method for Externalization. Writes the SmfContact object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aContact The SmfContact object to be externalized
+ * @return reference to the written stream
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfContact& aContact )
+	{
+	QContactAddress address = aContact.value("Address").value<QContactAddress>();
+	aDataStream<<address;
+	
+	QContactAnniversary anniver = aContact.value("Anniversary").value<QContactAnniversary>();
+	aDataStream<<anniver;
+	
+	QContactAvatar avatar = aContact.value("Avatar").value<QContactAvatar>();
+	aDataStream<<avatar;
+	
+	QContactBirthday bday = aContact.value("Birthday").value<QContactBirthday>();
+	aDataStream<<bday;
+	
+	QContactId contactId = aContact.value("ContactId").value<QContactId>();
+	aDataStream<<contactId;
+	
+	QContactEmailAddress email = aContact.value("EmailAddress").value<QContactEmailAddress>();
+	aDataStream<<email;
+	
+	QContactGender gender = aContact.value("Gender").value<QContactGender>();
+	aDataStream<<gender;
+	
+	QContactGeoLocation geoloc = aContact.value("Geolocation").value<QContactGeoLocation>();
+	aDataStream<<geoloc;
+	
+	QContactGuid guid = aContact.value("Guid").value<QContactGuid>();
+	aDataStream<<guid;
+	
+	QContactName name = aContact.value("Name").value<QContactName>();
+	aDataStream<<name;
+	
+	QContactNickname nickname = aContact.value("Nickname").value<QContactNickname>();
+	aDataStream<<nickname;
+	
+	QContactNote note = aContact.value("Note").value<QContactNote>();
+	aDataStream<<note;
+	
+	QContactOnlineAccount account = aContact.value("OnlineAccount").value<QContactOnlineAccount>();
+	aDataStream<<account;
+	
+	QContactOrganization org = aContact.value("Organization").value<QContactOrganization>();
+	aDataStream<<org;
+	
+	QContactPhoneNumber number = aContact.value("PhoneNumber").value<QContactPhoneNumber>();
+	aDataStream<<number;
+	
+	QContactPresence presence = aContact.value("Presence").value<QContactPresence>();
+	aDataStream<<presence;
+	
+	QContactThumbnail thumbnail = aContact.value("Thumbnail").value<QContactThumbnail>();
+	aDataStream<<thumbnail;
+	
+	QContactTimestamp time = aContact.value("Timestamp").value<QContactTimestamp>();
+	aDataStream<<time;
+	
+	QContactType type = aContact.value("Type").value<QContactType>();
+	aDataStream<<type;
+	
+	QContactUrl url = aContact.value("Url").value<QContactUrl>();
+	aDataStream<<url;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfContact object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aContact The SmfContact object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfContact& aContact )
+	{
+	QContactAddress address;
+	aDataStream>>address;
+	QVariant var1 = QVariant::fromValue(address);
+	aContact.setValue("Address",var1);
+	
+	QContactAnniversary anniver;
+	aDataStream>>anniver;
+	QVariant var2 = QVariant::fromValue(anniver);
+	aContact.setValue("Anniversary",var2);
+	
+	QContactAvatar avatar;
+	aDataStream>>avatar;
+	QVariant var3 = QVariant::fromValue(avatar);
+	aContact.setValue("Avatar",var3);
+	
+	QContactBirthday bday;
+	aDataStream>>bday;
+	QVariant var4 = QVariant::fromValue(bday);
+	aContact.setValue("Birthday",var4);
+	
+	QContactId id;
+	aDataStream>>id;
+	QVariant var5 = QVariant::fromValue(id);
+	aContact.setValue("ContactId",var5);
+	
+	QContactEmailAddress email;
+	aDataStream>>email;
+	QVariant var6 = QVariant::fromValue(email);
+	aContact.setValue("EmailAddress",var6);
+	
+	QContactGender gender;
+	aDataStream>>gender;
+	QVariant var7 = QVariant::fromValue(gender);
+	aContact.setValue("Gender",var7);
+	
+	QContactGeoLocation geo;
+	aDataStream>>geo;
+	QVariant var8 = QVariant::fromValue(geo);
+	aContact.setValue("Geolocation",var8);
+	
+	QContactGuid guid;
+	aDataStream>>guid;
+	QVariant var9 = QVariant::fromValue(guid);
+	aContact.setValue("Guid",var9);
+	
+	QContactName name1;
+	aDataStream>>name1;
+	QVariant var10 = QVariant::fromValue(name1);
+	aContact.setValue("Name",var10);
+	
+	QContactNickname nickname;
+	aDataStream>>nickname;
+	QVariant var11 = QVariant::fromValue(nickname);
+	aContact.setValue("Nickname",var11);
+	
+	QContactNote note;
+	aDataStream>>note;
+	QVariant var12 = QVariant::fromValue(note);
+	aContact.setValue("Note",var12);
+	
+	QContactOnlineAccount account;
+	aDataStream>>account;
+	QVariant var13 = QVariant::fromValue(account);
+	aContact.setValue("OnlineAccount",var13);
+	
+	QContactOrganization org;
+	aDataStream>>org;
+	QVariant var14 = QVariant::fromValue(org);
+	aContact.setValue("Organization",var14);
+	
+	QContactPhoneNumber number;
+	aDataStream>>number;
+	QVariant var15 = QVariant::fromValue(number);
+	aContact.setValue("PhoneNumber",var15);
+	
+	QContactPresence presence;
+	aDataStream>>presence;
+	QVariant var16 = QVariant::fromValue(presence);
+	aContact.setValue("Presence",var16);
+	
+	QContactThumbnail thumbnail;
+	aDataStream>>thumbnail;
+	QVariant var17 = QVariant::fromValue(thumbnail);
+	aContact.setValue("Thumbnail",var17);
+	
+	QContactTimestamp time;
+	aDataStream>>time;
+	QVariant var18 = QVariant::fromValue(time);
+	aContact.setValue("Timestamp",var18);
+	
+	QContactType type;
+	aDataStream>>type;
+	QVariant var19 = QVariant::fromValue(type);
+	aContact.setValue("Type",var19);
+	
+	QContactUrl url;
+	aDataStream>>url;
+	QVariant var20 = QVariant::fromValue(url);
+	aContact.setValue("Url",var20);
+	
+	return aDataStream;
+	}
+
+
+
+
+/**
+ * Serialization support for QtMobility::QContactAddress
+ */
+QDataStream& operator<<( QDataStream &aDataStream, 
+		const QContactAddress &aAddress )
+	{
+	aDataStream<<aAddress.country();
+	aDataStream<<aAddress.locality();
+	aDataStream<<aAddress.postOfficeBox();
+	aDataStream<<aAddress.postcode();
+	aDataStream<<aAddress.region();
+	aDataStream<<aAddress.street();
+	aDataStream<<aAddress.subTypes();
+
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactAddress
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactAddress &aAddress )
+	{
+	QString str;
+	
+	// First one to be deserialized is country
+	aDataStream>>str;
+	aAddress.setCountry(str);
+
+	// Next one to be deserialized is locality
+	str.clear();
+	aDataStream>>str;
+	aAddress.setLocality(str);
+
+	// Next one to be deserialized is postOfficeBox
+	str.clear();
+	aDataStream>>str;
+	aAddress.setPostOfficeBox(str);
+	
+	// Next one to be deserialized is postCode
+	str.clear();
+	aDataStream>>str;
+	aAddress.setPostcode(str);
+	
+	// Next one to be deserialized is region
+	str.clear();
+	aDataStream>>str;
+	aAddress.setRegion(str);
+	
+	// Next one to be deserialized is street
+	str.clear();
+	aDataStream>>str;
+	aAddress.setStreet(str);
+	
+	// Next one to be deserialized is subtypes
+	QStringList list;
+	list.clear();
+	aDataStream>>list;
+	aAddress.setSubTypes(list);
+	
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactAnniversary
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+		const QContactAnniversary &aAnniversary )
+	{
+	aDataStream<<aAnniversary.calendarId();
+	aDataStream<<aAnniversary.event();
+	aDataStream<<aAnniversary.originalDate();
+	aDataStream<<aAnniversary.subType();
+
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactAnniversary
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactAnniversary &aAnniversary)
+	{
+	QString str;
+	QDate date;
+	
+	// First one to be deserialized is calendarId
+	aDataStream>>str;
+	aAnniversary.setCalendarId(str);
+
+	// Next one to be deserialized is event
+	str.clear();
+	aDataStream>>str;
+	aAnniversary.setEvent(str);
+
+	// Next one to be deserialized is originalDate
+	aDataStream>>date;
+	aAnniversary.setOriginalDate(date);
+	
+	// Next one to be deserialized is subType
+	str.clear();
+	aDataStream>>str;
+	aAnniversary.setSubType(str);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactAvatar
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactAvatar &aAvatar )
+	{
+	//TODO:- QContactAvatar derives from QContactDetail,so internalization/externalization
+	//for the same should be provided
+	
+	//Qt mobility introduces API compatibility break
+#ifdef OLDER_QT_MOBILITY
+	aDataStream<<aAvatar.avatar();
+
+#else
+	aDataStream<<aAvatar.imageUrl();
+	aDataStream<<aAvatar.videoUrl();
+#endif
+	
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactAvatar
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+	QContactAvatar &aAvatar)
+	{
+#ifdef OLDER_QT_MOBILITY
+	QString avatarPath;
+	aDataStream>>avatarPath;
+	aAvatar.setAvatar(avatarPath);
+#else
+	QUrl url;
+	aDataStream>>url;
+	aAvatar.setImageUrl(url);
+	
+	url.clear();
+	aDataStream>>url;
+	aAvatar.setVideoUrl(url);
+#endif
+	
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactBirthday
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactBirthday &aBirthday )
+	{
+	aDataStream<<aBirthday.date();
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactBirthday
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactBirthday &aBirthday)
+	{
+	QDate date;
+	aDataStream>>date;
+	aBirthday.setDate(date);
+
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactId
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactId &aContactId )
+	{
+	aDataStream<<aContactId.localId();
+	aDataStream<<aContactId.managerUri();
+
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactId
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactId &aContactId)
+	{
+	QContactLocalId localId;
+	QString str;
+	
+	// First one to be deserialized is localId
+	aDataStream>>localId;
+	aContactId.setLocalId(localId);
+
+	// Next one to be deserialized is managerUri
+	aDataStream>>str;
+	aContactId.setManagerUri(str);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactEmailAddress
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactEmailAddress &aEMail )
+	{
+	aDataStream<<aEMail.emailAddress();
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactEmailAddress
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactEmailAddress &aEMail)
+	{
+	QString str;
+	aDataStream>>str;
+	aEMail.setEmailAddress(str);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactGender
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactGender &aGender )
+	{
+	aDataStream<<aGender.gender();
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactGender
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactGender &aGender)
+	{
+	QString str;
+	aDataStream>>str;
+	aGender.setGender(str);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactGeoLocation
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactGeoLocation &aGeolocation )
+	{
+	aDataStream<<aGeolocation.accuracy();
+	aDataStream<<aGeolocation.altitude();
+	aDataStream<<aGeolocation.altitudeAccuracy();
+	aDataStream<<aGeolocation.heading();
+	aDataStream<<aGeolocation.label();
+	aDataStream<<aGeolocation.latitude();
+	aDataStream<<aGeolocation.longitude();
+	aDataStream<<aGeolocation.speed();
+	aDataStream<<aGeolocation.timestamp();
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactGeoLocation
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactGeoLocation &aGeolocation)
+	{
+	double val;
+	QString str;
+	QDateTime date;
+	
+	// First one to be deserialized is accuracy
+	val = 0;
+	aDataStream>>val;
+	aGeolocation.setAccuracy(val);
+
+	// Next one to be deserialized is altitude
+	val = 0;
+	aDataStream>>val;
+	aGeolocation.setAltitude(val);
+
+	// Next one to be deserialized is altitudeAccuracy
+	val = 0;
+	aDataStream>>val;
+	aGeolocation.setAltitudeAccuracy(val);
+	
+	// Next one to be deserialized is heading
+	val = 0;
+	aDataStream>>val;
+	aGeolocation.setHeading(val);
+	
+	// First one to be deserialized is label
+	aDataStream>>str;
+	aGeolocation.setLabel(str);
+
+	// Next one to be deserialized is latitude
+	val = 0;
+	aDataStream>>val;
+	aGeolocation.setLatitude(val);
+
+	// Next one to be deserialized is longitude
+	val = 0;
+	aDataStream>>val;
+	aGeolocation.setLongitude(val);
+	
+	// Next one to be deserialized is speed
+	val = 0;
+	aDataStream>>val;
+	aGeolocation.setSpeed(val);
+	
+	// Next one to be deserialized is timestamp
+	aDataStream>>date;
+	aGeolocation.setTimestamp(date);
+		
+	return aDataStream;
+	}
+
+/**
+ * Serialization support for QtMobility::QContactGuid
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactGuid &aGuid )
+	{
+	aDataStream<<aGuid.guid();
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactGuid
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactGuid &aGuid)
+	{
+	QString str;
+	aDataStream>>str;
+	aGuid.setGuid(str);
+	
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactName
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+		const QContactName &aContact )
+	{
+	//Qt mobility introduces API compatibility break
+#ifdef OLDER_QT_MOBILITY
+	aDataStream<<aContact.first();
+	aDataStream<<aContact.last();
+#else
+	aDataStream<<aContact.customLabel();
+	aDataStream<<aContact.firstName();
+	aDataStream<<aContact.lastName();
+	aDataStream<<aContact.middleName();
+	aDataStream<<aContact.prefix();
+	aDataStream<<aContact.suffix();
+#endif
+	
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactName
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactName &aContact )
+	{
+	QString str;
+	
+	// First one to be deserialized is customlabel
+	str.clear();
+	aDataStream>>str;
+	aContact.setCustomLabel(str);
+	
+	// Next one to be deserialized is firstname
+	str.clear();
+	aDataStream>>str;
+#ifdef OLDER_QT_MOBILITY
+	aContact.setFirst(str);
+#else
+	aContact.setFirstName(str);
+#endif
+
+	// Next one to be deserialized is lastName
+	str.clear();
+	aDataStream>>str;
+#ifdef OLDER_QT_MOBILITY
+	aContact.setLast(str);
+#else
+	aContact.setLastName(str);
+#endif
+	
+
+	
+	// Next one to be deserialized is middlename
+	str.clear();
+	aDataStream>>str;
+	aContact.setMiddleName(str);
+	
+	// Next one to be deserialized is prefix
+	str.clear();
+	aDataStream>>str;
+	aContact.setPrefix(str);
+	
+	// Next one to be deserialized is suffix
+	str.clear();
+	aDataStream>>str;
+	aContact.setSuffix(str);
+	
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactNickname
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactNickname &aNickname )
+	{
+	aDataStream<<aNickname.nickname();
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactNickname
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactNickname &aNickname)
+	{
+	QString str;
+	aDataStream>>str;
+	aNickname.setNickname(str);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactNote
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactNote &aNote )
+	{
+	aDataStream<<aNote.note();
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactNote
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactNote &aNote)
+	{
+	QString str;
+	aDataStream>>str;
+	aNote.setNote(str);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactOnlineAccount
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactOnlineAccount &aOnlineAccount )
+	{
+	aDataStream<<aOnlineAccount.accountUri();
+	aDataStream<<aOnlineAccount.capabilities();
+	aDataStream<<aOnlineAccount.serviceProvider();
+	aDataStream<<aOnlineAccount.subTypes();
+
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactOnlineAccount
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactOnlineAccount &aOnlineAccount)
+	{
+	QString str;
+	QStringList list;
+	
+	// First one to be deserialized is accountUri
+	aDataStream>>str;
+	aOnlineAccount.setAccountUri(str);
+
+	// Next one to be deserialized is capabilities
+	aDataStream>>list;
+	aOnlineAccount.setCapabilities(list);
+
+	// Next one to be deserialized is serviceProvider
+	str.clear();
+	aDataStream>>str;
+	aOnlineAccount.setServiceProvider(str);
+	
+	// Next one to be deserialized is subTypes
+	list.clear();
+	aDataStream>>list;
+	aOnlineAccount.setSubTypes(list);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactOrganization
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactOrganization &aOrganization )
+	{
+	aDataStream<<aOrganization.assistantName();
+	aDataStream<<aOrganization.department();
+	aDataStream<<aOrganization.location();
+	aDataStream<<aOrganization.logoUrl();
+	aDataStream<<aOrganization.name();
+	aDataStream<<aOrganization.role();
+	aDataStream<<aOrganization.title();
+
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactOrganization
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactOrganization &aOrganization )
+	{
+	QString str;
+	QStringList list;
+	QUrl url;
+	
+	// First one to be deserialized is assistantName
+	aDataStream>>str;
+	aOrganization.setAssistantName(str);
+
+	// Next one to be deserialized is department
+	aDataStream>>list;
+	aOrganization.setDepartment(list);
+
+	// Next one to be deserialized is location
+	str.clear();
+	aDataStream>>str;
+	aOrganization.setLocation(str);
+	
+	// Next one to be deserialized is logoUrl
+	aDataStream>>url;
+	aOrganization.setLogoUrl(url);
+	
+	// Next one to be deserialized is name
+	str.clear();
+	aDataStream>>str;
+	aOrganization.setName(str);
+
+	// Next one to be deserialized is role
+	str.clear();
+	aDataStream>>str;
+	aOrganization.setRole(str);
+	
+	// Next one to be deserialized is title
+	str.clear();
+	aDataStream>>str;
+	aOrganization.setTitle(str);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactPhoneNumber
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactPhoneNumber &aPhoneNumber )
+	{
+	aDataStream<<aPhoneNumber.number();
+	aDataStream<<aPhoneNumber.subTypes();
+
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactPhoneNumber
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactPhoneNumber &aPhoneNumber )
+	{
+	QString str;
+	QStringList list;
+	
+	// First one to be deserialized is number
+	aDataStream>>str;
+	aPhoneNumber.setNumber(str);
+	
+	// Next one to be deserialized is subTypes
+	aDataStream>>list;
+	aPhoneNumber.setSubTypes(list);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactPresence
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactPresence &aPresence )
+	{
+	aDataStream<<aPresence.customMessage();
+	aDataStream<<aPresence.nickname();
+	aDataStream<<aPresence.presenceState();
+	aDataStream<<aPresence.presenceStateImageUrl();
+	aDataStream<<aPresence.presenceStateText();
+	aDataStream<<aPresence.timestamp();
+
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactPresence
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactPresence &aPresence )
+	{
+	QString str;
+	QUrl url;
+	QDateTime date;
+	
+	// First one to be deserialized is customMessage
+	aDataStream>>str;
+	aPresence.setCustomMessage(str);
+	
+	// Next one to be deserialized is nickname
+	str.clear();
+	aDataStream>>str;
+	aPresence.setNickname(str);
+	
+	// Next one to be deserialized is presenceState
+	int val;
+	aDataStream>>val;
+	QContactPresence::PresenceState state = (QContactPresence::PresenceState)val;
+	aPresence.setPresenceState(state);
+	
+	// Next one to be deserialized is presenceStateImageUrl
+	aDataStream>>url;
+	aPresence.setPresenceStateImageUrl(url);
+	
+	// Next one to be deserialized is presenceStateText
+	str.clear();
+	aDataStream>>str;
+	aPresence.setPresenceStateText(str);
+	
+	// Next one to be deserialized is timestamp
+	aDataStream>>date;
+	aPresence.setTimestamp(date);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactThumbnail
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactThumbnail &aThumbnail )
+	{
+	aDataStream<<aThumbnail.thumbnail();
+
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactThumbnail
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactThumbnail &aThumbnail )
+	{
+	QImage image;
+	aDataStream>>image;
+	aThumbnail.setThumbnail(image);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactTimestamp
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactTimestamp &aTimestamp )
+	{
+	aDataStream<<aTimestamp.created();
+	aDataStream<<aTimestamp.lastModified();
+
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactTimestamp
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactTimestamp &aTimestamp )
+	{
+	QDateTime date1, date2;
+	
+	// First one to be deserialized is created
+	aDataStream>>date1;
+	aTimestamp.setCreated(date1);
+	
+	// Next one to be deserialized is lastModified
+	aDataStream>>date2;
+	aTimestamp.setLastModified(date2);
+		
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactType
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactType &aType )
+	{
+	aDataStream<<aType.type();
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactType
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactType &aType )
+	{
+	QString str;
+	aDataStream>>str;
+	aType.setType(str);
+	
+	return aDataStream;
+	}
+
+
+/**
+ * Serialization support for QtMobility::QContactUrl
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactUrl &aUrl )
+	{
+	aDataStream<<aUrl.subType();
+	aDataStream<<aUrl.url();
+
+	return aDataStream;
+	}
+
+/**
+ * Deserialization support for QtMobility::QContactUrl
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactUrl &aUrl)
+	{
+	QString str;
+	
+	// First one to be deserialized is subType
+	aDataStream>>str;
+	aUrl.setSubType(str);
+	
+	// Next one to be deserialized is url
+	str.clear();
+	aDataStream>>str;
+	aUrl.setUrl(str);
+		
+	return aDataStream;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfcontact.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,309 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The contact class represents a social contact
+ * Note: This class has dependencies on QtMobility project
+ *
+ */
+
+#ifndef SMFCONTACT_H_
+#define SMFCONTACT_H_
+
+#include <qtcontacts.h>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <QVariant>
+
+#include "smfclientglobal.h"
+#include "smfcontact_p.h"
+
+using namespace QtMobility;
+
+/**
+ * Max size for one SmfContact
+ */
+const int MaxSmfContactSize = 1000;
+
+/**
+ * @ingroup smf_common_group
+ * The contact class represents a social contact
+ * 
+ * Note: This class has dependencies on QtMobility project
+ */
+class  SMFCOMMON_EXPORT SmfContact
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 * @param aParent The parent object
+	 */
+	SmfContact( QObject *aParent = 0 );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfContact( const SmfContact &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 * @return The target reference value
+	 */
+	SmfContact& operator=( const SmfContact &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfContact( );
+	
+public slots:
+	/**
+	 * Method to get the available sub fields for contacts.
+	 * The following are the available sub types of a contact
+	 *   QtMobility::QContactAddress		Address;
+	 *   QtMobility::QContactAnniversary	Anniversary;
+	 *   QtMobility::QContactAvatar			Avatar;
+	 *   QtMobility::QContactBirthday		Birthday;
+	 *   QtMobility::QContactId				ContactId;
+	 *   QtMobility::QContactEmailAddress	EmailAddress;
+	 *   QtMobility::QContactGender			Gender;
+	 *   QtMobility::QContactGeoLocation	Geolocation;
+	 *   QtMobility::QContactGuid			Guid;
+	 *   QtMobility::QContactName			Name;
+	 *   QtMobility::QContactNickname		Nickname;
+	 *   QtMobility::QContactNote			Note;
+	 *   QtMobility::QContactOnlineAccount	OnlineAccount;
+	 *   QtMobility::QContactOrganization	Organization;
+	 *   QtMobility::QContactPhoneNumber	PhoneNumber;
+	 *   QtMobility::QContactPresence		Presence;
+	 *   QtMobility::QContactThumbnail		Thumbnail;
+	 *   QtMobility::QContactTimestamp		Timestamp;
+	 *   QtMobility::QContactType			Type;
+	 *   QtMobility::QContactUrl			Url;
+	 * @return The Available sub fields for this contact
+	 */
+	QStringList subTypes( ) const;
+	
+	/**
+	 * Method to convert an SmfContact to a QContact
+	 * Changes made to the returned QContact will not be reflected 
+	 * in its parent SmfContact object
+	 * @param aContact QContact corresponding to SmfContact 
+	 */
+	void convert( QContact &aContact ) const;
+	
+	/**
+	 * Method to get the value of a sub field for this contact
+	 * @param aSubType The sub field type 
+	 * @return The value of the sub field subType
+	 * @see subTypes()
+	 */
+	QVariant value( const QString& aSubType ) const;
+	
+	/**
+	 * Method to set value for a subtype
+	 * @param aSubType The subtype string
+	 * @param value Thhe value to be set for the subtype
+	 */
+	void setValue(const QString& aSubType,QVariant& value);
+
+private:
+	QSharedDataPointer<SmfContactPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfContact &aContact );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfContact &aContact );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfContact object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aContact The SmfContact object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfContact &aContact );
+
+/**
+ * Method for Internalization. Reads a SmfContact object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aContact The SmfContact object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfContact &aContact );
+
+
+typedef QList<SmfContact> SmfContactList;
+
+
+/**
+ * Serialization support for QtMobility QContact classes
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactAddress &aAddress );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactAddress &aAddress );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactAnniversary &aAnniversary );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactAnniversary &aAnniversary );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactAvatar &aAvatar );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactAvatar &aAvatar );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactBirthday &aBirthday );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactBirthday &aBirthday );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactEmailAddress &aEMail );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactEmailAddress &aEMail );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactGender &aGender );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactGender &aGender );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactGeoLocation &aGeolocation );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactGeoLocation &aGeolocation );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactGuid &aGuid );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactGuid &aGuid );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactId &aContactId );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactId &aContactId );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactName &aName );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactName &aName );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactNickname &aNickname );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactNickname &aNickname );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactNote &aNote );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactNote &aNote );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactOnlineAccount &aOnlineAccount );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactOnlineAccount &aOnlineAccount );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactOrganization &aOrganization );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactOrganization &aOrganization );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactPhoneNumber &aPhoneNumber );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactPhoneNumber &aPhoneNumber );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactPresence &aPresence );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactPresence &aPresence );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactThumbnail &aThumbnail );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactThumbnail &aThumbnail );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactTimestamp &aTimestamp );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactTimestamp &aTimestamp );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactType &aType );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactType &aType );
+
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+	const QContactUrl &aUrl );
+
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		QContactUrl &aUrl );
+
+
+// Make the class SmfContact known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfContact)
+Q_DECLARE_METATYPE(QList<SmfContact>)
+
+//make qt mobility related classes known to moc
+Q_DECLARE_METATYPE(QContactAddress)
+Q_DECLARE_METATYPE(QContactAnniversary)
+Q_DECLARE_METATYPE(QContactAvatar)
+Q_DECLARE_METATYPE(QContactBirthday)
+Q_DECLARE_METATYPE(QContactId)
+Q_DECLARE_METATYPE(QContactEmailAddress)
+Q_DECLARE_METATYPE(QContactGender)
+Q_DECLARE_METATYPE(QContactGeoLocation)
+Q_DECLARE_METATYPE(QContactGuid)
+Q_DECLARE_METATYPE(QContactName)
+Q_DECLARE_METATYPE(QContactNickname)
+Q_DECLARE_METATYPE(QContactNote)
+Q_DECLARE_METATYPE(QContactOnlineAccount)
+Q_DECLARE_METATYPE(QContactOrganization)
+Q_DECLARE_METATYPE(QContactPhoneNumber)
+Q_DECLARE_METATYPE(QContactPresence)
+Q_DECLARE_METATYPE(QContactThumbnail)
+Q_DECLARE_METATYPE(QContactTimestamp)
+Q_DECLARE_METATYPE(QContactType)
+Q_DECLARE_METATYPE(QContactUrl)
+
+#endif /* SMFCONTACT_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfcontact_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfContact class
+ *
+ */
+
+#ifndef SMFCONTACT_P_H_
+#define SMFCONTACT_P_H_
+
+#include <QSharedData>
+
+using namespace QtMobility;
+
+class SmfContactPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfContactPrivate( ) { m_details.clear(); }
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfContactPrivate( const SmfContactPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_details ( aOther.m_details )	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfContactPrivate( ){};
+  
+	QVariantMap	m_details;// contact details
+	
+};
+
+#endif /* SMFCONTACT_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfevent.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,259 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfEvent class represents an event
+ *
+ */
+
+#include <smfevent.h>
+#include <smfevent_p.h>
+
+/**
+ * Constructor with default argument
+ */
+SmfEvent::SmfEvent( )
+	{
+	d = new SmfEventPrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfEvent::SmfEvent( const SmfEvent &aOther )
+	:d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfEvent& SmfEvent::operator=( const SmfEvent &aOther )
+	{
+	d->m_name = aOther.d->m_name;
+	d->m_dateTime = aOther.d->m_dateTime;
+	d->m_duration = aOther.d->m_duration;
+	d->m_artists = aOther.d->m_artists;
+	d->m_venue = aOther.d->m_venue;
+	d->m_url = aOther.d->m_url;
+	d->m_eventId = aOther.d->m_eventId;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfEvent::~SmfEvent( )
+	{
+	}
+
+/**
+ * Method to get the event name
+ * @return The event name
+ */
+QString SmfEvent::title( ) const
+	{
+	return d->m_name;
+	}
+
+/**
+ * Method to get the event date and time
+ * @return The date and time of the event
+ */
+QDateTime SmfEvent::eventDateTime( ) const
+	{
+	return d->m_dateTime;
+	}
+
+/**
+ * Method to get the event duration
+ * @return The duration of the event
+ */
+QTime SmfEvent::duration( ) const
+	{
+	return d->m_duration;
+	}
+
+/**
+ * Method to get the artist names
+ * @return The list of artists in the event
+ */
+SmfArtists SmfEvent::artists( ) const
+	{
+	return d->m_artists;
+	}
+
+/**
+ * Method to get the venue of the event
+ * @return The venue of the event
+ */
+SmfLocation SmfEvent::venue( ) const
+	{
+	return d->m_venue;
+	}
+
+/**
+ * Method to get the URL for getting tickets for the event
+ * @return The Url for getting ticket for the event
+ */
+QUrl SmfEvent::ticketUrl( ) const
+	{
+	return d->m_url;
+	}
+
+/**
+ * Method to get the id of the event
+ * @return The ID value 
+ */
+QString SmfEvent::id( ) const
+	{
+	return d->m_eventId;
+	}
+
+/**
+ * Method to set the event name
+ * @param aName The new event name
+ */
+void SmfEvent::setTitle( const QString &aName )
+	{
+	d->m_name = aName;
+	}
+
+/**
+ * Method to set the event date and time
+ * @param aDateTime The new date and time of the event
+ * 
+ */
+void SmfEvent::setEventDateTime( const QDateTime &aDateTime )
+	{
+	d->m_dateTime = aDateTime;
+	}
+
+/**
+ * Method to set the event duration
+ * @param aDuration The new duration of the event
+ * 
+ */
+void SmfEvent::setDuration( const QTime &aDuration )
+	{
+	d->m_duration = aDuration;
+	}
+
+/**
+ * Method to set the artist
+ * @param aArtists The new artists in the event
+ */
+void SmfEvent::setArtists( const SmfArtists &aArtists )
+	{
+	d->m_artists = aArtists;
+	}
+
+/**
+ * Method to set the venue name
+ * @param aVenue The new venue of the event
+ */
+void SmfEvent::setVenue( const SmfLocation &aVenue )
+	{
+	d->m_venue = aVenue;
+	}
+
+/**
+ * Method to set the URL for getting tickets for the event
+ * @param aUrl The new Url for getting ticket for the event
+ */
+void SmfEvent::setTicketUrl( const QUrl &aUrl )
+	{
+	d->m_url = aUrl;
+	}
+
+/**
+ * Method to set the id of the event
+ * @param aId The ID value 
+ */
+void SmfEvent::setId( const QString &aId )
+	{
+	d->m_eventId = aId;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfEvent object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aEvent The SmfEvent object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfEvent &aEvent )
+	{
+	// Serialize d->m_name
+	aDataStream<<aEvent.d->m_name;
+		
+	// Serialize d->m_dateTime
+	aDataStream<<aEvent.d->m_dateTime;
+	
+	// Serialize d->m_duration
+	aDataStream<<aEvent.d->m_duration;
+	
+	// Serialize d->m_artists
+	aDataStream<<aEvent.d->m_artists;
+	
+	// Serialize d->m_venue
+	aDataStream<<aEvent.d->m_venue;
+	
+	// Serialize d->m_url
+	aDataStream<<aEvent.d->m_url;
+	
+	// Serialize d->m_eventId
+	aDataStream<<aEvent.d->m_eventId;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfEvent object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aEvent The SmfEvent object to be internalized
+ * @return reference to the stream
+ */
+ QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfEvent &aEvent)
+	{
+	// Deserialize d->m_name
+	aDataStream>>aEvent.d->m_name;
+		
+	// Deserialize d->m_dateTime
+	aDataStream>>aEvent.d->m_dateTime;
+	
+	// Deserialize d->m_duration
+	aDataStream>>aEvent.d->m_duration;
+	
+	// Deserialize d->m_artists
+	aDataStream>>aEvent.d->m_artists;
+	
+	// Deserialize d->m_venue
+	aDataStream>>aEvent.d->m_venue;
+	
+	// Deserialize d->m_url
+	aDataStream>>aEvent.d->m_url;
+	
+	// Deserialize d->m_eventId
+	aDataStream>>aEvent.d->m_eventId;
+	
+	return aDataStream;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfevent.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,189 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfEvent class represents an event
+ *
+ */
+
+#ifndef SMFEVENT_H_
+#define SMFEVENT_H_
+
+#include "smflocation.h"
+#include "smfartists.h"
+#include <QStringList>
+#include <QDatastream>
+#include <QSharedData>
+#include "smfclientglobal.h"
+#include <QMetaType>
+
+class SmfEventPrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The event class represents an event
+ */
+class SMFCOMMON_EXPORT SmfEvent
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfEvent( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfEvent( const SmfEvent &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 * @return The current object reference
+	 */
+	SmfEvent& operator=( const SmfEvent &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfEvent( );
+	
+	/**
+	 * Method to get the event name
+	 * @return The event name
+	 */
+	QString title( ) const;
+	
+	/**
+	 * Method to get the event date and time
+	 * @return The date and time of the event
+	 */
+	QDateTime eventDateTime( ) const;
+	
+	/**
+	 * Method to get the event duration
+	 * @return The duration of the event
+	 */
+	QTime duration( ) const;
+	
+	/**
+	 * Method to get the artist names
+	 * @return The list of artists in the event
+	 */
+	SmfArtists artists( ) const;
+	
+	/**
+	 * Method to get the venue of the event
+	 * @return The venue of the event
+	 */
+	SmfLocation venue( ) const;
+	
+	/**
+	 * Method to get the URL for getting tickets for the event
+	 * @return The Url for getting ticket for the event
+	 */
+	QUrl ticketUrl( ) const;
+	
+	/**
+	 * Method to get the id of the event
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to set the event name
+	 * @param aName The new event name
+	 */
+	void setTitle( const QString &aName );
+	
+	/**
+	 * Method to set the event date and time
+	 * @param aDateTime The new date and time of the event
+	 * 
+	 */
+	void setEventDateTime( const QDateTime &aDateTime );
+	
+	/**
+	 * Method to set the event duration
+	 * @param aDuration The new duration of the event
+	 * 
+	 */
+	void setDuration( const QTime &aDuration );
+	
+	/**
+	 * Method to set the artist
+	 * @param aArtists The new artists in the event
+	 */
+	void setArtists( const SmfArtists &aArtists );
+	
+	/**
+	 * Method to set the venue name
+	 * @param aVenue The new venue of the event
+	 */
+	void setVenue( const SmfLocation &aVenue );
+	
+	/**
+	 * Method to set the URL for getting tickets for the event
+	 * @param aUrl The new Url for getting ticket for the event
+	 */
+	void setTicketUrl( const QUrl &aUrl );
+	
+	/**
+	 * Method to set the id of the event
+	 * @param aId The ID value 
+	 */
+	void setId( const QString &aId );
+	
+private:
+	QSharedDataPointer<SmfEventPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfEvent &aEvent );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfEvent &aEvent );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfEvent object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aEvent The SmfEvent object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfEvent &aEvent );
+
+/**
+ * Method for Internalization. Reads a SmfEvent object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aEvent The SmfEvent object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfEvent &aEvent);
+
+
+typedef QList<SmfEvent> SmfEventList;
+
+// Make the class SmfEvent known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfEvent)
+Q_DECLARE_METATYPE(QList<SmfEvent>)
+
+
+#endif /* SMFEVENT_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfevent_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfEvent class
+ *
+ */
+
+#ifndef SMFEVENT_P_H_
+#define SMFEVENT_P_H_
+
+
+#include <smflocation.h>
+#include <smfartists.h>
+#include <QStringList>
+#include <QSharedData>
+
+class SmfEventPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfEventPrivate( ) { 
+		m_name.clear(); 
+		m_url.clear();
+		m_eventId.clear();
+		
+	}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfEventPrivate( const SmfEventPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_name ( aOther.m_name ), 
+		m_dateTime ( aOther.m_dateTime ),
+		m_duration ( aOther.m_duration ),
+		m_artists ( aOther.m_artists ),
+		m_venue ( aOther.m_venue ),
+		m_url ( aOther.m_url ),
+		m_eventId ( aOther.m_eventId ) 	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfEventPrivate( )
+		{
+		}
+  
+	QString		m_name;		// event name
+	QDateTime 	m_dateTime;	// event date and time
+	QTime		m_duration;	// event duration
+	SmfArtists 	m_artists;	// event artist names
+	SmfLocation	m_venue;	// event venue
+	QUrl 		m_url;		// ticket url
+	QString 	m_eventId;	// event Id
+	
+};
+
+#endif /* SMFEVENT_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfglobal.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,360 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * SMF wide global const and macros, to be shared among SMF components 
+ * and SMF clients
+ *
+ */
+
+#ifndef SMFGLOBAL_H
+#define SMFGLOBAL_H
+
+#include <qglobal.h>
+#include <QBuffer>
+#include <QNetworkRequest>
+#include <QNetworkAccessManager>
+
+#ifdef Q_OS_SYMBIAN
+class SmfServerSymbianSession;
+#else
+class SmfServerQtSession;
+#endif
+
+/**
+ * Exact definition to be decided later
+ */
+#define SMF_SERVICE_NAME(INTERFACE,INTERFACENAME)
+
+/**
+ * Indicates first page for a web query
+ */
+const int SMF_FIRST_PAGE = 0;
+
+/**
+ * Default value for per page item for web queries
+ */
+const int SMF_ITEMS_PER_PAGE = 10;
+
+
+/**
+ * The enumeration used to denote errors reported by plugin
+ * Smf can't continue without handling these errors
+ */
+enum SmfPluginError
+	{
+	SmfPluginErrNone = 0, 
+	SmfPluginErrTooManyRequest,
+	SmfPluginErrRequestQuotaExceeded,
+	SmfPluginErrInvalidRequest,
+	SmfPluginErrUserNotLoggedIn,
+	SmfPluginErrAuthenticationExpired,
+	SmfPluginErrPermissionDenied,
+	SmfPluginErrInvalidApplication,
+	SmfPluginErrServiceUnavailable,
+	SmfPluginErrServiceTemporaryUnavailable,
+	SmfPluginErrFormatNotSupported, 
+	SmfPluginErrDataSizeExceeded,
+	SmfPluginErrServiceNotSupported,
+	SmfPluginErrInvalidArguments,
+	SmfPluginErrRequestNotCreated,
+	SmfPluginErrParsingFailed,
+	SmfPluginErrNetworkError,
+	SmfPluginErrCancelComplete
+	};
+
+
+/**
+ * The enumeration used to track the plugin methods return type
+ */
+enum SmfPluginRetType
+	{
+	SmfSendRequestAgain = 0,
+	SmfRequestComplete,
+	SmfRequestError
+	};
+
+
+/**
+ * The enumeration used to indicate the type of network operation done
+ */
+enum SmfRequestTypeID
+	{
+	SmfGetService,
+	SmfContactGetFriends,
+	SmfContactGetFollowers,
+	SmfContactSearch,
+	SmfContactSearchNear,
+	SmfContactGetGroups,
+	SmfContactSearchInGroup,
+	SmfContactCustomRequest,
+	SmfContactRetrievePosts,
+	SmfContactPost,
+	SmfContactUpdatePost,
+	SmfContactPostDirected,
+	SmfContactCommentOnAPost,
+	SmfContactPostAppearence,
+	SmfContactSharePost,
+	SmfContactPostCustomRequest,
+	SmfPostGetMaxCharsInPost,
+	SmfPostGetMaxItems,
+	SmfPostGetSupportedFormats,
+	SmfPostGetAppearanceSupport,
+	SmfMusicGetLyrics,
+	SmfMusicGetSubtitle,
+	SmfMusicLyricsCustomRequest,
+	SmfMusicGetEventsOnLoc,
+	SmfMusicGetVenueOnLoc,
+	//SmfMusicGetEventsOnVenue, - removed
+	SmfMusicPostEvents,
+	SmfMusicEventsCustomRequest,
+	SmfMusicGetRecommendations,
+	SmfMusicGetTracks,
+	SmfMusicGetTrackInfo,
+	SmfMusicGetStores,
+	SmfMusicSearchCustomRequest,
+	SmfMusicGetUserInfo,
+	SmfMusicSearchUser,
+	SmfMusicPostCurrentPlaying,
+	SmfMusicPostRating,
+	SmfMusicPostComment,
+	SmfMusicServiceCustomRequest,
+	SmfMusicGetPlaylists,
+	SmfMusicGetPlaylistsOfUser,
+	SmfMusicAddToPlaylist,
+	SmfMusicPostCurrentPlayingPlaylist,
+	SmfMusicPlaylistCustomRequest,
+	SmfPictureGetAlbums,
+	SmfPictureGetPictures,
+	SmfPictureDescription,
+	SmfPictureUpload,
+	SmfPictureMultiUpload,
+	SmfPicturePostComment,
+	SmfPictureCustomRequest,
+	SmfActivityFriendsActivities,
+	SmfActivityFiltered,
+	SmfActivitySelfActivity,
+	SmfActivityCustomRequest,
+	SmfRelationCreate,//SmfRelationMngr start
+	SmfRelationAssociate,
+	SmfRelationRemove,
+	SmfRelationSearchById,
+	SmfRelationSearchByContact,
+	SmfRelationCount,
+	SmfRelationGet,
+	SmfRelationGetAll,
+	SmfRelationGetAllRelations,
+	SmfRelationDeleteRelation//SmfRelationMngr end
+	
+	};
+
+
+/**
+ * The enumeration used to indicate result of transport to the plugins
+ */
+enum SmfTransportResult
+	{
+	SmfTransportOpNoError = 0,
+	SmfTransportOpConnectionRefusedError,
+	SmfTransportOpRemoteHostClosedError,
+	SmfTransportOpHostNotFoundError,
+	SmfTransportOpTimeoutError,
+	SmfTransportOpOperationCanceledError,
+	SmfTransportOpSslHandshakeFailedError,
+	SmfTransportOpProxyConnectionRefusedError,
+	SmfTransportOpProxyConnectionClosedError,
+	SmfTransportOpProxyNotFoundError,
+	SmfTransportOpProxyTimeoutError,
+	SmfTransportOpProxyAuthenticationRequiredError,
+	SmfTransportOpContentAccessDenied,
+	SmfTransportOpContentOperationNotPermittedError,
+	SmfTransportOpContentNotFoundError,
+	SmfTransportOpAuthenticationRequiredError,
+	SmfTransportOpContentReSendError,
+	SmfTransportOpProtocolUnknownError,
+	SmfTransportOpProtocolInvalidOperationError,
+	SmfTransportOpUnknownNetworkError,
+	SmfTransportOpUnknownProxyError,
+	SmfTransportOpUnknownContentError,
+	SmfTransportOpProtocolFailure,
+	SmfTransportOpUnknownError,
+	SmfTransportOpIAPChanged,
+	SmfTransportOpCancelled,
+	SmfTransportOpUnsupportedContentEncodingFormat,
+	SmfTransportOpGzipError
+	};
+
+
+/**
+ * The structure used to hold the request created by the plugins
+ */
+struct SmfPluginRequestData
+	{
+	/**
+	 * Indicates the type of operation performed, like getting Friends 
+	 * list, upload image etc
+	 */
+	SmfRequestTypeID iRequestType;
+	
+	/**
+	 * The QNetworkRequest that has to be filled up by the plugins
+	 */
+	QNetworkRequest iNetworkRequest;
+	
+	/**
+	 * The data to be posted in case of HTTP POST operation
+	 */
+	QBuffer *iPostData;
+	
+	/**
+	 * The type of HTTP transaction, like GET, POST etc
+	 */
+	QNetworkAccessManager::Operation iHttpOperationType;
+	
+	};
+
+/**
+ * The structure used to hold the request created by the plugins
+ */
+struct SmfResultPage
+	{
+	/**
+	 * The total number of items
+	 */
+	uint iTotalItems;
+	
+	/**
+	 * The number of items per page
+	 */
+	uint iItemsPerPage;
+	
+	/**
+	 * The total number of pages
+	 */
+	uint iTotalPages;
+	
+	/**
+	 * The current fetched page number
+	 */
+	uint iPageNum;
+	};
+
+
+struct SmfClientAuthID
+	{
+#ifdef Q_OS_SYMBIAN
+	TSecureId pid;
+	SmfServerSymbianSession* session;
+#else
+	QString pid;
+	SmfServerQtSession* session;
+#endif
+	};
+
+/**
+ * Smf wide errors
+ */
+enum SmfError
+	{
+	SmfNoError = 0,
+	SmfInvalidInterface,						//1
+	SmfNoAuthorizedPlugin,						//2
+	SmfClientAuthFailed,						//3
+	SmfPMPluginNotFound,						//4
+	SmfPMPluginNotLoaded,						//5
+	SmfPMPluginLoadError,						//6
+	SmfPMPluginNotAuthorised,					//7
+	SmfPMPluginRequestCreationFailed,			//8
+	SmfPMPluginUnknownPluginService,			//9
+	SmfPMPluginUnknownHttpService,				//10
+	SmfPMPluginRequestSendingFailed,			//11
+	SmfPMPluginSOPCheckFailed,					//12
+	SmfPMPluginSendRequestAgain,				//13
+	SmfPluginErrorTooManyRequest,				//14
+	SmfPluginErrorRequestQuotaExceeded,			//15
+	SmfPluginErrorInvalidRequest,				//16
+	SmfPluginErrorUserNotLoggedIn,				//17
+	SmfPluginErrorAuthenticationExpired,		//18
+	SmfPluginErrorPermissionDenied,				//19
+	SmfPluginErrorInvalidApplication,			//20
+	SmfPluginErrorServiceUnavailable,			//21
+	SmfPluginErrorServiceTemporaryUnavailable,	//22
+	SmfPluginErrorFormatNotSupported, 			//23
+	SmfPluginErrorDataSizeExceeded ,			//24
+	SmfPluginErrorInvalidArguments,				//25
+	SmfPluginErrorParsingFailed,				//26
+	SmfPluginErrorNetworkError,					//27
+	SmfPluginErrorCancelComplete,				//28
+	SmfTMConnectionRefusedError,				//29
+	SmfTMRemoteHostClosedError,					//30
+	SmfTMHostNotFoundError,						//31
+	SmfTMTimeoutError,							//32
+	SmfTMOperationCanceledError,				//33
+	SmfTMSslHandshakeFailedError,				//34
+	SmfTMProxyConnectionRefusedError,			//35
+	SmfTMProxyConnectionClosedError,			//36
+	SmfTMProxyNotFoundError,					//37
+	SmfTMProxyTimeoutError,						//38
+	SmfTMProxyAuthenticationRequiredError,		//39
+	SmfTMContentAccessDenied,					//40
+	SmfTMContentOperationNotPermittedError,		//41
+	SmfTMContentNotFoundError,					//42
+	SmfTMAuthenticationRequiredError,			//43
+	SmfTMContentReSendError,					//44
+	SmfTMProtocolUnknownError,					//45
+	SmfTMProtocolInvalidOperationError,			//46
+	SmfTMUnknownNetworkError,					//47
+	SmfTMUnknownProxyError,						//48
+	SmfTMUnknownContentError,					//49
+	SmfTMProtocolFailure,						//50
+	SmfTMUnknownError,							//51
+	SmfTMIAPChanged,							//52
+	SmfTMCancelled,								//53
+	SmfTMUnsupportedContentEncodingFormat,		//54
+	SmfTMInitNetworkNotAvailable ,				//55
+	SmfTMInitRoamingNetworkUsageNotEnabled,		//56
+	SmfTMGzipMemoryError,						//57
+	SmfTMGzipStreamError,						//58
+	SmfTMGzipDataError,							//59
+	SmfMemoryAllocationFailure,					//60
+	SmfDbOpeningError,                          //61
+	SmfDbQueryExecutonError,					//61
+	SmfDbContactNotExist,						//63
+	SmfErrItemNotInRelation,                    //64
+	SmfErrInvalidRelation,                      //65  
+	SmfUnknownError								//66
+
+	};
+
+
+/**
+ * Smf wide panics
+ */
+enum SmfPanic
+	{
+	SmfRequestPending		//to allow one outstanding request per session
+	};
+
+//interface names
+const QString contactFetcherInterface("org.symbian.smf.plugin.contact.fetcher\0.2");
+const QString postProviderInterface("org.symbian.smf.plugin.contact.posts\0.2");
+const QString galleryInterface("org.symbian.smf.plugin.gallery\0.2");
+const QString musicServiceInterface("org.symbian.smf.plugin.music.service\0.2");
+const QString musicSearchInterface("org.symbian.smf.client.music.search\0.2");
+const QString playlistServiceInterface("org.symbian.smf.plugin.music.playlist\0.2");
+const QString musicEventServiceInterface("org.symbian.smf.plugin.music.events\0.2");
+const QString lyricsServiceInterface("org.symbian.smf.plugin.music.lyrics\0.2");
+const QString activityFetcherInterface("org.symbian.smf.plugin.activity.fetcher\0.2");
+
+#endif /* SMFGLOBAL_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfgroup.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,154 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The group class represents an instance of a group as per SN site terminolgy
+ */
+	
+#include "smfgroup.h"
+#include "smfgroup_p.h"
+
+/**
+ * Constructor with default argument
+ * @param list The list of members in the group
+ */
+SmfGroup::SmfGroup( QList<SmfContact>* list )
+	{
+	d = new SmfGroupPrivate;
+	if(list)
+		d->m_members = list;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfGroup::SmfGroup( const SmfGroup &aOther ): d(aOther.d)
+	{
+	
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfGroup& SmfGroup::operator=( const SmfGroup &aOther )
+	{
+	d->m_members = aOther.d->m_members;
+	d->m_groupName = aOther.d->m_groupName;
+	d->m_groupId = aOther.d->m_groupId;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfGroup::~SmfGroup( )
+	{
+	
+	}
+	
+/**
+ * Method to get the list of members in the group
+ * @return The list of members in the group
+ */
+QList<SmfContact> SmfGroup::members( ) const
+	{
+	return *(d->m_members) ;
+	}
+	
+/**
+ * Method to set members
+ * 
+ */
+void SmfGroup::setMembers(QList<SmfContact>* mems)
+	{
+	d->m_members = mems;
+	}
+
+/**
+ * Method to get the name of the group
+ * @return The name of the group
+ */
+QString SmfGroup::name( ) const
+	{
+	return d->m_groupName;
+	}
+
+/**
+ * Method to set name
+ */
+void SmfGroup::setName(QString& name)
+	{
+	d->m_groupName = name;
+	}
+
+/**
+ * Method to get the id of the group
+ * @return The ID value 
+ */
+QString SmfGroup::id( ) const
+	{
+	return d->m_groupId;
+	}
+
+/**
+ * Method to set id
+ */
+void SmfGroup::setId(QString& id)
+	{
+	d->m_groupId = id;
+	
+	}
+/**
+ * Method for Externalization. Writes the SmfGroup object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aGroup The SmfGroup object to be externalized
+ * @return reference to the written stream
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfGroup &aGroup )
+	{
+	aDataStream<<aGroup.members();
+	aDataStream<<aGroup.name();
+	aDataStream<<aGroup.id();
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfGroup object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aGroup The SmfGroup object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfGroup &aGroup)
+	{
+	QList<SmfContact> list;
+	aDataStream>>list;
+	aGroup.setMembers(&list);
+	
+	QString grpname;
+	aDataStream>>grpname;
+	aGroup.d->m_groupName = grpname;
+	
+	QString grpId;
+	aDataStream>>grpId;
+	aGroup.d->m_groupId = grpId;
+	
+	return aDataStream;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfgroup.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,146 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The group class represents an instance of a group as per SN site terminolgy
+ *
+ */
+
+#ifndef SMFGROUP_H_
+#define SMFGROUP_H_
+
+#include <qdatastream.h>
+#include <QSharedData>
+#include <QMetaType>
+
+#include "smfgroup_p.h"
+#include "smfcontact.h"
+#include "smfclientglobal.h"
+
+/**
+ * Max number of members per group
+ */
+const int MaxMemberPerGroup = 1000;
+
+/**
+ * Max size for one SmfGroup
+ */
+const int MaxSmfGroupSize = MaxSmfContactSize*MaxMemberPerGroup;
+
+
+/**
+ * @ingroup smf_common_group
+ * The group class represents an instance of a group as per SN site terminolgy
+ */
+
+class  SMFCOMMON_EXPORT SmfGroup
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 * @param list The list of members in the group
+	 */
+	SmfGroup( QList<SmfContact>* list = 0 );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfGroup( const SmfGroup &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 */
+	SmfGroup& operator=( const SmfGroup &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfGroup( );
+	
+public slots:
+	/**
+	 * Method to get the list of members in the group
+	 * @return The list of members in the group
+	 */
+	QList<SmfContact> members( ) const;
+	
+	/**
+	 * Method to set members
+	 * 
+	 */
+	void setMembers(QList<SmfContact>* mems);
+	
+	/**
+	 * Method to get the name of the group
+	 * @return The name of the group
+	 */
+	QString name( ) const;
+	
+	/**
+	 * Method to set name
+	 */
+	void setName(QString& name);
+	
+	/**
+	 * Method to get the id of the group
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to set id
+	 */
+	void setId(QString& id);
+	
+private:
+	QSharedDataPointer<SmfGroupPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfGroup &aGroup );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfGroup &aGroup );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfGroup object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aGroup The SmfGroup object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfGroup &aGroup );
+
+/**
+ * Method for Internalization. Reads a SmfGroup object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aGroup The SmfGroup object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfGroup &aGroup);
+
+typedef QList<SmfGroup> SmfGroupList;
+
+// Make the class SmfGroup known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfGroup)
+Q_DECLARE_METATYPE(QList<SmfGroup>)
+
+#endif /* SMFGROUP_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfgroup_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfGroup class
+ *
+ */
+
+#ifndef SMFGROUP_P_H_
+#define SMFGROUP_P_H_
+
+#include <smfcontact.h>
+#include <QSharedData>
+
+class SmfGroupPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfGroupPrivate( ) { m_members = NULL; m_groupName.clear(); m_groupId.clear(); }
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfGroupPrivate( const SmfGroupPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_members ( aOther.m_members ), 
+		m_groupName ( aOther.m_groupName ),
+		m_groupId ( aOther.m_groupId ) 	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfGroupPrivate( ){};
+  
+	QList<SmfContact> *m_members;	// members in the group
+	QString m_groupName;
+	QString m_groupId;
+	// Other details to be added
+};
+
+
+#endif /* SMFGROUP_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smflocation.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,287 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfLocation class represents a location and its related information
+ * Note: This class has dependencies on QtMobility project
+ *
+ */
+
+
+#include <smflocation.h>
+#include <smflocation_p.h>
+
+/**
+ * Constructor with default argument
+ */
+SmfLocation::SmfLocation( )
+	{
+	d = new SmfLocationPrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfLocation::SmfLocation( const SmfLocation &aOther )
+	:d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator 
+ * @param aOther The reference object
+ */
+SmfLocation& SmfLocation::operator=( const SmfLocation &aOther )
+	{
+	d->m_name = aOther.d->m_name;
+	d->m_city = aOther.d->m_city;
+	d->m_street = aOther.d->m_street;
+	d->m_zipcode = aOther.d->m_zipcode;
+	d->m_country = aOther.d->m_country;
+	d->m_geo = aOther.d->m_geo;
+	d->m_url = aOther.d->m_url;
+	d->m_placeId = aOther.d->m_placeId;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfLocation::~SmfLocation( )
+	{
+	}
+
+/**
+ * Method to get the place name
+ * @return The place name
+ */
+QString SmfLocation::name( ) const
+	{
+	return d->m_name;
+	}
+
+/**
+ * Method to get the city of place
+ * @return The city of the place
+ */
+QString SmfLocation::city( ) const
+	{
+	return d->m_city;
+	}
+
+/**
+ * Method to get the street information of place
+ * @return The street information of the place
+ */
+QString SmfLocation::street( ) const
+	{
+	return d->m_street;
+	}
+
+/**
+ * Method to get the zip code of place
+ * @return The zip code of place
+ */
+QString SmfLocation::zipCode( ) const
+	{
+	return d->m_zipcode;
+	}
+
+/**
+ * Method to get the country of place
+ * @return The country of place
+ */
+QString SmfLocation::country( ) const
+	{
+	return d->m_country;
+	}
+
+/**
+ * Method to get the Geo Position information (like information gathered 
+ * on a global position, direction and velocity at a particular point 
+ * in time) of the place.
+ * @return The Geo Position information of place
+ */
+QGeoPositionInfo SmfLocation::geoPositionInfo( ) const
+	{
+	return d->m_geo;
+	}
+
+/**
+ * Method to get the url indicating the place
+ * @return The url indicating the place
+ */
+QUrl SmfLocation::url( ) const
+	{
+	return d->m_url;
+	}
+
+/**
+ * Method to get the id of the place
+ * @return The ID value 
+ */
+QString SmfLocation::id( ) const
+	{
+	return d->m_placeId;
+	}
+
+/**
+ * Method to set the place name
+ * @param aPlace The new place name
+ */
+void SmfLocation::setName( const QString& aPlace )
+	{
+	d->m_name = aPlace;
+	}
+
+/**
+ * Method to set the city of  place
+ * @param aCity The new city of the place
+ */
+void SmfLocation::setCity( const QString& aCity )
+	{
+	d->m_city = aCity;
+	}
+
+/**
+ * Method to set the street information of place
+ * @param aStreet The new street information of the place
+ */
+void SmfLocation::setStreet( const QString& aStreet )
+	{
+	d->m_street = aStreet;
+	}
+
+/**
+ * Method to set the zip code of place
+ * @param aZipCode The new zip code of place
+ */
+void SmfLocation::setZipCode( const QString& aZipCode )
+	{
+	d->m_zipcode = aZipCode;
+	}
+
+/**
+ * Method to set the country of place
+ * @param aCountry The new country of place
+ */
+void SmfLocation::setCountry( const QString& aCountry )
+	{
+	d->m_country = aCountry;
+	}
+
+/**
+ * Method to set the Geo Postion information (like information gathered 
+ * on a global position, direction and velocity at a particular point 
+ * in time) of the place.
+ * @param aGeoPosInfo The new Geo Position information of place
+ */
+void SmfLocation::setGeoPositionInfo( const QGeoPositionInfo& aGeoPosInfo )
+	{
+	d->m_geo = aGeoPosInfo;
+	}
+
+/**
+ * Method to set the url indicating the place
+ * @param aUrl The new url indicating the place
+ */
+void SmfLocation::setUrl( const QUrl& aUrl )
+	{
+	d->m_url = aUrl;
+	}
+
+/**
+ * Method to set the id of the place
+ * @return The ID value 
+ */
+void SmfLocation::setId( const QString &aId )
+	{
+	d->m_placeId = aId;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfLocation object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aPlace The SmfLocation object to be externalized
+ * @return reference to the written stream
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfLocation &aPlace )
+	{
+	// Serialize d->m_name
+	aDataStream<<aPlace.d->m_name;
+	
+	// Serialize d->m_city
+	aDataStream<<aPlace.d->m_city;
+	
+	// Serialize d->m_street
+	aDataStream<<aPlace.d->m_street;
+	
+	// Serialize d->m_zipcode
+	aDataStream<<aPlace.d->m_zipcode;
+	
+	// Serialize d->m_country
+	aDataStream<<aPlace.d->m_country;
+	
+	// Serialize d->m_geo
+	aDataStream<<aPlace.d->m_geo;
+	
+	// Serialize d->m_url
+	aDataStream<<aPlace.d->m_url;
+	
+	// Serialize d->m_placeId
+	aDataStream<<aPlace.d->m_placeId;
+		
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfLocation object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aPlace The SmfLocation object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfLocation &aPlace)
+	{
+	// Deserialize d->m_name
+	aDataStream>>aPlace.d->m_name;
+	
+	// Deserialize d->m_city
+	aDataStream>>aPlace.d->m_city;
+	
+	// Deserialize d->m_street
+	aDataStream>>aPlace.d->m_street;
+	
+	// Deserialize d->m_zipcode
+	aDataStream>>aPlace.d->m_zipcode;
+	
+	// Deserialize d->m_country
+	aDataStream>>aPlace.d->m_country;
+	
+	// Deserialize d->m_geo
+	aDataStream>>aPlace.d->m_geo;
+	
+	// Deserialize d->m_url
+	aDataStream>>aPlace.d->m_url;
+	
+	// Deserialize d->m_placeId
+	aDataStream>>aPlace.d->m_placeId;
+		
+	return aDataStream;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smflocation.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,217 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfLocation class represents a place and its related information
+ * Note: This class has dependencies on QtMobility project
+ *
+ */
+
+#ifndef SMFLOCATION_H_
+#define SMFLOCATION_H_
+
+#include <QUrl>
+#include <qgeopositioninfo.h> // Qt mobility class
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <QMetaType>
+
+// Qt mobility - namespace
+using namespace QtMobility;
+
+enum SmfLocationSearchBoundary 
+{
+	SearchByStreet = 0x00,
+	SearchByLocality,
+	SearchByPostOffice,
+	SearchByTown,
+	SearchByRegion,
+	SearchByState,
+	SearchByCountry
+};
+
+class SmfLocationPrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The SmfLocation class represents a location and its related information.
+ * 
+ * Note: This class has dependencies on QtMobility project
+ */
+class SMFCOMMON_EXPORT SmfLocation
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfLocation( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfLocation( const SmfLocation &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 * @return The current object reference
+	 */
+	SmfLocation& operator=( const SmfLocation &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfLocation( );
+	
+	/**
+	 * Method to get the place name
+	 * @return The place name
+	 */
+	QString name( ) const;
+	
+	/**
+	 * Method to get the city of place
+	 * @return The city of the place
+	 */
+	QString city( ) const;
+	
+	/**
+	 * Method to get the street information of place
+	 * @return The street information of the place
+	 */
+	QString street( ) const;
+	
+	/**
+	 * Method to get the zip code of place
+	 * @return The zip code of place
+	 */
+	QString zipCode( ) const;
+	
+	/**
+	 * Method to get the country of place
+	 * @return The country of place
+	 */
+	QString country( ) const;
+	
+	/**
+	 * Method to get the Geo Position information (like information gathered 
+	 * on a global position, direction and velocity at a particular point 
+	 * in time) of the place.
+	 * @return The Geo Position information of place
+	 */
+	QGeoPositionInfo geoPositionInfo( ) const;
+	
+	/**
+	 * Method to get the url indicating the place
+	 * @return The url indicating the place
+	 */
+	QUrl url( ) const;
+	
+	/**
+	 * Method to get the id of the place
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to set the place name
+	 * @param aPlace The new place name
+	 */
+	void setName( const QString &aPlace );
+	
+	/**
+	 * Method to set the city of  place
+	 * @param aCity The new city of the place
+	 */
+	void setCity( const QString &aCity );
+	
+	/**
+	 * Method to set the street information of place
+	 * @param aStreet The new street information of the place
+	 */
+	void setStreet( const QString &aStreet );
+	
+	/**
+	 * Method to set the zip code of place
+	 * @param aZipCode The new zip code of place
+	 */
+	void setZipCode( const QString &aZipCode );
+	
+	/**
+	 * Method to set the country of place
+	 * @param aCountry The new country of place
+	 */
+	void setCountry( const QString &aCountry );
+	
+	/**
+	 * Method to set the Geo Postion information (like information gathered 
+	 * on a global position, direction and velocity at a particular point 
+	 * in time) of the place.
+	 * @param aGeoPosInfo The new Geo Position information of place
+	 */
+	void setGeoPositionInfo( const QGeoPositionInfo &aGeoPosInfo );
+	
+	/**
+	 * Method to set the url indicating the place
+	 * @param aUrl The new url indicating the place
+	 */
+	void setUrl( const QUrl &aUrl );
+	
+	/**
+	 * Method to set the id of the place
+	 * @return The ID value 
+	 */
+	void setId( const QString &aId );
+	
+private:
+	QSharedDataPointer<SmfLocationPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfLocation &aPlace );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfLocation &aPlace );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfLocation object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aPlace The SmfLocation object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfLocation &aPlace );
+
+/**
+ * Method for Internalization. Reads a SmfLocation object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aPlace The SmfLocation object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfLocation &aPlace);
+
+typedef QList<SmfLocation> SmfLocationList;
+
+// Make the class SmfLocation known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfLocation)
+Q_DECLARE_METATYPE(QList<SmfLocation>)
+
+#endif /* SMFLOCATION_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smflocation_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,79 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfLocation class
+ * Note: This class has dependencies on QtMobility project
+ *
+ */
+
+#ifndef SMFLOCATION_P_H_
+#define SMFLOCATION_P_H_
+
+#include <QUrl>
+#include <qgeopositioninfo.h> // Qt mobility class
+#include <QSharedData>
+
+// Qt mobility - namespace
+using namespace QtMobility;
+
+class SmfLocationPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfLocationPrivate( ) { 
+		m_name.clear();
+		m_city.clear();
+		m_street.clear();
+		m_zipcode.clear();
+		m_country.clear();
+		m_url.clear();
+		m_placeId.clear(); }
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfLocationPrivate( const SmfLocationPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_name ( aOther.m_name ),
+		m_city ( aOther.m_city ),
+		m_street ( aOther.m_street ),
+		m_zipcode ( aOther.m_zipcode ),
+		m_country ( aOther.m_country ),
+		m_geo ( aOther.m_geo ),
+		m_url ( aOther.m_url ),
+		m_placeId ( aOther.m_placeId ) 	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfLocationPrivate( )
+		{
+		}
+  
+	QString m_name;			// place name
+	QString m_city;			// city of place
+	QString m_street;		// street of place
+	QString m_zipcode;		// zip code of place
+	QString m_country;		// country of place
+	QGeoPositionInfo m_geo;	// place geo position information
+	QUrl m_url;				// url indicating the place
+	QString m_placeId;		// place id
+	
+};
+
+#endif /* SMFLOCATION_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smflyrics.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,182 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfLyrics class represents an instance of a music track's lyrics
+ *
+ */
+
+#include <smflyrics.h>
+#include <smflyrics_p.h>
+
+/**
+ * Constructor with default argument
+ */
+SmfLyrics::SmfLyrics( )
+	{
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfLyrics::SmfLyrics( const SmfLyrics &aOther )
+	:d ( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfLyrics& SmfLyrics::operator=( const SmfLyrics &aOther )
+	{
+	d->m_lyrics = aOther.d->m_lyrics;
+	d->m_language = aOther.d->m_language;
+	d->m_releaseYr = aOther.d->m_releaseYr;
+	d->m_lyricsId = aOther.d->m_lyricsId;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfLyrics::~SmfLyrics( )
+	{
+	}
+
+/**
+ * Method to get the lyrics
+ * @return The lyrics data
+ */
+QByteArray SmfLyrics::lyrics( ) const
+	{
+	return d->m_lyrics;
+	}
+
+/**
+ * Method to get the language
+ * @return The language
+ */
+QString SmfLyrics::language( ) const
+	{
+	return d->m_language;
+	}
+
+/**
+ * Method to get the release year
+ * @return The release year
+ */
+QDateTime SmfLyrics::releaseYear( ) const
+	{
+	return d->m_releaseYr;
+	}
+
+/**
+ * Method to get the id of the lyrics
+ * @return The ID value 
+ */
+QString SmfLyrics::id( ) const
+	{
+	return d->m_lyricsId;
+	}
+
+/**
+ * Method to set the lyrics
+ * @param aLyrics The lyrics data
+ */
+void SmfLyrics::setLyrics( const QByteArray &aLyrics )
+	{
+	d->m_lyrics = aLyrics;
+	}
+
+/**
+ * Method to set the language
+ * @param aLang The language
+ */
+void SmfLyrics::setLanguage( const QString &aLang )
+	{
+	d->m_language = aLang;
+	}
+
+/**
+ * Method to set the release year
+ * @param aRelYear The release year
+ */
+void SmfLyrics::setReleaseYear( const QDateTime &aRelYear )
+	{
+	d->m_releaseYr = aRelYear;
+	}
+
+/**
+ * Method to set the id of the lyrics
+ * @param aId The ID value 
+ */
+void SmfLyrics::setId( const QString &aId )
+	{
+	d->m_lyricsId = aId;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfLyrics object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aLyrics The SmfLyrics object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfLyrics &aLyrics )
+	{
+	// Serialize d->m_lyrics
+	aDataStream<<aLyrics.d->m_lyrics;
+	
+	// Serialize d->m_language
+	aDataStream<<aLyrics.d->m_language;
+	
+	// Serialize d->m_releaseYr
+	aDataStream<<aLyrics.d->m_releaseYr;
+	
+	// Serialize d->m_lyricsId
+	aDataStream<<aLyrics.d->m_lyricsId;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfLyrics object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aLyrics The SmfLyrics object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfLyrics &aLyrics)
+	{
+	// Deserialize d->m_lyrics
+	aDataStream>>aLyrics.d->m_lyrics;
+	
+	// Deserialize d->m_language
+	aDataStream>>aLyrics.d->m_language;
+	
+	// Deserialize d->m_releaseYr
+	aDataStream>>aLyrics.d->m_releaseYr;
+	
+	// Deserialize d->m_lyricsId
+	aDataStream>>aLyrics.d->m_lyricsId;
+	
+	return aDataStream;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smflyrics.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,149 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfLyrics class represents an instance of a music track's lyrics
+ *
+ */
+
+#ifndef SMFLYRICS_H_
+#define SMFLYRICS_H_
+
+#include <qdatastream.h>
+#include <QDateTime>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <QMetaType>
+
+class SmfLyricsPrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The lyrics class represents an instance of a music track's lyrics
+ */
+class SMFCOMMON_EXPORT SmfLyrics
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfLyrics( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfLyrics( const SmfLyrics &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 * @return The current object reference
+	 */
+	SmfLyrics& operator=( const SmfLyrics &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfLyrics( );
+	
+	/**
+	 * Method to get the lyrics
+	 * @return The lyrics data
+	 */
+	QByteArray lyrics( ) const;
+	
+	/**
+	 * Method to get the language
+	 * @return The language
+	 */
+	QString language( ) const;
+	
+	/**
+	 * Method to get the release year
+	 * @return The release year
+	 */
+	QDateTime releaseYear( ) const;
+	
+	/**
+	 * Method to get the id of the lyrics
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to set the lyrics
+	 * @param aLyrics The lyrics data
+	 */
+	void setLyrics( const QByteArray &aLyrics );
+	
+	/**
+	 * Method to set the language
+	 * @param aLang The language
+	 */
+	void setLanguage( const QString &aLang );
+	
+	/**
+	 * Method to set the release year
+	 * @param aRelYear The release year
+	 */
+	void setReleaseYear( const QDateTime &aRelYear );
+	
+	/**
+	 * Method to set the id of the lyrics
+	 * @param aId The ID value 
+	 */
+	void setId( const QString &aId );
+	
+private:
+	QSharedDataPointer<SmfLyricsPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfLyrics &aLyrics );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfLyrics &aLyrics );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfLyrics object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aLyrics The SmfLyrics object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfLyrics &aLyrics );
+
+/**
+ * Method for Internalization. Reads a SmfLyrics object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aLyrics The SmfLyrics object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfLyrics &aLyrics);
+
+
+typedef QList<SmfLyrics> SmfLyricsList;
+
+// Make the class SmfLyrics known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfLyrics)
+Q_DECLARE_METATYPE(QList<SmfLyrics>)
+
+
+#endif /* SMFLYRICS_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smflyrics_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfLyrics class
+ *
+ */
+
+#ifndef SMFLYRICS_P_H_
+#define SMFLYRICS_P_H_
+
+#include <QDateTime>
+#include <QSharedData>
+
+class SmfLyricsPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfLyricsPrivate( ) { 
+		m_lyrics.clear();
+		m_language.clear();
+		m_lyricsId.clear(); 
+	}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfLyricsPrivate( const SmfLyricsPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_lyrics ( aOther.m_lyrics ),
+		m_language ( aOther.m_language ),
+		m_releaseYr ( aOther.m_releaseYr ),
+		m_lyricsId ( aOther.m_lyricsId ) 	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfLyricsPrivate( )
+		{
+		}
+  
+	QByteArray m_lyrics;	// lyrics data
+	QString m_language;		// language
+	QDateTime m_releaseYr;	// release year
+	QString m_lyricsId;		// lyrics id
+	
+};
+
+#endif /* SMFLYRICS_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfmusicfingerprint.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,108 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfMusicFingerPrint class represents a music finger print used in searches
+ *
+ */
+
+#include <smfmusicfingerprint.h>
+#include <smfmusicfingerprint_p.h>
+
+/**
+ * Constructor with default argument
+ */
+SmfMusicFingerPrint::SmfMusicFingerPrint( )
+	{
+	d = new SmfMusicFingerPrintPrivate;
+	}
+
+/**
+ * Constructor with default argument
+ * @param aParent The parent object
+ */
+SmfMusicFingerPrint::SmfMusicFingerPrint( const SmfMusicFingerPrint &aOther )
+	:d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfMusicFingerPrint& SmfMusicFingerPrint::operator=( const SmfMusicFingerPrint &aOther )
+	{
+	d->m_fingerPrintData = aOther.d->m_fingerPrintData;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfMusicFingerPrint::~SmfMusicFingerPrint( )
+	{
+	}
+
+/**
+ * GEt the music finger print data
+ * @return The music finger print data
+ */
+QByteArray SmfMusicFingerPrint::musicFingerPrint ( ) const
+	{
+	return d->m_fingerPrintData;
+	}
+
+/**
+ * Method to set the music finger print data
+ * @param aFp The music finger print data
+ */
+void SmfMusicFingerPrint::setMusicFingerPrint ( const QByteArray &aFp)
+	{
+	d->m_fingerPrintData = aFp;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfMusicFingerPrint object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aMFP The SmfMusicFingerPrint object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfMusicFingerPrint &aMFP )
+	{
+	// Serialize d->m_fingerPrintData
+	aDataStream<<aMFP.d->m_fingerPrintData;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfMusicFingerPrint object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aMFP The SmfMusicFingerPrint object to be internalized
+ * @return reference to the stream
+ */
+ QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfMusicFingerPrint &aMFP)
+	{
+	// Deserialize d->m_fingerPrintData
+	aDataStream>>aMFP.d->m_fingerPrintData;
+	
+	return aDataStream;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfmusicfingerprint.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,108 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfMusicFingerPrint class represents a music finger print used in searches
+ *
+ */
+
+#ifndef SMFMUSICFINGERPRINT_H_
+#define SMFMUSICFINGERPRINT_H_
+
+#include <QDataStream>
+#include <QSharedData>
+#include "smfclientglobal.h"
+#include <QMetaType>
+
+class SmfMusicFingerPrintPrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The musicfingerprint class represents a music finger print used in searches
+ */
+class SMFCOMMON_EXPORT SmfMusicFingerPrint
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfMusicFingerPrint( );
+	
+	/**
+	 * Constructor with default argument
+	 * @param aParent The parent object
+	 */
+	SmfMusicFingerPrint( const SmfMusicFingerPrint &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 */
+	SmfMusicFingerPrint& operator=( const SmfMusicFingerPrint &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicFingerPrint( );
+	
+	/**
+	 * Method to get the music finger print data
+	 * @return The music finger print data
+	 */
+	QByteArray musicFingerPrint ( ) const;
+	
+	/**
+	 * Method to set the music finger print data
+	 * @param aFp The music finger print data
+	 */
+	void setMusicFingerPrint ( const QByteArray &aFp);
+	
+private:
+	QSharedDataPointer<SmfMusicFingerPrintPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfMusicFingerPrint &aMFP );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfMusicFingerPrint &aMFP );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfMusicFingerPrint object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aMFP The SmfMusicFingerPrint object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfMusicFingerPrint &aMFP );
+
+/**
+ * Method for Internalization. Reads a SmfMusicFingerPrint object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aMFP The SmfMusicFingerPrint object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfMusicFingerPrint &aMFP);
+
+
+// Make the class SmfMusicFingerPrint known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfMusicFingerPrint)
+Q_DECLARE_METATYPE(QList<SmfMusicFingerPrint>)
+
+#endif /* SMFMUSICFINGERPRINT_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfmusicfingerprint_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfMusicFingerPrint class
+ *
+ */
+
+#ifndef SMFMUSICFINGERPRINT_P_H_
+#define SMFMUSICFINGERPRINT_P_H_
+
+#include <QSharedData>
+
+class SmfMusicFingerPrintPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfMusicFingerPrintPrivate( )
+		{
+		}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfMusicFingerPrintPrivate( const SmfMusicFingerPrintPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_fingerPrintData ( aOther.m_fingerPrintData )	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicFingerPrintPrivate( )
+		{
+		}
+  
+	QByteArray m_fingerPrintData;	// Finger print data
+	
+};
+
+
+#endif /* SMFMUSICFINGERPRINT_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfmusicprofile.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,183 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The music profile class represents a user's profile in music site
+ *
+ */
+
+#include <smfmusicprofile.h>
+#include <smfmusicprofile_p.h>
+
+/**
+ * Constructor with default argument
+ */
+SmfMusicProfile::SmfMusicProfile( )
+	{
+	d = new SmfMusicProfilePrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfMusicProfile::SmfMusicProfile( const SmfMusicProfile &aOther )
+	:d ( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfMusicProfile& SmfMusicProfile::operator=( const SmfMusicProfile &aOther )
+	{
+	d->m_usage = aOther.d->m_usage;
+	d->m_interest = aOther.d->m_interest;
+	d->m_events = aOther.d->m_events;
+	d->m_profileId = aOther.d->m_profileId;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfMusicProfile::~SmfMusicProfile( )
+	{
+	}
+
+/**
+ * Method to get the user's used tracks
+ * @return The users track list
+ */
+QList<SmfTrackInfo> SmfMusicProfile::musicUsageInfo( ) const
+	{
+	return d->m_usage;
+	}
+
+/**
+ * Method to get the user's interested tracks
+ * @return The users interested track list
+ */
+QList<SmfTrackInfo> SmfMusicProfile::interestInfo( ) const
+	{
+	return d->m_interest;
+	}
+
+/**
+ * Method to get the user events as list of SmfEvents
+ * @return The list of events
+ */
+QList<SmfEvent> SmfMusicProfile::userEvents( ) const
+	{
+	return d->m_events;
+	}
+
+/**
+ * Method to get the id of the music profile
+ * @return The ID value 
+ */
+QString SmfMusicProfile::id( ) const
+	{
+	return d->m_profileId;
+	}
+
+/**
+ * Method to set the user's used tracks
+ * @param aUsage The users new track list
+ */
+void SmfMusicProfile::setMusicUsageInfo( const QList<SmfTrackInfo>& aUsage )
+	{
+	d->m_usage = aUsage;
+	}
+
+/**
+ * Method to set the user's interested tracks
+ * @param aInterest The users new interested track list
+ */
+void SmfMusicProfile::setInterestInfo( const QList<SmfTrackInfo>& aInterest )
+	{
+	d->m_interest = aInterest;
+	}
+
+/**
+ * Method to set the user events as list of SmfEvents
+ * @param aList The list of events
+ */
+void SmfMusicProfile::setUserEvents( const QList<SmfEvent> &aList )
+	{
+	d->m_events = aList;
+	}
+
+/**
+ * Method to set the id of the music profile
+ * @param aId The ID value 
+ */
+void SmfMusicProfile::setId( const QString &aId )
+	{
+	d->m_profileId = aId;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfMusicProfile object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aProfile The SmfMusicProfile object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfMusicProfile &aProfile )
+	{
+	// Serialize d->m_usage
+	aDataStream<<aProfile.d->m_usage;
+	
+	// Serialize d->m_interest
+	aDataStream<<aProfile.d->m_interest;
+	
+	// Serialize d->m_events
+	aDataStream<<aProfile.d->m_events;
+	
+	// Serialize d->m_profileId
+	aDataStream<<aProfile.d->m_profileId;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfMusicProfile object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aProfile The SmfMusicProfile object to be internalized
+ * @return reference to the stream
+ */
+ QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfMusicProfile &aProfile)
+	{
+	// Deserialize d->m_usage
+	aDataStream>>aProfile.d->m_usage;
+	
+	// Deserialize d->m_interest
+	aDataStream>>aProfile.d->m_interest;
+	
+	// Deserialize d->m_events
+	aDataStream>>aProfile.d->m_events;
+	
+	// Deserialize d->m_profileId
+	aDataStream>>aProfile.d->m_profileId;
+	
+	return aDataStream;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfmusicprofile.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,150 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The music profile class represents a user's profile in music site
+ *
+ */
+
+#ifndef SMFMUSICPROFILE_H_
+#define SMFMUSICPROFILE_H_
+
+#include "smftrackinfo.h"
+#include "smfevent.h"
+#include <qdatastream.h>
+#include <QSharedData>
+#include "smfclientglobal.h"
+#include <QMetaType>
+
+class SmfMusicProfilePrivate;
+/**
+ * Implementation constants
+ */
+const int SmfMusicProfileMaxSize = 20000;
+/**
+ * @ingroup smf_common_group
+ * The music profile class represents a user's profile in music site
+ */
+class SMFCOMMON_EXPORT SmfMusicProfile
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfMusicProfile( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfMusicProfile( const SmfMusicProfile &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 */
+	SmfMusicProfile& operator=( const SmfMusicProfile &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicProfile( );
+	
+	/**
+	 * Method to get the user's used tracks
+	 * @return The users track list
+	 */
+	QList<SmfTrackInfo> musicUsageInfo( ) const;
+	
+	/**
+	 * Method to get the user's interested tracks
+	 * @return The users interested track list
+	 */
+	QList<SmfTrackInfo> interestInfo( ) const;
+	
+	/**
+	 * Method to get the user events as list of SmfEvents
+	 * @return The list of events
+	 */
+	QList<SmfEvent> userEvents( ) const;
+	
+	/**
+	 * Method to get the id of the music profile
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to set the user's used tracks
+	 * @param aUsage The users new track list
+	 */
+	void setMusicUsageInfo( const QList<SmfTrackInfo>& aUsage );
+	
+	/**
+	 * Method to set the user's interested tracks
+	 * @param aInterest The users new interested track list
+	 */
+	void setInterestInfo( const QList<SmfTrackInfo>& aInterest );
+	
+	/**
+	 * Method to set the user events as list of SmfEvents
+	 * @param aList The list of events
+	 */
+	void setUserEvents( const QList<SmfEvent> &aList );
+	
+	/**
+	 * Method to set the id of the music profile
+	 * @param aId The ID value 
+	 */
+	void setId( const QString &aId );
+
+private:
+	QSharedDataPointer<SmfMusicProfilePrivate> d;
+
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfMusicProfile &aProfile );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfMusicProfile &aProfile );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfMusicProfile object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aProfile The SmfMusicProfile object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfMusicProfile &aProfile );
+
+/**
+ * Method for Internalization. Reads a SmfMusicProfile object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aProfile The SmfMusicProfile object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfMusicProfile &aProfile);
+
+typedef QList<SmfMusicProfile> SmfMusicProfileList;
+
+// Make the class SmfMusicProfile known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfMusicProfile)
+Q_DECLARE_METATYPE(QList<SmfMusicProfile>)
+
+#endif /* SMFMUSICPROFILE_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfmusicprofile_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfMusicProfile class
+ *
+ */
+
+#ifndef SMFMUSICPROFILE_P_H_
+#define SMFMUSICPROFILE_P_H_
+
+
+#include <smftrackinfo.h>
+#include <smfevent.h>
+#include <QSharedData>
+
+class SmfMusicProfilePrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfMusicProfilePrivate( ) { 
+		m_usage.clear(); 
+		m_interest.clear();
+		m_events.clear();
+		m_profileId.clear();
+	}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfMusicProfilePrivate( const SmfMusicProfilePrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_usage ( aOther.m_usage ), 
+		m_interest ( aOther.m_interest ),
+		m_events ( aOther.m_events ),
+		m_profileId ( aOther.m_profileId ) 	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicProfilePrivate( )
+		{
+		}
+  
+	QList<SmfTrackInfo> m_usage;	// usage tracks
+	QList<SmfTrackInfo> m_interest;	// interested tracks
+	QList<SmfEvent> m_events;		// events list
+	QString m_profileId;			// profile Id
+	
+};
+
+#endif /* SMFMUSICPROFILE_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfmusicrating.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,160 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The music rating class represents an instance of rating 
+ * about a music track
+ *
+ */
+
+#include "smfmusicrating.h"
+#include "smfmusicrating_p.h"
+
+/**
+ * Constructor with default argument
+ * @param aParent The SmfTrackInfo instance
+ */
+SmfMusicRating::SmfMusicRating( SmfTrackInfo *aParent )
+	{
+	Q_UNUSED(aParent)
+	d = new SmfMusicRatingPrivate();
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfMusicRating::SmfMusicRating( const SmfMusicRating &aOther )
+	: d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator 
+ * @param aOther The reference object
+ */
+SmfMusicRating& SmfMusicRating::operator=( const SmfMusicRating &aOther )
+	{
+	d->m_rating = aOther.d->m_rating;
+	d->m_max = aOther.d->m_max;
+	d->m_min = aOther.d->m_min;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfMusicRating::~SmfMusicRating( )
+	{
+	}
+
+/**
+ * Method to get the rating
+ * @return The rating value
+ */
+int SmfMusicRating::rating( ) const
+	{
+	return d->m_rating;
+	}
+
+/**
+ * Method to get the max rating
+ * @return The max rating value
+ */
+int SmfMusicRating::maxRating( ) const
+	{
+	return d->m_max;
+	}
+
+/**
+ * Method to get the min rating
+ * @return The min rating value
+ */
+int SmfMusicRating::minRating( ) const
+	{
+	return d->m_min;
+	}
+
+/**
+ * Method to set the rating
+ * @param aRating The rating value
+ */
+void SmfMusicRating::setRating( const int &aRating )
+	{
+	d->m_rating = aRating;
+	}
+
+/**
+ * Method to set the max rating
+ * @param aMax The max rating value
+ */
+void SmfMusicRating::setMaxRating( const int &aMax )
+	{
+	d->m_max = aMax;
+	}
+
+/**
+ * Method to set the min rating
+ * @param aMin The min rating value
+ */
+void SmfMusicRating::setMinRating( const int &aMin )
+	{
+	d->m_min = aMin;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfMusicRating object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aMusicRating The SmfMusicRating object to be externalized
+ * @return reference to the written stream
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfMusicRating &aMusicRating )
+	{
+	// Serialize d->m_rating
+	aDataStream<<aMusicRating.d->m_rating;
+	
+	// Serialize d->m_max
+	aDataStream<<aMusicRating.d->m_max;
+	
+	// Serialize d->m_min
+	aDataStream<<aMusicRating.d->m_min;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfMusicRating object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aMusicRating The SmfMusicRating object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfMusicRating &aMusicRating)
+	{
+	// Deserialize d->m_rating
+	aDataStream>>aMusicRating.d->m_rating;
+	
+	// Deserialize d->m_max
+	aDataStream>>aMusicRating.d->m_max;
+	
+	// Deserialize d->m_min
+	aDataStream>>aMusicRating.d->m_min;
+	
+	return aDataStream;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfmusicrating.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,142 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The music rating class represents an instance of rating 
+ * about a music track
+ *
+ */
+
+#ifndef SMFMUSICRATING_H_
+#define SMFMUSICRATING_H_
+
+#include <QSharedData>
+#include "smfclientglobal.h"
+#include <QMetaType>
+
+class SmfTrackInfo;
+class SmfMusicRatingPrivate;
+
+/**
+ * Indicates range of values to represent ratings,
+ * SP should normalize their rating value to this scale
+ */
+const int SMF_MAX_RATING = 10;
+const int SMF_MIN_RATING = 0;
+
+/**
+ * @ingroup smf_common_group
+ * The music rating class represents an instance of rating 
+ * about a music track 
+ */
+class SMFCOMMON_EXPORT SmfMusicRating
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 * @param aParent The SmfTrackInfo instance
+	 */
+	SmfMusicRating( SmfTrackInfo *aParent = 0 );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfMusicRating( const SmfMusicRating &aOther );
+	
+	/**
+	 * Overloaded = operator 
+	 * @param aOther The reference object
+	 */
+	SmfMusicRating& operator=( const SmfMusicRating &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicRating( );
+	
+	/**
+	 * Method to get the rating
+	 * @return The rating value
+	 */
+	int rating( ) const;
+
+	/**
+	 * Method to get the max rating
+	 * @return The max rating value
+	 */
+	int maxRating( ) const;
+	
+	/**
+	 * Method to get the min rating
+	 * @return The min rating value
+	 */
+	int minRating( ) const;
+	
+	/**
+	 * Method to set the rating
+	 * @param aRating The rating value
+	 */
+	void setRating( const int &aRating );
+
+	/**
+	 * Method to set the max rating
+	 * @param aMax The max rating value
+	 */
+	void setMaxRating( const int &aMax );
+	
+	/**
+	 * Method to set the min rating
+	 * @param aMin The min rating value
+	 */
+	void setMinRating( const int &aMin );
+	
+private:
+	QSharedDataPointer<SmfMusicRatingPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfMusicRating &aMusicRating );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfMusicRating &aMusicRating );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfMusicRating object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aMusicRating The SmfMusicRating object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfMusicRating &aMusicRating );
+
+/**
+ * Method for Internalization. Reads a SmfMusicRating object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aMusicRating The SmfMusicRating object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfMusicRating &aMusicRating);
+
+
+// Make the class SmfMusicRating known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfMusicRating)
+Q_DECLARE_METATYPE(QList<SmfMusicRating>)
+
+#endif /* SMFMUSICRATING_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfmusicrating_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfMusicRating class
+ *
+ */
+
+#ifndef SMFMUSICRATING_P_H_
+#define SMFMUSICRATING_P_H_
+
+#include <QSharedData>
+#include <smfmusicrating.h>
+
+class SmfMusicRatingPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfMusicRatingPrivate( ) { 
+		m_rating = 0;
+		m_max = SMF_MAX_RATING;
+		m_min = SMF_MIN_RATING;
+	}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfMusicRatingPrivate( const SmfMusicRatingPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_rating ( aOther.m_rating ),
+		m_max ( aOther.m_max ),
+		m_min ( aOther.m_min )  { }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfMusicRatingPrivate( )
+		{
+		}
+  
+	qint32 m_rating;	// rating
+	qint32 m_max;		// max rating
+	qint32 m_min;		// min rating
+	
+};
+
+#endif /* SMFMUSICRATING_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfobserver.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,46 @@
+
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ *
+ * Description:
+ * Observer class to notify availability of asynchronous requests
+ *
+ */
+
+#ifndef SMFOBSERVER_H_
+#define SMFOBSERVER_H_
+
+#include <QObject>
+
+#include "smfglobal.h"
+
+// Forward declaration
+class QByteArray;
+
+/**
+ * Observer class to notify availability of asynchronous requests
+ */
+class smfObserver : public QObject
+	{
+public:
+	/**
+	 * To notify availibility of asynchronous requests.
+	 * @param result Requested result, before using must check error param.
+	 * @param opcode Requested opcode, for which the result has arrived.
+	 * @param error Error
+	 */
+	virtual void resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error) = 0;
+	};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpicture.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,348 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The picture class represents an instance of a picture
+ *
+ */
+
+#include "smfpicture.h"
+#include "smfpicture_p.h"
+
+/**
+ * Constructor with default argument
+ */
+SmfPicture::SmfPicture(/*bool aDownloaded*/)
+	{
+	d = new SmfPicturePrivate;
+	//d->isDownloaded = aDownloaded;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfPicture::SmfPicture( const SmfPicture &aOther )
+	: d( aOther.d )
+	{
+	}
+
+/**
+ * CConstructs SmfPicture from QImage
+ * @param aOther The QImage
+ */
+SmfPicture::SmfPicture( const QImage &aImage )
+	{
+	d = new SmfPicturePrivate(aImage);
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfPicture& SmfPicture::operator=( const SmfPicture &aOther )
+	{
+	d->m_photoId = aOther.d->m_photoId;
+	d->m_owner = aOther.d->m_owner;
+	d->m_title = aOther.d->m_title;
+	d->m_description = aOther.d->m_description;
+	d->m_picVisibility = aOther.d->m_picVisibility;
+	d->m_postedOn = aOther.d->m_postedOn;
+	d->m_comments = aOther.d->m_comments;
+	d->m_tags = aOther.d->m_tags;
+	d->m_url = aOther.d->m_url;
+	d->m_picture = aOther.d->m_picture;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfPicture::~SmfPicture( )
+	{
+	}
+
+/**
+ * Method to get a picture owner
+ * @return The owner of the picture
+ */
+QString SmfPicture::owner( ) const
+	{
+	return d->m_owner;
+	}
+
+/**
+ * Method to get a picture title
+ * @return The title of the picture
+ */
+QString SmfPicture::title( ) const
+	{
+	return d->m_title;
+	}
+
+/**
+ * Method to get a picture description
+ * @return The description of the picture
+ */
+QString SmfPicture::description( ) const
+	{
+	return d->m_description;
+	}
+
+/**
+ * Method to get a visibility of a picture for public
+ * @return The visibility mode of this picture for others
+ */
+SmfPictureVisibility SmfPicture::visibility( ) const
+	{
+	return d->m_picVisibility;
+	}
+
+/**
+ * Method to get the date of posting the picture
+ * @return The posted date of the picture
+ */
+QDateTime SmfPicture::postedDate( ) const
+	{
+	return d->m_postedOn;
+	}
+
+/**
+ * Method to get the comments for the picture
+ * @return The comments for the picture
+ */
+QList<SmfComment> SmfPicture::comments( ) const
+	{
+	return d->m_comments;
+	}
+
+/**
+ * Method to get the tags for the picture
+ * @return The tags for the picture
+ */
+QStringList SmfPicture::tags( ) const
+	{
+	return d->m_tags;
+	}
+
+/**
+ * Method to get the url of the picture
+ * @return The url of the picture
+ */
+QUrl SmfPicture::url( ) const
+	{
+	return d->m_url;
+	}
+
+/**
+ * Method to get the picture data as QImage
+ * @return The picture as QImage
+ */
+QImage SmfPicture::picture( ) const
+	{
+	return d->m_picture;
+	}
+	
+/**
+ * Method to get the id of the picture
+ * @return The ID value 
+ */
+QString SmfPicture::id( ) const
+	{
+	return d->m_photoId;
+	}
+bool SmfPicture::downloadFlag()
+	{
+	return d->isDownloaded;
+	}
+/**
+ * Method to set a picture owner
+ * @param aOwner The owner of the picture
+ */
+void SmfPicture::setOwner( const QString &aOwner )
+	{
+	d->m_owner = aOwner;
+	}
+
+/**
+ * Method to set a picture title
+ * @param aTitle The title of the picture
+ */
+void SmfPicture::setTitle( const QString &aTitle )
+	{
+	d->m_title = aTitle;
+	}
+
+/**
+ * Method to set a picture description
+ * @param aDescription The description of the picture
+ */
+void SmfPicture::setDescription( const QString &aDescription )
+	{
+	d->m_description = aDescription;
+	}
+
+/**
+ * Method to set a visibility of a picture for public
+ * @param aVisibility aVisibility The visibility mode of 
+ * this picture for others
+ */
+void SmfPicture::setVisibility( const SmfPictureVisibility &aVisibility )
+	{
+	d->m_picVisibility = aVisibility;
+	}
+
+/**
+ * Method to set the date of posting the picture
+ * @param aDate The post date of the picture
+ */
+void SmfPicture::setPostedDate( const QDateTime &aDate )
+	{
+	d->m_postedOn = aDate;
+	}
+
+/**
+ * Method to add comment on the picture
+ * @param aComment The comment for the picture
+ */
+void SmfPicture::addComment( const SmfComment &aComment )
+	{
+	d->m_comments.append(aComment);
+	}
+
+/**
+ * Method to add tags for the picture
+ * @param aTag The tag for the picture
+ */
+void SmfPicture::addTags( const QStringList &aTags )
+	{
+	d->m_tags = aTags;
+	}
+
+/**
+ * Method to set the url of the picture
+ * @param aUrl The url of the picture
+ */
+void SmfPicture::setUrl( const QUrl &aUrl )
+	{
+	d->m_url = aUrl;
+	}
+
+/**
+ * Method to set the picture data as QImage
+ * @param aData The picture as QImage
+ */
+void SmfPicture::setPicture( const QImage &aData )
+	{
+	d->m_picture = aData;
+	}
+
+/**
+ * Method to set the id of the picture
+ * @param aId The ID value 
+ */
+void SmfPicture::setId( const QString &aId )
+	{
+	d->m_photoId = aId;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfPicture object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aPic The SmfPicture object to be externalized
+ * @return reference to the written stream
+ */
+QDataStream& operator<<( QDataStream &aDataStream, 
+		const SmfPicture &aPic )
+	{
+	// Serialize d->m_photoId
+	aDataStream<<aPic.d->m_photoId;
+	
+	// Serialize d->m_owner
+	aDataStream<<aPic.d->m_owner;
+	
+	// Serialize d->m_title
+	aDataStream<<aPic.d->m_title;
+	
+	// Serialize d->m_description
+	aDataStream<<aPic.d->m_description;
+	
+	// Serialize d->m_picVisibility
+	aDataStream<<aPic.d->m_picVisibility;
+	
+	// Serialize d->m_postedOn
+	aDataStream<<aPic.d->m_postedOn;
+	
+	// Serialize d->m_comments
+	aDataStream<<aPic.d->m_comments;
+	
+	// Serialize d->m_tags
+	aDataStream<<aPic.d->m_tags;
+	
+	// Serialize d->m_url
+	aDataStream<<aPic.d->m_url;
+	
+	// Serialize d->m_picture
+	aDataStream<<aPic.d->m_picture;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfPicture object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aPic The SmfPicture object to be internalized
+ * @return reference to the stream
+ */
+QDataStream& operator>>( QDataStream &aDataStream, 
+		SmfPicture &aPic)
+	{
+	// Deserialize d->m_photoId
+	aDataStream>>aPic.d->m_photoId;
+	
+	// Deserialize d->m_owner
+	aDataStream>>aPic.d->m_owner;
+	
+	// Deserialize d->m_title
+	aDataStream>>aPic.d->m_title;
+	
+	// Deserialize d->m_description
+	aDataStream>>aPic.d->m_description;
+	
+	// Deserialize d->m_picVisibility
+	quint32 val = 0;
+	aDataStream>>val;
+	aPic.d->m_picVisibility = (SmfPictureVisibility)val;
+
+	// Deserialize d->m_postedOn
+	aDataStream>>aPic.d->m_postedOn;
+	
+	// Deserialize d->m_comments
+	aDataStream>>aPic.d->m_comments;
+	
+	// Deserialize d->m_tags
+	aDataStream>>aPic.d->m_tags;
+	
+	// Deserialize d->m_url
+	aDataStream>>aPic.d->m_url;
+	
+	// Deserialize d->m_picture
+	aDataStream>>aPic.d->m_picture;
+	
+	return aDataStream;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpicture.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,255 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The picture class represents an instance of a picture
+ *
+ */
+
+#ifndef SMFPICTURE_H_
+#define SMFPICTURE_H_
+
+#include <QImage>
+#include <QDateTime>
+#include <QStringList>
+#include <QUrl>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <QMetaType>
+#include <smfcomment.h>
+
+class SmfPicturePrivate;
+/**
+ * Max size for one SmfPicture
+ */
+const int MaxSmfPictureSize = 1000;
+/**
+ * SmfPictureVisibility enumeration
+ */
+enum SmfPictureVisibility
+	{
+	SMFVisibilityFriend,
+	SMFVisibilityPersonal,
+	SMFVisibilityFamily,
+	SMFVisibilityGroup,
+	SMFVisibilityPublic
+	};
+
+/**
+ * @ingroup smf_common_group
+ * The picture class represents an instance of a picture
+ */
+class SMFCOMMON_EXPORT SmfPicture
+	{
+public:
+	/**
+	 * Constructor with default argument.
+	 * @param aDownloaded This flag is to know whether the content is downloaded
+	 * in the device(if true). If false it signifies that SmfPicture contains
+	 * a link/url to the location of the content
+	 */
+	SmfPicture(/*bool aDownloaded = false*/ );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfPicture( const SmfPicture &aOther );
+	
+	/**
+	 * CConstructs SmfPicture from QImage
+	 * @param aImage The QImage
+	 */
+	SmfPicture( const QImage &aImage );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 * @return The current object reference
+	 */
+	SmfPicture& operator=(const SmfPicture &aOther);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPicture( );
+	
+	/**
+	 * Method to get a picture owner
+	 * @return The owner of the picture
+	 */
+	QString owner( ) const;
+	
+	/**
+	 * Method to get a picture title
+	 * @return The title of the picture
+	 */
+	QString title( ) const;
+	
+	/**
+	 * Method to get a picture description
+	 * @return The description of the picture
+	 */
+	QString description( ) const;
+	
+	/**
+	 * Method to get a visibility of a picture for public
+	 * @return The visibility mode of this picture for others
+	 */
+	SmfPictureVisibility visibility( ) const;
+	
+	/**
+	 * Method to get the date of posting the picture
+	 * @return The posted date of the picture
+	 */
+	QDateTime postedDate( ) const;
+	
+	/**
+	 * Method to get the comments for the picture
+	 * @return The comments for the picture
+	 */
+	QList<SmfComment> comments( ) const;
+	
+	/**
+	 * Method to get the tags for the picture
+	 * @return The tags for the picture
+	 */
+	QStringList tags( ) const;
+	
+	/**
+	 * Method to get the url of the picture
+	 * @return The url of the picture
+	 */
+	QUrl url( ) const;
+	
+	/**
+	 * Method to get the picture data as QImage
+	 * @return The picture as QImage
+	 */
+	QImage picture( ) const;
+	
+	/**
+	 * Method to get the id of the picture
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Gets download flag. This flag is to know whether the content is downloaded
+	 * in the device(if true). If false it signifies that SmfPicture contains
+	 * a link/url to the location of the content
+	 */
+	bool downloadFlag();
+			
+	/**
+	 * Method to set a picture owner
+	 * @param aOwner The owner of the picture
+	 */
+	void setOwner( const QString &aOwner );
+	
+	/**
+	 * Method to set a picture title
+	 * @param aTitle The title of the picture
+	 */
+	void setTitle( const QString &aTitle );
+	
+	/**
+	 * Method to set a picture description
+	 * @param aDescription The description of the picture
+	 */
+	void setDescription( const QString &aDescription );
+	
+	/**
+	 * Method to set a visibility of a picture for public
+	 * @param aVisibility aVisibility The visibility mode of 
+	 * this picture for others
+	 */
+	void setVisibility( const SmfPictureVisibility &aVisibility );
+	
+	/**
+	 * Method to set the date of posting the picture
+	 * @param aDate The post date of the picture
+	 */
+	void setPostedDate( const QDateTime &aDate );
+	
+	/**
+	 * Method to add comment on the picture
+	 * @param aComment The comment for the picture
+	 */
+	void addComment( const SmfComment &aComment );
+	
+	/**
+	 * Method to add tags for the picture
+	 * @param aTag The tag for the picture
+	 */
+	void addTags( const QStringList &aTags );
+	
+	/**
+	 * Method to set the url of the picture
+	 * @param aUrl The url of the picture
+	 */
+	void setUrl( const QUrl &aUrl );
+	
+	/**
+	 * Method to set the picture data as QImage
+	 * @param aData The picture as QImage
+	 */
+	void setPicture( const QImage &aData );
+	
+	/**
+	 * Method to set the id of the picture
+	 * @param aId The ID value 
+	 */
+	void setId( const QString &aId );
+	
+private:
+	QSharedDataPointer<SmfPicturePrivate> d;
+	
+	friend QDataStream& operator<<( QDataStream &aDataStream, 
+			const SmfPicture &aPic );
+
+	friend QDataStream& operator>>( QDataStream &aDataStream, 
+			SmfPicture &aPic );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfPicture object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aPic The SmfPicture object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream& operator<<( QDataStream &aDataStream, 
+		const SmfPicture &aPic );
+
+/**
+ * Method for Internalization. Reads a SmfPicture object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aPic The SmfPicture object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream& operator>>( QDataStream &aDataStream, 
+		SmfPicture &aPic);
+
+typedef QList<SmfPicture> SmfPictureList;
+
+// Make the class SmfPicture known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfPicture)
+Q_DECLARE_METATYPE(QList<SmfPicture>)
+
+#endif /* SMFPICTURE_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpicture_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,110 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfPicture class
+ *
+ */
+
+#ifndef SMFPICTURE_P_H_
+#define SMFPICTURE_P_H_
+
+
+#include <QDateTime>
+#include <QStringList>
+#include <QUrl>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <smfpicture.h>
+
+class SmfPicturePrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfPicturePrivate( ) { 
+		m_photoId.clear();
+		m_owner.clear();
+		m_title.clear();
+		m_description.clear();
+		m_comments.clear();
+		m_tags.clear();
+		m_url.clear();
+		isDownloaded = false;
+	}
+	/**
+	 * Constructor
+	 */
+	SmfPicturePrivate( const QImage &aImage ) { 
+		m_photoId.clear();
+		m_owner.clear();
+		m_title.clear();
+		m_description.clear();
+		m_comments.clear();
+		m_tags.clear();
+		m_url.clear();
+		m_picture = aImage;
+		//false by default
+		isDownloaded = false;
+	}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfPicturePrivate( const SmfPicturePrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_photoId ( aOther.m_photoId ),
+		m_owner ( aOther.m_owner ),
+		m_title ( aOther.m_title ),
+		m_description ( aOther.m_description ),
+		m_picVisibility ( aOther.m_picVisibility ),
+		m_postedOn ( aOther.m_postedOn ),
+		m_comments ( aOther.m_comments ),
+		m_tags ( aOther.m_tags ),
+		m_url ( aOther.m_url ),
+		m_picture ( aOther.m_picture ),
+		isDownloaded(aOther.isDownloaded)
+			{
+		
+			}
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPicturePrivate( )
+		{
+		}
+  
+	QString m_photoId;		// unique ID of the picture, service provider specific
+	QString m_owner;		// owner of the picture
+	QString m_title;		// picture title
+	QString m_description;	// description
+	SmfPictureVisibility m_picVisibility;// picture visibility
+	QDateTime m_postedOn;	// date posted
+	QList<SmfComment> m_comments;		 // comments
+	QStringList m_tags;		// tags
+	QUrl m_url;				// url
+	QImage m_picture;		// picture data as bytearray
+	/**
+	 * Flag whether the content is actually available in device - 
+	 * if this is false then only the url/link to the media is available 
+	 * in the class - clients can use the link to download the content/visit 
+	 * the site.
+	 */
+	bool isDownloaded;
+};
+
+#endif /* SMFPICTURE_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpicturealbum.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,338 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The album to contain a set pf pictures
+ *
+ */
+
+#include <smfpicturealbum.h>
+#include <smfpicturealbum_p.h>
+
+/**
+ * Constructor with default argument
+ */
+SmfPictureAlbum::SmfPictureAlbum( )
+	{
+	d = new SmfPictureAlbumPrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfPictureAlbum::SmfPictureAlbum( const SmfPictureAlbum &aOther )
+	: d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfPictureAlbum& SmfPictureAlbum::operator=( const SmfPictureAlbum &aOther )
+	{
+	d->m_albumId = aOther.d->m_albumId;
+	d->m_title = aOther.d->m_title;
+	d->m_description = aOther.d->m_description;
+	d->m_albumVisibility = aOther.d->m_albumVisibility;
+	d->m_postedOn = aOther.d->m_postedOn;
+	d->m_comments = aOther.d->m_comments;
+	d->m_keywords = aOther.d->m_keywords;
+	d->m_url = aOther.d->m_url;
+	d->m_picCount =aOther.d->m_picCount;
+	d->m_thumbnail = aOther.d->m_thumbnail ;	
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfPictureAlbum::~SmfPictureAlbum( )
+	{
+	
+	}
+
+
+/**
+ * Method to get a album title
+ * @return The title of the album
+ */
+QString SmfPictureAlbum::title( ) const
+	{
+	return d->m_title;
+	}
+
+/**
+ * Method to get a album description
+ * @return The description of the album
+ */
+QString SmfPictureAlbum::description( ) const
+	{
+	return d->m_description;
+	}
+
+/**
+ * Method to get a visibility of a album for public
+ * @return The visibility mode of this album for others
+ */
+SmfPictureVisibility SmfPictureAlbum::visibility( ) const
+	{
+	return d->m_albumVisibility;
+	}
+
+/**
+ * Method to get the date of posting the album
+ * @return The posted date of the album
+ */
+QDateTime SmfPictureAlbum::postedDate( ) const
+	{
+	return d->m_postedOn;
+	}
+
+/**
+ * Method to get the comments for the album
+ * @return The comments for the album
+ */
+QList<SmfComment> SmfPictureAlbum::comments( ) const
+	{
+	return d->m_comments;
+	}
+
+/**
+ * Method to get the tags for the album
+ * @return The tags for the album
+ */
+QStringList SmfPictureAlbum::keywords( ) const
+	{
+	return d->m_keywords;
+	}
+
+/**
+ * Method to get the url of the album
+ * @return The url of the album
+ */
+QUrl SmfPictureAlbum::url( ) const
+	{
+	return d->m_url;
+	}
+
+/**
+ * Method to get the thumbnail for this album as QImage
+ * @return The picture as QImage
+ */
+QImage SmfPictureAlbum::thumbnail( ) const
+	{
+	return d->m_thumbnail;
+	}
+
+/**
+ * Method to get the album data as QImage
+ * @return The album as QImage
+ */
+qint32 SmfPictureAlbum::pictureCount( ) const
+	{
+	return d->m_picCount;
+	}
+	
+/**
+ * Method to get the id of the album
+ * @return The ID value 
+ */
+QString SmfPictureAlbum::id( ) const
+	{
+	return d->m_albumId;
+	}
+
+/**
+ * Method to set a album title
+ * @param aTitle The title of the album
+ */
+void SmfPictureAlbum::setTitle( const QString &aTitle )
+	{
+	d->m_title = aTitle;
+	}
+
+/**
+ * Method to set a album description
+ * @param aDescription The description of the album
+ */
+void SmfPictureAlbum::setDescription( const QString &aDescription )
+	{
+	d->m_description = aDescription;
+	}
+
+/**
+ * Method to set a visibility of a album for public
+ * @param aVisibility aVisibility The visibility mode of 
+ * this album for others
+ */
+void SmfPictureAlbum::setVisibility( const SmfPictureVisibility &aVisibility )
+	{
+	d->m_albumVisibility = aVisibility;
+	}
+
+/**
+ * Method to set the date of posting the album
+ * @param aDate The post date of the album
+ */
+void SmfPictureAlbum::setPostedDate( const QDateTime &aDate )
+	{
+	d->m_postedOn = aDate;
+	}
+
+/**
+ * Method to add comment on the album
+ * @param aComment The comment for the album
+ */
+void SmfPictureAlbum::addComment( const SmfComment &aComment )
+	{
+	d->m_comments.append(aComment);
+	}
+
+/**
+ * Method to add tags for the album
+ * @param aTag The tag for the album
+ */
+void SmfPictureAlbum::addKeywords(const QStringList &aKeywords )
+	{
+	d->m_keywords = aKeywords;
+	}
+
+/**
+ * Method to set the url of the album
+ * @param aUrl The url of the album
+ */
+void SmfPictureAlbum::setUrl( const QUrl &aUrl )
+	{
+	d->m_url = aUrl;
+	}
+
+/**
+ * Method to set the album data as QImage
+ * @param aData The album as QImage
+ */
+void SmfPictureAlbum::setThumbnail( const QImage &aData )
+	{
+	d->m_thumbnail = aData;
+	}
+
+/**
+ * Method to get the number of pictures in this album
+ * @return number of pictures in this album
+ */
+ void SmfPictureAlbum::setPictureCount( const qint32 aCount)
+	 {
+	 d->m_picCount = aCount;
+	 }
+
+/**
+ * Method to set the id of the album
+ * @param aId The ID value 
+ */
+void SmfPictureAlbum::setId( const QString &aId )
+	{
+	d->m_albumId = aId;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfPictureAlbum object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aPic The SmfPictureAlbum object to be externalized
+ * @return reference to the written stream
+ */
+QDataStream& operator<<( QDataStream &aDataStream, 
+		const SmfPictureAlbum &aAlbm )
+	{
+	//serialize d->m_albumId;
+	aDataStream << aAlbm.d->m_albumId;
+
+	//serialize d->m_title;
+	aDataStream << aAlbm.d->m_title;
+
+	//serialize d->m_description;
+	aDataStream << aAlbm.d->m_description;
+
+	//serialize d->m_albumVisibility;
+	quint32 val = aAlbm.d->m_albumVisibility;
+	aDataStream << val;
+
+	//serialize d->m_postedOn;
+	aDataStream << aAlbm.d->m_postedOn;
+
+	//serialize d->m_comments;
+	aDataStream << aAlbm.d->m_comments;
+
+	//serialize d->m_keywords;
+	aDataStream << aAlbm.d->m_keywords;
+
+	//serialize d->m_url;
+	aDataStream << aAlbm.d->m_url;
+
+	//serialize d->m_picCount;
+	aDataStream << aAlbm.d->m_picCount;
+
+	//serialize d->m_thumbnail ;	
+	aDataStream << aAlbm.d->m_thumbnail ;	
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfPictureAlbum object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aPic The SmfPictureAlbum object to be internalized
+ * @return reference to the stream
+ */
+QDataStream& operator>>( QDataStream &aDataStream, 
+		SmfPictureAlbum &aAlbm)
+	{
+	//deserialize d->m_albumId;
+	aDataStream >> aAlbm.d->m_albumId;
+
+	//deserialize d->m_title;
+	aDataStream >> aAlbm.d->m_title;
+
+	//deserialize d->m_description;
+	aDataStream >> aAlbm.d->m_description;
+
+	//deserialize d->m_albumVisibility;
+	quint32 val =  0;
+	aDataStream >>val;
+	aAlbm.d->m_albumVisibility = (SmfPictureVisibility)val;
+
+	//deserialize d->m_postedOn;
+	aDataStream >> aAlbm.d->m_postedOn;
+
+	//deserialize d->m_comments;
+	aDataStream >> aAlbm.d->m_comments;
+
+	//deserialize d->m_keywords;
+	aDataStream >> aAlbm.d->m_keywords;
+
+	//deserialize d->m_url;
+	aDataStream >> aAlbm.d->m_url;
+
+	//deserialize d->m_picCount;
+	aDataStream >> aAlbm.d->m_picCount;
+
+	//deserialize d->m_thumbnail ;	
+	aDataStream >> aAlbm.d->m_thumbnail ;	
+
+	return aDataStream;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpicturealbum.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,227 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The album class represents an online picture album (collection/gallery)
+ *
+ */
+
+#ifndef SMFPICTUREALBUM_H_
+#define SMFPICTUREALBUM_H_
+
+#include <QImage>
+#include <QDateTime>
+#include <QStringList>
+#include <QUrl>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <QMetaType>
+#include <smfcomment.h>
+#include <smfpicture.h>
+
+class SmfPictureAlbumPrivate;
+/**Implementation const */
+const int MaxSmfPictureAlbumSize = 20000;//20KB
+
+/**
+ * @ingroup smf_common_group
+ * album class represents an online picture album (collection)
+ */
+class SMFCOMMON_EXPORT SmfPictureAlbum
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfPictureAlbum( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfPictureAlbum( const SmfPictureAlbum &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 * @return The current object reference
+	 */
+	SmfPictureAlbum& operator=(const SmfPictureAlbum &aOther);
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPictureAlbum( );
+	
+	/**
+	 * Method to get a album title
+	 * @return The title of the album
+	 */
+	QString title( ) const;
+	
+	/**
+	 * Method to get a album description
+	 * @return The description of the album
+	 */
+	QString description( ) const;
+	
+	/**
+	 * Method to get a visibility of a album for public
+	 * @return The visibility mode of this album for others
+	 */
+	SmfPictureVisibility visibility( ) const;
+	
+	/**
+	 * Method to get the date of posting the album
+	 * @return The posted date of the album
+	 */
+	QDateTime postedDate( ) const;
+	
+	/**
+	 * Method to get the comments for the album
+	 * @return The comments for the album
+	 */
+	QList<SmfComment> comments( ) const;
+	
+	/**
+	 * Method to get the keywords for the album
+	 * @return The keywords for the album
+	 */
+	QStringList keywords( ) const;
+	
+	/**
+	 * Method to get the url of the album
+	 * @return The url of the album
+	 */
+	QUrl url( ) const;
+	
+	/**
+	 * Method to get the thumbnail for this album as QImage
+	 * @return The picture as QImage
+	 */
+	QImage thumbnail( ) const;
+
+	/**
+	 * Method to get the number of pictures in this album
+	 * @return number of pictures in this album
+	 */
+	qint32 pictureCount( ) const;
+
+	/**
+	 * Method to get the id of the album
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+		
+	/**
+	 * Method to set a album title
+	 * @param aTitle The title of the album
+	 */
+	void setTitle( const QString &aTitle );
+	
+	/**
+	 * Method to set a album description
+	 * @param aDescription The description of the album
+	 */
+	void setDescription( const QString &aDescription );
+	
+	/**
+	 * Method to set a visibility of a album for public
+	 * @param aVisibility aVisibility The visibility mode of 
+	 * this album for others
+	 */
+	void setVisibility( const SmfPictureVisibility &aVisibility );
+	
+	/**
+	 * Method to set the date of posting the album
+	 * @param aDate The post date of the album
+	 */
+	void setPostedDate( const QDateTime &aDate );
+	
+	/**
+	 * Method to add comment on the album
+	 * @param aComment The comment for the album
+	 */
+	void addComment( const SmfComment &aComment );
+	
+	/**
+	 * Method to add keywords for the album
+	 * @param aTag The tag for the album
+	 */
+	void addKeywords( const QStringList &aWords );
+	
+	/**
+	 * Method to set the url of the album
+	 * @param aUrl The url of the album
+	 */
+	void setUrl( const QUrl &aUrl );
+
+	/**
+	 * Method to set the thumbnail for this album as QImage
+	 * @return The picture as QImage
+	 */
+	void setThumbnail(const QImage &aImage );
+	
+	/**
+	 * Method to get the number of pictures in this album
+	 * @return number of pictures in this album
+	 */
+	 void setPictureCount( const qint32 aCount);
+
+	/**
+	 * Method to set the id of the album
+	 * @param aId The ID value 
+	 */
+	void setId( const QString &aId );
+	
+private:
+	QSharedDataPointer<SmfPictureAlbumPrivate> d;
+	
+	friend QDataStream& operator<<( QDataStream &aDataStream, 
+			const SmfPictureAlbum &aAlbm );
+
+	friend QDataStream& operator>>( QDataStream &aDataStream, 
+			SmfPictureAlbum &aAlbm );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfPictureAlbum object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aAlbm The SmfPictureAlbum object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream& operator<<( QDataStream &aDataStream, 
+		const SmfPictureAlbum &aAlbm );
+
+/**
+ * Method for Internalization. Reads a SmfPictureAlbum object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aAlbm The SmfPictureAlbum object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream& operator>>( QDataStream &aDataStream, 
+		SmfPictureAlbum &aAlbm);
+
+typedef QList<SmfPictureAlbum> SmfPictureAlbumList;
+
+// Make the class SmfPictureAlbum known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfPictureAlbum)
+Q_DECLARE_METATYPE(QList<SmfPictureAlbum>)
+
+#endif /* SMFPICTUREALBUM_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpicturealbum_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfPictureAlbum class
+ *
+ */
+
+#ifndef SMFPICTUREALBUM_P_H_
+#define SMFPICTUREALBUM_P_H_
+
+
+#include <QDateTime>
+#include <QStringList>
+#include <QUrl>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <smfpicturealbum.h>
+
+class SmfPictureAlbumPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfPictureAlbumPrivate( ) { 
+		m_title.clear();		// album title
+		m_description.clear();	// description
+		m_albumVisibility = SMFVisibilityPublic;// album visibility
+		m_comments.clear();		 // comments
+		m_keywords.clear();		// tags
+		m_url.clear();				// url
+		m_picCount=0;	//count of pictures
+		m_albumId.clear();		// unique ID of the album, service provider specific	
+	}
+	
+
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfPictureAlbumPrivate( const SmfPictureAlbumPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_albumId ( aOther.m_albumId),
+		m_title ( aOther.m_title ),
+		m_description ( aOther.m_description ),
+		m_albumVisibility ( aOther.m_albumVisibility ),
+		m_postedOn ( aOther.m_postedOn ),
+		m_comments ( aOther.m_comments ),
+		m_keywords ( aOther.m_keywords ),
+		m_url ( aOther.m_url ),
+		m_picCount (aOther.m_picCount),
+		m_thumbnail ( aOther.m_thumbnail )	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPictureAlbumPrivate( )
+		{
+		}
+  
+	/**
+	 * Member variables
+	 */
+	QString m_title;		// album title
+	QString m_description;	// description
+	SmfPictureVisibility m_albumVisibility;// album visibility
+	QDateTime m_postedOn;	// date posted
+	QList<SmfComment> m_comments;		 // comments
+	QStringList m_keywords;		// tags
+	QUrl m_url;				// url
+	QImage m_thumbnail;		// thumbnail data
+	quint32	 m_picCount;	//count of pictures
+	QString m_albumId;		// unique ID of the album, service provider specific	
+};
+
+#endif /* SMFPICTUREALBUM_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfplaylist.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,441 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The playlist class represents an instance of a playlist.
+ * SmfPlaylist class is in accordance with the XML Shareable Playlist Format (XSPF)
+ * as mentioned in http://xspf.org/xspf-v1.html
+ *
+ */
+
+#include <smfplaylist.h>
+#include <smfplaylist_p.h>
+
+/**
+ * Constructor with default argument
+ */
+SmfPlaylist::SmfPlaylist( )
+	{
+	d = new SmfPlaylistPrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfPlaylist::SmfPlaylist( const SmfPlaylist &aOther )
+	: d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfPlaylist& SmfPlaylist::operator=( const SmfPlaylist &aOther )
+	{
+	d->m_version = aOther.d->m_version;
+	d->m_title = aOther.d->m_title;
+	d->m_author = aOther.d->m_author;
+	d->m_comments = aOther.d->m_comments;
+	d->m_info = aOther.d->m_info;
+	d->m_location = aOther.d->m_location;
+	d->m_playlistId = aOther.d->m_playlistId;
+	d->m_image = aOther.d->m_image;
+	d->m_creationDate = aOther.d->m_creationDate;
+	d->m_license = aOther.d->m_license;
+	d->m_attribution = aOther.d->m_attribution;
+	d->m_metadata = aOther.d->m_metadata;
+	d->m_extension = aOther.d->m_extension;
+	d->m_trackList = aOther.d->m_trackList;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfPlaylist::~SmfPlaylist( )
+	{
+	}
+
+/**
+ * Method to get the version of the playlist
+ * @return The version of the playlist
+ */
+QString SmfPlaylist::version( ) const
+	{
+	return d->m_version;
+	}
+
+/**
+ * Method to get the playlist title
+ * @return The title of the playlist
+ */
+QString SmfPlaylist::playListTitle( ) const
+	{
+	return d->m_title;
+	}
+
+/**
+ * Method to get the author of the playlist
+ * @return The author of the playlist
+ */
+QString SmfPlaylist::author( ) const
+	{
+	return d->m_author;
+	}
+
+/**
+ * Method to get the comments on the playlist
+ * @return The comments on the playlist
+ */
+QList<SmfComment> SmfPlaylist::comments( ) const
+	{
+	return d->m_comments;
+	}
+
+/**
+ * Method to get the URI of a web page to find out more about this playlist
+ * @return The info Url
+ */
+QUrl SmfPlaylist::info( ) const
+	{
+	return d->m_info;
+	}
+		
+/**
+ * Method to get the Source URI for this playlist
+ * @return The Source URI for this playlist
+ */
+QUrl SmfPlaylist::location( ) const
+	{
+	return d->m_location;
+	}
+
+/**
+ * Method to get the id of the playlist
+ * @return The ID value 
+ */
+QString SmfPlaylist::id( ) const
+	{
+	return d->m_playlistId;
+	}
+
+/**
+ * Method to get the URI of an image to display in the absence 
+ * of an image for playlist's tracks
+ * @return The deafult image Url
+ */
+QUrl SmfPlaylist::image( ) const
+	{
+	return d->m_image;
+	}
+
+/**
+ * Method to get the creation date of the playlist
+ * @return The date and time of creation of the playlist
+ */
+QDateTime SmfPlaylist::creationDate( ) const
+	{
+	return d->m_creationDate;
+	}
+
+/**
+ * Method to get the URI of a resource that describes the license 
+ * under which this playlist was released
+ * @return The license Url
+ */
+QUrl SmfPlaylist::license( ) const
+	{
+	return d->m_license;
+	}
+
+/**
+ * Method to get the ordered list of URIs. The purpose is to satisfy 
+ * licenses allowing modification but requiring attribution
+ * @return The list of license Urls
+ */
+QList<QUrl> SmfPlaylist::attribution( ) const
+	{
+	return d->m_attribution;
+	}
+
+/**
+ * Method to get the meta element that allows metadata fields to be added to XSPF
+ * @return The meta elements as a QVarintMap
+ */
+QVariantMap SmfPlaylist::metadata( ) const
+	{
+	return d->m_metadata;
+	}
+
+/**
+ * Method to get the extension element that allows non-XSPF XML 
+ * to be included in XSPF documents
+ * @return The extension elements as a QVarintMap
+ */
+QVariantMap SmfPlaylist::extension( ) const
+	{
+	return d->m_extension;
+	}
+
+/**
+ * Method to get the list of tracks in the playlist
+ * @return The list of tracks in the playlist
+ */
+QList<SmfTrackInfo> SmfPlaylist::trackList( ) const
+	{
+	return d->m_trackList;
+	}
+
+/**
+ * Method to set the version of the playlist
+ * @param aVersion The version of the playlist
+ */
+void SmfPlaylist::setVersion( const QString& aVersion )
+	{
+	d->m_version = aVersion;
+	}
+
+/**
+ * Method to set the playlist title
+ * @param aTitle The title of the playlist
+ */
+void SmfPlaylist::setPlayListTitle( const QString &aTitle )
+	{
+	d->m_title = aTitle;
+	}
+
+/**
+ * Method to set the author of the playlist
+ * @param aAuthor The author of the playlist
+ */
+void SmfPlaylist::setAuthor( const QString& aAuthor )
+	{
+	d->m_author = aAuthor;
+	}
+
+/**
+ * Method to set the comments on the playlist
+ * @param aComments The comments on the playlist
+ */
+void SmfPlaylist::setComments( const QList<SmfComment>& aComments )
+	{
+	d->m_comments = aComments;
+	}
+
+/**
+ * Method to set the URI of a web page to find out more about this playlist
+ * @param aInfoUrl The info Url
+ */
+void SmfPlaylist::setInfo( const QUrl& aInfoUrl )
+	{
+	d->m_info = aInfoUrl;
+	}
+
+/**
+ * Method to set the Source URI for this playlist
+ * @param aLocation The Source URI for this playlist
+ */
+void SmfPlaylist::setLocation( const QUrl& aLocation )
+	{
+	d->m_location = aLocation;
+	}
+
+/**
+ * Method to set the id of the playlist
+ * @param aId The ID value 
+ */
+void SmfPlaylist::setId( const QString &aId)
+	{
+	d->m_playlistId = aId;
+	}
+
+/**
+ * Method to set the URI of an image to display in the absence 
+ * of an image for playlist's tracks
+ * @param aImage The default image Url
+ */
+void SmfPlaylist::setImage( const QUrl& aImage )
+	{
+	d->m_image = aImage;
+	}
+
+/**
+ * Method to set the creation date of the playlist
+ * @param aDate The date and time of creation of the playlist
+ */
+void SmfPlaylist::setCreationDate( const QDateTime& aDate )
+	{
+	d->m_creationDate = aDate;
+	}
+
+/**
+ * Method to set the URI of a resource that describes the license 
+ * under which this playlist was released
+ * @param aLicense The license Url
+ */
+void SmfPlaylist::setLicense( const QUrl& aLicense )
+	{
+	d->m_license = aLicense;
+	}
+
+/**
+ * Method to set the ordered list of URIs. The purpose is to satisfy 
+ * licenses allowing modification but requiring attribution
+ * @param aAttribution The list of license Urls
+ */
+void SmfPlaylist::setAttribution( const QList<QUrl>& aAttribution )
+	{
+	d->m_attribution = aAttribution;
+	}
+
+/**
+ * Method to set the meta element that allows metadata fields to be added to XSPF
+ * @param aMetaData The meta elements as a QVarintMap
+ */
+void SmfPlaylist::setMetadata( const QVariantMap& aMetaData )
+	{
+	d->m_metadata = aMetaData;
+	}
+
+/**
+ * Method to set the extension element that allows non-XSPF XML 
+ * to be included in XSPF documents
+ * @param aExtension The extension elements as a QVarintMap
+ */
+void SmfPlaylist::setExtension( const QVariantMap& aExtension )
+	{
+	d->m_extension = aExtension;
+	}
+
+/**
+ * Method to set the list of tracks in the playlist
+ * @param aList The new list of tracks in the playlist
+ */
+void SmfPlaylist::setTrackList( const QList<SmfTrackInfo> &aList )
+	{
+	d->m_trackList = aList;
+	}
+
+/**
+ * Method for Externalization. Writes the SmfPlaylist object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aPlaylist The SmfPlaylist object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfPlaylist &aPlaylist )
+	{
+	// Serialize d->m_version
+	aDataStream<<aPlaylist.d->m_version;
+	
+	// Serialize d->m_title
+	aDataStream<<aPlaylist.d->m_title;
+	
+	// Serialize d->m_author
+	aDataStream<<aPlaylist.d->m_author;
+	
+	// Serialize d->m_comments
+	aDataStream<<aPlaylist.d->m_comments;
+	
+	// Serialize d->m_info
+	aDataStream<<aPlaylist.d->m_info;
+	
+	// Serialize d->m_location
+	aDataStream<<aPlaylist.d->m_location;
+	
+	// Serialize d->m_playlistId
+	aDataStream<<aPlaylist.d->m_playlistId;
+	
+	// Serialize d->m_image
+	aDataStream<<aPlaylist.d->m_image;
+	
+	// Serialize d->m_creationDate
+	aDataStream<<aPlaylist.d->m_creationDate;
+	
+	// Serialize d->m_license
+	aDataStream<<aPlaylist.d->m_license;
+	
+	// Serialize d->m_attribution
+	aDataStream<<aPlaylist.d->m_attribution;
+	
+	// Serialize d->m_metadata
+	aDataStream<<aPlaylist.d->m_metadata;
+	
+	// Serialize d->m_extension
+	aDataStream<<aPlaylist.d->m_extension;
+	
+	// Serialize d->m_trackList
+	aDataStream<<aPlaylist.d->m_trackList;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfPlaylist object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aPlaylist The SmfPlaylist object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfPlaylist &aPlaylist)
+	{
+	// Deserialize d->m_version
+	aDataStream>>aPlaylist.d->m_version;
+	
+	// Deserialize d->m_title
+	aDataStream>>aPlaylist.d->m_title;
+	
+	// Deserialize d->m_author
+	aDataStream>>aPlaylist.d->m_author;
+	
+	// Deserialize d->m_comments
+	aDataStream>>aPlaylist.d->m_comments;
+	
+	// Deserialize d->m_info
+	aDataStream>>aPlaylist.d->m_info;
+	
+	// Deserialize d->m_location
+	aDataStream>>aPlaylist.d->m_location;
+	
+	// Deserialize d->m_playlistId
+	aDataStream>>aPlaylist.d->m_playlistId;
+	
+	// Deserialize d->m_image
+	aDataStream>>aPlaylist.d->m_image;
+	
+	// Deserialize d->m_creationDate
+	aDataStream>>aPlaylist.d->m_creationDate;
+	
+	// Deserialize d->m_license
+	aDataStream>>aPlaylist.d->m_license;
+	
+	// Deserialize d->m_attribution
+	aDataStream>>aPlaylist.d->m_attribution;
+	
+	// Deserialize d->m_metadata
+	aDataStream>>aPlaylist.d->m_metadata;
+	
+	// Deserialize d->m_extension
+	aDataStream>>aPlaylist.d->m_extension;
+	
+	// Deserialize d->m_trackList
+	aDataStream>>aPlaylist.d->m_trackList;
+	
+	return aDataStream;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfplaylist.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,282 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The playlist class represents an instance of a playlist.
+ * SmfPlaylist class is in accordance with the XML Shareable Playlist Format (XSPF)
+ * as mentioned in http://xspf.org/xspf-v1.html
+ *
+ */
+
+#ifndef SMFPLAYLIST_H_
+#define SMFPLAYLIST_H_
+
+#include <qdatastream.h>
+#include <QSharedData>
+#include <QMetaType>
+#include <QVariant>
+
+#include "smfclientglobal.h"
+#include "smftrackinfo.h"
+#include "smfcomment.h"
+
+class SmfPlaylistPrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The playlist class represents an instance of a playlist.
+ * SmfPlaylist class is in accordance with the XML Shareable Playlist Format (XSPF)
+ * as mentioned in http://xspf.org/xspf-v1.html
+ */
+class SMFCOMMON_EXPORT SmfPlaylist
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfPlaylist( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfPlaylist( const SmfPlaylist &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 */
+	SmfPlaylist& operator=( const SmfPlaylist &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPlaylist( );
+	
+	/**
+	 * Method to get the version of the playlist
+	 * @return The version of the playlist
+	 */
+	QString version( ) const;
+	
+	/**
+	 * Method to get the playlist title
+	 * @return The title of the playlist
+	 */
+	QString playListTitle( ) const;
+	
+	/**
+	 * Method to get the author of the playlist
+	 * @return The author of the playlist
+	 */
+	QString author( ) const;
+	
+	/**
+	 * Method to get the comments on the playlist
+	 * @return The comments on the playlist
+	 */
+	QList<SmfComment> comments( ) const;
+	
+	/**
+	 * Method to get the URI of a web page to find out more about this playlist
+	 * @return The info Url
+	 */
+	QUrl info( ) const;
+	
+	/**
+	 * Method to get the Source URI for this playlist
+	 * @return The Source URI for this playlist
+	 */
+	QUrl location( ) const;
+	
+	/**
+	 * Method to get the id of the playlist
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to get the URI of an image to display in the absence 
+	 * of an image for playlist's tracks
+	 * @return The deafult image Url
+	 */
+	QUrl image( ) const;
+	
+	/**
+	 * Method to get the creation date of the playlist
+	 * @return The date and time of creation of the playlist
+	 */
+	QDateTime creationDate( ) const;
+	
+	/**
+	 * Method to get the URI of a resource that describes the license 
+	 * under which this playlist was released
+	 * @return The license Url
+	 */
+	QUrl license( ) const;
+	
+	/**
+	 * Method to get the ordered list of URIs. The purpose is to satisfy 
+	 * licenses allowing modification but requiring attribution
+	 * @return The list of license Urls
+	 */
+	QList<QUrl> attribution( ) const;
+	
+	/**
+	 * Method to get the meta element that allows metadata fields to be added to XSPF
+	 * @return The meta elements as a QVarintMap
+	 */
+	QVariantMap metadata( ) const;
+	
+	/**
+	 * Method to get the extension element that allows non-XSPF XML 
+	 * to be included in XSPF documents
+	 * @return The extension elements as a QVarintMap
+	 */
+	QVariantMap extension( ) const;
+	
+	/**
+	 * Method to get the list of tracks in the playlist
+	 * @return The list of tracks in the playlist
+	 */
+	QList<SmfTrackInfo> trackList( ) const;
+	
+	/**
+	 * Method to set the version of the playlist
+	 * @param aVersion The version of the playlist
+	 */
+	void setVersion( const QString& aVersion );
+	
+	/**
+	 * Method to set the playlist title
+	 * @param aTitle The title of the playlist
+	 */
+	void setPlayListTitle( const QString &aTitle );
+	
+	/**
+	 * Method to set the author of the playlist
+	 * @param aAuthor The author of the playlist
+	 */
+	void setAuthor( const QString& aAuthor );
+	
+	/**
+	 * Method to set the comments on the playlist
+	 * @param aComments The comments on the playlist
+	 */
+	void setComments( const QList<SmfComment>& aComments );
+	
+	/**
+	 * Method to set the URI of a web page to find out more about this playlist
+	 * @param aInfoUrl The info Url
+	 */
+	void setInfo( const QUrl& aInfoUrl );
+	
+	/**
+	 * Method to set the Source URI for this playlist
+	 * @param aLocation The Source URI for this playlist
+	 */
+	void setLocation( const QUrl& aLocation );
+	
+	/**
+	 * Method to set the id of the playlist
+	 * @param aId The ID value 
+	 */
+	void setId( const QString &aId);
+	
+	/**
+	 * Method to set the URI of an image to display in the absence 
+	 * of an image for playlist's tracks
+	 * @param aImage The default image Url
+	 */
+	void setImage( const QUrl& aImage );
+	
+	/**
+	 * Method to set the creation date of the playlist
+	 * @param aDate The date and time of creation of the playlist
+	 */
+	void setCreationDate( const QDateTime& aDate );
+	
+	/**
+	 * Method to set the URI of a resource that describes the license 
+	 * under which this playlist was released
+	 * @param aLicense The license Url
+	 */
+	void setLicense( const QUrl& aLicense );
+	
+	/**
+	 * Method to set the ordered list of URIs. The purpose is to satisfy 
+	 * licenses allowing modification but requiring attribution
+	 * @param aAttribution The list of license Urls
+	 */
+	void setAttribution( const QList<QUrl>& aAttribution );
+	
+	/**
+	 * Method to set the meta element that allows metadata fields to be added to XSPF
+	 * @param aMetaData The meta elements as a QVarintMap
+	 */
+	void setMetadata( const QVariantMap& aMetaData );
+	
+	/**
+	 * Method to set the extension element that allows non-XSPF XML 
+	 * to be included in XSPF documents
+	 * @param aExtension The extension elements as a QVarintMap
+	 */
+	void setExtension( const QVariantMap& aExtension );
+	
+	/**
+	 * Method to set the list of tracks in the playlist
+	 * @param aList The new list of tracks in the playlist
+	 */
+	void setTrackList( const QList<SmfTrackInfo> &aList );
+	
+private:
+	QSharedDataPointer<SmfPlaylistPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfPlaylist &aPlaylist );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfPlaylist &aPlaylist );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfPlaylist object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aPlaylist The SmfPlaylist object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfPlaylist &aPlaylist );
+
+/**
+ * Method for Internalization. Reads a SmfPlaylist object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aPlaylist The SmfPlaylist object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfPlaylist &aPlaylist);
+
+typedef QList<SmfPlaylist> SmfPlaylistList;
+
+// Make the class SmfPlaylist known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfPlaylist)
+Q_DECLARE_METATYPE(QList<SmfPlaylist>)
+
+#endif /* SMFPLAYLIST_H_ */
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfplaylist_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfPlaylist class
+ *
+ */
+
+#ifndef SMFPLAYLIST_P_H_
+#define SMFPLAYLIST_P_H_
+
+#include <smftrackinfo.h>
+#include <QSharedData>
+
+class SmfPlaylistPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfPlaylistPrivate( ) { 
+		m_version.clear();
+		m_title.clear();
+		m_author.clear();
+		m_comments.clear();
+		m_info.clear();
+		m_location.clear();
+		m_playlistId.clear();
+		m_image.clear();
+		m_license.clear();
+		m_attribution.clear();
+		m_trackList.clear();
+	}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfPlaylistPrivate( const SmfPlaylistPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_version ( aOther.m_version ), 
+		m_title ( aOther.m_title ),
+		m_author ( aOther.m_author ),
+		m_comments ( aOther.m_comments ), 
+		m_info ( aOther.m_info ),
+		m_location ( aOther.m_location ),
+		m_playlistId ( aOther.m_playlistId ), 
+		m_image ( aOther.m_image ),
+		m_creationDate ( aOther.m_creationDate ),
+		m_license ( aOther.m_license ), 
+		m_attribution ( aOther.m_attribution ),
+		m_metadata ( aOther.m_metadata ),
+		m_extension ( aOther.m_extension ),
+		m_trackList ( aOther.m_trackList ) { }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPlaylistPrivate( )
+		{
+		}
+  
+	/**
+	 * Data members
+	 */
+	QString m_version;				// playlist version
+	QString m_title;				// playlist title
+	QString m_author;				// playlist creator
+	QList<SmfComment> m_comments;	// comments about the playlist
+	QUrl m_info;					// URI of a web page to find out more about this playlist
+	QUrl m_location;				// The Source URI for this playlist
+	QString m_playlistId;			// The playlist ID
+	QUrl m_image;					// URI of an image to display in the absence of an 
+									// image for playlist's tracks
+	QDateTime m_creationDate;		// creation date of the playlist
+	QUrl m_license;					// URI of a resource that describes the license under 
+									// which this playlist was released
+	QList<QUrl> m_attribution;		// An ordered list of URIs. The purpose is to satisfy licenses 
+									// allowing modification but requiring attribution
+	QVariantMap m_metadata;			// The meta element allows metadata fields to be added to XSPF
+	QVariantMap m_extension; 		// The extension element allows non-XSPF XML 
+									// to be included in XSPF documents
+	QList<SmfTrackInfo> m_trackList;// list of tracks in the playlist
+	
+};
+
+#endif /* SMFPLAYLIST_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpluginutil.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,158 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The Plugin util class provides the information required for the 
+ * plugins from Smf framework 
+ *
+ */
+
+#include <smfpluginutil.h>
+
+
+/**
+ * Constructor
+ */
+SmfPluginUtil::SmfPluginUtil ( )
+	{
+	m_jsonParser = new QJson::Parser;
+	}
+	
+/**
+ * Destructor
+ */
+SmfPluginUtil::~SmfPluginUtil ( )
+	{
+	if(m_jsonParser)
+		delete m_jsonParser;
+	}
+	
+
+/**
+* Read JSON string from the I/O Device and converts it to a QVariant object
+* @param io Input output device
+* @param ok if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
+* @returns a QVariant object generated from the JSON string
+*/
+QVariant SmfPluginUtil::parse ( QIODevice* io, bool* ok )
+	{
+	return m_jsonParser->parse(io, ok);
+	}
+
+/**
+* This is a method provided for convenience.
+* @param jsonData data containing the JSON object representation
+* @param ok if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
+* @returns a QVariant object generated from the JSON string
+* @sa errorString
+* @sa errorLine
+*/
+QVariant SmfPluginUtil::parse ( const QByteArray& jsonData, bool* ok )
+	{
+	return m_jsonParser->parse(jsonData, ok);
+	}
+
+/**
+* This method returns the error message tha ocuured during last parsing
+* @returns a QString object containing the error message of the last parse operation
+*/
+QString SmfPluginUtil::errorString ( ) const
+	{
+	return m_jsonParser->errorString();
+	}
+
+/**
+* This method returns line number where the last QJson parsing error occurred
+* @returns the line number where the error occurred
+ */
+int SmfPluginUtil::errorLine ( ) const
+	{
+	return m_jsonParser->errorLine();
+	}
+
+/**
+ * Method called by plugins to get the OAuth Keys.
+ * @param aKeys [out] The OAuth keys
+ * @param aRegToken The plugin's registration token
+ * @param aValidity The validity of the keys
+ * @param aPluginID The ID of the plugin that requests for 
+ * the OAuth keys
+ */
+void SmfPluginUtil::getAuthKeys( SmfAuthParams &aKeys, 
+		const QString aRegToken, 
+		const QDateTime& aValidity,
+		const QString aPluginID )
+	{
+	aKeys.clear();
+	
+	// Invalid arguments
+	if( (0 == aRegToken.size()) || 
+		(0 == aPluginID.size()) || 
+		(aValidity.isNull()) )
+		return;
+	
+	// Call Credential manager function to get the keys passing the registration token and the plugin
+	SmfCredMgrClient csmClient;
+	csmClient.AuthDataSet(aRegToken,aValidity,aKeys);
+	}
+
+/**
+ * Method called by plugins to get the Nonce value
+ * @param aNonceString [out] The Nonce string
+ * @param aLength Lenth of the NONCE tobe generated
+ */
+void SmfPluginUtil::getNonce( QString &aNonceString, const qint64 aLength )
+	{
+	aNonceString.clear();
+	
+	// Invalid argument
+	if(aLength < 0)
+		return;
+	
+	// Call Credential manager function to get the nonce string
+	SmfCredMgrClient csmClient;
+	aNonceString = csmClient.GenerateNONCE(aLength);
+	}
+
+/**
+ * Method called by plugins to generate a parameters string required to 
+ * access Protected Resources using OAuth authorization.
+ * @param aRequestUrl The request URL
+ * @param aOperation The type of http operation
+ * @param aToken The access token
+ * @param aTokenSecret The token secret
+ * @param aSignatureMethod The signature method to be used
+ * @param aParams A map of parameters to its values
+ * @param aMode The mode of creation of the request
+ * @return The cretd parameter string
+ */
+QByteArray SmfPluginUtil::createParameterString( const QString &aRequestUrl, 
+		QNetworkAccessManager::Operation aOperation, 
+		const QByteArray &aToken, 
+		const QByteArray &aTokenSecret, 
+		const SmfSignatureMethod aSignatureMethod, 
+		const QMultiMap<QByteArray, QByteArray> &aParams, 
+		const SmfParsingMode aMode)
+	{
+	Q_UNUSED(aRequestUrl)
+	Q_UNUSED(aOperation)
+	Q_UNUSED(aToken)
+	Q_UNUSED(aTokenSecret)
+	Q_UNUSED(aSignatureMethod)
+	Q_UNUSED(aParams)
+	Q_UNUSED(aMode)
+	return QByteArray();
+	//// Call Credential manager function to create and sign the parameter string
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpluginutil.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,134 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The Plugin util class provides the information required for the 
+ * plugins from Smf framework 
+ *
+ */
+
+#ifndef SMFPLUGINUTIL_H_
+#define SMFPLUGINUTIL_H_
+
+#include <QNetworkAccessManager>
+#include <QMap>
+#include <QVariant>
+#include <parser.h>
+#include <smfclientglobal.h>
+#include <smfcredmgrclient.h>
+
+enum SmfParsingMode
+	{
+	ParseForRequestContent, //Inline query format (foo=bar&bar=baz&baz=foo ...), suitable for POST requests.
+	ParseForInlineQuery, // Same as ParseForRequestContent, but prepends the string with a question mark - 
+						// suitable for GET requests (appending parameters to the request URL) 
+	ParseForHeaderArguments // HTTP request header format (parameters to be put inside a request header). 
+	};
+
+/**
+ * The Plugin util class provides the information required for the 
+ * plugins from Smf framework
+ */
+class SMFCOMMON_EXPORT SmfPluginUtil
+	{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfPluginUtil();
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPluginUtil ( );
+	
+	/**
+    * Read JSON string from the I/O Device and converts it to a QVariant object
+    * @param io Input output device
+    * @param ok if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
+    * @returns a QVariant object generated from the JSON string
+	 */
+    QVariant parse ( QIODevice* io, bool* ok = 0 );
+
+    /**
+    * This is a method provided for convenience.
+    * @param jsonData data containing the JSON object representation
+    * @param ok if a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
+    * @returns a QVariant object generated from the JSON string
+    * @sa errorString
+    * @sa errorLine
+    */
+    QVariant parse ( const QByteArray& jsonData, bool* ok = 0 );
+    
+    /**
+    * This method returns the error message tha ocuured during last parsing
+    * @returns a QString object containing the error message of the last parse operation
+    */
+    QString errorString ( ) const;
+
+    /**
+    * This method returns line number where the last QJson parsing error occurred
+    * @returns the line number where the error occurred
+    */
+    int errorLine ( ) const;
+	
+    /**
+     * Method called by plugins to get the OAuth Keys.
+     * @param aKeys [out] The OAuth keys
+     * @param aRegToken The plugin's registration token
+     * @param aValidity The validity of the keys
+     * @param aPluginID The ID of the plugin that requests for 
+     * the OAuth keys
+     */
+    void getAuthKeys( SmfAuthParams &aKeys, 
+    		const QString aRegToken, 
+    		const QDateTime& aValidity,
+    		const QString aPluginID );
+	
+	/**
+	 * Method called by plugins to get the Nonce value
+	 * @param aNonceString [out] The Nonce string
+	 * @param aLength Lenth of the NONCE tobe generated
+	 */
+    void getNonce( QString &aNonceString, const qint64 aLength );
+	
+	/**
+	 * Method called by plugins to generate a parameters string required to 
+	 * access Protected Resources using OAuth authorization.
+	 * @param aRequestUrl The request URL
+	 * @param aOperation The type of http operation
+	 * @param aToken The access token
+	 * @param aTokenSecret The token secret
+	 * @param aSignatureMethod The signature method to be used
+	 * @param aParams A map of parameters to its values
+	 * @param aMode The mode of creation of the request
+	 * @return The cretd parameter string
+	 */
+	QByteArray createParameterString( const QString &aRequestUrl, 
+			QNetworkAccessManager::Operation aOperation, 
+			const QByteArray &aToken, 
+			const QByteArray &aTokenSecret, 
+			const SmfSignatureMethod aSignatureMethod, 
+			const QMultiMap<QByteArray, QByteArray> &aParams, 
+			const SmfParsingMode aMode);
+	
+private:
+	/**
+	 * The instance of QJson::Parser
+	 */
+	QJson::Parser *m_jsonParser;
+	
+	};
+
+#endif /* SMFPLUGINUTIL_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpost.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,250 @@
+/**
+* Copyright (c) 2010 Sasken Communication Technologies Ltd.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "Eclipse Public License v1.0" 
+* which accompanies  this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html"
+*
+* Initial Contributors:
+* Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+*
+* Contributors:
+* Manasij Roy, Nalina Hariharan
+* 
+* Description:
+* The post class represents an instance of a post to a SN site
+*
+*/
+
+#include "smfpost.h"
+#include "smfpost_p.h"
+
+/**
+ * Constructor with default argument
+ * @param text Text
+ */
+SmfPost::SmfPost( )
+	{
+	d = new SmfPostPrivate();
+	}
+
+/**
+ * Constructor
+ * @param aText The post's text
+ * @param aImage The post's image
+ * @param aUrl The post's url
+ */
+SmfPost::SmfPost( SmfContact aOwner,QString aTitle, QString aDesc, QImage aImage, QUrl aUrl )
+	{
+	d = new SmfPostPrivate(aOwner,aTitle, aDesc, aImage, aUrl);
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfPost::SmfPost( const SmfPost &aOther )
+: d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfPost& SmfPost::operator=( const SmfPost &aOther )
+	{
+	d->m_title = aOther.d->m_title;
+	d->m_desc = aOther.d->m_desc;
+	d->m_image = aOther.d->m_image;
+	d->m_url = aOther.d->m_url;
+	d->m_postId = aOther.d->m_postId;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfPost::~SmfPost( )
+	{
+	}
+
+/**
+ * Returns the owner(who posted this message)
+ */
+SmfContact SmfPost::owner() const
+	{
+	return d->m_owner;
+	}
+
+/**
+ * Method to get the title of the post
+ * @return The post's title
+ */
+QString SmfPost::title( ) const
+	{
+	return d->m_title;
+	}
+
+/**
+ * Method to get the description of the post
+ * @return The post's description
+ */
+QString SmfPost::description( ) const
+	{
+	return d->m_desc;
+	}
+
+/**
+ * Method to get the image of the post
+ * @return The post's image
+ */
+QImage SmfPost::image( ) const
+	{
+	return d->m_image;
+	}
+
+/**
+ * Method to get the url of the post
+ * @return The post's url
+ */
+QUrl SmfPost::url( ) const
+	{
+	return d->m_url;
+	}
+
+/**
+ * Method to get the posted date and time of the post
+ * @return The post's date and time of posting
+ */
+QDateTime SmfPost::postedDateTime() const
+	{
+	return d->m_date;
+	}
+
+/**
+ * Method to get the id of the post
+ * @return The ID value 
+ */
+QString SmfPost::id( ) const
+	{
+	return d->m_postId;
+	}
+
+/**
+ * sets the owner of the post
+ */
+void SmfPost::setOwner(const SmfContact& aOwner)
+	{
+	d->m_owner = aOwner;
+	}
+
+/**
+ * Method to set the title of the post
+ * @param aTitle The post's new title
+ */
+void SmfPost::setTitle( const QString &aTitle )
+	{
+	d->m_title = aTitle;
+	}
+
+/**
+ * Method to set the description of the post
+ * @param aDesc The post's new description
+ */
+void SmfPost::setDescription( const QString &aDesc )
+	{
+	d->m_desc = aDesc;
+	}
+
+/**
+ * Method to set the image of the post
+ * @param aPic The post's image
+ */
+void SmfPost::setImage( const QImage& aPic )
+	{
+	d->m_image = aPic;
+	}
+
+/**
+ * Method to set the url of the post
+ * @param aUrl The post's url
+ */
+void SmfPost::setUrl( QUrl& aUrl )
+	{
+	d->m_url = aUrl;
+	}
+
+/**
+ * Method to set the posted date and time of the post
+ * @param aDate The post's date and time of posting
+ */
+void SmfPost::setPostedDateTime( QDateTime &aDate )
+	{
+	d->m_date = aDate;
+	}
+
+/**
+ * Method to get the id of the post
+ */
+void SmfPost::setId(QString aPostId)
+	{
+	d->m_postId = aPostId;
+	}
+
+/**
+ * Method for Externalization. Writes the SmfPost object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aPost The SmfPost object to be externalized
+ * @return reference to the written stream
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfPost &aPost )
+	{
+	aDataStream<<aPost.owner();
+	aDataStream<<aPost.title();
+	aDataStream<<aPost.description();
+	aDataStream<<aPost.image();
+	aDataStream<<aPost.url();
+	aDataStream<<aPost.id();
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfPost object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aPost The SmfPost object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfPost &aPost)
+	{
+	SmfContact owner;
+	aDataStream>>owner;
+	aPost.setOwner(owner);
+	QString title;
+	aDataStream>>title;
+	aPost.setTitle(title);
+	
+	QString desc;
+	aDataStream>>desc;
+	aPost.setDescription(desc);
+
+	QImage img;
+	aDataStream>>img;
+	aPost.setImage(img);
+
+	QUrl url;
+	aDataStream>>url;
+	aPost.setUrl(url);
+
+	QString id;
+	aDataStream>>id;
+	aPost.setId(id);
+
+	return aDataStream;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpost.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,207 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The post class represents an instance of a post to a SN site
+ *
+ */
+
+#ifndef SMFPOST_H_
+#define SMFPOST_H_
+
+#include <QImage>
+#include <QUrl>
+#include <qdatastream.h>
+#include <QMetaType>
+#include <QSharedData>
+#include <QTextDocument>
+#include <smfclientglobal.h>
+
+#include "smfpost_p.h"
+const int MaxSmfPostSize=1000;
+/**
+ *  Presence info of the user
+ */
+enum SmfAppearenceInfo
+	{
+	EAppearanceNotSupported,
+	EOnline,
+	EOffline,
+	EBusy,
+	EDoNotDisturb,
+	EAppearOffline,
+	EOther
+	};
+//To sort out conflict betwn client and PM, later should be removed
+typedef SmfAppearenceInfo SmfPresenceInfo;
+/**
+ * @ingroup smf_common_group
+ * The post class represents an instance of a post to a SN site
+ */
+class SMFCOMMON_EXPORT SmfPost //: public QTextDocument
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 * @param text Text
+	 */
+	SmfPost( );
+	
+	/**
+	 * Constructor
+	 * @param aOwner Owner of the post(who posted this message) of type SmfContact
+	 * @param aText The post's text
+	 * @param aImage The post's image
+	 * @param aUrl The post's url
+	 */
+	SmfPost(SmfContact aOwner, QString aTitle, QString aDesc, QImage aImage, QUrl aUrl );
+
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfPost( const SmfPost &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 * @return The target reference value
+	 */
+	SmfPost& operator=( const SmfPost &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPost( );
+	
+	/**
+	 * Returns the owner(who posted this message)
+	 */
+	SmfContact owner() const;
+	
+	/**
+	 * Method to get the title of the post
+	 * @return The post's title
+	 */
+	QString title( ) const;
+	
+	/**
+	 * Method to get the description of the post
+	 * @return The post's description
+	 */
+	QString description( ) const;
+	
+	/**
+	 * Method to get the image of the post
+	 * @return The post's image
+	 */
+	QImage image( ) const;
+	
+	/**
+	 * Method to get the url of the post
+	 * @return The post's url
+	 */
+	QUrl url( ) const;
+	
+	/**
+	 * Method to get the posted date and time of the post
+	 * @return The post's date and time of posting
+	 */
+	QDateTime postedDateTime() const;
+	
+	/**
+	 * Method to get the id of the post
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * sets the owner of the post
+	 */
+	void setOwner(const SmfContact& aOwner);
+	
+	/**
+	 * Method to set the title of the post
+	 * @param aTitle The post's new title
+	 */
+	void setTitle( const QString &aTitle );
+	
+	/**
+	 * Method to set the description of the post
+	 * @param aDesc The post's new description
+	 */
+	void setDescription( const QString &aDesc );
+	
+	/**
+	 * Method to set the image of the post
+	 * @param aPic The post's image
+	 */
+	void setImage( const QImage& aPic );
+	
+	/**
+	 * Method to set the url of the post
+	 * @param aUrl The post's url
+	 */
+	void setUrl( QUrl& aUrl );
+	
+	/**
+	 * Method to set the posted date and time of the post
+	 * @param aDate The post's date and time of posting
+	 */
+	void setPostedDateTime( QDateTime &aDate );
+	
+	/**
+	 * Method to get the id of the post
+	 */
+	void setId(QString aPostId);
+	
+private:
+	QSharedDataPointer<SmfPostPrivate> d;
+
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfPost &aPost );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfPost &aPost );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfPost object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aPost The SmfPost object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfPost &aPost );
+
+/**
+ * Method for Internalization. Reads a SmfPost object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aPost The SmfPost object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfPost &aPost);
+
+typedef QList<SmfPost> SmfPostList;
+
+// Make the class SmfPost known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfPost)
+Q_DECLARE_METATYPE(SmfPostList)
+
+#endif /* SMFPOST_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfpost_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfPost class
+ *
+ */
+
+#ifndef SMFPOST_P_H_
+#define SMFPOST_P_H_
+
+#include <QSharedData>
+#include "smfcontact.h"
+class SmfPostPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfPostPrivate( ) { m_title.clear(); m_desc.clear(); m_url.clear(); m_postId.clear(); }
+	
+	/**
+	 * Constructor
+	 */
+	SmfPostPrivate(SmfContact aOwner, QString aTitle, QString aDesc, QImage aImage, QUrl aUrl ) 
+		{
+		m_owner = aOwner;
+		m_title = aTitle; 
+		m_desc = aDesc;
+		m_image = aImage;
+		m_url = aUrl;
+		m_postId.clear();
+		}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfPostPrivate( const SmfPostPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_title ( aOther.m_title ), 
+		m_desc ( aOther.m_desc ),
+		m_image ( aOther.m_image ),
+		m_url ( aOther.m_url ),
+		m_date ( aOther.m_date ),
+		m_postId ( aOther.m_postId )	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPostPrivate( )
+		{
+		}
+	
+	SmfContact m_owner; //owner of the post(who posted this message)
+	QString m_title;	// title
+	QString m_desc;		// description
+	QImage m_image;		// image
+	QUrl m_url;			// url
+	QDateTime m_date;	// posted date
+	QString m_postId;	// post's unique Id
+	
+};
+
+#endif /* SMFPOST_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfprovider.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,203 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Interface for a base service provider
+ *
+ */
+
+#include "smfprovider.h"
+
+/**
+ * Constructor
+ */
+SmfProvider::SmfProvider()
+	{
+	
+	}
+
+/**
+ * Destructor
+ */
+SmfProvider::~SmfProvider()
+	{
+	
+	}
+
+/**
+ * Localizable name of the service 
+ * @return service name
+ */
+QString SmfProvider::serviceName() const
+	{
+	return m_serviceName;
+	}
+
+/**
+ * Logo of the service
+ * @return logo image of the service
+ */
+QImage SmfProvider::serviceIcon() const
+	{
+	return m_serviceIcon;
+	}
+
+/**
+ * Readable service description
+ * @return service description
+ */
+QString SmfProvider::description() const
+	{
+	return m_description;
+	}
+
+/*
+ * Website of the service
+ * @return service url 
+ */
+QUrl SmfProvider::serviceUrl() const
+	{
+	return m_serviceUrl;
+	}
+
+/**
+ * URL of the application providing this service
+ * @return application url
+ */
+QUrl SmfProvider::applicationUrl() const  
+	{
+	return m_appUrl;
+	}
+
+/**
+ * List of interfaces that this provider support
+ * @return List of supported interface names
+ */
+QList<QString> SmfProvider::supportedInterfaces() const
+	{
+	return m_serviceTypes;
+	}
+
+/**
+* List of languages supported by this service provider
+* @return a QStringList of languages supported by this service 
+* provider in 2 letter ISO 639-1 format.
+*/
+QStringList SmfProvider::supportedLanguages() const
+	{
+	return m_supportedLanguages;
+	}
+
+/**
+ * Sets Localizable name of the service 
+ * @param name service name
+ */
+void SmfProvider::setServiceName(QString& name)
+	{
+	m_serviceName = name;
+	}
+
+/**
+ * Sets Logo of the service
+ * @param image service icon
+ */
+void SmfProvider::setServiceIcon(QImage& image)
+	{
+	m_serviceIcon = image;
+	}
+
+/**
+ * Sets Readable service description
+ * @param desc description text
+ */
+void SmfProvider::setDescription(QString& desc)
+	{
+	m_description = desc;
+	}
+
+/*
+ * Sets Website of the service
+ * @param name service url
+ */
+void SmfProvider::setServiceUrl(QUrl& url)
+	{
+	m_serviceUrl = url;
+	}
+
+/**
+ * Sets URL of the application providing this service
+ * @param url application url
+ */
+void SmfProvider::setApplicationUrl(QUrl& url)
+	{
+	m_appUrl = url;
+	}
+
+/**
+ * Sets list of interfaces that this provider supports
+ * @param types List of supported interface names
+ */
+void SmfProvider::setSupportedInterfaces( QStringList& types)
+	{
+	m_serviceTypes = types;
+	}
+
+
+/**
+* Sets the list of languages supported by this service provider
+* @param lang A QStringList of languages supported by this service 
+* provider in 2 letter ISO 639-1 format.
+*/
+void SmfProvider::setSupportedLanguages( QStringList& lang )
+	{
+	m_supportedLanguages = lang;
+	}
+
+/**
+ * Method for Externalization. Writes the SmfProvider object to 
+ * the stream and returns a reference to the stream.
+ * @param out Stream to be written
+ * @param base The SmfProvider object to be externalized
+ * @return reference to the written stream
+ */
+QDataStream &operator<<(QDataStream& out, const SmfProvider& base)
+	{
+	out<<base.m_serviceName;
+	out<<base.m_serviceIcon;
+	out<<base.m_description;
+	out<<base.m_serviceUrl;
+	out<<base.m_appUrl;
+	out<<base.m_serviceTypes;
+	out<<base.m_supportedLanguages;
+	return out; 
+	}
+
+/**
+ * Method for Internalization. Reads a SmfProvider object from 
+ * the stream and returns a reference to the stream.
+ * @param in Stream to be read
+ * @param base The SmfProvider object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>(QDataStream& in, SmfProvider& base)
+	{
+	in>>base.m_serviceName;
+	in>>base.m_serviceIcon;
+	in>>base.m_description;
+	in>>base.m_serviceUrl;
+	in>>base.m_appUrl;
+	in>>base.m_serviceTypes;
+	in>>base.m_supportedLanguages;
+	return in; 
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfprovider.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,178 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Interface for a base service provider
+ *
+ */
+
+#ifndef SMFPROVIDER_H
+#define SMFPROVIDER_H
+
+#include <QObject>
+#include <QImage>
+#include <QUrl>
+#include <QStringList>
+#include <QMetaType>
+
+#include "smfclientglobal.h"
+
+/**
+ * @ingroup smf_client_group 
+ * Interface for a base service provider. Other service provider classes contains 
+ * implementation of this base class so that each has access to service provider 
+ * information.
+ * All of the functionality described here should be implemented by a service
+ * specific plug-in object.
+ */
+class SMFCOMMON_EXPORT SmfProvider
+	{
+	
+public:
+	/**
+	 * Constructor
+	 */
+	SmfProvider();
+	/**
+	 * Destructor
+	 */
+	~SmfProvider();
+
+public:
+	/**
+	 * Localizable name of the service 
+	 * @return service name
+	 */
+	QString serviceName() const; 
+	
+	/**
+	 * Logo of the service
+	 * @return logo image of the service
+	 */
+	QImage serviceIcon() const; 
+	
+	/**
+	 * Readable service description
+	 * @return service description
+	 */
+	QString description() const; 
+	
+	/*
+	 * Website of the service
+	 * @return service url 
+	 */
+	QUrl serviceUrl() const;
+	
+	/**
+	 * URL of the application providing this service
+	 * @return application url
+	 */
+	QUrl applicationUrl() const;
+	
+	/**
+	 * List of interfaces that this provider support
+	 * @return List of supported interface names
+	 */
+	QList<QString> supportedInterfaces() const;
+	
+	/**
+	 * List of languages supported by this service provider
+	 * @return a QStringList of languages supported by this service 
+	 * provider in 2 letter ISO 639-1 format.
+	 */
+	QStringList supportedLanguages() const;
+	
+	/**
+	 * Sets Localizable name of the service 
+	 * @param name service name
+	 */
+	void setServiceName(QString& name); 
+	
+	/**
+	 * Sets Logo of the service
+	 * @param image service icon
+	 */
+	void setServiceIcon(QImage& image) ; 
+	
+	/**
+	 * Sets Readable service description
+	 * @param desc description text
+	 */
+	void setDescription(QString& desc) ; 
+	
+	/*
+	 * Sets Website of the service
+	 * @param name service url
+	 */
+	void setServiceUrl(QUrl& url) ;
+	
+	/**
+	 * Sets URL of the application providing this service
+	 * @param url application url
+	 */
+	void setApplicationUrl(QUrl& url) ; 
+	
+	/**
+	 * Sets list of interfaces that this provider supports
+	 * @param types List of supported interface names
+	 */
+	void setSupportedInterfaces( QStringList& types);
+	
+	/**
+	 * Sets the list of languages supported by this service provider
+	 * @param lang A QStringList of languages supported by this service 
+	 * provider in 2 letter ISO 639-1 format.
+	 */
+	void setSupportedLanguages( QStringList& lang );
+ 
+private:
+	QString m_serviceName;
+	QImage m_serviceIcon;
+	QString m_description;
+	QUrl m_serviceUrl;
+	QUrl m_appUrl;
+	QStringList m_serviceTypes;
+	QStringList m_supportedLanguages;
+	
+	friend QDataStream &operator<<(QDataStream &, const SmfProvider&);
+	friend QDataStream &operator>>(QDataStream &, SmfProvider&);
+	};
+
+/**
+ * Method for Externalization. Writes the SmfProvider object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aProvider The SmfProvider object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream& operator<<(QDataStream &aDataStream, 
+		const SmfProvider &aProvider);
+
+/**
+ * Method for Internalization. Reads a SmfProvider object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aProvider The SmfProvider object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream& operator>>(QDataStream &aDataStream, 
+		SmfProvider &aProvider);
+
+typedef QList<SmfProvider> SmfProviderList;
+
+// Make the class SmfProvider known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfProvider)
+Q_DECLARE_METATYPE(QList<SmfProvider>)
+
+#endif // SMFPROVIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfsubtitle.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,233 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The subtitle class represents information about a track's subtitle
+ *
+ */
+
+#include <smfsubtitle.h>
+#include <smfsubtitle_p.h>
+
+/**
+ * Constructor with default argument
+ */
+SmfSubtitle::SmfSubtitle( )
+	{
+	d = new SmfSubtitlePrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfSubtitle::SmfSubtitle( const SmfSubtitle &aOther )
+	:d(aOther.d)
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfSubtitle& SmfSubtitle::operator=( const SmfSubtitle &aOther )
+	{
+	d->m_subtitle = aOther.d->m_subtitle;
+	d->m_language = aOther.d->m_language;
+	d->m_frameRate = aOther.d->m_frameRate;
+	d->m_duration = aOther.d->m_duration;
+	d->m_releaseYr = aOther.d->m_releaseYr;
+	d->m_subtitleId = aOther.d->m_subtitleId;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfSubtitle::~SmfSubtitle( )
+	{
+	}
+
+/**
+ * Method to get the subtitle as a bytearray
+ * @return The subtitle content
+ */
+QByteArray SmfSubtitle::subtitle( ) const
+	{
+	return d->m_subtitle;
+	}
+
+/**
+ * Method to get the language
+ * @return The language
+ */
+QString SmfSubtitle::language( ) const
+	{
+	return d->m_language;
+	}
+
+/**
+ * Method to get the frame rate
+ * @return the frame rate
+ */
+double SmfSubtitle::frameRate( ) const
+	{
+	return d->m_frameRate;
+	}
+
+/**
+ * Method to get the duration
+ * @return the duration
+ */
+double SmfSubtitle::duration( ) const
+	{
+	return d->m_duration;
+	}
+
+/**
+ * Method to get the release year
+ * @return The release year
+ */
+QDateTime SmfSubtitle::releaseYear( ) const
+	{
+	return d->m_releaseYr;
+	}
+
+/**
+ * Method to get the id of the subtitle
+ * @return The ID value 
+ */
+QString SmfSubtitle::id( ) const
+	{
+	return d->m_subtitleId;
+	}
+
+/**
+ * Method to set the subtitle as a bytearray
+ * @param aSubtitle The subtitle content
+ */
+void SmfSubtitle::setSubtitle( const QByteArray &aSubtitle )
+	{
+	d->m_subtitle = aSubtitle;
+	}
+
+/**
+ * Method to set the language
+ * @param aLang The language
+ */
+void SmfSubtitle::setLanguage( const QString &aLang )
+	{
+	d->m_language = aLang;
+	}
+
+/**
+ * Method to set the frame rate
+ * @param aFramerate the frame rate
+ */
+void SmfSubtitle::setFrameRate( const double &aFramerate )
+	{
+	d->m_frameRate = aFramerate;
+	}
+
+/**
+ * Method to set the duration
+ * @param aDuration the duration
+ */
+void SmfSubtitle::setDuration( const double &aDuration )
+	{
+	d->m_duration = aDuration;
+	}
+
+/**
+ * Method to set the release year
+ * @param aRelYear The release year
+ */
+void SmfSubtitle::setReleaseYear( const QDateTime &aRelYear )
+	{
+	d->m_releaseYr = aRelYear;
+	}
+
+/**
+ * Method to set the id of the subtitle
+ * @param aId The ID value 
+ */
+void SmfSubtitle::setId( const QString &aId )
+	{
+	d->m_subtitleId = aId;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfSubtitle object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aSubtitle The SmfSubtitle object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfSubtitle &aSubtitle )
+	{
+	// Serialize m_subtitle
+	aDataStream<<aSubtitle.d->m_subtitle;
+	
+	// Serialize m_language
+	aDataStream<<aSubtitle.d->m_language;
+	
+	// Serialize m_frameRate
+	aDataStream<<aSubtitle.d->m_frameRate;
+	
+	// Serialize m_duration
+	aDataStream<<aSubtitle.d->m_duration;
+	
+	// Serialize m_releaseYr
+	aDataStream<<aSubtitle.d->m_releaseYr;
+	
+	// Serialize m_subtitleId
+	aDataStream<<aSubtitle.d->m_subtitleId;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfSubtitle object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aSubtitle The SmfSubtitle object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfSubtitle &aSubtitle)
+	{
+	// Deserialize m_subtitle
+	aDataStream>>aSubtitle.d->m_subtitle;
+	
+	// Deserialize m_language
+	aDataStream>>aSubtitle.d->m_language;
+	
+	// Deserialize m_frameRate
+	aDataStream>>aSubtitle.d->m_frameRate;
+	
+	// Deserialize m_duration
+	aDataStream>>aSubtitle.d->m_duration;
+	
+	// Deserialize m_releaseYr
+	aDataStream>>aSubtitle.d->m_releaseYr;
+	
+	// Deserialize m_subtitleId
+	aDataStream>>aSubtitle.d->m_subtitleId;
+	
+	return aDataStream;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfsubtitle.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,181 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The subtitle class represents information about a track's subtitle
+ *
+ */
+
+#ifndef SMFSUBTITLE_H_
+#define SMFSUBTITLE_H_
+
+#include <qdatastream.h>
+#include <QDateTime>
+#include <QSharedData>
+#include "smfclientglobal.h"
+#include <QMetaType>
+
+enum SmfSubtitleSearchFilter
+	{
+	SubtitleLanguage = 0,
+	SubtitleFrameRate,		// value = 1
+	SubtitleDuration,		// value = 2
+	SubtitleReleaseYear,	// value = 3
+	SubtitleAll = SubtitleLanguage | SubtitleFrameRate | 
+			SubtitleDuration | SubtitleReleaseYear
+	};
+
+class SmfSubtitlePrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The subtitle class represents information about a track's subtitle
+ */
+class SMFCOMMON_EXPORT SmfSubtitle
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfSubtitle( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfSubtitle( const SmfSubtitle &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 */
+	SmfSubtitle& operator=( const SmfSubtitle &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfSubtitle( );
+	
+	/**
+	 * Method to get the subtitle as a bytearray
+	 * @return The subtitle content
+	 */
+	QByteArray subtitle( ) const;
+	
+	/**
+	 * Method to get the language
+	 * @return The language
+	 */
+	QString language( ) const;
+	
+	/**
+	 * Method to get the frame rate
+	 * @return the frame rate
+	 */
+	double frameRate( ) const;
+	
+	/**
+	 * Method to get the duration
+	 * @return the duration
+	 */
+	double duration( ) const;
+	
+	/**
+	 * Method to get the release year
+	 * @return The release year
+	 */
+	QDateTime releaseYear( ) const;
+	
+	/**
+	 * Method to get the id of the subtitle
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to set the subtitle as a bytearray
+	 * @param aSubtitle The subtitle content
+	 */
+	void setSubtitle( const QByteArray &aSubtitle );
+	
+	/**
+	 * Method to set the language
+	 * @param aLang The language
+	 */
+	void setLanguage( const QString &aLang );
+	
+	/**
+	 * Method to set the frame rate
+	 * @param aFramerate the frame rate
+	 */
+	void setFrameRate( const double &aFramerate );
+	
+	/**
+	 * Method to set the duration
+	 * @param aDuration the duration
+	 */
+	void setDuration( const double &aDuration );
+	
+	/**
+	 * Method to set the release year
+	 * @param aRelYear The release year
+	 */
+	void setReleaseYear( const QDateTime &aRelYear );
+	
+	/**
+	 * Method to set the id of the subtitle
+	 * @param aId The ID value 
+	 */
+	void setId( const QString &aId );
+	
+private:
+	QSharedDataPointer<SmfSubtitlePrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfSubtitle &aSubtitle );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfSubtitle &aSubtitle );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfSubtitle object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aSubtitle The SmfSubtitle object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT  QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfSubtitle &aSubtitle );
+
+/**
+ * Method for Internalization. Reads a SmfSubtitle object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aSubtitle The SmfSubtitle object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfSubtitle &aSubtitle);
+
+
+typedef QList<SmfSubtitle> SmfSubtitleList;
+
+// Make the class SmfSubtitle known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfSubtitle)
+Q_DECLARE_METATYPE(QList<SmfSubtitle>)
+
+#endif /* SMFSUBTITLE_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfsubtitle_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfSubtitle class
+ *
+ */
+
+#ifndef SMFSUBTITLE_P_H_
+#define SMFSUBTITLE_P_H_
+
+#include <QDateTime>
+#include <QSharedData>
+
+class SmfSubtitlePrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfSubtitlePrivate( ) { 
+		m_language.clear();
+		m_frameRate = 0;
+		m_duration = 0;
+		m_subtitleId.clear();
+	}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfSubtitlePrivate( const SmfSubtitlePrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_subtitle ( aOther.m_subtitle ), 
+		m_language ( aOther.m_language ),
+		m_frameRate ( aOther.m_frameRate ),
+		m_duration ( aOther.m_duration ),
+		m_releaseYr ( aOther.m_releaseYr ),
+		m_subtitleId ( aOther.m_subtitleId ) 	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfSubtitlePrivate( )
+		{
+		}
+  
+	QByteArray m_subtitle;	// subtitle data
+	QString m_language;		// language
+	double m_frameRate;		// frame rate
+	double m_duration;		// duration
+	QDateTime m_releaseYr;	// release year
+	QString m_subtitleId;	// subtitle id
+	
+};
+
+#endif /* SMFSUBTITLE_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smftrackinfo.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,333 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The track info class represents information about a music track
+ *
+ */
+
+#include <smftrackinfo.h>
+#include <smftrackinfo_p.h>
+
+/**
+ * Constructor with default argument
+ */
+SmfTrackInfo::SmfTrackInfo( )
+	{
+	d = new SmfTrackInfoPrivate( );
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfTrackInfo::SmfTrackInfo( const SmfTrackInfo &aOther )
+	: d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfTrackInfo& SmfTrackInfo::operator=( const SmfTrackInfo &aOther )
+	{
+	d->m_trackId = aOther.d->m_trackId;
+	d->m_title = aOther.d->m_title;
+	d->m_album = aOther.d->m_album;
+	d->m_artists = aOther.d->m_artists;
+	d->m_genre = aOther.d->m_genre;
+	d->m_tags = aOther.d->m_tags;
+	d->m_year = aOther.d->m_year;
+	d->m_rating = aOther.d->m_rating;
+	d->m_comments = aOther.d->m_comments;
+	d->m_duration = aOther.d->m_duration;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfTrackInfo::~SmfTrackInfo( )
+	{
+	}
+
+/**
+ * Method to get the track title
+ * @return The title of the track
+ */
+QString SmfTrackInfo::title( ) const
+	{
+	return d->m_title;
+	}
+
+/**
+ * Method to get the track album
+ * @return The album of the track
+ */
+SmfAlbum SmfTrackInfo::album( ) const
+	{
+	return d->m_album;
+	}
+
+/**
+ * Method to get the track's artists
+ * @return The artists of the track
+ */
+SmfArtists SmfTrackInfo::artists( ) const
+	{
+	return d->m_artists;
+	}		
+
+/**
+ * Method to get the genre of the track
+ * @return The genre of the track
+ */
+QString SmfTrackInfo::genre( ) const
+	{
+	return d->m_genre;
+	}
+
+/**
+ * Method to get the track's tag
+ * @return The tag of the track
+ */
+QStringList SmfTrackInfo::tags( ) const
+	{
+	return d->m_tags;
+	}
+
+/**
+ * Method to get the release year of the track
+ * @return The release year of the track
+ */
+QDateTime SmfTrackInfo::year( ) const
+	{
+	return d->m_year;
+	}
+
+/**
+ * Method to get the track's rating
+ * @return The rating of the track
+ */
+SmfMusicRating SmfTrackInfo::rating( ) const
+	{
+	return d->m_rating;
+	}
+
+/**
+ * Method to get the comments on the track
+ * @return The comments on the track
+ */
+QList<SmfComment> SmfTrackInfo::comments( ) const
+	{
+	return d->m_comments;
+	}
+
+/**
+ * Method to get the track's duration
+ * @return The duration of the track
+ */
+QTime SmfTrackInfo::duration( ) const
+	{
+	return d->m_duration;
+	}
+
+/**
+ * Method to get the id of the track
+ * @return The ID value 
+ */
+QString SmfTrackInfo::id( ) const
+	{
+	return d->m_trackId;
+	}
+
+/**
+ * Method to set the track title
+ * @param aTitle The new title of the track
+ */
+void SmfTrackInfo::setTitle( const QString &aTitle )
+	{
+	d->m_title = aTitle;
+	}
+
+/**
+ * Method to set the track album
+ * @param aAlbum The new album of the track
+ */
+void SmfTrackInfo::setAlbum( const SmfAlbum &aAlbum )
+	{
+	d->m_album = aAlbum;
+	}
+
+/**
+ * Method to set the track's artists
+ * @param aArtists The new artists of the track
+ */
+void SmfTrackInfo::setArtists( const SmfArtists &aArtists )
+	{
+	d->m_artists = aArtists;
+	}
+
+/**
+ * Method to set the genre of the track
+ * @param aGenre The new genre of the track
+ */
+void SmfTrackInfo::setGenre( const QString &aGenre )
+	{
+	d->m_genre = aGenre;
+	}
+
+/**
+ * Method to set the track's tag
+ * @param aTag The tag of the track
+ */
+void SmfTrackInfo::setTags( const QStringList &aTags )
+	{
+	d->m_tags = aTags;
+	}
+
+/**
+ * Method to set the release year of the track
+ * @param aYear The new release year of the track
+ */
+void SmfTrackInfo::setYear( const QDateTime &aYear )
+	{
+	d->m_year = aYear;
+	}
+
+/**
+ * Method to set the track's rating
+ * @param aRating The new rating of the track
+ */
+void SmfTrackInfo::setRating( const SmfMusicRating &aRating )
+	{
+	d->m_rating = aRating;
+	}
+
+/**
+ * Method to set the comments on the track
+ * @param aComment The new comment of the track
+ */
+void SmfTrackInfo::setComment( const QList<SmfComment> &aComments )
+	{
+	d->m_comments = aComments;
+	}
+
+/**
+ * Method to set the duration of the track
+ * @param aDuration The new duration of the track
+ */
+void SmfTrackInfo::setDuration( const QTime &aDuration )
+	{
+	d->m_duration = aDuration;
+	}
+
+/**
+ * Method to set the id of the track
+ * @param aId The ID value 
+ */
+void SmfTrackInfo::setId( const QString &aId )
+	{
+	d->m_trackId = aId;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfTrackInfo object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aTrackInfo The SmfTrackInfo object to be externalized
+ * @return reference to the written stream
+ */
+QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfTrackInfo &aTrackInfo )
+	{
+	// Serialize d->m_trackId
+	aDataStream<<aTrackInfo.d->m_trackId;
+	
+	// Serialize d->m_title
+	aDataStream<<aTrackInfo.d->m_title;
+	
+	// Serialize d->m_album
+	aDataStream<<aTrackInfo.d->m_album;
+	
+	// Serialize d->m_artists
+	aDataStream<<aTrackInfo.d->m_artists;
+	
+	// Serialize d->m_genre
+	aDataStream<<aTrackInfo.d->m_genre;
+	
+	// Serialize d->m_tags
+	aDataStream<<aTrackInfo.d->m_tags;
+	
+	// Serialize d->m_year
+	aDataStream<<aTrackInfo.d->m_year;
+	
+	// Serialize d->m_rating
+	aDataStream<<aTrackInfo.d->m_rating;
+	
+	// Serialize d->m_comments
+	aDataStream<<aTrackInfo.d->m_comments;
+	
+	// Serialize d->m_duration
+	aDataStream<<aTrackInfo.d->m_duration;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfTrackInfo object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aTrackInfo The SmfTrackInfo object to be internalized
+ * @return reference to the stream
+ */
+ QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfTrackInfo &aTrackInfo)
+	{
+	// Deserialize d->m_trackId
+	aDataStream>>aTrackInfo.d->m_trackId;
+	
+	// Deserialize d->m_title
+	aDataStream>>aTrackInfo.d->m_title;
+	
+	// Deserialize d->m_album
+	aDataStream>>aTrackInfo.d->m_album;
+	
+	// Deserialize d->m_artists
+	aDataStream>>aTrackInfo.d->m_artists;
+	
+	// Deserialize d->m_genre
+	aDataStream>>aTrackInfo.d->m_genre;
+	
+	// Deserialize d->m_tags
+	aDataStream>>aTrackInfo.d->m_tags;
+	
+	// Deserialize d->m_year
+	aDataStream>>aTrackInfo.d->m_year;
+	
+	// Deserialize d->m_rating
+	aDataStream>>aTrackInfo.d->m_rating;
+	
+	// Deserialize d->m_comments
+	aDataStream>>aTrackInfo.d->m_comments;
+	
+	// Deserialize d->m_duration
+	aDataStream>>aTrackInfo.d->m_duration;
+	
+	return aDataStream;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smftrackinfo.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,224 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The track info class represents information about a music track
+ *
+ */
+
+#ifndef SMFTRACKINFO_H_
+#define SMFTRACKINFO_H_
+
+#include <QTime>
+#include <qdatastream.h>
+#include <smfmusicrating.h>
+#include <smfartists.h>
+#include "smfalbum.h"
+#include <smfcomment.h>
+#include <QStringList>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <QMetaType>
+
+class SmfTrackInfoPrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The track info class represents information about a music track
+ */
+class SMFCOMMON_EXPORT SmfTrackInfo
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfTrackInfo( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfTrackInfo( const SmfTrackInfo &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 */
+	SmfTrackInfo& operator=( const SmfTrackInfo &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfTrackInfo( );
+	
+	/**
+	 * Method to get the track title
+	 * @return The title of the track
+	 */
+	QString title( ) const;
+	
+	/**
+	 * Method to get the track album
+	 * @return The album of the track
+	 */
+	SmfAlbum album( ) const;
+	
+	/**
+	 * Method to get the track's artists
+	 * @return The artists of the track
+	 */
+	SmfArtists artists( ) const;
+	
+	/**
+	 * Method to get the genre of the track
+	 * @return The genre of the track
+	 */
+	QString genre( ) const;
+	
+	/**
+	 * Method to get the track's tag
+	 * @return The tag of the track
+	 */
+	QStringList tags( ) const;
+	
+	/**
+	 * Method to get the release year of the track
+	 * @return The release year of the track
+	 */
+	QDateTime year( ) const;
+	
+	/**
+	 * Method to get the track's rating
+	 * @return The rating of the track
+	 */
+	SmfMusicRating rating( ) const;
+	
+	/**
+	 * Method to get the comments on the track
+	 * @return The comments on the track
+	 */
+	QList<SmfComment> comments( ) const;
+	
+	/**
+	 * Method to get the track's duration
+	 * @return The duration of the track
+	 */
+	QTime duration( ) const;
+	
+	/**
+	 * Method to get the id of the track
+	 * @return The ID value 
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to set the track title
+	 * @param aTitle The new title of the track
+	 */
+	void setTitle( const QString &aTitle );
+	
+	/**
+	 * Method to set the track album
+	 * @param aAlbum The new album of the track
+	 */
+	void setAlbum( const SmfAlbum &aAlbum );
+	
+	/**
+	 * Method to set the track's artists
+	 * @param aArtists The new artists of the track
+	 */
+	void setArtists( const SmfArtists &aArtists );
+	
+	/**
+	 * Method to set the genre of the track
+	 * @param aGenre The new genre of the track
+	 */
+	void setGenre( const QString &aGenre );
+	
+	/**
+	 * Method to set the track's tag
+	 * @param aTag The tag of the track
+	 */
+	void setTags( const QStringList &aTags );
+	
+	/**
+	 * Method to set the release year of the track
+	 * @param aYear The new release year of the track
+	 */
+	void setYear( const QDateTime &aYear );
+	
+	/**
+	 * Method to set the track's rating
+	 * @param aRating The new rating of the track
+	 */
+	void setRating( const SmfMusicRating &aRating );
+	
+	/**
+	 * Method to set the comments on the track
+	 * @param aComment The new comment of the track
+	 */
+	void setComment( const QList<SmfComment> &aComments );
+	
+	/**
+	 * Method to set the duration of the track
+	 * @param aDuration The new duration of the track
+	 */
+	void setDuration( const QTime &aDuration );
+	
+	/**
+	 * Method to set the id of the track
+	 * @param aId The ID value 
+	 */
+	void setId( const QString &aId );
+
+private:
+	QSharedDataPointer<SmfTrackInfoPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfTrackInfo &aTrackInfo );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfTrackInfo &aTrackInfo );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfTrackInfo object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aTrackInfo The SmfTrackInfo object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfTrackInfo &aTrackInfo );
+
+/**
+ * Method for Internalization. Reads a SmfTrackInfo object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aTrackInfo The SmfTrackInfo object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfTrackInfo &aTrackInfo);
+
+
+typedef QList<SmfTrackInfo> SmfTrackInfoList;
+
+// Make the class SmfTrackInfo known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfTrackInfo)
+Q_DECLARE_METATYPE(QList<SmfTrackInfo>)
+
+#endif /* SMFTRACKINFO_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smftrackinfo_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,81 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfTrackInfo class
+ *
+ */
+
+#ifndef SMFTRACKINFO_P_H_
+#define SMFTRACKINFO_P_H_
+
+#include <QTime>
+#include <smfmusicrating.h>
+#include <smfcomment.h>
+#include <QStringList>
+#include <QSharedData>
+
+class SmfTrackInfoPrivate : public QSharedData
+{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfTrackInfoPrivate( ) : m_rating( ) 
+		{ 
+		m_trackId.clear();
+		m_title.clear();
+		m_genre.clear();
+		m_tags.clear();
+		m_comments.clear();
+	}
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfTrackInfoPrivate( const SmfTrackInfoPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_trackId ( aOther.m_trackId ),
+		m_title ( aOther.m_title ),
+		m_album ( aOther.m_album ),
+		m_artists ( aOther.m_artists ),
+		m_genre ( aOther.m_genre ),
+		m_tags ( aOther.m_tags ),
+		m_year ( aOther.m_year ),
+		m_rating ( aOther.m_rating ),
+		m_comments ( aOther.m_comments ),
+		m_duration ( aOther.m_duration ) 	{ }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfTrackInfoPrivate( )
+		{
+		}
+  
+	QString m_trackId;		// track id
+	QString m_title;		// title
+	SmfAlbum m_album;		// album 
+	SmfArtists m_artists;	// artist name
+	QString m_genre;		// genre information
+	QStringList m_tags;		// tag information
+	QDateTime m_year;		// release year
+	SmfMusicRating m_rating;// rating
+	QList<SmfComment> m_comments;	// comments
+	QTime m_duration;		// duration
+	
+};
+
+#endif /* SMFTRACKINFO_P_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfurl.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,259 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfUrl class represents an URL. This class has been constructed based on 
+ * the link element of the The Atom Syndication Format 
+ * (refer http://tools.ietf.org/html/rfc4287)
+ * For detailed description about atom link relations, refer 
+ * "http://www.iana.org/assignments/link-relations/link-relations.xhtml"
+ *
+ */
+
+#include <QUrl>
+
+#include "smfurl.h"
+#include "smfurl_p.h"
+
+/**
+ * Constructor with default argument
+ */
+SmfUrl::SmfUrl( )
+	{
+	d = new SmfUrlPrivate;
+	}
+
+/**
+ * Copy Constructor
+ * @param aOther The reference object
+ */
+SmfUrl::SmfUrl( const SmfUrl &aOther )
+	: d( aOther.d )
+	{
+	}
+
+/**
+ * Overloaded = operator
+ * @param aOther The reference object
+ * @return The target reference value
+ */
+SmfUrl& SmfUrl::operator=( const SmfUrl &aOther )
+	{
+	d->m_id = aOther.d->m_id;
+	return *this;
+	}
+
+/**
+ * Destructor
+ */
+SmfUrl::~SmfUrl( )
+	{
+	}
+
+
+/**
+ * Method to get the href attribute of the link
+ * @return The href attribute of the link
+ */
+QUrl SmfUrl::href( ) const
+	{
+	return d->m_href;
+	}
+
+/**
+ * Method to get the rel attribute of the link
+ * @return The rel attribute of the link
+ */
+QString SmfUrl::rel( ) const
+	{
+	return d->m_rel;
+	}
+
+/**
+ * Method to get the type attribute of the link
+ * @return The type attribute of the link
+ */
+QString SmfUrl::type( ) const
+	{
+	return d->m_type;
+	}
+
+/**
+ * Method to get the hreflang attribute of the link
+ * @return The hreflang attribute of the link
+ */
+QString SmfUrl::hreflang( ) const
+	{
+	return d->m_hreflang;
+	}
+
+/**
+ * Method to get the title attribute of the link
+ * @return The title attribute of the link
+ */
+QString SmfUrl::title( ) const
+	{
+	return d->m_title;
+	}
+
+/**
+ * Method to get the length attribute of the link
+ * @return The length attribute of the link
+ */
+QString SmfUrl::length( ) const
+	{
+	return d->m_length;
+	}
+
+/**
+ * Method to get the id of the URL
+ * @return The ID of the URL
+ */
+QString SmfUrl::id( ) const
+	{
+	return d->m_id;
+	}
+
+/**
+ * Method to set the href attribute of the link
+ * @param aData The href attribute of the link
+ */
+void SmfUrl::setHref( const QUrl& aData )
+	{
+	d->m_href = aData;
+	}
+
+/**
+ * Method to set the rel attribute of the link
+ * @param aData The rel attribute of the link
+ */
+void SmfUrl::setRel( const QString &aData )
+	{
+	d->m_rel = aData;
+	}
+
+/**
+ * Method to set the type attribute of the link
+ * @param aData The type attribute of the link
+ */
+void SmfUrl::setType( const QString &aData )
+	{
+	d->m_type = aData;
+	}
+
+/**
+ * Method to set the hreflang attribute of the link
+ * @param aData The hreflang attribute of the link
+ */
+void SmfUrl::setHhreflang( const QString &aData )
+	{
+	d->m_hreflang = aData;
+	}
+
+/**
+ * Method to set the title attribute of the link
+ * @param aData The title attribute of the link
+ */
+void SmfUrl::setTitle( const QString &aData )
+	{
+	d->m_title = aData;
+	}
+
+/**
+ * Method to set the length attribute of the link
+ * @param aData The length attribute of the link
+ */
+void SmfUrl::setLength( const QString &aData )
+	{
+	d->m_length = aData;
+	}
+
+/**
+ * Method to set the id of the URL
+ * @param aId The ID of the URL
+ */
+void SmfUrl::setId( const QString &aId )
+	{
+	d->m_id = aId;
+	}
+
+
+/**
+ * Method for Externalization. Writes the SmfUrl object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aUrl The SmfUrl object to be externalized
+ * @return reference to the written stream
+ */
+ QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfUrl &aUrl )
+	{
+	// Serialize d->m_href
+	aDataStream<<aUrl.d->m_href;
+	
+	// Serialize d->m_rel
+	aDataStream<<aUrl.d->m_rel;
+	
+	// Serialize d->m_type
+	aDataStream<<aUrl.d->m_type;
+	
+	// Serialize d->m_hreflang
+	aDataStream<<aUrl.d->m_hreflang;
+	
+	// Serialize d->m_title
+	aDataStream<<aUrl.d->m_title;
+	
+	// Serialize d->m_length
+	aDataStream<<aUrl.d->m_length;
+	
+	// Serialize d->m_id
+	aDataStream<<aUrl.d->m_id;
+	
+	return aDataStream;
+	}
+
+/**
+ * Method for Internalization. Reads a SmfUrl object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aUrl The SmfUrl object to be internalized
+ * @return reference to the stream
+ */
+QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfUrl &aUrl)
+	{
+	// Deserialize d->m_href
+	aDataStream>>aUrl.d->m_href;
+	
+	// Deserialize d->m_rel
+	aDataStream>>aUrl.d->m_rel;
+	
+	// Deserialize d->m_type
+	aDataStream>>aUrl.d->m_type;
+	
+	// Deserialize d->m_hreflang
+	aDataStream>>aUrl.d->m_hreflang;
+	
+	// Deserialize d->m_title
+	aDataStream>>aUrl.d->m_title;
+	
+	// Deserialize d->m_length
+	aDataStream>>aUrl.d->m_length;
+	
+	// Deserialize d->m_id
+	aDataStream>>aUrl.d->m_id;
+	
+	return aDataStream;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfurl.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,190 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * The SmfUrl class represents an URL. This class has been constructed based on 
+ * the link element of the The Atom Syndication Format 
+ * (refer http://tools.ietf.org/html/rfc4287).
+ * For detailed description about atom link relations, refer 
+ * "http://www.iana.org/assignments/link-relations/link-relations.xhtml"
+ *
+ */
+
+#ifndef SMFURL_H_
+#define SMFURL_H_
+
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <QMetaType>
+
+class SmfUrlPrivate;
+
+/**
+ * @ingroup smf_common_group
+ * The SmfUrl class represents an URL. This class has been constructed based on 
+ * the link element of the The Atom Syndication Format 
+ * (refer http://tools.ietf.org/html/rfc4287)
+ * For detailed description about atom link relations, refer 
+ * "http://www.iana.org/assignments/link-relations/link-relations.xhtml"
+ */
+class SMFCOMMON_EXPORT SmfUrl
+	{
+public:
+	/**
+	 * Constructor with default argument
+	 */
+	SmfUrl( );
+	
+	/**
+	 * Copy Constructor
+	 * @param aOther The reference object
+	 */
+	SmfUrl( const SmfUrl &aOther );
+	
+	/**
+	 * Overloaded = operator
+	 * @param aOther The reference object
+	 */
+	SmfUrl& operator=( const SmfUrl &aOther );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfUrl( );
+	
+	/**
+	 * Method to get the href attribute of the link
+	 * @return The href attribute of the link
+	 */
+	QUrl href( ) const;
+	
+	/**
+	 * Method to get the rel attribute of the link
+	 * @return The rel attribute of the link
+	 */
+	QString rel( ) const;
+	
+	/**
+	 * Method to get the type attribute of the link
+	 * @return The type attribute of the link
+	 */
+	QString type( ) const;
+	
+	/**
+	 * Method to get the hreflang attribute of the link
+	 * @return The hreflang attribute of the link
+	 */
+	QString hreflang( ) const;
+	
+	/**
+	 * Method to get the title attribute of the link
+	 * @return The title attribute of the link
+	 */
+	QString title( ) const;
+	
+	/**
+	 * Method to get the length attribute of the link
+	 * @return The length attribute of the link
+	 */
+	QString length( ) const;
+	
+	/**
+	 * Method to get the id of the URL
+	 * @return The ID of the URL
+	 */
+	QString id( ) const;
+	
+	/**
+	 * Method to set the href attribute of the link
+	 * @param aData The href attribute of the link
+	 */
+	void setHref( const QUrl& aData );
+	
+	/**
+	 * Method to set the rel attribute of the link
+	 * @param aData The rel attribute of the link
+	 */
+	void setRel( const QString &aData );
+	
+	/**
+	 * Method to set the type attribute of the link
+	 * @param aData The type attribute of the link
+	 */
+	void setType( const QString &aData );
+	
+	/**
+	 * Method to set the hreflang attribute of the link
+	 * @param aData The hreflang attribute of the link
+	 */
+	void setHhreflang( const QString &aData );
+	
+	/**
+	 * Method to set the title attribute of the link
+	 * @param aData The title attribute of the link
+	 */
+	void setTitle( const QString &aData );
+	
+	/**
+	 * Method to set the length attribute of the link
+	 * @param aData The length attribute of the link
+	 */
+	void setLength( const QString &aData );
+	
+	/**
+	 * Method to set the id of the URL
+	 * @param aId The ID of the URL
+	 */
+	void setId( const QString &aId );
+	
+private:
+	QSharedDataPointer<SmfUrlPrivate> d;
+	
+	friend QDataStream &operator<<( QDataStream &aDataStream, 
+			const SmfUrl &aUrl );
+
+	friend QDataStream &operator>>( QDataStream &aDataStream, 
+			SmfUrl &aUrl );
+	
+	};
+
+
+/**
+ * Method for Externalization. Writes the SmfUrl object to 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be written
+ * @param aUrl The SmfUrl object to be externalized
+ * @return reference to the written stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator<<( QDataStream &aDataStream, 
+		const SmfUrl &aUrl );
+
+/**
+ * Method for Internalization. Reads a SmfUrl object from 
+ * the stream and returns a reference to the stream.
+ * @param aDataStream Stream to be read
+ * @param aUrl The SmfUrl object to be internalized
+ * @return reference to the stream
+ */
+SMFCOMMON_EXPORT QDataStream &operator>>( QDataStream &aDataStream, 
+		SmfUrl &aUrl);
+
+typedef QList<SmfUrl> SmfUrlList;
+
+// Make the class SmfUrl known to QMetaType, so that as to register it.
+Q_DECLARE_METATYPE(SmfUrl)
+Q_DECLARE_METATYPE(QList<SmfUrl>)
+
+#endif /* SMFURL_H_ */
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfcommon/smfurl_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0" 
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * Private class implemented for implicit sharing of SmfUrl class
+ *
+ */
+
+#ifndef SMFURL_P_H_
+#define SMFURL_P_H_
+
+#include <QSharedData>
+#include <QUrl>
+
+class SmfUrlPrivate : public QSharedData
+	{
+public:
+	/**
+	 * Constructor
+	 */
+	SmfUrlPrivate( ) { 
+		m_id.clear();
+	}
+	
+	/**
+	 * Copy Consturctor
+	 * @param aOther The reference object to be copy constructed
+	 */
+	SmfUrlPrivate( const SmfUrlPrivate &aOther ) : 
+		QSharedData ( aOther ), 
+		m_id ( aOther.m_id ) { }
+	
+	/**
+	 * Destructor
+	 */
+	~SmfUrlPrivate( )
+		{
+		}
+
+	/**
+	 * Data members
+	 */
+	QUrl 	m_href;		// The href attribute of an Atom link element, contains the link's IRI
+	QString m_rel;		// The rel attribute that indicates the link relation type
+	QString m_type;		// The type attribute. It is a hint about the type of the 
+						// representation that is expected to be returned when the 
+						// value of the href attribute is dereferenced
+	QString m_hreflang;	// The hreflang attribute describes the language of the resource 
+						// pointed to by the href attribute
+	QString m_title;	// The title attribute conveys human-readable information about the link
+	QString m_length;	// The length attribute indicates an advisory length 
+						// of the linked content in octets
+	QString m_id;		// The url ID
+	
+	};
+
+#endif /* SMFURL_P_H_ */
--- a/smf/smfservermodule/smfserver/ABLD.BAT	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-@ECHO OFF
-
-REM Bldmake-generated batch file - ABLD.BAT
-REM ** DO NOT EDIT **
-
-perl -S ABLD.PL "\CarbideWorkspace\smfserver_cleaned\smf\smfservermodule\smfserver\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
-if errorlevel==1 goto CheckPerl
-goto End
-
-:CheckPerl
-perl -v >NUL
-if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
-goto End
-
-:End
--- a/smf/smfservermodule/smfserver/bld.inf	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-// ============================================================================
-// * Makefile for building: smfserver
-// * Generated by qmake (2.01a) (Qt 4.6.1) on: 2010-05-18T15:52:55
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// * Project:  smfserver.pro
-// * Template: app
-// ============================================================================
-
-#define BLD_INF_SMFSERVER_F941367E
-
-
-prj_platforms
-
-WINSCW GCCE ARMV5 ARMV6
-
-
-prj_mmpfiles
-
-gnumakefile Makefile_0xE5027327.mk
-smfserver_0xE5027327.mmp
-
-prj_extensions
-
-
-
-prj_exports
-
-smfplugins/smfpluginbase.h
-smfplugins/smfproviderbase.h
-smfplugins/smfcontactfetcherplugin.h
-smfplugins/smfpostproviderplugin.h
-smfplugins/smflyricsserviceplugin.h
-smfplugins/smfmusiceventsplugin.h
-smfplugins/smfmusicsearchplugin.h
-smfplugins/smfmusicserviceplugin.h
-smfplugins/smfplaylistserviceplugin.h
-smfplugins/smfgalleryplugin.h
--- a/smf/smfservermodule/smfserver/main.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/main.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -73,7 +73,6 @@
 int main(int argc, char *argv[])
 {
 	qInstallMsgHandler(debugOutput);
-	
     QCoreApplication a(argc, argv);
 #ifndef SETTINGS_TEST
 	SmfServer* server = new SmfServer();
--- a/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -26,6 +26,7 @@
 #include <smfpluginbase.h>
 #include <smfpluginutil.h>
 #include <smfprovider.h>
+#include <smfcredmgrclient.h>
 
 #include "smfpluginmanager.h"
 #include "smfpluginmanagerutil.h"
@@ -155,19 +156,18 @@
 		
 		if(instance)
 		{
-		// Get the registration token of the plugin
-		QString regToken = instance->getProviderInfo()->smfRegistrationId();
 		QList<QUrl> urlList;
 		SmfPluginRequestData reqData;
 
 		// check if the plugin is authorised (with CSM)
-		if( authorisePlugin(regToken, urlList ))
+		if( authorisePlugin(aPluginID, urlList ))
 			{
 			qDebug()<<"Plugin authorised";
 			
 			// call the utility method to create plugin specific request
 			result = SmfUnknownError;
-			m_util->createRequest(plugin, aOperation, aInputData, reqData, result);
+			QByteArray notused;
+			m_util->createRequest(plugin, aOperation, aInputData, reqData, result, notused);
 
 			// If the request is created successfully, call the TM method to send the request
 			if( SmfNoError == result )
@@ -215,6 +215,84 @@
 
 
 /**
+ * Method called by Smf server to create a synchronous plugin request.
+ * @param aPluginID The plugin ID that need to perform this operation
+ * @param aOperation The type of operation to be performed
+ * @param aInputData The data required by the plugins
+ * @param aOutputData [out] The output data to be filled by the plugins
+ * @return SmfError The result of the operation. It can be :-
+ * SmfPluginNoError (if the request is success) or 
+ * SmfPluginLoadError (if plugin could not be loaded) or
+ * SmfPluginNotAuthorised (if the plugin is not authorised) or
+ * SmfPluginUnknownPluginService (if the requested service is not known or unsupported)
+ */
+SmfError SmfPluginManager::createSyncRequest ( const QString& aPluginID, 
+		const SmfRequestTypeID& aOperation, 
+		QByteArray& aInputData,
+		QByteArray& aOutputData )
+	{
+	qDebug()<<"Inside SmfPluginManager::createSyncRequest()";
+	
+	SmfError result = SmfUnknownError;
+
+	// Load the plugin
+	QObject *plugin = load(aPluginID, result);
+	
+	// Check if plugin is loaded
+	if(plugin && (SmfNoError == result))
+		{
+		SmfPluginBase* instance = qobject_cast<SmfPluginBase *>(plugin);
+		
+		if(instance)
+		{
+		QList<QUrl> urlList;
+		SmfPluginRequestData reqData;
+
+		// check if the plugin is authorised (with CSM)
+		if( authorisePlugin(aPluginID, urlList ))
+			{
+			qDebug()<<"Plugin authorised";
+			
+			// call the utility method to create plugin specific request
+			result = SmfUnknownError;
+			m_util->createRequest(plugin, aOperation, aInputData, reqData, result, aOutputData );
+
+			// If the request is created successfully, call the TM method to send the request
+			if( SmfNoError == result )
+				qDebug()<<"Plugin request creation successful";
+			else
+				qDebug()<<"Plugin request creation failed!!!, error = "<<result;
+			}
+		
+		else
+			{
+			// plugin not authorised, so unload
+			qDebug()<<"Plugin not authorised!!!";
+			unload(instance);
+				result = SmfPMPluginNotAuthorised;
+			}
+		}
+		else
+			{
+			// plugin instance cannot be casted, so unload
+			qDebug()<<"Plugin instance cannot be casted to SmfPluginBase*!!!";
+			unload(instance);
+			result = SmfPMPluginLoadError;
+			}
+		}
+
+	else
+		{
+		// plugin not loaded
+		qDebug()<<"Plugin not loaded!!!";
+		}
+	
+	return result;
+	}
+
+
+
+/**
  * Method called by Transport Manager when network response is available
  * @param aTransportResult The result of Transport Operation
  * @param aReply The QNetworkReply instance that requested 
@@ -436,7 +514,7 @@
 				    if (plugin)
 				    	{
 						qDebug()<<"SmfPluginBase found";
-						plugin->initialize(SmfPluginUtil::getInstance());
+						plugin->initialize();
 				    
 						// get the plugin id
 						QString id = plugin->getProviderInfo()->pluginId();
@@ -551,7 +629,7 @@
 		if( pluginLoader->isLoaded() && plugin )
 			{
 			// Initialize the plugin
-			plugin->initialize(SmfPluginUtil::getInstance());
+			plugin->initialize();
 			
 			// update the plugin loader and the loaded plugin lists
 			m_pluginLoaderHash.insertMulti(plugin, pluginLoader);
@@ -746,42 +824,26 @@
  * This method communicates with Credential and Settings Manager 
  * through Smf server, giving the registration token and getting 
  * the valid url list if available for this plugin.
- * @param aRegToken The registration token given by the plugin
+ * @param aPluginId The ID of the plugin
  * @param aUrlList [out] The list of Urls that the plugin can send 
  * request to (to be filled by CSM). This list will be empty if 
- * aRegToken is empty
+ * aPluginId is not valid or not authorised.
  * @return Returns true if plugin is authorised, else returns false.
  * Also returns false if aRegToken is empty.
  */
-bool SmfPluginManager::authorisePlugin( const QString &aRegToken, 
+bool SmfPluginManager::authorisePlugin( const QString &aPluginId, 
 		QList<QUrl> &aUrlList )
 	{
-	Q_UNUSED(aRegToken)
 	qDebug()<<"Inside SmfPluginManager::authorisePlugin()";
 	
-#ifdef CSM_INTEGRATED
-	aUrlList.clear();
-	
-// Get the valid URL list from CSM, giving the reg token
-	if(aRegToken.size())
-		return m_server->authorisePlugin(aRegToken, aUrlList);
-	else
-		return false;
-#else
+	bool authorised = false;
+	SmfCredMgrClient csmClient;
 	
-// CSM STUBBING - start
-	QUrl url1 ("http://www.example.com");
-	QUrl url2 ("http://api.facebook.com");
-	QUrl url3 ("http://api.flickr.com");
-
-	aUrlList.append(url1);
-	aUrlList.append(url2);
-	aUrlList.append(url3);
-
-	return true;
-// CSM STUBBING - end
-#endif
-
+	aUrlList = csmClient.URLList(aPluginId);
+	if(aUrlList.count())
+		authorised = true;
+	
+	return authorised;
 	}
 
 
@@ -882,7 +944,7 @@
 		
 		if(instance && (SmfNoError == result))
 			{
-			instance->initialize(SmfPluginUtil::getInstance());
+			instance->initialize();
 			serviceProv = instance->getProviderInfo()->serviceName();
 			interfaceName = dir.dirName();
 			}
@@ -926,7 +988,7 @@
 		
 		if(instance && (SmfNoError == result))
 			{
-			instance->initialize(SmfPluginUtil::getInstance());
+			instance->initialize();
 			serviceProv = instance->getProviderInfo()->serviceName();
 			interfaceName = dir.dirName();
 			interfaceName.prepend("org.symbian.smf.plugin.");
@@ -993,7 +1055,7 @@
 		
 		if(instance && (SmfNoError == result))
 			{
-			instance->initialize(SmfPluginUtil::getInstance());
+			instance->initialize();
 			serviceProv = instance->getProviderInfo()->serviceName();
 			interfaceName = dir.dirName();
 			}
--- a/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.h	Thu Aug 05 16:48:48 2010 +0530
@@ -120,6 +120,23 @@
 			QByteArray& aInputData );
 	
 	/**
+	 * Method called by Smf server to create a synchronous plugin request.
+	 * @param aPluginID The plugin ID that need to perform this operation
+	 * @param aOperation The type of operation to be performed
+	 * @param aInputData The data required by the plugins
+	 * @param aOutputData [out] The output data to be filled by the plugins
+	 * @return SmfError The result of the operation. It can be :-
+	 * SmfPluginNoError (if the request is success) or 
+	 * SmfPluginLoadError (if plugin could not be loaded) or
+	 * SmfPluginNotAuthorised (if the plugin is not authorised) or
+	 * SmfPluginUnknownPluginService (if the requested service is not known or unsupported)
+	 */
+	SmfError createSyncRequest ( const QString& aPluginID, 
+			const SmfRequestTypeID& aOperation, 
+			QByteArray& aInputData,
+			QByteArray& aOutputData );
+	
+	/**
 	 * Method called by Transport Manager when network response is available
 	 * @param aTransportResult The result of Transport Operation
 	 * @param aReply The QNetworkReply instance that requested 
@@ -232,14 +249,14 @@
 	 * This method communicates with Credential and Settings Manager 
 	 * through Smf server, giving the registration token and getting 
 	 * the valid url list if available for this plugin.
-	 * @param aRegToken The registration token given by the plugin
+	 * @param aPluginId The ID of the plugin
 	 * @param aUrlList [out] The list of Urls that the plugin can send 
 	 * request to (to be filled by CSM). This list will be empty if 
 	 * aRegToken is empty
 	 * @return Returns true if plugin is authorised, else returns false.
 	 * Also returns false if aRegToken is empty.
 	 */
-	bool authorisePlugin( const QString &aRegToken, 
+	bool authorisePlugin( const QString &aPluginId, 
 			QList<QUrl> &aUrlList );
 	
 	/**
--- a/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanagerutil.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanagerutil.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -19,6 +19,8 @@
  */
 
 // plugin interfaces
+#include <QVector>
+#include <QTextFormat>
 #include <smfactivityfetcherplugin.h>
 #include <smfcontactfetcherplugin.h>
 #include <smfpostproviderplugin.h>
@@ -77,18 +79,22 @@
  * @param aInstance Instance of the loaded plugin that perform this operation
  * @param aOperation The type of operation to be performed
  * @param aInputData The data required to create the web query
- * @param aReqData [out] The request data created by the plugin
+ * @param aReqData [out] The request data created by the 
+ * plugin (don't consider for synchronous requests)
  * @param aResult [out] SmfError, The result of the operation
  * It can be :-
  * SmfPluginNoError (if plugin has created the request successfully)
  * SmfPluginUnknownPluginService (if plugin service is not known or unsupported)
  * SmfPluginRequestCreationFailed (if request creation has failed)
+ * @param aOutputData [out] The output data to be filled by the 
+ * plugins (for synchronous request only), don't consider for asynchronous requests
  */
 void SmfPluginManagerUtil::createRequest ( QObject* aInstance, 
 		const SmfRequestTypeID &aOperation, 
 		QByteArray &aInputData,
 		SmfPluginRequestData &aReqData,
-		SmfError &aResult )
+		SmfError &aResult,
+		QByteArray &aOutputData )
 	{
 	qDebug()<<"SmfPluginManagerUtil::createRequest()";
 	SmfPluginError pluginErrorVal = SmfPluginErrServiceNotSupported;
@@ -130,6 +136,14 @@
 					aInputData, aReqData);
 			break;
 			
+		case SmfPostGetMaxCharsInPost:
+		case SmfPostGetMaxItems:
+		case SmfPostGetSupportedFormats:
+		case SmfPostGetAppearanceSupport:
+			pluginErrorVal = createSyncRequest(aInstance, aOperation, 
+					aInputData, aOutputData);
+			break;
+			
 		case SmfMusicGetLyrics:
 		case SmfMusicGetSubtitle:
 		case SmfMusicLyricsCustomRequest:
@@ -140,7 +154,6 @@
 	
 		case SmfMusicGetEventsOnLoc:
 		case SmfMusicGetVenueOnLoc:
-		case SmfMusicGetEventsOnVenue:
 		case SmfMusicPostEvents:
 		case SmfMusicEventsCustomRequest:
 			// Authorise the plugin and call create request methods
@@ -152,7 +165,6 @@
 		case SmfMusicGetTracks:
 		case SmfMusicGetTrackInfo:
 		case SmfMusicGetStores:
-		case SmfMusicPostCurrentPlaying:
 		case SmfMusicSearchCustomRequest:
 			// Authorise the plugin and call create request methods
 			pluginErrorVal = createMusicSearchRequest(aInstance, aOperation, 
@@ -161,6 +173,9 @@
 			
 		case SmfMusicGetUserInfo:
 		case SmfMusicSearchUser:
+		case SmfMusicPostCurrentPlaying:
+		case SmfMusicPostRating:
+		case SmfMusicPostComment:
 		case SmfMusicServiceCustomRequest:
 			// Authorise the plugin and call create request methods
 			pluginErrorVal = createMusicServiceRequest(aInstance, aOperation, 
@@ -177,6 +192,7 @@
 					aInputData, aReqData);
 			break;
 			
+		case SmfPictureGetAlbums:
 		case SmfPictureGetPictures:
 		case SmfPictureDescription:
 		case SmfPictureUpload:
@@ -223,12 +239,15 @@
 		{
 		QDataStream stream(aInputData);
 		int pageNum, itemPerPage;
+		quint8 flag = 0;
 
 		switch(aOperation)
 			{
 			case SmfActivitySelfActivity:
 				qDebug()<<"Plugin Operation requested : selfactivities()";
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->selfActivities(aReqData, pageNum, itemPerPage);
 				break;
@@ -237,8 +256,11 @@
 				{
 				qDebug()<<"Plugin Operation requested : friendsActivities()";
 				SmfContact contact;
+				stream>>flag;
 				stream>>contact;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->friendsActivities(aReqData, contact, pageNum, itemPerPage);
 				break;
@@ -249,6 +271,7 @@
 				qDebug()<<"Plugin Operation requested : filtered()";
 				QList<SmfActivityObjectType> list;
 				QList<int> intList;
+				stream>>flag;
 				stream>>intList;
 				list.clear();
 				foreach(int val, intList)
@@ -257,7 +280,9 @@
 					list.append(type);
 					}
 				
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->filtered(aReqData, list, pageNum, itemPerPage);
 				break;
@@ -267,9 +292,12 @@
 				{
 				qDebug()<<"Plugin Operation requested : customRequest()";
 				int operationType;
+				stream>>flag;
 				stream>>operationType;
 				QByteArray data;
-				stream>>data;
+				stream>>flag;
+				if(flag)
+					stream>>data;
 				pluginErrorVal = plugin->customRequest(aReqData, operationType, &data);
 				break;
 				}
@@ -317,19 +345,24 @@
 		{
 		QDataStream stream(aInputData);
 		int pageNum, itemPerPage;
+		quint8 flag = 0;
 
 		switch(aOperation)
 			{
 			case SmfContactGetFriends:
 				qDebug()<<"Plugin Operation requested : friends()";
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->friends(aReqData, pageNum, itemPerPage);
 				break;
 				
 			case SmfContactGetFollowers:
 				qDebug()<<"Plugin Operation requested : followers()";
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->followers(aReqData, pageNum, itemPerPage);
 				break;
@@ -338,8 +371,12 @@
 				{
 				qDebug()<<"Plugin Operation requested : search()";
 				SmfContact searchContact;
-				stream>>searchContact;
+				stream>>flag;
+				if(flag)
+					stream>>searchContact;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->search(aReqData, searchContact, pageNum, itemPerPage);
 				break;
@@ -349,10 +386,16 @@
 				{
 				qDebug()<<"Plugin Operation requested : searchNear()";
 				SmfLocation location;
+				stream>>flag;
+				if(flag)
+					stream>>location;
+				stream>>flag;
 				int i;
 				stream>>i;
 				SmfLocationSearchBoundary proximity = (SmfLocationSearchBoundary)i;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->searchNear(aReqData, location, proximity, pageNum, itemPerPage);
 				break;
@@ -361,7 +404,9 @@
 			case SmfContactGetGroups:
 				{
 				qDebug()<<"Plugin Operation requested : groups()";
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->groups(aReqData, pageNum, itemPerPage);
 				break;
@@ -371,8 +416,11 @@
 				{
 				qDebug()<<"Plugin Operation requested : searchInGroup()";
 				SmfGroup group;
+				stream>>flag;
 				stream>>group;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->searchInGroup(aReqData, group, pageNum, itemPerPage);
 				break;
@@ -382,9 +430,12 @@
 				{
 				qDebug()<<"Plugin Operation requested : customRequest()";
 				int operationType;
+				stream>>flag;
 				stream>>operationType;
 				QByteArray data;
-				stream>>data;
+				stream>>flag;
+				if(flag)
+					stream>>data;
 				pluginErrorVal = plugin->customRequest(aReqData, operationType, &data);
 				break;
 				}
@@ -436,35 +487,46 @@
 		SmfPost post;
 		SmfLocation location;
 		int pageNum, itemPerPage;
-	
+		quint8 flag = 0;
 		switch(aOperation)
 			{
 			case SmfContactRetrievePosts:
 				qDebug()<<"Plugin Operation requested : retrieve()";
-				stream>>contact;
+				stream>>flag;
+				if(flag)
+					stream>>contact;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->retrieve(aReqData, &contact, pageNum, itemPerPage);
 				break;
 				
 			case SmfContactPost:
 				qDebug()<<"Plugin Operation requested : post()";
+				stream>>flag;
 				stream>>post;
+				stream>>flag;
 				stream>>location;
 				pluginErrorVal = plugin->post(aReqData, post, location);
 				break;
 				
 			case SmfContactUpdatePost:
 				qDebug()<<"Plugin Operation requested : updatePost()";
+				stream>>flag;
 				stream>>post;
 				pluginErrorVal = plugin->updatePost(aReqData, post);
 				break;
 				
 			case SmfContactPostDirected:
 				qDebug()<<"Plugin Operation requested : postDirected()";
+				stream>>flag;
 				stream>>post;
+				stream>>flag;
 				stream>>contact;
-				stream>>location;
+				stream>>flag;
+				if(flag)
+					stream>>location;
 				qDebug()<<"Post data = "<<post.description();
 				qDebug()<<"Contact ID = "<<contact.value("Guid").value<QContactGuid>().guid();
 				pluginErrorVal = plugin->postDirected(aReqData, post, contact, &location);
@@ -474,9 +536,13 @@
 				{
 				qDebug()<<"Plugin Operation requested : commentOnAPost()";
 				SmfPost post2;
+				stream>>flag;
 				stream>>post;
+				stream>>flag;
 				stream>>post2;
-				stream>>location;
+				stream>>flag;
+				if(flag)
+					stream>>location;
 				pluginErrorVal = plugin->commentOnAPost(aReqData, post, post2, &location);
 				break;
 				}
@@ -486,8 +552,10 @@
 				qDebug()<<"Plugin Operation requested : postAppearence()";
 				QString status;
 				int i;
+				stream>>flag;
 				stream>>i;
 				SmfPresenceInfo presence = (SmfPresenceInfo)i;
+				stream>>flag;
 				stream>>status;
 				pluginErrorVal = plugin->postAppearence(aReqData, presence, status);
 				break;
@@ -497,8 +565,11 @@
 				{
 				qDebug()<<"Plugin Operation requested : sharePost()";
 				bool edited;
+				stream>>flag;
 				stream>>post;
+				stream>>flag;
 				stream>>contact;
+				stream>>flag;
 				stream>>edited;
 				pluginErrorVal = plugin->sharePost(aReqData, post, contact, edited);
 				break;
@@ -508,9 +579,12 @@
 				{
 				qDebug()<<"Plugin Operation requested : customRequest()";
 				int operationType;
+				stream>>flag;
 				stream>>operationType;
 				QByteArray data;
-				stream>>data;
+				stream>>flag;
+				if(flag)
+					stream>>data;
 				pluginErrorVal = plugin->customRequest(aReqData, operationType, &data);
 				break;
 				}
@@ -560,13 +634,17 @@
 		QDataStream stream(aInputData);
 		SmfTrackInfo trackInfo;
 		int pageNum, itemPerPage;
+		quint8 flag = 0;
 
 		switch(aOperation)
 			{
 			case SmfMusicGetLyrics:
 				qDebug()<<"Plugin Operation requested : lyrics()";
+				stream>>flag;
 				stream>>trackInfo;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->lyrics(aReqData, trackInfo, pageNum, itemPerPage);
 				break;
@@ -576,9 +654,12 @@
 				qDebug()<<"Plugin Operation requested : subtitles()";
 				stream>>trackInfo;
 				int i;
+				stream>>flag;
 				stream>>i;
 				SmfSubtitleSearchFilter filter = (SmfSubtitleSearchFilter)i;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->subtitles(aReqData, trackInfo, filter, pageNum, itemPerPage);
 				break;
@@ -588,9 +669,12 @@
 				{
 				qDebug()<<"Plugin Operation requested : customRequest()";
 				int operationType;
+				stream>>flag;
 				stream>>operationType;
 				QByteArray data;
-				stream>>data;
+				stream>>flag;
+				if(flag)
+					stream>>data;
 				pluginErrorVal = plugin->customRequest(aReqData, operationType, &data);
 				break;
 				}
@@ -638,41 +722,38 @@
 		{
 		QDataStream stream(aInputData);
 		int pageNum, itemPerPage;
-		QtMobility::QGeoPositionInfo location;
-
+		SmfLocation location;
+		quint8 flag = 0;
+		
 		switch(aOperation)
 			{
 			case SmfMusicGetEventsOnLoc:
 				qDebug()<<"Plugin Operation requested : events() OnLoc";
+				stream>>flag;
 				stream>>location;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->events(aReqData, location, pageNum, itemPerPage);
 				break;
 				
 			case SmfMusicGetVenueOnLoc:
 				qDebug()<<"Plugin Operation requested : venues()";
+				stream>>flag;
 				stream>>location;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->venues(aReqData, location, pageNum, itemPerPage);
 				break;
 				
-			case SmfMusicGetEventsOnVenue:
-				{
-				qDebug()<<"Plugin Operation requested : events() OnVenue";
-				SmfLocation venue;
-				stream>>venue;
-				stream>>pageNum;
-				stream>>itemPerPage;
-				pluginErrorVal = plugin->events(aReqData, venue, pageNum, itemPerPage);
-				break;
-				}
-				
 			case SmfMusicPostEvents:
 				{
 				qDebug()<<"Plugin Operation requested : postEvents()";
 				QList<SmfEvent> list;
+				stream>>flag;
 				stream>>list;
 				pluginErrorVal = plugin->postEvents(aReqData, list);
 				break;
@@ -682,9 +763,12 @@
 				{
 				qDebug()<<"Plugin Operation requested : customRequest()";
 				int operationType;
+				stream>>flag;
 				stream>>operationType;
 				QByteArray data;
-				stream>>data;
+				stream>>flag;
+				if(flag)
+					stream>>data;
 				pluginErrorVal = plugin->customRequest(aReqData, operationType, &data);
 				break;
 				}
@@ -734,21 +818,28 @@
 		QDataStream stream(aInputData);
 		int pageNum, itemPerPage;
 		SmfTrackInfo trackInfo;
+		quint8 flag = 0;
 
 		switch(aOperation)
 			{
 			case SmfMusicGetRecommendations:
 				qDebug()<<"Plugin Operation requested : recommendations()";
+				stream>>flag;
 				stream>>trackInfo;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->recommendations(aReqData, trackInfo, pageNum, itemPerPage);
 				break;
 				
 			case SmfMusicGetTracks:
 				qDebug()<<"Plugin Operation requested : tracks()";
+				stream>>flag;
 				stream>>trackInfo;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->tracks(aReqData, trackInfo, pageNum, itemPerPage);
 				break;
@@ -757,8 +848,11 @@
 				{
 				qDebug()<<"Plugin Operation requested : trackInfo()";
 				SmfMusicFingerPrint fp;
+				stream>>flag;
 				stream>>fp;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->trackInfo(aReqData, fp, pageNum, itemPerPage);
 				break;
@@ -766,45 +860,25 @@
 				
 			case SmfMusicGetStores:
 				qDebug()<<"Plugin Operation requested : stores()";
+				stream>>flag;
 				stream>>trackInfo;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->stores(aReqData, trackInfo, pageNum, itemPerPage);
 				break;
 				
-			case SmfMusicPostCurrentPlaying:
-				qDebug()<<"Plugin Operation requested : postCurrentPlaying()";
-				stream>>trackInfo;
-				pluginErrorVal = plugin->postCurrentPlaying(aReqData, trackInfo);
-				break;
-				
-			case SmfMusicPostRating:
-				{
-				qDebug()<<"Plugin Operation requested : postRating()";
-				stream>>trackInfo;
-				SmfMusicRating rating;
-				stream>>rating;
-				pluginErrorVal = plugin->postRating(aReqData, trackInfo, rating);
-				break;
-				}
-				
-			case SmfMusicPostComment:
-				{
-				qDebug()<<"Plugin Operation requested : postComment()";
-				stream>>trackInfo;
-				SmfComment comment;
-				stream>>comment;
-				pluginErrorVal = plugin->postComments(aReqData, trackInfo, comment);
-				break;
-				}
-				
 			case SmfMusicSearchCustomRequest:
 				{
 				qDebug()<<"Plugin Operation requested : customRequest()";
 				int operationType;
+				stream>>flag;
 				stream>>operationType;
 				QByteArray data;
-				stream>>data;
+				stream>>flag;
+				if(flag)
+					stream>>data;
 				pluginErrorVal = plugin->customRequest(aReqData, operationType, &data);
 				break;
 				}
@@ -853,6 +927,8 @@
 		{
 		QDataStream stream(aInputData);
 		int pageNum, itemPerPage;
+		SmfTrackInfo trackInfo;
+		quint8 flag = 0;
 
 		switch(aOperation)
 			{
@@ -865,20 +941,57 @@
 				{
 				qDebug()<<"Plugin Operation requested : serachNear() for Music";
 				SmfLocation place;
+				stream>>flag;
 				stream>>place;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->searchUser(aReqData, place, pageNum, itemPerPage);
 				break;
 				}
 				
+			case SmfMusicPostCurrentPlaying:
+				qDebug()<<"Plugin Operation requested : postCurrentPlaying()";
+				stream>>flag;
+				stream>>trackInfo;
+				pluginErrorVal = plugin->postCurrentPlaying(aReqData, trackInfo);
+				break;
+				
+			case SmfMusicPostRating:
+				{
+				qDebug()<<"Plugin Operation requested : postRating()";
+				stream>>flag;
+				stream>>trackInfo;
+				SmfMusicRating rating;
+				stream>>flag;
+				stream>>rating;
+				pluginErrorVal = plugin->postRating(aReqData, trackInfo, rating);
+				break;
+				}
+				
+			case SmfMusicPostComment:
+				{
+				qDebug()<<"Plugin Operation requested : postComment()";
+				stream>>flag;
+				stream>>trackInfo;
+				SmfComment comment;
+				stream>>flag;
+				stream>>comment;
+				pluginErrorVal = plugin->postComments(aReqData, trackInfo, comment);
+				break;
+				}
+				
 			case SmfMusicServiceCustomRequest:
 				{
 				qDebug()<<"Plugin Operation requested : customRequest()";
 				int operationType;
+				stream>>flag;
 				stream>>operationType;
 				QByteArray data;
-				stream>>data;
+				stream>>flag;
+				if(flag)
+					stream>>data;
 				pluginErrorVal = plugin->customRequest(aReqData, operationType, &data);
 				break;
 				}
@@ -928,12 +1041,15 @@
 		QDataStream stream(aInputData);
 		int pageNum, itemPerPage;
 		SmfPlaylist playlist;
+		quint8 flag = 0;
 
 		switch(aOperation)
 			{
 			case SmfMusicGetPlaylists:
 				qDebug()<<"Plugin Operation requested : playlists()";
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->playlists(aReqData, pageNum, itemPerPage);
 				break;
@@ -942,8 +1058,12 @@
 				{
 				qDebug()<<"Plugin Operation requested : playlistsOf()";
 				SmfMusicProfile user;
-				stream>>user;
+				stream>>flag;
+				if(flag)
+					stream>>user;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->playlistsOf(aReqData, user, pageNum, itemPerPage);
 				break;
@@ -953,14 +1073,18 @@
 				{
 				qDebug()<<"Plugin Operation requested : addToPlaylist()";
 				QList<SmfTrackInfo> list;
+				stream>>flag;
 				stream>>playlist;
-				stream>>list;
+				stream>>flag;
+				if(flag)
+					stream>>list;
 				pluginErrorVal = plugin->addToPlaylist(aReqData, playlist, list);
 				break;
 				}
 				
 			case SmfMusicPostCurrentPlayingPlaylist:
 				qDebug()<<"Plugin Operation requested : postCurrentPlayingPlaylist()";
+				stream>>flag;
 				stream>>playlist;
 				pluginErrorVal = plugin->postCurrentPlayingPlaylist(aReqData, playlist);
 				break;
@@ -969,9 +1093,12 @@
 				{
 				qDebug()<<"Plugin Operation requested : customRequest()";
 				int operationType;
+				stream>>flag;
 				stream>>operationType;
 				QByteArray data;
-				stream>>data;
+				stream>>flag;
+				if(flag)
+					stream>>data;
 				pluginErrorVal = plugin->customRequest(aReqData, operationType, &data);
 				break;
 				}
@@ -1019,6 +1146,7 @@
 		{
 		QDataStream stream(aInputData);
 		SmfPicture picture;
+		quint8 flag = 0;
 		
 		switch(aOperation)
 			{
@@ -1029,8 +1157,11 @@
 				QStringList names;
 				SmfContact contact;
 				int pageNum, itemPerPage;
+				stream>>flag;
 				stream>>names;
-				stream>>contact;
+				stream>>flag;
+				if(flag)
+					stream>>contact;
 				stream>>pageNum;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->albums(aReqData, names, &contact, pageNum, itemPerPage);
@@ -1042,8 +1173,11 @@
 				qDebug()<<"Plugin Operation requested : pictures()";
 				int pageNum, itemPerPage;
 				SmfPictureAlbumList albumList;
+				stream>>flag;
 				stream>>albumList;
+				stream>>flag;
 				stream>>pageNum;
+				stream>>flag;
 				stream>>itemPerPage;
 				pluginErrorVal = plugin->pictures(aReqData, albumList, pageNum, itemPerPage);
 				break;
@@ -1051,6 +1185,7 @@
 				
 			case SmfPictureDescription:
 				qDebug()<<"Plugin Operation requested : description()";
+				stream>>flag;
 				stream>>picture;
 				pluginErrorVal = plugin->description(aReqData, picture);
 				break;
@@ -1059,8 +1194,12 @@
 				{
 				qDebug()<<"Plugin Operation requested : upload() single";
 				SmfPictureAlbum album;
-				stream>>picture;
-				stream>>album;
+				stream>>flag;
+				if(flag)
+					stream>>picture;
+				stream>>flag;
+				if(flag)
+					stream>>album;
 				pluginErrorVal = plugin->upload(aReqData, picture, &album);
 				break;
 				}
@@ -1070,8 +1209,12 @@
 				qDebug()<<"Plugin Operation requested : upload() Multiple";
 				QList<SmfPicture> list;
 				SmfPictureAlbum album;
-				stream>>list;
-				stream>>album;
+				stream>>flag;
+				if(flag)
+					stream>>list;
+				stream>>flag;
+				if(flag)
+					stream>>album;
 				pluginErrorVal = plugin->upload(aReqData, list, &album);
 				break;
 				}
@@ -1080,7 +1223,9 @@
 				{
 				qDebug()<<"Plugin Operation requested : postComment()";
 				SmfComment comment;
+				stream>>flag;
 				stream>>picture;
+				stream>>flag;
 				stream>>comment;
 				pluginErrorVal = plugin->postComment(aReqData, picture, comment);
 				break;
@@ -1090,9 +1235,12 @@
 				{
 				qDebug()<<"Plugin Operation requested : customRequest()";
 				int operationType;
+				stream>>flag;
 				stream>>operationType;
 				QByteArray data;
-				stream>>data;
+				stream>>flag;
+				if(flag)
+					stream>>data;
 				pluginErrorVal = plugin->customRequest(aReqData, operationType, &data);
 				break;
 				}
@@ -1113,6 +1261,123 @@
 	
 	
 /**
+ * Method called to create a synchronous plugin request.
+ * @param aPlugin The instance of the loaded plugin that performs the 
+ * contact fetch operation.
+ * @param aOperation The type of operation to be performed
+ * @param aInputData The data required to create the web query
+ * @param aOutputData [out] The output data to be filled by the plugins
+ * @return SmfPluginError
+ */
+SmfPluginError SmfPluginManagerUtil::createSyncRequest ( QObject *aPlugin, 
+		const SmfRequestTypeID &aOperation, 
+		QByteArray &aInputData,
+		QByteArray &aOutputData )
+	{
+	qDebug()<<"SmfPluginManagerUtil::createSyncRequest";
+	Q_UNUSED(aInputData)
+	
+	SmfPluginError pluginErrorVal = SmfPluginErrServiceNotSupported;	
+	
+	if(aPlugin)
+		{
+		QDataStream outStream(&aOutputData, QIODevice::ReadWrite);
+			
+		switch(aOperation)
+			{
+			case SmfPostGetMaxCharsInPost:
+				{
+				qDebug()<<"Plugin Operation requested : maxCharsInPost()";
+				SmfPostProviderPlugin *plugin = NULL;
+				plugin = qobject_cast<SmfPostProviderPlugin *>(aPlugin);
+				
+				if(!plugin)
+					{
+					qDebug()<<"Plugin instance couldn't be typecasted!!!";
+					pluginErrorVal = SmfPluginErrRequestNotCreated;
+					break;
+					}
+
+				qint32 val = plugin->maxCharsInPost();
+				outStream<<val;
+				pluginErrorVal = SmfPluginErrNone;
+				break;
+				}
+				
+			case SmfPostGetMaxItems:
+				{
+				qDebug()<<"Plugin Operation requested : maxItems()";
+				SmfPostProviderPlugin *plugin = NULL;
+				plugin = qobject_cast<SmfPostProviderPlugin *>(aPlugin);
+				
+				if(!plugin)
+					{
+					qDebug()<<"Plugin instance couldn't be typecasted!!!";
+					pluginErrorVal = SmfPluginErrRequestNotCreated;
+					break;
+					}
+
+				qint32 val = plugin->maxItems();
+				outStream<<val;
+				pluginErrorVal = SmfPluginErrNone;
+				break;
+				}
+				
+			case SmfPostGetSupportedFormats:
+				{
+				qDebug()<<"Plugin Operation requested : supportedFormats()";
+				SmfPostProviderPlugin *plugin = NULL;
+				plugin = qobject_cast<SmfPostProviderPlugin *>(aPlugin);
+				
+				if(!plugin)
+					{
+					qDebug()<<"Plugin instance couldn't be typecasted!!!";
+					pluginErrorVal = SmfPluginErrRequestNotCreated;
+					break;
+					}
+
+				QVector<QTextFormat> formats = plugin->supportedFormats();
+				outStream<<formats;
+				pluginErrorVal = SmfPluginErrNone;
+				break;
+				}
+				
+			case SmfPostGetAppearanceSupport:
+				{
+				qDebug()<<"Plugin Operation requested : maxItems()";
+				SmfPostProviderPlugin *plugin = NULL;
+				plugin = qobject_cast<SmfPostProviderPlugin *>(aPlugin);
+				
+				if(!plugin)
+					{
+					qDebug()<<"Plugin instance couldn't be typecasted!!!";
+					pluginErrorVal = SmfPluginErrRequestNotCreated;
+					break;
+					}
+
+				bool val = plugin->supportsAppearence();
+				outStream<<val;
+				pluginErrorVal = SmfPluginErrNone;
+				break;
+				}
+				
+			default:
+				// do nothing, unknown service
+				qDebug()<<"No API found for this operation type!!!";
+			}
+		}
+	else
+		{
+		qDebug()<<"Plugin instance couldn't be typecasted!!!";
+		pluginErrorVal = SmfPluginErrRequestNotCreated; 
+		}
+	
+	return pluginErrorVal;
+	}
+
+
+
+/**
  * Method called by Plugin Manager when network response is available
  * @param aInstance The instance of the loaded plugin that requested 
  * the network operation.
@@ -1147,6 +1412,7 @@
 		case SmfContactSearchNear:
 		case SmfContactGetGroups:
 		case SmfContactSearchInGroup:
+		case SmfContactCustomRequest:
 		case SmfContactRetrievePosts:
 		case SmfContactPost:
 		case SmfContactUpdatePost:
@@ -1154,28 +1420,41 @@
 		case SmfContactCommentOnAPost:
 		case SmfContactPostAppearence:
 		case SmfContactSharePost:
+		case SmfContactPostCustomRequest:
 		case SmfMusicGetLyrics:
 		case SmfMusicGetSubtitle:
+		case SmfMusicLyricsCustomRequest:
 		case SmfMusicGetEventsOnLoc:
 		case SmfMusicGetVenueOnLoc:
-		case SmfMusicGetEventsOnVenue:
 		case SmfMusicPostEvents:
+		case SmfMusicEventsCustomRequest:
 		case SmfMusicGetRecommendations:
 		case SmfMusicGetTracks:
 		case SmfMusicGetTrackInfo:
 		case SmfMusicGetStores:
-		case SmfMusicPostCurrentPlaying:
+		case SmfMusicSearchCustomRequest:
 		case SmfMusicGetUserInfo:
 		case SmfMusicSearchUser:
+		case SmfMusicPostCurrentPlaying:
+		case SmfMusicPostRating:
+		case SmfMusicPostComment:
+		case SmfMusicServiceCustomRequest:
 		case SmfMusicGetPlaylists:
 		case SmfMusicGetPlaylistsOfUser:
 		case SmfMusicAddToPlaylist:
 		case SmfMusicPostCurrentPlayingPlaylist:
+		case SmfMusicPlaylistCustomRequest:
+		case SmfPictureGetAlbums:
 		case SmfPictureGetPictures:
 		case SmfPictureDescription:
 		case SmfPictureUpload:
 		case SmfPictureMultiUpload:
 		case SmfPicturePostComment:
+		case SmfPictureCustomRequest:
+		case SmfActivityFriendsActivities:
+		case SmfActivityFiltered:
+		case SmfActivitySelfActivity:
+		case SmfActivityCustomRequest:
 			{
 			pluginRet = aInstance->responseAvailable(aOperation, aTransportResult, aResponse, 
 					aResult, aRetType, aPageResult );
@@ -1236,6 +1515,20 @@
 	qDebug()<<"SmfPluginManagerUtil::serializeResult";
 	switch(aOperation)
 		{
+		// FOR ACTIVITY - FETCHER
+		case SmfActivitySelfActivity:
+		case SmfActivityFriendsActivities:
+		case SmfActivityFiltered:
+			{
+			qDebug()<<"Serializing to : QList<SmfActivityEntry>";
+			QList<SmfActivityEntry> activityList;
+			if( aResult->canConvert<SmfActivityEntryList>() )
+				activityList = aResult->value<SmfActivityEntryList>();
+			aDataStream<<activityList;
+			break;
+			}
+		
+			
 		// FOR CONTACT - FETCHER
 		case SmfContactGetFriends:
 		case SmfContactGetFollowers:
@@ -1315,7 +1608,6 @@
 
 		// FOR MUSIC - EVENTS
 		case SmfMusicGetEventsOnLoc:
-		case SmfMusicGetEventsOnVenue:
 			{
 			qDebug()<<"Serializing to : QList<SmfEvent>";
 			QList<SmfEvent> eventList;
@@ -1370,17 +1662,6 @@
 			break;
 			}
 			
-		case SmfMusicPostCurrentPlaying:
-			{
-			qDebug()<<"Serializing to : bool";
-			bool value;
-			if( QVariant::Bool == aResult->type() )
-				value = aResult->toBool();
-			aDataStream<<value;
-			break;
-			}
-		
-
 		// FOR MUSIC - SERVICE
 		case SmfMusicGetUserInfo:
 			{
@@ -1402,6 +1683,18 @@
 			break;
 			}
 	 
+		case SmfMusicPostCurrentPlaying:
+		case SmfMusicPostRating:
+		case SmfMusicPostComment:
+			{
+			qDebug()<<"Serializing to : bool";
+			bool value;
+			if( QVariant::Bool == aResult->type() )
+				value = aResult->toBool();
+			aDataStream<<value;
+			break;
+			}
+			
 			// FOR MUSIC - PLAYLIST SERVICE
 		case SmfMusicGetPlaylists:
 		case SmfMusicGetPlaylistsOfUser:
@@ -1426,6 +1719,16 @@
 			}
 				 
 			// FOR PICTURES - GALLERY SERVICES
+		case SmfPictureGetAlbums:
+			{
+			qDebug()<<"Serializing to : QList<SmfPictureAlbum>";
+			QList<SmfPictureAlbum> albumList;
+			if( aResult->canConvert<SmfPictureAlbumList>() )
+				albumList = aResult->value<SmfPictureAlbumList>();
+			aDataStream<<albumList;
+			break;
+			}
+			
 		case SmfPictureGetPictures:
 			{
 			qDebug()<<"Serializing to : QList<SmfPicture>";
@@ -1458,6 +1761,26 @@
 			break;
 			}
 			
+			// FOR ALL INTERFACES CUSTOM REQUESTS
+		case SmfContactCustomRequest:
+		case SmfContactPostCustomRequest:
+		case SmfMusicLyricsCustomRequest:
+		case SmfMusicEventsCustomRequest:
+		case SmfMusicSearchCustomRequest:
+		case SmfMusicServiceCustomRequest:
+		case SmfMusicPlaylistCustomRequest:
+		case SmfPictureCustomRequest:
+		case SmfActivityCustomRequest:
+			{
+			qDebug()<<"Custom Requests are handled as bytearrays in PM now!!!";
+			qDebug()<<"Serializing to : QByteArray";
+			QByteArray customResult;
+			if( QVariant::ByteArray == aResult->type() )
+				customResult.append(aResult->toByteArray());
+			aDataStream<<customResult;
+			break;
+			}
+			
 		default:
 			// Unknown service, saved data in Plugin manager is corrupted
 			qDebug()<<"No operation type found!!!";
--- a/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanagerutil.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanagerutil.h	Thu Aug 05 16:48:48 2010 +0530
@@ -63,18 +63,22 @@
 	 * @param aInstance Instance of the loaded plugin that perform this operation
 	 * @param aOperation The type of operation to be performed
 	 * @param aInputData The data required to create the web query
-	 * @param aReqData [out] The request data created by the plugin
+	 * @param aReqData [out] The request data created by the 
+	 * plugin (don't consider for synchronous requests)
 	 * @param aResult [out] SmfError, The result of the operation
 	 * It can be :-
 	 * SmfPluginNoError (if plugin has created the request successfully)
 	 * SmfPluginUnknownPluginService (if plugin service is not known or unsupported)
 	 * SmfPluginRequestCreationFailed (if request creation has failed)
+	 * @param aOutputData [out] The output data to be filled by the 
+	 * plugins (for synchronous request only), don't consider for asynchronous requests
 	 */
 	void createRequest ( QObject* aInstance, 
 			const SmfRequestTypeID &aOperation, 
 			QByteArray &aInputData,
 			SmfPluginRequestData &aReqData,
-			SmfError &aResult );
+			SmfError &aResult,
+			QByteArray &aOutputData );
 	
 	/**
 	 * Method to create a web query to fetch activities
@@ -208,6 +212,20 @@
 			SmfPluginRequestData &aReqData );
 	
 	/**
+	 * Method called to create a synchronous plugin request.
+	 * @param aPlugin The instance of the loaded plugin that performs the 
+	 * contact fetch operation.
+	 * @param aOperation The type of operation to be performed
+	 * @param aInputData The data required to create the web query
+	 * @param aOutputData [out] The output data to be filled by the plugins
+	 * @return SmfPluginError
+	 */
+	SmfPluginError createSyncRequest ( QObject *aPlugin, 
+			const SmfRequestTypeID &aOperation, 
+			QByteArray &aInputData,
+			QByteArray &aOutputData );
+	
+	/**
 	 * Method called by Plugin Manager when network response is available
 	 * @param aInstance The instance of the loaded plugin that requested 
 	 * the network operation.
--- a/smf/smfservermodule/smfserver/server/server.pri	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/server.pri	Thu Aug 05 16:48:48 2010 +0530
@@ -1,22 +1,24 @@
 INCLUDEPATH += server \
     ./
-
-PUBLIC_HEADERS += \
-	server/smfserver.h \
-	server/smfsettingshandler.h
-
+PUBLIC_HEADERS += server/smfserver.h \
+    server/smfsettingshandler.h
+    
 SOURCES += server/smfserver.cpp \
-           server/smfsettingshandler.cpp
-
+    server/smfsettingshandler.cpp
+    
 symbian { 
-	#Settings handler is currently for only CR keys, QSettings will be provided later
-    PRIVATE_HEADERS += server/smfserversymbian_p.h #\
-                       #server/smfsettingshandler_symbian.h
-    SOURCES += server/smfserversymbian.cpp #\
-               #server/smfsettingshandler_symbian.cpp
-} else {
+    PRIVATE_HEADERS += server/smfserversymbian_p.h \
+        server/smfsettingshandler_symbian.h \
+		server/smfsettingshandler_qt.h
+            
+    SOURCES += server/smfserversymbian.cpp \
+        server/smfsettingshandler_symbian.cpp \
+        server/smfsettingshandler_qt.cpp
+}
+else { 
     PRIVATE_HEADERS += server/smfserverqt_p.h \
         server/smfserverqtsession.h
+        
     SOURCES += server/smfserverqt.cpp \
         server/smfserverqtsession.cpp
 }
--- a/smf/smfservermodule/smfserver/server/smfserver.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserver.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -2,7 +2,7 @@
  * Copyright (c) 2010 Sasken Communication Technologies Ltd.
  * All rights reserved.
  * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0" 
+ * under the terms of the "Eclipse Public License v1.0"
  * which accompanies  this distribution, and is available
  * at the URL "http://www.eclipse.org/legal/epl-v10.html"
  *
@@ -11,82 +11,93 @@
  *
  * Contributors:
  * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * SMF Server component which handles the client requests and delegates 
+ * them properly to the appropriate component
+ * 
  */
 
+#include <QDebug>
+#include <qglobal.h>
+#include <smfcontact.h>
+#include <smfgroup.h>
+#include <smfpost.h>
+#include <smflocation.h>
+#include <smfpicture.h>
+#include <smfcomment.h>
+#include <smfcredmgrclient.h>
+#include <smfrelationmgr.h>
+
 #include "smfserver.h"
 #include "smfpluginmanager.h"
 #include "smftransportmanager.h"
 #include "dsm.h"
-#include "smfclientglobal.h"
-#include <smfprovider.h>
-#include <smfpost.h>
-#include <smflocation.h>
-#include <smfcontact.h>
-#include <smfpicture.h>
-#include <smfcomment.h>
-#include <SmfCredMgrClient.h>
-#include <smfrelationmgr.h>
-#include <smfclientglobal.h> 
-#include <QImage>
-#include <QUrl>
-#include <smfgroup.h>
-#include <QTextStream>
-#include <QFile>
+#ifdef Q_OS_SYMBIAN
+	#include "smfserversymbian_p.h"
+#else
+	#include "smfserverqt_p.h"
+	#include "smfserverqtsession.h"
+#endif
 
-#ifdef Q_OS_SYMBIAN
-#include "smfserversymbian_p.h"
-#else
-#include "smfserverqt_p.h"
-#include "smfserverqtsession.h"
-#endif
 
 SmfServer::SmfServer(QObject* parent)
     : QObject(parent)
 	{
+	m_transportManager = NULL;
+	m_pluginManager = NULL;
+	m_credentialMngr = NULL;
 	}
 
 SmfServer::~SmfServer()
-{
+	{
+	qDebug()<<"Inside Smfserver::~SmfServer()";
+	if(m_transportManager)
+		delete m_transportManager;
+	if(m_pluginManager)
+		delete m_pluginManager;
+	if(m_credentialMngr)
+		delete m_credentialMngr;
 	if(m_SmfServerPrivate)
 		{
 		delete m_SmfServerPrivate;
 		m_SmfServerPrivate = NULL;
 		}
-    
-}
+	}
 
 bool SmfServer::startServer()
 	{
+	qDebug()<<"Inside SmfServer::startServer()";
+	
 	bool success = false;
+	
 	//Initialize all the component handles
-	
 	SmfTransportInitializeResult networkStatus = prepareTransport();
-	qDebug()<<("Before m_pluginManager construction");
+	
+	qDebug()<<"Before m_pluginManager construction";
 	m_pluginManager = SmfPluginManager::getInstance(this);
-	qDebug()<<("After m_pluginManager construction");
+	qDebug()<<"After m_pluginManager construction";
+	
 	//	m_dataStoreManager = new SmfDataStoreManager();
+	
+#ifdef Q_OS_SYMBIAN
 	//Initialize private implementation
-	#ifdef Q_OS_SYMBIAN
 	TRAPD(err, m_SmfServerPrivate = SmfServerSymbian::NewL(CActive::EPriorityStandard,this));
-	QString log("SmfServer::startServer=");
-	int errorQ = err ;
-	log += errorQ;
-	 qDebug()<<(log);
+	qDebug()<<"SmfServerSymbian::NewL() = "<<err;
+
 	if( KErrNone != err )
-		{
 		return success;
-		}
+	
 	TInt error = m_SmfServerPrivate->Start( KSmfServerName );
+	qDebug()<<"m_SmfServerPrivate->Start = "<<error;
+	
     RSemaphore semaphore;
     User::LeaveIfError( semaphore.OpenGlobal( KSmfServerSemaphoreName ) );
+    
     // Semaphore opened ok
     semaphore.Signal();
     semaphore.Close();
-	errorQ = error ;
-	log.clear();
-	log = QString("m_SmfServerPrivate->Start=");
-	log += QString::number(error);
-	 qDebug()<<(log);
+	
 	if( KErrNone == error ) 
 		{
 		success = true;
@@ -96,18 +107,20 @@
 		//error
 		return success;
 		}
-	#else
-			m_SmfServerPrivate = new SmfServerQt(this);
+#else
+	// For non-symbian platforms
+	m_SmfServerPrivate = new SmfServerQt(this);
 	success = m_SmfServerPrivate->start();
 	if (!success) 
 		{
 		return success;
 		}
-	#endif
+#endif
 	
 	m_credentialMngr = new SmfCredMgrClient();
     return success;
 	}
+
 //Note:- Almost all the following APIs are called by private impl via the handle
 /**
  * This API is called by the private impl when client is authorized
@@ -117,22 +130,20 @@
  * It calls PM to get the list. Note:- PM may return SmfProviderBase which is superset of SmfProvider.
  * TODO:- session should store this map for future ref?
  */
-void SmfServer::getPlugins(SmfInterfaceID interfaceID, QMap<SmfPluginID,SmfProvider>& pluginIDMap)
+void SmfServer::getPlugins(const SmfInterfaceID& interfaceID, QMap<SmfPluginID,SmfProvider>& pluginIDMap)
 	{
-	pluginIDMap.clear();
+	qDebug()<<"Inside SmfServer::getPlugins()";
 	m_pluginManager->getPlugins(interfaceID,pluginIDMap);
 	}
 
-SmfPluginID SmfServer::getPlugin(SmfInterfaceID interfaceID,SmfProvider provider)
+SmfPluginID SmfServer::getPlugin(const SmfInterfaceID& interfaceID,SmfProvider provider)
 	{
-	//TODO:- do it properly as per PM implementation
-	//return PM->getplugin(interfaceID,provider);
-	//TODO:- PM is not yet ready
+	qDebug()<<"Inside SmfServer::getPlugin()";
 	SmfPluginID id;
 	m_pluginManager->getPluginId(interfaceID,provider, id);
 	return id;
-	//testing purpose only
 	}
+
 /**
  * This API is called by the private impl to get a list of authorized plugins from CM
  * @param list List of plugins to be filtered
@@ -143,44 +154,75 @@
  */
 void SmfServer::getAuthorizedPlugins(QList<SmfPluginID>& list,QList<SmfPluginID>& authList)
 	{
-	//TODO:-Uncomment the following once authorization flow of plugin is implemented 
-/*	authList.clear();
+	qDebug()<<"Inside SmfServer::getAuthorizedPlugins()";
+	authList.clear();
 	for(int i=0;i<list.count();i++)
 		{
 		bool isAuthorized = m_credentialMngr->CheckPluginAuthentication(list[i]);
 		if(isAuthorized)
-			{
 			authList.append(list[i]);
-			}
-		}*/
-	authList = list;
+		}
 	}
+
 SmfTransportInitializeResult SmfServer::prepareTransport()
 	{
-	qDebug()<<("Before SmfTransportManager::getInstance");
+	qDebug()<<"Inside SmfServer::prepareTransport()";
 	m_transportManager = SmfTransportManager::getInstance();
-	qDebug()<<("Before m_transportManager->initializeTransport");
+	
 	//checking the network status
 	SmfTransportInitializeResult networkStatus = m_transportManager->initializeTransport();
-	qDebug()<<("m_transportManager->initializeTransport return = ")<<networkStatus;
+	qDebug()<<"m_transportManager->initializeTransport() return = "<<networkStatus;
 	return networkStatus;
 	}
-void SmfServer::sendToPluginManager(int requestID,SmfPluginID pluginID,SmfInterfaceID interfaceID,SmfRequestTypeID requestTypeID,QByteArray dataForPlugin ,int pageno,int perpage)
+
+void SmfServer::sendToPluginManager ( int requestID, SmfPluginID pluginID, 
+		SmfInterfaceID interfaceID, SmfRequestTypeID requestTypeID, 
+		QByteArray dataForPlugin )
 	{
-	qDebug()<<("SmfServer::delegateToPluginManager");
-	qDebug()<<(QString::number(requestID));
-	qDebug()<<(pluginID);
-	qDebug()<<(interfaceID);
-	qDebug()<<(QString::number(requestTypeID));
+	qDebug()<<"Inside SmfServer::sendToPluginManager()";
+	qDebug()<<"Request ID = "<<requestID;
+	qDebug()<<"PluginID = "<<pluginID;
+	qDebug()<<"Interface = "<<interfaceID;
+	qDebug()<<"RequestType = "<<requestTypeID;
+
 	//TODO:-PM should take page info too
-	m_pluginManager->createRequest(requestID,pluginID,requestTypeID,dataForPlugin);
+	SmfError err = m_pluginManager->createRequest(requestID,pluginID,requestTypeID,dataForPlugin);
+	qDebug()<<"m_pluginManager->createRequest() = "<<err;
 	}
-SmfError SmfServer::sendToDSM(QByteArray qtdataForDSM,SmfRequestTypeID opcode,QByteArray& qtdataFromDSM)
+
+/**
+ * Request the Plugin manager to get the data.
+ * @param requestID Corresponds to a client's session
+ * @param pluginID Plugin for which the request is intended
+ * @param interfaceID Interface name
+ * @param dataForPlugin Data to be sent for this request
+ */
+SmfError SmfServer::sendToPluginManager ( SmfPluginID pluginID, 
+		SmfInterfaceID interfaceID, SmfRequestTypeID requestTypeID,
+		QByteArray dataForPlugin, QByteArray &outputData)
 	{
+	qDebug()<<"Inside SmfServer::sendToPluginManager() for sync req";
+	qDebug()<<"PluginID = "<<pluginID;
+	qDebug()<<"Interface = "<<interfaceID;
+	qDebug()<<"RequestType = "<<requestTypeID;
+
+	//TODO:-PM should take page info too
+	SmfError err = m_pluginManager->createSyncRequest(pluginID,requestTypeID,dataForPlugin, outputData);
+	qDebug()<<"m_pluginManager->createSyncRequest() = "<<err;
+	return err;
+	}
+
+SmfError SmfServer::sendToDSM ( QByteArray qtdataForDSM, SmfRequestTypeID opcode,
+		QByteArray& qtdataFromDSM )
+	{
+	qDebug()<<"Inside SmfServer::sendToDSM()";
+	
 	DataStoreManager* dsm = DataStoreManager::getDataStoreManager();
+	
 	//Note:- deserialization and formation of user profile and social profile are done by server
 	QDataStream readStream(&qtdataForDSM,QIODevice::ReadOnly);
 	QDataStream writeStream(&qtdataFromDSM,QIODevice::ReadOnly);
+	quint8 flag = 0;
 	switch(opcode)
 		{
 		case SmfRelationCreate:
@@ -188,8 +230,12 @@
 			//read the incoming data
 			SmfProvider provider;
 			SmfContact contact;
-			readStream>>provider;
-			readStream>>contact;
+			readStream>>flag;
+			if(flag)
+				readStream>>provider;
+			readStream>>flag;
+			if(flag)
+				readStream>>contact;
 
 			SmfRelationId relnId = dsm->create(&provider,&contact);
 			writeStream<<relnId;
@@ -201,23 +247,60 @@
 			SmfContact contact;
 			SmfProvider provider;
 			readStream>>relnId;
-			readStream>>contact;
-			readStream>>provider;
+			readStream>>flag;
+			if(flag)
+				readStream>>contact;
+			readStream>>flag;
+			if(flag)
+				readStream>>provider;
 
 			SmfError err = dsm->associate(relnId,&contact,&provider);
 			int errInt = err;
 			writeStream<<errInt;
 			}
 			break;
+		case SmfRelationRemove:
+			{
+			SmfRelationId relnId;
+			SmfContact contact;
+			readStream>>relnId;
+			readStream>>flag;
+			if(flag)
+				readStream>>contact;
+
+			SmfError err = dsm->remove(relnId, &contact);
+			int errInt = err;
+			writeStream<<errInt;
+			break;
+			}
 		case SmfRelationSearchById:
 			{
 			SmfRelationId relnId;
 			readStream>>relnId;
 
 			SmfRelationItem* relnItem = dsm->searchById(relnId);
-			writeStream<<*(relnItem);
+			quint8 flag = 1;
+			if(relnItem)
+				{
+				writeStream<<flag;
+				writeStream<<*(relnItem);
+				}
+			else
+				{
+				flag = 0;
+				writeStream<<flag;
+				}
 			}
 			break;
+		case SmfRelationSearchByContact:
+			{
+			SmfContact contact;
+			readStream>>contact;
+
+			SmfRelationId relnId = dsm->searchByContact(contact);
+			writeStream<<relnId;
+			break;
+			}
 		case SmfRelationCount:
 			{
 			SmfRelationId relationId;
@@ -233,9 +316,19 @@
 			readStream>>relationId;
 			readStream>>index;
 			SmfRelationItem* relnItem = dsm->getContact(relationId,index);
-			writeStream<<relnItem;
+			quint8 flag = 1;
+			if(relnItem)
+				{
+				writeStream<<flag;
+				writeStream<<*(relnItem);
+				}
+			else
+				{
+				flag = 0;
+				writeStream<<flag;
+				}
+			break;
 			}
-			break;
 		case SmfRelationGetAll:
 			{
 			SmfRelationId relationId;
@@ -251,22 +344,34 @@
 			writeStream<<relnIdList;
 			}
 			break;
+		case SmfRelationDeleteRelation:
+			{
+			SmfRelationId relnId;
+			readStream>>relnId;
+			SmfError err = dsm->deleteRelation(relnId);
+			int errInt = err;
+			writeStream<<errInt;
+			break;
+			}
 		default:
 			break;
 		}
 	return SmfNoError;
 	}
+
 /**
  * This slot is invoked when CM finishes the authorization of the client.
  * @param authID As it contains the session ptr, sever directly invokes the session's API to notify success
  */
 void SmfServer::clientAuthorizationFinished(bool success,SmfClientAuthID authID )
 	{
+	qDebug()<<"Inside SmfServer::clientAuthorizationFinished()";
 	//TODO:- implement this api in session class
 	//note:- in case success is false client completes the request with SmfErrClientAuthFailed
 	//TODO:- define set of smf wide error after consulting with other module owners
-	authID.session->clientathorizationFinished(success);
+	authID.session->clientAuthorizationFinished(success);
 	}
+
 /**
  * This API is called by PM once its done with request and parsing
  * @param requestID The request id which is completed
@@ -274,15 +379,13 @@
  * @param error Error occured
  * TODO:- should use smf wide global errors instead
  */
-void SmfServer::resultsAvailable(int requestID,QByteArray* parsedData,SmfError error)
+void SmfServer::resultsAvailable ( int requestID, QByteArray* parsedData, SmfError error )
 	{
-	qDebug()<<("SmfServer::resultsAvailable");
-	qDebug()<<("requestID=");
-	qDebug()<<(QString::number(requestID));
-	qDebug()<<("parsedData->size()=");
-	qDebug()<<(QString::number(parsedData->size()));
-	qDebug()<<("Error=");
-	qDebug()<<(QString::number(error));
+	qDebug()<<"Inside SmfServer::resultsAvailable()";
+	qDebug()<<"requestID = "<<requestID;
+	qDebug()<<"parsedData->size() = "<<parsedData->size();
+	qDebug()<<"Error = "<<error;
+
 	//Serialize error followed by actual data
 	QByteArray dataWithError;
 	QDataStream writer(&dataWithError,QIODevice::WriteOnly);
@@ -291,16 +394,11 @@
 		{
 		writer<<*(parsedData);
 		}
+	
 	//find out the appropriate session and request id and service that
 	m_SmfServerPrivate->findAndServiceclient(requestID,&dataWithError,error);
 	}
-/**
- * Seems reduntant
- */
-void SmfServer::serviceClient(QByteArray* parsedData)
-	{
-	Q_UNUSED(parsedData)
-	}
+
 /**
  * This is called when CMclient notifies client expiry.
  * @param type notification type, set of enums for future expansion
@@ -313,20 +411,16 @@
 	//resend the notify request
 	//CMclient->requestAuthExpiryNotify();
 	}
-/*void SmfServer::writeLog(QString log) const
+
+#ifdef CLIENT_SERVER_TEST
+/**
+ * Seems reduntant
+ */
+/*void SmfServer::serviceClient(QByteArray* parsedData)
 	{
-#ifdef WRITE_LOG
-	QFile file("c:\\data\\SmfServerLogs.txt");
-    if (!file.open(QIODevice::Append | QIODevice::Text))
-	         ;
-    QTextStream out(&file);
-    out << log << "\n";
-    file.close();
-#else
-    Q_UNUSED(log)
-#endif
+	Q_UNUSED(parsedData)
 	}*/
-//#ifdef CLIENT_SERVER_TEST
+
 dummyPM::dummyPM(SmfServer* server,QObject* parent)
 : m_server(server),QObject(parent)
 	{
@@ -348,4 +442,4 @@
 	{
 	
 	}
-//#endif
+#endif
--- a/smf/smfservermodule/smfserver/server/smfserver.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserver.h	Thu Aug 05 16:48:48 2010 +0530
@@ -1,185 +1,193 @@
 /**
-* Copyright (c) 2010 Sasken Communication Technologies Ltd.
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the "{License}"
-* which accompanies  this distribution, and is available
-* at the URL "{LicenseUrl}".
-*
-* Initial Contributors:
-* Manasij Roy, Sasken Communication Technologies Ltd - Initial contribution
-*
-* Contributors:
-*
-* Description:
-* SMF Server component which handles the client requests and delegates them propoerly to the appropriate component
-*
-*/
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies  this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ * 
+ * Description:
+ * SMF Server component which handles the client requests and delegates 
+ * them propoerly to the appropriate component
+ * 
+ */
 
 #ifndef SMFSERVER_H
 #define SMFSERVER_H
+
 #include <QObject>
-#include<QMap>
-//SMF wide global const and macros, to be shared among SMF components as well as SMF aware apps
-#include "smfglobal.h"
-#include "smfprovider.h"
-#include "smftransportmanager.h" // Transport Manager
-#include <SmfCredMgrClientGlobal.h>
-/*
-* Forward declarations
-* Other components of the SMF
-*/
+#include <QMap>
+#include <smfglobal.h>
+#include <smfcredmgrclientglobal.h>
+#ifdef CLIENT_SERVER_TEST
+	#include <QTimer>
+	#include <QTextStream>
+#endif
+
+#include "smfserverglobal.h"
+
+// Forward declarations(Other components of the SMF)
 class SmfTransportManager;
 class SmfPluginManager;
-class SmfDataStoreManager;
-class SmfSettingsAuthManager;
-class SmfClient;
 class SmfCredMgrClient;
+class SmfProvider;
+//Private implementation for different platforms
+#ifdef Q_OS_SYMBIAN
+	class SmfServerSymbian;
+	class SmfServerSymbianSession;
+#else
+	class SmfServerQt;
+	class SmfServerQtSession;
+#endif
+
+
 //For the time being, need to change later
 typedef QString SmfInterfaceID;
 //For the time being, need to change later
 typedef QString SmfPluginID;
 //TODO:- define proper enums after consulting with CM owner
 typedef int NotificationType;
-//Private implementation for different platforms
-#ifdef Q_OS_SYMBIAN
-class SmfServerSymbian;
-class SmfServerSymbianSession;
-#else
-class SmfServerQt;
-class SmfServerQtSession;
-#endif
-#include "smfcontact.h"
-#ifdef NO_OTHER_MODULES
-#include <QTimer>
-#include <QTextStream>
-#endif
+
+	
 /**
  * SmfServer manages the client requests and delegates them to the appropriate SMF component,
- * service the clients asymchronously
- *
+ * service the clients synchronously or asynchronously
  */
 class SmfServer : public QObject
-{
-  Q_OBJECT
-
+	{
+	Q_OBJECT
+	
 public:
-
-  SmfServer(QObject* parent = 0);
-  
-  /**
-   * Does the following,-
-   *First it'll check whether server is already running, if already running it'll
-   *simply return
-   *else
-   *it'll start the server exe and initialize all other SMF components
-   *returns whether server is started successfully or not  
-   */
-  bool startServer();
-  
-  ~SmfServer();
-
+	SmfServer(QObject* parent = 0);
+	~SmfServer();
+	
+	/**
+	 * Does the following,-
+	 * First it'll check whether server is already running, if already 
+	 * running it'll simply return
+	 * else it'll start the server exe and initialize all other SMF 
+	 * components returns whether server is started successfully or not
+	 */
+	bool startServer();
+	
 public:
-  /*
-   * Requests Plugin Manager to get a list of plugin IDs who implement
-   * the interface interfaceID.
-   * This is used got SmfClient::GetServices () where we need a list of plugins
-   */
-  void getPlugins(SmfInterfaceID interfaceID, QMap<SmfPluginID,SmfProvider>& pluginIDMap);
-  /**
-   * Same as above, except this is used for rest of the requests where we need
-   * a particular plugin
-   */
-  SmfPluginID getPlugin(SmfInterfaceID interfaceID,SmfProvider provider);
-  
-  /*
-   * Requests the Credential Manager to filter out non-authorized plugin IDs
-   * from the list and get authorized plugins into authList. 
-   */
-  void getAuthorizedPlugins(QList<SmfPluginID>& list,QList<SmfPluginID>& authList);
-
-  /**
-   * Request CM API to get the list of authenticated plugins
-   * @see SmfCredMgrClient::authenticatedPluginList()
-   */
-  QStringList getAuthenticatedPluginList(QString RegistrationToken);
-
-
-  SmfTransportInitializeResult prepareTransport();
-  /**
-   * DEbugging purpose only
-   */
-  //void writeLog(QString log) const;
-  /**
-   * Request the Plugin manager to get the data.
-   * @param requestID Corresponds to a client's session
-   * @param pluginID Plugin for which the request is intended
-   * @param interfaceID Interface name
-   * @param dataForPlugin Data to be sent for this request
-   * 
-   */
-  void sendToPluginManager(int requestID,SmfPluginID pluginID,SmfInterfaceID interfaceID,SmfRequestTypeID requestTypeID,QByteArray dataForPlugin = QByteArray(), int pageNo=-1,int perpage=-1);
-  /**
-   * Delegates the request to DSM and receives data synshronously.
-   * @param qtdataForDSM Data to be passed to DSM
-   * @param opcode Opcode
-   * @param qtdataFromDSM Data received from DSM
-   * @return Error value returned from DSM
-   */
-  SmfError sendToDSM(QByteArray qtdataForDSM,SmfRequestTypeID opcode,QByteArray& qtdataFromDSM);
+	/**
+	 * Requests Plugin Manager to get a list of plugin IDs who implement
+	 * the interface interfaceID.
+	 * This is used for SmfClient::GetServices () where we need a list of plugins
+	 */
+	void getPlugins ( const SmfInterfaceID& interfaceID, 
+			QMap<SmfPluginID,SmfProvider>& pluginIDMap);
+	
+	/**
+	 * Same as above, except this is used for rest of the requests where we need
+	 * a particular plugin
+	 */
+	SmfPluginID getPlugin ( const SmfInterfaceID& interfaceID, SmfProvider provider);
+	
+	/**
+	 * Requests the Credential Manager to filter out non-authorized plugin IDs
+	 * from the list and get authorized plugins into authList.
+	 */
+	void getAuthorizedPlugins ( QList<SmfPluginID>& list, QList<SmfPluginID>& authList );
+	
+	/**
+	 * Request CM API to get the list of authenticated plugins
+	 * @see SmfCredMgrClient::authenticatedPluginList()
+	 */
+	QStringList getAuthenticatedPluginList ( QString RegistrationToken );
+	
+	/**
+	 * Request the Plugin manager to get the data.
+	 * @param requestID Corresponds to a client's session
+	 * @param pluginID Plugin for which the request is intended
+	 * @param interfaceID Interface name
+	 * @param dataForPlugin Data to be sent for this request
+	 */
+	void sendToPluginManager ( int requestID, SmfPluginID pluginID, 
+			SmfInterfaceID interfaceID, SmfRequestTypeID requestTypeID,
+			QByteArray dataForPlugin = QByteArray() );
+	
+	/**
+	 * Request the Plugin manager to get the data.
+	 * @param requestID Corresponds to a client's session
+	 * @param pluginID Plugin for which the request is intended
+	 * @param interfaceID Interface name
+	 * @param dataForPlugin Data to be sent for this request
+	 */
+	SmfError sendToPluginManager ( SmfPluginID pluginID, 
+			SmfInterfaceID interfaceID, SmfRequestTypeID requestTypeID,
+			QByteArray dataForPlugin, QByteArray &outputData);
+	
+	/**
+	 * Delegates the request to DSM and receives data synshronously.
+	 * @param qtdataForDSM Data to be passed to DSM
+	 * @param opcode Opcode
+	 * @param qtdataFromDSM Data received from DSM
+	 * @return Error value returned from DSM
+	 */
+	SmfError sendToDSM ( QByteArray qtdataForDSM, SmfRequestTypeID opcode,
+			QByteArray& qtdataFromDSM );
+	
 public slots:
-
-	/*
+	/**
 	 * This slot is called when Credential Manager is done with the autherizing
 	 * the client for the first time. See isClientAuthorized() and authorizeClient().
 	 * success specifies the success of the authorization, authID is the authentication
 	 * ID in case its not same as SID of the client.
 	 */
-	void clientAuthorizationFinished(bool success,SmfClientAuthID authID );
-
-	/*
+	void clientAuthorizationFinished ( bool success, SmfClientAuthID authID );
+	
+	/**
 	 * This slot is called as a result of trigger from Plugin manager when the 
 	 * parsed data is available.
 	 * @param requestID The request ID for which result is available
 	 * @param parsedData Serialized data
 	 */
-	void resultsAvailable(int requestID,QByteArray* parsedData,SmfError error);
+	void resultsAvailable ( int requestID, QByteArray* parsedData, SmfError error );
 
-	/*
+#ifdef CLIENT_SERVER_TEST
+	/**
 	 * Services the client request by sending the requested data.
 	 * Note:- This will be handled by private implementation.
 	 */
-	void serviceClient(QByteArray* parsedData);
-	
-	
-	/*
+/*	void serviceClient ( QByteArray* parsedData );*/
+		
+	/**
 	 * This slot is called for every cleanup timer expiry, in this slot, we need
 	 * to call SmfDataStoreManager's API to refresh data store
 	 */
-	void timerExpired(){};
+	void timerExpired ( ) {}
 	
-	/*
+	/**
 	 * This method is called every time timerExpired slot is trigerred
 	 * Fetches the last saved requests through Transport Manager and Plugin Manager
 	 * Who will save the last request (Tranport Manager or Data Store Manager) TBD later
-	 * 
 	 */
-	void runSavedRequest(){};
-	
-	/*
+	void runSavedRequest ( ) {}
+#endif
+	/**
 	 * This slot is called when the data store updates are available as a result of
 	 * "runSavedRequest()".
 	 * Note:- The "10.4.1.11	updateDatastore" can be merged with this 
 	 */
-	void dataStoreUpdateAvailable(QByteArray* respData){Q_UNUSED(respData)};
+	void dataStoreUpdateAvailable ( QByteArray* respData ){ Q_UNUSED(respData) }
 	
 	/**
 	 * Server calls this method when it receives message from the CM
 	 * that authentication keys for the pluginID has expired
 	 */
-	void authenticationKeysExpired(NotificationType type,SmfPluginID id);
-signals:
-  //None at the moment
+	void authenticationKeysExpired ( NotificationType type, SmfPluginID id );
+
+private:
+	SmfTransportInitializeResult prepareTransport();
+
 private:
 	//private impl
 #ifdef Q_OS_SYMBIAN
@@ -190,11 +198,9 @@
 	//Handles of other SMF components
 	SmfTransportManager* m_transportManager;
 	SmfPluginManager* m_pluginManager;
-	SmfDataStoreManager* m_dataStoreManager;
-	SmfSettingsAuthManager* m_settingsAuthManager;
-	SmfClient* m_smfClient;
 	SmfCredMgrClient* m_credentialMngr;
-};
+	};
+
 #ifdef CLIENT_SERVER_TEST
 class dummyPM : public QObject
 	{
--- a/smf/smfservermodule/smfserver/server/smfserverqt.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserverqt.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -17,94 +17,89 @@
  *
  */
 
+#include <QLocalServer>
+#include <QLocalSocket>
+
 #include "smfserverqt_p.h"
 #include "smfserverqtsession.h"
 #include "smfserver.h"
 
-#include <QLocalServer>
-#include <QLocalSocket>
-
 
 SmfServerQt::SmfServerQt(SmfServer *wrapper)
     : m_generic(wrapper)
-{
+	{
     m_server = new QLocalServer(this);
     connect(m_server, SIGNAL(newConnection()), this, SLOT(newClientConnected()));
-}
+	}
 
 SmfServerQt::~SmfServerQt()
-{
+	{
     m_server->close();
-}
+	}
 
 /**
   * Start the server listening for connections.
   */
 bool SmfServerQt::start()
-{
+	{
     const QString KServerName("SmfServerQt");
     if (m_server->listen(KServerName))
-    {
+    	{
         qDebug()<<(QString(m_server->serverName() + ": listening for connections."));
         return true;
-    }
+    	}
     else
-    {
+    	{
         qDebug()<<(QString(KServerName + ": failed to start"));
         qDebug()<<(QString(m_server->errorString()));
         return false;
-    }
-}
+    	}
+	}
 
 /**
  * Return the number of open sessions
  */
 int SmfServerQt::sessionListCount() const
-{
+		{
     return m_sessions.count();
-}
-
-/*void SmfServerQt::writeLog(QString log) const
-{
-    qDebug() << log.toAscii().constData();
-}*/
+		}
 
 /**
  * Called by the SmfServer when client authorization finishes.
  * @param success success of the authorization
  */
 void SmfServerQt::clientAuthorizationFinished(bool success)
-{
+	{
     Q_UNUSED(success);
-}
+	}
 
 /**
   * Slot to receive incoming connections
   */
 void SmfServerQt::newClientConnected()
-{
+	{
     QLocalSocket *client(m_server->nextPendingConnection());
     if (!client)
-    {
-        qDebug()<<("SmfServerQt::newClientConnected(): no socket - client may have dropped.");
+    	{
+        qDebug()<<"SmfServerQt::newClientConnected(): no socket - client may have dropped.";
         return;
-    }
+    	}
 
     // Create a new session for this client.
-    qDebug()<<("Client connected.");
+    qDebug()<<"Client connected.";
 
     m_sessions.append(new SmfServerQtSession(client, this));
-}
+	}
 
 void  SmfServerQt::removeFromList()
-{
-}
+	{
+	}
 
 int SmfServerQt::findAndServiceclient(int requestID,QByteArray* parsedData,SmfError error)
-{
+	{
     Q_UNUSED(requestID);
     Q_UNUSED(parsedData);
     Q_UNUSED(error);
     return 0;
-}
+	}
 
--- a/smf/smfservermodule/smfserver/server/smfserverqt_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserverqt_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -11,24 +11,24 @@
  *
  * Contributors:
  * Manasij Roy, Nalina Hariharan
-* Description:
-* SMF Server implementation for platforms other than Symbian.
-* Uses  QLocalServer-QLocalSocket classes
-*
-*/
+ * Description:
+ * SMF Server implementation for platforms other than Symbian.
+ * Uses  QLocalServer-QLocalSocket classes
+ * 
+ */
 
 #ifndef SMFSERVERQT_P_H
 #define SMFSERVERQT_P_H
 
-#include "smfglobal.h"
+#include <QObject>
+#include <smfglobal.h>
 
-#include <QObject>
 class SmfServer;
 class QLocalServer;
 class QLocalSocket;
 
 class SmfServerQt : public QObject
-{
+	{
     Q_OBJECT
 
 public:
@@ -39,7 +39,6 @@
 
     bool start();
     int sessionListCount() const;
-    //void writeLog(QString log) const;
     void clientAuthorizationFinished(bool success);
     int findAndServiceclient(int requestID,QByteArray* parsedData,SmfError error);
 
@@ -65,6 +64,6 @@
     SmfServerQt *iServer;
     QLocalSocket *iClientConnection;
 
-};
+	};
 
 #endif // SMFSERVERQT_P_H
--- a/smf/smfservermodule/smfserver/server/smfserverqtsession.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserverqtsession.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -12,77 +12,78 @@
  * Contributors:
  * Manasij Roy, Nalina Hariharan
  *
- *
  * Description: Session implementation for Qt desktop builds
  *
  */
 
+#include <qdebug.h>
+
 #include "smfserverqtsession.h"
 #include "smfserverqt_p.h"
 #include "smfserver.h"
 
 SmfServerQtSession::SmfServerQtSession(QLocalSocket *clientConnection, SmfServerQt *server)
     : m_opCode(-1), m_clientConnection(clientConnection), m_server(server)
-{
+	{
     connect(m_clientConnection, SIGNAL(readyRead()), this, SLOT(readDataFromClient()));
     connect(m_clientConnection, SIGNAL(error(QLocalSocket::LocalSocketError)),
             this, SLOT(socketError(QLocalSocket::LocalSocketError)));
-}
+	}
 
 SmfServerQtSession::~SmfServerQtSession()
-{
+	{
     // The socket has the QLocalServer as a parent, but it should be deleted to
     // save unnecessary accumulation of these objects in memory. It won't be double deleted.
     delete m_clientConnection;
-}
+	}
 
 void SmfServerQtSession::readDataFromClient()
-{
+	{
     // TODO: This needs to be much safer.
     if(m_clientConnection->bytesAvailable() < sizeof(typeof(SmfRequestTypeID)))
-    {
+    	{
         // Don't read yet, haven't received opcode
         return;
-    }
+    	}
 
     if (m_opCode == -1)
-    {
+    	{
         QDataStream in(m_clientConnection);
         in >> m_opCode;
-    }
+    	}
 
     // m_opCode set, so handle request
     handleRequest();
-}
+	}
 
 /**
  * Call the appropriate handler function
  */
 void SmfServerQtSession::handleRequest()
-{
+	{
     switch (m_opCode)
-    {
-    case SmfGetService:
-        handleGetService();
-        break;
-    default:
-        m_server->writeLog(QString("Bad Request received: ") + m_opCode);
-    }
-}
+		{
+		case SmfGetService:
+			handleGetService();
+			break;
+		default:
+			qDebug()<<"Bad Request received =  "<<m_opCode);
+		}
+	}
 
 /**
  * Find available services for specified interface and return list to client.
  */
 void SmfServerQtSession::handleGetService()
-{
-    m_server->writeLog("SmfServerQtSession::handleGetService()");
+	{
+    qDebug()<<"SmfServerQtSession::handleGetService()";
 
     QDataStream in(m_clientConnection);
 
     // Get interface type requested
     SmfInterfaceID ifName;
     in >> ifName;
-    m_server->writeLog("Requested: " + ifName);
+    qDebug()<<"Requested = "<<ifName;
 
     // Get the available services for this interface
     QMap<SmfPluginID, SmfProvider> services;
@@ -91,26 +92,25 @@
     // write back the results
     QDataStream out(m_clientConnection);
     out << services;
-}
+	}
 
 void SmfServerQtSession::clientAuthorizationFinished(bool success)
-{
+	{
     Q_UNUSED(success);
-}
+	}
 
 void SmfServerQtSession::socketError(QLocalSocket::LocalSocketError error)
-{
+	{
     switch (error)
-    {
-    case QLocalSocket::PeerClosedError:
-        m_server->writeLog("Peer closed connection.");
-        break;
-    case QLocalSocket::SocketTimeoutError:
-        m_server->writeLog("error: connection timed out.");
-        break;
-    default:
-        m_server->writeLog("error: unkown socket error: " + error);
-        break;
-    }
-}
-
+		{
+		case QLocalSocket::PeerClosedError:
+			qDebug()<<"Peer closed connection.";
+			break;
+		case QLocalSocket::SocketTimeoutError:
+			qDebug()<<"error: connection timed out.";
+			break;
+		default:
+			qDebug()<<"error: unkown socket error: "<<error;
+			break;
+		}
+	}
--- a/smf/smfservermodule/smfserver/server/smfserverqtsession.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserverqtsession.h	Thu Aug 05 16:48:48 2010 +0530
@@ -12,7 +12,6 @@
  * Contributors:
  * Manasij Roy, Nalina Hariharan
  *
- *
  * Description: Session implementation for Qt desktop builds
  *
  */
@@ -26,7 +25,7 @@
 class SmfServerQt;
 
 class SmfServerQtSession : public QObject
-{
+	{
     Q_OBJECT
 
 public:
@@ -47,6 +46,6 @@
     int m_opCode;
     QLocalSocket *m_clientConnection;
     SmfServerQt *m_server;
-};
+	};
 
 #endif // SMFSERVERQTSESSION_H
--- a/smf/smfservermodule/smfserver/server/smfserversymbian.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserversymbian.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -12,18 +12,15 @@
  * Contributors:
  * Manasij Roy, Nalina Hariharan
  * 
- * 
- * Description: Private implementation for Symbian OS
+ * Description:
+ * SMF Server private implementation for Symbian
  *
  */
-#ifdef WRITE_LOG
-#include <QFile>
-#include <QTextStream>
-#endif
+
 #include <QDataStream>
-#include <QStringList>
-#include <QString>
+#include <QDebug>
 #include <smfrelationmgr.h>
+
 #include "smfserversymbian_p.h"
 
 
@@ -32,20 +29,28 @@
 	SmfServerSymbian* self = new(ELeave) SmfServerSymbian(aActiveObjectPriority,aWrapper);
 	CleanupStack::PushL(self);
 	self->ConstructL();
-	CleanupStack::Pop(); // self
+	CleanupStack::Pop();
 	return self;
 	}
+
 void SmfServerSymbian::ConstructL()
 	{
 	}
+
 SmfServerSymbian::SmfServerSymbian( CActive::TPriority aActiveObjectPriority,SmfServer* aWrapper )
 : CPolicyServer(0,myPolicy, ESharableSessions), iWrapper(aWrapper)
 	{
 	Q_UNUSED(aActiveObjectPriority)
 	}
+
+SmfServerSymbian::~SmfServerSymbian()
+	{
+	}
+
 TInt SmfServerSymbian::addToSessionMap(SmfServerSymbianSession* aSession,const RMessage2& aMsg)
 	{
-	qDebug()<<("SmfServerSymbian::addToSessionMap");
+	qDebug()<<"Inside SmfServerSymbian::addToSessionMap()";
+	
 	if(iSessionCount)
 		{
 		//The key generation 
@@ -66,66 +71,55 @@
 	
 	return (-1);
 	}
+
 TInt SmfServerSymbian::removeFromSessionMap(SmfServerSymbianSession* aSession,RMessage2& aMsg)
 	{
+	//To be implemented
 	Q_UNUSED(aSession)
-Q_UNUSED(aMsg)
-//To be implemented
+	Q_UNUSED(aMsg)
 	return 0;
 	}
 
-//TODO - change this to a macro using qdebug  to avoid file opening and closing
-/*void SmfServerSymbian::writeLog(QString log) const
-	{
-#ifdef WRITE_LOG
-	QFile file("c:\\data\\SmfServerLogs.txt");
-	if (!file.open(QIODevice::Append | QIODevice::Text))
-		return;
-	QTextStream out(&file);
-	out << log << "\n";
-	file.close();
-#else
-	Q_UNUSED(log)
-#endif
-	}*/
-SmfServerSymbian::~SmfServerSymbian()
-	{
 
-	}
 SmfServer* SmfServerSymbian::wrapper()
 	{
 	return iWrapper;
 	}
+
 CSession2* SmfServerSymbian::NewSessionL(const TVersion& aVersion, const RMessage2& /*aMessage*/) const
 	{
+	qDebug()<<"Inside SmfServerSymbian::NewSessionL()";
+	
 	Q_UNUSED(aVersion)
 	// Check that the version is OK
 	//    TVersion v( 0, 1, 0 );
 	//    if (!User::QueryVersionSupported( v, aVersion ))
-	//        User::Leave( KErrNotSupported );  
+	//        User::Leave( KErrNotSupported ); 
+	
 	// Create the session.
-	QString log("New session created");
-	qDebug()<<(log);
+	qDebug()<<"New session created";
 	return new (ELeave) SmfServerSymbianSession( const_cast<SmfServerSymbian*>(this) );
 	}
+
 SmfServerSymbianSession* SmfServerSymbian::findSession(TInt id)
 	{
-	qDebug()<<("SmfServerSymbian::findSession");
+	qDebug()<<"Inside SmfServerSymbian::findSession()";
 	CSessionStruct* sessionStruct = iMap.Find(id);	
 	if(sessionStruct)
 		{
-		qDebug()<<("Session id found");
+		qDebug()<<"Session id found";
 		return sessionStruct->iSession;
 		}
 	else
 		{
-		qDebug()<<("Session id not found");
+		qDebug()<<"Session id not found";
 		return NULL;
 		}
 	}
+
 TInt SmfServerSymbian::findAndServiceclient(TInt requestID,QByteArray* parsedData,SmfError error)
 	{
-	qDebug()<<("SmfServerSymbian::findAndServiceclient");
+	qDebug()<<"Inside SmfServerSymbian::findAndServiceclient()";
 	SmfServerSymbianSession* sessionToservice = findSession(requestID);
 	if(sessionToservice)
 		{
@@ -133,23 +127,30 @@
 		}
 	return 0;
 	}
+
+
+
 SmfServerSymbianSession::SmfServerSymbianSession(SmfServerSymbian* aServer):
 			iServer(aServer),iPtrToBuf(NULL,0) ,
-			iIntfNmaeSymbian(NULL,0), iProviderSymbian(NULL,0),
-			iIntfNameSymbian16(NULL,0) ,iXtraDataPtr(NULL,0),
-			iPtrToDataForClient(NULL,0) ,iPtrDataForDSM(NULL,0),iPtrDataFromDSM(NULL,0)  
+			iIntfNameSymbian8(NULL,0), iProviderSymbian8(NULL,0),
+			iIntfNameSymbian(NULL,0) ,iXtraDataPtr8(NULL,0),
+			iPtrToDataForClient(NULL,0) ,iPtr8DataForDSM(NULL,0),iPtr8DataFromDSM(NULL,0)  
 	{
+	qDebug()<<"Inside SmfServerSymbianSession::SmfServerSymbianSession()";
 	iServer->iSessionCount++;
 	}
+
 SmfServerSymbianSession::~SmfServerSymbianSession()
 	{
+	qDebug()<<"Inside SmfServerSymbianSession::~SmfServerSymbianSession()";
 	//cleanup of client resources
 	iServer->iSessionCount--;
 	}
 
-
-void SmfServerSymbianSession::clientathorizationFinished(bool success)
+void SmfServerSymbianSession::clientAuthorizationFinished(bool success)
 	{
+	qDebug()<<"Inside SmfServerSymbianSession::clientAuthorizationFinished() = "<<success;
+	
 	//Client authorization failed
 	if(!success)
 		{
@@ -161,12 +162,14 @@
 		HandleClientMessageL(iMessage);
 		}
 	}
+
 void SmfServerSymbianSession::resultsAvailable(QByteArray* parsedData,SmfError error)
 	{
-
+	qDebug()<<"Inside SmfServerSymbianSession::resultsAvailable()";
+	
 	//Note:- The order of serialization of parsedData - Error value followed by the data
 	//parsedData is already serialized by PM
-	qDebug()<<("SmfServerSymbianSession::resultsAvailable");
+	
 	//We should remove the request from the map as soon its no longer outstanding
 	iServer->removeFromSessionMap(this,iMessage);
 	
@@ -181,34 +184,30 @@
 	iPtrToDataForClient.Copy(reinterpret_cast<const TText8*>(parsedData->constData()),parsedData->length());
 
 	TInt writeErr = iMessage.Write(2,iPtrToDataForClient);
-	qDebug()<<("Write=");
-	QString wrErr = QString::number(writeErr);
-	qDebug()<<(wrErr);
+	qDebug()<<"iMessage.Write() = "<<writeErr;
+
 	//signal completion for the last request
 	iMessage.Complete(error);
 	}
+
 void SmfServerSymbianSession::ServiceL(const RMessage2& aMessage)
 	{    
+	qDebug()<<"Inside SmfServerSymbianSession::ServiceL() = "<<iMessage.Function();
+	iMessage = aMessage;
 
-	qDebug()<<("SmfServerSymbianSession::ServiceL=");
-	iMessage = aMessage ;
-	QString log;
-	log = QString::number(iMessage.Function());
-	qDebug()<<(log);
 	//construct the client auth id
 	SmfClientAuthID clientAuthID;
 	clientAuthID.pid = aMessage.SecureId();
 	clientAuthID.session = this;
 	//TODO:- No client pid checking?No capability? So why symbian client-server?
 	HandleClientMessageL(iMessage);
+	}
 
-	}
 void SmfServerSymbianSession::HandleClientMessageL(const RMessage2& aMessage)
 	{
-	qDebug()<<("HandleClientMessageL");
+	qDebug()<<"Inside SmfServerSymbianSession::HandleClientMessageL() = "<<aMessage.Function();
 	iLastRequest = aMessage.Function();
 	
-	
 	/**Note:- Only ESmfGetService needs to be taken care separately as it doesn't involve createrequest for PM
 	 *See SmfRequestTypeID for list of opcodes
 	 *
@@ -220,9 +219,14 @@
 	 *TODO:- to be changed after GetServices returns SmfProvider+pluginID 
 	 * 
 	 */
-	if(iLastRequest == SmfGetService)
+	if( (SmfGetService == iLastRequest) 			||
+		(SmfPostGetMaxCharsInPost == iLastRequest)	||
+		(SmfPostGetMaxItems == iLastRequest)		||
+		(SmfPostGetSupportedFormats == iLastRequest)||
+		(SmfPostGetAppearanceSupport == iLastRequest) )
+			
 		{
-		HandleGetService(aMessage);
+		HandleSyncServiceL(aMessage);
 		}
 	else if(iLastRequest == SmfRelationCreate ||
 			iLastRequest == SmfRelationAssociate || 
@@ -231,7 +235,8 @@
 			iLastRequest == SmfRelationCount ||
 			iLastRequest == SmfRelationGet ||
 			iLastRequest == SmfRelationGetAll ||
-			iLastRequest == SmfRelationGetAllRelations
+			iLastRequest == SmfRelationGetAllRelations ||
+			iLastRequest == SmfRelationDeleteRelation
 			)
 		{
 		HandleDSMServiceL(aMessage);
@@ -241,71 +246,103 @@
 		HandleCommonServiceL(aMessage);
 		}
 	}
+
 void SmfServerSymbianSession::HandleDSMServiceL(const RMessage2 & aMessage)
 	{
+	qDebug()<<"Inside SmfServerSymbianSession::HandleDSMServiceL()";
 	//TODO:-If DSM takes care of deserialization and formation of User and social 
 	//profile from the params then switch case can be removed
-	if(iDataForDSM)
+	if(iData8ForDSM)
 		{
-		delete iDataForDSM;
-		iDataForDSM = NULL;
+		delete iData8ForDSM;
+		iData8ForDSM = NULL;
 		}
 	
 	switch(iLastRequest)
 		{
 		case SmfRelationCreate:
 			{
-			iDataForDSM = HBufC8::New(maxSmfRelationIdSize);
-			iPtrDataForDSM.Set(iDataForDSM->Des());
-			TInt readerr0 = aMessage.Read(0,iPtrDataForDSM); 
-
+			iData8ForDSM = HBufC8::New(maxSmfRelationIdSize);
+			iPtr8DataForDSM.Set(iData8ForDSM->Des());
+			TInt readerr0 = aMessage.Read(0,iPtr8DataForDSM); 
 			}
 			break;
 		case SmfRelationAssociate:
 			{
 			int maxAlloc = 100;
-			iDataForDSM = HBufC8::New(maxAlloc);
-			iPtrDataForDSM.Set(iDataForDSM->Des());
-			TInt readerr0 = aMessage.Read(0,iPtrDataForDSM); 
+			iData8ForDSM = HBufC8::New(maxAlloc);
+			iPtr8DataForDSM.Set(iData8ForDSM->Des());
+			TInt readerr0 = aMessage.Read(0,iPtr8DataForDSM); 
 			}
 			break;
+		case SmfRelationRemove:
+			{
+			iData8ForDSM = HBufC8::New(100);
+			iPtr8DataForDSM.Set(iData8ForDSM->Des());
+			TInt readerr0 = aMessage.Read(0,iPtr8DataForDSM); 
+			break;
+			}
 		case SmfRelationSearchById:
 			{
 			int maxAlloc = MaxSmfContactSize;
-			iDataForDSM = HBufC8::New(maxAlloc);
-			iPtrDataForDSM.Set(iDataForDSM->Des());
-			TInt readerr0 = aMessage.Read(0,iPtrDataForDSM); 
+			iData8ForDSM = HBufC8::New(maxAlloc);
+			iPtr8DataForDSM.Set(iData8ForDSM->Des());
+			TInt readerr0 = aMessage.Read(0,iPtr8DataForDSM); 
+			}
+			break;
+		case SmfRelationSearchByContact:
+			{
+			int maxAlloc = 500; // hard coded in relation manager
+			iData8ForDSM = HBufC8::New(maxAlloc);
+			iPtr8DataForDSM.Set(iData8ForDSM->Des());
+			TInt readerr0 = aMessage.Read(0,iPtr8DataForDSM); 
 			}
 			break;
 		case SmfRelationCount:
 			{
 			int maxAlloc = 100;
-			iDataForDSM = HBufC8::New(maxAlloc);
-			iPtrDataForDSM.Set(iDataForDSM->Des());
-			TInt readerr0 = aMessage.Read(0,iPtrDataForDSM);
+			iData8ForDSM = HBufC8::New(maxAlloc);
+			iPtr8DataForDSM.Set(iData8ForDSM->Des());
+			TInt readerr0 = aMessage.Read(0,iPtr8DataForDSM);
 			}
 			break;
 		case SmfRelationGet:
 			{
 			int maxAlloc = maxSmfRelationItemSize*maxRelationItems;
-			iDataForDSM = HBufC8::New(maxAlloc);
-			iPtrDataForDSM.Set(iDataForDSM->Des());
-			TInt readerr0 = aMessage.Read(0,iPtrDataForDSM); 
+			iData8ForDSM = HBufC8::New(maxAlloc);
+			iPtr8DataForDSM.Set(iData8ForDSM->Des());
+			TInt readerr0 = aMessage.Read(0,iPtr8DataForDSM); 
 			}
 			break;
 		case SmfRelationGetAll:
 			{
 			int maxAlloc = maxSmfRelationItemSize*maxRelationItems;
-			iDataForDSM = HBufC8::New(maxAlloc);
-			iPtrDataForDSM.Set(iDataForDSM->Des());
-			TInt readerr0 = aMessage.Read(0,iPtrDataForDSM); 
+			iData8ForDSM = HBufC8::New(maxAlloc);
+			iPtr8DataForDSM.Set(iData8ForDSM->Des());
+			TInt readerr0 = aMessage.Read(0,iPtr8DataForDSM); 
 			}
 			break;
+		case SmfRelationGetAllRelations:
+			{
+			int maxAlloc = maxSmfRelationItemSize*maxRelationItems;
+			iData8ForDSM = HBufC8::New(maxAlloc);
+			iPtr8DataForDSM.Set(iData8ForDSM->Des());
+			TInt readerr0 = aMessage.Read(0,iPtr8DataForDSM); 
+			break;
+			}
+		case SmfRelationDeleteRelation:
+			{
+			int maxAlloc = 100;
+			iData8ForDSM = HBufC8::New(maxAlloc);
+			iPtr8DataForDSM.Set(iData8ForDSM->Des());
+			TInt readerr0 = aMessage.Read(0,iPtr8DataForDSM); 
+			break;
+			}
 		default:
 			break;
 		}
 	//Convert into QByteArray
-	QByteArray qtdataForDSM(reinterpret_cast<const char*>(iPtrDataForDSM.Ptr()),iPtrDataForDSM.Length()) ;
+	QByteArray qtdataForDSM(reinterpret_cast<const char*>(iPtr8DataForDSM.Ptr()),iPtr8DataForDSM.Length()) ;
 	QByteArray qtdataFromDSM;
 	SmfRequestTypeID opcode = (SmfRequestTypeID)iLastRequest;
 	SmfError dsmErr = iServer->wrapper()->sendToDSM(qtdataForDSM,opcode,qtdataFromDSM);
@@ -313,15 +350,15 @@
 		{
 		if(qtdataFromDSM.size())
 			{
-			if(iDataFromDSM)
+			if(iData8FromDSM)
 				{
-				delete iDataFromDSM;
-				iDataFromDSM = NULL;
+				delete iData8FromDSM;
+				iData8FromDSM = NULL;
 				}
-			iDataFromDSM = HBufC8::NewL(qtdataFromDSM.size());
-			iPtrDataFromDSM.Set(iDataFromDSM->Des());
-			iPtrDataFromDSM.Copy(reinterpret_cast<const TText8*>(qtdataFromDSM.constData()),qtdataFromDSM.length());
-			TInt writeErr = aMessage.Write(1,iPtrDataFromDSM);
+			iData8FromDSM = HBufC8::NewL(qtdataFromDSM.size());
+			iPtr8DataFromDSM.Set(iData8FromDSM->Des());
+			iPtr8DataFromDSM.Copy(reinterpret_cast<const TText8*>(qtdataFromDSM.constData()),qtdataFromDSM.length());
+			TInt writeErr = aMessage.Write(1,iPtr8DataFromDSM);
 			}
 		}
 	else
@@ -332,46 +369,137 @@
 		TInt writeErr = aMessage.Write(2,iDSMErr);
 		}
 	}
-void SmfServerSymbianSession::HandleGetService(const RMessage2 & aMessage)
+
+
+void SmfServerSymbianSession::HandleSyncServiceL(const RMessage2 & aMessage)
 	{
-	qDebug()<<("SmfServerSymbianSession::HandleGetService");
+	qDebug()<<"Inside SmfServerSymbianSession::HandleSyncServiceL()";
+	
+	// Following is the data format sent by client
+	// 1. SmfProvider +PageInfo flag+ aPageNum + aPerPage (if pageinfoflag is set) + XtraInfo flag(size of xtra data) Serialized 
+	// 2. Interface name as string ("org.symbian.smf.client.gallery")
+	// 3. Data pointer to be filled by serialized data(eg: QList<smfProvider>)
+	// 4. Input Data if xtra flag is set
 	
-	/**
-	 * Note:- client sends message for this opcode in the following format,-
-	 * Slot 0:- Interface Name buffer
-	 * Slot 1:- Ptr to data block to be filled with SmfProvideList* serialized into QByteArray
-	 * Slot 2:- Max data size allocated in the client side
-	 * TODO:- What if size of SmfProviderList to be passed to client is greater than
-	 * this size???
-	 */
+	TInt intfNameSize = aMessage.GetDesLength(1);
+	if(iIntfNameBuf8)
+		{
+		delete iIntfNameBuf8;
+		iIntfNameBuf8 = NULL;
+		}
+	iIntfNameBuf8 = HBufC8::NewL(intfNameSize);
+	iIntfNameSymbian8.Set(iIntfNameBuf8->Des());
+
+	//read it into iIntfNameSymbian8
+	aMessage.ReadL(1,iIntfNameSymbian8);
 	
-	iInterfaceNametbuf.Zero();
-	TInt readerr = aMessage.Read(0,iInterfaceNametbuf);
-	qDebug()<<(QString::number(readerr));
-	QByteArray bytearray(reinterpret_cast<const char*>(iInterfaceNametbuf.Ptr()),iInterfaceNametbuf.Length()) ;
-	QDataStream stream3(&bytearray,QIODevice::ReadOnly);
-	stream3>>iInterfaceID;
-	qDebug()<<("iInterfaceID=");
-	qDebug()<<(iInterfaceID);
+	QByteArray intfName(reinterpret_cast<const char*>(iIntfNameSymbian8.Ptr()),iIntfNameSymbian8.Length()) ;
+	QDataStream readIntfNameStream(&intfName,QIODevice::ReadOnly);
+	iInterfaceID.clear();
+	readIntfNameStream>>iInterfaceID;
+	qDebug()<<"After de-serializing into iInterfaceID = "<<iInterfaceID;
+	
 	//Interface names are diff in client and plugin, replacing *.client.* with *.plugin.*
 	iInterfaceID.replace(QString(".client"),QString(".plugin"));
-	iServer->wrapper()->getPlugins(iInterfaceID,iPluginIDMap);
+	
+	// for get services
+	if(SmfGetService == aMessage.Function())
+		HandleGetService(aMessage, iInterfaceID);
+	
+	// for other services
+	else
+		{
+		// read provider info
+		TInt providerSize = aMessage.GetDesLength(0);
+		if(iProviderBuf8)
+			{
+			delete iProviderBuf8;
+			iProviderBuf8 = NULL;
+			}
+		iProviderBuf8 = HBufC8::NewL(providerSize);
+		iProviderSymbian8.Set(iProviderBuf8->Des());
+	
+		//read it into iProviderSymbian8
+		aMessage.ReadL(0,iProviderSymbian8);
+	
+		//convert SmfProvider info from Symbian into bytearray
+		QByteArray providerBufQt(reinterpret_cast<const char*>(iProviderSymbian8.Ptr()),iProviderSymbian8.Length());
+		qDebug()<<"providerBufQt.size = "<<providerBufQt.size();
+	
+		//now de-serialize it
+		QDataStream readProviderStream(&providerBufQt,QIODevice::ReadOnly);
+		SmfProvider provider;
+		readProviderStream>>provider;
+		QByteArray XtraBufQt;
+		readProviderStream>>XtraBufQt;
+		
+		//Get the plugin ID who matches provider info for a given intf name
+		SmfPluginID pluginID = iServer->wrapper()->getPlugin(iInterfaceID,provider);
+		qDebug()<<"pluginID from PM = "<<pluginID;
+	
+		//we need to check only this pluginID is authorized
+		iPluginIDList.clear();
+		iPluginIDList<<pluginID;
+		
+		//iAuthList will contain pluginID for a successfull case
+		iAuthList.clear();
+		iServer->wrapper()->getAuthorizedPlugins(iPluginIDList,iAuthList);
+		
+		if(iAuthList.contains(pluginID))
+			{
+			//Plugin ID is authorised, service the request
+			//Generate request id only if the plugin ID is authorised
+			//request PM to get the data
+			SmfRequestTypeID opcode = (SmfRequestTypeID)aMessage.Function();
+			resultData.clear();
+			SmfError err = iServer->wrapper()->sendToPluginManager(pluginID,iInterfaceID,opcode,XtraBufQt, resultData);
+	
+			if(resultData.size())
+				{
+				TPtrC8 resultPtr8(reinterpret_cast<const TText8*>(resultData.constData()),resultData.length());
+				
+				TInt writeErr = aMessage.Write(2,resultPtr8);
+				qDebug()<<"aMessage.Write(2) = "<<writeErr;
+				}
+			else
+				{
+				iErrBuf.Zero();
+				iErrBuf.AppendNum(err);
+				iMessage.Write(2,iErrBuf);
+				}
+	
+			//signal completion
+			aMessage.Complete(iLastRequest);
+			}
+		else
+			{
+			SmfError err = SmfNoAuthorizedPlugin;
+			iErrBuf.Zero();
+			iErrBuf.AppendNum(err);
+			iMessage.Write(2,iErrBuf);
+			aMessage.Complete(iLastRequest);
+			}
+		}
+	}
+
+void SmfServerSymbianSession::HandleGetService(const RMessage2 & aMessage, const SmfInterfaceID& aInterfaceID)
+	{
+	qDebug()<<"Inside SmfServerSymbianSession::HandleGetService()";
+	
+	iServer->wrapper()->getPlugins(aInterfaceID,iPluginIDMap);
+	
 	//form the plugin id list from the map
-	QMapIterator<SmfPluginID, SmfProvider> iter(iPluginIDMap);
 	iPluginIDList.clear();
-	while (iter.hasNext()) 
-		{
-	iter.next();
-	iPluginIDList<<iter.key();
-		}
+	iPluginIDList = iPluginIDMap.uniqueKeys();
+	
 	//iAuthList will be filled by credential manager
 	iServer->wrapper()->getAuthorizedPlugins(iPluginIDList,iAuthList);
 
-	//iPluginIDMap now contains SmfProvider info to return to the client
-	//No need to add this to session map, as we are not requesting PM for this
+	// iPluginIDMap now contains SmfProvider info to return to the client
+	// No need to add this to session map, as we are not requesting PM for this
 	QMap<SmfPluginID, SmfProvider> tempMap;
 	QMapIterator<SmfPluginID, SmfProvider> i(iPluginIDMap);
-	while (i.hasNext()) 
+	while(i.hasNext()) 
 		{
 		i.next();
 		if(iAuthList.contains(i.key()))
@@ -379,37 +507,35 @@
 			tempMap.insert(i.key(),i.value());
 			}
 		}
-	//now tempMapcontains the info to be passed to the client
+	//now tempMap contains the info to be passed to the client
 	iPluginIDMap.clear();
 	iPluginIDMap = tempMap;
+	
 	//form list of smfprovider from this map,-
-	QList<SmfProvider> providerList;
-	i = iPluginIDMap;
-	while(i.hasNext())
-		{
-		i.next();
-		providerList.append(i.value());
-		}
+	QList<SmfProvider> providerList = iPluginIDMap.values();
+	
 	//now serialize this list into bytearray
-	byteArrayToClnt.clear();
-	QDataStream stream(&byteArrayToClnt,QIODevice::WriteOnly);
+	resultData.clear();
+	QDataStream stream(&resultData,QIODevice::WriteOnly);
 	stream<<providerList;
-	qDebug()<<("providerList.count()=");
-	qDebug()<<(QString::number(providerList.count()));
-	qDebug()<<("Before providerListSymbian");
+	qDebug()<<"providerList.count() = "<<providerList.count();
+
+	qDebug()<<"Before providerListSymbian";
 	//now convert it into TPtr8
-	TPtrC8 providerListSymbian(reinterpret_cast<const TText8*>(byteArrayToClnt.constData()),byteArrayToClnt.length());
-	qDebug()<<("After providerListSymbian");
-	TInt writeErr = aMessage.Write(1,providerListSymbian);
-	qDebug()<<("Write=");
-	QString wrErr = QString::number(writeErr);
-	qDebug()<<(wrErr);
+	TPtrC8 providerListSymbian(reinterpret_cast<const TText8*>(resultData.constData()),resultData.length());
+	qDebug()<<"After providerListSymbian";
+	
+	TInt writeErr = aMessage.Write(2,providerListSymbian);
+	qDebug()<<"aMessage.Write(2) = "<<writeErr;
+
 	//signal completion
-	TInt completion = SmfGetServiceComplete ;
+	TInt completion = SmfGetService;
 	aMessage.Complete(completion);
 	}
+
 void SmfServerSymbianSession::HandleCommonServiceL(const RMessage2& aMessage)
 	{
+	qDebug()<<"Inside SmfServerSymbianSession::HandleCommonServiceL() = "<<aMessage.Function();
 	/**
 	 * Note:- client sends message in the following format,-
 	 * Slot 0:- SmfProvider* serialized+Page info flag+page number+per page (if page info flag)+xtra info flag
@@ -418,80 +544,59 @@
 	 * Slot 3 :- Xtra Data if xtra data flag
 	 */
 	//TODO:- Use macro instead, shared betn client-server
-	TInt maxProvidersize = 1000;
-	TInt maxOtherInfoSize = 300;
 	TInt providerSize = aMessage.GetDesLength(0);
-	if(iProviderBuf)
+	if(iProviderBuf8)
 		{
-		delete iProviderBuf;
-		iProviderBuf = NULL;
+		delete iProviderBuf8;
+		iProviderBuf8 = NULL;
 		}
-	iProviderBuf = HBufC8::NewL(maxProvidersize + maxOtherInfoSize);
-	iProviderSymbian.Set(iProviderBuf->Des());
-
-	TInt intfNameSize = aMessage.GetDesLength(1);
-	if(iIntfNameBuf)
-		{
-		delete iIntfNameBuf;
-		iIntfNameBuf = NULL;
-		}
-	iIntfNameBuf = HBufC8::NewL(1000);//for safeside
-	iIntfNmaeSymbian.Set(iIntfNameBuf->Des());
-
-
-	//read it into iProviderSymbian
-	aMessage.ReadL(0,iProviderSymbian);
-	//read it into iIntfNmaeSymbian
-	aMessage.ReadL(1,iIntfNmaeSymbian);
+	iProviderBuf8 = HBufC8::NewL(providerSize);
+	iProviderSymbian8.Set(iProviderBuf8->Des());
+	
+	//read it into iProviderSymbian8
+	aMessage.ReadL(0,iProviderSymbian8);
 	
 	//convert SmfProvider info from Symbian into bytearray
-	QByteArray providerBufQt(reinterpret_cast<const char*>(iProviderSymbian.Ptr()),iProviderSymbian.Length());
-	qDebug()<<("providerBufQt.size=");
-	qDebug()<<(QString::number(providerBufQt.size()));
+	QByteArray providerBufQt(reinterpret_cast<const char*>(iProviderSymbian8.Ptr()),iProviderSymbian8.Length());
+	qDebug()<<"providerBufQt.size = "<<providerBufQt.size();
 
 	//now de-serialize it
 	QDataStream stream(&providerBufQt,QIODevice::ReadOnly);
 	SmfProvider provider;
-	stream>>provider ;
-	TInt pageinfoFlag=0;
-	stream>>pageinfoFlag;
-	TInt pageNo=-1;
-	TInt perpage=-1;
-	if(pageinfoFlag)
+	stream>>provider;
+	QByteArray XtraBufQt;
+	stream>>XtraBufQt;
+	qDebug()<<"XtraBufQt size = "<<XtraBufQt.size();
+	TInt intfNameSize = aMessage.GetDesLength(1);
+	if(iIntfNameBuf8)
 		{
-		stream>>pageNo;
-		stream>>perpage;
-		qDebug()<<("pageNo=");
-		qDebug()<<(QString::number(pageNo));
-		qDebug()<<("perpage=");
-		qDebug()<<(QString::number(perpage));
+		delete iIntfNameBuf8;
+		iIntfNameBuf8 = NULL;
 		}
-	TInt XtraInfoFlag = 0;
-	TBool isXtraData = EFalse;
-	stream>>XtraInfoFlag;
-	if(XtraInfoFlag)
-		{
-		isXtraData = ETrue;
-		qDebug()<<("XtraInfoFlag=");
-		qDebug()<<(QString::number(XtraInfoFlag));
-		}
-	qDebug()<<("iIntfNmaeSymbian.Size=");
-	qDebug()<<(QString::number(iIntfNmaeSymbian.Size()));
-	QByteArray bytearray(reinterpret_cast<const char*>(iIntfNmaeSymbian.Ptr()),iIntfNmaeSymbian.Length()) ;
+	iIntfNameBuf8 = HBufC8::NewL(intfNameSize);
+	iIntfNameSymbian8.Set(iIntfNameBuf8->Des());
+
+	//read it into iIntfNameSymbian8
+	aMessage.ReadL(1,iIntfNameSymbian8);
+	qDebug()<<"iIntfNameSymbian8.Size = "<<iIntfNameSymbian8.Size();
+
+	QByteArray bytearray(reinterpret_cast<const char*>(iIntfNameSymbian8.Ptr()),iIntfNameSymbian8.Length()) ;
 	QDataStream intfNameStream(&bytearray,QIODevice::ReadOnly);
 	iInterfaceID.clear();
 	intfNameStream>>iInterfaceID;
-	qDebug()<<("After de-serializing into iInterfaceID=");
-	qDebug()<<(iInterfaceID);
+	qDebug()<<"Interface Name = "<<iInterfaceID;
+	
 	//Interface names are diff in client and plugin, replacing *.client.* with *.plugin.*
 	iInterfaceID.replace(QString(".client"),QString(".plugin"));
+	
 	//Get the plugin ID who matches provider info for a given intf name
 	SmfPluginID pluginID = iServer->wrapper()->getPlugin(iInterfaceID,provider);
-	qDebug()<<("pluginID from PM=");
-	qDebug()<<(pluginID);
+	qDebug()<<"pluginID from PM = "<<pluginID;
+
+	//we need to check only this pluginID is authorized?
 	iPluginIDList.clear();
-	//we need to check only this pluginID is authorized?
 	iPluginIDList<<pluginID;
+	
 	//iAuthList will contain pluginID for a successfull case
 	iAuthList.clear();
 	iServer->wrapper()->getAuthorizedPlugins(iPluginIDList,iAuthList);
@@ -502,24 +607,8 @@
 		TInt id = iServer->addToSessionMap(this,aMessage);
 		//request PM to get the data
 		SmfRequestTypeID opcode = (SmfRequestTypeID)iLastRequest;
-		if(isXtraData)
-			{
-			if(iXtraDataBuf)
-				{
-				delete iXtraDataBuf;
-				iXtraDataBuf = NULL;	
-				}
-			iXtraDataBuf = HBufC8::NewL(XtraInfoFlag);
-			iXtraDataPtr.Set(iXtraDataBuf->Des());
-			QByteArray XtraBufQt(reinterpret_cast<const char*>(iXtraDataPtr.Ptr()),iXtraDataPtr.Length());
-			qDebug()<<("XtraBufQt size=");
-			qDebug()<<(QString::number(XtraBufQt.size()));
-			iServer->wrapper()->sendToPluginManager(id,pluginID,iInterfaceID,opcode,XtraBufQt);
-			}
-		else
-			{
-			iServer->wrapper()->sendToPluginManager(id,pluginID,iInterfaceID,opcode);
-			}
+		
+		iServer->wrapper()->sendToPluginManager(id,pluginID,iInterfaceID,opcode,XtraBufQt);
 		}
 	else
 		{
@@ -528,6 +617,4 @@
 		iErrBuf.AppendNum(err);
 		iMessage.Write(2,iErrBuf);
 		}
-
-
 	}
--- a/smf/smfservermodule/smfserver/server/smfserversymbian_p.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfserversymbian_p.h	Thu Aug 05 16:48:48 2010 +0530
@@ -10,30 +10,28 @@
  * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
  *
  * Contributors:
- * Manasij Roy, Nalina Hariharan*
+ * Manasij Roy, Nalina Hariharan
+ * 
  * Description:
  * SMF Server private implementation for Symbian
  *
- **/
+ */
 
 #ifndef SMFSERVERSYMBIAN_H
 #define SMFSERVERSYMBIAN_H
+
 #include <QObject>
 #include <e32hashtab.h>
 #include <e32base.h>
 #include <QByteArray>
 #include <QString>
-//testing -start
-#include "smfprovider.h"
-//end
-//SMF wide global const and macros, to be shared among SMF components as well as SMF aware apps
-//#include <smf/smfGlobal.h>
 
-//#include "clientGlobal.h"
+#include "smfserver.h"
 
-#include "SmfServer.h"
 //Forward declarations
 class SmfServerSymbianSession;
+class SmfProvider;
+
 
 /**
  * Stores session and request information.
@@ -46,7 +44,6 @@
 	};
 
 
-
 //Policy table---start
 //note capabilities are yet to be finalized
 //46 services as of 15th apr
@@ -107,23 +104,18 @@
         myElements,
         };
 //Policy table---end
+
+
 /**
-* Our server class - an active object - and therefore derived ultimately from CActive.
-* It accepts requests from client threads and forwards
-* them to the client session to be dealt with. It also handles the creation
-* of the server-side client session.
-**/
+ * Our server class - an active object - and therefore derived ultimately from CActive.
+ * It accepts requests from client threads and forwards
+ * them to the client session to be dealt with. It also handles the creation
+ * of the server-side client session.
+ */
 class SmfServerSymbian : public CPolicyServer
-{
-  
+	{
 public:
-	/**
-	 * Creates a new session with the server; the function
-	 * implements the pure virtutal function
-	 * defined in class CServer2
-	 */
-	SmfServerSymbian(CActive::TPriority aActiveObjectPriority,SmfServer* aWrapper);
-    static SmfServerSymbian * NewL(CActive::TPriority aActiveObjectPriority,SmfServer* aWrapper);
+	static SmfServerSymbian * NewL(CActive::TPriority aActiveObjectPriority,SmfServer* aWrapper);
     ~SmfServerSymbian();
     CSession2 * NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
   
@@ -131,6 +123,7 @@
      * Returns SmfServer
      */
     SmfServer* wrapper();
+    
     /**
      * Adds session info to the currently active session map iMap. This map is used to
      * retreive the corresponding session to be serviced. The keys for this map is sent
@@ -139,17 +132,20 @@
      * @param aMsg Currently redundant
      */
     TInt addToSessionMap(SmfServerSymbianSession* aSession,const RMessage2& aMsg);
+    
     /**
      * Removes the session from the active list of session map
      * @param aSession Session to be removed.
      * @param aMsg Currently redundant
      */
     TInt removeFromSessionMap(SmfServerSymbianSession* aSession,RMessage2& aMsg);
+    
     /**
      * Returns a symbian session for the given key from the iMap.
      * @param id Session ID in the SmfServer Session map
      */
     SmfServerSymbianSession* findSession(TInt id);
+    
     /**
      * Finds the given session and services it with the data.
      * @param requestID Session ID
@@ -157,12 +153,20 @@
      * @param error Error code
      */
     TInt findAndServiceclient(TInt requestID,QByteArray* parsedData,SmfError error);
+
+private:
 	/**
-	 * Debugging
+	 * Creates a new session with the server. The function
+	 * implements the pure virtual function
+	 * defined in class CServer2
 	 */
-	//void writeLog(QString log)const;
-//private:
+	SmfServerSymbian(CActive::TPriority aActiveObjectPriority,SmfServer* aWrapper);
+	
     void ConstructL();
+    
+private:
+    friend class SmfServerSymbianSession;
+    
     SmfServer* iWrapper;
     
 	/**
@@ -170,21 +174,16 @@
 	 */
     RHashMap<TInt,CSessionStruct> iMap;
     
-    /**
-     * The key in the iMap.
-     * Its sent to the wrapper
-     */
-    TInt iRequestID;
-    
     TInt iSessionCount;
-};
+	};
+
 
 /**
 This class represents a session with the  Smf server.
 Functions are provided to respond appropriately to client messages.
 */
 class SmfServerSymbianSession : public CSession2
-{
+	{
 public:
 	/**
 	 * Creates a session.
@@ -192,24 +191,30 @@
 	 */
 	SmfServerSymbianSession(SmfServerSymbian* aServer);
     ~SmfServerSymbianSession();
+    
     /**
      * From CSession2
      */
     void ServiceL(const RMessage2 & aMessage);
+    
     /**
      * Called by the SmfServerSymbian when results are available
      * @param parsedData Parsed serialized data
      * @param error Smf Error code
      */
 	void resultsAvailable(QByteArray* parsedData,SmfError error);
+	
 	/**
 	 * Called by the SmfServer when client authorization finishes.
 	 * @param success success of the authorization
 	 */
-	void clientathorizationFinished(bool success);
+	void clientAuthorizationFinished(bool success);
+	
 protected:
     //TMessageParams ReadMessageAndRetrieveParams (const RMessage2 & aMessage);
+	
     void PanicClient(const RMessage2 & aMessage, TInt aPanic) const;
+    
     /**
      * Called by ServiceL()
      * It tests the function code and then delegates to
@@ -217,11 +222,17 @@
      */
     void HandleClientMessageL(const RMessage2 & aMessage);
     
+private:
     //Following are for handling specific client requests
     /**
      * ESmfGetService
      */
-    void HandleGetService(const RMessage2 & aMessage);
+    void HandleGetService(const RMessage2 & aMessage, const SmfInterfaceID& aInterfaceID);
+    
+    /**
+     * Handles all synchronous services
+     */
+    void HandleSyncServiceL(const RMessage2 & aMessage);
     
     /**
      * Handles all the opcodes except ESmfGetService
@@ -234,27 +245,27 @@
     void HandleDSMServiceL(const RMessage2 & aMessage);
     
     
-//private:
+private:
     SmfServerSymbian* iServer;
     RMessage2 iMessage;
     TBuf<100> iErrBuf;
 	//this interface id will be provided by Smf client, will map Smf Client 
 	// interface hierarchy
 	SmfInterfaceID iInterfaceID;
-	TPtr8 iIntfNmaeSymbian;
-	TPtr iIntfNameSymbian16;
+	TPtr iIntfNameSymbian;
+	TPtr8 iIntfNameSymbian8;
+	
 	TBuf8<125> iInterfaceNametbuf;
-	TPtr8 iProviderSymbian;
-	TPtr8 iXtraDataPtr;
-	HBufC8* iDataForDSM;
-	TPtr8 iPtrDataForDSM;
-	HBufC8* iDataFromDSM;
-	TPtr8 iPtrDataFromDSM;
+	TPtr8 iProviderSymbian8;
+	TPtr8 iXtraDataPtr8;
+	HBufC8* iData8ForDSM;
+	TPtr8 iPtr8DataForDSM;
+	HBufC8* iData8FromDSM;
+	TPtr8 iPtr8DataFromDSM;
 	TBuf<100> iDSMErr;
-	TBuf<100> iMaxSize;
-	HBufC8* iProviderBuf;
-	HBufC8* iXtraDataBuf;
-	HBufC8* iIntfNameBuf;
+	HBufC8* iProviderBuf8;
+	HBufC8* iXtraDataBuf8;
+	HBufC8* iIntfNameBuf8;
 	QMap<SmfPluginID,SmfProvider> iPluginIDMap;
 	QList<SmfPluginID> iPluginIDList;
 	QList<SmfPluginID> iAuthList;
@@ -268,15 +279,11 @@
 	 * Last request opcode
 	 */
 	TInt iLastRequest;
-	//testing
-	TBuf<525> dataToPass;
-	HBufC8* iBuf;
-	HBufC* iBuf16;
 	TPtr8 iPtrToBuf;
 	TPtr8 iPtrToDataForClient;
 	HBufC8* iDataForClient;
-	QByteArray byteArrayToClnt;
-	SmfProvider* providerToClnt;
-	TInt iError;
-};
+	QByteArray resultData;
+	QByteArray xtraData;
+	};
+
 #endif // SMFSERVERSYMBIAN_H
--- a/smf/smfservermodule/smfserver/server/smfsettingshandler.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfsettingshandler.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -16,17 +16,20 @@
  * Reads/Writes settings key in a platform independent way
  */
 #include "smfsettingshandler.h"
-#ifdef Q_OS_SYMBIAN
-#include "smfsettingshandler_symbian.h"
+
+#ifdef __FOR_SYMBIAN_CR_USAGE__
+	#include "smfsettingshandler_symbian.h"
 #else
-#include "smfsettingshandler_qt.h"
+	#include "smfsettingshandler_qt.h"
 #endif
+
 SmfSettingsHandler::SmfSettingsHandler(QObject *parent)
 {
-#ifdef Q_OS_SYMBIAN
+	Q_UNUSED(parent)
+#ifdef __FOR_SYMBIAN_CR_USAGE__
 	m_repository = CSettingsRepository::NewL();
 #else
-	m_repository = new SettingsRepositoryQt(this);
+	m_repository = new SmfSettingsRepositoryQt(this);
 #endif
 }
 SmfSettingsHandler::~SmfSettingsHandler()
--- a/smf/smfservermodule/smfserver/server/smfsettingshandler.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfsettingshandler.h	Thu Aug 05 16:48:48 2010 +0530
@@ -21,12 +21,14 @@
 #include <QObject>
 #include <QStringList>
 #include <QMap>
-#ifdef Q_OS_SYMBIAN
+#ifdef __FOR_SYMBIAN_CR_USAGE__
 class CSettingsRepository;
 #else
-//TODO:- Implement
-class SettingsRepositoryQt;
+class SmfSettingsRepositoryQt;
 #endif
+
+
+
 class SmfSettingsHandler : public QObject
 	{
 	Q_OBJECT
@@ -82,10 +84,10 @@
 	 */
 	QString GetUploadFileType() const;
 private:
-	#ifdef Q_OS_SYMBIAN
+#ifdef __FOR_SYMBIAN_CR_USAGE__
 	CSettingsRepository* m_repository;
-	#else
-	SettingsRepositoryQt* m_repository;
-	#endif
+#else
+	SmfSettingsRepositoryQt* m_repository;
+#endif
 	};
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfserver/server/smfsettingshandler_qt.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,117 @@
+/*
+ * smfsettingshandler_qt.cpp
+ *
+ *  Created on: Jul 8, 2010
+ *      Author: satishkk
+ */
+
+#include "smfsettingshandler_qt.h"
+#include "SettingsConstants.h"
+
+SmfSettingsRepositoryQt::SmfSettingsRepositoryQt(QObject *parent)
+    {
+	Q_UNUSED(parent)
+		iSettings = new QSettings(QSettings::SystemScope,"Sasken","SMF");
+    }
+
+SmfSettingsRepositoryQt::~SmfSettingsRepositoryQt()
+    {
+	 if(iSettings)
+		{
+			delete iSettings;
+			iSettings = NULL;
+		}
+    }
+/*
+
+ * Method to set the PluginDetails to  QSettings
+ * Param - @aPluginStatus,holds the Plgugin Status.
+ */
+void SmfSettingsRepositoryQt::SetPluginDetails(QString& aPluginName,QString& aPluginStatus)
+	{
+	QVariant var1 = QVariant::fromValue(aPluginName);
+	QVariant var2 = QVariant::fromValue(aPluginStatus);
+		iSettings->setValue(KSettingsUIPluginNameKey,var1);
+		iSettings->setValue(KSettingsUIPluginStausKey,var2);
+	}
+/*
+ * Method to set the Auth Expiry Value to  QSettings
+ * Param - @aVal,Auth Expiry Value
+ */
+void SmfSettingsRepositoryQt::SetAuthExpirationValue(QString& aVal)
+	{
+		iSettings->setValue(KSettingsUIAuthExpLimitKey,aVal);
+	}
+/*
+ * Method to set the Max. Data Transfer Limit to  QSettings
+ * Param - @aVal,Max. Data Transfer Limit Value
+ */
+void SmfSettingsRepositoryQt::SetMaxDataTransferLimit(QString& aVal)
+	{
+		iSettings->setValue(KSettingsUIMaxDataTransferLimitKey,aVal);
+	}
+/*
+ * Method to set the Roaming Status for Data Transfer to  QSettings
+ * Param - @aStatus,Rpaming Status value for Data Transfer
+ */
+void SmfSettingsRepositoryQt::SetRoamingStatusforDataTransfer(QString& aStatus)
+	{
+		iSettings->setValue(KSettingsUIRoamingStatusKey,aStatus);
+	}
+/*
+ * Method to set the Upload File Type to  QSettings
+ * Param - @aStatus,Upload File Type Value
+ */
+void SmfSettingsRepositoryQt::SetUploadFileType(QString& aFileType)
+	{
+		iSettings->setValue(KSettingsUIUploadFileTypeKey,aFileType);
+	}
+/*
+ * Method to Get the PluginDetails from  QSettings
+ */
+void SmfSettingsRepositoryQt::GetPluginDetails(QMap<QString,QString>& aDetails) const
+	{
+		QVariant Value1, Value2;
+
+		Value1 = iSettings->value(KSettingsUIPluginNameKey,Value1);
+		
+		Value2 =  iSettings->value(KSettingsUIPluginStausKey,Value2);
+		aDetails.insert(Value1.toString(), Value2.toString());
+
+	}
+/*
+ * Method to Get the Auth Expiry Value from  QSettings
+ */
+QString SmfSettingsRepositoryQt::GetAuthExpirationValue() const
+	{
+		QVariant Value;
+		Value = iSettings->value(KSettingsUIAuthExpLimitKey,Value);
+		return Value.toString();
+	}
+/*
+ * Method to Get the Max. Data Transfer Limit from  QSettings
+ */
+QString SmfSettingsRepositoryQt::GetMaxDataTransferLimit() const
+	{
+		QVariant Value;
+		Value = iSettings->value(KSettingsUIMaxDataTransferLimitKey,Value);
+		return Value.toString();
+	}
+/*
+ * Method to Get the Roaming Status for Data Transfer from QSettings
+ */
+QString SmfSettingsRepositoryQt::GetRoamingStatusforDataTransfer() const
+	{
+		QVariant Value;
+		Value = iSettings->value(KSettingsUIRoamingStatusKey,Value);
+		return Value.toString();
+	}
+/*
+ * Method to Get the Upload File Type from QSettings
+ */
+QString SmfSettingsRepositoryQt::GetUploadFileType() const
+	{
+		QVariant Value;
+		Value = iSettings->value(KSettingsUIUploadFileTypeKey,Value);
+		return Value.toString();
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfserver/server/smfsettingshandler_qt.h	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,94 @@
+/*
+ * smfsettingshandler_qt.h
+ *
+ *  Created on: Jul 8, 2010
+ *      Author: satishkk
+ */
+
+#ifndef SMFSETTINGSHANDLER_QT_H_
+#define SMFSETTINGSHANDLER_QT_H_
+
+#include <qsettings.h>
+#include <qstringlist.h>
+
+/*!
+  @class SmfSettingsRepositoryQt
+
+  @discussion An instance Platform Independent Settings class 
+  to set/get setting values to/from symbian repository.
+  */
+class SmfSettingsRepositoryQt : public QObject
+    {
+public:
+
+
+/*!
+  @function ~SmfSettingsRepositoryQt
+
+  @discussion Destroy the object and release all memory objects
+  */
+     ~SmfSettingsRepositoryQt();
+
+	/*!
+	  @function SmfSettingsRepositoryQt
+
+	  @discussion Construct the Settings Object
+	  */
+
+     SmfSettingsRepositoryQt(QObject *parent = 0);
+	/*
+	 * Method to set the PluginDetails to QSettings
+	 * Parm - @aPluginName,Name of the plugin
+	 * Param - @aPluginStatus,holds the Plgugin Status.
+	 */
+	void SetPluginDetails(QString& aPluginName,QString& aPluginStatus);
+	/*
+	 * Method to set the Auth Expiry Value to QSettings
+	 * Param - @aVal,Auth Expiry Value
+	 */
+	void SetAuthExpirationValue(QString& aVal);
+	/*
+	 * Method to set the Max. Data Transfer Limit to QSettings
+	 * Param - @aVal,Max. Data Transfer Limit Value
+	 */
+	void SetMaxDataTransferLimit(QString& aVal);
+	/*
+	 * Method to set the Roaming Status for Data Transfer to QSettings
+	 * Param - @aStatus,Rpaming Status value for Data Transfer
+	 */
+	void SetRoamingStatusforDataTransfer(QString& aStatus);
+	/*
+	 * Method to set the Upload File Type to QSettings
+	 * Param - @aStatus,Upload File Type Value
+	 */
+	void SetUploadFileType(QString& aFileType);
+	/*
+	 * Method to Get the PluginDetails from QSettings
+	 */
+	void GetPluginDetails(QMap<QString,QString>& aDetails) const;
+	/*
+	 * Method to Get the Auth Expiry Value from QSettings
+	 */
+	QString GetAuthExpirationValue() const;
+	/*
+	 * Method to Get the Max. Data Transfer Limit from QSettings
+	 */
+	QString GetMaxDataTransferLimit() const;
+	/*
+	 * Method to Get the Roaming Status for Data Transfer from QSettings
+	 */
+	QString GetRoamingStatusforDataTransfer() const;
+	/*
+	 * Method to Get the Upload File Type from QSettings
+	 */
+	QString GetUploadFileType() const;
+
+private:
+    /*!
+     Pointer to the QSettings Object
+      */
+    QSettings*  iSettings;
+
+    };
+
+#endif /* SMFSETTINGSHANDLER_QT_H_ */
--- a/smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -15,9 +15,11 @@
  * Settings Repository class of SMF
  */
 
+#ifdef __FOR_SYMBIAN_CR_USAGE__
+
 #include <e32base.h>
 #include "smfsettingshandler_symbian.h"
-#include <SettingsConstants.h>
+#include "SettingsConstants.h"
 
 // Standard construction sequence
 CSettingsRepository* CSettingsRepository::NewL()
@@ -216,4 +218,4 @@
 		User::LeaveIfError(iRepository->Get(KSettingsUIUploadFileTypeKey,aFtype));
 	}
 
-
+#endif
--- a/smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.h	Thu Aug 05 16:48:48 2010 +0530
@@ -18,11 +18,14 @@
 #ifndef SETTINGSREPOSITORY_H_
 #define SETTINGSREPOSITORY_H_
 
+#ifdef __FOR_SYMBIAN_CR_USAGE__
+
 const TInt KMaxSettingValue = 50;
 
 #include <centralrepository.h>
 #include <QStringList>
 #include <QMap>
+#include <qsettings.h>
 //#include <BADESCA.H> 
 /*!
   @class CSettingsRepository
@@ -181,5 +184,6 @@
 
     };
 
+#endif
 
 #endif /* SETTINGSREPOSITORY_H_ */
--- a/smf/smfservermodule/smfserver/smfplugins/smfgalleryplugin.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfplugins/smfgalleryplugin.h	Thu Aug 05 16:48:48 2010 +0530
@@ -24,6 +24,7 @@
 #include <smfpicture.h>
 #include <smfcomment.h>
 #include <smfpicturealbum.h>
+#include <smfcontact.h>
 
 /**
  * @ingroup smf_plugin_group
--- a/smf/smfservermodule/smfserver/smfplugins/smfmusiceventsplugin.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfplugins/smfmusiceventsplugin.h	Thu Aug 05 16:48:48 2010 +0530
@@ -56,7 +56,7 @@
 	 * @return SmfPluginError Plugin error if any, else SmfPluginErrNone
 	 */
 	virtual SmfPluginError events( SmfPluginRequestData &aRequest,
-			const QGeoPositionInfo &aLocation,
+			const SmfLocation &aLocation,
 			const int aPageNum = SMF_FIRST_PAGE, 
 			const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0;
 	
@@ -69,20 +69,7 @@
 	 * @return SmfPluginError Plugin error if any, else SmfPluginErrNone
 	 */
 	virtual SmfPluginError venues( SmfPluginRequestData &aRequest,
-			const QGeoPositionInfo &aLocation,
-			const int aPageNum = SMF_FIRST_PAGE, 
-			const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0;
-	
-	/**
-	 * Method to get the events based on venues
-	 * @param aRequest [out] The request data to be sent to network
-	 * @param aVenue Venue of the event
-	 * @param aPageNum The page to be extracted
-	 * @param aItemsPerPage Number of items per page
-	 * @return SmfPluginError Plugin error if any, else SmfPluginErrNone
-	 */
-	virtual SmfPluginError events( SmfPluginRequestData &aRequest,
-			const SmfLocation &aVenue,
+			const SmfLocation &aLocation,
 			const int aPageNum = SMF_FIRST_PAGE, 
 			const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0;
 	
--- a/smf/smfservermodule/smfserver/smfplugins/smfmusicsearchplugin.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfplugins/smfmusicsearchplugin.h	Thu Aug 05 16:48:48 2010 +0530
@@ -100,40 +100,6 @@
 			const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0;
 	
 	/**
-	 * Method to post the currently playing track
-	 * @param aRequest [out] The request data to be sent to network
-	 * @param aTrack The current playing track, that should be posted
-	 * @return SmfPluginError Plugin error if any, else SmfPluginErrNone
-	 */
-	virtual SmfPluginError postCurrentPlaying( 
-			SmfPluginRequestData &aRequest,
-			const SmfTrackInfo &aTrack ) = 0;
-	
-	/**
-	 * Method to post the rating on a track
-	 * @param aRequest [out] The request data to be sent to network
-	 * @param aTrack The track on which rating should be posted
-	 * @param aRating The rating values
-	 * @return SmfPluginError Plugin error if any, else SmfPluginErrNone
-	 */
-	virtual SmfPluginError postRating( 
-			SmfPluginRequestData &aRequest, 
-			const SmfTrackInfo &aTrack, 
-			const SmfMusicRating &aRating ) = 0;
-	
-	/**
-	 * Method to post comment on a track
-	 * @param aRequest [out] The request data to be sent to network
-	 * @param aTrack The track on which comment should be posted
-	 * @param aComment The comment content
-	 * @return SmfPluginError Plugin error if any, else SmfPluginErrNone
-	 */
-	virtual SmfPluginError postComments( 
-			SmfPluginRequestData &aRequest, 
-			const SmfTrackInfo &aTrack, 
-			const SmfComment &aComment ) = 0;
-		
-	/**
 	 * Customised method for SmfMusicSearchPlugin interface
 	 * @param aRequest [out] The request data to be sent to network
 	 * @param aOperation The operation type (should be known between 
--- a/smf/smfservermodule/smfserver/smfplugins/smfmusicserviceplugin.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfplugins/smfmusicserviceplugin.h	Thu Aug 05 16:48:48 2010 +0530
@@ -24,6 +24,9 @@
 #include <smfpluginbase.h>
 #include <smfmusicprofile.h>
 #include <smflocation.h>
+#include <smftrackinfo.h>
+#include <smfmusicrating.h>
+#include <smfcomment.h>
 
 /**
  * @ingroup smf_plugin_group
@@ -65,6 +68,40 @@
 			const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0;
 	
 	/**
+	 * Method to post the currently playing track
+	 * @param aRequest [out] The request data to be sent to network
+	 * @param aTrack The current playing track, that should be posted
+	 * @return SmfPluginError Plugin error if any, else SmfPluginErrNone
+	 */
+	virtual SmfPluginError postCurrentPlaying( 
+			SmfPluginRequestData &aRequest,
+			const SmfTrackInfo &aTrack ) = 0;
+	
+	/**
+	 * Method to post the rating on a track
+	 * @param aRequest [out] The request data to be sent to network
+	 * @param aTrack The track on which rating should be posted
+	 * @param aRating The rating values
+	 * @return SmfPluginError Plugin error if any, else SmfPluginErrNone
+	 */
+	virtual SmfPluginError postRating( 
+			SmfPluginRequestData &aRequest, 
+			const SmfTrackInfo &aTrack, 
+			const SmfMusicRating &aRating ) = 0;
+	
+	/**
+	 * Method to post comment on a track
+	 * @param aRequest [out] The request data to be sent to network
+	 * @param aTrack The track on which comment should be posted
+	 * @param aComment The comment content
+	 * @return SmfPluginError Plugin error if any, else SmfPluginErrNone
+	 */
+	virtual SmfPluginError postComments( 
+			SmfPluginRequestData &aRequest, 
+			const SmfTrackInfo &aTrack, 
+			const SmfComment &aComment ) = 0;
+	
+	/**
 	 * Customised method for SmfMusicServicePlugin interface
 	 * @param aRequest [out] The request data to be sent to network
 	 * @param aOperation The operation type (should be known between 
--- a/smf/smfservermodule/smfserver/smfplugins/smfpluginbase.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfplugins/smfpluginbase.h	Thu Aug 05 16:48:48 2010 +0530
@@ -40,10 +40,8 @@
 	/**
 	 * The first method to be called in the plugin that implements this interface.
 	 * If this method is not called, plugin may not behave as expected.
-	 * Plugins are expected to save the aUtil handle and use as and when required.
-	 * @param aUtil The instance of SmfPluginUtil
 	 */
-	virtual void initialize( SmfPluginUtil *aUtil ) = 0;
+	virtual void initialize( ) = 0;
 
 	/**
 	 * Method to get the provider information
--- a/smf/smfservermodule/smfserver/smfplugins/smfpostproviderplugin.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfplugins/smfpostproviderplugin.h	Thu Aug 05 16:48:48 2010 +0530
@@ -26,23 +26,6 @@
 #include <smfpost.h>
 #include <smflocation.h>
 
-//TODO:- Moved to SmfPost as it should b common betn client n plugin
-///**
-// * SmfPresenceInfo.
-// * Indicates the presence information of user like Online, Offline, Busy, 
-// * Do no disturb, Appear Offline etc.
-// */
-//enum SmfPresenceInfo
-//	{
-//	  ENotSupported,
-//	  EOnline,
-//	  EOffline,
-//	  EBusy,
-//	  EDoNotDisturb,
-//	  EAppearOffline,
-//	  EOther
-//	};
-
 /**
  * @ingroup smf_plugin_group
  * Interface to get/update the posts to a service provider. This class
@@ -78,7 +61,7 @@
 	virtual qint32 maxItems( ) const = 0;
 
 	/**
-	 * <Method that returns all the formatting of posts that this 
+	 * Method that returns all the formatting of posts that this 
 	 * service provider supports. May return 0 items to mean 
 	 * only QString is supported.
 	 * @return Supported formats of posts
@@ -164,7 +147,7 @@
 			const QString &aStatus ) = 0;
 	
 	/**
-	 * Share /a contact's post to user's friends and followers
+	 * Share a contact's post to user's friends and followers
 	 * (e.g. retweet in twitter, share on facebook)
 	 * @param aRequest [out] The request data to be sent to network
 	 * @param aPostData data to be posted
--- a/smf/smfservermodule/smfserver/smfserver.loc	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfserver.loc	Thu Aug 05 16:48:48 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-06-22T14:10:39
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/smf/smfservermodule/smfserver/smfserver.pro	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfserver.pro	Thu Aug 05 16:48:48 2010 +0530
@@ -1,45 +1,32 @@
 TEMPLATE = app
 TARGET = smfserver 
-
-DEFINES += NO_OTHER_MODULES \
-		   CLIENT_SERVER_TEST
 QT += core \
     gui \
     network \
     sql
-
- 
 CONFIG += mobility
-
 MOBILITY = contacts \
     location \
     bearer \
     systeminfo
-    
 include(datastoremgr/datastoremgr.pri)
 include(pluginmgr/pluginmgr.pri)
 include(server/server.pri)
 include(smfplugins/smfplugins.pri)
 include(transportmgr/transportmgr.pri)
-
 !symbian {
     include(../../desktop.pri)
     include(../smfclient/common/common.pri)
-
     LIBS += -lqjson
 }
-
 PUBLIC_HEADERS += \
 	smfserverglobal.h
-
 HEADERS += \
     $$PUBLIC_HEADERS \
     $$PRIVATE_HEADERS
-    
 SOURCES += \
 	main.cpp \
 	smfserver_reg.rss
-
 symbian: { 
     TARGET.UID3 = 0xE5027327
 	TARGET.CAPABILITY = NetworkServices \
@@ -47,9 +34,10 @@
         WriteUserData \
         LocalServices \
         UserEnvironment \
-    ReadDeviceData \
-    WriteDeviceData
-	LIBS += -lsmfclient.dll \
-	        -lsmfcredmgrclient.dll \
-	        -lcentralrepository 
+    	ReadDeviceData \
+    	WriteDeviceData
+	LIBS += -lsmfclient \
+	        -lsmfcredmgrclient \
+	        -lcentralrepository \
+	        -lsmfcommon 
 }
--- a/smf/smfservermodule/smfserver/smfserver.rss	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfserver.rss	Thu Aug 05 16:48:48 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-06-22T14:10:39
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/smfserver/smfserver_installer.pkg	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,30 @@
+; smfserver_installer.pkg generated by qmake at 2010-07-30T14:11:43
+; This file is generated by qmake and should not be modified by the user
+;
+
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"smfserver installer"},(0xA000D7CE),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+
+; Manual PKG pre-rules from PRO files
+; Default HW/platform dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+ 
+; Default dependency to Qt libraries
+; Default dependency to QtMobility libraries
+
+
+"D:/smf/MissingCode/smfrepo/smf/smfservermodule/smfserver/smfserver.sis" - "c:\adm\smfserver.sis"
+@"D:/Qt/4.6.2/smartinstaller.sis",(0x2002CCCD)
--- a/smf/smfservermodule/smfserver/smfserver_reg.rss	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfserver_reg.rss	Thu Aug 05 16:48:48 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-06-22T14:10:39
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/smf/smfservermodule/smfserver/smfserver_template.pkg	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/smfserver_template.pkg	Thu Aug 05 16:48:48 2010 +0530
@@ -1,11 +1,10 @@
-; smfserver_template.pkg generated by qmake at 2010-06-22T14:10:39
+; smfserver_template.pkg generated by qmake at 2010-07-30T14:11:43
 ; This file is generated by qmake and should not be modified by the user
 ;
 
 ; Language
 &EN
 
-
 ; SIS header: name, uid, version
 #{"smfserver"},(0xE5027327),1,0,0
 
@@ -17,20 +16,20 @@
 
 
 ; Manual PKG pre-rules from PRO files
-; Default dependency to Qt libraries
-(0x2001E61C), 4, 6, 3, {"Qt"}
 ; Default HW/platform dependencies
 [0x101F7961],0,0,0,{"S60ProductID"}
 [0x102032BE],0,0,0,{"S60ProductID"}
 [0x102752AE],0,0,0,{"S60ProductID"}
 [0x1028315F],0,0,0,{"S60ProductID"}
  
+; Default dependency to Qt libraries
+(0x2001E61C), 4, 6, 2, {"Qt"}
 ; Default dependency to QtMobility libraries
 (0x2002AC89), 1, 0, 0, {"QtMobility"}
 
 ; Executable and default resource files
-"/Nokia/devices/Nokia_Symbian3_SDK_v0.8/epoc32/release/$(PLATFORM)/$(TARGET)/smfserver.exe"    - "!:\sys\bin\smfserver.exe"
-"/Nokia/devices/Nokia_Symbian3_SDK_v0.8/epoc32/data/z/resource/apps/smfserver.rsc"    - "!:\resource\apps\smfserver.rsc"
-"/Nokia/devices/Nokia_Symbian3_SDK_v0.8/epoc32/data/z/private/10003a3f/import/apps/smfserver_reg.rsc"    - "!:\private\10003a3f\import\apps\smfserver_reg.rsc"
+"/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/release/$(PLATFORM)/$(TARGET)/smfserver.exe"    - "!:\sys\bin\smfserver.exe"
+"/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/data/z/resource/apps/smfserver.rsc"    - "!:\resource\apps\smfserver.rsc"
+"/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/data/z/private/10003a3f/import/apps/smfserver_reg.rsc"    - "!:\private\10003a3f\import\apps\smfserver_reg.rsc"
 
 ; Manual PKG post-rules from PRO files
--- a/smf/smfservermodule/smfserver/transportmgr/smftransportmanager.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/transportmgr/smftransportmanager.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -32,7 +32,7 @@
  */
 SmfTransportManager* SmfTransportManager::getInstance ( )
 	{
-	qDebug()<<("Inside SmfTransportManager::getInstance()");
+	qDebug()<<"Inside SmfTransportManager::getInstance()";
 	if(NULL == m_myInstance)
 		m_myInstance = new SmfTransportManager( );
 	return m_myInstance;
@@ -44,7 +44,7 @@
  */
 SmfTransportManager::SmfTransportManager ( )
 	{
-	qDebug()<<("Inside SmfTransportManager::SmfTransportManager()");
+	qDebug()<<"Inside SmfTransportManager::SmfTransportManager()";
 
 	m_systemInfo = new QSystemNetworkInfo(this);
 	
@@ -97,7 +97,7 @@
 		
 		SmfNetworkStatus status;
 		getCurrentNetworkStatus(status);
-		qDebug()<<("getCurrentNetworkStatus() returned = "+QString::number(status));
+		qDebug()<<"getCurrentNetworkStatus() returned = "+QString::number(status);
 		switch(status)
 			{
 			// homenetwork
--- a/smf/smfservermodule/smfserver/transportmgr/smftransportmanagerutil.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfserver/transportmgr/smftransportmanagerutil.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -18,6 +18,7 @@
  *
  */
 
+
 // Include files
 #define EMULATORTESTING
 
@@ -69,30 +70,27 @@
 		m_settings->setValue("Received Data", 0);
 	
 #ifdef EMULATORTESTING
-	qDebug()<<"Using PROXY SETTINGS!!!, change for device settings";
+	qDebug()<<"Using PROXY SETTINGS!!!, change for device testing";
 	
 	// Reading the keys, CSM Stubbed - START
-	QFile file("c:\\data\\DoNotShare.txt");
-	if (!file.open(QIODevice::ReadOnly))
+	QFile winFile("c:\\data\\DoNotShare.txt");
+	if (!winFile.open(QIODevice::ReadOnly))
 		{
 		qDebug()<<"File to read the windows username and password could not be opened, returning!!!";
 		return;
 		}
 	
-	QByteArray arr = file.readAll();
-	QList<QByteArray> list = arr.split(' ');
-	file.close();
+	QByteArray winArr = winFile.readAll();
+	QList<QByteArray> winList = winArr.split(' ');
+	winFile.close();
 	
-	QString username(list[0]);
-	QString password(list[1]);
+	QString httpUser(winList[0]);
+	QString httpPass(winList[1]);
 
     // For proxy settings on emulator only - REMOVE for device
-    QString httpProxy = "10.1.0.224";
-    QString httpPort = "3148";
+    QString httpProxy = "10.1.0.214";
+    QString httpPort = "3128";
     
-	QString httpUser(username);
-	QString httpPass(password);
-
     //==Classes used from Network Module==
     QNetworkProxy proxy;
 
--- a/smf/smfservermodule/smfservermodule.pro	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/smfservermodule.pro	Thu Aug 05 16:48:48 2010 +0530
@@ -1,7 +1,6 @@
 TEMPLATE  = 	subdirs
-
 SUBDIRS   =	util \
+		smfcommon \
 		smfclient \
-		smfserver \
-		tests
+		smfserver
 CONFIG += ordered
--- a/smf/smfservermodule/tests/tests.pro	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-TEMPLATE = subdirs
-
-SUBDIRS = testsmfgetservices
-
-
--- a/smf/smfservermodule/tests/testsmfgetservices/testsmfgetservices.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/**
- * Copyright (c) 2010 Sasken Communication Technologies Ltd.
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of the "Eclipse Public License v1.0"
- * which accompanies  this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html"
- *
- * Initial Contributors:
- * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
- *
- * Contributors:
- * Manasij Roy, Nalina Hariharan
- *
- *
- * Description: Testing the GetServices API of Social Mobile Framework, expected to
- * return a list of installed service providers for a given interface.
- */
-
-#include <QtTest>
-
-#include "smfclient.h"
-
-class TestSmfGetServices : public QObject
-{
-    Q_OBJECT
-
-private slots:
-    void initTestCase();
-    void testConnectToServer();
-    void cleanupTestCase();
-
-private:
-    SmfClient* m_smf;
-};
-
-void TestSmfGetServices::initTestCase()
-{
-    m_smf = new SmfClient();
-}
-
-void TestSmfGetServices::testConnectToServer()
-{
-    QList<SmfProvider> *services = m_smf->GetServices("org.symbian.smf.contacts.fetcher");
-    qDebug() << "SmfClient::GetServices returned " << services->length() << " services.";
-}
-
-void TestSmfGetServices::cleanupTestCase()
-{
-    delete m_smf;
-}
-
-QTEST_MAIN(TestSmfGetServices)
-#include "testsmfgetservices.moc"
-
--- a/smf/smfservermodule/tests/testsmfgetservices/testsmfgetservices.pro	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-# TestSmfGetServices
-
-TEMPLATE = app
-
-TARGET = testsmfgetservices
-
-QT += core \
-      testlib
-
-SOURCES += ./testsmfgetservices.cpp
-
-LIBS += -lsmfclient
-
-!symbian {
-    include(../../../desktop.pri)
-    INCLUDEPATH += $$PWD/../../smfclient/client \
-                   $$PWD/../../smfclient/common \
-}
--- a/smf/smfservermodule/util/qjson/ABLD.BAT	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-@ECHO OFF
-
-REM Bldmake-generated batch file - ABLD.BAT
-REM ** DO NOT EDIT **
-
-perl -S ABLD.PL "\CarbideWorkspace\TestQJson\qjson\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
-if errorlevel==1 goto CheckPerl
-goto End
-
-:CheckPerl
-perl -v >NUL
-if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
-goto End
-
-:End
--- a/smf/smfservermodule/util/qjson/bld.inf	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// ============================================================================
-// * Makefile for building: qjson
-// * Generated by qmake (2.01a) (Qt 4.6.1) on: 2010-05-17T12:46:26
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// * Project:  qjson.pro
-// * Template: subdirs
-// ============================================================================
-
-#define BLD_INF_QJSON_FCB74EBD
-
-#ifndef BLD_INF_SRC_FFD839FE
-	#include "src\bld.inf"
-#endif // BLD_INF_SRC_FFD839FE
-#ifndef BLD_INF_TESTS_02F3D6E9
-	#include "tests\bld.inf"
-#endif // BLD_INF_TESTS_02F3D6E9
-
-prj_platforms
-
-WINSCW GCCE ARMV5 ARMV6
-
-
-prj_mmpfiles
-
-
-prj_extensions
-
--- a/smf/smfservermodule/util/qjson/lib/qjson.prl	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfservermodule/util/qjson/lib/qjson.prl	Thu Aug 05 16:48:48 2010 +0530
@@ -1,5 +1,5 @@
-QMAKE_PRL_BUILD_DIR = D:/CarbideWorkspace/TestQJson/qjson/src/
+QMAKE_PRL_BUILD_DIR = D:/smf/MissingCode/smfrepo/smf/smfservermodule/util/qjson/src
 QMAKE_PRO_INPUT = src.pro
 QMAKE_PRL_TARGET = qjson
-QMAKE_PRL_CONFIG = include_source_dir lex yacc warn_on debug uic resources qt warn_on incremental debug shared stl exceptions rtti create_prl dll shared qtmain moc thread
+QMAKE_PRL_CONFIG = include_source_dir lex yacc warn_on debug uic resources qt warn_on incremental debug shared stl exceptions rtti def_files create_prl dll shared qtmain moc thread
 QMAKE_PRL_VERSION = 0.7.1
--- a/smf/smfservermodule/util/qjson/src/ABLD.BAT	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-@ECHO OFF
-
-REM Bldmake-generated batch file - ABLD.BAT
-REM ** DO NOT EDIT **
-
-perl -S ABLD.PL "\CarbideWorkspace\TestQJson\qjson\src\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
-if errorlevel==1 goto CheckPerl
-goto End
-
-:CheckPerl
-perl -v >NUL
-if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
-goto End
-
-:End
--- a/smf/smfservermodule/util/qjson/src/bld.inf	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-// ============================================================================
-// * Makefile for building: qjson
-// * Generated by qmake (2.01a) (Qt 4.6.1) on: 2010-05-17T16:06:46
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// * Project:  src.pro
-// * Template: lib
-// ============================================================================
-
-#define BLD_INF_SRC_FFD839FE
-
-
-prj_platforms
-
-WINSCW GCCE ARMV5 ARMV6
-
-
-prj_mmpfiles
-
-gnumakefile Makefile_0xEe29a5ee.mk
-src_0xEe29a5ee.mmp
-
-prj_extensions
-
-
-
-prj_exports
-
-parser.h
-parserrunnable.h
-qobjecthelper.h
-serializer.h
-serializerrunnable.h
-qjson_export.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/util/qjson/src/eabi/qjsonu.def	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,60 @@
+EXPORTS
+	_ZN5QJson10Serializer9serializeERK8QVariant @ 1 NONAME
+	_ZN5QJson10Serializer9serializeERK8QVariantP9QIODevicePb @ 2 NONAME
+	_ZN5QJson10SerializerC1Ev @ 3 NONAME
+	_ZN5QJson10SerializerC2Ev @ 4 NONAME
+	_ZN5QJson10SerializerD1Ev @ 5 NONAME
+	_ZN5QJson10SerializerD2Ev @ 6 NONAME
+	_ZN5QJson13QObjectHelper16qobject2qvariantEPK7QObjectRK11QStringList @ 7 NONAME
+	_ZN5QJson13QObjectHelper16qvariant2qobjectERK4QMapI7QString8QVariantEP7QObject @ 8 NONAME
+	_ZN5QJson13QObjectHelperC1Ev @ 9 NONAME
+	_ZN5QJson13QObjectHelperC2Ev @ 10 NONAME
+	_ZN5QJson13QObjectHelperD1Ev @ 11 NONAME
+	_ZN5QJson13QObjectHelperD2Ev @ 12 NONAME
+	_ZN5QJson14ParserRunnable11qt_metacallEN11QMetaObject4CallEiPPv @ 13 NONAME
+	_ZN5QJson14ParserRunnable11qt_metacastEPKc @ 14 NONAME
+	_ZN5QJson14ParserRunnable15parsingFinishedERK8QVariantbRK7QString @ 15 NONAME
+	_ZN5QJson14ParserRunnable16staticMetaObjectE @ 16 NONAME DATA 16
+	_ZN5QJson14ParserRunnable19getStaticMetaObjectEv @ 17 NONAME
+	_ZN5QJson14ParserRunnable3runEv @ 18 NONAME
+	_ZN5QJson14ParserRunnable7setDataERK10QByteArray @ 19 NONAME
+	_ZN5QJson14ParserRunnableC1EP7QObject @ 20 NONAME
+	_ZN5QJson14ParserRunnableC2EP7QObject @ 21 NONAME
+	_ZN5QJson14ParserRunnableD0Ev @ 22 NONAME
+	_ZN5QJson14ParserRunnableD1Ev @ 23 NONAME
+	_ZN5QJson14ParserRunnableD2Ev @ 24 NONAME
+	_ZN5QJson18SerializerRunnable11qt_metacallEN11QMetaObject4CallEiPPv @ 25 NONAME
+	_ZN5QJson18SerializerRunnable11qt_metacastEPKc @ 26 NONAME
+	_ZN5QJson18SerializerRunnable13setJsonObjectERK8QVariant @ 27 NONAME
+	_ZN5QJson18SerializerRunnable15parsingFinishedERK10QByteArraybRK7QString @ 28 NONAME
+	_ZN5QJson18SerializerRunnable16staticMetaObjectE @ 29 NONAME DATA 16
+	_ZN5QJson18SerializerRunnable19getStaticMetaObjectEv @ 30 NONAME
+	_ZN5QJson18SerializerRunnable3runEv @ 31 NONAME
+	_ZN5QJson18SerializerRunnableC1EP7QObject @ 32 NONAME
+	_ZN5QJson18SerializerRunnableC2EP7QObject @ 33 NONAME
+	_ZN5QJson18SerializerRunnableD0Ev @ 34 NONAME
+	_ZN5QJson18SerializerRunnableD1Ev @ 35 NONAME
+	_ZN5QJson18SerializerRunnableD2Ev @ 36 NONAME
+	_ZN5QJson6Parser5parseEP9QIODevicePb @ 37 NONAME
+	_ZN5QJson6Parser5parseERK10QByteArrayPb @ 38 NONAME
+	_ZN5QJson6ParserC1Ev @ 39 NONAME
+	_ZN5QJson6ParserC2Ev @ 40 NONAME
+	_ZN5QJson6ParserD1Ev @ 41 NONAME
+	_ZN5QJson6ParserD2Ev @ 42 NONAME
+	_ZNK5QJson14ParserRunnable10metaObjectEv @ 43 NONAME
+	_ZNK5QJson18SerializerRunnable10metaObjectEv @ 44 NONAME
+	_ZNK5QJson6Parser11errorStringEv @ 45 NONAME
+	_ZNK5QJson6Parser9errorLineEv @ 46 NONAME
+	_ZTIN2yy11json_parserE @ 47 NONAME
+	_ZTIN5QJson14ParserRunnableE @ 48 NONAME
+	_ZTIN5QJson18SerializerRunnableE @ 49 NONAME
+	_ZTVN2yy11json_parserE @ 50 NONAME
+	_ZTVN5QJson14ParserRunnableE @ 51 NONAME
+	_ZTVN5QJson18SerializerRunnableE @ 52 NONAME
+	_ZThn8_N5QJson14ParserRunnable3runEv @ 53 NONAME
+	_ZThn8_N5QJson14ParserRunnableD0Ev @ 54 NONAME
+	_ZThn8_N5QJson14ParserRunnableD1Ev @ 55 NONAME
+	_ZThn8_N5QJson18SerializerRunnable3runEv @ 56 NONAME
+	_ZThn8_N5QJson18SerializerRunnableD0Ev @ 57 NONAME
+	_ZThn8_N5QJson18SerializerRunnableD1Ev @ 58 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/util/qjson/src/qjson_installer.pkg	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,29 @@
+; qjson_installer.pkg generated by qmake at 2010-07-30T14:11:43
+; This file is generated by qmake and should not be modified by the user
+;
+
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"qjson installer"},(0xA000D7CE),0,7,1
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+
+; Manual PKG pre-rules from PRO files
+; Default HW/platform dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+ 
+; Default dependency to Qt libraries
+
+
+"D:/smf/MissingCode/smfrepo/smf/smfservermodule/util/qjson/src/qjson.sis" - "c:\adm\qjson.sis"
+@"D:/Qt/4.6.2/smartinstaller.sis",(0x2002CCCD)
--- a/smf/smfservermodule/util/qjson/src/qjson_template.pkg	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-; qjson_template.pkg generated by qmake at 2010-05-17T16:06:46
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"qjson"},(0xEe29a5ee),0,7,1
-
-; Localised Vendor name
-%{"Vendor"}
-
-; Unique Vendor name
-:"Vendor"
-
-; Manual PKG pre-rules from PRO files
-; Default HW/platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
- 
-; Default dependency to Qt libraries
-(0x2001E61C), 4, 6, 1, {"Qt"}
-
-; DEPLOYMENT
-"d:/S60/devices/S60_5th_Edition_SDK_v0.9/epoc32/release/$(PLATFORM)/$(TARGET)/qjson.dll"    - "!:\sys\bin\qjson.dll"
-
-; Manual PKG post-rules from PRO files
--- a/smf/smfservermodule/util/qjson/tests/Makefile	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-#############################################################################
-# Makefile for building: tests
-# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed May 19 14:07:21 2010
-# Project:  tests.pro
-# Template: app
-# Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile tests.pro
-#############################################################################
-
-####### Compiler, tools and options
-
-CC            = gcc
-CXX           = g++
-DEFINES       = 
-CFLAGS        = -pipe $(DEFINES)
-CXXFLAGS      = -pipe $(DEFINES)
-INCPATH       = -I/usr/share/qt4/mkspecs/linux-g++ -I.
-LINK          = g++
-LFLAGS        = 
-LIBS          = $(SUBLIBS)    
-AR            = ar cqs
-RANLIB        = 
-QMAKE         = /usr/bin/qmake-qt4
-TAR           = tar -cf
-COMPRESS      = gzip -9f
-COPY          = cp -f
-SED           = sed
-COPY_FILE     = $(COPY)
-COPY_DIR      = $(COPY) -r
-STRIP         = strip
-INSTALL_FILE  = install -m 644 -p
-INSTALL_DIR   = $(COPY_DIR)
-INSTALL_PROGRAM = install -m 755 -p
-DEL_FILE      = rm -f
-SYMLINK       = ln -f -s
-DEL_DIR       = rmdir
-MOVE          = mv -f
-CHK_DIR_EXISTS= test -d
-MKDIR         = mkdir -p
-
-####### Output directory
-
-OBJECTS_DIR   = ./
-
-####### Files
-
-SOURCES       =  
-OBJECTS       = 
-DIST          = /usr/share/qt4/mkspecs/common/g++.conf \
-		/usr/share/qt4/mkspecs/common/unix.conf \
-		/usr/share/qt4/mkspecs/common/linux.conf \
-		/usr/share/qt4/mkspecs/qconfig.pri \
-		/usr/share/qt4/mkspecs/features/qt_functions.prf \
-		/usr/share/qt4/mkspecs/features/qt_config.prf \
-		/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
-		/usr/share/qt4/mkspecs/features/default_pre.prf \
-		tests.pro
-QMAKE_TARGET  = tests
-DESTDIR       = 
-TARGET        = tests
-
-first: all
-####### Implicit rules
-
-.SUFFIXES: .o .c .cpp .cc .cxx .C
-
-.cpp.o:
-	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.cc.o:
-	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.cxx.o:
-	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.C.o:
-	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
-
-.c.o:
-	$(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
-
-####### Build rules
-
-all: Makefile $(TARGET)
-
-$(TARGET):  $(OBJECTS)  
-	$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
-
-Makefile: tests.pro  /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/g++.conf \
-		/usr/share/qt4/mkspecs/common/unix.conf \
-		/usr/share/qt4/mkspecs/common/linux.conf \
-		/usr/share/qt4/mkspecs/qconfig.pri \
-		/usr/share/qt4/mkspecs/features/qt_functions.prf \
-		/usr/share/qt4/mkspecs/features/qt_config.prf \
-		/usr/share/qt4/mkspecs/features/exclusive_builds.prf \
-		/usr/share/qt4/mkspecs/features/default_pre.prf
-	$(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile tests.pro
-/usr/share/qt4/mkspecs/common/g++.conf:
-/usr/share/qt4/mkspecs/common/unix.conf:
-/usr/share/qt4/mkspecs/common/linux.conf:
-/usr/share/qt4/mkspecs/qconfig.pri:
-/usr/share/qt4/mkspecs/features/qt_functions.prf:
-/usr/share/qt4/mkspecs/features/qt_config.prf:
-/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
-/usr/share/qt4/mkspecs/features/default_pre.prf:
-qmake:  FORCE
-	@$(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile tests.pro
-
-dist: 
-	@$(CHK_DIR_EXISTS) .tmp/tests1.0.0 || $(MKDIR) .tmp/tests1.0.0 
-	$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/tests1.0.0/ && (cd `dirname .tmp/tests1.0.0` && $(TAR) tests1.0.0.tar tests1.0.0 && $(COMPRESS) tests1.0.0.tar) && $(MOVE) `dirname .tmp/tests1.0.0`/tests1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/tests1.0.0
-
-
-clean:compiler_clean 
-	-$(DEL_FILE) *~ core *.core
-
-
-####### Sub-libraries
-
-distclean: clean
-	-$(DEL_FILE) $(TARGET) 
-	-$(DEL_FILE) Makefile
-
-
-compiler_clean: 
-
-####### Compile
-
-####### Install
-
-install:   FORCE
-
-uninstall:   FORCE
-
-FORCE:
-
--- a/smf/smfservermodule/util/qjson/tests/bld.inf	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-// ============================================================================
-// * Makefile for building: tests
-// * Generated by qmake (2.01a) (Qt 4.6.1) on: 2010-05-17T12:46:26
-// * This file is generated by qmake and should not be modified by the
-// * user.
-// * Project:  tests.pro
-// * Template: app
-// ============================================================================
-
-#define BLD_INF_TESTS_02F3D6E9
-
-
-prj_platforms
-
-WINSCW GCCE ARMV5 ARMV6
-
-
-prj_mmpfiles
-
-gnumakefile Makefile_0xEdfa80af.mk
-tests_0xEdfa80af.mmp
-
-prj_extensions
-
--- a/smf/smfservermodule/util/qjson/tests/tests_template.pkg	Thu Aug 05 16:46:37 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-; tests_template.pkg generated by qmake at 2010-05-17T12:46:26
-; This file is generated by qmake and should not be modified by the user
-;
-
-; Language
-&EN
-
-; SIS header: name, uid, version
-#{"tests"},(0xEdfa80af),1,0,0
-
-; Localised Vendor name
-%{"Vendor"}
-
-; Unique Vendor name
-:"Vendor"
-
-; Manual PKG pre-rules from PRO files
-; Default HW/platform dependencies
-[0x101F7961],0,0,0,{"S60ProductID"}
-[0x102032BE],0,0,0,{"S60ProductID"}
-[0x102752AE],0,0,0,{"S60ProductID"}
-[0x1028315F],0,0,0,{"S60ProductID"}
- 
-
-; Executable and default resource files
-"/S60/devices/S60_5th_Edition_SDK_v0.9/epoc32/release/$(PLATFORM)/$(TARGET)/tests.exe"    - "!:\sys\bin\tests.exe"
-"/S60/devices/S60_5th_Edition_SDK_v0.9/epoc32/data/z/resource/apps/tests.rsc"    - "!:\resource\apps\tests.rsc"
-"/S60/devices/S60_5th_Edition_SDK_v0.9/epoc32/data/z/private/10003a3f/import/apps/tests_reg.rsc"    - "!:\private\10003a3f\import\apps\tests_reg.rsc"
-
-; Manual PKG post-rules from PRO files
--- a/smf/smfsettingsui/PlatfromIndependentSettings.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/PlatfromIndependentSettings.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -17,7 +17,7 @@
 
 #include "PlatfromIndependentSettings.h"
 
-#ifndef __FOR_SYMBIAN__
+#ifndef __FOR_SYMBIAN_CR_USAGE__
 
 #include "SettingsConstants.h"
 
--- a/smf/smfsettingsui/PlatfromIndependentSettings.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/PlatfromIndependentSettings.h	Thu Aug 05 16:48:48 2010 +0530
@@ -16,7 +16,7 @@
 */
 #include "SettingsConstants.h"
 
-#ifndef __FOR_SYMBIAN__
+#ifndef __FOR_SYMBIAN_CR_USAGE__
 
 #ifndef PLATFROMINDEPENDENTSETTINGS_H_
 #define PLATFROMINDEPENDENTSETTINGS_H_
--- a/smf/smfsettingsui/SMFSettings.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/SMFSettings.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -41,7 +41,7 @@
 	createMenuActions();
 	
 	//Instance of CSettingsRepository
-	#ifdef __FOR_SYMBIAN__
+	#ifdef __FOR_SYMBIAN_CR_USAGE__
 		iSettingsRepository = CSettingsRepository::NewL();
 	#else
 		iSettingsRepository = new CPFIndSettings;
@@ -220,7 +220,7 @@
 {
 	QStringList PLuginDetails = GetPluginDetails();
 
-	#ifdef __FOR_SYMBIAN__
+	#ifdef __FOR_SYMBIAN_CR_USAGE__
 		//conversion from QString to Descriptor
 		TPtrC PluginName(static_cast<const TUint16*>(PLuginDetails[0].utf16()), PLuginDetails[0].length());
 		TPtrC PluginStatus(static_cast<const TUint16*>(PLuginDetails[1].utf16()), PLuginDetails[1].length());
@@ -232,7 +232,7 @@
 	iSettingsRepository->SetPluginDetails(PluginName,PluginStatus);
 	
 	
-	#ifdef __FOR_SYMBIAN__
+	#ifdef __FOR_SYMBIAN_CR_USAGE__
 		//conversion from QString to Descriptor
 		TPtrC AthExpValue(static_cast<const TUint16*>(GetAuthExpirationValue().utf16()), GetAuthExpirationValue().length());
 	#else
@@ -241,7 +241,7 @@
 	
 	iSettingsRepository->SetAuthExpirationValue(AthExpValue);
 	
-	#ifdef __FOR_SYMBIAN__
+	#ifdef __FOR_SYMBIAN_CR_USAGE__
 		//conversion from QString to Descriptor
 		TPtrC MaxDataTrValue(static_cast<const TUint16*>(GetMaxDataTransferLimit().utf16()), GetMaxDataTransferLimit().length());
 	#else
@@ -249,7 +249,7 @@
 	#endif
 	iSettingsRepository->SetMaxDataTransferLimit(MaxDataTrValue);
 	
-	#ifdef __FOR_SYMBIAN__
+	#ifdef __FOR_SYMBIAN_CR_USAGE__
 		//conversion from QString to Descriptor
 		TPtrC RoamingStatus(static_cast<const TUint16*>(GetRoamingStatusforDataTransfer().utf16()), GetRoamingStatusforDataTransfer().length());
 	#else
@@ -258,7 +258,7 @@
 		
 	iSettingsRepository->SetRoamingStatusforDataTransfer(RoamingStatus);
 	
-	#ifdef __FOR_SYMBIAN__
+	#ifdef __FOR_SYMBIAN_CR_USAGE__
 	//conversion from QString to Descriptor
 	TPtrC UploadFileType(static_cast<const TUint16*>(GetUploadFileType().utf16()), GetUploadFileType().length());
 	#else
@@ -279,7 +279,7 @@
 {
 	
 	
-	#ifdef __FOR_SYMBIAN__
+	#ifdef __FOR_SYMBIAN_CR_USAGE__
 		QString myString;
 		TBuf<KMaxSettingValue> Buf;
 		//conversion from Descriptor to QString
--- a/smf/smfsettingsui/SMFSettings.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/SMFSettings.h	Thu Aug 05 16:48:48 2010 +0530
@@ -116,7 +116,7 @@
 	 */
     Ui::SMFSettingsClass *ui;
     
-	#ifdef __FOR_SYMBIAN__
+	#ifdef __FOR_SYMBIAN_CR_USAGE__
 		CSettingsRepository* iSettingsRepository;
 	#else
 		CPFIndSettings* iSettingsRepository;
--- a/smf/smfsettingsui/SMFSettings.loc	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/SMFSettings.loc	Thu Aug 05 16:48:48 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-06-22T14:10:38
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- a/smf/smfsettingsui/SMFSettings.rss	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/SMFSettings.rss	Thu Aug 05 16:48:48 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-06-22T14:10:38
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfsettingsui/SMFSettings_installer.pkg	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,29 @@
+; SMFSettings_installer.pkg generated by qmake at 2010-07-30T14:11:43
+; This file is generated by qmake and should not be modified by the user
+;
+
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"SMFSettings installer"},(0xA000D7CE),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+
+; Manual PKG pre-rules from PRO files
+; Default HW/platform dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+ 
+; Default dependency to Qt libraries
+
+
+"D:/smf/MissingCode/smfrepo/smf/smfsettingsui/SMFSettings.sis" - "c:\adm\SMFSettings.sis"
+@"D:/Qt/4.6.2/smartinstaller.sis",(0x2002CCCD)
--- a/smf/smfsettingsui/SMFSettings_reg.rss	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/SMFSettings_reg.rss	Thu Aug 05 16:48:48 2010 +0530
@@ -1,5 +1,5 @@
 // ============================================================================
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-06-22T14:10:38
+// * Generated by qmake (2.01a) (Qt 4.6.2) on: 2010-07-30T14:11:43
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // ============================================================================
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfsettingsui/SMFSettings_template.pkg	Thu Aug 05 16:48:48 2010 +0530
@@ -0,0 +1,33 @@
+; SMFSettings_template.pkg generated by qmake at 2010-07-30T14:11:43
+; This file is generated by qmake and should not be modified by the user
+;
+
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"SMFSettings"},(0xE6313AF5),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+
+; Manual PKG pre-rules from PRO files
+; Default HW/platform dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+ 
+; Default dependency to Qt libraries
+(0x2001E61C), 4, 6, 2, {"Qt"}
+
+; Executable and default resource files
+"/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/release/$(PLATFORM)/$(TARGET)/SMFSettings.exe"    - "!:\sys\bin\SMFSettings.exe"
+"/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/data/z/resource/apps/SMFSettings.rsc"    - "!:\resource\apps\SMFSettings.rsc"
+"/S60/devices/Nokia_Symbian3_SDK_v0.8/epoc32/data/z/private/10003a3f/import/apps/SMFSettings_reg.rsc"    - "!:\private\10003a3f\import\apps\SMFSettings_reg.rsc"
+
+; Manual PKG post-rules from PRO files
--- a/smf/smfsettingsui/SettingsConstants.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/SettingsConstants.h	Thu Aug 05 16:48:48 2010 +0530
@@ -8,9 +8,9 @@
 #ifndef SETTINGSCONSTANTS_H_
 #define SETTINGSCONSTANTS_H_
 
-//#define __FOR_SYMBIAN__
+//#define __FOR_SYMBIAN_CR_USAGE__
 
-#ifdef __FOR_SYMBIAN__
+#ifdef __FOR_SYMBIAN_CR_USAGE__
 	#include <e32base.h>
 	//UID of the Setting Application
 	static const TUid KCRUidSettings = { 0xE6313AF5 };
--- a/smf/smfsettingsui/SettingsRepository.cpp	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/SettingsRepository.cpp	Thu Aug 05 16:48:48 2010 +0530
@@ -17,7 +17,7 @@
 
 #include "SettingsRepository.h"
 
-#ifdef __FOR_SYMBIAN__
+#ifdef __FOR_SYMBIAN_CR_USAGE__
 
 
 #include <e32base.h>
--- a/smf/smfsettingsui/SettingsRepository.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/SettingsRepository.h	Thu Aug 05 16:48:48 2010 +0530
@@ -17,7 +17,7 @@
 
 #include "SettingsConstants.h"
 
-#ifdef __FOR_SYMBIAN__
+#ifdef __FOR_SYMBIAN_CR_USAGE__
 
 #ifndef SETTINGSREPOSITORY_H_
 #define SETTINGSREPOSITORY_H_
--- a/smf/smfsettingsui/ui_SMFSettings.h	Thu Aug 05 16:46:37 2010 +0530
+++ b/smf/smfsettingsui/ui_SMFSettings.h	Thu Aug 05 16:48:48 2010 +0530
@@ -1,8 +1,8 @@
 /********************************************************************************
 ** Form generated from reading UI file 'SMFSettings.ui'
 **
-** Created: Tue Jun 22 13:44:11 2010
-**      by: Qt User Interface Compiler version 4.6.3
+** Created: Fri Jul 30 14:06:09 2010
+**      by: Qt User Interface Compiler version 4.6.2
 **
 ** WARNING! All changes made in this file will be lost when recompiling UI file!
 ********************************************************************************/