messagingfw/alwaysonline/AlwaysOnlineManager/inc/AOActiveScheduler.h
changeset 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/alwaysonline/AlwaysOnlineManager/inc/AOActiveScheduler.h	Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,91 @@
+/*
+* Copyright (c) 2007 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:  Always Online class
+*
+*/
+
+
+#ifndef __CAOACTIVESCHEDULER_H__
+#define __CAOACTIVESCHEDULER_H__
+
+// INCLUDES
+#include    <e32std.h>
+
+#include "AlwaysOnlineManagerClient.h"
+
+class CAlwaysOnlineManagerServer;
+
+// CLASS DECLARATION
+/**
+ * Active Scheduler
+ *
+ * Own derived CActiveScheduler which is overwritting
+ * Error() function so it does not panic there as default implementation
+ *
+ * @since S60 v3.1
+ */
+NONSHARABLE_CLASS( CAOActiveScheduler ):
+    public CActiveScheduler
+    {
+    public:
+    
+    /**
+    * C++ constructor
+    * @since S60 v3.1
+    * @param aAoServer reference to ao server object
+    */
+    CAOActiveScheduler();
+
+    /**
+    * C++ destructor
+    * @since S60 v3.1
+    */
+    virtual ~CAOActiveScheduler();
+
+    /**
+    * From CActiveScheduler
+    *
+    * If some active object returns error code from RunError()
+    * this function is called, implementation broadcasts 
+    * EServerAPIBaseCommandAoSchedulerError to every ao plugin.
+    *
+    * NOTE: This error must be handled in HandleServerCommandL() 
+    * if there is a risk that some plugin's active object returns 
+    * something else than KErrNone from RunError() method.
+    * 
+    * @since S60 v3.1
+    * @param anError Error code from RunError function
+    */
+    virtual void Error( TInt anError ) const;
+    
+    /**
+    *
+    * Setter function for AO server object pointer, this can't set
+    * in constructor because Active scheduler have to be
+    * installed before creation of AO server object
+    * (chicken - egg problem)
+    * 
+    * @since S60 v3.1
+    * @param aAoServer pointer to AoServer object, NOT OWNED
+    */
+    void SetServerRef( CAlwaysOnlineManagerServer* aAoServer );
+    
+    private:
+    
+    // pointer to ao server class (NOT OWNED)
+    CAlwaysOnlineManagerServer* iAoServer;
+    };
+
+
+#endif      // __CAOACTIVESCHEDULER_H__