smf/smfservermodule/smfclient/client/smfactivityfetcher_p.cpp
changeset 14 a469c0e6e7fb
equal deleted inserted replaced
13:b5d63d5fc252 14:a469c0e6e7fb
       
     1 /**
       
     2  * Copyright (c) 2010 Sasken Communication Technologies Ltd.
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of the "Eclipse Public License v1.0"
       
     6  * which accompanies  this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html"
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
       
    11  *
       
    12  * Description:
       
    13  * 
       
    14  */
       
    15 #include <QDebug>
       
    16 #include "smfactivityfetcher_p.h"
       
    17 #ifdef Q_OS_SYMBIAN
       
    18 #include "smfclientsymbian.h"
       
    19 #else
       
    20 #include "SmfClientQt.h"
       
    21 #endif
       
    22 SmfActivityFetcherPrivate::SmfActivityFetcherPrivate(SmfActivityFetcher *activityFetcher)
       
    23 :m_activityFetcher(activityFetcher)
       
    24 	{
       
    25 	//private impl for symbian
       
    26 	#ifdef Q_OS_SYMBIAN
       
    27 	m_SmfClientPrivate = CSmfClientSymbian::NewL(this);
       
    28 	#else
       
    29 	//TODO:- Qt private impl
       
    30 	#endif
       
    31 	}
       
    32 
       
    33 SmfActivityFetcherPrivate::~SmfActivityFetcherPrivate()
       
    34 	{
       
    35 	if(m_SmfClientPrivate)
       
    36 		{
       
    37 		delete m_SmfClientPrivate;
       
    38 		m_SmfClientPrivate = NULL;
       
    39 		}
       
    40 	}
       
    41 
       
    42 void SmfActivityFetcherPrivate::friendsActivities(const SmfContact & aFriend, int pageNum, int perPage)
       
    43 	{
       
    44 	  m_xtraInfoSerialized.clear();
       
    45 	  m_baseProvider = m_activityFetcher->getProvider();
       
    46 	  //serialize start
       
    47 	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
       
    48 	  //SmfProvider
       
    49 	  write<<*(m_baseProvider);
       
    50 	  m_pageInfoFlag = 0;
       
    51 	  write<<m_pageInfoFlag;
       
    52 	  write<<pageNum;
       
    53 	  write<<perPage;
       
    54 	  
       
    55 	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
       
    56 
       
    57 	  xtraInfoWrite<<aFriend;
       
    58 	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
       
    59 	  write<<m_xtraInfoFlag;
       
    60 	  //serialize end
       
    61 	  QString intfName(activityFetcherInterface);
       
    62 	  int max = MaxSmfActivityEntrySize*perPage;
       
    63 	  //call private impl's send method
       
    64 	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfActivityFriendsActivities,max,m_xtraInfoSerialized);
       
    65 	}
       
    66 
       
    67 void SmfActivityFetcherPrivate::filtered(QList<SmfActivityObjectType> filters, int pageNum, int perPage)
       
    68 	{
       
    69 	  m_xtraInfoSerialized.clear();
       
    70 	  m_baseProvider = m_activityFetcher->getProvider();
       
    71 	  //serialize start
       
    72 	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
       
    73 	  //SmfProvider
       
    74 	  write<<*(m_baseProvider);
       
    75 	  m_pageInfoFlag = 0;
       
    76 	  write<<m_pageInfoFlag;
       
    77 	  write<<pageNum;
       
    78 	  write<<perPage;
       
    79 	  
       
    80 	  QDataStream xtraInfoWrite(&m_xtraInfoSerialized,QIODevice::WriteOnly);
       
    81 
       
    82 	  xtraInfoWrite<<filters;
       
    83 	  m_xtraInfoFlag = m_xtraInfoSerialized.size();
       
    84 	  write<<m_xtraInfoFlag;
       
    85 	  //serialize end
       
    86 	  QString intfName(activityFetcherInterface);
       
    87 	  int max = MaxSmfActivityEntrySize*perPage;
       
    88 	  //call private impl's send method
       
    89 	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfActivityFiltered,max,m_xtraInfoSerialized);
       
    90 	}
       
    91 
       
    92 void SmfActivityFetcherPrivate::selfActivities(int pageNum, int perPage)
       
    93 	{
       
    94 	  m_xtraInfoSerialized.clear();
       
    95 	  m_baseProvider = m_activityFetcher->getProvider();
       
    96 	  //serialize start
       
    97 	  QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly);
       
    98 	  //SmfProvider
       
    99 	  write<<*(m_baseProvider);
       
   100 	  m_pageInfoFlag = 0;
       
   101 	  write<<m_pageInfoFlag;
       
   102 	  write<<pageNum;
       
   103 	  write<<perPage;
       
   104 
       
   105 	  m_xtraInfoFlag = 0;
       
   106 	  write<<m_xtraInfoFlag;
       
   107 	  //serialize end
       
   108 	  QString intfName(activityFetcherInterface);
       
   109 	  int max = MaxSmfActivityEntrySize*perPage;
       
   110 	  //call private impl's send method
       
   111 	  m_SmfClientPrivate->sendRequest(m_serializedDataToServer,intfName,SmfActivitySelfActivity,max);
       
   112 	}
       
   113 void SmfActivityFetcherPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error)
       
   114 	{
       
   115 	qDebug()<<"SmfPostProviderPrivate::resultsAvailable";
       
   116 	qDebug()<<"opcode=";
       
   117 	qDebug()<<QString::number(opcode);
       
   118 	QDataStream reader(&result,QIODevice::ReadOnly);
       
   119 	//Now de-serialize it based on opcode
       
   120 	switch(opcode)
       
   121 		{
       
   122 		case SmfActivityFriendsActivities:
       
   123 		case SmfActivityFiltered:
       
   124 		case SmfActivitySelfActivity:
       
   125 			{
       
   126 			if(m_entries)
       
   127 				{
       
   128 				delete m_entries;
       
   129 				m_entries = NULL;
       
   130 				}
       
   131 
       
   132 			m_entries = new SmfActivityEntryList;
       
   133 			reader>>*(m_entries);
       
   134 			//not incorporating paging now
       
   135 			SmfResultPage page;
       
   136 
       
   137 			emit m_activityFetcher->resultsAvailable(m_entries,error,page);
       
   138 			}
       
   139 			break;
       
   140 		default:
       
   141 			Q_ASSERT_X(1,"SmfActivityFetcherPrivate::resultsAvailable","default case");
       
   142 		}
       
   143 	}
       
   144 
       
   145 
       
   146