diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src/cmockphonebookstoremesshandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src/cmockphonebookstoremesshandler.cpp Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,406 @@ +// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "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: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#include +#include "cmockphonebookstoremesshandler.h" +#include +#include +#include +#include +#include "cmmmessagerouter.h" +#include "cmockltsyengine.h" +#include "tmockltsydata.h" + +#include + + +/** +Factory function +*/ +CMockPhoneBookStoreMessHandler* CMockPhoneBookStoreMessHandler::NewL(CMmMessageRouter* aMessageRouter) + { + CMockPhoneBookStoreMessHandler* self = new(ELeave)CMockPhoneBookStoreMessHandler(aMessageRouter); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(); + return self; + } + +/** +Constructor +*/ +CMockPhoneBookStoreMessHandler::CMockPhoneBookStoreMessHandler(CMmMessageRouter* aMessageRouter) + :iMessageRouter(aMessageRouter) + { + } + +/** +2nd phase contructor +*/ +void CMockPhoneBookStoreMessHandler::ConstructL() + { + } + +/** +Destructor +*/ +CMockPhoneBookStoreMessHandler::~CMockPhoneBookStoreMessHandler() + { + + for (TInt i(0); i < iEnRespArray.Count(); i++) + { + if ( iEnRespArray[i] ) + { + iEnRespArray[i]->ResetAndDestroy(); + } + } + iEnRespArray.ResetAndDestroy(); + } + +/** +Execute a request +*/ +TInt CMockPhoneBookStoreMessHandler::ExtFuncL(TInt aIpc,const CMmDataPackage* aMmDataPackage) + { + + switch(aIpc) + { + case EMmTsyENStoreReadIPC: + case EMmTsyONStoreReadIPC: + case EMmTsyENStoreGetInfoIPC: + case EMmTsyONStoreWriteSizeIPC: + case EMmTsyONStoreDeleteIPC: + case EMmTsyONStoreGetInfoIPC: + case EMmTsyENStoreReadAllPhase1IPC: + { + TInt index; + + aMmDataPackage->UnPackData(index); + + TMockLtsyData1< TInt > data(index); + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data); + } + case EMmTsyONStoreWriteEntryIPC: + { + RMobileONStore::TMobileONEntryV1 entry; + + aMmDataPackage->UnPackData(entry); + + TMockLtsyData1< RMobileONStore::TMobileONEntryV1 > data(entry); + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data); + } + + case EMmTsyONStoreWriteIPC: + { + RMobileONStore::TMobileONEntryV1Pckg* ptr; + + aMmDataPackage->UnPackData(ptr); + + RMobileONStore::TMobileONEntryV1& entry = ( *ptr )(); + + TMockLtsyData1 data(entry); + + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data); + } + + case EMmTsyONStoreDeleteAllIPC: + { + TMockLtsyData0 data; + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data); + } + case EMmTsyONStoreReadEntryIPC: + case EMmTsyONStoreReadSizeIPC: + { + TInt index; + aMmDataPackage->UnPackData(index); + TMockLtsyData1 data(index); + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc, data); + } + + default: + break; + } + + + const CPhoneBookDataPackage* phoneBookPackage = static_cast(aMmDataPackage); + TName phoneBookName; + phoneBookPackage->GetPhoneBookName(phoneBookName); + + switch (aIpc) + { + case EMmTsyPhoneBookStoreInitIPC: + { + TMockLtsyPhoneBookData0 data(phoneBookName); + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data); + } + case EMmTsyPhoneBookStoreReadIPC: + { + RMobilePhoneBookStore::TPBIndexAndNumEntries* indexAndEntriesPtr; + phoneBookPackage->UnPackData(indexAndEntriesPtr); + + TMockLtsyPhoneBookData1< RMobilePhoneBookStore::TPBIndexAndNumEntries > + data(phoneBookName, *indexAndEntriesPtr); + + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data); + } + case EMmTsyPhoneBookStoreCacheIPC: + { + TMockLtsyPhoneBookData0 data(phoneBookName); + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data); + } + case EMmTsyPhoneBookStoreWriteIPC: + { + CPhoneBookStoreEntry* entryPtr; + TInt index; + + phoneBookPackage->UnPackData(index, entryPtr); + + TMockLtsyPhoneBookData2< TInt, CPhoneBookStoreEntry* > data(phoneBookName, index, entryPtr); + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data); + } + + case EMmTsyPhoneBookStoreDeleteIPC: + { + TInt index; + + phoneBookPackage->UnPackData(index); + + TMockLtsyPhoneBookData1< TInt > data(phoneBookName, index); + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data); + } + + default: + { + TMockLtsyPhoneBookData0 data(phoneBookName); + return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data); + } + } + } + +/** +Complete a request +*/ +void CMockPhoneBookStoreMessHandler::CompleteL(TInt aIpc, const TDesC8& aData, TInt aResult) + { + CPhoneBookDataPackage dataPackage; + CArrayPtrSeg* pbEntryArray = NULL; + CArrayPtrSeg** ptr = NULL; + + switch (aIpc) + { + case EMmTsyPhoneBookStoreInitIPC: + { + CStorageInfoData info; + + TMockLtsyPhoneBookData1< CStorageInfoData > retStoreAndName(info); + retStoreAndName.DeserialiseL(aData); + + dataPackage.SetPhoneBookName(retStoreAndName.PhoneBookName()); + + dataPackage.PackData(retStoreAndName.Data1Ptr()); + } + break; + case EMmTsyPhoneBookStoreCacheIPC: + { + TMockLtsyPhoneBookData1Buf *> retStoreAndName; + CleanupClosePushL(retStoreAndName); + + retStoreAndName.DeserialiseL(aData); + dataPackage.SetPhoneBookName(retStoreAndName.PhoneBookName()); + + pbEntryArray = retStoreAndName.Data1(); + dataPackage.PackData( &pbEntryArray ); + + iMessageRouter->MessageManagerCallback()->Complete(aIpc, &dataPackage, aResult); + + CleanupStack::PopAndDestroy(1); + + return; + } + break; + case EMmTsyPhoneBookStoreReadIPC: + { + TMockLtsyPhoneBookData1Buf*> retStoreAndName; + CleanupClosePushL(retStoreAndName); + + retStoreAndName.DeserialiseL(aData); + + dataPackage.SetPhoneBookName(retStoreAndName.PhoneBookName()); + + pbEntryArray = retStoreAndName.Data1(); + dataPackage.PackData( &pbEntryArray ); + + iMessageRouter->MessageManagerCallback()->Complete(aIpc, &dataPackage, aResult); + + CleanupStack::PopAndDestroy(1); + + return; + } + break; + case EMmTsyPhoneBookStoreWriteIPC: + case EMmTsyPhoneBookStoreDeleteIPC: + case EMmTsyPhoneBookStoreDeleteAllIPC: + { + TPBEntryInfo pbEntryInfo; + + TMockLtsyPhoneBookData1 ret(pbEntryInfo); + ret.DeserialiseL(aData); + + dataPackage.SetPhoneBookName(ret.PhoneBookName()); + + dataPackage.PackData(ret.Data1Ptr()); + } + break; + case EMmTsyPhoneBookStoreGetInfoIPC : + { + TInt usedEntries; + + TMockLtsyPhoneBookData1 ret(usedEntries); + ret.DeserialiseL(aData); + + dataPackage.SetPhoneBookName(ret.PhoneBookName()); + + dataPackage.PackData(ret.Data1Ptr()); + } + break; + case EMmTsyPhoneBookStoreFdnInfoIPC: + { + TPBFdnInfo fdnInfo; + + TMockLtsyPhoneBookData1 ret(fdnInfo); + ret.DeserialiseL(aData); + + dataPackage.SetPhoneBookName(ret.PhoneBookName()); + + dataPackage.PackData(ret.Data1Ptr()); + } + break; + case EMmTsyENStoreReadIPC: + { + TENStoreResponse enStoreResp; + + TMockLtsyData1 ret(enStoreResp); + ret.DeserialiseL(aData); + + dataPackage.PackData(ret.Data1Ptr()); + + } + break; + case EMmTsyENStoreGetInfoIPC: + { + TInt usedEntries; + + TMockLtsyData1 ret(usedEntries); + ret.DeserialiseL(aData); + + dataPackage.PackData(ret.Data1Ptr()); + } + break; + case EMmTsyONStoreWriteSizeIPC: + { + TInt size; + + TMockLtsyData1 ret(size); + ret.DeserialiseL(aData); + + dataPackage.PackData(ret.Data1Ptr()); + } + break; + case EMmTsyONStoreReadIPC: + { + TONStoreMsg onStoreMsg; + TMockLtsyData1 ret(onStoreMsg); + ret.DeserialiseL(aData); + + TONStoreMsg* onStoreMsgPtr = ret.Data1Ptr(); + + dataPackage.PackData(&onStoreMsgPtr); + } + break; + case EMmTsyONStoreWriteIPC: + { + TInt location; + + TMockLtsyData1 ret(location); + ret.DeserialiseL(aData); + + dataPackage.PackData(ret.Data1Ptr()); + } + break; + + case EMmTsyONStoreGetInfoIPC: + { + TServiceType serviceType; + + TMockLtsyData1 ret(serviceType); + + ret.DeserialiseL(aData); + + dataPackage.PackData(ret.Data1Ptr()); + } + break; + + case EMmTsyENStoreReadAllPhase1IPC: + if ( KErrNone == aResult ) + { + TMockLtsyData1Buf data; + data.DeserialiseL(aData); + if ( data.Data1() ) + { + iEnRespArray.Append(data.Data1()); + } + dataPackage.PackData(data.Data1Ptr()); + } + break; + + case EMmTsyONStoreDeleteIPC: + case EMmTsyONStoreDeleteAllIPC: + break; + case EMmTsyONStoreReadSizeIPC: + { + TInt size; + TMockLtsyData1 ret(size); + ret.DeserialiseL(aData); + dataPackage.PackData(ret.Data1Ptr()); + } + break; + case EMmTsyONStoreReadEntryIPC: + { + TONStoreMsg msg; + TMockLtsyData1 ret(msg); + ret.DeserialiseL(aData); + dataPackage.PackData(ret.Data1Ptr()); + } + break; + + case EMmTsyONStoreReadAllPhase1IPC: + case EMmTsyONStoreWriteEntryIPC: + { + // complete without data + } + break; + default: + { + TMockLtsyPhoneBookData0 ret; + ret.DeserialiseL(aData); + dataPackage.SetPhoneBookName(ret.PhoneBookName()); + } + break; + } + iMessageRouter->MessageManagerCallback()->Complete(aIpc, &dataPackage, aResult); + + } + +// End of File