diff -r c39a6cfd1fb9 -r be09cf1f39dd smf/smfservermodule/smfclient/client/smfgallery_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/smfservermodule/smfclient/client/smfgallery_p.cpp Tue May 18 17:37:12 2010 +0530 @@ -0,0 +1,218 @@ +/** + * Copyright (c) 2010 Sasken Communication Technologies Ltd. + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of the "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "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 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 SmfGalleryPrivate::pictures(int pageNum,int perPage) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + + m_baseProvider = m_gallery->getProvider(); + //serialize start + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + //serialize end + QString intfName(galleryInterface); + + //call private impl's send method + m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureGetPictures); + } + + /** + * Returns a user title/caption for the picture + */ + QString SmfGalleryPrivate::description(SmfPicture& picture) + { + //We need to pass Opcode and SmfProvider+SmfPicture serialized into bytearray + + m_baseProvider = m_gallery->getProvider(); + //serialize start + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + write<sendRequest(m_serializedDataToServer,intfName,SmfPictureDescription); + //TODO:-to be implemented + return QString(); + } + /** + * 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) + { + //We need to pass Opcode and SmfProvider+SmfPicture serialized into bytearray + + m_baseProvider = m_gallery->getProvider(); + //serialize start + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + write<<*(image); + //serialize end + QString intfName(galleryInterface); + + //call private impl's send method + m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureUpload); + } + + /** + * 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) + { + //We need to pass Opcode and SmfProvider+SmfPictureList serialized into bytearray + + m_baseProvider = m_gallery->getProvider(); + //serialize start + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + write<<*(images); + //serialize end + QString intfName(galleryInterface); + + //call private impl's send method + m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureMultiUpload); + } + + /** + * 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+SmfPicture+SmfComment serialized into bytearray + + m_baseProvider = m_gallery->getProvider(); + //serialize start + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + write<sendRequest(m_serializedDataToServer,intfName,SmfPicturePostComment); + } + //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 + //TODO:- 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())); +// foreach(SmfPicture pic,*m_picList) +// { + +// } + //not incorporating paging now + SmfResultPage page; + + emit m_gallery->picturesAvailable(m_picList,error,page); + + } + break; + case SmfPictureUploadComplete: + case SmfPicturePostCommentComplete: + { + bool success; + reader>>success; + writeLog("success="); + if(success) + writeLog("true"); + QList successList; + successList.append(success); + emit m_gallery->uploadFinished(successList); + + } + break; + case SmfPictureMultiUpload: + { + QList successList; + reader>>successList; + emit m_gallery->uploadFinished(successList); + + } + break; + // default: + // //should panic? + // + } + } +