usbengines/usbotgwatcher/src/cusbstatehostdelayattachedhandle.cpp
author hgs
Mon, 12 Jul 2010 23:44:34 +0300
changeset 58 c3241a5ac9ff
parent 47 878846f7623e
child 63 ef2686f7597e
permissions -rw-r--r--
201023
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
46
hgs
parents:
diff changeset
     1
/*
47
hgs
parents: 46
diff changeset
     2
 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
46
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:  Implementation
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <usbuinotif.h>
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include "cusbstatehostdelayattachedhandle.h"
hgs
parents:
diff changeset
    21
#ifndef STIF
hgs
parents:
diff changeset
    22
#include "cusbtimer.h"
hgs
parents:
diff changeset
    23
#else
hgs
parents:
diff changeset
    24
#include "mockcusbtimer.h"
hgs
parents:
diff changeset
    25
#endif
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
#include "errors.h"
hgs
parents:
diff changeset
    28
#include "debug.h"
hgs
parents:
diff changeset
    29
#include "panic.h"
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
CUsbStateHostDelayAttachedHandle::CUsbStateHostDelayAttachedHandle(
hgs
parents:
diff changeset
    36
        CUsbOtgWatcher& aWatcher) :
hgs
parents:
diff changeset
    37
    CUsbStateHostDelayHandle(aWatcher)
hgs
parents:
diff changeset
    38
    {
hgs
parents:
diff changeset
    39
    }
hgs
parents:
diff changeset
    40
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
CUsbStateHostDelayAttachedHandle* CUsbStateHostDelayAttachedHandle::NewL(
hgs
parents:
diff changeset
    46
        CUsbOtgWatcher& aWatcher)
hgs
parents:
diff changeset
    47
    {
hgs
parents:
diff changeset
    48
    LOG_FUNC
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
    CUsbStateHostDelayAttachedHandle* self =
hgs
parents:
diff changeset
    51
            new (ELeave) CUsbStateHostDelayAttachedHandle(aWatcher);
hgs
parents:
diff changeset
    52
    CleanupStack::PushL(self);
hgs
parents:
diff changeset
    53
    self->ConstructL();
hgs
parents:
diff changeset
    54
    CleanupStack::Pop(self);
hgs
parents:
diff changeset
    55
    return self;
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
//
hgs
parents:
diff changeset
    62
void CUsbStateHostDelayAttachedHandle::ConstructL()
hgs
parents:
diff changeset
    63
    {
hgs
parents:
diff changeset
    64
    LOG_FUNC
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
    CUsbStateHostDelayHandle::ConstructL();
hgs
parents:
diff changeset
    67
    iDriversNotFoundTimer = CUsbTimer::NewL(*this, EDriversNotFoundTimer);
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
    }
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    72
// 
hgs
parents:
diff changeset
    73
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    74
//
hgs
parents:
diff changeset
    75
CUsbStateHostDelayAttachedHandle::~CUsbStateHostDelayAttachedHandle()
hgs
parents:
diff changeset
    76
    {
hgs
parents:
diff changeset
    77
    LOG_FUNC
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
    delete iDriversNotFoundTimer;
hgs
parents:
diff changeset
    80
    }
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    83
// 
hgs
parents:
diff changeset
    84
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    85
//
hgs
parents:
diff changeset
    86
TUsbStateIds CUsbStateHostDelayAttachedHandle::Id()
hgs
parents:
diff changeset
    87
    {
hgs
parents:
diff changeset
    88
    return EUsbStateHostDelayAttachedHandle;
hgs
parents:
diff changeset
    89
    }
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    92
// 
hgs
parents:
diff changeset
    93
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    94
//
hgs
parents:
diff changeset
    95
void CUsbStateHostDelayAttachedHandle::JustBeforeLeavingThisStateL()
hgs
parents:
diff changeset
    96
    {
hgs
parents:
diff changeset
    97
    LOG_FUNC
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
    iDriversNotFoundTimer->Cancel();
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
    // do general things 
hgs
parents:
diff changeset
   102
    CUsbStateHostDelayHandle::JustBeforeLeavingThisStateL();
hgs
parents:
diff changeset
   103
    }
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   106
// 
hgs
parents:
diff changeset
   107
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   108
//
hgs
parents:
diff changeset
   109
void CUsbStateHostDelayAttachedHandle::DoHandleL()
hgs
parents:
diff changeset
   110
    {
hgs
parents:
diff changeset
   111
    LOG_FUNC
hgs
parents:
diff changeset
   112
    LOG1( "iWhat = %d" , iWhat);
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
    switch (iWhat)
hgs
parents:
diff changeset
   115
        {
hgs
parents:
diff changeset
   116
        case EUsbWatcherErrDriversNotFound:
hgs
parents:
diff changeset
   117
            {
hgs
parents:
diff changeset
   118
            LOG("DriversNotFound" );
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
            iDriversNotFoundTimer->After(KTimeDriversNotFound);
hgs
parents:
diff changeset
   121
            break;
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
            }
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
        default:
hgs
parents:
diff changeset
   126
            {
hgs
parents:
diff changeset
   127
            LOG1("Unexpected request id = %d" , iWhat );
47
hgs
parents: 46
diff changeset
   128
            PANIC( EUnexpectedSituationToHandle);
46
hgs
parents:
diff changeset
   129
            break;
hgs
parents:
diff changeset
   130
            }
hgs
parents:
diff changeset
   131
        }
hgs
parents:
diff changeset
   132
    }
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   135
// 
hgs
parents:
diff changeset
   136
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   137
//
hgs
parents:
diff changeset
   138
void CUsbStateHostDelayAttachedHandle::DeviceDetachedL(
hgs
parents:
diff changeset
   139
        TDeviceEventInformation)
hgs
parents:
diff changeset
   140
    {
hgs
parents:
diff changeset
   141
    LOG_FUNC
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
    ChangeHostStateL( EUsbStateHostAInitiate);
hgs
parents:
diff changeset
   144
    }
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
// From TimerObserver
hgs
parents:
diff changeset
   147
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   148
// 
hgs
parents:
diff changeset
   149
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   150
//
hgs
parents:
diff changeset
   151
void CUsbStateHostDelayAttachedHandle::TimerElapsedL(TUsbTimerId aTimerId)
hgs
parents:
diff changeset
   152
    {
hgs
parents:
diff changeset
   153
    LOG_FUNC
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
    switch (aTimerId)
hgs
parents:
diff changeset
   156
        {
hgs
parents:
diff changeset
   157
        case EDriversNotFoundTimer:
hgs
parents:
diff changeset
   158
            {
hgs
parents:
diff changeset
   159
            LOG( "EDriversNotFoundTimer" );
hgs
parents:
diff changeset
   160
            HandleL(EUsbWatcherErrUnsupportedDevice,
hgs
parents:
diff changeset
   161
                    EUsbStateHostHandleDropping);
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
            break;
hgs
parents:
diff changeset
   164
            }
hgs
parents:
diff changeset
   165
        default:
hgs
parents:
diff changeset
   166
            {
hgs
parents:
diff changeset
   167
            LOG1( "Unknown timer id = %d", aTimerId );
47
hgs
parents: 46
diff changeset
   168
            PANIC( EWrongTimerId);
46
hgs
parents:
diff changeset
   169
            }
hgs
parents:
diff changeset
   170
        }
hgs
parents:
diff changeset
   171
    }