diff -r 3406c99bc375 -r 07b41fa8d1dd hti/HtiAutoStart/src/HtiAutoStart.cpp --- a/hti/HtiAutoStart/src/HtiAutoStart.cpp 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: HtiAutoStart implementation -* -*/ - - -// INCLUDE FILES -#include "HtiAutoStart.h" -#include -#include - -// CONSTANTS -const static TUint KHtiAutoStartImplUid = 0x10210CC5; -const static TUid KHtiAutoStartUid = {0x10210CC4}; -_LIT( KHtiFrameworkExe, "HtiFramework.exe" ); -_LIT( KHtiMatchPattern, "HtiFramework*" ); - -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY( KHtiAutoStartImplUid, - CHtiAutostart::CreateRecognizerL ) - }; - -// MACROS -#ifdef __ENABLE_LOGGING__ - -#include -_LIT( KLogFolder, "hti" ); -_LIT( KLogFile, "htiautostart.txt" ); - -#define HTI_LOG_TEXT(a1) {_LIT(temp, a1); RFileLogger::Write(KLogFolder, KLogFile, EFileLoggingModeAppend, temp);} -#define HTI_LOG_DES(a1) {RFileLogger::Write(KLogFolder, KLogFile, EFileLoggingModeAppend, a1);} -#define HTI_LOG_FORMAT(a1,a2) {_LIT(temp, a1); RFileLogger::WriteFormat(KLogFolder, KLogFile, EFileLoggingModeAppend, temp, (a2));} - -#else // !__ENABLE_LOGGING__ - -#define HTI_LOG_TEXT(a1) -#define HTI_LOG_DES(a1) -#define HTI_LOG_FORMAT(a1,a2) - -#endif // __ENABLE_LOGGING__ - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================ MEMBER FUNCTIONS =============================== - -// ---------------------------------------------------------------------------- -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount ) - { - HTI_LOG_TEXT( "ImplementationGroupProxy" ); - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); - return ImplementationTable; - } - -// ---------------------------------------------------------------------------- -CApaDataRecognizerType* CHtiAutostart::CreateRecognizerL() - { - HTI_LOG_TEXT( "CreateRecognizerL" ); - CApaDataRecognizerType* recognizer = new CHtiAutostart(); - CHtiAutostart::StartThread(); - return recognizer; - } - -// ---------------------------------------------------------------------------- -CHtiAutostart::CHtiAutostart() - :CApaDataRecognizerType( KHtiAutoStartUid, CApaDataRecognizerType::ENormal ) - { - HTI_LOG_TEXT( "CHtiAutostart constructor" ); - iCountDataTypes = 1; - } - -// ---------------------------------------------------------------------------- -TUint CHtiAutostart::PreferredBufSize() - { - HTI_LOG_TEXT( "PreferredBufSize" ); - return 0; - } - -// ---------------------------------------------------------------------------- -TDataType CHtiAutostart::SupportedDataTypeL( TInt /*aIndex*/ ) const - { - HTI_LOG_TEXT( "SupportedDataTypeL" ); - return TDataType(); - } - -// ---------------------------------------------------------------------------- -void CHtiAutostart::DoRecognizeL( const TDesC& /*aName*/, - const TDesC8& /*aBuffer*/ ) - { - HTI_LOG_TEXT( "DoRecognizeL" ); - } - -// ---------------------------------------------------------------------------- -void CHtiAutostart::StartThread() - { - HTI_LOG_TEXT( "StartThread" ); - //create a new thread for starting our application - RThread* startAppThread = new RThread(); - - User::LeaveIfError( startAppThread->Create( - _L( "HtiAutostart" ), - CHtiAutostart::StartAppThreadFunction, - KDefaultStackSize, - KMinHeapSize, - KMinHeapSize, - NULL, - EOwnerThread ) ); - - startAppThread->SetPriority( EPriorityNormal ); - startAppThread->Resume(); - startAppThread->Close(); - delete startAppThread; - } - -// ---------------------------------------------------------------------------- -TInt CHtiAutostart::StartAppThreadFunction( TAny* /*aParam*/ ) - { - HTI_LOG_TEXT( "StartAppThreadFunction" ); - // create a TRAP cleanup - CTrapCleanup * cleanup = CTrapCleanup::New(); - TInt err; - if ( cleanup == NULL ) - { - err = KErrNoMemory; - } - else - { - TRAP( err, StartAppThreadFunctionL() ); - } - delete cleanup; - - if ( err != KErrNone ) - { - HTI_LOG_FORMAT( "StartAppThreadFunctionL leave %d", err ); - User::Panic( _L( "HtiAutostart" ), err ); - } - - return err; - } - -// ---------------------------------------------------------------------------- -void CHtiAutostart::StartAppThreadFunctionL() - { - HTI_LOG_TEXT( "StartAppThreadFunctionL" ); - // Check if HtiFramework is already running - TFullName processName; - TFindProcess finder( KHtiMatchPattern ); - TInt err = finder.Next( processName ); - if ( err == KErrNone ) - { - HTI_LOG_TEXT( "HtiFramework.exe already running, nothing to do" ); - return; - } - - RProcess prs; - err = prs.Create( KHtiFrameworkExe, KNullDesC ); - if ( err == KErrNone ) - { - prs.Resume(); - prs.Close(); - HTI_LOG_TEXT( "HtiFramework.exe process created" ); - } - else - { - HTI_LOG_FORMAT( "HtiFramework.exe process creation failed %d", err ); - User::Leave( err ); - } - } - -// End of File