wlanutilities/wlansniffer/mainapplication/inc/wsfactivetimeupdater.h
author Peter Fordham <peter.fordham@gmail.com>
Fri, 05 Mar 2010 17:02:18 -0800
branchCompilerCompatibility
changeset 9 cb0d84368d6e
parent 0 56b72877c1cb
permissions -rw-r--r--
start CompilerCompatibility

/*
* Copyright (c) 2007-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:  Class header for CWsfActiveTimeUpdater
*
*/

#ifndef C_WSFACTIVETIMEUPDATER_H
#define C_WSFACTIVETIMEUPDATER_H

//  EXTERNAL INCLUDES
#include <e32base.h>

//  INTERNAL INCLUDES

//  FORWARD DECLARATIONS
class MWsfActiveTimerHandler;


/**
 *  Responsible for time updating by using a customizable time interval.
 *  @since S60 v5.0
 */
NONSHARABLE_CLASS( CWsfActiveTimeUpdater ) : public CBase
    {
    public:     // Constructors and destructor
        
        /**
         * Two-phased constructor
         * @since S60 5.0 
         * @param aActiveTimerHandler interface details views controller
         * @return instance of CWsfActiveTimeUpdater class
         */
        static CWsfActiveTimeUpdater* NewL(
                MWsfActiveTimerHandler* aActiveTimerHandler );


        /**
         * Two-phased constructor. Leaves the object on CleanupStack
         * @since S60 5.0 
         * @param aActiveTimerHandler interface details views controller
         * @return instance of CWsfActiveTimeUpdater class
         */
        static CWsfActiveTimeUpdater* NewLC( 
                MWsfActiveTimerHandler* aActiveTimerHandler );
        
        /**
         * Destructor of CWsfActiveTimeUpdater class
         * @since S60 5.0     
         */
        ~CWsfActiveTimeUpdater();
        
    private:    // Constructors
        
        /**
         * Default C++ constructor 
         * @since S60 5.0 
         * @param aActiveTimerHandler interface details views controller
         */
        CWsfActiveTimeUpdater( MWsfActiveTimerHandler* aActiveTimerHandler );
        
        /**
         * 2nd phase constructor
         * @since S60 5.0 
         */
        void ConstructL();
    
    public:     // New methods
    
        /**
         * Start update timer
         * @since S60 5.0 
         * @param aUpdateInterval refresh time interval
         */
        void Start( TInt aUpdateInterval );
        
        /**
         * Stop update timer
         * @since S60 5.0 
         */
        void Stop();
    
        /**
         * Called from static call back of CPeriodic.
         * The actual update process starts here
         * @since S60 5.0 
         */
        void DoUpdateTimeL();
        
    private:    // New methods
        /**
         * Function to called when periodic timer releases
         * @since S60 5.0 
         * @param aUpdater pointer to this
         */
        static TInt UpdateTimeL( TAny* aUpdater );
    
    private: 
    
        /**
         * Pointer to the Active Timer handler interface 
         * Own.
         */
        MWsfActiveTimerHandler* iActiveTimerHandler;

        /**
         * Timer, to refresh the details views
         * Own.
         */
        CPeriodic* iPeriodic;
    };

#endif // C_WSFACTIVETIMEUPDATER_H