telephonyserverplugins/common_tsy/systemstateplugin/inc/ctsysystemstateplugin.h
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/common_tsy/systemstateplugin/inc/ctsysystemstateplugin.h	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,105 @@
+// 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:
+//
+
+#ifndef CTSYSYSTEMSTATEPLUGIN_H
+#define CTSYSYSTEMSTATEPLUGIN_H
+
+#include <e32base.h>
+#include "ctsysystemstatepluginhandler.h"
+
+
+#include <ssm/ssmadaptationcli.h>
+
+
+
+class CChangeRfForEmergencyCall;
+
+/*		
+*/
+class CCtsySystemStatePlugin : public CCtsySystemStatePluginService
+	{	
+friend class CChangeRfForEmergencyCall;
+
+public:
+	static CCtsySystemStatePlugin* NewL();	
+	~CCtsySystemStatePlugin();	
+
+protected: //From CCtsySystemStatePluginService
+	TInt Connect();
+	void ActivateRfForEmergencyCall(MCtsySsmPluginCallback* aSsmPluginCallback, TCtsySsmCallbackData& aCallbackData);
+	void DeactivateRfAfterEmergencyCall();
+	void Close();
+
+protected:	
+	CCtsySystemStatePlugin();
+	void ConstructL();
+	
+	// Active object for do RF state changing 
+	CChangeRfForEmergencyCall* iAoChangeRfForEmergencyCall;	
+	RSsmEmergencyCallRfAdaptation iSsmEmergencyCallRf;
+
+	TBool iConnected;
+
+	};
+	
+	/*
+	Active object for changing Rf State
+	*/
+	class CChangeRfForEmergencyCall : public CActive
+		{
+	public:			
+		enum TBusyType
+        {
+        ENotBusy,
+        EActivateBusy,
+        EDeactivateBusy
+        };
+		 	
+	public:
+		CChangeRfForEmergencyCall(CCtsySystemStatePlugin& iCtsySystemStatePlugin,
+								  RSsmEmergencyCallRfAdaptation& aSsmEmergencyCallRf);
+		~CChangeRfForEmergencyCall();
+
+		void ActivateRfForEmergencyCall(MCtsySsmPluginCallback* aSsmPluginCallback, TCtsySsmCallbackData& aCallbackData);
+		void DeactivateRfAfterEmergencyCall();
+		
+		// indicate if there is any request to CTSY
+		TBool Busy();
+		
+		// from CActive
+	private:	
+		void RunL();
+		void DoCancel();
+	
+	private: // data
+		// pointer to interface to call in RunL
+		MCtsySsmPluginCallback* iSsmPluginCallback;	 
+	
+		// As RSsmEmergencyCallRfAdaptation allows
+		//only one request is allowed to be outstanding for each connected session.
+		// we have to keep it in mind.
+		TBusyType iBusy; 
+	
+		CCtsySystemStatePlugin&			iCtsySystemStatePlugin;
+		RSsmEmergencyCallRfAdaptation&	iSsmEmergencyCallRf;		
+		
+		// data to pass into callback
+		TCtsySsmCallbackData iCallbackData;
+		};
+
+
+	
+	
+#endif