clock2/clockui/uimodel/inc/clkuiidleobserver.h
author Simon Howkins <simonh@symbian.org>
Mon, 22 Nov 2010 16:01:09 +0000
branchRCL_3
changeset 93 d216ae5a8733
parent 0 f979ecb2b13e
permissions -rw-r--r--
Adjusted to avoid exports, etc, from a top-level bld.inf

/*
* Copyright (c) 2008 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:  The header file for CClkUiIdleObserver class.
*
*/

#ifndef __CLKUI_IDLE_OBSERVER_H__
#define __CLKUI_IDLE_OBSERVER_H__

// System includes

// User includes
#include "clkuiintermediateobserver.h"

// Forward declarations

// Class declaration
/**
* @class CClkUiIdleObserver
* @brief The idle observer class.
* @dll clkuimodel
*/
class CClkUiIdleObserver : public CClkUiMdlIntermediateObserver
    {
    public:         // Constructor and destructor.
    
        /**
        * @brief C++ default constructor.
        */
        IMPORT_C CClkUiIdleObserver();

        /**
        * @brief Destructor.
        */
        IMPORT_C ~CClkUiIdleObserver();

        /**
        * @brief The symbian OS 2nd phase constructor, can leave.
        * @param aObserver Observer of type MClkUiMdlObserver.
        * @param aPriority The priority.
        */
        IMPORT_C void ConstructL( MClkModelObserver* aObserver, TInt aPriority );

    public:         // Functions from base classes.

        /**
        * @brief From MClkUiMdlObserver. Called when the model is changed.
        * @param aReason The reason for notification.
        */
        IMPORT_C virtual void HandleUpdateL( TInt aReason );
        
    public:         // New functions

        /**
        * @brief Cancel any outstanding requests with the CIdle.
        */
        void CancelIdleRefresh();

    protected:      // New functions

        /**
        * @brief Cancel any outstanding requests with CIdle.
        */
        IMPORT_C virtual void DoIdleCancel();

        /**
        * @brief Notify the idle observer of the change.
        */
        IMPORT_C virtual void DoIdleNotifyL();

    private:        // New functions

        /**
        * @brief Starts the idle notification service.
        */
        void StartIdleRefresh();

        /**
        * @brief Callback from CIdle about any change.
        * @param aPtr Will be this object.
        * @return TInt
        */
        static TInt IdleCallBackL( TAny* aPtr );

    private:        // Data

        /**
        * @var iReason
        * @brief The reason for notification.
        */
        TInt            iReason;
        
        /**
        * @var iIdle
        * @brief The idle object, owned.
        */
        CIdle*          iIdle;
    };

#endif      // __CLKUI_IDLE_OBSERVER_H__

// End of file