diff -r 000000000000 -r 4e1aa6a622a0 sysstatemgmt/systemstatereferenceplugins/custcmd/inc/cmdsimsecuritycheck.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/cmdsimsecuritycheck.h Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,186 @@ +/* +* Copyright (c) 2008-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: +* Name : strtsecuritychecktask.h +* Part of : System Startup / Starter +* Declaration of CStrtSecurityCheckTask class +* Version : %version: ou1s60rt#5.1.1 % +* This material, including documentation and any related computer +* programs, is protected by copyright controlled by Nokia. All +* rights are reserved. Copying, including reproducing, storing, +* adapting or translating, any or all of this material requires the +* prior written consent of Nokia. This material also contains +* confidential information which may not be disclosed to others +* without the prior written consent of Nokia. +* Template version: 4.0 +* Nokia Core OS * +* File renamed from strtsecuritychecktask.h to cmdsimsecuritycheck.h as part of Core OS transfer. +* +*/ + + + + +/** + @file + @internalComponent + @released +*/ + +#ifndef __CMDSIMSECURITYCHECK_H__ +#define __CMDSIMSECURITYCHECK_H__ + +#include +#include "ssmpanic.h" +#include "ssmsecuritychecknotifier.h" +#include "ssmuiproviderdll.h" +#include +#include "securitynoteobserver.h" + +#include "strtsecuritynotetype.h" +#include "strtsecuritystatus.h" +#include "startupadaptationcommands.h" +#include "starterprivatecrkeys.h" + +#include +#include +#include +#include + +typedef StartupAdaptation::TSecurityStateInfo TSecurityStateInfo; +typedef StartupAdaptation::TSecurityState TSecurityState; + +NONSHARABLE_CLASS(CSsmSimStatusPSObserver) : public CActive + { +public: + static CSsmSimStatusPSObserver* NewL(TUid aCategory, TUint aKey); + ~CSsmSimStatusPSObserver(); + + void StartObserving(TRequestStatus& aStatus); + TInt GetValue(TInt& aValue); + +protected: + // from CActive + void DoCancel(); + void RunL(); + +private: + CSsmSimStatusPSObserver(TUid aCategory, TUint aKey); + void Complete(const TInt aErrorCode); + void ConstructL(); + +private: + RProperty iProperty; + TUid iCategory; + TUint iKey; + TRequestStatus* iClientStatus; + }; + +NONSHARABLE_CLASS (CCustomCmdSimSecurityCheck) : public CActive , public MSsmCustomCommand + { +public: + static CCustomCmdSimSecurityCheck* NewL(); + + // from MSsmcustomCommand + TInt Initialize(CSsmCustomCommandEnv* aCmdEnv); + void Execute(const TDesC8& aParams, TRequestStatus& aStatus); + void Close(); + void Release(); + void ExecuteCancel(); + +protected: + // from CActive + void RunL(); + void DoCancel(); + TInt RunError(TInt aError); + +protected: + void ConstructL(); + void Cleanup(TInt aError); + +private: + CCustomCmdSimSecurityCheck(); + ~CCustomCmdSimSecurityCheck(); + + void StartStateChange(const TSecurityState aState, const TStrtSecurityNoteType aNoteType = ESecNoteNone); + void StateChangeL( const TInt aResultCode ); + void CompleteClientRequest(TInt aReason); + void SecurityCheckL(); + void DoSecurityCheck(); + + void HandleSIMPresent(); + void HandleSIMInvalid(); + void HandleSIMRejected(); + void HandleSIMBlocked(); + void HandlePINRequired(); + void HandleSIMLessOfflineSupported(); + void HandleSIMLock(); + void HandlePINAsked(); + void HandlePUKAsked(); + + void SetSecurityCheckOK(); + void StartSecurityNoteObserverL(); + + //Sim related + void SimRemoved(); + void SimNotSupported(); + void SimReadable(); + void SimUsable(); + void DoSimRemoved(); + void DoSimNotSupported(); + void DoSimReadable(); + void DoSimUsable(); + void DoObserveSimStatusPS(); + + void DoExtendedSimOperations(); + + TBool IsSimSupported(); + + //Security Status + void SetSecurityStatus(const TStrtSecurityStatus& aSecurityStatus); + TStrtSecurityStatus SecurityStatus() const; + +private: + enum TSimSecuritySubState + { + ESecuritySubStateNone = 0, + ESecuritySubStateSimRemoved, + ESecuritySubStateSimNotSupported, + ESecuritySubStateSimReadable, + ESecuritySubStateSimUsable, + ESecuritySubStateSimStatusPSObserver + }; + +private: + TSecurityState iState; + RSsmMiscAdaptation iSsmMiscAdaptation; + TSecurityStateInfo iSecurityStateInfo; + TStrtSecurityNoteType iNoteType; + TBool iStateChangePending; + CSsmSecurityCheckNotifier* iSsmSecurityCheckNotifier; + TUid iStartupPSUid; + TPckg* iSecurityStateInfoResult; + CSsmUiSpecific* iSsmUiSpecific; + RSsmStateManager iSsmStateManager; + RSsmSusCli iSsmSusCli; + CSecurityNoteObserver* iSecurityNoteObserver; + TSimSecuritySubState iSubState; + TRequestStatus* iExecuteRequest; + CSsmSimStatusPSObserver* iSimStatusPSObserver; +#ifdef TEST_CUSTCMD_MACRO + friend class CCustomCmdTestSimSecurityCheck; +#endif + + }; +#endif // __CMDSIMSECURITYCHECK_H__