# HG changeset patch # User cgandhi # Date 1281007128 -19800 # Node ID 013a02bf2bb042ef1e87ed7e7a1a818b475a4f7e # Parent 106a4bfcb866babb4447e3781d60205a11e1fa66 pushing changes for common libs and trace messages diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/bld.inf --- 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 - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smf.pro --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrclient/bwins/smfcredmgrclientu.def --- 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 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 &) 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 &) 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 QDateTime, class QList, 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 QDateTime, class QList, 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 SmfCredMgrClient::URLList(class QString) const diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrclient/eabi/smfcredmgrclientu.def --- /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 + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.cpp --- 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 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; diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.pro --- 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 \ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_p.cpp --- 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 #include @@ -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 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, ®TokenPtr); + + + // 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); } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient_template.pkg --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclientutil.cpp --- 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 #include "smfcredmgrclientutil.h" namespace smfcredmgrclientutil @@ -113,6 +113,8 @@ QString KeyString(itr.key()); QString ValueString(itr.value()); + qDebug()<<"Key name = "< + #include "smfcredmgrclientdatastruct.h" #include "smfutils.h" -#include +/** + * 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 ); diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrcommon/src/smfutils.cpp --- 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 @@ -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 ); diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdb.h --- 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 #include #include @@ -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); diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrdbuser.h --- 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 #include #include + #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& aArray); + void fetchPluginListL(const TDesC& aRegToken, RPointerArray& 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& aArray); + void readAuthTokensL(const TDesC& aAuthAppId, RArray& 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& aArray); + void readUrlL(const TDesC& aAuthAppId, RPointerArray& 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& aArray); + void readPluginIdL(const TDesC& aAuthAppId, RPointerArray& aArray); private: /** - * constructor + * Constructor + * @param aSession The CSmfCredMgrServerSession instance */ CSmfCredMgrDbUser(CSmfCredMgrServerSession* aSession); diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserver.h --- 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 +// 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(); diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/inc/smfcredmgrserversession.h --- 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 + #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; diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/inc/smfkeystoremanager.h --- 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 #include @@ -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/sis/SmfCredMgrServer_EKA2.sis Binary file smf/smfcredentialmgr/smfcredmgrserver/sis/SmfCredMgrServer_EKA2.sis has changed diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/sis/SmfCredMgrServer_EKA2.sisx Binary file smf/smfcredentialmgr/smfcredmgrserver/sis/SmfCredMgrServer_EKA2.sisx has changed diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/smfcredmgrserver.pro --- 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" } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdb.cpp --- 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 +#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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrdbuser.cpp --- 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 + #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 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& aArray) { - TBuf 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 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 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& 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 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 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(); + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserver.cpp --- 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"); diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserversession.cpp --- 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 #include - #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 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 authAppIDbuf( aAuthenticationProcessData->iAuthAppID->Des()); - + TBuf 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 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 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 authAppIDBuf; iDbUser->readAuthAppIdInRegTokenTable(aParams->iRegistrationToken->Des(), authAppIDBuf); - iDbUser->readAuthTokens(authAppIDBuf, aParams->iAuthTokenArray); + iDbUser->readAuthTokensL(authAppIDBuf, aParams->iAuthTokenArray); } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfcredentialmgr/smfcredmgrserver/src/smfkeystoremanager.cpp --- 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 #include #include + #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 ); } - - - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/bld.inf --- 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 - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/bwins/smfclientu.def --- 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 *) - ??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 * 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 SmfPicture::comments(void) const - ?comments@SmfTrackInfo@@QBE?AV?$QList@VSmfComment@@@@XZ @ 139 NONAME ; class QList 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 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 *, 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 *, 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) - ?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 *, 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 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 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 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 *, 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 *, 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 *, 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 *, 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 *, 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 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 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 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 *) - ?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 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 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 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 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 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 *) - ?upload@SmfGallery@@QAEXPAVSmfPicture@@@Z @ 352 NONAME ; void SmfGallery::upload(class SmfPicture *) - ?uploadFinished@SmfGallery@@IAEXV?$QList@_N@@@Z @ 353 NONAME ; void SmfGallery::uploadFinished(class QList) - ?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 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 - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/eabi/smfclientu.def --- 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 - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/ABLD.BAT --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/bld.inf --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/bwins/smfclientu.def --- 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 *) - ??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 *, 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) - ?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 *, 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 *, 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 *, 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 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 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, 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 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 * 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 *, 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 *, 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 *, 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 *, 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 *) + ?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 *, 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) + ?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 *, 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 * 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 *, 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 *, 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) - ?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 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 *, 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 *, 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 &, 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 &, 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 SmfPlaylist::attribution(void) const - ?setInterestInfo@SmfMusicProfile@@QAEXABV?$QList@VSmfTrackInfo@@@@@Z @ 285 NONAME ; void SmfMusicProfile::setInterestInfo(class QList 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) - ?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 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 *, 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 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 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 const &) - ?setComment@SmfTrackInfo@@QAEXABV?$QList@VSmfComment@@@@@Z @ 352 NONAME ; void SmfTrackInfo::setComment(class QList 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 &) - ?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 *, 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 *) - ?getAll@SmfRelationMgr@@QAE?AV?$QList@VSmfRelationItem@@@@AAVQString@@@Z @ 398 NONAME ; class QList 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 *, 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 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 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 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 *, 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 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 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 *) - ?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 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 SmfGroup::members(void) const - ?followersListAvailable@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 525 NONAME ; void SmfContactFetcher::followersListAvailable(class QList *, 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 *, 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 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 *, 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 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 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 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 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 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 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 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 *, 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 *, 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 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, 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 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 *, 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 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 *, 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 *, 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 *, 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 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) + ?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 *, 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 *, 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 *, enum SmfError, struct SmfResultPage) + ?searchContactFinished@SmfContactFetcher@@IAEXPAV?$QList@VSmfContact@@@@W4SmfError@@USmfResultPage@@@Z @ 209 NONAME ; void SmfContactFetcher::searchContactFinished(class QList *, 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 *, 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 &, int, int) + ?selfActivities@SmfActivityFetcher@@QAEXHH@Z @ 216 NONAME ; void SmfActivityFetcher::selfActivities(int, int) + ?getAllRelations@SmfRelationMgr@@QAE?AV?$QList@VQString@@@@XZ @ 217 NONAME ; class QList 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 *, 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 *, enum SmfError, struct SmfResultPage) + ?trackSearchAvailable@SmfMusicSearch@@IAEXPAV?$QList@VSmfTrackInfo@@@@W4SmfError@@USmfResultPage@@@Z @ 236 NONAME ; void SmfMusicSearch::trackSearchAvailable(class QList *, 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 &) diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/client.pri --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfactivityfetcher.cpp --- 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 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); -} diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfactivityfetcher.h --- 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 -#include -#include - -#include "smfglobal.h" -#include "smfprovider.h" -#include "smfcontact.h" -#include "smfevent.h" -#include "smfactions.h" - -typedef QList 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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfactivityfetcher_p.cpp --- 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 -#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<sendRequest(m_serializedDataToServer,intfName,SmfActivityFriendsActivities,max,m_xtraInfoSerialized); - } - -void SmfActivityFetcherPrivate::filtered(QList 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<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<sendRequest(m_serializedDataToServer,intfName,SmfActivitySelfActivity,max); - } -void SmfActivityFetcherPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error) - { - qDebug()<<"SmfPostProviderPrivate::resultsAvailable"; - qDebug()<<"opcode="; - qDebug()<>*(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"); - } - } - - - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfactivityfetcher_p.h --- 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 -#include - -#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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfclient.cpp --- 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* 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 - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfclient.h --- 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 -#include "smfclientglobal.h" - -#ifdef WRITE_LOG -#include -#include -#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* GetServices(const QString& serviceName); - //QList* GetServices(const QString& serviceName, const QString& providerName); - //QList* 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* m_providerList; - -}; - - -#endif // SMFCLIENT_H diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfclient_p.cpp --- 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* 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; - //De-serialize it into QList - 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) - { - - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfclient_p.h --- 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 -#include -#include -#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* 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* 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfclientqt.cpp --- 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; - } -} diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfclientqt.h --- 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 -#include -#include -#include - -#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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfclientsymbian.cpp --- 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 -#include -#include -#include -#include -#include "smfglobal.h" -#include "smfclientglobal.h" -//testing purpose -#include -#include -#include -//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(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(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(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) - */ - 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<Des()); - iPtrProvider.Copy(reinterpret_cast(aSerializedData.constData()),aSerializedData.length()); - - - - - //convert the QByteArray into TPtr - TPtrC8 ptrSlot0(reinterpret_cast(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<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(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; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfclientsymbian.h --- 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 -#include -#include "smfglobal.h" -#include "smfobserver.h" -#include "smfprovider.h" -#include -#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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfclientsymbiansession.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 -#include -#include -#include -#include -#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 result; - - - -}; -#endif /* SMFCLIENTSYMBIANSESSION_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfcontactfetcher.cpp --- 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; -} diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfcontactfetcher.h --- 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 -#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 SmfContactList; -typedef QList 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfcontactfetcher_p.cpp --- 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 -#include -#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<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<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<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<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<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<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<>( QDataStream &aDataStream, - SmfError &err ) - { - quint32 errInt; - aDataStream>>errInt; - err = (SmfError)errInt; - return aDataStream; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfcontactfetcher_p.h --- 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 -#include -#include - -#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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfgallery.cpp --- 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); - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfgallery.h --- 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 -#include -#include - -#include - - - -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 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 - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfgallery_p.cpp --- 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 -#include -#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<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<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<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<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<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 successList; - SmfError success = (SmfError)errInt; - successList.append(success); - emit m_gallery->uploadFinished(successList); - - } - break; - case SmfPictureMultiUpload: - { - QList successListInt; - QList successList; - reader>>successListInt; - foreach(int success,successListInt) - { - successList.append((SmfError)success); - } - emit m_gallery->uploadFinished(successList); - - } - break; - default: - User::Panic(_L("Gallerprivate="),opcode); - - } -} - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfgallery_p.h --- 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 -#include -#include - -#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 - - - - - - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfmusic.cpp --- 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 - - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfmusic.h --- 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 -#include -#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 SmfMusicProfileList; -typedef QList SmfTrackInfoList; -typedef QList SmfPlaylistList; -typedef QList SmfLyricsList; -typedef QList 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 - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfmusic_p.cpp --- 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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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"); - } - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfmusic_p.h --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfpostprovider.cpp --- 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 -#include - - /** - * 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 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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfpostprovider.h --- 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 -#include -#include -#include - -#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 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfpostprovider_p.cpp --- 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 -#include -#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<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<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<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<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<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<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 - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfpostprovider_p.h --- 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 -#include -#include - -#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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfrelationmgr.cpp --- 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<>( 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 SmfRelationMgr::getAll(SmfRelationId& relation) - { - return m_private->getAll(relation); - } -QList SmfRelationMgr::getAllRelations() - { - return m_private->getAllRelations(); - } -SmfError SmfRelationMgr::Delete(SmfRelationId& relation) - { - return m_private->Delete(relation); - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfrelationmgr.h --- 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 getAll(SmfRelationId& relation); - - /** list of all relations */ - QList getAllRelations(); - - /** delete a particular relation*/ - SmfError Delete(SmfRelationId& relation); - - private: - //private impl wrapper - SmfRelationMgrPrivate* m_private; - }; - -#endif // SMFRELATIONMGR_H diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfrelationmgr_p.cpp --- 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 -#include -#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<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<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<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<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<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<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<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 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 relationItemList; - readStream>>relationItemList; - return relationItemList; - } - else - { - User::Panic(_L("DSM err="),err); - } - } -QList 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 relationIdList; - readStream>>relationIdList; - return relationIdList; - } - else - { - User::Panic(_L("DSM err="),err); - } - } -SmfError SmfRelationMgrPrivate::Delete(SmfRelationId& relation) - { - - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/client/smfrelationmgr_p.h --- 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 -#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 getAll(SmfRelationId& relation); - - /** list of all relations */ - QList 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; - }; diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/common.pri --- 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 -} diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfactions.cpp --- 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<m_id; - aDataStream<m_thumbnail; - aDataStream<m_caption; - aDataStream<m_type; - aDataStream<m_objData; - aDataStream<m_link; - aDataStream<m_time; - aDataStream<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 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& 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<m_id; - aDataStream<m_title; - aDataStream<m_details; - aDataStream<m_author; - aDataStream<m_actionName; - aDataStream<m_activities; - aDataStream<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; - } - - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfactions.h --- 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 -#include -#include -#include -#include -#include -#include -#include - -#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 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 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& 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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfactions_p.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 -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#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 m_activities; - SmfActivityObject m_targetObj; - }; - -#endif /* SMFACTIONS_P_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfalbum.cpp --- 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 -#include - - -/** - * 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<m_name; - - // Serialize d->m_image - aDataStream<m_image; - - // Serialize d->m_artists - aDataStream<m_artists; - - // Serialize d->m_albumId - aDataStream<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; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfalbum.h --- 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 -#include -#include -#include -#include - -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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfalbum_p.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 -#include -#include - -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfartists.cpp --- 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 -#include - -/** - * 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<m_image; - - // Serialize d->m_names - aDataStream<m_names; - - // Serialize d->m_url - aDataStream<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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfartists.h --- 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 -#include -#include -#include -#include -#include - -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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfartists_p.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 -#include -#include -#include - -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfclientglobal.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 -#include -#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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfcomment.cpp --- 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<m_text; - - // Serialize d->m_timeStamp - aDataStream<m_timeStamp; - - // Serialize d->m_commentId - aDataStream<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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfcomment.h --- 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 -#include -#include -#include "smfclientglobal.h" -#include - -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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfcomment_p.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 -#include - -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfcontact.cpp --- 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 -#include - -#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(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<(); - aDataStream<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfcontact.h --- 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 -#include -#include -#include -#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 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 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) - -//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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfcontact_p.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 - -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfevent.cpp --- 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 -#include - -/** - * 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<m_name; - - // Serialize d->m_dateTime - aDataStream<m_dateTime; - - // Serialize d->m_duration - aDataStream<m_duration; - - // Serialize d->m_artists - aDataStream<m_artists; - - // Serialize d->m_venue - aDataStream<m_venue; - - // Serialize d->m_url - aDataStream<m_url; - - // Serialize d->m_eventId - aDataStream<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; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfevent.h --- 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 -#include -#include -#include "smfclientglobal.h" -#include - -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 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 SmfEventList; - -// Make the class SmfEvent known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfEvent) -Q_DECLARE_METATYPE(QList) - - -#endif /* SMFEVENT_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfevent_p.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 -#include -#include -#include - -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfglobal.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 -#endif - -#include -#include -#include -#include -/** - * 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfgroup.cpp --- 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* 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 SmfGroup::members( ) const - { - return *(d->m_members) ; - } - - /** - * Method to set members - * - */ - void SmfGroup::setMembers(QList* 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<>( 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; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfgroup.h --- 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 -#include -#include "smfclientglobal.h" -#include -#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* 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 members( ) const; - - /** - * Method to set members - * - */ - void setMembers(QList* 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 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 SmfGroupList; - -// Make the class SmfGroup known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfGroup) -Q_DECLARE_METATYPE(QList) - -#endif /* SMFGROUP_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfgroup_p.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 -#include - -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 *m_members; // members in the group - QString m_groupName; - QString m_groupId; - // Other details to be added -}; - - -#endif /* SMFGROUP_P_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smflocation.cpp --- 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 -#include - -/** - * 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<m_name; - - // Serialize d->m_city - aDataStream<m_city; - - // Serialize d->m_street - aDataStream<m_street; - - // Serialize d->m_zipcode - aDataStream<m_zipcode; - - // Serialize d->m_country - aDataStream<m_country; - - // Serialize d->m_geo - aDataStream<m_geo; - - // Serialize d->m_url - aDataStream<m_url; - - // Serialize d->m_placeId - aDataStream<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; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smflocation.h --- 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 -#include // Qt mobility class -#include -#include -#include -#include - -// 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 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 SmfLocationList; - -// Make the class SmfLocation known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfLocation) -Q_DECLARE_METATYPE(QList) - -#endif /* SMFLOCATION_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smflocation_p.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 -#include // Qt mobility class -#include - -// 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smflyrics.cpp --- 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 -#include - -/** - * 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<m_lyrics; - - // Serialize d->m_language - aDataStream<m_language; - - // Serialize d->m_releaseYr - aDataStream<m_releaseYr; - - // Serialize d->m_lyricsId - aDataStream<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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smflyrics.h --- 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 -#include -#include -#include -#include - -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 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 SmfLyricsList; - -// Make the class SmfLyrics known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfLyrics) -Q_DECLARE_METATYPE(QList) - - -#endif /* SMFLYRICS_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smflyrics_p.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 -#include - -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfmusicfingerprint.cpp --- 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 -#include - -/** - * 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<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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfmusicfingerprint.h --- 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 -#include -#include "smfclientglobal.h" -#include - -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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfmusicfingerprint_p.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 - -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfmusicprofile.cpp --- 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 -#include - -/** - * 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 SmfMusicProfile::musicUsageInfo( ) const - { - return d->m_usage; - } - -/** - * Method to get the user's interested tracks - * @return The users interested track list - */ -QList SmfMusicProfile::interestInfo( ) const - { - return d->m_interest; - } - -/** - * Method to get the user events as list of SmfEvents - * @return The list of events - */ -QList 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& 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& 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 &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<m_usage; - - // Serialize d->m_interest - aDataStream<m_interest; - - // Serialize d->m_events - aDataStream<m_events; - - // Serialize d->m_profileId - aDataStream<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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfmusicprofile.h --- 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 -#include -#include "smfclientglobal.h" -#include - -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 musicUsageInfo( ) const; - - /** - * Method to get the user's interested tracks - * @return The users interested track list - */ - QList interestInfo( ) const; - - /** - * Method to get the user events as list of SmfEvents - * @return The list of events - */ - QList 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& aUsage ); - - /** - * Method to set the user's interested tracks - * @param aInterest The users new interested track list - */ - void setInterestInfo( const QList& aInterest ); - - /** - * Method to set the user events as list of SmfEvents - * @param aList The list of events - */ - void setUserEvents( const QList &aList ); - - /** - * Method to set the id of the music profile - * @param aId The ID value - */ - void setId( const QString &aId ); - -private: - QSharedDataPointer 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 SmfMusicProfileList; - -// Make the class SmfMusicProfile known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfMusicProfile) -Q_DECLARE_METATYPE(QList) - -#endif /* SMFMUSICPROFILE_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfmusicprofile_p.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 -#include -#include - -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 m_usage; // usage tracks - QList m_interest; // interested tracks - QList m_events; // events list - QString m_profileId; // profile Id - -}; - -#endif /* SMFMUSICPROFILE_P_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfmusicrating.cpp --- 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<m_rating; - - // Serialize d->m_max - aDataStream<m_max; - - // Serialize d->m_min - aDataStream<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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfmusicrating.h --- 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 -#include "smfclientglobal.h" -#include - -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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfmusicrating_p.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 -#include - -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfobserver.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 -/** - * 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpicture.cpp --- 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 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<m_photoId; - - // Serialize d->m_owner - aDataStream<m_owner; - - // Serialize d->m_title - aDataStream<m_title; - - // Serialize d->m_description - aDataStream<m_description; - - // Serialize d->m_picVisibility - aDataStream<m_picVisibility; - - // Serialize d->m_postedOn - aDataStream<m_postedOn; - - // Serialize d->m_comments - aDataStream<m_comments; - - // Serialize d->m_tags - aDataStream<m_tags; - - // Serialize d->m_url - aDataStream<m_url; - - // Serialize d->m_picture - aDataStream<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; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpicture.h --- 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 -#include -#include -#include -#include -#include -#include -#include -#include - -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 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 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 SmfPictureList; - -// Make the class SmfPicture known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfPicture) -Q_DECLARE_METATYPE(QList) - -#endif /* SMFPICTURE_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpicture_p.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 -#include -#include -#include -#include -#include - -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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpicturealbum.cpp --- 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 -#include - -/** - * 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 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; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpicturealbum.h --- 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include - -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 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 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 SmfPictureAlbumList; - -// Make the class SmfPictureAlbum known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfPictureAlbum) -Q_DECLARE_METATYPE(QList) - -#endif /* SMFPICTUREALBUM_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpicturealbum_p.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 -#include -#include -#include -#include -#include - -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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfplaylist.cpp --- 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 -#include - -/** - * 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 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 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 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& 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& 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 &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<m_version; - - // Serialize d->m_title - aDataStream<m_title; - - // Serialize d->m_author - aDataStream<m_author; - - // Serialize d->m_comments - aDataStream<m_comments; - - // Serialize d->m_info - aDataStream<m_info; - - // Serialize d->m_location - aDataStream<m_location; - - // Serialize d->m_playlistId - aDataStream<m_playlistId; - - // Serialize d->m_image - aDataStream<m_image; - - // Serialize d->m_creationDate - aDataStream<m_creationDate; - - // Serialize d->m_license - aDataStream<m_license; - - // Serialize d->m_attribution - aDataStream<m_attribution; - - // Serialize d->m_metadata - aDataStream<m_metadata; - - // Serialize d->m_extension - aDataStream<m_extension; - - // Serialize d->m_trackList - aDataStream<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; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfplaylist.h --- 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 -#include -#include -#include - -#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 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 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 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& 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& 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 &aList ); - -private: - QSharedDataPointer 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 SmfPlaylistList; - -// Make the class SmfPlaylist known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfPlaylist) -Q_DECLARE_METATYPE(QList) - -#endif /* SMFPLAYLIST_H_ */ - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfplaylist_p.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 -#include - -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 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 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 m_trackList;// list of tracks in the playlist - -}; - -#endif /* SMFPLAYLIST_P_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpluginutil.cpp --- 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 - -// 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 &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 &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 - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpluginutil.h --- 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 -#include -#include -#include -#include - -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 &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 &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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpost.cpp --- 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<>( 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; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpost.h --- 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 -#include -#include -#include -#include -#include -#include - -#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 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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfpost_p.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 -#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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfprovider.cpp --- 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 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<>(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; - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfprovider.h --- 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 -#include -#include -#include -#include - -#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 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 SmfProviderList; - -// Make the class SmfProvider known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfProvider) -Q_DECLARE_METATYPE(QList) - -#endif // SMFPROVIDER_H diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfsubtitle.cpp --- 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 -#include - -/** - * 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<m_subtitle; - - // Serialize m_language - aDataStream<m_language; - - // Serialize m_frameRate - aDataStream<m_frameRate; - - // Serialize m_duration - aDataStream<m_duration; - - // Serialize m_releaseYr - aDataStream<m_releaseYr; - - // Serialize m_subtitleId - aDataStream<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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfsubtitle.h --- 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 -#include -#include -#include "smfclientglobal.h" -#include - -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 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 SmfSubtitleList; - -// Make the class SmfSubtitle known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfSubtitle) -Q_DECLARE_METATYPE(QList) - -#endif /* SMFSUBTITLE_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfsubtitle_p.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 -#include - -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smftrackinfo.cpp --- 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 -#include - -/** - * 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 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 &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<m_trackId; - - // Serialize d->m_title - aDataStream<m_title; - - // Serialize d->m_album - aDataStream<m_album; - - // Serialize d->m_artists - aDataStream<m_artists; - - // Serialize d->m_genre - aDataStream<m_genre; - - // Serialize d->m_tags - aDataStream<m_tags; - - // Serialize d->m_year - aDataStream<m_year; - - // Serialize d->m_rating - aDataStream<m_rating; - - // Serialize d->m_comments - aDataStream<m_comments; - - // Serialize d->m_duration - aDataStream<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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smftrackinfo.h --- 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 -#include -#include -#include -#include "smfalbum.h" -#include -#include -#include -#include -#include - -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 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 &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 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 SmfTrackInfoList; - -// Make the class SmfTrackInfo known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfTrackInfo) -Q_DECLARE_METATYPE(QList) - -#endif /* SMFTRACKINFO_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smftrackinfo_p.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 -#include -#include -#include -#include - -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 m_comments; // comments - QTime m_duration; // duration - -}; - -#endif /* SMFTRACKINFO_P_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfurl.cpp --- 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 - -#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<m_href; - - // Serialize d->m_rel - aDataStream<m_rel; - - // Serialize d->m_type - aDataStream<m_type; - - // Serialize d->m_hreflang - aDataStream<m_hreflang; - - // Serialize d->m_title - aDataStream<m_title; - - // Serialize d->m_length - aDataStream<m_length; - - // Serialize d->m_id - aDataStream<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; - } - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfurl.h --- 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 -#include -#include -#include - -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 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 SmfUrlList; - -// Make the class SmfUrl known to QMetaType, so that as to register it. -Q_DECLARE_METATYPE(SmfUrl) -Q_DECLARE_METATYPE(QList) - -#endif /* SMFURL_H_ */ - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/common/smfurl_p.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 -#include - -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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/eabi/smfclientu.def --- /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 + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/main.cpp --- 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 -#include - -int main(int argc, char *argv[]) -{ - QCoreApplication a(argc, argv); - - return a.exec(); -} diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfactivityfetcher.cpp --- /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 +#include + +#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 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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfactivityfetcher.h --- /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 +#include +#include + +// 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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfactivityfetcher_p.cpp --- /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 + +#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<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<sendRequest(m_serializedDataToServer, intfName, + SmfActivityFriendsActivities, max); + } + +void SmfActivityFetcherPrivate::filtered(QList 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<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<sendRequest(m_serializedDataToServer, intfName, + SmfActivityCustomRequest, maxAllocation); + } + +void SmfActivityFetcherPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error) + { + qDebug()<<"SmfActivityFetcherPrivate::resultsAvailable"; + qDebug()<<"opcode = "<>*m_entries; + qDebug()<<"m_entries.count = "<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 = "< +#include +#include +#include + +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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfclient.cpp --- /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 + +#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* 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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfclient.h --- /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 + +#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* GetServices(const QString& serviceName); + + // ToDo :- More overloaded APIs will be provided later + //QList* GetServices(const QString& serviceName, const QString& providerName); + //QList* 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* m_providerList; + + }; + +#endif // SMFCLIENT_H diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfclient.pkg --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfclient.pro --- 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 +} diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfclient_p.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 + +#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* 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; + + //De-serialize it into QList + 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) + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfclient_p.h --- /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 +#include +#include + +#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* 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* 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfclientqt.cpp --- /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; + } +} diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfclientqt.h --- /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 +#include +#include +#include + +#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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfclientsymbian.cpp --- /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 +#include +#include +#include +#include +#include + +#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 = "<(iSession.iDataPtr8.Ptr()),iSession.iDataPtr8.Length()); + qDebug()<<"receivedData size = "<>errInt; + qDebug()<<"errInt = "<>data; + qDebug()<<"data size = "<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 = "<(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 = "<(symbianBuf.Ptr()),symbianBuf.Length()); + return receivedData; + } + +QByteArray CSmfClientSymbian::sendDSMSyncRequest(SmfRequestTypeID requestType,QByteArray& aSerializedData,SmfError& aErr,TInt maxSize) + { + Q_UNUSED(aErr) + + qDebug()<<"CSmfClientSymbian::sendDSMSyncRequest for : "<(symbianBuf.Ptr()),symbianBuf.Length()); + qDebug()<<"receivedData size="<) + * 4. Xtra information if any + */ + if(iProviderBuf8) + { + delete iProviderBuf8; + iProviderBuf8 = NULL; + } + iProviderBuf8 = HBufC8::NewL(aSerializedData.size()); + iPtrProvider8.Set(iProviderBuf8->Des()); + iPtrProvider8.Copy(reinterpret_cast(aSerializedData.constData()),aSerializedData.length()); + + //convert the QByteArray into TPtr + TPtrC8 ptrSlot0(reinterpret_cast(aSerializedData.constData()),aSerializedData.length()); + qDebug()<<"ptrSlot0 size = "<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 = "<Des()); + iPtrProvider8.Copy(reinterpret_cast(aSerializedData.constData()),aSerializedData.length()); + + //convert the QByteArray into TPtr + TPtrC8 ptrSlot0(reinterpret_cast(aSerializedData.constData()),aSerializedData.length()); + qDebug()<<"ptrSlot0 size = "<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 = "<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 = "< +#include +#include +#include +#include +#include + +#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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfclientsymbiansession.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 +#include +#include +#include +#include +#include + +/** + * 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 result; + + }; + +#endif /* SMFCLIENTSYMBIANSESSION_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfcontactfetcher.cpp --- /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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfcontactfetcher.h --- /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 +#include +#include +#include +#include + +// 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfcontactfetcher_p.cpp --- /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 + +#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<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<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<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<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<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<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<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 = "<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 = "<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 = "<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 = "<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 = "<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 = "<count(); + + emit m_contactFetcher->searchInGroupFinished(m_contactList,error,page); + } + break; + + case SmfContactCustomRequest: + { + int operationId; + QByteArray *data = new QByteArray; + reader>>operationId; + reader>>*data; + + qDebug()<<"operationId = "< +#include +#include +#include +#include +#include + +// 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfgallery.cpp --- /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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfgallery.h --- /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 +#include +#include +#include +#include + +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 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 + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfgallery_p.cpp --- /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 +#include +#include +#include + +#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<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<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<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<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<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<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<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 = "<>*(m_albums); + qDebug()<<" Albums count = "<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 = "<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 = "<descriptionAvailable(str,error); + break; + } + + case SmfPictureUpload: + case SmfPicturePostComment: + { + int errInt; + reader>>errInt; + qDebug()<<"success = "< successList; + SmfError success = (SmfError)errInt; + successList.append(success); + emit m_gallery->uploadFinished(successList); + break; + } + + case SmfPictureMultiUpload: + { + QList successListInt; + QList 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 = "< +#include +#include +#include +#include + +// 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfmusic.cpp --- /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 +#include +#include + +#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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfmusic.h --- /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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfmusic_p.cpp --- /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 +#include +#include +#include +#include + +#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<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<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<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<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<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 = "<>*(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 = "<>*(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 = "<getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + m_argFlag = 1; + write<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<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<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<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 = "<getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + m_argFlag = 1; + write<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<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<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 = "< +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfpostprovider.cpp --- /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 +#include + +#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 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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfpostprovider.h --- /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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfpostprovider_p.cpp --- /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 + +#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 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 + QDataStream reader(&data,QIODevice::ReadOnly); + QVector 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<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<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<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<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<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<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<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<sendRequest(m_serializedDataToServer, intfName, + SmfContactPostCustomRequest, maxAllocation); + } + +/** +* From smfobserver +*/ +void SmfPostProviderPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error) + { + qDebug()<<"Inside SmfPostProviderPrivate::resultsAvailable()"; + qDebug()<<"opcode = "<>*(m_postList); + + qDebug()<<"postList.count="<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 = "<postFinished(success); + } + break; + + case SmfContactPostCustomRequest: + { + int operationId; + QByteArray *data = new QByteArray; + reader>>operationId; + reader>>*data; + qDebug()<<"operationId = "< +#include +#include +#include +#include +#include + +// 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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfrelationmgr.cpp --- /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<>( 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 SmfRelationMgr::getAll(SmfRelationId& relation) + { + return m_private->getAll(relation); + } + +QList SmfRelationMgr::getAllRelations() + { + return m_private->getAllRelations(); + } + +SmfError SmfRelationMgr::Delete(SmfRelationId& relation) + { + return m_private->Delete(relation); + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfrelationmgr.h --- /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 +#include +#include + +// 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 getAll(SmfRelationId& relation); + + /** list of all relations */ + QList getAllRelations(); + + /** delete a particular relation*/ + SmfError Delete(SmfRelationId& relation); + +private: + SmfRelationMgrPrivate* m_private; //private impl wrapper + }; + +#endif // SMFRELATIONMGR_H diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfrelationmgr_p.cpp --- /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<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<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<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<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<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<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<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 SmfRelationMgrPrivate::getAll(SmfRelationId& relation) + { + m_dataForDSM.clear(); + + QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly); + writeStream< 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 SmfRelationMgrPrivate::getAllRelations() + { + m_dataForDSM.clear(); + + m_dataFromDSM.clear(); + SmfError err = SmfNoError; + int maxAlloc = 1000*maxRelationItems; + QList 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<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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfrelationmgr_p.h --- /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 +#include +#include +#include +#include + +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 getAll(SmfRelationId& relation); + + /** list of all relations */ + QList 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/bwins/smfcommonu.def --- /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 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 SmfPlaylist::metadata(void) const + ?extension@SmfPlaylist@@QBE?AV?$QMap@VQString@@VQVariant@@@@XZ @ 16 NONAME ; class QMap 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 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 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 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 &) + ?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 SmfPlaylist::comments(void) const + ??0SmfGroup@@QAE@PAV?$QList@VSmfContact@@@@@Z @ 118 NONAME ; SmfGroup::SmfGroup(class QList *) + ?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 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 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 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 SmfTrackInfo::comments(void) const + ?setComment@SmfTrackInfo@@QAEXABV?$QList@VSmfComment@@@@@Z @ 210 NONAME ; void SmfTrackInfo::setComment(class QList 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 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 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 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 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 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 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 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 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 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 *) + ??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 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 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 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 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 &) + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/eabi/smfcommonu.def --- /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 + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfactions.cpp --- /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<m_id; + aDataStream<m_thumbnail; + aDataStream<m_caption; + aDataStream<m_type; + aDataStream<m_objData; + aDataStream<m_link; + aDataStream<m_time; + aDataStream<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 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& 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<m_id; + aDataStream<m_title; + aDataStream<m_details; + aDataStream<m_author; + aDataStream<m_actionName; + aDataStream<m_activities; + aDataStream<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; + } + + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfactions.h --- /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 +#include +#include +#include +#include +#include +#include +#include + +#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 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 SmfActivityObjectList; + +// Make the class SmfActivityObject known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfActivityObject) +Q_DECLARE_METATYPE(QList) + + +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 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 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& 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 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 SmfActivityEntryList; + +// Make the class SmfActivityEntry known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfActivityEntry) +Q_DECLARE_METATYPE(QList) + +#endif /* SMFACTIONS_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfactions_p.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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfalbum.cpp --- /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 +#include + + +/** + * 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<m_name; + + // Serialize d->m_image + aDataStream<m_image; + + // Serialize d->m_artists + aDataStream<m_artists; + + // Serialize d->m_albumId + aDataStream<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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfalbum.h --- /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 +#include +#include +#include +#include + +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 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) + +#endif /* SMFALBUM_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfalbum_p.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 +#include +#include + +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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfartists.cpp --- /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 +#include + +/** + * 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<m_image; + + // Serialize d->m_names + aDataStream<m_names; + + // Serialize d->m_url + aDataStream<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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfartists.h --- /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 +#include +#include +#include +#include +#include + +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 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) + +#endif /* SMFARTISTS_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfartists_p.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 +#include +#include +#include + +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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfclientglobal.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 +#include + +#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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfcomment.cpp --- /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<m_text; + + // Serialize d->m_timeStamp + aDataStream<m_timeStamp; + + // Serialize d->m_commentId + aDataStream<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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfcomment.h --- /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 +#include +#include +#include "smfclientglobal.h" +#include + +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 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) + +#endif /* SMFCOMMENT_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfcomment_p.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 +#include + +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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfcommon.pkg --- /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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfcommon.pro --- /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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfcontact.cpp --- /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 +#include + +#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(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<(); + aDataStream<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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<>( 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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfcontact.h --- /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 +#include +#include +#include + +#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 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 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) + +//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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfcontact_p.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 + +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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfevent.cpp --- /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 +#include + +/** + * 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<m_name; + + // Serialize d->m_dateTime + aDataStream<m_dateTime; + + // Serialize d->m_duration + aDataStream<m_duration; + + // Serialize d->m_artists + aDataStream<m_artists; + + // Serialize d->m_venue + aDataStream<m_venue; + + // Serialize d->m_url + aDataStream<m_url; + + // Serialize d->m_eventId + aDataStream<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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfevent.h --- /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 +#include +#include +#include "smfclientglobal.h" +#include + +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 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 SmfEventList; + +// Make the class SmfEvent known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfEvent) +Q_DECLARE_METATYPE(QList) + + +#endif /* SMFEVENT_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfevent_p.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 +#include +#include +#include + +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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfglobal.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 +#include +#include +#include + +#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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfgroup.cpp --- /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* 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 SmfGroup::members( ) const + { + return *(d->m_members) ; + } + +/** + * Method to set members + * + */ +void SmfGroup::setMembers(QList* 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<>( QDataStream &aDataStream, + SmfGroup &aGroup) + { + QList 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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfgroup.h --- /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 +#include +#include + +#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* 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 members( ) const; + + /** + * Method to set members + * + */ + void setMembers(QList* 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 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 SmfGroupList; + +// Make the class SmfGroup known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfGroup) +Q_DECLARE_METATYPE(QList) + +#endif /* SMFGROUP_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfgroup_p.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 +#include + +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 *m_members; // members in the group + QString m_groupName; + QString m_groupId; + // Other details to be added +}; + + +#endif /* SMFGROUP_P_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smflocation.cpp --- /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 +#include + +/** + * 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<m_name; + + // Serialize d->m_city + aDataStream<m_city; + + // Serialize d->m_street + aDataStream<m_street; + + // Serialize d->m_zipcode + aDataStream<m_zipcode; + + // Serialize d->m_country + aDataStream<m_country; + + // Serialize d->m_geo + aDataStream<m_geo; + + // Serialize d->m_url + aDataStream<m_url; + + // Serialize d->m_placeId + aDataStream<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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smflocation.h --- /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 +#include // Qt mobility class +#include +#include +#include +#include + +// 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 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 SmfLocationList; + +// Make the class SmfLocation known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfLocation) +Q_DECLARE_METATYPE(QList) + +#endif /* SMFLOCATION_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smflocation_p.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 +#include // Qt mobility class +#include + +// 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smflyrics.cpp --- /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 +#include + +/** + * 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<m_lyrics; + + // Serialize d->m_language + aDataStream<m_language; + + // Serialize d->m_releaseYr + aDataStream<m_releaseYr; + + // Serialize d->m_lyricsId + aDataStream<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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smflyrics.h --- /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 +#include +#include +#include +#include + +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 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 SmfLyricsList; + +// Make the class SmfLyrics known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfLyrics) +Q_DECLARE_METATYPE(QList) + + +#endif /* SMFLYRICS_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smflyrics_p.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 +#include + +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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfmusicfingerprint.cpp --- /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 +#include + +/** + * 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<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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfmusicfingerprint.h --- /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 +#include +#include "smfclientglobal.h" +#include + +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 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) + +#endif /* SMFMUSICFINGERPRINT_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfmusicfingerprint_p.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 + +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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfmusicprofile.cpp --- /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 +#include + +/** + * 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 SmfMusicProfile::musicUsageInfo( ) const + { + return d->m_usage; + } + +/** + * Method to get the user's interested tracks + * @return The users interested track list + */ +QList SmfMusicProfile::interestInfo( ) const + { + return d->m_interest; + } + +/** + * Method to get the user events as list of SmfEvents + * @return The list of events + */ +QList 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& 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& 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 &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<m_usage; + + // Serialize d->m_interest + aDataStream<m_interest; + + // Serialize d->m_events + aDataStream<m_events; + + // Serialize d->m_profileId + aDataStream<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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfmusicprofile.h --- /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 +#include +#include "smfclientglobal.h" +#include + +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 musicUsageInfo( ) const; + + /** + * Method to get the user's interested tracks + * @return The users interested track list + */ + QList interestInfo( ) const; + + /** + * Method to get the user events as list of SmfEvents + * @return The list of events + */ + QList 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& aUsage ); + + /** + * Method to set the user's interested tracks + * @param aInterest The users new interested track list + */ + void setInterestInfo( const QList& aInterest ); + + /** + * Method to set the user events as list of SmfEvents + * @param aList The list of events + */ + void setUserEvents( const QList &aList ); + + /** + * Method to set the id of the music profile + * @param aId The ID value + */ + void setId( const QString &aId ); + +private: + QSharedDataPointer 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 SmfMusicProfileList; + +// Make the class SmfMusicProfile known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfMusicProfile) +Q_DECLARE_METATYPE(QList) + +#endif /* SMFMUSICPROFILE_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfmusicprofile_p.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 +#include +#include + +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 m_usage; // usage tracks + QList m_interest; // interested tracks + QList m_events; // events list + QString m_profileId; // profile Id + +}; + +#endif /* SMFMUSICPROFILE_P_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfmusicrating.cpp --- /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<m_rating; + + // Serialize d->m_max + aDataStream<m_max; + + // Serialize d->m_min + aDataStream<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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfmusicrating.h --- /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 +#include "smfclientglobal.h" +#include + +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 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) + +#endif /* SMFMUSICRATING_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfmusicrating_p.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 +#include + +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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfobserver.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 + +#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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpicture.cpp --- /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 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<m_photoId; + + // Serialize d->m_owner + aDataStream<m_owner; + + // Serialize d->m_title + aDataStream<m_title; + + // Serialize d->m_description + aDataStream<m_description; + + // Serialize d->m_picVisibility + aDataStream<m_picVisibility; + + // Serialize d->m_postedOn + aDataStream<m_postedOn; + + // Serialize d->m_comments + aDataStream<m_comments; + + // Serialize d->m_tags + aDataStream<m_tags; + + // Serialize d->m_url + aDataStream<m_url; + + // Serialize d->m_picture + aDataStream<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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpicture.h --- /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 +#include +#include +#include +#include +#include +#include +#include +#include + +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 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 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 SmfPictureList; + +// Make the class SmfPicture known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfPicture) +Q_DECLARE_METATYPE(QList) + +#endif /* SMFPICTURE_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpicture_p.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 +#include +#include +#include +#include +#include + +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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpicturealbum.cpp --- /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 +#include + +/** + * 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 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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpicturealbum.h --- /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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 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 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 SmfPictureAlbumList; + +// Make the class SmfPictureAlbum known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfPictureAlbum) +Q_DECLARE_METATYPE(QList) + +#endif /* SMFPICTUREALBUM_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpicturealbum_p.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 +#include +#include +#include +#include +#include + +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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfplaylist.cpp --- /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 +#include + +/** + * 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 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 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 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& 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& 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 &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<m_version; + + // Serialize d->m_title + aDataStream<m_title; + + // Serialize d->m_author + aDataStream<m_author; + + // Serialize d->m_comments + aDataStream<m_comments; + + // Serialize d->m_info + aDataStream<m_info; + + // Serialize d->m_location + aDataStream<m_location; + + // Serialize d->m_playlistId + aDataStream<m_playlistId; + + // Serialize d->m_image + aDataStream<m_image; + + // Serialize d->m_creationDate + aDataStream<m_creationDate; + + // Serialize d->m_license + aDataStream<m_license; + + // Serialize d->m_attribution + aDataStream<m_attribution; + + // Serialize d->m_metadata + aDataStream<m_metadata; + + // Serialize d->m_extension + aDataStream<m_extension; + + // Serialize d->m_trackList + aDataStream<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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfplaylist.h --- /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 +#include +#include +#include + +#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 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 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 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& 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& 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 &aList ); + +private: + QSharedDataPointer 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 SmfPlaylistList; + +// Make the class SmfPlaylist known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfPlaylist) +Q_DECLARE_METATYPE(QList) + +#endif /* SMFPLAYLIST_H_ */ + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfplaylist_p.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 +#include + +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 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 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 m_trackList;// list of tracks in the playlist + +}; + +#endif /* SMFPLAYLIST_P_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpluginutil.cpp --- /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 + + +/** + * 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 &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 + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpluginutil.h --- /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 +#include +#include +#include +#include +#include + +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 &aParams, + const SmfParsingMode aMode); + +private: + /** + * The instance of QJson::Parser + */ + QJson::Parser *m_jsonParser; + + }; + +#endif /* SMFPLUGINUTIL_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpost.cpp --- /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<>( 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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpost.h --- /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 +#include +#include +#include +#include +#include +#include + +#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 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 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfpost_p.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 +#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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfprovider.cpp --- /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 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<>(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; + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfprovider.h --- /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 +#include +#include +#include +#include + +#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 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 SmfProviderList; + +// Make the class SmfProvider known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfProvider) +Q_DECLARE_METATYPE(QList) + +#endif // SMFPROVIDER_H diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfsubtitle.cpp --- /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 +#include + +/** + * 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<m_subtitle; + + // Serialize m_language + aDataStream<m_language; + + // Serialize m_frameRate + aDataStream<m_frameRate; + + // Serialize m_duration + aDataStream<m_duration; + + // Serialize m_releaseYr + aDataStream<m_releaseYr; + + // Serialize m_subtitleId + aDataStream<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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfsubtitle.h --- /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 +#include +#include +#include "smfclientglobal.h" +#include + +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 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 SmfSubtitleList; + +// Make the class SmfSubtitle known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfSubtitle) +Q_DECLARE_METATYPE(QList) + +#endif /* SMFSUBTITLE_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfsubtitle_p.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 +#include + +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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smftrackinfo.cpp --- /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 +#include + +/** + * 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 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 &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<m_trackId; + + // Serialize d->m_title + aDataStream<m_title; + + // Serialize d->m_album + aDataStream<m_album; + + // Serialize d->m_artists + aDataStream<m_artists; + + // Serialize d->m_genre + aDataStream<m_genre; + + // Serialize d->m_tags + aDataStream<m_tags; + + // Serialize d->m_year + aDataStream<m_year; + + // Serialize d->m_rating + aDataStream<m_rating; + + // Serialize d->m_comments + aDataStream<m_comments; + + // Serialize d->m_duration + aDataStream<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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smftrackinfo.h --- /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 +#include +#include +#include +#include "smfalbum.h" +#include +#include +#include +#include +#include + +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 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 &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 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 SmfTrackInfoList; + +// Make the class SmfTrackInfo known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfTrackInfo) +Q_DECLARE_METATYPE(QList) + +#endif /* SMFTRACKINFO_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smftrackinfo_p.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 +#include +#include +#include +#include + +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 m_comments; // comments + QTime m_duration; // duration + +}; + +#endif /* SMFTRACKINFO_P_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfurl.cpp --- /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 + +#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<m_href; + + // Serialize d->m_rel + aDataStream<m_rel; + + // Serialize d->m_type + aDataStream<m_type; + + // Serialize d->m_hreflang + aDataStream<m_hreflang; + + // Serialize d->m_title + aDataStream<m_title; + + // Serialize d->m_length + aDataStream<m_length; + + // Serialize d->m_id + aDataStream<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; + } + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfurl.h --- /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 +#include +#include +#include + +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 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 SmfUrlList; + +// Make the class SmfUrl known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfUrl) +Q_DECLARE_METATYPE(QList) + +#endif /* SMFURL_H_ */ + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfcommon/smfurl_p.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 +#include + +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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/ABLD.BAT --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/bld.inf --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/main.cpp --- 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(); diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.cpp --- 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 #include #include +#include #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 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(plugin); + + if(instance) + { + QList 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 = "<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 &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(); } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/pluginmgr/smfpluginmanager.h --- 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 &aUrlList ); /** diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/pluginmgr/smfpluginmanagerutil.cpp --- 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 +#include #include #include #include @@ -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 list; QList 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 = "<().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 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 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 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(aPlugin); + + if(!plugin) + { + qDebug()<<"Plugin instance couldn't be typecasted!!!"; + pluginErrorVal = SmfPluginErrRequestNotCreated; + break; + } + + qint32 val = plugin->maxCharsInPost(); + outStream<(aPlugin); + + if(!plugin) + { + qDebug()<<"Plugin instance couldn't be typecasted!!!"; + pluginErrorVal = SmfPluginErrRequestNotCreated; + break; + } + + qint32 val = plugin->maxItems(); + outStream<(aPlugin); + + if(!plugin) + { + qDebug()<<"Plugin instance couldn't be typecasted!!!"; + pluginErrorVal = SmfPluginErrRequestNotCreated; + break; + } + + QVector formats = plugin->supportedFormats(); + outStream<(aPlugin); + + if(!plugin) + { + qDebug()<<"Plugin instance couldn't be typecasted!!!"; + pluginErrorVal = SmfPluginErrRequestNotCreated; + break; + } + + bool val = plugin->supportsAppearence(); + outStream<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"; + QList activityList; + if( aResult->canConvert() ) + activityList = aResult->value(); + aDataStream<"; QList eventList; @@ -1370,17 +1662,6 @@ break; } - case SmfMusicPostCurrentPlaying: - { - qDebug()<<"Serializing to : bool"; - bool value; - if( QVariant::Bool == aResult->type() ) - value = aResult->toBool(); - aDataStream<type() ) + value = aResult->toBool(); + aDataStream<"; + QList albumList; + if( aResult->canConvert() ) + albumList = aResult->value(); + aDataStream<"; @@ -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< +#include +#include +#include +#include +#include +#include +#include +#include +#include + #include "smfserver.h" #include "smfpluginmanager.h" #include "smftransportmanager.h" #include "dsm.h" -#include "smfclientglobal.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#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() = "<Start( KSmfServerName ); + qDebug()<<"m_SmfServerPrivate->Start = "<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& pluginIDMap) +void SmfServer::getPlugins(const SmfInterfaceID& interfaceID, QMap& 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& list,QList& authList) { - //TODO:-Uncomment the following once authorization flow of plugin is implemented -/* authList.clear(); + qDebug()<<"Inside SmfServer::getAuthorizedPlugins()"; + authList.clear(); for(int i=0;iCheckPluginAuthentication(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 = ")<initializeTransport() return = "<createRequest() = "<createSyncRequest() = "<>provider; - readStream>>contact; + readStream>>flag; + if(flag) + readStream>>provider; + readStream>>flag; + if(flag) + readStream>>contact; SmfRelationId relnId = dsm->create(&provider,&contact); writeStream<>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<>relnId; + readStream>>flag; + if(flag) + readStream>>contact; + + SmfError err = dsm->remove(relnId, &contact); + int errInt = err; + writeStream<>relnId; SmfRelationItem* relnItem = dsm->searchById(relnId); - writeStream<<*(relnItem); + quint8 flag = 1; + if(relnItem) + { + writeStream<>contact; + + SmfRelationId relnId = dsm->searchByContact(contact); + writeStream<>relationId; readStream>>index; SmfRelationItem* relnItem = dsm->getContact(relationId,index); - writeStream<>relnId; + SmfError err = dsm->deleteRelation(relnId); + int errInt = err; + writeStream<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 = "<size() = "<size(); + qDebug()<<"Error = "<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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfserver.h --- 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 -#include -//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 -/* -* Forward declarations -* Other components of the SMF -*/ +#include +#include +#include +#ifdef CLIENT_SERVER_TEST + #include + #include +#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 -#include -#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& 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& list,QList& 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& 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& list, QList& 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 { diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfserverqt.cpp --- 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 +#include + #include "smfserverqt_p.h" #include "smfserverqtsession.h" #include "smfserver.h" -#include -#include - 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; -} + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfserverqt_p.h --- 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 +#include -#include 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfserverqtsession.cpp --- 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 + #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 = "<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 = "< 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: "< -#include -#endif + #include -#include -#include +#include #include + #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(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() = "<removeFromSessionMap(this,iMessage); @@ -181,34 +184,30 @@ iPtrToDataForClient.Copy(reinterpret_cast(parsedData->constData()),parsedData->length()); TInt writeErr = iMessage.Write(2,iPtrToDataForClient); - qDebug()<<("Write="); - QString wrErr = QString::number(writeErr); - qDebug()<<(wrErr); + qDebug()<<"iMessage.Write() = "<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(iPtrDataForDSM.Ptr()),iPtrDataForDSM.Length()) ; + QByteArray qtdataForDSM(reinterpret_cast(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(qtdataFromDSM.constData()),qtdataFromDSM.length()); - TInt writeErr = aMessage.Write(1,iPtrDataFromDSM); + iData8FromDSM = HBufC8::NewL(qtdataFromDSM.size()); + iPtr8DataFromDSM.Set(iData8FromDSM->Des()); + iPtr8DataFromDSM.Copy(reinterpret_cast(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) + // 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(iInterfaceNametbuf.Ptr()),iInterfaceNametbuf.Length()) ; - QDataStream stream3(&bytearray,QIODevice::ReadOnly); - stream3>>iInterfaceID; - qDebug()<<("iInterfaceID="); - qDebug()<<(iInterfaceID); + QByteArray intfName(reinterpret_cast(iIntfNameSymbian8.Ptr()),iIntfNameSymbian8.Length()) ; + QDataStream readIntfNameStream(&intfName,QIODevice::ReadOnly); + iInterfaceID.clear(); + readIntfNameStream>>iInterfaceID; + qDebug()<<"After de-serializing into iInterfaceID = "<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(iProviderSymbian8.Ptr()),iProviderSymbian8.Length()); + qDebug()<<"providerBufQt.size = "<>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 = "<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(resultData.constData()),resultData.length()); + + TInt writeErr = aMessage.Write(2,resultPtr8); + qDebug()<<"aMessage.Write(2) = "<wrapper()->getPlugins(aInterfaceID,iPluginIDMap); + //form the plugin id list from the map - QMapIterator iter(iPluginIDMap); iPluginIDList.clear(); - while (iter.hasNext()) - { - iter.next(); - iPluginIDList<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 tempMap; QMapIterator 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 providerList; - i = iPluginIDMap; - while(i.hasNext()) - { - i.next(); - providerList.append(i.value()); - } + QList providerList = iPluginIDMap.values(); + //now serialize this list into bytearray - byteArrayToClnt.clear(); - QDataStream stream(&byteArrayToClnt,QIODevice::WriteOnly); + resultData.clear(); + QDataStream stream(&resultData,QIODevice::WriteOnly); stream<(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(resultData.constData()),resultData.length()); + qDebug()<<"After providerListSymbian"; + + TInt writeErr = aMessage.Write(2,providerListSymbian); + qDebug()<<"aMessage.Write(2) = "<wrapper()->getPlugin(iInterfaceID,provider); - qDebug()<<("pluginID from PM="); - qDebug()<<(pluginID); + qDebug()<<"pluginID from PM = "<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(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); } - - } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfserversymbian_p.h --- 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 #include #include #include #include -//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 -//#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 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 iPluginIDMap; QList iPluginIDList; QList 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfsettingshandler.cpp --- 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() diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfsettingshandler.h --- 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 #include #include -#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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfsettingshandler_qt.cpp --- /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& 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(); + } diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfsettingshandler_qt.h --- /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 +#include + +/*! + @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& 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_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.cpp --- 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 #include "smfsettingshandler_symbian.h" -#include +#include "SettingsConstants.h" // Standard construction sequence CSettingsRepository* CSettingsRepository::NewL() @@ -216,4 +218,4 @@ User::LeaveIfError(iRepository->Get(KSettingsUIUploadFileTypeKey,aFtype)); } - +#endif diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/server/smfsettingshandler_symbian.h --- 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 #include #include +#include //#include /*! @class CSettingsRepository @@ -181,5 +184,6 @@ }; +#endif #endif /* SETTINGSREPOSITORY_H_ */ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/smfplugins/smfgalleryplugin.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 #include #include +#include /** * @ingroup smf_plugin_group diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/smfplugins/smfmusiceventsplugin.h --- 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; diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/smfplugins/smfmusicsearchplugin.h --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/smfplugins/smfmusicserviceplugin.h --- 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 #include #include +#include +#include +#include /** * @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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/smfplugins/smfpluginbase.h --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfserver/smfplugins/smfpostproviderplugin.h --- 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 #include -//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; /** - * list = arr.split(' '); - file.close(); + QByteArray winArr = winFile.readAll(); + QList 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; diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfservermodule.pro --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/tests/tests.pro --- 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 - - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/tests/testsmfgetservices/testsmfgetservices.cpp --- 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 - -#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 *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" - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/tests/testsmfgetservices/testsmfgetservices.pro --- 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 \ -} diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/ABLD.BAT --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/bld.inf --- 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 - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/lib/qjson.prl --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/src/ABLD.BAT --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/src/bld.inf --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/src/eabi/qjsonu.def --- /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 + diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/src/qjson_installer.pkg --- /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) diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/src/qjson_template.pkg --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/tests/Makefile --- 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: - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/tests/bld.inf --- 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 - diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/util/qjson/tests/tests_template.pkg --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/PlatfromIndependentSettings.cpp --- 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" diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/PlatfromIndependentSettings.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_ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/SMFSettings.cpp --- 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(PLuginDetails[0].utf16()), PLuginDetails[0].length()); TPtrC PluginStatus(static_cast(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(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(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(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(GetUploadFileType().utf16()), GetUploadFileType().length()); #else @@ -279,7 +279,7 @@ { - #ifdef __FOR_SYMBIAN__ + #ifdef __FOR_SYMBIAN_CR_USAGE__ QString myString; TBuf Buf; //conversion from Descriptor to QString diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/SMFSettings.h --- 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; diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/SMFSettings.loc --- 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. // ============================================================================ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/SMFSettings.rss --- 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. // ============================================================================ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/SMFSettings_installer.pkg --- /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) diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/SMFSettings_reg.rss --- 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. // ============================================================================ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/SMFSettings_template.pkg --- /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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/SettingsConstants.h --- 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 //UID of the Setting Application static const TUid KCRUidSettings = { 0xE6313AF5 }; diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/SettingsRepository.cpp --- 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 diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/SettingsRepository.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_ diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfsettingsui/ui_SMFSettings.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! ********************************************************************************/