telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src/cmockphonebookstoremesshandler.cpp
changeset 0 3553901f7fa8
child 7 fe8b59ab9fa0
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 #include <etelmm.h>
       
    17 #include "cmockphonebookstoremesshandler.h"
       
    18 #include <ctsy/pluginapi/mmmessagemanagercallback.h>
       
    19 #include <ctsy/pluginapi/cmmdatapackage.h>
       
    20 #include <ctsy/serviceapi/mmtsy_ipcdefs.h>
       
    21 #include <ctsy/tflogger.h>
       
    22 #include "cmmmessagerouter.h"
       
    23 #include "cmockltsyengine.h"
       
    24 #include "tmockltsydata.h"
       
    25 
       
    26 #include <ctsy/serviceapi/cmmgsmphonestorageutility.h>
       
    27 
       
    28 
       
    29 /**
       
    30 Factory function
       
    31 */
       
    32 CMockPhoneBookStoreMessHandler* CMockPhoneBookStoreMessHandler::NewL(CMmMessageRouter* aMessageRouter) 
       
    33     {
       
    34     CMockPhoneBookStoreMessHandler* self = new(ELeave)CMockPhoneBookStoreMessHandler(aMessageRouter);
       
    35     CleanupStack::PushL( self );
       
    36     self->ConstructL();
       
    37     CleanupStack::Pop();
       
    38     return self;
       
    39     }
       
    40 
       
    41 /**
       
    42 Constructor
       
    43 */
       
    44 CMockPhoneBookStoreMessHandler::CMockPhoneBookStoreMessHandler(CMmMessageRouter* aMessageRouter)
       
    45 	:iMessageRouter(aMessageRouter)
       
    46     {
       
    47     }
       
    48 
       
    49 /**
       
    50 2nd phase contructor
       
    51 */
       
    52 void CMockPhoneBookStoreMessHandler::ConstructL()
       
    53     {
       
    54     }
       
    55 
       
    56 /**
       
    57 Destructor
       
    58 */
       
    59 CMockPhoneBookStoreMessHandler::~CMockPhoneBookStoreMessHandler()
       
    60     {
       
    61     
       
    62 	for (TInt i(0); i < iEnRespArray.Count(); i++)
       
    63 		{
       
    64 		if ( iEnRespArray[i] )
       
    65 			{
       
    66 			iEnRespArray[i]->ResetAndDestroy();
       
    67 			}
       
    68 		}
       
    69 	iEnRespArray.ResetAndDestroy();
       
    70     }
       
    71 
       
    72 /**
       
    73 Execute a request
       
    74 */
       
    75 TInt CMockPhoneBookStoreMessHandler::ExtFuncL(TInt aIpc,const CMmDataPackage* aMmDataPackage) 
       
    76     {
       
    77     
       
    78     switch(aIpc)
       
    79         {            
       
    80     	case EMmTsyENStoreReadIPC:
       
    81         case EMmTsyONStoreReadIPC:
       
    82         case EMmTsyENStoreGetInfoIPC:
       
    83     	case EMmTsyONStoreWriteSizeIPC:
       
    84         case EMmTsyONStoreDeleteIPC:
       
    85         case EMmTsyONStoreGetInfoIPC:
       
    86         case EMmTsyENStoreReadAllPhase1IPC:
       
    87     	    {
       
    88     	    TInt index;
       
    89     	    
       
    90     	    aMmDataPackage->UnPackData(index);
       
    91     	    
       
    92 		    TMockLtsyData1< TInt > data(index);
       
    93  			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data);
       
    94     	    }
       
    95         case EMmTsyONStoreWriteEntryIPC:
       
    96             {
       
    97     	    RMobileONStore::TMobileONEntryV1 entry;
       
    98     	    
       
    99     	    aMmDataPackage->UnPackData(entry);
       
   100     	    
       
   101 		    TMockLtsyData1< RMobileONStore::TMobileONEntryV1 > data(entry);
       
   102  			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data);
       
   103             }
       
   104             
       
   105         case EMmTsyONStoreWriteIPC:
       
   106             {
       
   107             RMobileONStore::TMobileONEntryV1Pckg* ptr;
       
   108 	        	    
       
   109     	    aMmDataPackage->UnPackData(ptr);
       
   110     	    
       
   111             RMobileONStore::TMobileONEntryV1& entry = ( *ptr )();
       
   112     	    
       
   113   	        TMockLtsyData1<RMobileONStore::TMobileONEntryV1> data(entry);
       
   114     	    
       
   115  			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data);
       
   116             }
       
   117             
       
   118         case EMmTsyONStoreDeleteAllIPC:
       
   119             {
       
   120 		    TMockLtsyData0 data;
       
   121  			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data);
       
   122             }
       
   123         case EMmTsyONStoreReadEntryIPC:
       
   124         case EMmTsyONStoreReadSizeIPC:
       
   125             {
       
   126             TInt index;
       
   127     	    aMmDataPackage->UnPackData(index);
       
   128 		    TMockLtsyData1<TInt>  data(index);
       
   129  			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc, data);
       
   130             }
       
   131 
       
   132     	default:
       
   133     	    break;
       
   134         }
       
   135     
       
   136     
       
   137  	const CPhoneBookDataPackage* phoneBookPackage = static_cast<const CPhoneBookDataPackage*>(aMmDataPackage);
       
   138  	TName phoneBookName;
       
   139 	phoneBookPackage->GetPhoneBookName(phoneBookName);    
       
   140 	
       
   141     switch (aIpc)
       
   142     	{    	
       
   143     	case EMmTsyPhoneBookStoreInitIPC:
       
   144     	    {
       
   145 		    TMockLtsyPhoneBookData0 data(phoneBookName);		    
       
   146  			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data);
       
   147     	    }
       
   148     	case EMmTsyPhoneBookStoreReadIPC:
       
   149     	    {
       
   150             RMobilePhoneBookStore::TPBIndexAndNumEntries* indexAndEntriesPtr;
       
   151             phoneBookPackage->UnPackData(indexAndEntriesPtr);
       
   152             
       
   153             TMockLtsyPhoneBookData1< RMobilePhoneBookStore::TPBIndexAndNumEntries > 
       
   154                     data(phoneBookName, *indexAndEntriesPtr);
       
   155                     
       
   156             return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data);
       
   157     	    }
       
   158     	case EMmTsyPhoneBookStoreCacheIPC:
       
   159     	    {
       
   160 		    TMockLtsyPhoneBookData0 data(phoneBookName);		    
       
   161 			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data);
       
   162     	    }
       
   163     	case EMmTsyPhoneBookStoreWriteIPC:
       
   164     	    {
       
   165     	    CPhoneBookStoreEntry* entryPtr;
       
   166     	    TInt index;
       
   167 
       
   168     	    phoneBookPackage->UnPackData(index, entryPtr);
       
   169     	    
       
   170 		    TMockLtsyPhoneBookData2< TInt, CPhoneBookStoreEntry* > data(phoneBookName, index, entryPtr);
       
   171  			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data);
       
   172     	    }
       
   173 
       
   174     	case EMmTsyPhoneBookStoreDeleteIPC:
       
   175     	    {
       
   176     	    TInt index;
       
   177     	    
       
   178     	    phoneBookPackage->UnPackData(index);
       
   179     	    
       
   180 		    TMockLtsyPhoneBookData1< TInt > data(phoneBookName, index);
       
   181  			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data);
       
   182     	    }
       
   183             
       
   184     	default:
       
   185     		{
       
   186 		    TMockLtsyPhoneBookData0 data(phoneBookName);		    
       
   187  			return iMessageRouter->MockLtsyEngine()->ExecuteCommandL(aIpc,data);
       
   188     		}
       
   189     	}
       
   190     }
       
   191 
       
   192 /**
       
   193 Complete a request
       
   194 */
       
   195 void CMockPhoneBookStoreMessHandler::CompleteL(TInt aIpc, const TDesC8& aData, TInt aResult)
       
   196 	{
       
   197 	CPhoneBookDataPackage dataPackage;
       
   198 	CArrayPtrSeg<CPhoneBookStoreEntry>* pbEntryArray = NULL;
       
   199 	CArrayPtrSeg<CPhoneBookStoreEntry>** ptr = NULL;
       
   200 
       
   201 	switch (aIpc)
       
   202 		{
       
   203     	case EMmTsyPhoneBookStoreInitIPC:
       
   204 		    {
       
   205             CStorageInfoData info;    		
       
   206             
       
   207 	        TMockLtsyPhoneBookData1< CStorageInfoData > retStoreAndName(info);
       
   208 	        retStoreAndName.DeserialiseL(aData);
       
   209 	        
       
   210 	        dataPackage.SetPhoneBookName(retStoreAndName.PhoneBookName());
       
   211 
       
   212 			dataPackage.PackData(retStoreAndName.Data1Ptr());
       
   213 		    }
       
   214 		    break;
       
   215 		case EMmTsyPhoneBookStoreCacheIPC:
       
   216 		    { 		    		    	    
       
   217 		    TMockLtsyPhoneBookData1Buf <CArrayPtrSeg<CPhoneBookStoreEntry>*> retStoreAndName;		    		    
       
   218 			CleanupClosePushL(retStoreAndName);	  	 
       
   219 		    
       
   220             retStoreAndName.DeserialiseL(aData);    
       
   221 	        dataPackage.SetPhoneBookName(retStoreAndName.PhoneBookName());	        
       
   222 	        
       
   223 			pbEntryArray = retStoreAndName.Data1();			
       
   224 			dataPackage.PackData( &pbEntryArray );
       
   225 			
       
   226 			iMessageRouter->MessageManagerCallback()->Complete(aIpc, &dataPackage, aResult);
       
   227 			
       
   228 			CleanupStack::PopAndDestroy(1); 
       
   229 			
       
   230 			return;
       
   231 		    }
       
   232 		    break;
       
   233     	case EMmTsyPhoneBookStoreReadIPC:
       
   234     	    {
       
   235 		    TMockLtsyPhoneBookData1Buf<CArrayPtrSeg<CPhoneBookStoreEntry>*> retStoreAndName;
       
   236 			CleanupClosePushL(retStoreAndName);
       
   237 		    
       
   238 		    retStoreAndName.DeserialiseL(aData);
       
   239             
       
   240             dataPackage.SetPhoneBookName(retStoreAndName.PhoneBookName());
       
   241 
       
   242             pbEntryArray = retStoreAndName.Data1();
       
   243             dataPackage.PackData( &pbEntryArray );
       
   244             
       
   245             iMessageRouter->MessageManagerCallback()->Complete(aIpc, &dataPackage, aResult);
       
   246 
       
   247 			CleanupStack::PopAndDestroy(1);
       
   248 			
       
   249 			return;
       
   250     	    }    		
       
   251     	    break;
       
   252     	case EMmTsyPhoneBookStoreWriteIPC:
       
   253     	case EMmTsyPhoneBookStoreDeleteIPC:
       
   254     	case EMmTsyPhoneBookStoreDeleteAllIPC:
       
   255     	    {
       
   256             TPBEntryInfo pbEntryInfo;
       
   257             
       
   258 	        TMockLtsyPhoneBookData1<TPBEntryInfo> ret(pbEntryInfo);
       
   259 	        ret.DeserialiseL(aData);
       
   260 
       
   261 	        dataPackage.SetPhoneBookName(ret.PhoneBookName());
       
   262 		    
       
   263 			dataPackage.PackData(ret.Data1Ptr());
       
   264     	    }    		
       
   265     	    break;
       
   266     	case EMmTsyPhoneBookStoreGetInfoIPC    	    :
       
   267     	    {
       
   268             TInt usedEntries;
       
   269             
       
   270 	        TMockLtsyPhoneBookData1<TInt> ret(usedEntries);
       
   271 	        ret.DeserialiseL(aData);
       
   272 
       
   273 	        dataPackage.SetPhoneBookName(ret.PhoneBookName());
       
   274 		    
       
   275 			dataPackage.PackData(ret.Data1Ptr());
       
   276     	    }    		
       
   277     	    break;
       
   278 		case EMmTsyPhoneBookStoreFdnInfoIPC:
       
   279 		    {
       
   280         	TPBFdnInfo fdnInfo;
       
   281 
       
   282 	        TMockLtsyPhoneBookData1<TPBFdnInfo> ret(fdnInfo);
       
   283 	        ret.DeserialiseL(aData);
       
   284 
       
   285 	        dataPackage.SetPhoneBookName(ret.PhoneBookName());
       
   286 		    
       
   287 			dataPackage.PackData(ret.Data1Ptr());
       
   288 		    }
       
   289 		    break;
       
   290     	case EMmTsyENStoreReadIPC:
       
   291             {
       
   292             TENStoreResponse enStoreResp;
       
   293             
       
   294 	        TMockLtsyData1<TENStoreResponse> ret(enStoreResp);
       
   295 	        ret.DeserialiseL(aData);
       
   296 		    
       
   297 			dataPackage.PackData(ret.Data1Ptr());
       
   298 
       
   299             }
       
   300             break;
       
   301         case EMmTsyENStoreGetInfoIPC:
       
   302             {
       
   303             TInt usedEntries;
       
   304             
       
   305 	        TMockLtsyData1<TInt> ret(usedEntries);
       
   306 	        ret.DeserialiseL(aData);
       
   307 		    
       
   308 			dataPackage.PackData(ret.Data1Ptr());
       
   309             }
       
   310             break;
       
   311 		case EMmTsyONStoreWriteSizeIPC:
       
   312 		    {
       
   313             TInt size;
       
   314             
       
   315 	        TMockLtsyData1<TInt> ret(size);
       
   316 	        ret.DeserialiseL(aData);
       
   317 		    
       
   318 			dataPackage.PackData(ret.Data1Ptr());
       
   319 		    }
       
   320 		    break;
       
   321     	case EMmTsyONStoreReadIPC:
       
   322     	    {
       
   323    	        TONStoreMsg onStoreMsg;
       
   324             TMockLtsyData1<TONStoreMsg> ret(onStoreMsg);
       
   325             ret.DeserialiseL(aData);
       
   326 
       
   327             TONStoreMsg* onStoreMsgPtr = ret.Data1Ptr();
       
   328             
       
   329 			dataPackage.PackData(&onStoreMsgPtr);
       
   330     	    }
       
   331     	    break;
       
   332         case EMmTsyONStoreWriteIPC:
       
   333     	    {
       
   334             TInt location;
       
   335             
       
   336 	        TMockLtsyData1<TInt> ret(location);
       
   337 	        ret.DeserialiseL(aData);
       
   338 		    
       
   339 			dataPackage.PackData(ret.Data1Ptr());
       
   340 		    }
       
   341 		    break;
       
   342     	    
       
   343 		case EMmTsyONStoreGetInfoIPC:
       
   344 	        {
       
   345 	        TServiceType serviceType;
       
   346 	         
       
   347             TMockLtsyData1<TServiceType> ret(serviceType);           
       
   348              
       
   349 	        ret.DeserialiseL(aData);
       
   350 		    
       
   351 			dataPackage.PackData(ret.Data1Ptr());
       
   352 	        }
       
   353 	        break;
       
   354 
       
   355 		case EMmTsyENStoreReadAllPhase1IPC:
       
   356 			if ( KErrNone == aResult )
       
   357 				{
       
   358 				TMockLtsyData1Buf<CRespArray*> data;
       
   359 				data.DeserialiseL(aData);
       
   360 				if ( data.Data1() )
       
   361 					{
       
   362 					iEnRespArray.Append(data.Data1());
       
   363 					}
       
   364 				dataPackage.PackData(data.Data1Ptr());
       
   365 				}
       
   366 			break;
       
   367 
       
   368 		case EMmTsyONStoreDeleteIPC:
       
   369    		case EMmTsyONStoreDeleteAllIPC:
       
   370 		    break;
       
   371 		case EMmTsyONStoreReadSizeIPC:
       
   372 			{
       
   373 	        TInt size;
       
   374             TMockLtsyData1<TInt> ret(size);           
       
   375 	        ret.DeserialiseL(aData);
       
   376 			dataPackage.PackData(ret.Data1Ptr());
       
   377 	        }
       
   378 	        break;
       
   379 		case EMmTsyONStoreReadEntryIPC:
       
   380 			{
       
   381 	        TONStoreMsg msg;
       
   382             TMockLtsyData1<TONStoreMsg> ret(msg);           
       
   383 	        ret.DeserialiseL(aData);
       
   384 			dataPackage.PackData(ret.Data1Ptr());
       
   385 	        }
       
   386 	        break;
       
   387 		
       
   388 		case EMmTsyONStoreReadAllPhase1IPC:
       
   389         case EMmTsyONStoreWriteEntryIPC:
       
   390             {
       
   391             // complete without data
       
   392             }
       
   393             break;
       
   394 		default:
       
   395 			{
       
   396 	        TMockLtsyPhoneBookData0 ret;
       
   397 	        ret.DeserialiseL(aData);
       
   398 	        dataPackage.SetPhoneBookName(ret.PhoneBookName());
       
   399 			}
       
   400 			break;
       
   401 		}
       
   402 	iMessageRouter->MessageManagerCallback()->Complete(aIpc, &dataPackage, aResult);
       
   403 
       
   404 	}
       
   405 
       
   406 // End of File