sysanadatacapture/piprofiler/piprofiler_api/inc/ProfilerEngineStatusChecker.h
author Matti Laitinen <matti.t.laitinen@nokia.com>
Thu, 11 Feb 2010 15:52:57 +0200
changeset 1 3ff3fecb12fe
permissions -rw-r--r--
Add initial version of PI Profiler under EPL

/*
* Copyright (c) 2009 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:   
*
*/

#ifndef PROFILER_STATUS_CHECKER_H
#define PROFILER_STATUS_CHECKER_H

#include <e32std.h>
#include <e32base.h>
#include <e32property.h>    // RProperty

// CONSTANTS
const TUid KEngineStatusPropertyCat = { 0x2001E5AD };
enum TEnginePropertyKeys
    {
    EProfilerEngineStatus = 8
    };

// CLASS DECLARATIONS
class MProfilerStatusObserver
    {
    public: // Enums
        enum KProfilerStatus
            {
            EIdle = 0,
            EInitializing,
            ERunning,
            EStopping,
            ERestarting
            };

    public: // New
        virtual void HandleProfilerStatusChange(
                KProfilerStatus aStatus ) = 0;
        virtual void HandleProfilerErrorL(
                TInt aError ) = 0;
    };


class CProfilerEngineStatusChecker : public CActive
    {
public:
    inline static CProfilerEngineStatusChecker* CProfilerEngineStatusChecker::NewL();
    inline ~CProfilerEngineStatusChecker();
    inline void SetObserver(MProfilerStatusObserver* aObserver);
    inline TInt GetInitialState();
private:
    inline CProfilerEngineStatusChecker();
    inline void ConstructL();
    inline void RunL();
    inline void DoCancel();
private:
    TInt                        iPrevStat;
    MProfilerStatusObserver*    iObserver;
    RProperty                   iEngineStatus;
    };

#include <piprofiler/ProfilerEngineStatusChecker.inl>


#endif // PROFILER_STATUS_CHECKER_H