diff -r b85b0c039c14 -r 1d94eb8df9c2 smf/smfservermodule/smfclient/client/smfcontactfetcher_p.cpp --- a/smf/smfservermodule/smfclient/client/smfcontactfetcher_p.cpp Fri May 21 15:40:57 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 - */ -#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() - { - - } - - /** - * 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_baseProvider = m_contactFetcher->getProvider(); - //serialize start - QDataStream write(&m_providerSerialized,QIODevice::WriteOnly); - write<<*(m_baseProvider); - //serialize end - - - QString intfName(contactFetcherInterface); - - //call private impl's send method - m_SmfClientPrivate->sendRequest(m_providerSerialized,intfName,SmfContactGetFriends); - } - - /** - * 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); - //serialize end - - - QString intfName(contactFetcherInterface); - - //call private impl's send method - m_SmfClientPrivate->sendRequest(m_providerSerialized,intfName,SmfContactGetFollowers); - } - /** - * 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_contact = contact; - //serialize start - QDataStream write(&m_providerSerialized,QIODevice::WriteOnly); - write<<*(m_baseProvider); - //now serialize SmfContact - write<<*(m_contact); - //serialize end - - - QString intfName(contactFetcherInterface); - - //call private impl's send method - m_SmfClientPrivate->sendRequest(m_providerSerialized,intfName,SmfContactSearch); - } - - /** - * 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 - */ - //TODO:-implement -// bool SmfContactFetcherPrivate::searchNear(SmfPlace* location,SmfLocationSearchBoundary proximity,int pageNum,int perPage) -// { -// -// } - - - /** - * 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); - //serialize end - - - QString intfName(contactFetcherInterface); - - //call private impl's send method - m_SmfClientPrivate->sendRequest(m_providerSerialized,intfName,SmfContactGetGroups); - } - - /** - * 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); - //now serialize SmfGroup - write<sendRequest(m_providerSerialized,intfName,SmfContactSearch); - } - - -void SmfContactFetcherPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error) - { - writeLog("SmfContactFetcherPrivate::resultsAvailable"); - - //note:- "result" is serialized and we need to de-serialize it as per opcode - //TODO:- order of serialization Error value followed by data - - QDataStream reader(&result,QIODevice::ReadOnly); - - //Now de-serialize it based on opcode - switch(opcode) - { - case SmfContactGetFriendsComplete: - { - - if(m_contactList) - { - delete m_contactList; - m_contactList = NULL; - } - m_contactList = new SmfContactList; - //TODO -// SmfError error; -// reader>>error; -// writeLog("Error="); -// writeLog(QString::number(error)); -// SmfError err = (SmfError)error; - m_frndist.clear(); - reader>>m_frndist; - writeLog("m_frndist.count="); - writeLog(QString::number(m_frndist.count())); - //not incorporating paging now - SmfResultPage page; - - emit m_contactFetcher->friendsListAvailable(&m_frndist,SmfNoError,page); - - } - break; - case SmfContactGetFollowersComplete: - { - if(m_contactList) - { - delete m_contactList; - m_contactList = NULL; - } - m_contactList = new SmfContactList; - quint32 error; - reader>>error; - SmfError err = (SmfError)error; - reader>>*(m_contactList); - //not incorporating paging now - SmfResultPage page; - - emit m_contactFetcher->followersListAvailable(m_contactList,err,page); - - } - break; - case SmfContactGetGroupsComplete: - { - writeLog("Before m_grpList.clear="); - m_grpList.clear(); - writeLog("Before reader>>m_grpList="); - reader>>m_grpList ; - //not incorporating paging now - SmfResultPage page; - writeLog("m_grpList.count="); - writeLog(QString::number(m_grpList.count())); - emit m_contactFetcher->groupListAvailable(&m_grpList,SmfNoError,page); - - } - break; - case SmfContactSearchComplete: - { - if(m_contactList) - { - delete m_contactList; - m_contactList = NULL; - } - m_contactList = new SmfContactList; - quint32 error; - reader>>error; - SmfError err = (SmfError)error; - reader>>*(m_contactList); - //not incorporating paging now - SmfResultPage page; - //searchContactFinished - emit m_contactFetcher->searchContactFinished(m_contactList,err,page); - } - break; - default: - writeLog("Before m_grpList.clear="); - m_grpList.clear(); - writeLog("Before reader>>m_grpList="); - reader>>m_grpList ; - //not incorporating paging now - SmfResultPage page; - writeLog("m_grpList.count="); - writeLog(QString::number(m_grpList.count())); - emit m_contactFetcher->groupListAvailable(&m_grpList,SmfNoError,page); - } - - } -void SmfContactFetcherPrivate::writeLog(QString log) const - { - QFile file("c:\\data\\SmfClientLogs.txt"); - if (!file.open(QIODevice::Append | QIODevice::Text)) - return; - QTextStream out(&file); - out << log << "\n"; - file.close(); - - } -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; - }