telephonyserverplugins/simtsy/src/CSimMbmsPacketContext.cpp
branchRCL_3
changeset 20 07a122eea281
parent 19 630d2f34d719
equal deleted inserted replaced
19:630d2f34d719 20:07a122eea281
    17 
    17 
    18 /**
    18 /**
    19  @file
    19  @file
    20 */
    20 */
    21 
    21 
    22 
    22 #include "Simlog.h"
    23 
       
    24 #include "OstTraceDefinitions.h"
       
    25 #ifdef OST_TRACE_COMPILER_IN_USE
       
    26 #include "CSimMbmsPacketContextTraces.h"
       
    27 #endif
       
    28 
       
    29 #include "CSimPhone.h"
    23 #include "CSimPhone.h"
    30 #include "CSimMbmsPacketContext.h"
    24 #include "CSimMbmsPacketContext.h"
    31 #include "CSimPacketQoS.h"
    25 #include "CSimPacketQoS.h"
    32 #include "utils.h"
    26 #include "utils.h"
    33 #include <e32math.h>
    27 #include <e32math.h>
    59 *
    53 *
    60 * @param aPacketService Pointer to the Packet Service object (CSimPacketService)
    54 * @param aPacketService Pointer to the Packet Service object (CSimPacketService)
    61 * @param aContextName name  for this packet context
    55 * @param aContextName name  for this packet context
    62 */
    56 */
    63 	{
    57 	{
    64 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_CTOR_1, "CSimMbmsPacketContext: Entered constructor");
    58 	LOGPACKET1("CSimMbmsPacketContext: Entered constructor");
    65 	iNotifyConfigMBMS.iNotifyPending = EFalse;
    59 	iNotifyConfigMBMS.iNotifyPending = EFalse;
    66 	iNotifyStatusChange.iNotifyPending = EFalse;
    60 	iNotifyStatusChange.iNotifyPending = EFalse;
    67 	}
    61 	}
    68 
    62 
    69 void CSimMbmsPacketContext::ConstructL()
    63 void CSimMbmsPacketContext::ConstructL()
    72 * Constructs all the member data and retrieves all the data from the config file specific to this class.
    66 * Constructs all the member data and retrieves all the data from the config file specific to this class.
    73 *
    67 *
    74 * @leave Leaves no memory or any data member does not construct for any reason.
    68 * @leave Leaves no memory or any data member does not construct for any reason.
    75 */
    69 */
    76 	{
    70 	{
    77 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_CONSTRUCTL_1, "CSimMbmsPacketContext: Entered constructL function");
    71 	LOGPACKET1("CSimMbmsPacketContext: Entered constructL function");
    78 	CSimPacketContext::ConstructL();
    72 	CSimPacketContext::ConstructL();
    79 	
    73 	
    80 	iMbmsSetConfigTimer = CSimTimer::NewL(iPhone);
    74 	iMbmsSetConfigTimer = CSimTimer::NewL(iPhone);
    81 	iMbmsContextTimer = CSimTimer::NewL(iPhone);
    75 	iMbmsContextTimer = CSimTimer::NewL(iPhone);
    82 	iMbmsUpdateSessionTimer = CSimTimer::NewL(iPhone);
    76 	iMbmsUpdateSessionTimer = CSimTimer::NewL(iPhone);
   203 * Trivial Destructor
   197 * Trivial Destructor
   204 * Closes all CObject type objects and destroys all other objects created in the ConstructL()
   198 * Closes all CObject type objects and destroys all other objects created in the ConstructL()
   205 *
   199 *
   206 */
   200 */
   207 	{
   201 	{
   208 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_DTOR_1, "CSimMbmsPacketContext: Entered destructor");
   202 	LOGPACKET1("CSimMbmsPacketContext: Entered destructor");
   209 
   203 
   210 	if (iMbmsSetConfigTimer != NULL)
   204 	if (iMbmsSetConfigTimer != NULL)
   211 		{
   205 		{
   212 		delete iMbmsSetConfigTimer;
   206 		delete iMbmsSetConfigTimer;
   213 		}
   207 		}
   261  * @param aName name of the QoS object to be opened
   255  * @param aName name of the QoS object to be opened
   262  * @leave Leaves with KErrNotSupported if the name is not as expected.
   256  * @leave Leaves with KErrNotSupported if the name is not as expected.
   263  * @ return NULL.
   257  * @ return NULL.
   264  */
   258  */
   265 	{	
   259 	{	
   266 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_OPENNEWOBJECTBYNAMEL_1, "Unexpected call to CSimMbmsPacketContext: OpenNewObjectByName");
   260 	LOGPACKET1("Unexpected call to CSimMbmsPacketContext: OpenNewObjectByName");
   267 	User::Leave(KErrNotSupported);
   261 	User::Leave(KErrNotSupported);
   268 	return NULL;
   262 	return NULL;
   269 	}
   263 	}
   270 
   264 
   271 CTelObject* CSimMbmsPacketContext::OpenNewObjectL(TDes& /*aNewName*/)
   265 CTelObject* CSimMbmsPacketContext::OpenNewObjectL(TDes& /*aNewName*/)
   276  * @param aNewName new name of the object created
   270  * @param aNewName new name of the object created
   277  * @return NULL
   271  * @return NULL
   278  * @leave Leaves if out of memory.
   272  * @leave Leaves if out of memory.
   279  */
   273  */
   280 	{
   274 	{
   281 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_OPENNEWOBJECTL_1, "Unexpected call to CSimMbmsPacketContext: OpenNewObjectL");
   275 	LOGPACKET1("Unexpected call to CSimMbmsPacketContext: OpenNewObjectL");
   282 	User::Leave(KErrNotSupported);
   276 	User::Leave(KErrNotSupported);
   283 	return NULL;
   277 	return NULL;
   284 	}
   278 	}
   285 
   279 
   286 CTelObject::TReqMode CSimMbmsPacketContext::ReqModeL(const TInt aIpc)
   280 CTelObject::TReqMode CSimMbmsPacketContext::ReqModeL(const TInt aIpc)
   291 * @param aIpc the ipc number that identifies the client request
   285 * @param aIpc the ipc number that identifies the client request
   292 * @return CTelObject::TReqMode The request mode to be used for this request
   286 * @return CTelObject::TReqMode The request mode to be used for this request
   293 * @leave Leaves if not supported by this tsy 
   287 * @leave Leaves if not supported by this tsy 
   294 */
   288 */
   295 	{
   289 	{
   296 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_REQMODEL_1, "CSimMbmsPacketContext: ReqModeL");
   290 	LOGPACKET1("CSimMbmsPacketContext: ReqModeL");
   297 	CTelObject::TReqMode ret=0;
   291 	CTelObject::TReqMode ret=0;
   298 	switch (aIpc)
   292 	switch (aIpc)
   299 		{
   293 		{
   300 		case EPacketContextGetConfig:
   294 		case EPacketContextGetConfig:
   301 		case EPacketContextSetConfig:
   295 		case EPacketContextSetConfig:
   314 		case EPacketContextNotifyStatusChange:
   308 		case EPacketContextNotifyStatusChange:
   315 		case EPacketContextNotifyDataTransferred:
   309 		case EPacketContextNotifyDataTransferred:
   316 			ret=KReqModeMultipleCompletionEnabled | KReqModeRePostImmediately;
   310 			ret=KReqModeMultipleCompletionEnabled | KReqModeRePostImmediately;
   317 			break;
   311 			break;
   318 		default:
   312 		default:
   319 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_REQMODEL_2, "CSimMbmsPacketContext: ReqModeL error, unknown IPC");
   313 			LOGPACKET1("CSimMbmsPacketContext: ReqModeL error, unknown IPC");
   320 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_REQMODEL_3, "CSimMbmsPacketContext: ReqModeL sending the request to CSimPacketContext");
   314 			LOGPACKET1("CSimMbmsPacketContext: ReqModeL sending the request to CSimPacketContext");
   321 			ret = CSimPacketContext::ReqModeL(aIpc);
   315 			ret = CSimPacketContext::ReqModeL(aIpc);
   322 			break;
   316 			break;
   323 		}
   317 		}
   324 	return ret;
   318 	return ret;
   325 	}
   319 	}
   334 *
   328 *
   335 * @param aIpc the ipc number that identifies the client request
   329 * @param aIpc the ipc number that identifies the client request
   336 * @return err KErrNone if fine
   330 * @return err KErrNone if fine
   337 */
   331 */
   338 	{
   332 	{
   339 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_REGISTERNOTIFICATION_1, "CSimMbmsPacketContext: RegisterNotification called");
   333 	LOGPACKET1("CSimMbmsPacketContext: RegisterNotification called");
   340 	switch (aIpc)
   334 	switch (aIpc)
   341 		{
   335 		{
   342 		case EPacketContextNotifyConfigChanged:
   336 		case EPacketContextNotifyConfigChanged:
   343 		case EPacketContextNotifyStatusChange:
   337 		case EPacketContextNotifyStatusChange:
   344 		case EPacketContextNotifyDataTransferred:
   338 		case EPacketContextNotifyDataTransferred:
   345 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_REGISTERNOTIFICATION_2, "CSimMbmsPacketContext: RegisterNotification");
   339 			LOGPACKET1("CSimMbmsPacketContext: RegisterNotification");
   346 			return KErrNone;
   340 			return KErrNone;
   347 		default:
   341 		default:
   348 			// Unknown or invalid IPC
   342 			// Unknown or invalid IPC
   349 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_REGISTERNOTIFICATION_3, "CSimMbmsPacketContext: Register error, unknown IPC");
   343 			LOGPACKET1("CSimMbmsPacketContext: Register error, unknown IPC");
   350 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_REGISTERNOTIFICATION_4, "CSimMbmsPacketContext: Register sending the request to CSimPacketContext");
   344 			LOGPACKET1("CSimMbmsPacketContext: Register sending the request to CSimPacketContext");
   351 			return CSimPacketContext::RegisterNotification(aIpc);
   345 			return CSimPacketContext::RegisterNotification(aIpc);
   352 		}
   346 		}
   353 	}
   347 	}
   354 
   348 
   355 TInt CSimMbmsPacketContext::DeregisterNotification(const TInt aIpc)
   349 TInt CSimMbmsPacketContext::DeregisterNotification(const TInt aIpc)
   363 *
   357 *
   364 * @param aIpc the ipc number that identifies the client request
   358 * @param aIpc the ipc number that identifies the client request
   365 * @return err KErrNone if fine
   359 * @return err KErrNone if fine
   366 */
   360 */
   367 	{	
   361 	{	
   368 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_DEREGISTERNOTIFICATION_1, "CSimMbmsPacketContext: DeregisterNotification called");
   362 	LOGPACKET1("CSimMbmsPacketContext: DeregisterNotification called");
   369 	switch (aIpc)
   363 	switch (aIpc)
   370 		{
   364 		{
   371 		case EPacketContextNotifyConfigChanged:
   365 		case EPacketContextNotifyConfigChanged:
   372 		case EPacketContextNotifyStatusChange:
   366 		case EPacketContextNotifyStatusChange:
   373 		case EPacketContextNotifyDataTransferred:
   367 		case EPacketContextNotifyDataTransferred:
   374 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_DEREGISTERNOTIFICATION_2, "CSimMbmsPacketContext: DeregisterNotification");
   368 			LOGPACKET1("CSimMbmsPacketContext: DeregisterNotification");
   375 			return KErrNone;
   369 			return KErrNone;
   376 		default:
   370 		default:
   377 			// Unknown or invalid IPC
   371 			// Unknown or invalid IPC
   378 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_DEREGISTERNOTIFICATION_3, "CSimMbmsPacketContext: Deregister error, unknown IPC");
   372 			LOGPACKET1("CSimMbmsPacketContext: Deregister error, unknown IPC");
   379 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_DEREGISTERNOTIFICATION_4, "CSimMbmsPacketContext: Deregister sending the request to CSimPacketContext");
   373 			LOGPACKET1("CSimMbmsPacketContext: Deregister sending the request to CSimPacketContext");
   380 			return CSimPacketContext::DeregisterNotification(aIpc);
   374 			return CSimPacketContext::DeregisterNotification(aIpc);
   381 		}
   375 		}
   382 	}
   376 	}
   383 
   377 
   384 TInt CSimMbmsPacketContext::NumberOfSlotsL(const TInt aIpc)
   378 TInt CSimMbmsPacketContext::NumberOfSlotsL(const TInt aIpc)
   389 *
   383 *
   390 * @param aIpc the ipc number that identifies the client request
   384 * @param aIpc the ipc number that identifies the client request
   391 * @return err KErrNone if fine
   385 * @return err KErrNone if fine
   392 */
   386 */
   393 	{
   387 	{
   394 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_NUMBEROFSLOTSL_1, "CSimMbmsPacketContext: NumberOfSlotsL called");
   388 	LOGPACKET1("CSimMbmsPacketContext: NumberOfSlotsL called");
   395 	TInt numberOfSlots=1;
   389 	TInt numberOfSlots=1;
   396 	switch (aIpc)
   390 	switch (aIpc)
   397 		{
   391 		{
   398 		case EPacketContextNotifyConfigChanged:
   392 		case EPacketContextNotifyConfigChanged:
   399 		case EPacketContextNotifyStatusChange:
   393 		case EPacketContextNotifyStatusChange:
   400 		case EPacketContextNotifyDataTransferred:
   394 		case EPacketContextNotifyDataTransferred:
   401 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_NUMBEROFSLOTSL_2, "CSimMbmsPacketContext: Registered with 5 slots");
   395 			LOGPACKET1("CSimMbmsPacketContext: Registered with 5 slots");
   402 			numberOfSlots=5;
   396 			numberOfSlots=5;
   403 			break;
   397 			break;
   404 		default:
   398 		default:
   405 			// Unknown or invalid IPC
   399 			// Unknown or invalid IPC
   406 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_NUMBEROFSLOTSL_3, "CSimMbmsPacketContext: Number of Slots error, unknown IPC");
   400 			LOGPACKET1("CSimMbmsPacketContext: Number of Slots error, unknown IPC");
   407 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_NUMBEROFSLOTSL_4, "CSimMbmsPacketContext: Number of Slots: sending the request to CSimPacketContext");
   401 			LOGPACKET1("CSimMbmsPacketContext: Number of Slots: sending the request to CSimPacketContext");
   408 			return CSimPacketContext::NumberOfSlotsL(aIpc);
   402 			return CSimPacketContext::NumberOfSlotsL(aIpc);
   409 		}  
   403 		}  
   410 	return numberOfSlots;
   404 	return numberOfSlots;
   411 	}
   405 	}
   412 
   406 
   429 	if(iDeleted && (aIpc != EPacketContextGetStatus))  
   423 	if(iDeleted && (aIpc != EPacketContextGetStatus))  
   430 		{
   424 		{
   431 		ReqCompleted(aTsyReqHandle,KErrNotReady);
   425 		ReqCompleted(aTsyReqHandle,KErrNotReady);
   432 		return KErrNone;
   426 		return KErrNone;
   433 		}
   427 		}
   434 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_EXTFUNC_1, "CSimMbmsPacketContext: ExtFunc Called");
   428 	LOGPACKET1("CSimMbmsPacketContext: ExtFunc Called");
   435 	TAny* dataPtr=aPackage.Ptr1();
   429 	TAny* dataPtr=aPackage.Ptr1();
   436 	TAny* dataPtr2=aPackage.Ptr2();
   430 	TAny* dataPtr2=aPackage.Ptr2();
   437 
   431 
   438 	switch (aIpc)
   432 	switch (aIpc)
   439 		{
   433 		{
   448 		case EPacketContextActivate:
   442 		case EPacketContextActivate:
   449 			{	//< Ensures that theres only one context active as only one active context is 
   443 			{	//< Ensures that theres only one context active as only one active context is 
   450 			//<permitted at any one time
   444 			//<permitted at any one time
   451 			if(iIsActive)
   445 			if(iIsActive)
   452 				{
   446 				{
   453 				OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_EXTFUNC_2, "Trying to activate an already activated context");
   447 				LOGPACKET1("Trying to activate an already activated context");
   454 				ReqCompleted(aTsyReqHandle,KErrEtelCallAlreadyActive);
   448 				ReqCompleted(aTsyReqHandle,KErrEtelCallAlreadyActive);
   455 				return KErrNone;
   449 				return KErrNone;
   456 				}
   450 				}
   457 			else
   451 			else
   458 				return Activate(aTsyReqHandle);
   452 				return Activate(aTsyReqHandle);
   496 			REINTERPRET_CAST(TInt*, dataPtr2));
   490 			REINTERPRET_CAST(TInt*, dataPtr2));
   497 		case EPacketGetMbmsSessionListPhase2:
   491 		case EPacketGetMbmsSessionListPhase2:
   498 			return GetMbmsSessionsPhase2(aTsyReqHandle, 
   492 			return GetMbmsSessionsPhase2(aTsyReqHandle, 
   499 			REINTERPRET_CAST(TClientId*, dataPtr), aPackage.Des2n());		
   493 			REINTERPRET_CAST(TClientId*, dataPtr), aPackage.Des2n());		
   500 		default:
   494 		default:
   501 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_EXTFUNC_3, "CSimMbmsPacketContext: ExtFunc Unknown IPC");
   495 			LOGPACKET1("CSimMbmsPacketContext: ExtFunc Unknown IPC");
   502 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_EXTFUNC_4, "CSimMbmsPacketContext: sending the request to CSimPacketContext::ExtFunc Unknown IPC");
   496 			LOGPACKET1("CSimMbmsPacketContext: sending the request to CSimPacketContext::ExtFunc Unknown IPC");
   503 			return CSimPacketContext::ExtFunc(aTsyReqHandle,aIpc,aPackage);
   497 			return CSimPacketContext::ExtFunc(aTsyReqHandle,aIpc,aPackage);
   504 		}
   498 		}
   505 	}
   499 	}
   506 		
   500 		
   507 TInt CSimMbmsPacketContext::CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle)
   501 TInt CSimMbmsPacketContext::CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle)
   513 * @param aTsyReqHandle  The request handle for completing the request 
   507 * @param aTsyReqHandle  The request handle for completing the request 
   514 * @param aIpc Ipc representing the request
   508 * @param aIpc Ipc representing the request
   515 * @return err KErrNone if request completes ok
   509 * @return err KErrNone if request completes ok
   516 */
   510 */
   517 	{
   511 	{
   518 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_CANCELSERVICE_1, "CSimMbmsPacketContext: - CancelService called");
   512 	LOGPACKET1("CSimMbmsPacketContext: - CancelService called");
   519 
   513 
   520 	switch (aIpc)
   514 	switch (aIpc)
   521 		{
   515 		{
   522 		case EPacketContextSetConfig:
   516 		case EPacketContextSetConfig:
   523 			return SetConfigCancel(aTsyReqHandle);
   517 			return SetConfigCancel(aTsyReqHandle);
   537 			return InitialiseContextCancel(aTsyReqHandle);
   531 			return InitialiseContextCancel(aTsyReqHandle);
   538 		case EPacketGetMbmsSessionListPhase1:
   532 		case EPacketGetMbmsSessionListPhase1:
   539 		case EPacketGetMbmsSessionListPhase2:
   533 		case EPacketGetMbmsSessionListPhase2:
   540 			return GetMbmsSessionsCancel(aTsyReqHandle);
   534 			return GetMbmsSessionsCancel(aTsyReqHandle);
   541 		default:
   535 		default:
   542 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_CANCELSERVICE_2, "CSimMbmsPacketContext: - CancelService unknown IPC called");
   536 			LOGPACKET1("CSimMbmsPacketContext: - CancelService unknown IPC called");
   543 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_CANCELSERVICE_3, "CSimMbmsPacketContext: sending the request to CSimPacketContext::ExtFunc Unknown IPC");
   537 			LOGPACKET1("CSimMbmsPacketContext: sending the request to CSimPacketContext::ExtFunc Unknown IPC");
   544 			return CSimPacketContext::CancelService(aIpc,aTsyReqHandle);
   538 			return CSimPacketContext::CancelService(aIpc,aTsyReqHandle);
   545 		}
   539 		}
   546 	}
   540 	}
   547 
   541 
   548 void CSimMbmsPacketContext::TimerCallBack(TInt aId)
   542 void CSimMbmsPacketContext::TimerCallBack(TInt aId)
   550 * Timer callback function.  When the timer goes off, it will call back into this
   544 * Timer callback function.  When the timer goes off, it will call back into this
   551 * function for further processing.
   545 * function for further processing.
   552 * param - aId indicates which Timer Event has occured.
   546 * param - aId indicates which Timer Event has occured.
   553 */
   547 */
   554 	{
   548 	{
   555 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_1, "CSimMbmsPacketContext: - TimerCallBack(TInt aId) called");
   549 	LOGPACKET1("CSimMbmsPacketContext: - TimerCallBack(TInt aId) called");
   556 	switch(aId)
   550 	switch(aId)
   557 		{
   551 		{
   558 		case ETimerIdMbmsPcktContextSetConfig:
   552 		case ETimerIdMbmsPcktContextSetConfig:
   559 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_2, "CSimMbmsPacketContext: - TimerCallBack SetConfig called");
   553 			LOGPACKET1("CSimMbmsPacketContext: - TimerCallBack SetConfig called");
   560 			if(iSetConfigValues.iErrorValue == KErrNone)
   554 			if(iSetConfigValues.iErrorValue == KErrNone)
   561 				{
   555 				{
   562 				iMbmsContextConfigParamsIndex = iSetConfigValues.iIndex ;
   556 				iMbmsContextConfigParamsIndex = iSetConfigValues.iIndex ;
   563 				}
   557 				}
   564 			ReqCompleted(iSetConfigRequestHandle,iSetConfigValues.iErrorValue);
   558 			ReqCompleted(iSetConfigRequestHandle,iSetConfigValues.iErrorValue);
   565 			break;
   559 			break;
   566 		case ETimerIdMbmsUpdateSessionId:
   560 		case ETimerIdMbmsUpdateSessionId:
   567 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_3, "CSimMbmsPacketContext: - TimerCallBack UpdateSessionID called");
   561 			LOGPACKET1("CSimMbmsPacketContext: - TimerCallBack UpdateSessionID called");
   568 			if(iUpdateSessionHandle != NULL)
   562 			if(iUpdateSessionHandle != NULL)
   569 				{
   563 				{
   570 				ReqCompleted(iUpdateSessionHandle,KErrNone);
   564 				ReqCompleted(iUpdateSessionHandle,KErrNone);
   571 				}
   565 				}
   572 			break;
   566 			break;
   576 		case ETimerIdPcktContextCreateTft:
   570 		case ETimerIdPcktContextCreateTft:
   577 			CSimPacketContext::TimerCallBack(aId);
   571 			CSimPacketContext::TimerCallBack(aId);
   578 			break;
   572 			break;
   579 		default:
   573 		default:
   580 			{
   574 			{
   581 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_4, ">>CSimMbmsPacketContext::TimerCallBack Default Case for Context Events");
   575 			LOGPACKET1(">>CSimMbmsPacketContext::TimerCallBack Default Case for Context Events");
   582 			switch(iCurrentEvent)
   576 			switch(iCurrentEvent)
   583 				{
   577 				{
   584 				case EMbmsContextEventNone:
   578 				case EMbmsContextEventNone:
   585 					OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_5, "TimerCallBack - iCurrentEvent = [EMbmsContextEventNone]");
   579 					LOGPACKET1("TimerCallBack - iCurrentEvent = [EMbmsContextEventNone]");
   586 					break;
   580 					break;
   587 				case EMbmsContextEventActivate:
   581 				case EMbmsContextEventActivate:
   588 					OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_6, "TimerCallBack - iCurrentEvent = [EMbmsContextEventActivate]");
   582 					LOGPACKET1("TimerCallBack - iCurrentEvent = [EMbmsContextEventActivate]");
   589 					if(iState==RPacketContext::EStatusActivating)
   583 					if(iState==RPacketContext::EStatusActivating)
   590 						{
   584 						{
   591 						TInt activateValue = iMbmsContextConfigParams->At(iMbmsContextConfigParamsIndex).iActivateCode;
   585 						TInt activateValue = iMbmsContextConfigParams->At(iMbmsContextConfigParamsIndex).iActivateCode;
   592 						TInt ret;
   586 						TInt ret;
   593 						if(activateValue != KErrNone) 
   587 						if(activateValue != KErrNone) 
   619 							ReqCompleted(iNotifyConfigMBMS.iNotifyHandle,KErrNone);
   613 							ReqCompleted(iNotifyConfigMBMS.iNotifyHandle,KErrNone);
   620 							}
   614 							}
   621 						}
   615 						}
   622 					else
   616 					else
   623 						{
   617 						{
   624 						OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_7, "Unexpected iState for iCurrentEvent[EMbmsContextEventActivate]");
   618 						LOGPACKET1("Unexpected iState for iCurrentEvent[EMbmsContextEventActivate]");
   625 						}
   619 						}
   626 					break;
   620 					break;
   627 				case EMbmsContextEventDeactivate:
   621 				case EMbmsContextEventDeactivate:
   628 					OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_8, "TimerCallBack - iCurrentEvent = [EMbmsContextEventDeactivate]");
   622 					LOGPACKET1("TimerCallBack - iCurrentEvent = [EMbmsContextEventDeactivate]");
   629 					if(((iState == RPacketContext::EStatusInactive) || (iState == RPacketContext::EStatusDeactivating)) && 
   623 					if(((iState == RPacketContext::EStatusInactive) || (iState == RPacketContext::EStatusDeactivating)) && 
   630 									(iCurrentEvent==EMbmsContextEventDeactivate))
   624 									(iCurrentEvent==EMbmsContextEventDeactivate))
   631 						{
   625 						{
   632 						TInt ret=ChangeState(RPacketContext::EStatusInactive);
   626 						TInt ret=ChangeState(RPacketContext::EStatusInactive);
   633 						ReqCompleted(iDeactivateRequestHandle,ret);
   627 						ReqCompleted(iDeactivateRequestHandle,ret);
   634 						iCurrentEvent=EMbmsContextEventNone;
   628 						iCurrentEvent=EMbmsContextEventNone;
   635 						iIsActive = EFalse;
   629 						iIsActive = EFalse;
   636 						}
   630 						}
   637 					else
   631 					else
   638 						{
   632 						{
   639 						OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_9, "Unexpected iState for iCurrentEvent[EMbmsContextEventActivate]");
   633 						LOGPACKET1("Unexpected iState for iCurrentEvent[EMbmsContextEventActivate]");
   640 						}
   634 						}
   641 					break;
   635 					break;
   642 				case EMbmsContextEventDelete:
   636 				case EMbmsContextEventDelete:
   643 					OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_10, "TimerCallBack - iCurrentEvent = [EMbmsContextEventDelete]");
   637 					LOGPACKET1("TimerCallBack - iCurrentEvent = [EMbmsContextEventDelete]");
   644 					if(iState == RPacketContext::EStatusInactive && !iIsActive )
   638 					if(iState == RPacketContext::EStatusInactive && !iIsActive )
   645 						{
   639 						{
   646 						TInt ret = ChangeState(RPacketContext::EStatusDeleted);
   640 						TInt ret = ChangeState(RPacketContext::EStatusDeleted);
   647 						ReqCompleted(iDeleteRequestHandle,ret);
   641 						ReqCompleted(iDeleteRequestHandle,ret);
   648 						iCurrentEvent=EMbmsContextEventNone;
   642 						iCurrentEvent=EMbmsContextEventNone;
   653 						//delete request is received when the context is Not inactive.
   647 						//delete request is received when the context is Not inactive.
   654 						}
   648 						}
   655 					break;
   649 					break;
   656 				default:
   650 				default:
   657 					{
   651 					{
   658 					OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_11, "CSimMbmsPacketContext::TimerCallBack");
   652 					LOGPACKET1("CSimMbmsPacketContext::TimerCallBack");
   659 					OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_TIMERCALLBACK_12, "<<Unexpected iCurrentEvent @ TimerCallBack");
   653 					LOGPACKET1("<<Unexpected iCurrentEvent @ TimerCallBack");
   660 					break;
   654 					break;
   661 					}
   655 					}
   662 				}
   656 				}
   663 			}
   657 			}
   664 		}
   658 		}
   669 * Returns the context name to the requested client
   663 * Returns the context name to the requested client
   670 *
   664 *
   671 * @return TName	Name of the MBMS context
   665 * @return TName	Name of the MBMS context
   672 */
   666 */
   673 	{
   667 	{
   674 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_CONTEXTNAME_1, "CSimMbmsPacketContext::ContextName called");
   668 	LOGPACKET1("CSimMbmsPacketContext::ContextName called");
   675 	return iContextName; 
   669 	return iContextName; 
   676 	}
   670 	}
   677 
   671 
   678 const CTestConfigSection* CSimMbmsPacketContext::CfgFile()
   672 const CTestConfigSection* CSimMbmsPacketContext::CfgFile()
   679 /**
   673 /**
   680 * Return a pointer to the Configuration File Section
   674 * Return a pointer to the Configuration File Section
   681 *
   675 *
   682 * @return CTestConfigSection	pointer to the configuration file section
   676 * @return CTestConfigSection	pointer to the configuration file section
   683 */
   677 */
   684 	{
   678 	{
   685 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_CFGFILE_1, "CSimMbmsPacketContext::CfgFile called");
   679 	LOGPACKET1("CSimMbmsPacketContext::CfgFile called");
   686 	return iPacketService->CfgFile();
   680 	return iPacketService->CfgFile();
   687 	}
   681 	}
   688 
   682 
   689 TInt CSimMbmsPacketContext::SetConfig(const TTsyReqHandle aTsyReqHandle,const TDesC8* aConfig)
   683 TInt CSimMbmsPacketContext::SetConfig(const TTsyReqHandle aTsyReqHandle,const TDesC8* aConfig)
   690 /**
   684 /**
   694 * @param aTsyReqHandle Tsy Request handle for the client request
   688 * @param aTsyReqHandle Tsy Request handle for the client request
   695 * @param aConfig pointer containing the parameters to set to.
   689 * @param aConfig pointer containing the parameters to set to.
   696 * @return KErrNone
   690 * @return KErrNone
   697 */
   691 */
   698 	{
   692 	{
   699 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_SETCONFIG_1, "CSimMbmsPacketContext::SetConfig called");
   693 	LOGPACKET1("CSimMbmsPacketContext::SetConfig called");
   700 
   694 
   701 	TPckg<TPacketDataConfigBase>* configBase = (TPckg<TPacketDataConfigBase>*)aConfig;
   695 	TPckg<TPacketDataConfigBase>* configBase = (TPckg<TPacketDataConfigBase>*)aConfig;
   702 	TPacketDataConfigBase& configBaseV1 = (*configBase)();
   696 	TPacketDataConfigBase& configBaseV1 = (*configBase)();
   703 	iSetConfigRequestHandle = aTsyReqHandle;
   697 	iSetConfigRequestHandle = aTsyReqHandle;
   704 	TInt err = KErrCorrupt;
   698 	TInt err = KErrCorrupt;
   784 * @param aTsyReqHandle Tsy Request handle for the client request
   778 * @param aTsyReqHandle Tsy Request handle for the client request
   785 * @param aConfig pointer to the configuration params to retrieve
   779 * @param aConfig pointer to the configuration params to retrieve
   786 * @return KErrNone
   780 * @return KErrNone
   787 */
   781 */
   788 	{
   782 	{
   789 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_GETCONFIG_1, "CSimMbmsPacketContext::GetConfig called");
   783 	LOGPACKET1("CSimMbmsPacketContext::GetConfig called");
   790 	TPckg<TPacketDataConfigBase>* configBase = (TPckg<TPacketDataConfigBase>*)aConfig;
   784 	TPckg<TPacketDataConfigBase>* configBase = (TPckg<TPacketDataConfigBase>*)aConfig;
   791 	TPacketDataConfigBase& configBaseV1 = (*configBase)();
   785 	TPacketDataConfigBase& configBaseV1 = (*configBase)();
   792 	
   786 	
   793 	if(configBaseV1.ExtensionId()==TPacketDataConfigBase::KConfigMBMS)
   787 	if(configBaseV1.ExtensionId()==TPacketDataConfigBase::KConfigMBMS)
   794 		{
   788 		{
   820 *
   814 *
   821 * @param aTsyReqHandle Tsy Request handle for the client request
   815 * @param aTsyReqHandle Tsy Request handle for the client request
   822 * @return err KErrNone 
   816 * @return err KErrNone 
   823 */
   817 */
   824 	{
   818 	{
   825 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_GETCONFIGCANCEL_1, "CSimMbmsPacketContext::GetConfigCancel called");
   819 	LOGPACKET1("CSimMbmsPacketContext::GetConfigCancel called");
   826 	return KErrNone;
   820 	return KErrNone;
   827 	}
   821 	}
   828 
   822 
   829 TInt CSimMbmsPacketContext::GetStatus(const TTsyReqHandle aTsyReqHandle,RPacketContext::TContextStatus* aContextStatus)
   823 TInt CSimMbmsPacketContext::GetStatus(const TTsyReqHandle aTsyReqHandle,RPacketContext::TContextStatus* aContextStatus)
   830 /**
   824 /**
   833 * @param aTsyReqHandle Tsy Request handle for the client cancel request
   827 * @param aTsyReqHandle Tsy Request handle for the client cancel request
   834 * @param aContextStatus pointer to the status of the mbms packet context.
   828 * @param aContextStatus pointer to the status of the mbms packet context.
   835 * @return KerrNone
   829 * @return KerrNone
   836 */
   830 */
   837 	{
   831 	{
   838 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_GETSTATUS_1, "CSimMbmsPacketContext::GetStatus called");
   832 	LOGPACKET1("CSimMbmsPacketContext::GetStatus called");
   839 	*aContextStatus = iState;
   833 	*aContextStatus = iState;
   840 	ReqCompleted(aTsyReqHandle,KErrNone);
   834 	ReqCompleted(aTsyReqHandle,KErrNone);
   841 	return KErrNone;
   835 	return KErrNone;
   842 	}
   836 	}
   843 
   837 
   867 *
   861 *
   868 * @param aTsyReqHandle Tsy Request handle for the client cancel request
   862 * @param aTsyReqHandle Tsy Request handle for the client cancel request
   869 * @return KErrNone
   863 * @return KErrNone
   870 */
   864 */
   871 	{
   865 	{
   872 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_ACTIVATECANCEL_1, "CSimMbmsPacketContext::ActivateCancel called");
   866 	LOGPACKET1("CSimMbmsPacketContext::ActivateCancel called");
   873 	iMbmsContextTimer->Cancel();
   867 	iMbmsContextTimer->Cancel();
   874 	if(((iState == RPacketContext::EStatusInactive) || (iState == RPacketContext::EStatusActivating)) && 
   868 	if(((iState == RPacketContext::EStatusInactive) || (iState == RPacketContext::EStatusActivating)) && 
   875 					(iCurrentEvent==EMbmsContextEventActivate))
   869 					(iCurrentEvent==EMbmsContextEventActivate))
   876 		{
   870 		{
   877 		iCurrentEvent= EMbmsContextEventNone;
   871 		iCurrentEvent= EMbmsContextEventNone;
   906 *
   900 *
   907 * @param aTsyReqHandle Tsy Request handle for the client request
   901 * @param aTsyReqHandle Tsy Request handle for the client request
   908 * @return KErrNone
   902 * @return KErrNone
   909 */
   903 */
   910 	{
   904 	{
   911 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_DEACTIVATE_1, "CSimMbmsPacketContext::Deactivate called");
   905 	LOGPACKET1("CSimMbmsPacketContext::Deactivate called");
   912 	iDeactivateRequestHandle = aTsyReqHandle;
   906 	iDeactivateRequestHandle = aTsyReqHandle;
   913 	TInt ret = ActionEvent(EMbmsContextEventDeactivate);
   907 	TInt ret = ActionEvent(EMbmsContextEventDeactivate);
   914 	return ret;
   908 	return ret;
   915 	}
   909 	}
   916 
   910 
   923 * 
   917 * 
   924 * @param aTsyReqHandle Tsy Request handle for the client cancel request
   918 * @param aTsyReqHandle Tsy Request handle for the client cancel request
   925 * @return KErrNone
   919 * @return KErrNone
   926 */
   920 */
   927 	{
   921 	{
   928 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_DEACTIVATECANCEL_1, "CSimMbmsPacketContext::DeactivateCancel called");
   922 	LOGPACKET1("CSimMbmsPacketContext::DeactivateCancel called");
   929 	iMbmsContextTimer->Cancel();
   923 	iMbmsContextTimer->Cancel();
   930 	if(((iState == RPacketContext::EStatusInactive) || (iState == RPacketContext::EStatusDeactivating)) && 
   924 	if(((iState == RPacketContext::EStatusInactive) || (iState == RPacketContext::EStatusDeactivating)) && 
   931 					(iCurrentEvent==EMbmsContextEventDeactivate))
   925 					(iCurrentEvent==EMbmsContextEventDeactivate))
   932 		{
   926 		{
   933 		iCurrentEvent= EMbmsContextEventNone;
   927 		iCurrentEvent= EMbmsContextEventNone;
   997 *
   991 *
   998 * @param aTsyReqHandle Tsy Request handle for the client request
   992 * @param aTsyReqHandle Tsy Request handle for the client request
   999 * @return KErrNone
   993 * @return KErrNone
  1000 */
   994 */
  1001 	{
   995 	{
  1002 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_DELETE_1, "CSimMbmsPacketContext::Delete called");
   996 	LOGPACKET1("CSimMbmsPacketContext::Delete called");
  1003 	iDeleteRequestHandle = aTsyReqHandle;
   997 	iDeleteRequestHandle = aTsyReqHandle;
  1004 	TInt ret = ActionEvent(EMbmsContextEventDelete);
   998 	TInt ret = ActionEvent(EMbmsContextEventDelete);
  1005 	return ret;
   999 	return ret;
  1006 	}
  1000 	}
  1007 
  1001 
  1013 *
  1007 *
  1014 * @param aTsyReqHandle Tsy Request handle for the client cancel request
  1008 * @param aTsyReqHandle Tsy Request handle for the client cancel request
  1015 * @return KErrNone
  1009 * @return KErrNone
  1016 */
  1010 */
  1017 	{
  1011 	{
  1018 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_DELETECANCEL_1, "CSimMbmsPacketContext::DeleteCancel called");
  1012 	LOGPACKET1("CSimMbmsPacketContext::DeleteCancel called");
  1019 	iMbmsContextTimer->Cancel();
  1013 	iMbmsContextTimer->Cancel();
  1020 	if((iState == RPacketContext::EStatusInactive) && (iCurrentEvent==EMbmsContextEventDelete))
  1014 	if((iState == RPacketContext::EStatusInactive) && (iCurrentEvent==EMbmsContextEventDelete))
  1021 		{
  1015 		{
  1022 		iCurrentEvent= EMbmsContextEventNone;
  1016 		iCurrentEvent= EMbmsContextEventNone;
  1023 		ReqCompleted(aTsyReqHandle,KErrCancel);
  1017 		ReqCompleted(aTsyReqHandle,KErrCancel);
  1032 * @param aTsyReqHandle Tsy Request handle for the client request
  1026 * @param aTsyReqHandle Tsy Request handle for the client request
  1033 * @param aError pointer to the last error cause
  1027 * @param aError pointer to the last error cause
  1034 * @return KerrNone
  1028 * @return KerrNone
  1035 */
  1029 */
  1036 	{
  1030 	{
  1037 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_GETLASTERRORCAUSE_1, "CSimMbmsPacketContext::GetLastErrorCause called");
  1031 	LOGPACKET1("CSimMbmsPacketContext::GetLastErrorCause called");
  1038 	
  1032 	
  1039 	ReqCompleted(aTsyReqHandle,iLastError);
  1033 	ReqCompleted(aTsyReqHandle,iLastError);
  1040 	return KErrNone;
  1034 	return KErrNone;
  1041 	}
  1035 	}
  1042 
  1036 
  1048 * @param aTsyReqHandle Tsy Request handle for the client request
  1042 * @param aTsyReqHandle Tsy Request handle for the client request
  1049 * @param aConfig pointer to the context config to store the config info when the config changes.
  1043 * @param aConfig pointer to the context config to store the config info when the config changes.
  1050 * @return KErrNone
  1044 * @return KErrNone
  1051 */
  1045 */
  1052 	{
  1046 	{
  1053 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_NOTIFYCONFIGCHANGED_1, "CSimMbmsPacketContext::NotifyConfigChanged called");
  1047 	LOGPACKET1("CSimMbmsPacketContext::NotifyConfigChanged called");
  1054 	TPckg<TPacketDataConfigBase>* configBase = (TPckg<TPacketDataConfigBase>*)aConfig;
  1048 	TPckg<TPacketDataConfigBase>* configBase = (TPckg<TPacketDataConfigBase>*)aConfig;
  1055 	TPacketDataConfigBase& configBaseV1 = (*configBase)();
  1049 	TPacketDataConfigBase& configBaseV1 = (*configBase)();
  1056 	
  1050 	
  1057 	if(configBaseV1.ExtensionId() == TPacketDataConfigBase::KConfigMBMS)
  1051 	if(configBaseV1.ExtensionId() == TPacketDataConfigBase::KConfigMBMS)
  1058 		{
  1052 		{
  1062 	    iNotifyConfigMBMS.iNotifyHandle = aTsyReqHandle;
  1056 	    iNotifyConfigMBMS.iNotifyHandle = aTsyReqHandle;
  1063 	    iNotifyConfigMBMS.iNotifyData = &configBaseV1;
  1057 	    iNotifyConfigMBMS.iNotifyData = &configBaseV1;
  1064 		}
  1058 		}
  1065 	else
  1059 	else
  1066 		{
  1060 		{
  1067 		OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_NOTIFYCONFIGCHANGED_2, "CSimMbmsPacketContext::NotifyConfigChanged Unexpected config for MBMS context");
  1061 		LOGPACKET1("CSimMbmsPacketContext::NotifyConfigChanged Unexpected config for MBMS context");
  1068 		}
  1062 		}
  1069 
  1063 
  1070 	return KErrNone;
  1064 	return KErrNone;
  1071 	}
  1065 	}
  1072 
  1066 
  1077 * 
  1071 * 
  1078 * @param aTsyReqHandle Tsy Request handle for the client cancel request
  1072 * @param aTsyReqHandle Tsy Request handle for the client cancel request
  1079 * @return KErrNone
  1073 * @return KErrNone
  1080 */
  1074 */
  1081 	{
  1075 	{
  1082 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_NOTIFYCONFIGCHANGEDCANCEL_1, "CSimMbmsPacketContext::NotifyConfigChangedCancel called");
  1076 	LOGPACKET1("CSimMbmsPacketContext::NotifyConfigChangedCancel called");
  1083 	if(iNotifyConfigMBMS.iNotifyPending &&
  1077 	if(iNotifyConfigMBMS.iNotifyPending &&
  1084 		iNotifyConfigMBMS.iNotifyHandle == aTsyReqHandle)
  1078 		iNotifyConfigMBMS.iNotifyHandle == aTsyReqHandle)
  1085 		{
  1079 		{
  1086 		iNotifyConfigMBMS.iNotifyPending=EFalse;
  1080 		iNotifyConfigMBMS.iNotifyPending=EFalse;
  1087 		ReqCompleted(aTsyReqHandle,KErrCancel);
  1081 		ReqCompleted(aTsyReqHandle,KErrCancel);
  1104 * @param aTsyReqHandle Tsy Request handle for the client request
  1098 * @param aTsyReqHandle Tsy Request handle for the client request
  1105 * @param aContextStatus pointer to the packet context status
  1099 * @param aContextStatus pointer to the packet context status
  1106 * @return KErrNone
  1100 * @return KErrNone
  1107 */
  1101 */
  1108 	{
  1102 	{
  1109 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_NOTIFYSTATUSCHANGE_1, "CSimMbmsPacketContext::NotifyStatusChange called");
  1103 	LOGPACKET1("CSimMbmsPacketContext::NotifyStatusChange called");
  1110 	__ASSERT_ALWAYS(!iNotifyStatusChange.iNotifyPending,SimPanic(ENotificationAlreadyPending));
  1104 	__ASSERT_ALWAYS(!iNotifyStatusChange.iNotifyPending,SimPanic(ENotificationAlreadyPending));
  1111 	iNotifyStatusChange.iNotifyPending = ETrue;
  1105 	iNotifyStatusChange.iNotifyPending = ETrue;
  1112 	iNotifyStatusChange.iNotifyHandle = aTsyReqHandle;
  1106 	iNotifyStatusChange.iNotifyHandle = aTsyReqHandle;
  1113 	iNotifyStatusChange.iNotifyData = aContextStatus;
  1107 	iNotifyStatusChange.iNotifyData = aContextStatus;
  1114 	return KErrNone;
  1108 	return KErrNone;
  1121 * 
  1115 * 
  1122 * @param aTsyReqHandle Tsy Request handle for the client cancel request
  1116 * @param aTsyReqHandle Tsy Request handle for the client cancel request
  1123 * @return KErrNone
  1117 * @return KErrNone
  1124 */
  1118 */
  1125 	{
  1119 	{
  1126 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_NOTIFYSTATUSCHANGECANCEL_1, "CSimMbmsPacketContext::NotifyStatusChangeCancel called");
  1120 	LOGPACKET1("CSimMbmsPacketContext::NotifyStatusChangeCancel called");
  1127 	if(iNotifyStatusChange.iNotifyPending)
  1121 	if(iNotifyStatusChange.iNotifyPending)
  1128 		{
  1122 		{
  1129 		iNotifyStatusChange.iNotifyPending=EFalse;
  1123 		iNotifyStatusChange.iNotifyPending=EFalse;
  1130 		ReqCompleted(aTsyReqHandle,KErrCancel);
  1124 		ReqCompleted(aTsyReqHandle,KErrCancel);
  1131 		}
  1125 		}
  1145 * @param aAction TMbmsAction - ADD/ REMOVE / REMOVE_ALL
  1139 * @param aAction TMbmsAction - ADD/ REMOVE / REMOVE_ALL
  1146 * @param aSessionId sessoinID to be used for the updation.
  1140 * @param aSessionId sessoinID to be used for the updation.
  1147 * @return KErrNone
  1141 * @return KErrNone
  1148 */
  1142 */
  1149 	{
  1143 	{
  1150 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_UPDATEMBMSSESSIONLIST_1, "CSimMbmsPacketContext::UpdateMbmsSessionList called");
  1144 	LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList called");
  1151 
  1145 
  1152 	TInt error=KErrNone;
  1146 	TInt error=KErrNone;
  1153 	iUpdateSessionHandle = aTsyReqHandle;
  1147 	iUpdateSessionHandle = aTsyReqHandle;
  1154 	TKeyArrayFix key(0, ECmpTUint);
  1148 	TKeyArrayFix key(0, ECmpTUint);
  1155 	TInt position =-1;
  1149 	TInt position =-1;
  1156 
  1150 
  1157 	switch(*aAction)
  1151 	switch(*aAction)
  1158 		{
  1152 		{
  1159 		case SIMTSY_PACKET_MBMS_ADD_ENTRIES:
  1153 		case SIMTSY_PACKET_MBMS_ADD_ENTRIES:
  1160 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_UPDATEMBMSSESSIONLIST_2, "CSimMbmsPacketContext::UpdateMbmsSessionList Action: ADD ");
  1154 			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: ADD ");
  1161 			
  1155 			
  1162 			// TRAP can contain multiple statments
  1156 			// TRAP can contain multiple statments
  1163 			TRAP(error,iSessionIdList->AppendL(*aSessionId);
  1157 			TRAP(error,iSessionIdList->AppendL(*aSessionId);
  1164                     //iSessionIdList->At(0) = ++iNumOfSessionId;
  1158                     //iSessionIdList->At(0) = ++iNumOfSessionId;
  1165                     iSessionIdList->Delete(0);
  1159                     iSessionIdList->Delete(0);
  1172 				ReqCompleted(iUpdateSessionHandle,error);
  1166 				ReqCompleted(iUpdateSessionHandle,error);
  1173 				}
  1167 				}
  1174 			break;
  1168 			break;
  1175 
  1169 
  1176 		case SIMTSY_PACKET_MBMS_REM_ENTRIES:
  1170 		case SIMTSY_PACKET_MBMS_REM_ENTRIES:
  1177 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_UPDATEMBMSSESSIONLIST_3, "CSimMbmsPacketContext::UpdateMbmsSessionList Action: REMOVE ");
  1171 			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: REMOVE ");
  1178 			iSessionIdList->Find(*aSessionId,key,position);
  1172 			iSessionIdList->Find(*aSessionId,key,position);
  1179 			if(position != -1)
  1173 			if(position != -1)
  1180 				{
  1174 				{
  1181 				iSessionIdList->Delete(position);
  1175 				iSessionIdList->Delete(position);
  1182 				//iSessionIdList->At(0) = --iNumOfSessionId;
  1176 				//iSessionIdList->At(0) = --iNumOfSessionId;
  1193 				ReqCompleted(iUpdateSessionHandle,error);
  1187 				ReqCompleted(iUpdateSessionHandle,error);
  1194 				}
  1188 				}
  1195 			break;
  1189 			break;
  1196 
  1190 
  1197 		case SIMTSY_PACKET_MBMS_REM_ALL_ENTRIES:
  1191 		case SIMTSY_PACKET_MBMS_REM_ALL_ENTRIES:
  1198 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_UPDATEMBMSSESSIONLIST_4, "CSimMbmsPacketContext::UpdateMbmsSessionList Action: REMOVE_ALL ");
  1192 			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: REMOVE_ALL ");
  1199 			iNumOfSessionId=0;
  1193 			iNumOfSessionId=0;
  1200 			//iSessionIdList->At(0) = iNumOfSessionId;
  1194 			//iSessionIdList->At(0) = iNumOfSessionId;
  1201 			TRAP(error, iSessionIdList->InsertL(0,iNumOfSessionId));
  1195 			TRAP(error, iSessionIdList->InsertL(0,iNumOfSessionId));
  1202             if(error != KErrNone)
  1196             if(error != KErrNone)
  1203                 {
  1197                 {
  1206 			iSessionIdList->Delete(1,iSessionIdList->Count()); // removing all session ids from the list
  1200 			iSessionIdList->Delete(1,iSessionIdList->Count()); // removing all session ids from the list
  1207 			ReqCompleted(aTsyReqHandle, KErrNone);
  1201 			ReqCompleted(aTsyReqHandle, KErrNone);
  1208 			break;
  1202 			break;
  1209 
  1203 
  1210 		default:
  1204 		default:
  1211 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_UPDATEMBMSSESSIONLIST_5, "CSimMbmsPacketContext::UpdateMbmsSessionList Action: Default ");
  1205 			LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: Default ");
  1212 			ReqCompleted(aTsyReqHandle,KErrNotFound);
  1206 			ReqCompleted(aTsyReqHandle,KErrNotFound);
  1213 			break;
  1207 			break;
  1214 		}
  1208 		}
  1215 	return KErrNone;
  1209 	return KErrNone;
  1216 	}
  1210 	}
  1221 * 
  1215 * 
  1222 * @param aTsyReqHandle Tsy Request handle for the client cancel request
  1216 * @param aTsyReqHandle Tsy Request handle for the client cancel request
  1223 * @return KErrNone
  1217 * @return KErrNone
  1224 */
  1218 */
  1225 	{
  1219 	{
  1226 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_UPDATEMBMSSESSIONLISTCANCEL_1, "CSimMbmsPacketContext::UpdateMbmsSessionListCancel called");
  1220 	LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListCancel called");
  1227 	iMbmsUpdateSessionTimer->Cancel();
  1221 	iMbmsUpdateSessionTimer->Cancel();
  1228 	if( iUpdateSessionHandle == aTsyReqHandle )
  1222 	if( iUpdateSessionHandle == aTsyReqHandle )
  1229 		{
  1223 		{
  1230 		ReqCompleted(iUpdateSessionHandle,KErrCancel);
  1224 		ReqCompleted(iUpdateSessionHandle,KErrCancel);
  1231 		iUpdateSessionHandle=NULL;
  1225 		iUpdateSessionHandle=NULL;
  1304 * @param aClient ClientId from which the request is sent
  1298 * @param aClient ClientId from which the request is sent
  1305 * @param aBufSize  Size of the buffer to be allocated to retrieve the data in phase2.
  1299 * @param aBufSize  Size of the buffer to be allocated to retrieve the data in phase2.
  1306 * @return KErrNone
  1300 * @return KErrNone
  1307 */
  1301 */
  1308 	{
  1302 	{
  1309 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_GETMBMSSESSIONSPHASE1_1, "CSimMbmsPacketContext::GetMbmsSessionsPhase1 called");
  1303 	LOGPACKET1("CSimMbmsPacketContext::GetMbmsSessionsPhase1 called");
  1310 	iGetMbmsSessionHandle = aTsyReqHandle;
  1304 	iGetMbmsSessionHandle = aTsyReqHandle;
  1311 	TInt ret=KErrNone;
  1305 	TInt ret=KErrNone;
  1312 	TInt leaveCode=KErrNone;
  1306 	TInt leaveCode=KErrNone;
  1313 	TRAP(leaveCode, ret=ProcessGetMbmsSessionsPhase1L(aTsyReqHandle, aClient, aBufSize););
  1307 	TRAP(leaveCode, ret=ProcessGetMbmsSessionsPhase1L(aTsyReqHandle, aClient, aBufSize););
  1314 	if (leaveCode != KErrNone)
  1308 	if (leaveCode != KErrNone)
  1330 * @return KErrNone
  1324 * @return KErrNone
  1331 */
  1325 */
  1332 	{
  1326 	{
  1333 	// Retrieve MBMS session list,
  1327 	// Retrieve MBMS session list,
  1334 	// Store the sessions and then return the size of the buffer to the client
  1328 	// Store the sessions and then return the size of the buffer to the client
  1335 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_PROCESSGETMBMSSESSIONSPHASE1L_1, "CSimMbmsPacketContext::ProcessGetMbmsSessionsPhase1L called");
  1329 	LOGPACKET1("CSimMbmsPacketContext::ProcessGetMbmsSessionsPhase1L called");
  1336 	RPacketMbmsContext::CMbmsSession* mbmsSession=RPacketMbmsContext::CMbmsSession::NewL();
  1330 	RPacketMbmsContext::CMbmsSession* mbmsSession=RPacketMbmsContext::CMbmsSession::NewL();
  1337 	CleanupStack::PushL(mbmsSession);
  1331 	CleanupStack::PushL(mbmsSession);
  1338 
  1332 
  1339 	for(TInt i=1;i<=iNumOfSessionId;i++)
  1333 	for(TInt i=1;i<=iNumOfSessionId;i++)
  1340 		{
  1334 		{
  1379 * @param aClient ClientId from which the request is sent
  1373 * @param aClient ClientId from which the request is sent
  1380 * @param aBuf  Buffer allocated to retrieve the data.
  1374 * @param aBuf  Buffer allocated to retrieve the data.
  1381 * @return KErrNone
  1375 * @return KErrNone
  1382 */
  1376 */
  1383 	{
  1377 	{
  1384 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_GETMBMSSESSIONSPHASE2_1, "CSimMbmsPacketContext::GetMbmsSessionsPhase2 called");
  1378 	LOGPACKET1("CSimMbmsPacketContext::GetMbmsSessionsPhase2 called");
  1385 	CPcktListReadAllAttempt* read=NULL;
  1379 	CPcktListReadAllAttempt* read=NULL;
  1386 	// Find the get Mbms monitored services from this client
  1380 	// Find the get Mbms monitored services from this client
  1387 	for (TInt i=0; i<iMbmsSessionList->Count(); ++i)
  1381 	for (TInt i=0; i<iMbmsSessionList->Count(); ++i)
  1388 		{
  1382 		{
  1389 		read = iMbmsSessionList->At(i);
  1383 		read = iMbmsSessionList->At(i);
  1410 * 
  1404 * 
  1411 * @param aTsyReqHandle Tsy Request handle for the client request
  1405 * @param aTsyReqHandle Tsy Request handle for the client request
  1412 * @return KErrNone
  1406 * @return KErrNone
  1413 */
  1407 */
  1414 	{
  1408 	{
  1415 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_GETMBMSSESSIONSCANCEL_1, "CSimMbmsPacketContext::GetMbmsSessionsCancel called");
  1409 	LOGPACKET1("CSimMbmsPacketContext::GetMbmsSessionsCancel called");
  1416 	// Remove the MBMS sessions from iMbmsSessionList
  1410 	// Remove the MBMS sessions from iMbmsSessionList
  1417 	
  1411 	
  1418 	CPcktListReadAllAttempt* read=NULL;
  1412 	CPcktListReadAllAttempt* read=NULL;
  1419 	for (TInt i=0; i<iMbmsSessionList->Count(); ++i)
  1413 	for (TInt i=0; i<iMbmsSessionList->Count(); ++i)
  1420 		{
  1414 		{
  1438 *
  1432 *
  1439 * @param aNewState the new state to change to
  1433 * @param aNewState the new state to change to
  1440 * @return Error indication if change of state is successful or not
  1434 * @return Error indication if change of state is successful or not
  1441 */
  1435 */
  1442 	{
  1436 	{
  1443 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_CHANGESTATE_1, "CSimMbmsPacketContext::ChangeState [newState=%d]", aNewState);
  1437 	LOGPACKET2("CSimMbmsPacketContext::ChangeState [newState=%d]", aNewState);
  1444 	__ASSERT_ALWAYS(aNewState!=RPacketContext::EStatusUnknown,SimPanic(ECallStatusUnknownIllegal));
  1438 	__ASSERT_ALWAYS(aNewState!=RPacketContext::EStatusUnknown,SimPanic(ECallStatusUnknownIllegal));
  1445 
  1439 
  1446 	if(iState==aNewState)
  1440 	if(iState==aNewState)
  1447 		return KErrNone;
  1441 		return KErrNone;
  1448 
  1442 
  1487 		iNotifyStatusChange.iNotifyPending = EFalse;
  1481 		iNotifyStatusChange.iNotifyPending = EFalse;
  1488 		*(RPacketContext::TContextStatus*)iNotifyStatusChange.iNotifyData = iState;
  1482 		*(RPacketContext::TContextStatus*)iNotifyStatusChange.iNotifyData = iState;
  1489 		ReqCompleted(iNotifyStatusChange.iNotifyHandle,KErrNone);
  1483 		ReqCompleted(iNotifyStatusChange.iNotifyHandle,KErrNone);
  1490 		}
  1484 		}
  1491 
  1485 
  1492 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_CHANGESTATE_2, "<<CSimMbmsPacketContext::ChangeState Completed");
  1486 	LOGPACKET1("<<CSimMbmsPacketContext::ChangeState Completed");
  1493 	return KErrNone;
  1487 	return KErrNone;
  1494 	}
  1488 	}
  1495 
  1489 
  1496 TInt CSimMbmsPacketContext::ActionEvent(TMbmsContextEvent aEvent)
  1490 TInt CSimMbmsPacketContext::ActionEvent(TMbmsContextEvent aEvent)
  1497 /**
  1491 /**
  1502 *
  1496 *
  1503 * @param aEvent The Packet Context event to handle
  1497 * @param aEvent The Packet Context event to handle
  1504 * @return value represents the error state caused by the attempted state machine jump.
  1498 * @return value represents the error state caused by the attempted state machine jump.
  1505 */
  1499 */
  1506 	{
  1500 	{
  1507 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_ACTIONEVENT_1, "<<CSimMbmsPacketContext::ActionEvent Completed");
  1501 	LOGPACKET1("<<CSimMbmsPacketContext::ActionEvent Completed");
  1508 	TInt ret=KErrNone;
  1502 	TInt ret=KErrNone;
  1509 	__ASSERT_ALWAYS(iState!=RPacketContext::EStatusUnknown,SimPanic(ECallStatusUnknownIllegal));
  1503 	__ASSERT_ALWAYS(iState!=RPacketContext::EStatusUnknown,SimPanic(ECallStatusUnknownIllegal));
  1510 
  1504 
  1511 	switch(aEvent)
  1505 	switch(aEvent)
  1512 		{
  1506 		{
  1513 		case EMbmsContextEventActivate:
  1507 		case EMbmsContextEventActivate:
  1514 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_ACTIONEVENT_2, "CSimMbmsPacketContext::ActionEvent = [EMbmsContextEventActivate]");
  1508 			LOGPACKET1("CSimMbmsPacketContext::ActionEvent = [EMbmsContextEventActivate]");
  1515 			if(iState==RPacketContext::EStatusInactive)
  1509 			if(iState==RPacketContext::EStatusInactive)
  1516 				{
  1510 				{
  1517 				iCurrentEvent=EMbmsContextEventActivate;
  1511 				iCurrentEvent=EMbmsContextEventActivate;
  1518 				ret = ChangeState(RPacketContext::EStatusActivating);
  1512 				ret = ChangeState(RPacketContext::EStatusActivating);
  1519 				iMbmsContextTimer->Start(RandTime(),this);  
  1513 				iMbmsContextTimer->Start(RandTime(),this);  
  1523 				ReqCompleted(iActivateRequestHandle, KErrGprsActivationRejected);
  1517 				ReqCompleted(iActivateRequestHandle, KErrGprsActivationRejected);
  1524 				}
  1518 				}
  1525 			break;
  1519 			break;
  1526 
  1520 
  1527 		case EMbmsContextEventDeactivate:
  1521 		case EMbmsContextEventDeactivate:
  1528 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_ACTIONEVENT_3, "CSimMbmsPacketContext::ActionEvent = [EMbmsContextEventDeactivate]");
  1522 			LOGPACKET1("CSimMbmsPacketContext::ActionEvent = [EMbmsContextEventDeactivate]");
  1529 			if(iState==RPacketContext::EStatusActive || iState==RPacketContext::EStatusActivating)
  1523 			if(iState==RPacketContext::EStatusActive || iState==RPacketContext::EStatusActivating)
  1530 				{
  1524 				{
  1531 				iCurrentEvent=EMbmsContextEventDeactivate;
  1525 				iCurrentEvent=EMbmsContextEventDeactivate;
  1532 				ret = ChangeState(RPacketContext::EStatusDeactivating);
  1526 				ret = ChangeState(RPacketContext::EStatusDeactivating);
  1533 				iMbmsContextTimer->Start(RandTime(),this);
  1527 				iMbmsContextTimer->Start(RandTime(),this);
  1537 				ReqCompleted(iDeactivateRequestHandle, KErrNone);
  1531 				ReqCompleted(iDeactivateRequestHandle, KErrNone);
  1538 				}
  1532 				}
  1539 			break;
  1533 			break;
  1540 
  1534 
  1541 		case EMbmsContextEventDelete:
  1535 		case EMbmsContextEventDelete:
  1542 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_ACTIONEVENT_4, "CSimMbmsPacketContext::ActionEvent = [EMbmsContextEventDelete]");
  1536 			LOGPACKET1("CSimMbmsPacketContext::ActionEvent = [EMbmsContextEventDelete]");
  1543 			iDeleted = ETrue;
  1537 			iDeleted = ETrue;
  1544 			if(iState==RPacketContext::EStatusInactive)
  1538 			if(iState==RPacketContext::EStatusInactive)
  1545 				{
  1539 				{
  1546 				iCurrentEvent=EMbmsContextEventDelete;
  1540 				iCurrentEvent=EMbmsContextEventDelete;
  1547 				iMbmsContextTimer->Start(RandTime(),this);
  1541 				iMbmsContextTimer->Start(RandTime(),this);
  1548 				}
  1542 				}
  1549 			else
  1543 			else
  1550 				ReqCompleted(iDeleteRequestHandle, KErrInUse);
  1544 				ReqCompleted(iDeleteRequestHandle, KErrInUse);
  1551 			break;
  1545 			break;
  1552 		default:
  1546 		default:
  1553 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_ACTIONEVENT_5, "CSimMbmsPacketContext::ActionEvent = [Default Case]");
  1547 			LOGPACKET1("CSimMbmsPacketContext::ActionEvent = [Default Case]");
  1554 			break;
  1548 			break;
  1555 		}
  1549 		}
  1556 	return ret;
  1550 	return ret;
  1557 	}
  1551 	}
  1558 
  1552 
  1563 *
  1557 *
  1564 * @param aNewState the Context status to convert to packet service status
  1558 * @param aNewState the Context status to convert to packet service status
  1565 * @return RPacketService::TStatus The packet service status conversion
  1559 * @return RPacketService::TStatus The packet service status conversion
  1566 */
  1560 */
  1567 	{
  1561 	{
  1568 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_CONVERTTOPACKETSERVICESTATUS_1, "CSimMbmsPacketContext::ConvertToPacketServiceStatus called");
  1562 	LOGPACKET1("CSimMbmsPacketContext::ConvertToPacketServiceStatus called");
  1569 	RPacketService::TStatus serviceStatus;
  1563 	RPacketService::TStatus serviceStatus;
  1570 	switch (aNewState)
  1564 	switch (aNewState)
  1571 		{
  1565 		{
  1572 		case RPacketContext::EStatusInactive:
  1566 		case RPacketContext::EStatusInactive:
  1573 		case RPacketContext::EStatusActivating:
  1567 		case RPacketContext::EStatusActivating:
  1593  * Function that generates time(in seconds) at random for the SimTSY 
  1587  * Function that generates time(in seconds) at random for the SimTSY 
  1594  * Maximum of four seconds; zero seconds also included just to simulate the 
  1588  * Maximum of four seconds; zero seconds also included just to simulate the 
  1595  * synchronous call scenario 
  1589  * synchronous call scenario 
  1596  */
  1590  */
  1597 	{
  1591 	{
  1598 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMMBMSPACKETCONTEXT_RANDTIME_1, "CSimMbmsPacketContext::RandTime called");
  1592 	LOGPACKET1("CSimMbmsPacketContext::RandTime called");
  1599 	TInt ranT= Math::Random()%4; 
  1593 	TInt ranT= Math::Random()%4; 
  1600 	return(ranT);
  1594 	return(ranT);
  1601 	}
  1595 	}