diff -r 3406c99bc375 -r 07b41fa8d1dd hti/HtiServicePlugins/HtiAppServicePlugin/inc/HtiAppServicePlugin.h --- a/hti/HtiServicePlugins/HtiAppServicePlugin/inc/HtiAppServicePlugin.h Thu Jul 15 20:25:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,188 +0,0 @@ -/* -* Copyright (c) 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: Implementation of ECOM plug-in service interface providing -* process and application control service. -* -*/ - - - -#ifndef HTIAPPSERVICEPLUGIN_H__ -#define HTIAPPSERVICEPLUGIN_H__ - -// INCLUDES -#include -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CDesC8ArrayFlat; - -// CLASS DECLARATION -/** -* Implementation of ECOM plug-in service interface. -* Provides the service to control processes and applications. -* -*/ -class CHtiAppServicePlugin : public CHTIServicePluginInterface - { -protected: - //commands - enum TAppCommand - { - //commands - //process control - EStartProcess = 0x02, - EStartProcess_u = 0x03, - EStatusProcess = 0x04, - EStatusProcess_u = 0x05, - EStatusProcess_id = 0x06, - EStopProcess = 0x08, - EStopProcess_u = 0x09, - EStopProcess_id = 0x0A, - EListProcesses = 0x0C, - EListProcesses_u = 0x0D, - EStartProcessRetVal = 0x0E, - EStartProcessRetVal_u = 0x07, - EGetProcessExitCode = 0x0B, - - EProcessLastCommand = 0x0F, //!!! used to sort process control from - //!!! app control - - //app control - EStartApp = 0x10, - EStartApp_u = 0x11, - EStartApp_uid = 0x12, - EStartApp_uid_u = 0x13, - EStartDoc = 0x14, - EStartDoc_u = 0x15, - EStatusApp = 0x16, - EStatusApp_u = 0x17, - EStatusDoc = 0x18, - EStatusDoc_u = 0x19, - EStatusApp_uid = 0x1A, - EStopApp = 0x1C, - EStopApp_u = 0x1D, - EStopDoc = 0x1E, - EStopDoc_u = 0x1F, - EStopApp_uid = 0x20, - EListApps = 0x24, - EListApps_u = 0x25, - - EAppLastCommand = 0x2F, //!!! used to sort process control from - //!!! app control - EInstall = 0x30, - EInstall_u = 0x31, - EUnInstall = 0x32, - EUnInstallName_u = 0x33, - EUnInstallName = 0x34, - - ESisLastCommand = 0x3F, //!!! used to sort sis control from - //!!! app control - //responses - EOk = 0xF0, - ENotFound = 0xF1, - EAlreadyRunning = 0xF2, - EAlreadyStopped = 0xF3, - ERunning = 0xF4, - EKilled = 0xF5, - EPanic = 0xF6 - }; - -public: - static CHtiAppServicePlugin* NewL(); - - // Interface implementation - void ProcessMessageL(const TDesC8& aMessage, - THtiMessagePriority aPriority); - - /** - * Called by HTI-framework to initialize this plugin - */ - void InitL(); - -protected: - CHtiAppServicePlugin(); - void ConstructL(); - - virtual ~CHtiAppServicePlugin(); - - void HandleProcessControlL(const TDesC8& aMessage); - - /** - * Extracts string from incoming request and convert it to unicode - * for non-unicode request - * aResult should have enough maz length and it will contain - * Function returns either offset for a next parameter in aRequest - * or some symbian error code - */ - TInt ParseString( const TDesC8& aRequest, - TInt anOffset, - TBool aUnicode, - TDes& aResult); - - //command handlers - void HandleStartProcessL( const TDesC& aProgramName, - const TDesC& aCmdLine, - TBool aStoreProcessHandle ); - - void HandleStopProcessL( RProcess& aProcess ); - void HandleStatusProcessL( RProcess& aProcess ); - - void HandleListProcessesL( const TDesC& aMatch ); - - //construct and send short message - void SendMessageL(TAppCommand aResponseCode, const TDesC8& aMsg = KNullDesC8 ); - - /** - * Helper to send error message - * @return KErrNone or some system-wide error code - */ - inline TInt SendErrorMsg( TInt anError, const TDesC8& aMsg ); - - /** - * - */ - TInt OpenProcessL( RProcess& aProcess, const TDesC& aMatch ); - TInt OpenProcessL( RProcess& aProcess, const TUint32 aProcessId ); - - /** - * Convert string to T 32bit int (e.g. TUint, TInt32) - */ - template T Parse32( const TDesC8& a32int); - - - -protected: - - // Container array for process handles for querying the process exit codes - RArray iProcessHandleArray; - -private: - CHTIServicePluginInterface* iAppServiceUiPlugin; - RLibrary iLibrary; - - - }; - -#endif - -// End of file