00001 // 00002 // Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 00003 // All rights reserved. 00004 // This component and the accompanying materials are made available 00005 // under the terms of "Eclipse Public License v1.0" 00006 // which accompanies this distribution, and is available 00007 // at the URL "http://www.eclipse.org/legal/epl-v10.html". 00008 // 00009 // Initial Contributors: 00010 // Nokia Corporation - initial contribution. 00011 // 00012 // Contributors: 00013 // 00014 // Description: 00015 // Extends the GSA (Generic Startup Architecture) normal policy to 00016 // to support the dummy backup and restore states added as part of this example. 00017 // The example uses this extended normal state, which replaces the existing normal policy. 00018 00019 #ifndef __GSASTATEPOLICYNORMAL_H__ 00020 #define __GSASTATEPOLICYNORMAL_H__ 00021 00022 #include <e32base.h> 00023 #include <ssm/ssmstatepolicy.h> 00024 #include <ssm/ssmconditionalcallback.h> 00025 00026 class CSsmCommandListResourceReader; 00027 00036 NONSHARABLE_CLASS(CEgGsaStatePolicyNormal) : public CBase, public MSsmStatePolicy, public MSsmConditionalCallback 00037 { 00038 public: 00039 IMPORT_C static MSsmStatePolicy* NewL(); 00040 00041 //from MSsmStatePolicy 00042 TResponse TransitionAllowed(const TSsmStateTransition& aRequest, TSsmStateTransition const* aCurrent, TSsmStateTransition const* aQueued, 00043 const RMessagePtr2& aMessage); 00044 void Initialize(TRequestStatus& aStatus); 00045 void InitializeCancel(); 00046 void PrepareCommandList(TSsmState aState, TInt aReason, TRequestStatus& aStatus); 00047 void PrepareCommandListCancel(); 00048 CSsmCommandList* CommandList(); 00049 TBool GetNextState(TSsmState aCurrentTransition, TInt aReason, TInt aError, TInt aSeverity, TSsmState& aNextState); 00050 void Release(); 00051 00052 // from MSsmConditionalCallback 00053 TBool ConditionalCommandAllowedL(CResourceFile& aResourceFile, TInt aResourceId); 00054 00055 private: 00056 ~CEgGsaStatePolicyNormal(); 00057 CEgGsaStatePolicyNormal(); 00058 00059 void ConstructL(); 00060 TBool TransitionSupported(const TSsmState& aRequestedState) const; 00061 00062 private: 00063 RArray<TSsmState> iCurrentlySupportedTransitions; 00064 CSsmCommandListResourceReader* iCommandListResourceReader; 00065 RFs iFs; 00066 00067 // Possible panic codes within Normal policy 00068 enum TNormalPanicCodes 00069 { 00073 EInvalidResourceReader = 1, 00077 EInvalidNormalState, 00081 EConditionalInfoNotImplemented 00082 }; 00083 }; 00084 00085 #endif // __GSASTATEPOLICYNORMAL_H__
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.