diff -r b5d63d5fc252 -r a469c0e6e7fb smf/smfservermodule/smfclient/client/smfrelationmgr_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/smfservermodule/smfclient/client/smfrelationmgr_p.cpp Wed Jun 23 19:51:49 2010 +0530 @@ -0,0 +1,250 @@ +/** + * 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: + * + */ + +#include "smfrelationmgr_p.h" +//logging headers +#ifdef WRITE_LOG +#include +#include +#endif +#ifdef Q_OS_SYMBIAN +#include "smfclientsymbian.h" +#else +#include "SmfClientQt.h" +#endif + +SmfRelationMgrPrivate::SmfRelationMgrPrivate(SmfRelationMgr* relnMngr) + { + //private impl for symbian + #ifdef Q_OS_SYMBIAN + m_SmfClientPrivate = CSmfClientSymbian::NewL(); + #endif + } +SmfRelationMgrPrivate::~SmfRelationMgrPrivate() + { + if(m_SmfClientPrivate) + { + delete m_SmfClientPrivate; + m_SmfClientPrivate = NULL; + } + } +SmfRelationId SmfRelationMgrPrivate::create(SmfProvider *provider, SmfContact *contact) + { + m_dataForDSM.clear(); + QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly); + writeStream<<*(provider); + writeStream<sendDSMSyncRequest(SmfRelationCreate,m_dataForDSM,err,maxSmfRelationIdSize); + if(err==SmfNoError) + { + QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly); + SmfRelationId relnId; + readStream>>relnId; + return relnId; + } + else + { + User::Panic(_L("DSM err="),err); + } + } +SmfError SmfRelationMgrPrivate::associate(const SmfRelationId& relation,const SmfContact* contact,SmfProvider* provider) + { + m_dataForDSM.clear(); + QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly); + writeStream<sendDSMSyncRequest(SmfRelationAssociate,m_dataForDSM,err,maxAlloc); + if(err == SmfNoError) + { + QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly); + int errInt; + readStream>>errInt; + err = (SmfError)errInt; + } + else + { + User::Panic(_L("DSM err="),err); + } + return err; + } +SmfError SmfRelationMgrPrivate::remove(SmfRelationId& relation,const SmfContact* contact) + { + m_dataForDSM.clear(); + QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly); + writeStream<sendDSMSyncRequest(SmfRelationRemove,m_dataForDSM,err,maxAlloc); + if(err == SmfNoError) + { + QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly); + int errInt; + readStream>>errInt; + err = (SmfError)errInt; + } + else + { + const QString errStr = QString::number(err); + Q_ASSERT_X(1,"SmfRelationMgrPrivate::remove","error"); + } + return err; + } +SmfRelationItem SmfRelationMgrPrivate::searchById(const SmfRelationId& relation) + { + m_dataForDSM.clear(); + QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly); + writeStream<sendDSMSyncRequest(SmfRelationSearchById,m_dataForDSM,err,maxAlloc); + if(err == SmfNoError) + { + QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly); + SmfRelationItem relnItem; + readStream>>relnItem; + return relnItem; + } + else + { + User::Panic(_L("DSM err="),err); + } + } +SmfRelationId SmfRelationMgrPrivate::searchByContact( SmfContact contact) + { + m_dataForDSM.clear(); + QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly); + writeStream<sendDSMSyncRequest(SmfRelationSearchByContact,m_dataForDSM,err,maxAlloc); + if(err == SmfNoError) + { + QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly); + SmfRelationId relnId; + readStream>>relnId; + return relnId; + } + else + { + User::Panic(_L("DSM err="),err); + } + } +//number of contacts in a relation +uint SmfRelationMgrPrivate::count(SmfRelationId relation) + { + m_dataForDSM.clear(); + QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly); + writeStream<sendDSMSyncRequest(SmfRelationCount,m_dataForDSM,err,maxAlloc); + if(err == SmfNoError) + { + QDataStream readStream(&m_dataForDSM,QIODevice::ReadOnly); + uint count; + readStream>>count; + return count; + } + else + { + User::Panic(_L("DSM err="),err); + } + } + +SmfRelationItem SmfRelationMgrPrivate::get(SmfRelationId& relation, quint32 index) + { + m_dataForDSM.clear(); + QDataStream writeStream(&m_dataForDSM,QIODevice::WriteOnly); + writeStream<sendDSMSyncRequest(SmfRelationGet,m_dataForDSM,err,maxAlloc); + if(err == SmfNoError) + { + QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly); + SmfRelationItem relationItem; + readStream>>relationItem; + return relationItem; + } + else + { + User::Panic(_L("DSM err="),err); + } + } +QList SmfRelationMgrPrivate::getAll(SmfRelationId& relation) + { + m_dataForDSM.clear(); + + m_dataFromDSM.clear(); + SmfError err = SmfNoError; + int maxAlloc = maxSmfRelationItemSize*maxRelationItems; + m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationGetAll,m_dataForDSM,err,maxAlloc); + if(err == SmfNoError) + { + QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly); + QList relationItemList; + readStream>>relationItemList; + return relationItemList; + } + else + { + User::Panic(_L("DSM err="),err); + } + } +QList SmfRelationMgrPrivate::getAllRelations() + { + m_dataForDSM.clear(); + + m_dataFromDSM.clear(); + SmfError err = SmfNoError; + int maxAlloc = 1000*maxRelationItems; + m_dataFromDSM = m_SmfClientPrivate->sendDSMSyncRequest(SmfRelationGetAllRelations,m_dataForDSM,err,maxAlloc); + if(err == SmfNoError) + { + QDataStream readStream(&m_dataFromDSM,QIODevice::ReadOnly); + QList relationIdList; + readStream>>relationIdList; + return relationIdList; + } + else + { + User::Panic(_L("DSM err="),err); + } + } +SmfError SmfRelationMgrPrivate::Delete(SmfRelationId& relation) + { + + }