videoutils_plat/videoscheduler_api/inc/ipvideo/CCseSchedulerPluginIF.h
author hgs
Thu, 04 Nov 2010 11:29:04 +0200
changeset 55 5af11d9814f5
parent 3 bdf78597b41c
permissions -rw-r--r--
201044

/*
* 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:    Common interface for scheduler plugins.*
*/




#ifndef CCSESCHEDULERPLUGINIF_H
#define CCSESCHEDULERPLUGINIF_H

#include <e32std.h>
#include <e32base.h>
class CCseScheduledProgram;
class MCsePluginObserver;

class CCseSchedulerPluginIF : public CBase
    {
public:
    /**
    * Construction method.
    * @param    aUid    Ecom implementation uid of the used plugin.
    * @return   None
    */
    static CCseSchedulerPluginIF* NewL( const TUid& aUid );

    /**
    * Runs given task in plugin.
    * @param    aProg       Schedule to be run in plugin.
    * @param    aObserver   Pointer back to scheduling engine. Called
    *                       when schedule is completed or error occurs.
    * @return   None
    */	
	virtual void RunTaskL( CCseScheduledProgram& aProg,
						   MCsePluginObserver* aObserver ) = 0;	
	
    /**
    * Return the ECom implementation uid of this plugin.
    * @return ECom implementation uid.
    */
    TUid ImplementationUid() const;
    
    /**
    * Destructor
    */    
    virtual ~CCseSchedulerPluginIF();
    
protected:    
    /**
    * Instance identifier key. When instance of an
    * implementation is created by ECOM framework, the
    * framework will assign UID for it. The UID is used in
    * destructor to notify framework that this instance is
    * being destroyed and resources can be released.
    */    
    TUid iDtorIDKey;

    /**
    * Ecom implementation uid
    */
    TUid iImplementationUid;
    };



#include <ecom/ecom.h>
#include <ipvideo/CCseSchedulerPluginIF.inl>

#endif //CCSESCHEDULERPLUGINIF_H