diff -r 07b41fa8d1dd -r ca8a1b6995f6 debugsrv/runmodedebug/rmdebug_test/rm_debug/multi_agent_tests/t_multi_agent.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debugsrv/runmodedebug/rmdebug_test/rm_debug/multi_agent_tests/t_multi_agent.h Tue Aug 31 16:45:49 2010 +0300 @@ -0,0 +1,110 @@ +// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "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: +// Definitions for the run mode debug tests +// +// + +/** + @file + @internalTechnology + @released +*/ + +#ifndef RMDEBUG_MULTI_AGENT_H +#define RMDEBUG_MULTI_AGENT_H + +#include +#include +#include + +using namespace Debug; + +_LIT(KLaunchSemaphoreName, "t_rmdebug_launch_semaphore"); +_LIT(KLaunchSemaphoreSearchString, "t_rmdebug_launch_semaphore*"); + +// Currently the targets are instances of t_rmdebug_app.exe +_LIT(KTargetExe,"z:\\sys\\bin\\t_rmdebug_app%d.exe"); + +_LIT(KTargetOptions,"-f%d -a%d"); + +// If changing this, make sure there are enough apps built/in the rom +const TInt KNumApps = 5; + +// Default CPU execution for Agent +const TInt KAgentCpu = 0; + +// Workaround to ensure we have the same agent binary when running multiple agents +const TInt KTargetOffset = 0; + +class CAgentAsyncEvent; + +/** + @Class CRunModeAgent + + The basic run mode agent + */ +class CMultiAgent : public CBase + { + public: + static CMultiAgent* NewL(); + ~CMultiAgent(); + void ClientAppL(); + RSecuritySvrSession& DebugDriver() { return iServSession; }; + void HandleEvent(TEventInfo& aSEventInfo); + + public: + TInt GetLaunchCompleted() const { return iLaunchCompleted; } + TInt GetNumApps() const { return iNumApps; } + TInt GetTargetOffset() const { return iTargetNameOffset; } + + private: + CMultiAgent(); + void ConstructL(); + TInt StartTest(); + TInt LaunchProcess(RProcess& aProcess, const TDesC& aExeName, const TDesC& aCommandLine); + + private: + + /** + * CPU agent executes on; by default this is 0 + */ + TInt iAgentCpuNo; + + /* + * Offset for running multiple targets using the same agent + */ + TInt iTargetNameOffset; + + /** + * Number of applications/targets per agent + */ + TInt iNumApps; + + /** + * Flag used for terminating the event handling for a target + */ + TInt iLaunchCompleted; + + /* + * Handle to DSS + */ + RSecuritySvrSession iServSession; + + /** + * Array to target parameters required by the agent + */ + RPointerArray iTargetList; + }; + +#endif // RMDEBUG_MULTI_AGENT_H