telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src/cmockphonebookstoremesshandler.cpp
changeset 0 3553901f7fa8
child 7 fe8b59ab9fa0
--- /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 <etelmm.h>
+#include "cmockphonebookstoremesshandler.h"
+#include <ctsy/pluginapi/mmmessagemanagercallback.h>
+#include <ctsy/pluginapi/cmmdatapackage.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include <ctsy/tflogger.h>
+#include "cmmmessagerouter.h"
+#include "cmockltsyengine.h"
+#include "tmockltsydata.h"
+
+#include <ctsy/serviceapi/cmmgsmphonestorageutility.h>
+
+
+/**
+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<RMobileONStore::TMobileONEntryV1> 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<TInt>  data(index);
+ 			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc, data);
+            }
+
+    	default:
+    	    break;
+        }
+    
+    
+ 	const CPhoneBookDataPackage* phoneBookPackage = static_cast<const CPhoneBookDataPackage*>(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<CPhoneBookStoreEntry>* pbEntryArray = NULL;
+	CArrayPtrSeg<CPhoneBookStoreEntry>** 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 <CArrayPtrSeg<CPhoneBookStoreEntry>*> 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<CArrayPtrSeg<CPhoneBookStoreEntry>*> 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<TPBEntryInfo> ret(pbEntryInfo);
+	        ret.DeserialiseL(aData);
+
+	        dataPackage.SetPhoneBookName(ret.PhoneBookName());
+		    
+			dataPackage.PackData(ret.Data1Ptr());
+    	    }    		
+    	    break;
+    	case EMmTsyPhoneBookStoreGetInfoIPC    	    :
+    	    {
+            TInt usedEntries;
+            
+	        TMockLtsyPhoneBookData1<TInt> ret(usedEntries);
+	        ret.DeserialiseL(aData);
+
+	        dataPackage.SetPhoneBookName(ret.PhoneBookName());
+		    
+			dataPackage.PackData(ret.Data1Ptr());
+    	    }    		
+    	    break;
+		case EMmTsyPhoneBookStoreFdnInfoIPC:
+		    {
+        	TPBFdnInfo fdnInfo;
+
+	        TMockLtsyPhoneBookData1<TPBFdnInfo> ret(fdnInfo);
+	        ret.DeserialiseL(aData);
+
+	        dataPackage.SetPhoneBookName(ret.PhoneBookName());
+		    
+			dataPackage.PackData(ret.Data1Ptr());
+		    }
+		    break;
+    	case EMmTsyENStoreReadIPC:
+            {
+            TENStoreResponse enStoreResp;
+            
+	        TMockLtsyData1<TENStoreResponse> ret(enStoreResp);
+	        ret.DeserialiseL(aData);
+		    
+			dataPackage.PackData(ret.Data1Ptr());
+
+            }
+            break;
+        case EMmTsyENStoreGetInfoIPC:
+            {
+            TInt usedEntries;
+            
+	        TMockLtsyData1<TInt> ret(usedEntries);
+	        ret.DeserialiseL(aData);
+		    
+			dataPackage.PackData(ret.Data1Ptr());
+            }
+            break;
+		case EMmTsyONStoreWriteSizeIPC:
+		    {
+            TInt size;
+            
+	        TMockLtsyData1<TInt> ret(size);
+	        ret.DeserialiseL(aData);
+		    
+			dataPackage.PackData(ret.Data1Ptr());
+		    }
+		    break;
+    	case EMmTsyONStoreReadIPC:
+    	    {
+   	        TONStoreMsg onStoreMsg;
+            TMockLtsyData1<TONStoreMsg> ret(onStoreMsg);
+            ret.DeserialiseL(aData);
+
+            TONStoreMsg* onStoreMsgPtr = ret.Data1Ptr();
+            
+			dataPackage.PackData(&onStoreMsgPtr);
+    	    }
+    	    break;
+        case EMmTsyONStoreWriteIPC:
+    	    {
+            TInt location;
+            
+	        TMockLtsyData1<TInt> ret(location);
+	        ret.DeserialiseL(aData);
+		    
+			dataPackage.PackData(ret.Data1Ptr());
+		    }
+		    break;
+    	    
+		case EMmTsyONStoreGetInfoIPC:
+	        {
+	        TServiceType serviceType;
+	         
+            TMockLtsyData1<TServiceType> ret(serviceType);           
+             
+	        ret.DeserialiseL(aData);
+		    
+			dataPackage.PackData(ret.Data1Ptr());
+	        }
+	        break;
+
+		case EMmTsyENStoreReadAllPhase1IPC:
+			if ( KErrNone == aResult )
+				{
+				TMockLtsyData1Buf<CRespArray*> 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<TInt> ret(size);           
+	        ret.DeserialiseL(aData);
+			dataPackage.PackData(ret.Data1Ptr());
+	        }
+	        break;
+		case EMmTsyONStoreReadEntryIPC:
+			{
+	        TONStoreMsg msg;
+            TMockLtsyData1<TONStoreMsg> 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