messagingapp/msgnotifications/msgnotifier/tsrc/mmstestbed/src/mmstestuitimer.cpp
author hgs
Fri, 25 Jun 2010 15:47:40 +0530
changeset 37 518b245aa84c
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description:
hgs
parents:
diff changeset
    15
 */
hgs
parents:
diff changeset
    16
hgs
parents:
diff changeset
    17
#include "mmstestuitimer.h"
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    24
//
hgs
parents:
diff changeset
    25
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    26
//
hgs
parents:
diff changeset
    27
CTestUiTimer::CTestUiTimer(): CTimer( 5 )
hgs
parents:
diff changeset
    28
    {
hgs
parents:
diff changeset
    29
    period = KPeriod;
hgs
parents:
diff changeset
    30
    }
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    34
//
hgs
parents:
diff changeset
    35
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    36
//
hgs
parents:
diff changeset
    37
void CTestUiTimer::ConstructL()
hgs
parents:
diff changeset
    38
    {
hgs
parents:
diff changeset
    39
    CTimer::ConstructL();
hgs
parents:
diff changeset
    40
    CActiveScheduler::Add(this);
hgs
parents:
diff changeset
    41
    }
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    45
//
hgs
parents:
diff changeset
    46
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    47
//
hgs
parents:
diff changeset
    48
CTestUiTimer* CTestUiTimer::NewL()
hgs
parents:
diff changeset
    49
    {
hgs
parents:
diff changeset
    50
    CTestUiTimer* self = new(ELeave) CTestUiTimer();
hgs
parents:
diff changeset
    51
    CleanupStack::PushL(self);
hgs
parents:
diff changeset
    52
    self->ConstructL();
hgs
parents:
diff changeset
    53
    CleanupStack::Pop(self);
hgs
parents:
diff changeset
    54
    return self;
hgs
parents:
diff changeset
    55
    }
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    58
//
hgs
parents:
diff changeset
    59
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    60
//
hgs
parents:
diff changeset
    61
CTestUiTimer::~CTestUiTimer()
hgs
parents:
diff changeset
    62
    {
hgs
parents:
diff changeset
    63
    }
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    67
//
hgs
parents:
diff changeset
    68
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    69
//
hgs
parents:
diff changeset
    70
void CTestUiTimer::IssueRequest()
hgs
parents:
diff changeset
    71
    {
hgs
parents:
diff changeset
    72
    // No operation to cancel if this function is called
hgs
parents:
diff changeset
    73
    iObject = NULL;
hgs
parents:
diff changeset
    74
    After(period);
hgs
parents:
diff changeset
    75
    }
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    78
//
hgs
parents:
diff changeset
    79
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    80
//
hgs
parents:
diff changeset
    81
void CTestUiTimer::TimeoutOperation( CActive* aObject, TTimeIntervalSeconds aTimeoutInSeconds )
hgs
parents:
diff changeset
    82
    {
hgs
parents:
diff changeset
    83
    iObject = aObject;
hgs
parents:
diff changeset
    84
    TTimeIntervalMicroSeconds32 timeout = aTimeoutInSeconds.Int() * 1000000;
hgs
parents:
diff changeset
    85
    After( timeout );
hgs
parents:
diff changeset
    86
    }
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    89
//
hgs
parents:
diff changeset
    90
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    91
//
hgs
parents:
diff changeset
    92
void CTestUiTimer::DoCancel()
hgs
parents:
diff changeset
    93
    {
hgs
parents:
diff changeset
    94
    CTimer::DoCancel();
hgs
parents:
diff changeset
    95
    if ( iObject )
hgs
parents:
diff changeset
    96
        {
hgs
parents:
diff changeset
    97
        iObject->Cancel();
hgs
parents:
diff changeset
    98
        iObject = NULL;
hgs
parents:
diff changeset
    99
        }
hgs
parents:
diff changeset
   100
    }
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   103
//
hgs
parents:
diff changeset
   104
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   105
//
hgs
parents:
diff changeset
   106
void CTestUiTimer::RunL()
hgs
parents:
diff changeset
   107
    {
hgs
parents:
diff changeset
   108
    if ( iObject )
hgs
parents:
diff changeset
   109
        {
hgs
parents:
diff changeset
   110
        // If we timeout while holding an active object, we cancel it
hgs
parents:
diff changeset
   111
        iObject->Cancel();
hgs
parents:
diff changeset
   112
        iObject = NULL;
hgs
parents:
diff changeset
   113
        }
hgs
parents:
diff changeset
   114
    else
hgs
parents:
diff changeset
   115
        {
hgs
parents:
diff changeset
   116
        CActiveScheduler::Stop();
hgs
parents:
diff changeset
   117
        }
hgs
parents:
diff changeset
   118
    }
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
// ======== GLOBAL FUNCTIONS ========
hgs
parents:
diff changeset
   121