smf/smfservermodule/smfclient/client/smfgallery_p.cpp
changeset 14 a469c0e6e7fb
parent 10 77a56c951f86
--- a/smf/smfservermodule/smfclient/client/smfgallery_p.cpp	Mon Jun 07 11:43:45 2010 +0100
+++ b/smf/smfservermodule/smfclient/client/smfgallery_p.cpp	Wed Jun 23 19:51:49 2010 +0530
@@ -25,7 +25,7 @@
 #ifdef Q_OS_SYMBIAN
 #include "smfclientsymbian.h"
 #else
-#include "smfclientqt.h"
+#include "SmfClientQt.h"
 #endif
 
   SmfGalleryPrivate::SmfGalleryPrivate(SmfGallery* gallery)
@@ -46,89 +46,133 @@
 	  }
   
   /**
-   * Get the picture listing asynchronously.
-   * The picturesAvailable() signal is emitted with SmfPictureList once the pictures have arrived.
+ * 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::pictures(int pageNum,int perPage)
+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();
-	  //serialize start
 	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
 	  write<<*(m_baseProvider);
-	  //serialize end
+	  m_pageInfoFlag = 1;
+	  write<<m_pageInfoFlag;
+	  write<<pageNum;
+	  write<<perPage;
+	  //TODO:- use different opcode incase post retreival is for other user
+	  //serialize SmfContact if post retrieval is for other user
+	  if(user)
+		  {
+		  //now serialize SmfContact 
+		  m_xtraInfoSerialized.clear();
+		  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
+		  Xtrawrite<<*(user);
+		  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+		  write<<m_xtraInfoFlag;
+		  }
+	  else
+		  {
+		  m_xtraInfoFlag = 0;
+		  write<<m_xtraInfoFlag;
+		  }	
 	  QString intfName(galleryInterface);
-	  
+	  int maxalloc = MaxSmfPictureAlbumSize*perPage;
 	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureGetPictures);
+	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureGetAlbums,maxalloc,m_xtraInfoSerialized);
 	  }
 
   /**
-   * Returns a user title/caption for the picture
+ * 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
    */
-  QString SmfGalleryPrivate::description(SmfPicture& picture)
+void SmfGalleryPrivate::pictures(SmfPictureAlbumList albums,int pageNum,int perPage)
 	  {
-	  //We need to pass Opcode and SmfProvider+SmfPicture serialized into bytearray 
-	  
+	  //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);
-	  write<<picture;
-	  //serialize end
+	  m_pageInfoFlag = 1;
+	  write<<m_pageInfoFlag;
+	  write<<pageNum;
+	  write<<perPage;
+	  m_xtraInfoSerialized.clear();
+	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
+	  Xtrawrite<<albums;
+	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+	  write<<m_xtraInfoFlag;
+
 	  QString intfName(galleryInterface);
-	  
+	  int maxalloc = MaxSmfPictureSize*perPage;
 	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureDescription);
-	  //TODO:-to be implemented
-	  return QString();
+	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureGetPictures,maxalloc,m_xtraInfoSerialized);
 	  }
+
   /**
 	 * Upload an image.Implemented as slot to connect to UI controls more easily
 	 * uploadFinished() signal is emitted with the success value of the upload
 	 * @param image the image to be uploaded
 	 */
-   void SmfGalleryPrivate::upload(SmfPicture* image)
+void SmfGalleryPrivate::upload(SmfPicture* image, SmfPictureAlbum* album)
 	   {
-		  //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);
-		}
+	  //We need to pass Opcode and SmfProvider serialized into bytearray 
+	  m_baseProvider = m_gallery->getProvider();
+	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	  write<<*(m_baseProvider);
+	  m_pageInfoFlag = 0;
+	  write<<m_pageInfoFlag;
+
+	  m_xtraInfoSerialized.clear();
+	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
+	  Xtrawrite<<image;
+	  Xtrawrite<<album;
+	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+	  write<<m_xtraInfoFlag;
+
+	  QString intfName(galleryInterface);
+	  int maxalloc = 100;
+	  //call private impl's send method
+	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureUpload,maxalloc,m_xtraInfoSerialized);
+	  }
 
 	/**
 	 * Upload an list image.Implemented as slot to connect to UI controls more easily
 	 * uploadFinished() signal is emitted with the success value of the upload
 	 * @param images the list image to be uploaded
 	 */
-   void SmfGalleryPrivate::upload(SmfPictureList* images)
-	   {
-		  //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);
-		}
+void SmfGalleryPrivate::upload(SmfPictureList* images, SmfPictureAlbum* album)
+	{
+
+	  //We need to pass Opcode and SmfProvider serialized into bytearray 
+	  m_baseProvider = m_gallery->getProvider();
+	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
+	  write<<*(m_baseProvider);
+	  m_pageInfoFlag = 0;
+	  write<<m_pageInfoFlag;
+
+	  m_xtraInfoSerialized.clear();
+	  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
+	  Xtrawrite<<images;
+	  Xtrawrite<<album;
+	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+	  write<<m_xtraInfoFlag;
+
+	  QString intfName(galleryInterface);
+	  int maxalloc = 1000;
+	  //call private impl's send method
+	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPictureMultiUpload,maxalloc,m_xtraInfoSerialized);
+	  
+	}
 
   /**
    * Posts a comment for an image. uploadFinished() signal is emitted
@@ -138,65 +182,68 @@
    */
    void SmfGalleryPrivate::postComment(SmfPicture image, SmfComment comment)
 	   {
-		  //We need to pass Opcode and SmfProvider+SmfPicture+SmfComment serialized into bytearray 
-		  
+
+		  //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);
-		  write<<image;
-		  write<<comment;
-		  //serialize end
+		  m_pageInfoFlag = 0;
+		  write<<m_pageInfoFlag;
+
+		  m_xtraInfoSerialized.clear();
+		  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
+		  Xtrawrite<<image;
+		  Xtrawrite<<comment;
+		  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+		  write<<m_xtraInfoFlag;
+
 		  QString intfName(galleryInterface);
-		  
+		  int maxalloc = 100;
 		  //call private impl's send method
-		  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPicturePostComment);
+		  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfPicturePostComment,maxalloc,m_xtraInfoSerialized);
+		  
 		}
    //from smfobserver
    void SmfGalleryPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error)
 	   {
-		writeLog("SmfPostProviderPrivate::resultsAvailable");
-		
-		//note:- "result" is serialized and we need to de-serialize it as per opcode
-		//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:
+	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()));
-//					foreach(SmfPicture pic,*m_picList)
-//						{
-
-//						}
 					//not incorporating paging now
 					SmfResultPage page;
-
+		
 					emit m_gallery->picturesAvailable(m_picList,error,page);
 				
 				}
 				break;
-			case SmfPictureUploadComplete:
-			case SmfPicturePostCommentComplete:
+			case SmfPictureUpload:
+			case SmfPicturePostComment:
 				{
-					bool success;
-					reader>>success;
+					
+					int errInt;
+					reader>>errInt;
 					writeLog("success=");
-					if(success)
-						writeLog("true");
-					QList<bool> successList;
+					QList<SmfError> successList;
+					SmfError success = (SmfError)errInt; 
 					successList.append(success);
 					emit m_gallery->uploadFinished(successList);
 				
@@ -204,15 +251,20 @@
 				break;
 			case SmfPictureMultiUpload:
 				{
-				QList<bool> successList;
-				reader>>successList;
+				QList<int> successListInt;
+				QList<SmfError> successList;
+				reader>>successListInt;
+				foreach(int success,successListInt)
+					{
+					successList.append((SmfError)success);
+					}
 				emit m_gallery->uploadFinished(successList);
 			
-			}
+				}
 				break;
-	//		default:
-	//			//should panic?
-	//			
-			}
-	   }
+				default:
+					User::Panic(_L("Gallerprivate="),opcode);
+					
+		}
+}