telephonyserverplugins/common_tsy/systemstateplugin/src/ctsysystemstateplugin.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 19 1f776524b15c
--- a/telephonyserverplugins/common_tsy/systemstateplugin/src/ctsysystemstateplugin.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/systemstateplugin/src/ctsysystemstateplugin.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,253 +1,253 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include "ctsysystemstateplugin.h"
-#include <ctsy/tflogger.h>
-
-CCtsySystemStatePlugin* CCtsySystemStatePlugin::NewL()
-	{
-	CCtsySystemStatePlugin* self = new (ELeave)CCtsySystemStatePlugin();
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self); 	
-	return self;
-	}
-
-CCtsySystemStatePlugin::CCtsySystemStatePlugin()
-	{	
-	}
-	
-void CCtsySystemStatePlugin::ConstructL()
-	{	
-	// create active object for do RF state changing  
-	iAoChangeRfForEmergencyCall = new (ELeave) CChangeRfForEmergencyCall(*this, iSsmEmergencyCallRf);
-	User::LeaveIfError(Connect());
-	}
-
-CCtsySystemStatePlugin::~CCtsySystemStatePlugin()
-	{  
-	if (iAoChangeRfForEmergencyCall)
-		{
-		delete iAoChangeRfForEmergencyCall;
-		}
-	}	
-	
-
-// ---------------------------------------------------------------------------
-// CCtsySystemStatePlugin::Connect
-// Try to connect to RSsmEmergencyCallRfAdaptation
-// returns KErrNone if success, otherwise -- error code
-// ---------------------------------------------------------------------------
-TInt CCtsySystemStatePlugin::Connect()
-	{	
-	TFLOGSTRING("CCtsySystemStatePlugin::Connect()");		
-
-	TInt error (KErrNone);
-	if (!iConnected)	 
-	{	 
-        error = iSsmEmergencyCallRf.Connect();  
-        if (KErrNone != error)
-            {
-            return error; 
-            }
-        iConnected = ETrue; 
-        error = iSsmEmergencyCallRf.SetAsPriorityClient();
-		if (KErrNone != error)
-			{
-            TFLOGSTRING2("CCtsySystemStatePlugin::Connect()  - SetAsPriorityClient returned %d", error);
-            error = KErrNone;
-			}
-	}	
-	return error;
-	}
-
-// ---------------------------------------------------------------------------
-// CCtsySystemStatePlugin::ActivateRfForEmergencyCall
-// Calls  RSsmEmergencyCallRfAdaptation::ActivateRfForEmergencyCall
-// returns KErrNotReady if there is no connection to CCtsySystemStatePlugin,
-// otherwise -- error code returned from CCtsySystemStatePlugin
-// ---------------------------------------------------------------------------
-void CCtsySystemStatePlugin::ActivateRfForEmergencyCall(MCtsySsmPluginCallback* aSsmPluginCallback,
-                                                        TCtsySsmCallbackData& aCallbackData)
-	{
-	TFLOGSTRING("CCtsySystemStatePlugin::ActivateRfForEmergencyCall()" );
-
-	iAoChangeRfForEmergencyCall->ActivateRfForEmergencyCall(aSsmPluginCallback, aCallbackData);	
-	}
-	
-// ---------------------------------------------------------------------------
-// CCtsySystemStatePlugin::DeactivateRfAfterEmergencyCall
-// Calls  RSsmEmergencyCallRfAdaptation::DeactivateRfAfterEmergencyCall
-// returns KErrNotReady if there is no connection to CCtsySystemStatePlugin,
-// otherwise -- error code returned from CCtsySystemStatePlugin
-// ---------------------------------------------------------------------------
-void CCtsySystemStatePlugin::DeactivateRfAfterEmergencyCall()
-	{	
-	TFLOGSTRING("CCtsySystemStatePlugin::DeactivateRfForEmergencyCall()" );		
-	//try to connect
-	TInt err = Connect();
-	if (err)
-		{
-	    TFLOGSTRING2("CCtsySystemStatePlugin::DeactivateRfAfterEmergencyCall() failed to connect %d", err);
-		//do nothing
-		return;
-		}
-				
-	iAoChangeRfForEmergencyCall->DeactivateRfAfterEmergencyCall();
-	}
-	
-// ---------------------------------------------------------------------------
-// CCtsySystemStatePlugin::Close
-// Close connection to RSsmEmergencyCallRfAdaptation
-// ---------------------------------------------------------------------------	
-void CCtsySystemStatePlugin::Close()
-	{			
-	TFLOGSTRING("CCtsySystemStatePlugin::Close()" );				
-	if (iConnected)	
-		{	
-		// if there is some request...
-		if (CChangeRfForEmergencyCall::ENotBusy != iAoChangeRfForEmergencyCall->Busy())
-			{
-			// ... cancel it
-			iSsmEmergencyCallRf.Cancel(); 			
-			}
-					
-		iSsmEmergencyCallRf.Close(); 	
-		iConnected = EFalse;				
-		}
-	}
-	
-	
-	
-	
-
-// ---------------------------------------------------------------------------	
-//  Active object for changing RF State
-// ---------------------------------------------------------------------------	
-CChangeRfForEmergencyCall::CChangeRfForEmergencyCall(CCtsySystemStatePlugin& aCtsySystemStatePlugin, 
-													 RSsmEmergencyCallRfAdaptation& aSsmEmergencyCallRf) :
-			                                         CActive(EPriorityStandard),
-			                                         iCtsySystemStatePlugin(aCtsySystemStatePlugin), 
-			                                         iSsmEmergencyCallRf(aSsmEmergencyCallRf)
-   {
-   CActiveScheduler::Add(this);
-   }
-
-// ---------------------------------------------------------------------------  
-//  Destructor for Active object
-// ---------------------------------------------------------------------------	
-CChangeRfForEmergencyCall::~CChangeRfForEmergencyCall()
-		{
-		Cancel();
-		}
-	
-// ---------------------------------------------------------------------------  
-//  Active object ActivateRfForEmergencyCall
-// ---------------------------------------------------------------------------  
-void CChangeRfForEmergencyCall::ActivateRfForEmergencyCall(MCtsySsmPluginCallback* aSsmPluginCallback,
-														   TCtsySsmCallbackData& aCallbackData)
-   {	
-   TFLOGSTRING("CChangeRfForEmergencyCall::ActivateRfForEmergencyCall()" );     
-
-   if (EDeactivateBusy == iBusy)
-      {
-      // cancel any request
-	  Cancel();
-	  iBusy = ENotBusy;				
-      }
-   else if (EActivateBusy == iBusy)
-      {
-      if (aSsmPluginCallback)
-          {
-		  aSsmPluginCallback->SsmPluginCallback(KErrServerBusy, aCallbackData);
-          }
-	  return;
-      }
-		
-   // store pointer to callback interface
-   iSsmPluginCallback = aSsmPluginCallback;
-		
-   // copy data for callback
-   iCallbackData.iReqHandle = aCallbackData.iReqHandle;		
-   RMobileENStore::TEmergencyNumber* number;
-   aCallbackData.iNumberPackage.UnPackData(&number);				
-   iCallbackData.iNumberPackage.PackData(number);
-	
-   iSsmEmergencyCallRf.ActivateRfForEmergencyCall(iStatus);
-   iBusy = EActivateBusy;
-	
-   SetActive();
-   }
-	
-// ---------------------------------------------------------------------------  
-//  Active object DeactivateRfAfterEmergencyCall
-// --------------------------------------------------------------------------- 
-void CChangeRfForEmergencyCall::DeactivateRfAfterEmergencyCall()
-   {	
-   TFLOGSTRING("CChangeRfForEmergencyCall::DeactivateRfAfterEmergencyCall()" );     
-
-		// if we've already sent request  
-		if (EActivateBusy == iBusy)
-			{
-			// cancel any request
-			Cancel();
-			iBusy = ENotBusy;
-			iSsmPluginCallback  = NULL; // to prevent calling of callback (but I think there shoul be Cancel)		
-			return;			
-			}
-		else if (EDeactivateBusy == iBusy)							
-			{
-			// do nothing
-			return;
-			}
-			
-		iSsmEmergencyCallRf.DeactivateRfForEmergencyCall(iStatus);
-		iBusy = EDeactivateBusy;
-	
-		SetActive();		
-		}
-// ---------------------------------------------------------------------------  
-//  Active object Busy method
-// --------------------------------------------------------------------------- 		
-TBool CChangeRfForEmergencyCall::Busy()
-   {	
-   return iBusy;
-   }
-
-// ---------------------------------------------------------------------------  
-//  RunL for Active object
-// ---------------------------------------------------------------------------  	
-void CChangeRfForEmergencyCall::RunL()
-   {	
-   iBusy = ENotBusy;		
-   
-   // close SSM
-   if (iSsmPluginCallback)
-      {
-	  // just call callback interface and pass into it error code
-	  iSsmPluginCallback->SsmPluginCallback(iStatus.Int(), iCallbackData);
-      iSsmPluginCallback = NULL;	
-      }	
-   }
-
-// ---------------------------------------------------------------------------  
-//  Cancel for Active object
-// --------------------------------------------------------------------------- 		
-void CChangeRfForEmergencyCall::DoCancel()
-   {
-   iSsmEmergencyCallRf.Cancel(); 
-   iBusy = ENotBusy;
-   }
-
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "ctsysystemstateplugin.h"
+#include <ctsy/tflogger.h>
+
+CCtsySystemStatePlugin* CCtsySystemStatePlugin::NewL()
+	{
+	CCtsySystemStatePlugin* self = new (ELeave)CCtsySystemStatePlugin();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self); 	
+	return self;
+	}
+
+CCtsySystemStatePlugin::CCtsySystemStatePlugin()
+	{	
+	}
+	
+void CCtsySystemStatePlugin::ConstructL()
+	{	
+	// create active object for do RF state changing  
+	iAoChangeRfForEmergencyCall = new (ELeave) CChangeRfForEmergencyCall(*this, iSsmEmergencyCallRf);
+	User::LeaveIfError(Connect());
+	}
+
+CCtsySystemStatePlugin::~CCtsySystemStatePlugin()
+	{  
+	if (iAoChangeRfForEmergencyCall)
+		{
+		delete iAoChangeRfForEmergencyCall;
+		}
+	}	
+	
+
+// ---------------------------------------------------------------------------
+// CCtsySystemStatePlugin::Connect
+// Try to connect to RSsmEmergencyCallRfAdaptation
+// returns KErrNone if success, otherwise -- error code
+// ---------------------------------------------------------------------------
+TInt CCtsySystemStatePlugin::Connect()
+	{	
+	TFLOGSTRING("CCtsySystemStatePlugin::Connect()");		
+
+	TInt error (KErrNone);
+	if (!iConnected)	 
+	{	 
+        error = iSsmEmergencyCallRf.Connect();  
+        if (KErrNone != error)
+            {
+            return error; 
+            }
+        iConnected = ETrue; 
+        error = iSsmEmergencyCallRf.SetAsPriorityClient();
+		if (KErrNone != error)
+			{
+            TFLOGSTRING2("CCtsySystemStatePlugin::Connect()  - SetAsPriorityClient returned %d", error);
+            error = KErrNone;
+			}
+	}	
+	return error;
+	}
+
+// ---------------------------------------------------------------------------
+// CCtsySystemStatePlugin::ActivateRfForEmergencyCall
+// Calls  RSsmEmergencyCallRfAdaptation::ActivateRfForEmergencyCall
+// returns KErrNotReady if there is no connection to CCtsySystemStatePlugin,
+// otherwise -- error code returned from CCtsySystemStatePlugin
+// ---------------------------------------------------------------------------
+void CCtsySystemStatePlugin::ActivateRfForEmergencyCall(MCtsySsmPluginCallback* aSsmPluginCallback,
+                                                        TCtsySsmCallbackData& aCallbackData)
+	{
+	TFLOGSTRING("CCtsySystemStatePlugin::ActivateRfForEmergencyCall()" );
+
+	iAoChangeRfForEmergencyCall->ActivateRfForEmergencyCall(aSsmPluginCallback, aCallbackData);	
+	}
+	
+// ---------------------------------------------------------------------------
+// CCtsySystemStatePlugin::DeactivateRfAfterEmergencyCall
+// Calls  RSsmEmergencyCallRfAdaptation::DeactivateRfAfterEmergencyCall
+// returns KErrNotReady if there is no connection to CCtsySystemStatePlugin,
+// otherwise -- error code returned from CCtsySystemStatePlugin
+// ---------------------------------------------------------------------------
+void CCtsySystemStatePlugin::DeactivateRfAfterEmergencyCall()
+	{	
+	TFLOGSTRING("CCtsySystemStatePlugin::DeactivateRfForEmergencyCall()" );		
+	//try to connect
+	TInt err = Connect();
+	if (err)
+		{
+	    TFLOGSTRING2("CCtsySystemStatePlugin::DeactivateRfAfterEmergencyCall() failed to connect %d", err);
+		//do nothing
+		return;
+		}
+				
+	iAoChangeRfForEmergencyCall->DeactivateRfAfterEmergencyCall();
+	}
+	
+// ---------------------------------------------------------------------------
+// CCtsySystemStatePlugin::Close
+// Close connection to RSsmEmergencyCallRfAdaptation
+// ---------------------------------------------------------------------------	
+void CCtsySystemStatePlugin::Close()
+	{			
+	TFLOGSTRING("CCtsySystemStatePlugin::Close()" );				
+	if (iConnected)	
+		{	
+		// if there is some request...
+		if (CChangeRfForEmergencyCall::ENotBusy != iAoChangeRfForEmergencyCall->Busy())
+			{
+			// ... cancel it
+			iSsmEmergencyCallRf.Cancel(); 			
+			}
+					
+		iSsmEmergencyCallRf.Close(); 	
+		iConnected = EFalse;				
+		}
+	}
+	
+	
+	
+	
+
+// ---------------------------------------------------------------------------	
+//  Active object for changing RF State
+// ---------------------------------------------------------------------------	
+CChangeRfForEmergencyCall::CChangeRfForEmergencyCall(CCtsySystemStatePlugin& aCtsySystemStatePlugin, 
+													 RSsmEmergencyCallRfAdaptation& aSsmEmergencyCallRf) :
+			                                         CActive(EPriorityStandard),
+			                                         iCtsySystemStatePlugin(aCtsySystemStatePlugin), 
+			                                         iSsmEmergencyCallRf(aSsmEmergencyCallRf)
+   {
+   CActiveScheduler::Add(this);
+   }
+
+// ---------------------------------------------------------------------------  
+//  Destructor for Active object
+// ---------------------------------------------------------------------------	
+CChangeRfForEmergencyCall::~CChangeRfForEmergencyCall()
+		{
+		Cancel();
+		}
+	
+// ---------------------------------------------------------------------------  
+//  Active object ActivateRfForEmergencyCall
+// ---------------------------------------------------------------------------  
+void CChangeRfForEmergencyCall::ActivateRfForEmergencyCall(MCtsySsmPluginCallback* aSsmPluginCallback,
+														   TCtsySsmCallbackData& aCallbackData)
+   {	
+   TFLOGSTRING("CChangeRfForEmergencyCall::ActivateRfForEmergencyCall()" );     
+
+   if (EDeactivateBusy == iBusy)
+      {
+      // cancel any request
+	  Cancel();
+	  iBusy = ENotBusy;				
+      }
+   else if (EActivateBusy == iBusy)
+      {
+      if (aSsmPluginCallback)
+          {
+		  aSsmPluginCallback->SsmPluginCallback(KErrServerBusy, aCallbackData);
+          }
+	  return;
+      }
+		
+   // store pointer to callback interface
+   iSsmPluginCallback = aSsmPluginCallback;
+		
+   // copy data for callback
+   iCallbackData.iReqHandle = aCallbackData.iReqHandle;		
+   RMobileENStore::TEmergencyNumber* number;
+   aCallbackData.iNumberPackage.UnPackData(&number);				
+   iCallbackData.iNumberPackage.PackData(number);
+	
+   iSsmEmergencyCallRf.ActivateRfForEmergencyCall(iStatus);
+   iBusy = EActivateBusy;
+	
+   SetActive();
+   }
+	
+// ---------------------------------------------------------------------------  
+//  Active object DeactivateRfAfterEmergencyCall
+// --------------------------------------------------------------------------- 
+void CChangeRfForEmergencyCall::DeactivateRfAfterEmergencyCall()
+   {	
+   TFLOGSTRING("CChangeRfForEmergencyCall::DeactivateRfAfterEmergencyCall()" );     
+
+		// if we've already sent request  
+		if (EActivateBusy == iBusy)
+			{
+			// cancel any request
+			Cancel();
+			iBusy = ENotBusy;
+			iSsmPluginCallback  = NULL; // to prevent calling of callback (but I think there shoul be Cancel)		
+			return;			
+			}
+		else if (EDeactivateBusy == iBusy)							
+			{
+			// do nothing
+			return;
+			}
+			
+		iSsmEmergencyCallRf.DeactivateRfForEmergencyCall(iStatus);
+		iBusy = EDeactivateBusy;
+	
+		SetActive();		
+		}
+// ---------------------------------------------------------------------------  
+//  Active object Busy method
+// --------------------------------------------------------------------------- 		
+TBool CChangeRfForEmergencyCall::Busy()
+   {	
+   return iBusy;
+   }
+
+// ---------------------------------------------------------------------------  
+//  RunL for Active object
+// ---------------------------------------------------------------------------  	
+void CChangeRfForEmergencyCall::RunL()
+   {	
+   iBusy = ENotBusy;		
+   
+   // close SSM
+   if (iSsmPluginCallback)
+      {
+	  // just call callback interface and pass into it error code
+	  iSsmPluginCallback->SsmPluginCallback(iStatus.Int(), iCallbackData);
+      iSsmPluginCallback = NULL;	
+      }	
+   }
+
+// ---------------------------------------------------------------------------  
+//  Cancel for Active object
+// --------------------------------------------------------------------------- 		
+void CChangeRfForEmergencyCall::DoCancel()
+   {
+   iSsmEmergencyCallRf.Cancel(); 
+   iBusy = ENotBusy;
+   }
+