kerneltest/e32test/usb/t_usb_device/src/transferhandle.cpp
author hgs
Tue, 24 Aug 2010 14:49:21 +0100
changeset 253 d37db4dcc88d
parent 189 a5496987b1da
permissions -rw-r--r--
201033_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
189
a5496987b1da 201025_04
hgs
parents:
diff changeset
     1
/*
a5496987b1da 201025_04
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
a5496987b1da 201025_04
hgs
parents:
diff changeset
     3
* All rights reserved.
a5496987b1da 201025_04
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
a5496987b1da 201025_04
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
a5496987b1da 201025_04
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
a5496987b1da 201025_04
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
a5496987b1da 201025_04
hgs
parents:
diff changeset
     8
*
a5496987b1da 201025_04
hgs
parents:
diff changeset
     9
* Initial Contributors:
a5496987b1da 201025_04
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
a5496987b1da 201025_04
hgs
parents:
diff changeset
    11
*
a5496987b1da 201025_04
hgs
parents:
diff changeset
    12
* Contributors:
a5496987b1da 201025_04
hgs
parents:
diff changeset
    13
*
a5496987b1da 201025_04
hgs
parents:
diff changeset
    14
* Description:
a5496987b1da 201025_04
hgs
parents:
diff changeset
    15
* Header file NTB build policy base class
a5496987b1da 201025_04
hgs
parents:
diff changeset
    16
*
a5496987b1da 201025_04
hgs
parents:
diff changeset
    17
*/
a5496987b1da 201025_04
hgs
parents:
diff changeset
    18
a5496987b1da 201025_04
hgs
parents:
diff changeset
    19
a5496987b1da 201025_04
hgs
parents:
diff changeset
    20
/**
a5496987b1da 201025_04
hgs
parents:
diff changeset
    21
@file
a5496987b1da 201025_04
hgs
parents:
diff changeset
    22
@internalComponent
a5496987b1da 201025_04
hgs
parents:
diff changeset
    23
*/
a5496987b1da 201025_04
hgs
parents:
diff changeset
    24
a5496987b1da 201025_04
hgs
parents:
diff changeset
    25
#include "transferhandle.h"
a5496987b1da 201025_04
hgs
parents:
diff changeset
    26
#include "transferserver.h"
253
d37db4dcc88d 201033_01
hgs
parents: 189
diff changeset
    27
#include "OstTraceDefinitions.h"
d37db4dcc88d 201033_01
hgs
parents: 189
diff changeset
    28
#ifdef OST_TRACE_COMPILER_IN_USE
d37db4dcc88d 201033_01
hgs
parents: 189
diff changeset
    29
#include "transferhandleTraces.h"
d37db4dcc88d 201033_01
hgs
parents: 189
diff changeset
    30
#endif
189
a5496987b1da 201025_04
hgs
parents:
diff changeset
    31
a5496987b1da 201025_04
hgs
parents:
diff changeset
    32
CTransferHandle* CTransferHandle::NewL(CTransferServer& aServer)
a5496987b1da 201025_04
hgs
parents:
diff changeset
    33
    {
a5496987b1da 201025_04
hgs
parents:
diff changeset
    34
    CTransferHandle *self=new (ELeave) CTransferHandle(aServer);
a5496987b1da 201025_04
hgs
parents:
diff changeset
    35
    CleanupStack::PushL(self);
a5496987b1da 201025_04
hgs
parents:
diff changeset
    36
    self->ConstructL();
a5496987b1da 201025_04
hgs
parents:
diff changeset
    37
    CleanupStack::Pop();
a5496987b1da 201025_04
hgs
parents:
diff changeset
    38
    return self;    
a5496987b1da 201025_04
hgs
parents:
diff changeset
    39
    }
a5496987b1da 201025_04
hgs
parents:
diff changeset
    40
a5496987b1da 201025_04
hgs
parents:
diff changeset
    41
CTransferHandle::CTransferHandle(CTransferServer& aServer)
a5496987b1da 201025_04
hgs
parents:
diff changeset
    42
    : CActive(CActive::EPriorityStandard), iServer(aServer)
a5496987b1da 201025_04
hgs
parents:
diff changeset
    43
    {
a5496987b1da 201025_04
hgs
parents:
diff changeset
    44
    }
a5496987b1da 201025_04
hgs
parents:
diff changeset
    45
a5496987b1da 201025_04
hgs
parents:
diff changeset
    46
CTransferHandle::~CTransferHandle()
a5496987b1da 201025_04
hgs
parents:
diff changeset
    47
    {
253
d37db4dcc88d 201033_01
hgs
parents: 189
diff changeset
    48
    OstTrace0(TRACE_NORMAL, CTRANSFERHANDLE_DCTRANSFERHANDLE, "CTransferHandle::~CTransferHandle");
189
a5496987b1da 201025_04
hgs
parents:
diff changeset
    49
    Cancel();
a5496987b1da 201025_04
hgs
parents:
diff changeset
    50
    iTimer.Close();
a5496987b1da 201025_04
hgs
parents:
diff changeset
    51
    }
a5496987b1da 201025_04
hgs
parents:
diff changeset
    52
a5496987b1da 201025_04
hgs
parents:
diff changeset
    53
void CTransferHandle::DoCancel()
a5496987b1da 201025_04
hgs
parents:
diff changeset
    54
    {
253
d37db4dcc88d 201033_01
hgs
parents: 189
diff changeset
    55
    OstTrace0(TRACE_NORMAL, CTRANSFERHANDLE_DOCANCEL, "CTransferHandle::DoCancel");
189
a5496987b1da 201025_04
hgs
parents:
diff changeset
    56
    iTimer.Cancel();
a5496987b1da 201025_04
hgs
parents:
diff changeset
    57
    }
a5496987b1da 201025_04
hgs
parents:
diff changeset
    58
a5496987b1da 201025_04
hgs
parents:
diff changeset
    59
void CTransferHandle::ConstructL()
a5496987b1da 201025_04
hgs
parents:
diff changeset
    60
    {
a5496987b1da 201025_04
hgs
parents:
diff changeset
    61
    CActiveScheduler::Add(this);
a5496987b1da 201025_04
hgs
parents:
diff changeset
    62
    User::LeaveIfError(iTimer.CreateLocal());
a5496987b1da 201025_04
hgs
parents:
diff changeset
    63
    }
a5496987b1da 201025_04
hgs
parents:
diff changeset
    64
a5496987b1da 201025_04
hgs
parents:
diff changeset
    65
_LIT(KPanic, "CTransferHandle");
a5496987b1da 201025_04
hgs
parents:
diff changeset
    66
const TInt KTimerError = 1;
a5496987b1da 201025_04
hgs
parents:
diff changeset
    67
a5496987b1da 201025_04
hgs
parents:
diff changeset
    68
a5496987b1da 201025_04
hgs
parents:
diff changeset
    69
void CTransferHandle::RunL()
a5496987b1da 201025_04
hgs
parents:
diff changeset
    70
	{
a5496987b1da 201025_04
hgs
parents:
diff changeset
    71
	if(iStatus.Int() != KErrNone)
a5496987b1da 201025_04
hgs
parents:
diff changeset
    72
		{		
253
d37db4dcc88d 201033_01
hgs
parents: 189
diff changeset
    73
		OstTrace0(TRACE_FATAL, CTRANSFERHANDLE_RUNL, "CTransferHandle::RunL");
189
a5496987b1da 201025_04
hgs
parents:
diff changeset
    74
		User::Panic(KPanic, KTimerError);
a5496987b1da 201025_04
hgs
parents:
diff changeset
    75
		return;
a5496987b1da 201025_04
hgs
parents:
diff changeset
    76
		}
a5496987b1da 201025_04
hgs
parents:
diff changeset
    77
	iServer.TransferHandleL();
a5496987b1da 201025_04
hgs
parents:
diff changeset
    78
	}
a5496987b1da 201025_04
hgs
parents:
diff changeset
    79
a5496987b1da 201025_04
hgs
parents:
diff changeset
    80
void CTransferHandle::StartTimer()
a5496987b1da 201025_04
hgs
parents:
diff changeset
    81
	{
a5496987b1da 201025_04
hgs
parents:
diff changeset
    82
	iStatus = KRequestPending;
a5496987b1da 201025_04
hgs
parents:
diff changeset
    83
    iTimer.After(iStatus, 10000);
a5496987b1da 201025_04
hgs
parents:
diff changeset
    84
    SetActive();
a5496987b1da 201025_04
hgs
parents:
diff changeset
    85
	}
a5496987b1da 201025_04
hgs
parents:
diff changeset
    86
a5496987b1da 201025_04
hgs
parents:
diff changeset
    87