ipsservices/tsrc/profiletester/src/timeouttimer.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 14 Sep 2010 20:48:24 +0300
branchRCL_3
changeset 26 968773a0b6ef
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
 * ============================================================================
 *  Name        :  timeouttimer.cpp
 *  Part of     :  ipsservice / profiletester 
 *  Description :: timer implementation
 *  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
 *
 *  Copyright © 2010-2010 Nokia and/or its subsidiary(-ies).  All rights reserved.
 *  This material, including documentation and any related computer
 *  programs, is protected by copyright controlled by Nokia.  All
 *  rights are reserved.  Copying, including reproducing, storing,
 *  adapting or translating, any or all of this material requires the
 *  prior written consent of Nokia.  This material also contains
 *  confidential information which may not be disclosed to others
 *  without the prior written consent of Nokia.
 * ============================================================================
 */

#include "timeouttimer.h"

// -----------------------------------------------------------------------------
// CTimeoutTimer::NewL
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CTimeoutTimer* CTimeoutTimer::NewL(MTimeoutObserver& aHandle)
    {
    CTimeoutTimer* self = CTimeoutTimer::NewLC(aHandle);
    CleanupStack::Pop(self);
    return self;
    }

// -----------------------------------------------------------------------------
// CTimeoutTimer::NewLC
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CTimeoutTimer* CTimeoutTimer::NewLC(MTimeoutObserver& aHandle)
    {
    CTimeoutTimer* self = new (ELeave) CTimeoutTimer(aHandle);
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
    }

// -----------------------------------------------------------------------------
// CTimeoutTimer::CTimeoutTimer
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
CTimeoutTimer::CTimeoutTimer(MTimeoutObserver& aHandle) :
    CTimer(EPriorityStandard), iNotifyHandle(aHandle)
    {
    }

// -----------------------------------------------------------------------------
// CTimeoutTimer::~CTimeoutTimer
// Destructor
// -----------------------------------------------------------------------------
//
CTimeoutTimer::~CTimeoutTimer()
    {
    Stop();
    }

// -----------------------------------------------------------------------------
// CTimeoutTimer::ConstructL
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CTimeoutTimer::ConstructL()
    {
    CTimer::ConstructL();
    CActiveScheduler::Add(this);
    }

// -----------------------------------------------------------------------------
// CTimeoutTimer::Start
// Start
// -----------------------------------------------------------------------------
//
void CTimeoutTimer::Start(TInt aTimePeriod)
    {
    After(aTimePeriod);
    }

// -----------------------------------------------------------------------------
// CTimeoutTimer::Stop
// Stop
// -----------------------------------------------------------------------------
//
void CTimeoutTimer::Stop()
    {
    Cancel();
    }

// -----------------------------------------------------------------------------
// CTimeoutTimer::RunL
// RunL
// -----------------------------------------------------------------------------
//
void CTimeoutTimer::RunL()
    {
    if (iStatus == KErrNone)
        {
        iNotifyHandle.TimeoutNotify();
        }
    else
        {
        User::Leave(iStatus.Int());
        }
    }

// -----------------------------------------------------------------------------
// CTimeoutTimer::RunError
// RunError
// -----------------------------------------------------------------------------
//
TInt CTimeoutTimer::RunError(TInt /*aError*/)
    {
    return KErrNone;
    }