usbmgmt/usbmgrtest/t_ncm/src/servicewatcher.cpp
author hgs
Wed, 07 Jul 2010 14:16:40 +0800
changeset 28 f1fd07aa74c9
permissions -rw-r--r--
201025_08
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     1
/*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     3
* All rights reserved.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     8
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     9
* Initial Contributors:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    11
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    12
* Contributors:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    13
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    14
* Description:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    15
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    16
*/
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    17
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    18
/** @file
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    19
 @internalComponent
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    20
 @test
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    21
 */
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    22
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    23
#include "servicewatcher.h"
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    24
#include "ncmtestconsole.h"
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    25
#include "ncmtestdefines.hrh"
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    26
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    27
CServiceWatcher* CServiceWatcher::NewL(CUsbNcmConsole& aTestConsole)
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    28
	{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    29
	LOG_STATIC_FUNC_ENTRY
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    30
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    31
	CServiceWatcher* self = new(ELeave) CServiceWatcher(aTestConsole);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    32
	CleanupStack::PushL(self);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    33
	self->ConstructL();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    34
	CleanupStack::Pop(self);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    35
	return self;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    36
	}
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    37
CServiceWatcher::~CServiceWatcher()
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    38
	{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    39
	Cancel();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    40
	}
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    41
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    42
CServiceWatcher::CServiceWatcher(CUsbNcmConsole& aTestConsole)
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    43
	: CActive(EPriorityStandard), iTestConsole(aTestConsole)
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    44
	{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    45
	CActiveScheduler::Add(this);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    46
	}
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    47
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    48
void CServiceWatcher::ConstructL()
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    49
	{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    50
	iTestConsole.Usb().ServiceStateNotification(iServiceState, iStatus);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    51
	SetActive();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    52
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    53
	TUsbServiceState serviceState;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    54
	User::LeaveIfError(iTestConsole.Usb().GetServiceState(serviceState));
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    55
	DisplayServiceState(serviceState);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    56
	}
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    57
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    58
void CServiceWatcher::DoCancel()
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    59
	{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    60
	iTestConsole.Usb().ServiceStateNotificationCancel();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    61
	}
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    62
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    63
void CServiceWatcher::RunL()
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    64
	{	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    65
	LOG_FUNC
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    66
	__FLOG_STATIC2(KSubSys, KLogComponent , 
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    67
			_L8("CServiceWatcherCommand::RunL - iStatus = %d, iServiceState = %d"), 
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    68
			iStatus.Int(), iServiceState);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    69
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    70
	User::LeaveIfError(iStatus.Int());
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    71
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    72
	iTestConsole.Usb().ServiceStateNotification(iServiceState, iStatus);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    73
	SetActive();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    74
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    75
	iTestConsole.Usb().GetServiceState(iServiceState);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    76
	//Display the service state on main console
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    77
	DisplayServiceState(iServiceState);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    78
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    79
	}
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    80
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    81
TInt CServiceWatcher::RunError(TInt aError)
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    82
	{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    83
	User::Panic(_L("CServiceWatcher"), aError);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    84
	return aError;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    85
	}
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    86
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    87
void CServiceWatcher::DisplayServiceState(TUsbServiceState aServiceState)
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    88
/**
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    89
Display the service state on main console
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    90
  @param  aServiceState 	Service state
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    91
*/
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    92
	{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    93
	TBuf<DISPLAY_USB_SERVICE_STATE_LEN> servStatus;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    94
	switch(aServiceState)
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    95
		{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    96
    case EUsbServiceIdle:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    97
    	servStatus =
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    98
    		//  12345678901
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    99
			_L("Idle       ");
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   100
    	break;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   101
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   102
	case EUsbServiceStarting:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   103
		servStatus =
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   104
    		//  12345678901
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   105
			_L("Starting   ");
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   106
		break;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   107
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   108
	case EUsbServiceStarted:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   109
		servStatus =
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   110
    		//  12345678901
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   111
			_L("Started    ");
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   112
		break;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   113
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   114
	case EUsbServiceStopping:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   115
		servStatus =
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   116
    		//  12345678901
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   117
			_L("Stopping   ");
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   118
		break;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   119
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   120
	case EUsbServiceFatalError:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   121
		servStatus =
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   122
    		//  12345678901
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   123
			_L("Error      ");
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   124
		break;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   125
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   126
	default:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   127
		servStatus =
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   128
			_L("Unknown    ");
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   129
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   130
		break;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   131
		}
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   132
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   133
	iTestConsole.SetDisplayItem(EUsbServiceStateItem, servStatus);
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   134
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
   135
	}