diff -r 798ee5f1972c -r 826cea16efd9 videoscheduler/SchedulerServer/inc/CCseSchedulerPluginControllerBase.h --- a/videoscheduler/SchedulerServer/inc/CCseSchedulerPluginControllerBase.h Thu Aug 19 10:54:18 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -/* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "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: Header for PluginControllerBase-class* -*/ - - - - -#ifndef __CCSESCHEDULERPLUGINCONTROLLERBASE_H -#define __CCSESCHEDULERPLUGINCONTROLLERBASE_H - -// INCLUDES -#include -#include -#include -#include "MCseSchedulerTimerObserver.h" -#include "MCsePluginControllerObserver.h" - -// CONSTANTS -// None - -// MACROS -// None - -// DATA TYPES -// None - -// FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -// None - -// CLASS DECLARATION -class CCseScheduledProgram; -class CCseSchedulerTimer; -class CCseSchedulerServerEngine; - -/** -* Base class for plugin controllers. Handles all plugin related stuff except scheduling logic. -*/ -class CCseSchedulerPluginControllerBase : public CBase, - public MCseScheduleObserver, - public MCseSchedulerTimerObserver - { - public: // Constructors and destructor - /** - * Two-phased constructor. - * @params aEngine reference to engine - * @params aPluginUid plugin uid of the plugin this plugin controller is made for - * @return CCseSchedulerPluginControllerBase pointer to CCseSchedulerPluginControllerBase class - */ - static CCseSchedulerPluginControllerBase* NewL( MCsePluginControllerObserver& aEngine, TInt32 aPluginUid ); - - /** - * Destructor. - */ - virtual ~CCseSchedulerPluginControllerBase(); - - protected: - /** - * C++ default constructor. - */ - CCseSchedulerPluginControllerBase( MCsePluginControllerObserver& aEngine, TInt32 aPluginUid ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // from MCseScheduleObserver-class - /** - * Plugins uses this method to inform common scheduler engine that - * schedule is handled. - * @param aDbIdentifier DbIdentifier of scheduled program that just - * has been processed. - */ - virtual void ScheduleCompletedL( const TUint32 aDbIdentifier, TInt aCompletitionCode ); - - public: // from MCseSchedulerTimerObserver-class - /** - * Plugins uses this method to inform common scheduler engine that - * schedule is handled. - * @param aDbIdentifier DbIdentifier of scheduled program that just - * has been processed. - */ - virtual void TimerErrorL( const TInt32 aError ); - - /** - * Timer is up, run the Plugins!!! - */ - virtual void RunPluginsL( ); - - public: // New methods - - /** - * Sets plugin to be cleared after callstack break. - * @param aToBeCleared ETrue if controller needs to be cleared. - */ - void SetToBeCleared( TBool aToBeCleared ); - - /** - * Clears controller: clears (takes down all threads running for the plugin) - * all landlords. - */ - virtual void ClearControllerL(); - - /** - * Cleans the controller from LandLord(s) that aren't needed anymore. - */ - virtual void DoCleanUp( ); - - /** - * Sets schedules to controller. More precise information is found from Uni and Multi - * controller classes. - * @params aScheduleArrat Array of schedules to be set into controller. All given - * schedules should have same start time. - */ - virtual void SetSchedulesL( RPointerArray& aScheduleArray ); - - /** - * Gets plugin id. This Uid of the plugin going to be run when time is right. Can be - * used, for example, to find right kind of controller to a schedule. - * @return plugin Uid of the plugin used to run the schedule. - */ - TInt32 PluginUid( ); - - /** - * Checks if the plugin is obsolete (There are no more schedules to be run). - * @return ETrue if obsolete, EFalse if not. - */ - TBool IsObsolete() const; - - /** - * Checks if the plugin is set to be cleared. - * @return ETrue if set, EFalse if not. - */ - TBool IsToBeCleared(); - - /** - * Checks if there are active plugins in controller. - * @return ETrue if active plugins found, EFalse otherwise - */ - virtual TBool IsControllerActive(); - - protected: //data - /** - * Array containing schedules to be run. Own. - */ - RPointerArray iScheduleArray; - - /** - * Timer class. Own. - */ - CCseSchedulerTimer* iTimer; - - /** - * Reference to engine - */ - MCsePluginControllerObserver& iEngine; - - /** - * Uid of the plugin contrelled by this controller. - */ - TInt32 iPluginUid; - - /** - * Boolean indicating if this plugin controller is to cleared - * (plugin running is deleted). - */ - TBool iToBeCleared; - }; - -#endif // __CCSESCHEDULERPLUGINCONTROLLERBASE_H