telephonyserverplugins/simtsy/inc/CSimPhoneUSimApp.h
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/simtsy/inc/CSimPhoneUSimApp.h	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,113 @@
+// Copyright (c) 2002-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 __SIMPHONEUSIMAPP_H_
+#define __SIMPHONEUSIMAPP_H_
+
+/**
+ * @file
+ *
+ * Contains the class definitions required for the Phone USim applications.
+ * @internalAll
+ */
+
+#include <etelmm.h>
+#include <et_phone.h>
+#include <mpbutil.h>
+#include "csimtimer.h"
+#include "CSimPhone.h"
+
+const TInt KMaxUSimApps = 3;
+
+/**
+ * The main Phone USim applications class which simulates USim applications features.
+ */
+class CSimPhone;
+class CTestConfigSection;
+class CTestConfigItem;
+class CSimPhoneUSimApp : public CSubSessionExtBase, public MTimerCallBack
+	{
+public:
+	static CSimPhoneUSimApp* NewL(CSimPhone* aPhone);
+	CSimPhoneUSimApp(CSimPhone* aPhone);
+	~CSimPhoneUSimApp();
+
+	virtual CTelObject::TReqMode ReqModeL(const TInt aIpc);
+// MTelObjectTSY pure virtual
+	virtual TInt RegisterNotification(const TInt aIpc);
+	virtual TInt DeregisterNotification(const TInt aIpc);
+	virtual void Init();
+	virtual CTelObject* OpenNewObjectByNameL(const TDesC& aName);
+	virtual CTelObject* OpenNewObjectL(TDes& aNewName);
+	virtual TInt NumberOfSlotsL(const TInt aIpc);
+	virtual TInt CancelService(const TInt aIpc, const TTsyReqHandle aTsyReqHandle);
+
+// MSubSessionExtBaseTSY pure virtual
+	virtual TInt ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,const TDataPackage& aPackage);
+	virtual void TimerCallBack(TInt aId);
+	const CTestConfigSection* CfgFile();
+	RMobilePhone::TAID GetActiveUSim();
+	
+	TBool FoundUSimAppTags();
+
+protected:
+	void ConstructL();
+	
+private:
+	class TUSimAppEvent 
+	{
+	public:
+		TUint32 iDuration;
+		RMobilePhone::TAID iAid;
+	};
+	
+	class TUSimNotifyData
+	{	
+	public:
+		TBool iNotifyPending;  //indicates if a notification is pending
+		TTsyReqHandle iNotifyHandle; //the TSY notification handle
+		TAny* iNotifyData;  //Holds the data for the notification pending
+		TAny* iNotifyDataXtra;  //Holds the data for the notification pending
+	};
+
+	TInt EnumerateUSimApplications(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID);
+	TInt EnumerateUSimApplicationsCancel(const TTsyReqHandle aTsyReqHandle);
+	TInt GetUSimApplicationInfo(const TTsyReqHandle aTsyReqHandle, TInt* aUSimAppIndex, TDes8* aInfo);
+	TInt GetUSimApplicationInfoCancel(const TTsyReqHandle aTsyReqHandle);
+	TInt NotifyUSimApplicationsInfoChange(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID);
+	TInt NotifyUSimApplicationsInfoChangeCancel(const TTsyReqHandle aTsyReqHandle);
+	TInt SetUSimApplicationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID, RMobilePhone::TUSimAppAction* aUsimAppAction);
+	TInt SetUSimApplicationStatusCancel(const TTsyReqHandle aTsyReqHandle);
+	TInt SetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aUSimSelectionMode);
+	TInt GetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aUSimSelectionMode);
+	TInt NotifyUSIMAppsSelectionModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aUSimSelectionMode);
+	TInt NotifyUSIMAppsSelectionModeChangeCancel(const TTsyReqHandle aTsyReqHandle);
+
+	
+private:
+	CSimPhone* iPhone;
+	CSimTimer* iTimer;
+	RMobilePhone::TUSimSelectionMode iCurrentSelection;
+	RMobilePhone::TAID iActiveAID;
+	CArrayFixFlat<TUSimAppEvent>* iUSimAppEventList;
+	TInt iEventPointer;
+	CArrayFixFlat<RMobilePhone::TUSimApplicationInfoV2>* iUSimAppInfo;
+	TUSimNotifyData iNotifyInfo;
+	TNotifyData iNotifyMode;
+	TBool iTimerStarted;
+	TBool iFoundUSimAppTags;
+	};
+
+#endif