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