--- a/sysstatemgmt/systemstatemgr/cmn/inc/ssmstatemonitor.h Wed Sep 29 15:13:21 2010 +0300
+++ b/sysstatemgmt/systemstatemgr/cmn/inc/ssmstatemonitor.h Fri Oct 08 14:33:25 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -48,5 +48,44 @@
TSsmState iState;
};
+/**
+This active object will, once activated, repeatedly attempt to defer
+a transition deadline.
+It will stop once an attempt to defer fails eg. because deferral
+was cancelled or the transition was acknowledged or the deferral limit was reached.
+@internalComponent
+@released
+*/
+NONSHARABLE_CLASS(CSsmDeferralMonitor) : public CActive
+ {
+public:
+ CSsmDeferralMonitor(RSsmStateAwareSession& aStateAwareSession, CSsmStateAwareSession2& aOwnerActiveObject);
+ ~CSsmDeferralMonitor();
+
+ /**
+ Request deadline deferral for the last transition
+ notification
+ */
+ void DeferNotification();
+ void NotifyOfAcknowledgement();
+
+protected:
+ /**
+ Re-call DeferNotification(), unless the previous
+ call completed with an error.
+ */
+ void RunL();
+
+ /**
+ Handle errors thrown from RunL() - call HandleDeferralErrror()
+ */
+ TInt RunError(TInt aError);
+ void DoCancel();
+private:
+ RSsmStateAwareSession& iSsmStateAwareSession;
+ CSsmStateAwareSession2& iOwnerActiveObject;
+ TBool iCeaseDeferral;
+ };
+
#endif