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