smf/smfservermodule/smfclient/client/smfpostprovider_p.cpp
changeset 14 a469c0e6e7fb
parent 10 77a56c951f86
--- a/smf/smfservermodule/smfclient/client/smfpostprovider_p.cpp	Mon Jun 07 11:43:45 2010 +0100
+++ b/smf/smfservermodule/smfclient/client/smfpostprovider_p.cpp	Wed Jun 23 19:51:49 2010 +0530
@@ -12,8 +12,6 @@
  * Contributors:
  * Manasij Roy, Nalina Hariharan
  * 
- * Description:
- * The SmfEvent class represents an event
  *
  */
 
@@ -26,12 +24,12 @@
 #ifdef Q_OS_SYMBIAN
 #include "smfclientsymbian.h"
 #else
-#include "smfclientqt.h"
+#include "SmfClientQt.h"
 #endif
 SmfPostProviderPrivate::SmfPostProviderPrivate(SmfPostProvider* postProvider)
 : m_postProvider(postProvider),m_postList(NULL)
 	{
-	  //private impl for symbian
+	//private impl for symbian
 	#ifdef Q_OS_SYMBIAN
 	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
 	#endif
@@ -61,18 +59,35 @@
 	  //serialize start
 	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
 	  write<<*(m_baseProvider);
+	  m_pageInfoFlag = 1;
+	  write<<m_pageInfoFlag;
+	  write<<pageNum;
+	  write<<perPage;
 	  //TODO:- use different opcode incase post retreival is for other user
 	  //serialize SmfContact if post retrieval is for other user
+
 	  if(user)
 		  {
+		  //m_xtraInfoFlag = 1;
+		  //write<<m_xtraInfoFlag;
 		  //now serialize SmfContact 
-		  write<<*(user);
+		  m_xtraInfoSerialized.clear();
+		  QDataStream Xtrawrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
+		  Xtrawrite<<*(user);
+		  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+		  write<<m_xtraInfoFlag;
+		  }
+	  else
+		  {
+		  m_xtraInfoFlag = 0;
+		  write<<m_xtraInfoFlag;
 		  }
 	  //serialize end
-	  QString intfName(postProviderInterface);
-	  
+	  intfName.clear();
+	  intfName.append(postProviderInterface);
+	  int maxAllocation = MaxSmfPostSize*perPage;
 	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactRetrievePosts);
+	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactRetrievePosts,maxAllocation,m_xtraInfoSerialized);
 
 }
 	
@@ -84,21 +99,29 @@
  */
 void SmfPostProviderPrivate::post(SmfPost& postData,SmfLocation& location) 
 	{
+	  m_xtraInfoSerialized.clear();
 	  m_baseProvider = m_postProvider->getProvider();
 	  //serialize start
 	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
 	  //SmfProvider
 	  write<<*(m_baseProvider);
+	  m_pageInfoFlag = 0;
+	  write<<m_pageInfoFlag;
+	  //m_xtraInfoFlag = 1;
+	  //write<<m_xtraInfoFlag;
+	  
+	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
 	  //SmfPost
-	  write<<postData;
+	  xtraInfoWrite<<postData;
 	  //SmfPlace
-	  write<<location;
-	  
+	  xtraInfoWrite<<location;
+	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+	  write<<m_xtraInfoFlag;
 	  //serialize end
 	  QString intfName(postProviderInterface);
-	  
+	  //we are not mentioning the max size, as we'll receive only bool
 	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactPost);
+	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactPost,10,m_xtraInfoSerialized);
 	}
 /**
  * Updates the last post to own area with new data, the success of the post can be checked with signal
@@ -113,14 +136,21 @@
 	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
 	  //SmfProvider
 	  write<<*(m_baseProvider);
+	  m_pageInfoFlag = 0;
+	  write<<m_pageInfoFlag;
+	  //m_xtraInfoFlag = 1;
+	  //write<<m_xtraInfoFlag;
+	  
+	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
 	  //SmfPost
-	  write<<postData;
-
+	  xtraInfoWrite<<postData;
+	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+	  write<<m_xtraInfoFlag;
 	  //serialize end
 	  QString intfName(postProviderInterface);
-	  
+	  //we are not mentioning the max size, as we'll receive only bool
 	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactUpdatePost);
+	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactUpdatePost,10,m_xtraInfoSerialized);
 	}
 
 /**
@@ -132,23 +162,32 @@
  */
 void SmfPostProviderPrivate::postDirected(SmfPost& postData,SmfContact& contact,SmfLocation* location)
 	{
+
 	  m_baseProvider = m_postProvider->getProvider();
 	  //serialize start
 	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
 	  //SmfProvider
 	  write<<*(m_baseProvider);
+	  m_pageInfoFlag = 0;
+	  write<<m_pageInfoFlag;
+	  //m_xtraInfoFlag = 1;
+	  //write<<m_xtraInfoFlag;
+	  
+	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
 	  //SmfPost
-	  write<<postData;
+	  xtraInfoWrite<<postData;
 	  //SmfContact
-	  write<<contact;
+	  xtraInfoWrite<<contact;
 	  //SmfPlace
-	  write<<location;
+	  xtraInfoWrite<<location;
+	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+	  write<<m_xtraInfoFlag;
 	  //serialize end
 	  
 	  QString intfName(postProviderInterface);
-	  
+	  //we are not mentioning the max size, as we'll receive only bool
 	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactPostDirected);
+	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactPostDirected,10,m_xtraInfoSerialized);
 	}
 
 /**
@@ -166,11 +205,18 @@
 	  //serialize start
 	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
 	  write<<*(m_baseProvider);
-	  write<<appearence;
+	  m_pageInfoFlag = 0;
+	  write<<m_pageInfoFlag;
+	  //m_xtraInfoFlag = 1;
+	  //write<<m_xtraInfoFlag;
+	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
+	  xtraInfoWrite<<appearence;
+	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+	  write<<m_xtraInfoFlag;
 	  QString intfName(postProviderInterface);
-	  
+	  //we are not mentioning the max size, as we'll receive only bool
 	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactPostAppearence);
+	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactPostAppearence,10,m_xtraInfoSerialized);
 	}
 /**
  * Share /a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook)
@@ -185,13 +231,21 @@
 	  //serialize start
 	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
 	  write<<*(m_baseProvider);
-	  write<<postData;
-	  write<<contact;
-	  write<<edited;
+	  m_pageInfoFlag = 0;
+	  write<<m_pageInfoFlag;
+	  //m_xtraInfoFlag = 1;
+	  //write<<m_xtraInfoFlag;
+	  
+	  QDataStream xtraInfoWrite(&m_serializedDataToServer,QIODevice::WriteOnly);
+	  xtraInfoWrite<<postData;
+	  xtraInfoWrite<<contact;
+	  xtraInfoWrite<<edited;
+	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
+	  write<<m_xtraInfoFlag;
 	  QString intfName(postProviderInterface);
-	  
+	  //we are not mentioning the max size, as we'll receive only bool
 	  //call private impl's send method
-	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactSharePost);
+	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfContactSharePost,10,m_serializedDataToServer);
 	}
 /**
 * From smfobserver
@@ -199,16 +253,13 @@
 void SmfPostProviderPrivate::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
-	
+	writeLog("opcode=");
+	writeLog(QString::number(opcode));
 	QDataStream reader(&result,QIODevice::ReadOnly);
-	
 	//Now de-serialize it based on opcode
 	switch(opcode)
 		{
-		case SmfContactRetrievePostsComplete:
+		case SmfContactRetrievePosts:
 			{
 				if(m_postList)
 					{
@@ -217,12 +268,6 @@
 					}
 
 				m_postList = new SmfPostList;
-				//TODO
-	//   			SmfError error;
-	//   			reader>>error;
-	//   			writeLog("Error=");
-	//   			writeLog(QString::number(error));
-	//   			SmfError err = (SmfError)error;
 				reader>>*(m_postList);
 				writeLog("postList.count=");
 				writeLog(QString::number(m_postList->count()));
@@ -237,31 +282,28 @@
 			
 			}
 			break;
-		case SmfContactPostComplete:
+		case SmfContactPost:
 			{
-				bool success;
-				reader>>success;
-				writeLog("success=");
-				if(success)
-					writeLog("true");
-				emit m_postProvider->postFinished(success);
+			int errInt;
+			reader>>errInt;
+			writeLog("success=");
+			SmfError success = (SmfError)errInt; 
+			emit m_postProvider->postFinished(success);
 			
 			}
 			break;
-		case SmfContactUpdatePostComplete:
-		case SmfContactPostDirectedComplete:
-		case SmfContactSharePostComplete:
+		case SmfContactUpdatePost:
+		case SmfContactPostDirected:
+		case SmfContactSharePost:
 			{
-			bool success;
-			reader>>success;
+			int errInt;
+			reader>>errInt;
 			writeLog("success=");
-			if(success)
-				writeLog("true");
+			SmfError success = (SmfError)errInt; 
 			emit m_postProvider->postFinished(success);
 			}
-//		default:
-//			//should panic?
-//			
+		default:
+			Q_ASSERT_X(1,"SmfPostProviderPrivate::resultsAvailable","default case");
 		}
    }
 void SmfPostProviderPrivate::writeLog(QString log) const