usbmgmt/usbmgrtest/t_ncm/src/servicewatcher.cpp
branchRCL_3
changeset 42 f92a4f87e424
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_ncm/src/servicewatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
@@ -0,0 +1,135 @@
+/*
+* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+/** @file
+ @internalComponent
+ @test
+ */
+
+#include "servicewatcher.h"
+#include "ncmtestconsole.h"
+#include "ncmtestdefines.hrh"
+
+CServiceWatcher* CServiceWatcher::NewL(CUsbNcmConsole& aTestConsole)
+	{
+	LOG_STATIC_FUNC_ENTRY
+
+	CServiceWatcher* self = new(ELeave) CServiceWatcher(aTestConsole);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+CServiceWatcher::~CServiceWatcher()
+	{
+	Cancel();
+	}
+
+CServiceWatcher::CServiceWatcher(CUsbNcmConsole& aTestConsole)
+	: CActive(EPriorityStandard), iTestConsole(aTestConsole)
+	{
+	CActiveScheduler::Add(this);
+	}
+
+void CServiceWatcher::ConstructL()
+	{
+	iTestConsole.Usb().ServiceStateNotification(iServiceState, iStatus);
+	SetActive();
+
+	TUsbServiceState serviceState;
+	User::LeaveIfError(iTestConsole.Usb().GetServiceState(serviceState));
+	DisplayServiceState(serviceState);
+	}
+
+void CServiceWatcher::DoCancel()
+	{
+	iTestConsole.Usb().ServiceStateNotificationCancel();
+	}
+
+void CServiceWatcher::RunL()
+	{	
+	LOG_FUNC
+	__FLOG_STATIC2(KSubSys, KLogComponent , 
+			_L8("CServiceWatcherCommand::RunL - iStatus = %d, iServiceState = %d"), 
+			iStatus.Int(), iServiceState);
+
+	User::LeaveIfError(iStatus.Int());
+
+	iTestConsole.Usb().ServiceStateNotification(iServiceState, iStatus);
+	SetActive();
+
+	iTestConsole.Usb().GetServiceState(iServiceState);
+	//Display the service state on main console
+	DisplayServiceState(iServiceState);
+
+	}
+
+TInt CServiceWatcher::RunError(TInt aError)
+	{
+	User::Panic(_L("CServiceWatcher"), aError);
+	return aError;
+	}
+
+void CServiceWatcher::DisplayServiceState(TUsbServiceState aServiceState)
+/**
+Display the service state on main console
+  @param  aServiceState 	Service state
+*/
+	{
+	TBuf<DISPLAY_USB_SERVICE_STATE_LEN> servStatus;
+	switch(aServiceState)
+		{
+    case EUsbServiceIdle:
+    	servStatus =
+    		//  12345678901
+			_L("Idle       ");
+    	break;
+
+	case EUsbServiceStarting:
+		servStatus =
+    		//  12345678901
+			_L("Starting   ");
+		break;
+
+	case EUsbServiceStarted:
+		servStatus =
+    		//  12345678901
+			_L("Started    ");
+		break;
+
+	case EUsbServiceStopping:
+		servStatus =
+    		//  12345678901
+			_L("Stopping   ");
+		break;
+
+	case EUsbServiceFatalError:
+		servStatus =
+    		//  12345678901
+			_L("Error      ");
+		break;
+
+	default:
+		servStatus =
+			_L("Unknown    ");
+
+		break;
+		}
+	
+	iTestConsole.SetDisplayItem(EUsbServiceStateItem, servStatus);
+	
+	}