# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1274957016 -10800 # Node ID 5d0ec111abfc97cd6bc9d5e0af2f4d83b10bb05f # Parent 2c8580950a26dc2468df20b9c3d10a027825804a Revision: 201019 Kit: 2010121 diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/bwins/diagframework.def --- a/devicediagnosticsfw/diagframework/bwins/diagframework.def Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -EXPORTS - ??0TDiagSuiteExecParam@@QAE@AAVMDiagSuiteObserver@@AAVMDiagEngineCommon@@@Z @ 1 NONAME ; TDiagSuiteExecParam::TDiagSuiteExecParam(class MDiagSuiteObserver &, class MDiagEngineCommon &) - ??0TDiagTestExecParam@@QAE@AAVMDiagTestObserver@@AAVMDiagEngineCommon@@@Z @ 2 NONAME ; TDiagTestExecParam::TDiagTestExecParam(class MDiagTestObserver &, class MDiagEngineCommon &) - ??1CDiagEngine@@UAE@XZ @ 3 NONAME ; CDiagEngine::~CDiagEngine(void) - ??1CDiagLogEventEraser@@UAE@XZ @ 4 NONAME ; CDiagLogEventEraser::~CDiagLogEventEraser(void) - ??1CDiagNetworkRegStatusWatcher@@UAE@XZ @ 5 NONAME ; CDiagNetworkRegStatusWatcher::~CDiagNetworkRegStatusWatcher(void) - ??1CDiagPluginConstructionParam@@UAE@XZ @ 6 NONAME ; CDiagPluginConstructionParam::~CDiagPluginConstructionParam(void) - ??1CDiagPluginPool@@UAE@XZ @ 7 NONAME ; CDiagPluginPool::~CDiagPluginPool(void) - ?CancelLoadPluginsL@CDiagPluginPool@@QAEXXZ @ 8 NONAME ; void CDiagPluginPool::CancelLoadPluginsL(void) - ?CreatePluginL@CDiagPluginPool@@SAPAVMDiagPlugin@@VTUid@@@Z @ 9 NONAME ; class MDiagPlugin * CDiagPluginPool::CreatePluginL(class TUid) - ?CreateSimpleDbItemL@CDiagResultsDbItemBuilder@@SAPAVCDiagResultsDatabaseItem@@VTUid@@HW4TResult@2@@Z @ 10 NONAME ; class CDiagResultsDatabaseItem * CDiagResultsDbItemBuilder::CreateSimpleDbItemL(class TUid, int, enum CDiagResultsDatabaseItem::TResult) - ?Engine@TDiagSuiteExecParam@@QBEAAVMDiagEngineCommon@@XZ @ 11 NONAME ; class MDiagEngineCommon & TDiagSuiteExecParam::Engine(void) const - ?Engine@TDiagTestExecParam@@QBEAAVMDiagEngineCommon@@XZ @ 12 NONAME ; class MDiagEngineCommon & TDiagTestExecParam::Engine(void) const - ?EraseLogsL@CDiagLogEventEraser@@QAEXXZ @ 13 NONAME ; void CDiagLogEventEraser::EraseLogsL(void) - ?ExecuteL@CDiagEngine@@QAEXXZ @ 14 NONAME ; void CDiagEngine::ExecuteL(void) - ?Filter@CDiagLogEventEraser@@QAEAAVCLogFilter@@XZ @ 15 NONAME ; class CLogFilter & CDiagLogEventEraser::Filter(void) - ?FindPlugin@CDiagPluginPool@@QBEHABVTDesC16@@AAPAVMDiagPlugin@@@Z @ 16 NONAME ; int CDiagPluginPool::FindPlugin(class TDesC16 const &, class MDiagPlugin * &) const - ?FindPlugin@CDiagPluginPool@@QBEHVTUid@@AAPAVMDiagPlugin@@@Z @ 17 NONAME ; int CDiagPluginPool::FindPlugin(class TUid, class MDiagPlugin * &) const - ?FindPluginL@CDiagPluginPool@@QBEAAVMDiagPlugin@@ABVTDesC16@@@Z @ 18 NONAME ; class MDiagPlugin & CDiagPluginPool::FindPluginL(class TDesC16 const &) const - ?FindPluginL@CDiagPluginPool@@QBEAAVMDiagPlugin@@VTUid@@@Z @ 19 NONAME ; class MDiagPlugin & CDiagPluginPool::FindPluginL(class TUid) const - ?GetCurrentTime@CDiagResultsDbItemBuilder@@QBE?AVTTime@@XZ @ 20 NONAME ; class TTime CDiagResultsDbItemBuilder::GetCurrentTime(void) const - ?GetPluginDependencyL@CDiagEngine@@QAEHXZ @ 21 NONAME ; int CDiagEngine::GetPluginDependencyL(void) - ?LoadAsyncL@CDiagPluginPool@@QAEXVTUid@@@Z @ 22 NONAME ; void CDiagPluginPool::LoadAsyncL(class TUid) - ?LogClient@CDiagLogEventEraser@@QAEAAVCLogClient@@XZ @ 23 NONAME ; class CLogClient & CDiagLogEventEraser::LogClient(void) - ?NewL@CDiagEngine@@SAPAV1@AAVCAknViewAppUi@@AAVMDiagEngineObserver@@AAVRDiagResultsDatabase@@AAVCDiagPluginPool@@HABV?$RArray@VTUid@@@@@Z @ 24 NONAME ; class CDiagEngine * CDiagEngine::NewL(class CAknViewAppUi &, class MDiagEngineObserver &, class RDiagResultsDatabase &, class CDiagPluginPool &, int, class RArray const &) - ?NewL@CDiagEngine@@SAPAV1@AAVCAknViewAppUi@@AAVMDiagEngineObserver@@AAVRDiagResultsDatabase@@AAVCDiagPluginPool@@VTUid@@@Z @ 25 NONAME ; class CDiagEngine * CDiagEngine::NewL(class CAknViewAppUi &, class MDiagEngineObserver &, class RDiagResultsDatabase &, class CDiagPluginPool &, class TUid) - ?NewL@CDiagLogEventEraser@@SAPAV1@AAVMDiagLogEventEraserObserver@@PAVCLogFilter@@@Z @ 26 NONAME ; class CDiagLogEventEraser * CDiagLogEventEraser::NewL(class MDiagLogEventEraserObserver &, class CLogFilter *) - ?NewL@CDiagNetworkRegStatusWatcher@@SAPAV1@AAVMDiagNetworkRegStatusObserver@@@Z @ 27 NONAME ; class CDiagNetworkRegStatusWatcher * CDiagNetworkRegStatusWatcher::NewL(class MDiagNetworkRegStatusObserver &) - ?NewL@CDiagPluginConstructionParam@@SAPAV1@PAVHBufC16@@PAVCDesC16ArrayFlat@@HVTUid@@2@Z @ 28 NONAME ; class CDiagPluginConstructionParam * CDiagPluginConstructionParam::NewL(class HBufC16 *, class CDesC16ArrayFlat *, int, class TUid, class TUid) - ?NewL@CDiagPluginPool@@SAPAV1@AAVMDiagPluginPoolObserver@@@Z @ 29 NONAME ; class CDiagPluginPool * CDiagPluginPool::NewL(class MDiagPluginPoolObserver &) - ?NewL@CDiagResultsDbItemBuilder@@SAPAV1@VTUid@@H@Z @ 30 NONAME ; class CDiagResultsDbItemBuilder * CDiagResultsDbItemBuilder::NewL(class TUid, int) - ?NewLC@CDiagEngine@@SAPAV1@AAVCAknViewAppUi@@AAVMDiagEngineObserver@@AAVRDiagResultsDatabase@@AAVCDiagPluginPool@@HABV?$RArray@VTUid@@@@@Z @ 31 NONAME ; class CDiagEngine * CDiagEngine::NewLC(class CAknViewAppUi &, class MDiagEngineObserver &, class RDiagResultsDatabase &, class CDiagPluginPool &, int, class RArray const &) - ?NewLC@CDiagEngine@@SAPAV1@AAVCAknViewAppUi@@AAVMDiagEngineObserver@@AAVRDiagResultsDatabase@@AAVCDiagPluginPool@@VTUid@@@Z @ 32 NONAME ; class CDiagEngine * CDiagEngine::NewLC(class CAknViewAppUi &, class MDiagEngineObserver &, class RDiagResultsDatabase &, class CDiagPluginPool &, class TUid) - ?NewLC@CDiagPluginConstructionParam@@SAPAV1@PAVHBufC16@@PAVCDesC16ArrayFlat@@HVTUid@@2@Z @ 33 NONAME ; class CDiagPluginConstructionParam * CDiagPluginConstructionParam::NewLC(class HBufC16 *, class CDesC16ArrayFlat *, int, class TUid, class TUid) - ?NewLC@CDiagPluginPool@@SAPAV1@AAVMDiagPluginPoolObserver@@@Z @ 34 NONAME ; class CDiagPluginPool * CDiagPluginPool::NewLC(class MDiagPluginPoolObserver &) - ?NewLC@CDiagResultsDbItemBuilder@@SAPAV1@VTUid@@H@Z @ 35 NONAME ; class CDiagResultsDbItemBuilder * CDiagResultsDbItemBuilder::NewLC(class TUid, int) - ?Observer@TDiagSuiteExecParam@@QBEAAVMDiagSuiteObserver@@XZ @ 36 NONAME ; class MDiagSuiteObserver & TDiagSuiteExecParam::Observer(void) const - ?Observer@TDiagTestExecParam@@QBEAAVMDiagTestObserver@@XZ @ 37 NONAME ; class MDiagTestObserver & TDiagTestExecParam::Observer(void) const - ?Order@CDiagPluginConstructionParam@@QBEHXZ @ 38 NONAME ; int CDiagPluginConstructionParam::Order(void) const - ?ParentUid@CDiagPluginConstructionParam@@QBE?AVTUid@@XZ @ 39 NONAME ; class TUid CDiagPluginConstructionParam::ParentUid(void) const - ?ResultDetail@CDiagResultsDbItemBuilder@@QBEAAVMDiagResultDetail@@XZ @ 40 NONAME ; class MDiagResultDetail & CDiagResultsDbItemBuilder::ResultDetail(void) const - ?ResumeL@CDiagEngine@@QAEXXZ @ 41 NONAME ; void CDiagEngine::ResumeL(void) - ?ServiceProvided@CDiagPluginConstructionParam@@QBEABVTDesC16@@XZ @ 42 NONAME ; class TDesC16 const & CDiagPluginConstructionParam::ServiceProvided(void) const - ?ServicesRequired@CDiagPluginConstructionParam@@QBEABVCDesC16ArrayFlat@@XZ @ 43 NONAME ; class CDesC16ArrayFlat const & CDiagPluginConstructionParam::ServicesRequired(void) const - ?SetCustomParam@CDiagEngine@@QAEXPAX@Z @ 44 NONAME ; void CDiagEngine::SetCustomParam(void *) - ?SetResultDetail@CDiagResultsDbItemBuilder@@QAEXPAVMDiagResultDetail@@@Z @ 45 NONAME ; void CDiagResultsDbItemBuilder::SetResultDetail(class MDiagResultDetail *) - ?SetTestCompleted@CDiagResultsDbItemBuilder@@QAEXW4TResult@CDiagResultsDatabaseItem@@@Z @ 46 NONAME ; void CDiagResultsDbItemBuilder::SetTestCompleted(enum CDiagResultsDatabaseItem::TResult) - ?SetTestUid@CDiagResultsDbItemBuilder@@QAEXVTUid@@@Z @ 47 NONAME ; void CDiagResultsDbItemBuilder::SetTestUid(class TUid) - ?SetTimeCompleted@CDiagResultsDbItemBuilder@@QAEXVTTime@@@Z @ 48 NONAME ; void CDiagResultsDbItemBuilder::SetTimeCompleted(class TTime) - ?SetTimeStarted@CDiagResultsDbItemBuilder@@QAEXVTTime@@@Z @ 49 NONAME ; void CDiagResultsDbItemBuilder::SetTimeStarted(class TTime) - ?SetWasDependency@CDiagResultsDbItemBuilder@@QAEXH@Z @ 50 NONAME ; void CDiagResultsDbItemBuilder::SetWasDependency(int) - ?StartAsyncEraseLogsL@CDiagLogEventEraser@@QAEXXZ @ 51 NONAME ; void CDiagLogEventEraser::StartAsyncEraseLogsL(void) - ?StartObserver@CDiagNetworkRegStatusWatcher@@QAEXXZ @ 52 NONAME ; void CDiagNetworkRegStatusWatcher::StartObserver(void) - ?StopObserver@CDiagNetworkRegStatusWatcher@@QAEXXZ @ 53 NONAME ; void CDiagNetworkRegStatusWatcher::StopObserver(void) - ?SuspendL@CDiagEngine@@QAEXXZ @ 54 NONAME ; void CDiagEngine::SuspendL(void) - ?TestResult@CDiagResultsDbItemBuilder@@QBE?AW4TResult@CDiagResultsDatabaseItem@@XZ @ 55 NONAME ; enum CDiagResultsDatabaseItem::TResult CDiagResultsDbItemBuilder::TestResult(void) const - ?TestUid@CDiagResultsDbItemBuilder@@QBE?AVTUid@@XZ @ 56 NONAME ; class TUid CDiagResultsDbItemBuilder::TestUid(void) const - ?TimeCompleted@CDiagResultsDbItemBuilder@@QBE?AVTTime@@XZ @ 57 NONAME ; class TTime CDiagResultsDbItemBuilder::TimeCompleted(void) const - ?TimeStarted@CDiagResultsDbItemBuilder@@QBE?AVTTime@@XZ @ 58 NONAME ; class TTime CDiagResultsDbItemBuilder::TimeStarted(void) const - ?ToResultsDatabaseItemL@CDiagResultsDbItemBuilder@@QBEPAVCDiagResultsDatabaseItem@@XZ @ 59 NONAME ; class CDiagResultsDatabaseItem * CDiagResultsDbItemBuilder::ToResultsDatabaseItemL(void) const - ?Uid@CDiagPluginConstructionParam@@QBE?AVTUid@@XZ @ 60 NONAME ; class TUid CDiagPluginConstructionParam::Uid(void) const - ?WasDependency@CDiagResultsDbItemBuilder@@QBEHXZ @ 61 NONAME ; int CDiagResultsDbItemBuilder::WasDependency(void) const - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/cenrep_files/clean_cenrep.bat --- a/devicediagnosticsfw/diagframework/cenrep_files/clean_cenrep.bat Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: -rem - -rd /s /q output diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/cenrep_files/keys_diagnosticsfw.xls Binary file devicediagnosticsfw/diagframework/cenrep_files/keys_diagnosticsfw.xls has changed diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/cenrep_files/make_cenrep.bat --- a/devicediagnosticsfw/diagframework/cenrep_files/make_cenrep.bat Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: -rem - -@set XLS_FILE=keys_diagnosticsfw.xls -@set INI_FILE=2000B16B.txt -@set RELEASE=3.2 - -@set CENREP_DIR=%CD% -@cd \epoc32\tools\cenrep - -cenrep.pl -o "%CENREP_DIR%\output" -l "%CENREP_DIR%\%XLS_FILE%" -p %RELEASE% -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\RELEASE\winscw\udeb\Z\private\10202be9\ -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\RELEASE\winscw\udeb\Z\private\10202be9\ -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\RELEASE\winscw\urel\Z\private\10202be9\ -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\RELEASE\armv5\udeb\Z\private\10202be9\ -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\RELEASE\armv5\urel\Z\private\10202be9\ -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\data\Z\private\10202be9\ -@cd "%CENREP_DIR%" - -@echo ================= done. Hit any key to continue ================== -@pause - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/cenrep_files/output/inifiles/2000B16B.txt Binary file devicediagnosticsfw/diagframework/cenrep_files/output/inifiles/2000B16B.txt has changed diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/cenrep_files/output/key_sheets_info.storable Binary file devicediagnosticsfw/diagframework/cenrep_files/output/key_sheets_info.storable has changed diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/cenrep_files/output/rfs/cenrep_rfs.txt --- a/devicediagnosticsfw/diagframework/cenrep_files/output/rfs/cenrep_rfs.txt Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -ÿþ \ No newline at end of file diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/conf/diagnosticsfw.confml Binary file devicediagnosticsfw/diagframework/conf/diagnosticsfw.confml has changed diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/conf/diagnosticsfw_2000B16B.crml Binary file devicediagnosticsfw/diagframework/conf/diagnosticsfw_2000B16B.crml has changed diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/eabi/diagframework.def --- a/devicediagnosticsfw/diagframework/eabi/diagframework.def Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -EXPORTS - _ZN11CDiagEngine14SetCustomParamEPv @ 1 NONAME - _ZN11CDiagEngine20GetPluginDependencyLEv @ 2 NONAME - _ZN11CDiagEngine4NewLER13CAknViewAppUiR19MDiagEngineObserverR20RDiagResultsDatabaseR15CDiagPluginPool4TUid @ 3 NONAME - _ZN11CDiagEngine4NewLER13CAknViewAppUiR19MDiagEngineObserverR20RDiagResultsDatabaseR15CDiagPluginPooliRK6RArrayI4TUidE @ 4 NONAME - _ZN11CDiagEngine5NewLCER13CAknViewAppUiR19MDiagEngineObserverR20RDiagResultsDatabaseR15CDiagPluginPool4TUid @ 5 NONAME - _ZN11CDiagEngine5NewLCER13CAknViewAppUiR19MDiagEngineObserverR20RDiagResultsDatabaseR15CDiagPluginPooliRK6RArrayI4TUidE @ 6 NONAME - _ZN11CDiagEngine7ResumeLEv @ 7 NONAME - _ZN11CDiagEngine8ExecuteLEv @ 8 NONAME - _ZN11CDiagEngine8SuspendLEv @ 9 NONAME - _ZN11CDiagEngineD0Ev @ 10 NONAME - _ZN11CDiagEngineD1Ev @ 11 NONAME - _ZN11CDiagEngineD2Ev @ 12 NONAME - _ZN15CDiagPluginPool10LoadAsyncLE4TUid @ 13 NONAME - _ZN15CDiagPluginPool13CreatePluginLE4TUid @ 14 NONAME - _ZN15CDiagPluginPool18CancelLoadPluginsLEv @ 15 NONAME - _ZN15CDiagPluginPool4NewLER23MDiagPluginPoolObserver @ 16 NONAME - _ZN15CDiagPluginPool5NewLCER23MDiagPluginPoolObserver @ 17 NONAME - _ZN15CDiagPluginPoolD0Ev @ 18 NONAME - _ZN15CDiagPluginPoolD1Ev @ 19 NONAME - _ZN15CDiagPluginPoolD2Ev @ 20 NONAME - _ZN18TDiagTestExecParamC1ER17MDiagTestObserverR17MDiagEngineCommon @ 21 NONAME - _ZN18TDiagTestExecParamC2ER17MDiagTestObserverR17MDiagEngineCommon @ 22 NONAME - _ZN19CDiagLogEventEraser10EraseLogsLEv @ 23 NONAME - _ZN19CDiagLogEventEraser20StartAsyncEraseLogsLEv @ 24 NONAME - _ZN19CDiagLogEventEraser4NewLER27MDiagLogEventEraserObserverP10CLogFilter @ 25 NONAME - _ZN19CDiagLogEventEraser6FilterEv @ 26 NONAME - _ZN19CDiagLogEventEraser9LogClientEv @ 27 NONAME - _ZN19CDiagLogEventEraserD0Ev @ 28 NONAME - _ZN19CDiagLogEventEraserD1Ev @ 29 NONAME - _ZN19CDiagLogEventEraserD2Ev @ 30 NONAME - _ZN19TDiagSuiteExecParamC1ER18MDiagSuiteObserverR17MDiagEngineCommon @ 31 NONAME - _ZN19TDiagSuiteExecParamC2ER18MDiagSuiteObserverR17MDiagEngineCommon @ 32 NONAME - _ZN25CDiagResultsDbItemBuilder10SetTestUidE4TUid @ 33 NONAME - _ZN25CDiagResultsDbItemBuilder14SetTimeStartedE5TTime @ 34 NONAME - _ZN25CDiagResultsDbItemBuilder15SetResultDetailEP17MDiagResultDetail @ 35 NONAME - _ZN25CDiagResultsDbItemBuilder16SetTestCompletedEN24CDiagResultsDatabaseItem7TResultE @ 36 NONAME - _ZN25CDiagResultsDbItemBuilder16SetTimeCompletedE5TTime @ 37 NONAME - _ZN25CDiagResultsDbItemBuilder16SetWasDependencyEi @ 38 NONAME - _ZN25CDiagResultsDbItemBuilder19CreateSimpleDbItemLE4TUidiN24CDiagResultsDatabaseItem7TResultE @ 39 NONAME - _ZN25CDiagResultsDbItemBuilder4NewLE4TUidi @ 40 NONAME - _ZN25CDiagResultsDbItemBuilder5NewLCE4TUidi @ 41 NONAME - _ZN28CDiagNetworkRegStatusWatcher12StopObserverEv @ 42 NONAME - _ZN28CDiagNetworkRegStatusWatcher13StartObserverEv @ 43 NONAME - _ZN28CDiagNetworkRegStatusWatcher4NewLER29MDiagNetworkRegStatusObserver @ 44 NONAME - _ZN28CDiagNetworkRegStatusWatcherD0Ev @ 45 NONAME - _ZN28CDiagNetworkRegStatusWatcherD1Ev @ 46 NONAME - _ZN28CDiagNetworkRegStatusWatcherD2Ev @ 47 NONAME - _ZN28CDiagPluginConstructionParam4NewLEP7HBufC16P16CDesC16ArrayFlati4TUidS4_ @ 48 NONAME - _ZN28CDiagPluginConstructionParam5NewLCEP7HBufC16P16CDesC16ArrayFlati4TUidS4_ @ 49 NONAME - _ZN28CDiagPluginConstructionParamD0Ev @ 50 NONAME - _ZN28CDiagPluginConstructionParamD1Ev @ 51 NONAME - _ZN28CDiagPluginConstructionParamD2Ev @ 52 NONAME - _ZNK15CDiagPluginPool10FindPluginE4TUidRP11MDiagPlugin @ 53 NONAME - _ZNK15CDiagPluginPool10FindPluginERK7TDesC16RP11MDiagPlugin @ 54 NONAME - _ZNK15CDiagPluginPool11FindPluginLE4TUid @ 55 NONAME - _ZNK15CDiagPluginPool11FindPluginLERK7TDesC16 @ 56 NONAME - _ZNK18TDiagTestExecParam6EngineEv @ 57 NONAME - _ZNK18TDiagTestExecParam8ObserverEv @ 58 NONAME - _ZNK19TDiagSuiteExecParam6EngineEv @ 59 NONAME - _ZNK19TDiagSuiteExecParam8ObserverEv @ 60 NONAME - _ZNK25CDiagResultsDbItemBuilder10TestResultEv @ 61 NONAME - _ZNK25CDiagResultsDbItemBuilder11TimeStartedEv @ 62 NONAME - _ZNK25CDiagResultsDbItemBuilder12ResultDetailEv @ 63 NONAME - _ZNK25CDiagResultsDbItemBuilder13TimeCompletedEv @ 64 NONAME - _ZNK25CDiagResultsDbItemBuilder13WasDependencyEv @ 65 NONAME - _ZNK25CDiagResultsDbItemBuilder14GetCurrentTimeEv @ 66 NONAME - _ZNK25CDiagResultsDbItemBuilder22ToResultsDatabaseItemLEv @ 67 NONAME - _ZNK25CDiagResultsDbItemBuilder7TestUidEv @ 68 NONAME - _ZNK28CDiagPluginConstructionParam15ServiceProvidedEv @ 69 NONAME - _ZNK28CDiagPluginConstructionParam16ServicesRequiredEv @ 70 NONAME - _ZNK28CDiagPluginConstructionParam3UidEv @ 71 NONAME - _ZNK28CDiagPluginConstructionParam5OrderEv @ 72 NONAME - _ZNK28CDiagPluginConstructionParam9ParentUidEv @ 73 NONAME - _ZTI28CDiagNetworkRegStatusWatcher @ 74 NONAME ; ## - _ZTV28CDiagNetworkRegStatusWatcher @ 75 NONAME ; ## - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/group/bld.inf --- a/devicediagnosticsfw/diagframework/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2007 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: Build information file for Diagnostics Framework -* -*/ - - -#include - - -PRJ_PLATFORMS -DEFAULT - - -PRJ_EXPORTS -// Generic configuration interface for component cenrep settings -../conf/diagnosticsfw.confml MW_LAYER_CONFML(diagnosticsfw.confml) -../conf/diagnosticsfw_2000B16B.crml MW_LAYER_CRML(diagnosticsfw_2000B16B.crml) - -PRJ_MMPFILES -diagframework.mmp - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/group/diagframework.mmp --- a/devicediagnosticsfw/diagframework/group/diagframework.mmp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* -* Copyright (c) 2007 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: Project specification for DiagFramework.dll -* -*/ - - -#include -#include - -TARGET diagframework.dll -TARGETTYPE dll - -UID 0x1000008d 0x2000afe8 - -CAPABILITY CAP_GENERAL_DLL -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE diagengine.cpp -SOURCE diagengineimpl.cpp -SOURCE diagenginestatemachine.cpp -SOURCE diagpluginpool.cpp -SOURCE diagpluginconstructionparam.cpp -SOURCE diagpluginexecplanimpl.cpp -SOURCE diagexecplanentryimpl.cpp -SOURCE diagexecplanentryimpltest.cpp -SOURCE diagexecplanentryimplsuite.cpp -SOURCE DiagTestExecParam.cpp -SOURCE diagsuiteexecparam.cpp -SOURCE diagrootsuite.cpp -SOURCE diagpluginpoolimpl.cpp -SOURCE diagpluginloaderdependencyparser.cpp -SOURCE diagresultsdbitembuilder.cpp -SOURCE diagenginecallhandler.cpp -SOURCE diagengineconfig.cpp -// Events -SOURCE diagengineeventbasic.cpp -SOURCE diagengineeventtestprogress.cpp -// Log Event Eraser -SOURCE diaglogeventeraser.cpp -// Network registration status watcher -SOURCE diagnetworkregstatuswatcher.cpp -USERINCLUDE ../inc - -// System Include Paths -SYSTEMINCLUDE /epoc32/include/ecom -MW_LAYER_SYSTEMINCLUDE - -// This macro disables DRM API -//#define DIAGFW_DISABLE_DRM_API - -LIBRARY euser.lib -LIBRARY ecom.lib -LIBRARY bafl.lib -LIBRARY flogger.lib -LIBRARY xmlframework.lib -LIBRARY etel3rdparty.lib // For CTelephony -LIBRARY centralrepository.lib // For CRepository -LIBRARY diagresultsdatabase.lib -LIBRARY logcli.lib // For Log Eraser -LIBRARY efsrv.lib // For Log Eraser - -#if ( defined(WINSCW) || !defined(DIAGFW_DISABLE_DRM_API) ) - LIBRARY drmserviceapi.lib // DRM::CDrmServiceApi -#else - MACRO __DIAGFW_DISABLE_DRM_API -#endif - -#if defined(WINSCW) - deffile ../bwins/diagframework.def -#else - deffile ../eabi/diagframework.def -#endif - -nostrictdef diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/group/diagframework_uid_.cpp --- a/devicediagnosticsfw/diagframework/group/diagframework_uid_.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +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 diagnostics components -* -*/ -// Makmake-generated uid source file -#include -#pragma data_seg(".SYMBIAN") -__EMULATOR_IMAGE_HEADER2(0x10000079,0x1000008d,0x2000afe8,EPriorityForeground,0x000ffffeu,0x00000000u,0x2000afe8,0x101fb657,0x00010000,0) -#pragma data_seg() diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagappcommand.h --- a/devicediagnosticsfw/diagframework/inc/diagappcommand.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* Copyright (c) 2007 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: List of commands that plug-ins can request from application. -* -*/ - - -#ifndef DIAGAPPCOMMAND_H -#define DIAGAPPCOMMAND_H - -/** -* Diagnostics Application command types. -* -* This is a list of command that plug-in can request from the application. -* -*/ -enum TDiagAppCommand - { - /** - * EDiagAppCommandSwitchToMainView - * - * This command can be used by interactive view plug-in to notify the - * application that plug-in is done with current view and application can - * switch to main view. View to switch to is determined by the application. - * - * aParam1: No parameter is needed. Always pass NULL. - * aParam2: No parameter is needed. Always pass NULL. - * - * @code - * - * ExecutionParam().Engine().ExecuteAppCommandL( - * EDiagAppCommandSwitchToMainView, - * NULL, - * NULL ); - * - * or - * - * TRAPD( err, ExecutionParam().Engine().ExecuteAppCommandL( - * EDiagAppCommandSwitchToMainView, - * NULL, - * NULL ) ); - * - */ - EDiagAppCommandSwitchToMainView = 1 - }; - -#endif // DIAGAPPCOMMAND_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagcleanupresetanddestroy.h --- a/devicediagnosticsfw/diagframework/inc/diagcleanupresetanddestroy.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 2007 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: Provides ResetAndDestroy for RPointerArrays. -* -*/ - - -#ifndef DIAGCLEANUPRESETANDDESTROY_H -#define DIAGCLEANUPRESETANDDESTROY_H - -// SYSTEM INCLUDES -#include // TAny - -// FORWARD DECLARATION -template< class T > -class RPointerArray; - -namespace DiagFwInternal - { - - /** - * Cleanup function for RPointerArray or any other types with ResetAndDestroy() - * @usage - * RPointerArray< CDiagResultsDatabaseItem > myArray; - * CleanupStack::PushL( TCleanupItem( - * DiagFwInternal::CleanupResetAndDestroy< RPointerArray< CDiagResultsDatabaseItem > >, - * &myArray ) ); - * - * ... - * - * CleanupStack::PopAndDestroy( &myArray ); - */ - template< class T > - inline void CleanupResetAndDestroy( TAny* aObj ); - - /** - * Push a RPointerArray of templated type to cleanup stack - * @usage - * RPointerArray< CDiagResultsDatabaseItem > myArray; - * DiagFwInternal::CleanupRPointerArrayPushL< CDiagResultsDatabaseItem >( &myArray ); - * - * ... - * - * CleanupStack::PopAndDestroy( &myArray ); - */ - template< class T > - inline void CleanupRPointerArrayPushL( RPointerArray< T >* aObj ); - - } - -// Inline methods -#include "diagcleanupresetanddestroy.inl" - -#endif // DIAGCLEANUPRESETANDDESTROY_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagcleanupresetanddestroy.inl --- a/devicediagnosticsfw/diagframework/inc/diagcleanupresetanddestroy.inl Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 2007 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: Function Definition of CleanupResetAndDestroy -* -*/ - - -// CLASS DECLARATION - -// SYSTEM INCLUDE FILES -#include // CleanupStack - -// USER INCLUDE FILES - -namespace DiagFwInternal - { - - template< class T > - inline void CleanupResetAndDestroy( TAny* aObj ) - { - if ( aObj ) - { - static_cast< T* >( aObj )->ResetAndDestroy(); - } - } - - template< class T > - inline void CleanupRPointerArrayPushL( RPointerArray< T >* aObj ) - { - if ( aObj ) - { - CleanupStack::PushL( TCleanupItem( - CleanupResetAndDestroy< RPointerArray< T > >, - aObj ) ); - } - } - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagcommondialog.h --- a/devicediagnosticsfw/diagframework/inc/diagcommondialog.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 2007 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: List of common dialog types -* -*/ - - -#ifndef DIAGCOMMONDIALOG_H -#define DIAGCOMMONDIALOG_H - - -/** -* Diagnostics Common Dialog Types -* -* This is a list of common dialogs that can be used by plug-ins. -* -*/ -enum TDiagCommonDialog - { - /** - * EDiagCommonDialogConfirmCancelAll - * Dialog that asks the user if all tests should be cancelled or not. - * - * aInitData: No init data needed. Always pass NULL. - * Return: Standard dialog. Use CAknDialog. - * Execution: Call RunLD(). - * RunLD() returns: - EAknSoftkeyYes, if the user confirmed the request to - * cancel all test execution. Plugins should not do - * any further execution and should return immediately. - * - EAknSoftkeyNo, if the user dismissed the dialog and - * decided not to cancel all test execution. - * - 0, if the dialog is forced closed. Generally, - * plugins should not distinguish between EAknSoftkeyNo - * and 0 (i.e., they should *only* check for - * EAknSoftkeyYes), unless there is good reason to. - * - * @code - * - * CAknDialog* dlg = ExecutionParam().Engine().CreateCommonDialogLC( - * EDiagCommonDialogConfirmCancelAll, - * NULL ); - * - * TInt result = 0; - * if ( !RunWaitingDialogL( dlg, result ) || - * result == EAknSoftkeyYes ) - * { - * // Do not continue executing. Either the dialog has been deleted - * // or the user has cancelled all execution. - * return; - * } - * - * dlg = NULL; - * - * // Loop and display the plugin query again. - * askAgain = ETrue; - * - */ - EDiagCommonDialogConfirmCancelAll = 1, - EDiagCommonDialogConfirmSkipAll =2 - }; - -#endif // DIAGCOMMONDIALOG_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagengine.h --- a/devicediagnosticsfw/diagframework/inc/diagengine.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,297 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagEngine -* -*/ - - -#ifndef DIAGENGINE_H -#define DIAGENGINE_H - - -// system includes -#include // CBase - -// user includes. -#include // MDiagEngineCommon - -// Forward declarations -class MDiagEngineObserver; -class RDiagResultsDatabase; -class CDiagPluginPool; -class CDiagEngineImpl; - - -/** -* Diagnostics Framework Engine -* -* This class is used by the client to execute tests and load plug-ins. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CDiagEngine ) : public CBase, - public MDiagEngineCommon - { -public: - - /** - * Two-phased constructors. - * - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aDisableDependency if ETrue, plug-ins should execute - * event if dependencies are not met. - * @param aExecutionBatch array of plug-ins to execute. - * @return New instance of CDiagEngine*. - */ - IMPORT_C static CDiagEngine* NewL( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ); - - /** - * Two-phased constructors. This is identical to NewL, except that it will - * keep newl instance in clean up stack. - * - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aDisableDependency if ETrue, plug-ins should execute - * event if dependencies are not met. - * @param aExecutionBatch array of plug-ins to execute. - * @return New instance of CDiagEngine*. - */ - IMPORT_C static CDiagEngine* NewLC( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ); - /** - * Two-phased constructors. - * - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aIncompleteRecordUid - Uid to the record to resume. - * - * @return New instance of CDiagEngine*. - */ - IMPORT_C static CDiagEngine* NewL( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TUid aIncompleteRecordUid ); - - /** - * Two-phased constructors. This is identical to NewL, except that it will - * keep newl instance in clean up stack. - * - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aIncompleteRecordUid - Uid to the record to resume. - * - * @return New instance of CDiagEngine*. - */ - IMPORT_C static CDiagEngine* NewLC( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TUid aIncompleteRecordUid ); - - /** - * Destructor. - */ - virtual ~CDiagEngine(); - - /** - * Execute tests. This is a asynchronous method. - * First, execution plan is sent via MDiagEngineObserver::TestExecutionBeginL(). - * Then, during the execution, MDiagEngineObserver::TestExecutionProgressL() - * may be called multiple times to notify execution progress. - * When execution is completed, - * MDiagEngineObserver::TestExecutionCompletedL() is called. - */ - IMPORT_C void ExecuteL(); - - /** - * Set custom execution parameter. - * - * @param aCustomParams - Custom data. Owership is not transefrred - * so, the client must delete it once test is completed. - * Desipte it being a pointer, ownership cannot be transferred - * because engine does not know the type of pointer. - */ - IMPORT_C void SetCustomParam( TAny* aCustomParams ); - - /** - * Suspend execution. This can be used to suspend test execution. - * If currently executing test is suspendable, it will be suspended and resumed. - * Otherwise, it will be stopped. When CDiagEngine::ResumeL is called, - * the stopped test will be restarted from the beginning. Already executed - * tests are not affected. - * - * After engine is suspended, MDiagEngineObserver::TestExecutionSuspendedL() is called. - * - */ - IMPORT_C void SuspendL(); - - /** - * Resume suspended execution. This function can be used to resume - * previously suspended execution. If execution was suspended on a test - * that cannot be suspended, the test will restart. Previously executed tests - * will not be re-run. Also, dependent tests will not be re-run. If - * the suspended test fails to resume (e.g. leaves), it will be marked as - * failure. - * - * After engine is resumed, MDiagEngineObserver::TestExecutionResumedL() is called. - */ - IMPORT_C void ResumeL(); - - - // ADO & Platformization Changes - ///@@@KSR: changes for Codescanner error val = High - //IMPORT_C TBool GetPluginDependency(); - IMPORT_C TBool GetPluginDependencyL(); - -public: // from MDiagEngineCommon - - /** - * Returns current execution plan. - * @see MDiagEngineCommon::ExecutionPlanL - */ - virtual const MDiagPluginExecPlan& ExecutionPlanL() const; - - /** - * Stop current execution of tests. - * @see MDiagEngineCommon::ExecutionStopL - */ - virtual void ExecutionStopL( TCancelMode aCancelMode ); - - /** - * Resets test execution watchdog timer. - * @see MDiagEngineCommon::ResetWatchdog - */ - virtual void ResetWatchdog(); - - /** - * Resets test execution watchdog timer. - * @see MDiagEngineCommon::ResetWatchdog - */ - virtual void ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType ); - - /** - * Resets test execution watchdog timer. - * @see MDiagEngineCommon::ResetWatchdog - */ - virtual void ResetWatchdog( TTimeIntervalMicroSeconds32 aExpectedTimeToComplete ); - - /** - * Get App Ui reference that launched Diagnostics Engine. - * @see MDiagEngineCommon::ViewAppUi - */ - virtual CAknViewAppUi& ViewAppUi(); - - /** - * Get App Ui reference that launched Diagnostics Engine. - * @see MDiagEngineCommon::ViewAppUi - */ - virtual const CAknViewAppUi& ViewAppUi() const; - - /** - * Get Database Subsession for record open for writing. - * @see MDiagEngineCommon::DbRecord - */ - virtual RDiagResultsDatabaseRecord& DbRecord(); - - /** - * Get Database Subsession for record open for writing. - * @see MDiagEngineCommon::DbRecord - */ - virtual const RDiagResultsDatabaseRecord& DbRecord() const; - - /** - * Get reference to Plugin Pool - * @see MDiagEngineCommon::PluginPool - */ - virtual CDiagPluginPool& PluginPool(); - - /** - * Get reference to Plugin Pool - * @see MDiagEngineCommon::PluginPool - */ - virtual const CDiagPluginPool& PluginPool() const; - - /** - * Add a text to configuraiton list option. - * @see MDiagEngineCommon::AddToConfigListL - */ - virtual void AddToConfigListL( TConfigListType aListType, const TDesC& aText ); - - /** - * Remove a text from configuration list. - * @see MDiagEngineCommon::RemoveFromConfigListL - */ - virtual void RemoveFromConfigListL( TConfigListType aListType, const TDesC& aText ); - - /** - * Create a common dialog. - * @see MDiagEngineCommon::CreateCommonDialogL - */ - virtual CAknDialog* CreateCommonDialogLC( TDiagCommonDialog aDialogType, - TAny* aInitData ); - - /** - * Stop watchdog activity temporarily. - * @see MDiagEngineCommon::StopWatchdogTemporarily - */ - virtual void StopWatchdogTemporarily(); - - /** - * Check if current engine is being executed with dependency disabled. - * @see MDiagEngineCommon::IsDependencyDisabled - */ - virtual TBool IsDependencyDisabled() const; - - /** - * Get custom param - * @see MDiagEngineCommon::CustomParam - */ - virtual TAny* CustomParam() const; - - /** - * Execute an application command. - * @see MDiagEngineCommon::ExecuteAppCommandL - */ - virtual void ExecuteAppCommandL( TDiagAppCommand aCommand, - TAny* aParam1, - TAny* aParam2 ); - -private: // private data - CDiagEngineImpl* iEngineImpl; - }; - - -#endif // DIAGENGINE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagenginecallhandler.h --- a/devicediagnosticsfw/diagframework/inc/diagenginecallhandler.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,186 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for DiagFwInternal::TEvent -* -*/ - - -#ifndef DIAGENGINECALLHANDLER_H -#define DIAGENGINECALLHANDLER_H - -// SYSTEM INCLUDES -#include // CTelephony and its T classes -#include // CDesCArrayFlat - needed since its a typedef - -// USER INCLUDES -#include "diagenginecallhandlerstates.h" // TDiagEngineCallHandlerState - -// FORWARD DECLARATION -class MDiagEngineCallHandlerObserver; - - -/** -* Call Handler. -* -* This component is responsible for checking both MO and MT voice calls. -* If new calls are made, this component will let the observer know that -* call status has changed. -* -* It also maintains a list of acceptable phone numbers that can be ignored. -* The list can be changed dynamically. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CDiagEngineCallHandler ) : public CActive - { -public: - /** - * Two-phased constructor - * - * @param aObserver - Reference to object interested in voice call events. - * @return New instance of CDiagEngineCallHandler - */ - static CDiagEngineCallHandler* NewL( MDiagEngineCallHandlerObserver& aObserver ); - - /** - * C++ Destructor - * - */ - virtual ~CDiagEngineCallHandler(); - - /** - * Add a new phone number to a ignore list. If a new call is made, and - * it is in the ignore list, state chaneg will not occur. - * - * Note that if the number specified is already in-call, adding the - * numebr will not cause the state to be changed. Only new calls - * are watched. - * - * @param aNumber - Phone number to ignore - */ - void AddIgnoreNumberL( const TDesC& aNumber ); - - /** - * Remove a number from the ignore list. Number must match exactly to - * be successful. If entry is not found, this function will leave - * vith KErrNotFound. - * - * Note that if the number specified is already in call, removing - * the number will not generate state change event. Only new - * calls are handled. - * - * @param aNumber - Phone number to ignore - */ - void RemoveIgnoreNumberL( const TDesC& aNumber ); - - /** - * Returns current call handler state. - * - * @return Current call handler state. - */ - TDiagEngineCallHandlerState CurrentState() const; - -private: // from CActive - /** - * @see CActive::RunL() - */ - virtual void RunL(); - - /** - * @see CActive::DoCancel() - */ - virtual void DoCancel(); - -private: // private functions - /** - * C++ Constructor - * - * @param aObserver - reference to observer. - */ - CDiagEngineCallHandler( MDiagEngineCallHandlerObserver& aObserver ); - - /** - * Second phase constructor. - * - */ - void ConstructL(); - - /** - * Request from the telephony to receive phone status change indication. - * This function must be called every time status update happens in - * order to continue to receive new state change. - * - */ - void RequestNotify(); - - /** - * Handle CTelephony::EStatusIdle case. - * - * @return ETrue if state is changed, and observer should be notified. - */ - TBool HandleIdle(); - - /** - * Handle CTelephony::EStatusDialling and CTelephony::EStatusRinning case. - * - * @return ETrue if state is changed, and observer should be notified. - */ - TBool HandleCall(); - - /** - * Debugging function that logs a human readable text of current - * call status. - * - * This function does not do anything in DEBUG builds. - */ - void LogCallStatus() const; - -private: - /** - * iObserver - Observers call handle status. - */ - MDiagEngineCallHandlerObserver& iObserver; - - /** - * iTelephony - Used to receive call status changed indication. - * Owns. - */ - CTelephony* iTelephony; - - /** - * iCallStatus - This is where call status data is updated. - */ - CTelephony::TCallStatusV1 iCallStatus; - - /** - * iCallStatusPckg - packaged version of iCallStatus - */ - CTelephony::TCallStatusV1Pckg iCallStatusPckg; - - /** - * iCallIgnoreList - List of numbers to ignore. - * Owns. - */ - CDesCArrayFlat* iCallIgnoreList; - - /** - * iState - internal state. - */ - TDiagEngineCallHandlerState iState; - }; - -#endif // DIAGENGINECALLHANDLER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagenginecallhandlerobserver.h --- a/devicediagnosticsfw/diagframework/inc/diagenginecallhandlerobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for MDiagEngineCallHandlerObserver -* -*/ - - -#ifndef DIAGENGINECALLHANDLEROBSERVER_H -#define DIAGENGINECALLHANDLEROBSERVER_H - -#include "diagenginecallhandlerstates.h" // TDiagEngineCallHandlerState - -class MDiagEngineCallHandlerObserver - { -public: - /** - * Notify call state change - * @param aState - EDiagEngineCallHandlerStateIdle if not in call. - * EDiagEngineCallHandlerStateBusy if in call. - */ - virtual void CallHandlerStateChangedL( TDiagEngineCallHandlerState aState ) = 0; - }; - -#endif // DIAGENGINECALLHANDLEROBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagenginecallhandlerstates.h --- a/devicediagnosticsfw/diagframework/inc/diagenginecallhandlerstates.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for TDiagEngineCallHandlerState -* -*/ - - -#ifndef DIAGENGINECALLHANDLERSTATES_H -#define DIAGENGINECALLHANDLERSTATES_H - -enum TDiagEngineCallHandlerState - { - EDiagEngineCallHandlerStateIdle = 0, // in idle state. - EDiagEngineCallHandlerStateBusy // call is active. - }; - -#endif // DIAGENGINECALLHANDLERSTATES_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagenginecommon.h --- a/devicediagnosticsfw/diagframework/inc/diagenginecommon.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,247 +0,0 @@ -/* -* Copyright (c) 2007 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: Common interface to use engine -* -*/ - - -#ifndef DIAGENGINECOMMON_H -#define DIAGENGINECOMMON_H - -// SYSTEM INCLUDES -#include // TDesC, TTimeIntervalMicroSeconds32 -#include // TDiagCommonDialog -#include // TDiagAppCommand -#include // TDiagEngineWatchdogTypes - -// FORWARD DECLARATION -class MDiagPluginExecPlan; -class MDiagPlugin; -class CAknViewAppUi; -class RDiagResultsDatabaseRecord; -class CDiagPluginPool; -class CAknDialog; - -/** -* Diagnostics Framework Engine Common Interface -* -* This interface is provided for Test plug-ins, Suite plug-ins and -* any other clients of CDiagEngine. -* -* @since S60 v5.0 -*/ -class MDiagEngineCommon - { -public: // Data Structures - - /** - * Possible cancellation mode. - */ - enum TCancelMode - { - ESkip, // Cancel current test only. Continue rest. - ECancelAll // Cancel current test and skip rest of execution. - }; - - /** - * Text List based config options - */ - enum TConfigListType - { - /** - * EConfigListCallIngore - List of phone numbers to ignore. - * If a phone number is added to this list, engine will ignore the number - * a new MO/MT call is created by the phone, and will not suspend - * the engine execution when new call is made. - */ - EConfigListCallIngore = 0 - }; - -public: // public methods - - /** - * Returns current execution plan. - * If test is not being executed, it will leave with KErrNotReady. - * - * @return Reference to current execution plan. - */ - virtual const MDiagPluginExecPlan& ExecutionPlanL() const = 0; - - /** - * Stop current execution of tests. - * If test is not being executed, it will leave with KErrNotReady. - * - * @param aCancelMode ESkip - Skip current test only. Rest will continue. - * ECancelAll - Cancels current test and skips the rest of - * execution. - */ - virtual void ExecutionStopL( TCancelMode aCancelMode ) = 0; - - /** - * Resets test execution watchdog timer. It will use the last given watchdog - * timer value for currently executing plug-in. - */ - virtual void ResetWatchdog() = 0; - - /** - * Resets test execution watchdog timer. - * Watchog timer value will be determined by the type of watchdog requested. - * Given value is valid until next plug-in is executed, or another - * ResetWachdogL() or TestProgressL() is called. - * - * @param aWatchdogType Type of watchdog timer vaule to use. - * @see TDiagEngineWatchdogTypes - */ - virtual void ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType ) = 0; - - /** - * Resets test execution watchdog timer. - * Engine will allow specified amount of time. - * Given value is valid until next plug-in is executed, or another - * ResetWachdogL() or TestProgressL() is called. - * - * @param aTimeToWait - Amount of time to wait before watchdog is expired. - */ - virtual void ResetWatchdog( TTimeIntervalMicroSeconds32 aExpectedTimeToComplete ) = 0; - - /** - * Get App Ui reference that launched Diagnostics Engine. - * AppUi reference can be used for tests that requires AppUi for view switching. - * - * @return Reference to CAknViewAppUi - */ - virtual CAknViewAppUi& ViewAppUi() = 0; - - /** - * Get App Ui reference that launched Diagnostics Engine. - * AppUi reference can be used for tests that requires AppUi for view switching. - * - * @return Reference to CAknViewAppUi - */ - virtual const CAknViewAppUi& ViewAppUi() const = 0; - - /** - * Get Database Subsession for record open for writing. - * - * @return Reference to RDiagResultsDatabaseRecord - */ - virtual RDiagResultsDatabaseRecord& DbRecord() = 0; - - /** - * Get Database Subsession for record open for writing. - * - * @return Reference to RDiagResultsDatabaseRecord - */ - virtual const RDiagResultsDatabaseRecord& DbRecord() const = 0; - - /** - * Get reference to Plugin Pool - * - * @return Reference to CDiagPluginPool - */ - virtual CDiagPluginPool& PluginPool() = 0; - - /** - * Get reference to Plugin Pool - * - * @return Reference to CDiagPluginPool - */ - virtual const CDiagPluginPool& PluginPool() const = 0; - - /** - * Add a text to configuraiton list option. - * - * @param aListType - List type to add the configuration option to. - * @see TConfigListType - * @param aText - text to add to the list - */ - virtual void AddToConfigListL( TConfigListType aListType, const TDesC& aText ) = 0; - - /** - * Remove a text from configuration list. - * If configuration item text does not exist in the list, this function will - * leave with KErrNotFound. - * - * @param aListType - List type to remove the item from. - * @see TConfigListType - * @param aText - text for the option - */ - virtual void RemoveFromConfigListL( TConfigListType aListType, const TDesC& aText ) = 0; - - /** - * Create a common dialog. - * Plug-ins can use this factory method to create a common dialog. - * For available dialog types, @see DiagCommonDialog.h - * - * @param aDialogType - Type of dialog to create. - * @param aInitData - Initialization parameter. Ownership is passed to engine. - * @return a pointer to newly created dialog. Ownership is passed to caller. - */ - virtual CAknDialog* CreateCommonDialogLC( TDiagCommonDialog aDialogType, - TAny* aInitData ) = 0; - - /** - * Stop watchdog activity temporarily. Watchdog will stay inactive until: - * a ) TestProgressL() is called. - * b ) ResetWatchdogL() is called. - * c ) Plug-in is cancelled and the next plug-in starts to execute. - */ - virtual void StopWatchdogTemporarily() = 0; - - /** - * Check if current engine is being executed with dependency disabled. - * @return TBool - ETrue if dependency is disabled. - * EFalse if depencenty is enabled. - */ - virtual TBool IsDependencyDisabled() const = 0; - - /** - * Get custom parameter passed during engine creation. - * @return TAny* Custom parameter. Ownership is not transferred. - */ - virtual TAny* CustomParam() const = 0; - - /** - * Send a command to application to execute.. This can be used by the plug-in to - * request certain behavior from application. For more information about - * types of commands possible, @see TDiagAppCommand. - * If the command is not supported by the application, this function will - * leave with error code KErrNotSupported. - * - * Memory Ownership of Parameters. - * Note that in general, parameters should be owned by the caller. This is - * because if a particular operation is not supported, application - * will not know how to deallocate the parameter, causing memory leak. - * - * In cases where ownership must be passed, caller must check if - * ExecuteAppCommandL() leaves KErrNotSupported and deallocate - * parameters. - * - * @param aCommand - Type of command to execute. @see TDiagAppCommand - * @param aParam1 - Data for the command. Value of this parameter depends - * on the type of command. Ownership not transferred. @see TDiagAppCommand - * @param aParam2 - Data for the command. Value of this parameter depends - * on the type of command. Ownership not transferred. @see TDiagAppCommand - * - */ - virtual void ExecuteAppCommandL( TDiagAppCommand aCommand, - TAny* aParam1, - TAny* aParam2 ) = 0; - }; - - -#endif // DIAGENGINECOMMON_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagengineconfig.h --- a/devicediagnosticsfw/diagframework/inc/diagengineconfig.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for TDiagEngineConfig -* -*/ - - -#ifndef DIAGENGINECONFIG_H -#define DIAGENGINECONFIG_H - -// SYSTEM INCLUDE FILES -#include // NONSHARABLE_CLASS - -// FORWARD DECLARATIONS -class CRepository; - -/** -* Diagnostics Engine Configuration. -* -* This class implements TDiagEngineConfig class. This class stores configuration -* information. -* -* @since S60 v5.0 -* -*/ -NONSHARABLE_CLASS( TDiagEngineConfig ) - { -public: // public interface - /** - * C++ default contructor - */ - TDiagEngineConfig(); - - /** - * Read Cenrep key vaules - */ - void ReadCenrepKeysL(); - - /** - * Get watchdog timeout vaule for interactive plug-ins. - * - * @return Watchdog timeout value for interactive plug-ins. - */ - const TTimeIntervalMicroSeconds32& WatchdogTimeoutValueInteractive() const; - - /** - * Get watchdog timeout vaule for automatic plug-ins. - * - * @return Watchdog timeout value for automatic plug-ins. - */ - const TTimeIntervalMicroSeconds32& WatchdogTimeoutValueAutomatic() const; - - /** - * Get test plug-in initial delay vaule. - * - * @return Initial test plug-in delay vaule. - * Unit is in micro seconds - */ - const TTimeIntervalMicroSeconds32& TestPluginInitialDelay() const; - - /** - * Set whether engine is configured to disable dependency checks. - * - * @param aDisableDependency - ETrue to change configuration to disable - * dependency. EFalse to change configuration to enable dependency. - */ - void SetDependencyDisabled( TBool aDisableDependency ); - - /** - * Get disable depndency value. - * - * @return - ETrue if dependency is disabled. - * EFalse if dependency is enabled. - */ - TBool IsDependencyDisabled() const; - -private: // private methods - /** - * Read TTimeIntervalMicroSeconds32 value from cenrep. - * - * @param aCenrep - Reference to Cenrep object to read timeout value from. - * @param aKey - Cenrep key to read. - * @param aValue - If successful, this variable will be updated with - * the value from cenrep. - */ - void ReadTimeIntervalFromCenrepL( CRepository& aCenrep, - TUint32 aKey, - TTimeIntervalMicroSeconds32& aValue ); - -private: // private data - /** - * iCenRepWatchdogTimeout - Watchdog timer value for Interactive steps. - * Unit is in microseconds. - */ - TTimeIntervalMicroSeconds32 iCenRepWatchdogTimeoutInteractive; - - /** - * iCenRepWatchdogTimeout - Watchdog timer value for automatic steps. - * Unit is in microseconds. - */ - TTimeIntervalMicroSeconds32 iCenRepWatchdogTimeoutAutomatic; - - /** - * iCenRepInitDelay - Initial delay for test plug-ins. - * Unit is in microseconds. - */ - TTimeIntervalMicroSeconds32 iCenRepInitDelay; - - /** - * iDisableDependency - If Enabled, dependency will not be executed. - * From constructor input. - */ - TBool iDisableDependency; - - }; - -#endif // DIAGENGINECONFIG_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagengineeventbasic.h --- a/devicediagnosticsfw/diagframework/inc/diagengineeventbasic.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for DiagFwInternal::TEvent -* -*/ - - -#ifndef DIAGENGINEEVENTBASIC_H -#define DIAGENGINEEVENTBASIC_H - -// SYSTEM INCLUDES -#include // CBase - -// USER INCLUDES -#include "diagengineevents.h" - -namespace DiagFwInternal - { -/** -* CEventBasic -* -* Basic event with just event ID. -*/ -NONSHARABLE_CLASS( CEventBasic ) : public CBase - { -public: - /** - * C++ Constructor - * - * @param aType - Type of event. - * @see DiagFwInternal::TEvent - */ - CEventBasic( TEvent aType ); - - /** - * Get Type - * - * @see DiagFwInternal::TEvent - * @return Type of event. - */ - TEvent GetType() const; - - /** - * Get name of the event - * - * @return Name of the event - */ - const TDesC& ToString() const; - -private: // private data - /** - * iType - event type. - * @see DiagFwInternal::TEvent - */ - TEvent iType; - }; - } // namespace DiagFwInternal - -#endif // ifndef DIAGENGINEEVENTBASIC_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagengineevents.h --- a/devicediagnosticsfw/diagframework/inc/diagengineevents.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for DiagFwInternal::TEvent -* -*/ - - -#ifndef DIAGENGINEEVENTS_H -#define DIAGENGINEEVENTS_H - -// SYSTEM INCLUDES -#include // CDiagResultsDatabaseItem -#include // MDiagEngineCommon - -class MDiagPlugin; -class MDiagTestPlugin; -class MDiagSuitePlugin; - -namespace DiagFwInternal - { -typedef enum - { - EEventExecute, // ::ExecuteTestL() is called. - EEventPlanCreated, // Execution plan is created. - EEventExecuteNext, // Execute next item in plan. - EEventTestProgress, // ::TestProgressL is called. - EEventAllPluginsCompleted, // All plug-ins are completed. - EEventResumeToRunning, // Resume to Runinng state from suspend - EEventResumeToCreatingPlan, // Resume to Creating plan from suspend - EEventSkip, // ::ExecutionStopL w/ Skip called - EEventCancelAll, // ::ExecutionStopL w/ CancelAll called - EEventSuspend, // ::SuspendL called. - EEventVoiceCallActive, // MO / MT call - EEventFinalized // db record and plug-ins are finalized. - } TEvent; - } // end of namespace DiagFwInternal - -#endif // DIAGENGINEEVENTS_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagengineeventtestprogress.h --- a/devicediagnosticsfw/diagframework/inc/diagengineeventtestprogress.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for DiagFwInternal::CEventTestProgress -* -*/ - - -#ifndef DIAGENGINEEVENTTESTPROGRESS_H -#define DIAGENGINEEVENTTESTPROGRESS_H - -// SYSTEM INCLUDES -#include // CBase - -// USER INCLUDES -#include "diagengineevents.h" // DiagFwInternal::TEvent -#include "diagengineeventbasic.h" // DiagFwInternal::CEventBasic - -namespace DiagFwInternal - { -/** -* CEventTestProgress -* -* Event for test progress -*/ -NONSHARABLE_CLASS( CEventTestProgress ) : public CEventBasic - { -public: - /** - * C++ Constructor - * - * @param aSender - Sender of the progress event - * @param aCurrentStep - Current progress step - * @param aTotalSteps - Total number of steps to complete - */ - CEventTestProgress( const MDiagPlugin& aSender, - TUint aCurrentStep, - TUint aTotalSteps ); - - /** - * Get Sender - * - * @return Reference to the plugin - */ - const MDiagPlugin& Sender() const; - - /** - * Get progress - * - * @return progress - */ - TUint CurrStep() const; - - /** - * Get total number of steps to complete - * - * @return total number of steps - */ - TUint TotalSteps() const; - -private: // private data - /** - * iSender - Plug-in that sent in the progress - */ - const MDiagPlugin& iSender; - - /** - * iCurrStep - Current step. - */ - TUint iCurrStep; - - /** - * iTotalSteps - Total steps - */ - TUint iTotalSteps; - }; - } // namespace DiagFwInternal - -#endif // ifndef DIAGENGINEEVENTTESTPROGRESS_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagengineimpl.h --- a/devicediagnosticsfw/diagframework/inc/diagengineimpl.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,803 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagEngineImpl -* -*/ - - -#ifndef DIAGENGINEIMPL_H -#define DIAGENGINEIMPL_H - - -// system includes -#include // CActive -#include // MDiagEngineCommon -#include // MDiagEngineObserver::TSuspendReason -#include // RDiagResultsDatabase, RDiagResultsDatabaseRecord -#include // MDiagTestPlugin::TStopReason -#include // MDiagSuitePlugin::TStopReason - -// user includes. -#include "diagenginestatemachineobserver.h" // DiagFwInternal::MStateMachineObserver -#include "diagenginestates.h" // DiagFwInternal::TState -#include "diagengineevents.h" // DiagFwInternal::TEvent -#include "diagenginecallhandlerobserver.h" // MDiagEngineCallHandlerObserver -#include "diagexecplanentryimplobserver.h" // MDiagExecPlanEntryImplObserver -#include "diagengineconfig.h" // TDiagEngineConfig - - -// Forward declarations -class MDiagTestPlugin; -class MDiagSuitePlugin; -class CDiagPluginPool; -class CAknViewAppUi; -class CDiagEngineCallHandler; -class CDiagPluginExecPlanImpl; -class CDiagExecPlanEntryImpl; -class CDiagExecPlanEntryImplTest; - -namespace DiagFwInternal - { - class CStateMachine; - class CEventBasic; - class CEventCancel; - class CEventSendCompletion; - class CEventSuiteContinue; - class CEventTestCompleted; - class CEventTestProgress; - class CEventWatchdog; - } - -/** -* Diagnostics Framework Engine Implementation -* -* This class is the actual class that implements CDiagEngine. -* All actual work is done by CDiagEngineImpl class. -* -*/ -NONSHARABLE_CLASS( CDiagEngineImpl ) : public CActive, - public MDiagEngineCommon, - public MDiagExecPlanEntryImplObserver, - public DiagFwInternal::MStateMachineObserver, - public MDiagEngineCallHandlerObserver - { -public: - - /** - * Two-phased constructor. - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aDisableDependency if ETrue, plug-ins should execute - * event if dependencies are not met. - * @param aExecutionBatch - array of test uids to execute - * - * @return new instance of CDiagEngineImpl* - */ - static CDiagEngineImpl* NewL( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ); - - /** - * Two-phased constructor. This function is identical to NewL, - * except that it pushs created object in clean up stack. - * - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aDisableDependency if ETrue, plug-ins should execute - * event if dependencies are not met. - * @param aExecutionBatch - array of test uids to execute - * - * @return new instance of CDiagEngineImpl* - */ - static CDiagEngineImpl* NewLC( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ); - - - /** - * Two-phased constructor. - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aIncompleteRecordUid - Uid to the record to resume. - * - * @return new instance of CDiagEngineImpl* - */ - static CDiagEngineImpl* NewL( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TUid aIncompleteRecordUid ); - /** - * Two-phased constructor. This function is identical to NewL, - * except that it pushs created object in clean up stack. - * - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aIncompleteRecordUid - Uid to the record to resume. - * - * @return new instance of CDiagEngineImpl* - */ - static CDiagEngineImpl* NewLC( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TUid aIncompleteRecordUid ); - - - /** - * Destructor. - */ - virtual ~CDiagEngineImpl(); - - /** - * Execute tests. This implements CDiagEngine::ExecuteL - * - * @see CDiagEngine::ExecuteL - */ - void ExecuteL(); - - /** - * Set custom execution parameter. - * - * @see CDiagEngine::SetCustomParam - */ - void SetCustomParam( TAny* aCustomParams ); - - /** - * Suspend execution. - * - * @see CDiagEngine::SuspendL - */ - void SuspendL(); - - /** - * Resume suspended execution. This implements CDiagEngine::ResumeL - * - * @see CDiagEngine::ResumeL - */ - void ResumeL(); - -public: // from MDiagEngineCommon - /** - * Returns current execution plan. - * - * @see MDiagEngineCommon::ExecutionPlanL - */ - virtual const MDiagPluginExecPlan& ExecutionPlanL() const; - - /** - * Stop current execution of tests. - * - * @see MDiagEngineCommon::ExecutionStopL - */ - virtual void ExecutionStopL( TCancelMode aCancelMode ); - - /** - * Resets test execution watchdog timer. - * - * @see MDiagEngineCommon::ResetWatchdog - */ - virtual void ResetWatchdog(); - - /** - * Resets test execution watchdog timer. - * @see MDiagEngineCommon::ResetWatchdog - */ - virtual void ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType ); - - /** - * Resets test execution watchdog timer. - * @see MDiagEngineCommon::ResetWatchdog - */ - virtual void ResetWatchdog( TTimeIntervalMicroSeconds32 aExpectedTimeToComplete ); - - /** - * Get App Ui reference that launched Diagnostics Engine. - * - * @see MDiagEngineCommon::ViewAppUi() - */ - virtual CAknViewAppUi& ViewAppUi(); - - /** - * Get App Ui reference that launched Diagnostics Engine. - * - * @see MDiagEngineCommon::ViewAppUi() - */ - virtual const CAknViewAppUi& ViewAppUi() const; - - /** - * Get Database Subsession for record open for writing. - * - * @see MDiagEngineCommon::DbRecord - */ - virtual RDiagResultsDatabaseRecord& DbRecord(); - - /** - * Get Database Subsession for record open for writing. - * - * @see MDiagEngineCommon::DbRecord - */ - virtual const RDiagResultsDatabaseRecord& DbRecord() const; - - /** - * Get reference to Plugin Pool - * - * @see MDiagEngineCommon::PluginPool - */ - virtual CDiagPluginPool& PluginPool(); - - /** - * Get reference to Plugin Pool - * - * @see MDiagEngineCommon::PluginPool - */ - virtual const CDiagPluginPool& PluginPool() const; - - /** - * Add a text to configuraiton list option. - * - * @see MDiagEngineCommon::AddToConfigListL - */ - virtual void AddToConfigListL( TConfigListType aListType, const TDesC& aText ); - - /** - * Remove a text from configuration list. - * - * @see MDiagEngineCommon::RemoveFromConfigListL - */ - virtual void RemoveFromConfigListL( TConfigListType aListType, const TDesC& aText ); - - /** - * Create a common dialog. - * @see MDiagEngineCommon::CreateCommonDialogL - */ - virtual CAknDialog* CreateCommonDialogLC( TDiagCommonDialog aDialogType, - TAny* aInitData ); - - /** - * Stop watchdog activity temporarily. - * @see MDiagEngineCommon::StopWatchdogTemporarily - */ - virtual void StopWatchdogTemporarily(); - - /** - * Check if current engine is being executed with dependency disabled. - * @see MDiagEngineCommon::IsDependencyDisabled - */ - virtual TBool IsDependencyDisabled() const; - - /** - * Get custom execution parameter. - * @see MDiagEngineCommon::CustomParam - */ - virtual TAny* CustomParam() const; - - /** - * Send a command to application. - * @see MDiagEngineCommon::ExecuteAppCommandL - */ - virtual void ExecuteAppCommandL( TDiagAppCommand aCommand, - TAny* aParam1, - TAny* aParam2 ); - -private: // from MDiagExecPlanEntryImplObserver - /** - * Observe plugin execution progress - * @see MDiagExecPlanEntryImplObserver::ExecPlanEntryProgressL - */ - virtual void ExecPlanEntryProgressL( CDiagExecPlanEntryImpl& aSender, - TUint aCurrentStep, - TUint aTotalSteps ); - /** - * Observe plugin execution completion - * @see MDiagExecPlanEntryImplObserver::ExecPlanEntryExecutedL - */ - virtual void ExecPlanEntryExecutedL( CDiagExecPlanEntryImpl& aSender ); - - /** - * Observer critical error from plug-in execution entry. - * @see MDiagExecPlanEntryImplObserver::ExecPlanEntryCriticalError - */ - virtual void ExecPlanEntryCriticalError( TInt aError ); - -private: // from DiagFwInternal::MStateMachineObserver - /** - * Handle state transition - * - * @see MDiagEngineStateMachineObserver::HandleStateChangedL - */ - virtual void HandleStateChangedL( DiagFwInternal::TState aPreviousState, - DiagFwInternal::TState aCurrentState, - const DiagFwInternal::CEventBasic& aEventPreview ); - - /** - * Handle event. - * - * @see MDiagEngineStateMachineObserver::HandleEventL - */ - virtual void HandleEventL( DiagFwInternal::CEventBasic& aEvent ); - - /** - * Handle error. - * - * @see MDiagEngineStateMachineObserver::HandleError - */ - virtual DiagFwInternal::TState HandleError( DiagFwInternal::TState aCurrentState, - TInt aError ); - -private: // From MDiagEngineCallHandlerObserver - /** - * Handle call handling state change. - * - * @see MDiagEngineCallHandlerObserver::CallHandlerStateChangedL - */ - virtual void CallHandlerStateChangedL( TDiagEngineCallHandlerState aState ); - -private: // from CActive - /** - * RunL from CActive - * - * @see CActive::RunL - */ - virtual void RunL(); - - /** - * DoCancel from CActive - * - * @see CActive::DoCancel - */ - virtual void DoCancel(); - - /** - * Handle error - * - * @see CActive::RunError - */ - virtual TInt RunError( TInt aError ); - -private: // Private Constructors - /** - * C++ Constrctor - * - * @param aViewAppUi - Reference to Appui. - * @param aObserver - Reference to engine observer. (Generall app) - * @param aDbSession - Session to the database. - * @param aPluginPool - Reference to plug-in pool. - * @param aDisableDependency - Whether to disable dependency check. - * @param aIncompleteRecordUid - Uid to the record to resume. - * If this UID is aIncompleteRecordUid == TUid::Null(), it will create - * a new record. - */ - CDiagEngineImpl( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool ); - - /** - * Second phase constructor for creating a new record. - * - * @param aDisableDependency - Whether to disable dependency check - * @param aExecutionBatch - Array of plug-in uids to execute - */ - void ConstructNewRecordL( TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ); - - /** - * Second phase constructor for resuming incomplete record. - * - * @param aIncompleteRecordUid - Uid of DB record to resume from. - */ - void ConstructIncompleteRecordL( TUid aIncompleteRecordUid ); - - /** - * Second phase constructor common. - * Initializes items that are common to both new session and resuming session. - */ - void ConstructCommonL(); - -private: // Event handlers - /** - * State handler function for EStateCreatingPlan - * - * @param aEvent - Event to handle. - */ - void HandleEventInCreatingPlanStateL( DiagFwInternal::CEventBasic& aEvent ); - - /** - * State handler function for EStateRunning - * - * @param aEvent - Event to handle. - */ - void HandleEventInRunningStateL( DiagFwInternal::CEventBasic& aEvent ); - - /** - * State handler function for EStateCancelAll - * - * @param aEvent - Event to handle. - */ - void HandleEventInCancelAllStateL( DiagFwInternal::CEventBasic& aEvent ); - - /** - * State handler function for EStateSuspended - * - * @param aEvent - Event to handle. - */ - void HandleEventInSuspendedStateL( DiagFwInternal::CEventBasic& aEvent ); - - /** - * State handler function for EStateFinalizing - * - * @param aEvent - Event to handle. - */ - void HandleEventInFinalizingStateL( DiagFwInternal::CEventBasic& aEvent ); - - /** - * State handler function for EStateStopped - * - * @param aEvent - Event to handle. - */ - void HandleEventInStoppedStateL( DiagFwInternal::CEventBasic& aEvent ); - -private: // Other private functions - /** - * Start creating execution plan - */ - void StartCreateExecutionPlanL(); - - /** - * Handle Plan created event - */ - void HandlePlanCreatedL(); - - /** - * Notify test progress event to engine observer - * - * @param aEvent - test progress event. - */ - void NotifyTestProgressL( DiagFwInternal::CEventTestProgress& aEvent ); - - /** - * Report plug-in execution result to observer and continue to the next test. - * - * @param aError - Error code to report to observer. - * @param aResult - result to report to observer. - */ - void NotifyResultAndContinueL( TInt aError, CDiagResultsDatabaseItem* aResult ); - - /** - * Commit db record to DB. - * - */ - void CommitResultsToDb(); - - /** - * Notify observer that last plugin is completed and engine is now stopped. - * This could also mean that execution has failed. - * - * @param aEvent - last completion event - */ - void NotifyLastPluginCompletedL( DiagFwInternal::CEventSendCompletion& aEvent ); - - /** - * Execute next plugin in the plan - * - */ - void ExecuteNextPluginL(); - - /** - * Suspend engine - * - * @param aReason - Reason for suspending. - */ - void DoSuspendL( MDiagEngineObserver::TSuspendReason aReason ); - - /** - * Add event to state machine. - * This functions makes sure that correct resume event is added to - * the state machine depending on the previous state. - * @param aReason - Resume reason. - */ - void AddResumeEventL( MDiagEngineObserver::TResumeReason aReason ); - - /** - * Resume engine - * - */ - void DoResumeL(); - - /** - * Handle Skip - * - */ - void HandleSkipL(); - - /** - * Handle cancelling of all plug-ins - * - */ - void HandleCancelAllL(); - - /** - * Start delay timer for test plugin - * - * @param aPlanEntry - test plugin entry in plan to execute. - */ - void StartTimerForDelayingTestL( CDiagExecPlanEntryImpl& aPlanEntry ); - - /** - * Start Executing a test plug-in - * - * @param aPlanEntry - test plugin entry in plan to execute. - */ - void DoExecuteTestPluginL( CDiagExecPlanEntryImpl& aPlanEntry ); - - /** - * Start Executing a suite plug-in - * - * @param aPlanEntry - suite plugin entry in plan to execute. - */ - void DoExecuteSuitePluginL( CDiagExecPlanEntryImpl& aPlanEntry ); - - /** - * Callback function for plugin delay timer expiration. - * - * @param aPtr - pointer to "this" - */ - static TInt PluginDelayTimerExpiredL( TAny* aPtr ); - - /** - * Callback function for watchdog timer expiration. - * - * @param aPtr - pointer to "this" - */ - static TInt WatchdogTimerExpiredL( TAny* aPtr ); - - /** - * Handle watchdog time expiration. - * - * @param aEvent - Watchdog event. - */ - void HandleWatchdogTimeoutL( DiagFwInternal::CEventWatchdog& aEvent ); - - /** - * Function to stop currently executing plugin - * - * @param aStopMode - Reason for stopping the execution. - * @param aIsWatchdog - ETrue if this is because of watchdog timeout. - * @return Test Result. NULL if plug-in was a suite. Ownership transferred - * to caller. - */ - CDiagResultsDatabaseItem* StopCurrentPluginL( TCancelMode aStopMode, - TBool aIsWatchdog ); - - /** - * Function to stop currently executing test plugin - * - * @param aStopMode - Reason for stopping the execution. - * @param aIsWatchdog - ETrue if this is because of watchdog timeout. - * @return Test Result. NULL if plug-in was a suite. Ownership transferred - * to caller. - */ - CDiagResultsDatabaseItem* StopCurrentTestPluginL( TCancelMode aStopMode, - TBool aIsWatchdog ); - - /** - * Function to stop currently executing suite plugin - * - * @param aStopMode - Reason for stopping the execution. - * @param aIsWatchdog - ETrue if this is because of watchdog timeout. - */ - void StopCurrentSuitePluginL( TCancelMode aStopMode, TBool aIsWatchdog ); - - /** - * Function to create test stop reason based on input parameter - * - * @param aStopMode - Reason for stopping the execution. - * @param aIsWatchdog - ETrue if this is because of watchdog timeout. - * @return Test stop reason - */ - MDiagTestPlugin::TStopReason TranslateTestStopReason( TCancelMode aStopMode, - TBool aIsWatchdog ); - - /** - * Function to create suite stop reason based on input parameter - * - * @param aStopMode - Reason for stopping the execution. - * @param aIsWatchdog - ETrue if this is because of watchdog timeout. - * @return Suite stop reason - */ - MDiagSuitePlugin::TStopReason TranslateSuiteStopReason( TCancelMode aStopMode, - TBool aIsWatchdog ); - - /** - * Function to create database result type based on input parameter - * - * @param aStopMode - Reason for stopping the execution. - * @param aIsWatchdog - ETrue if this is because of watchdog timeout. - * @return Database result type. - */ - CDiagResultsDatabaseItem::TResult ConvertToDbResult( TCancelMode aStopMode, - TBool aIsWatchdog ); - - /** - * Create database result item with just result. - * - * @param aCurrentItem - Currently executing item - * @param aResult - Result type - * @return Database result item. Ownership transferred to caller. - */ - CDiagResultsDatabaseItem* CreateDbItemL( - CDiagExecPlanEntryImpl& aCurrentItem, - CDiagResultsDatabaseItem::TResult aResultType ) const; - - /** - * Call TestSessionEndL on all plug-ins. - * - */ - void NotifyPluginsOfTestSessionEnd(); - - /** - * Stops all active requests - */ - void StopAllRequests(); - - /** - * Cleans up incomplete test session during engine destruction. - * This function should be called only from destructor. - */ - void CleanupIncompleteTestSession(); - - /** - * Finalizes test session. This will notify plug-ins, finalize DB record and - * notify application. - */ - void FinalizeTestSessionL(); - -private: // private data - /** - * iViewAppUi - Reference to View App Ui. Passed to plug-ins to allow - * view switching. - */ - CAknViewAppUi& iViewAppUi; - - /** - * iObserver - reference to engine observer. - */ - MDiagEngineObserver& iObserver; - - /** - * iDbSession - Database session. - */ - RDiagResultsDatabase& iDbSession; - - /** - * iDbRecord - New record created for current test session. - */ - RDiagResultsDatabaseRecord iDbRecord; - - /** - * iRecordId - New record id created for current test session. - */ - TUid iRecordId; - - /** - * iPluginPool - Reference to the plug-in pool. - */ - CDiagPluginPool& iPluginPool; - - /** - * iCustomParam - Custom parameter. - * Ownership - Client. - */ - TAny* iCustomParam; - - /** - * iBatch - list of items to execute. - * Ownership - Individual elements are owned by plug-in pool. - */ - RPointerArray< MDiagPlugin > iBatch; - - /** - * iWatchdogTimer - Timer for watchdog. - * Ownership - this - */ - CPeriodic* iWatchdogTimer; - - /** - * iLastWatchdogValue - Last watchdog value set. - * This will be used when ResetWatchdog() is called without - * any value specified. - */ - TInt iLastWatchdogValue; - - /** - * iPlan - Execution plan - * Ownership - this - */ - CDiagPluginExecPlanImpl* iPlan; - - /** - * iStateMachine - State machine. - * Ownership - this - */ - DiagFwInternal::CStateMachine* iStateMachine; - - /** - * iSuspendedPrevState - previous state just before suspended. - * This is used to resume to correct state. - */ - DiagFwInternal::TState iSuspendedPrevState; - - /** - * iSuspendReason - Reason why engine was suspended. - */ - MDiagEngineObserver::TSuspendReason iSuspendReason; - - /** - * iResumeReason - Reason why engine is resumed. - */ - MDiagEngineObserver::TResumeReason iResumeReason; - - /** - * iSuspendedResult - Temporary result from test plug-in when engine is - * suspended. When test is suspended just before being able to save the - * test result, its result is saved here, so that when resumed - * it will use this result instead of re-executing. - * Ownership - this - */ - CDiagResultsDatabaseItem* iSuspendedResult; - - /** - * iCallHandler - Handles call states - * Ownership - this - */ - CDiagEngineCallHandler* iCallHandler; - - /** - * iContinueIncompleteRecord - Indicates whether engine is supposed to - * continue from an incomplete record. - * ETrue if engine is working with incomplete record. - * EFalse if engine is working with a new record. - */ - TBool iContinueIncompleteRecord; - - /** - * iEngineConfig - Confiugration information about engine. - */ - TDiagEngineConfig iEngineConfig; - - /** - * iEngineError - Error code of engine. - */ - TInt iEngineError; - }; - -#endif // DIAGENGINEIMPL_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagengineobserver.h --- a/devicediagnosticsfw/diagframework/inc/diagengineobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,149 +0,0 @@ -/* -* Copyright (c) 2007 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: Observer interface to use with CDiagEngine -* -*/ - - -#ifndef DIAGENGINEOBSERVER_H -#define DIAGENGINEOBSERVER_H - - -// SYSTEM INCLUDES -#include // TUint -#include // TDiagCommonDialog -#include // TDiagAppCommand - -// FORWARD DECLARATION -class CDiagResultsDatabaseItem; -class CAknDialog; - -/** -* Diagnostics Framework Engine Observer -* -* This interface is called by CDiagEngine to notify its client -* of progress of requests made to engine. -* -* @since S60 v5.0 -*/ -class MDiagEngineObserver - { -public: // Public Data types - enum TSuspendReason - { - ESuspendByClient = 0, - ESuspendByPhoneCall - }; - - enum TResumeReason - { - EResumedByClient = 0, - EAutoResumedByCallHangup - }; - -public: // Public interface - - /** - * Notify client of test execution begin. Clients can get testplan using - * CDiagEngine::ExecutionPlanL. - */ - virtual void TestExecutionBeginL() = 0; - - /** - * Notify client of test execution progress. - * - * @param aCurrentItemStep - Progress in current entry. - * @param aCurrentItemTotalSteps - Total steps to execute in current entry. - */ - virtual void TestExecutionProgressL( TUint aCurrentItemStep, - TUint aCurrentItemTotalSteps ) = 0; - - /** - * Notify client of execution completion of one plug-in. - * This can be either test plug-in or suite plug-in. - * - * @param aError - KErrNone - Success. - * KErrNoMemory - Out of memory. - * KErrCancel - Cancelled due to ExecutionStopL() - * - * @param aResult - Result of the test. Ownership is transferred here. - * Client must deallocate aResult to avoid memory leak. aResult is Null - * if the plug-in being executed is a suite pre/post method. - */ - virtual void TestExecutionPluginExecutedL( TInt aError, - CDiagResultsDatabaseItem* aResult ) = 0; - - /** - * Notify client of execution suspend. - * - * @param aSuspendReason - Why execution is suspended. - */ - virtual void TestExecutionSuspendedL( TSuspendReason aSuspendReason ) = 0; - - /** - * Notify client of execution resume. - * - * @param aResumeReason - Why execution is being resumed - */ - virtual void TestExecutionResumedL( TResumeReason aResumeReason ) = 0; - - /** - * Notify client of engine stopping. - * - * This indicates that engine execution has stopped. There will not be any - * further messages from engine. This could be called because all - * tests are completed, or an unrecoverable error occured during execution. - * - * Note that if cancel is called during plan creation or if plan creation - * fails, TestExecutionStoppedL() may be called withing first calling - * TestExecutionBeginL(). - * - * @param aError - Reason for engine stopping. - * a) KErrNone - All tests are successfully completed. - * b) KErrCancel - ExecutionStopL is called with ECancelAll. - * Test session cannot be resumed later. - * c) KErrArgument - Parameters passed to engine are invalid. - * d) Others - Other critical that could not be recovered occured during - * test execution. Test may be resumed later in this case. - */ - virtual void TestExecutionCompletedL( TInt aError ) = 0; - - /** - * Create a common Dialog. - * Application should create an instance of requested dialog. - * For available dialog types, @see DiagCommonDialog.h - * - * @param aDialogType - Type of dialog to create. - * @param aData - Initialization parameter. Ownership is passed to engine. - * @return a pointer to newly created dialog. Ownership is passed to caller. - */ - virtual CAknDialog* CreateCommonDialogLC( TDiagCommonDialog aDialogType, - TAny* aInitData ) = 0; - - /** - * Execute a command from plug-in. Parameters are identical to - * MDiagEngineCommon::ExecuteAppCommandL(). - * @see MDiagEngineCommon::ExecuteAppCommandL() - * @see TDiagAppCommand - */ - virtual void ExecuteAppCommandL( TDiagAppCommand aCommand, - TAny* aParam1, - TAny* aParam2 ) = 0; - }; - - -#endif // DIAGENGINEOBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagenginestatemachine.h --- a/devicediagnosticsfw/diagframework/inc/diagenginestatemachine.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,162 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for DiagFwInternal::CStateMachine -* -*/ - - -#ifndef DIAGENGINESTATEMACHINE_H -#define DIAGENGINESTATEMACHINE_H - -// system include -#include - -// user include -#include "diagenginestates.h" // DiagFwInternal::TState -#include "diagengineevents.h" // DiagFwInternal::TEvent - - -namespace DiagFwInternal - { -// forward declaration -class CEventBasic; -class MStateMachineObserver; - -/** -* Diagnostics Framework Engine State Machine -* -* This class implements state machine for CDiagEngine. -* -*/ -NONSHARABLE_CLASS( CStateMachine ) : public CActive - { -public: - /** - * Two-phased constructor. - * - * @param aObserver Engine observer. - * @return New instance of CStateMachine - */ - static CStateMachine* NewL( MStateMachineObserver& aObserver ); - static CStateMachine* NewLC( MStateMachineObserver& aObserver ); - - /** - * Queue a new event into event queue. - * - * @param aEvent New event. CStateMachine will own - * the object from this point on. - * It will be freed by CStateMachine when - * the event is processed. - */ - void AddEventL( CEventBasic* aEvent ); - - /** - * Queue a new event into event queue. - * - * @param aEventId Event Id of new event. CEventBasic will be created. - */ - void AddEventL( TEvent aEventId ); - - /** - * Current State. - * - * @return Current state. - */ - TState CurrentState() const; - - /** - * Handle error. This should be called when an abnormal error - * occurs (e.g. leave that cannot be handled.) - * - * @param aError - Error number. - */ - void HandleError( TInt aError ); - - /** - * State Name. - * Debugging purpose only. In release build, this function will - * return empty string. - * - * @param aState - a state - * @return Name of the state - */ - const TDesC& StateName( TState aState ) const; - - /** - * C++ Destructor - */ - ~CStateMachine(); - -protected: // from CActive - /** - * @see CActive::RunL - */ - virtual void RunL(); - - /** - * @see CActive::DoCancel - */ - virtual void DoCancel(); - - /** - * @see CActive::RunError - */ - virtual TInt RunError( TInt aError ); - -private: // private constructors - /** - * C++ constructor - */ - CStateMachine( MStateMachineObserver& iObserver ); - - /** - * 2nd phase constructor - * - */ - virtual void ConstructL(); - -private: // private functions - /** - * Match states in state table. - */ - TState CheckStateTable( TState aCurrState, TEvent aEvent ) const; - - /** - * Complete request and set itself to be active so that the next - * item in the queue can be executed. - */ - void ReactivateQueue(); - - -private: // private data - /** - * iObserver - Observer. - */ - MStateMachineObserver& iObserver; - - /** - * iEventQueue - array of events to process. - */ - RPointerArray iEventQueue; - - /** - * iState - Current state. - */ - TState iState; - }; - } // end of namespace DiagFwInternal -#endif // DIAGENGINESTATEMACHINE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagenginestatemachineobserver.h --- a/devicediagnosticsfw/diagframework/inc/diagenginestatemachineobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for MStateMachineObserver -* -*/ - - -#ifndef DIAGENGINESTATEMACHINEOBSERVER_H -#define DIAGENGINESTATEMACHINEOBSERVER_H - -// system include - -// user include -#include "diagenginestates.h" // DiagFwInternal::TState -#include "diagengineevents.h" // DiagFwInternal::TEvent - -namespace DiagFwInternal - { -// forward declaration -class CEventBasic; - -/** - * Diagnostics Framework Engine State Machine Observer - * - * This interface is called by CDiagEngineStateMachine to notify - * its client of state changes and events. - * - * @since S60 v5.0 - */ -class MStateMachineObserver - { -public: - /** - * Notify state machine client that state machine has entered a new state. - * - * @param aPreviousState Previous state. - * @param aCurrentState Current state. (new state.) - * @param aEventPreview Event that caused state change. Note that - * this is just a preview. HandleEventL() will be called with the same - * event later on. - */ - virtual void HandleStateChangedL( TState aPreviousState, - TState aCurrentState, - const CEventBasic& aEventPreview ) = 0; - - /** - * Notify state machine client that a new event is received. - * - * @param aEvent New event. - */ - virtual void HandleEventL( CEventBasic& aEvent ) = 0; - - /** - * Notify state machine client that an abnormal error has occured. - * Client can handle the error and return appropriate error state. - * - * @param aCurrentState Current state. - * @param aError Error number. - * @return TState New state to go to. - */ - virtual TState HandleError( TState aCurrentState, TInt aError ) = 0; - }; - } // end of namespace DiagFwInternal - -#endif // DIAGENGINESTATEMACHINEOBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagenginestates.h --- a/devicediagnosticsfw/diagframework/inc/diagenginestates.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for DiagFwInternal::TState -* -*/ - - - -#ifndef DIAGENGINESTATES_H -#define DIAGENGINESTATES_H - -namespace DiagFwInternal - { -enum TState - { - EStateAny = -1, - EStateNotReady, - EStateCreatingPlan, - EStateRunning, - EStateCancelAll, - EStateSuspended, - EStateFinalizing, - EStateStopped - }; - } // end of namespace DiagFwInternal - -#endif // DIAGENGINESTATES_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagenginewatchdogtypes.h --- a/devicediagnosticsfw/diagframework/inc/diagenginewatchdogtypes.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for TDiagEngineWatchdogTypes -* -*/ - - - -#ifndef DIAGENGINEWATCHDOGTYPES_H -#define DIAGENGINEWATCHDOGTYPES_H - -/** -* These types indicate to engine how long it should wait between each -* test execution progress reports. -* -* Typically, if a test step requires user interaction, engine should wait -* longer before stopping its execution. For non-interactive steps, -* engine should not wait as long. -* -* The actual values are specifed by cenrep key value owned by engine. -* -* Values: -* EDiagEngineWatchdogTypeInteractive - Indicates that engine should -* use interactive watchdog timer value. -* -* EDiagEngineWatchdogTypeAutomatic - Indicates that engine should -* use non-interactive watchdog timer value. -* -* @since S60 3.2 -*/ -enum TDiagEngineWatchdogTypes - { - EDiagEngineWatchdogTypeInteractive = 0, - EDiagEngineWatchdogTypeAutomatic - }; - -#endif // DIAGENGINEWATCHDOGTYPES_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagexecplanentry.h --- a/devicediagnosticsfw/diagframework/inc/diagexecplanentry.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagExecPlanEntry -* -*/ - - -#ifndef DIAGEXECPLANENTRY_H -#define DIAGEXECPLANENTRY_H - - -// SYSTEM INCLUDE FILES -#include // TBool - -// FORWARD DECLARATION -class MDiagPlugin; - -/** -* Diagnostics Plug-in Execution Plan Entry. -* -* This class provides the interface for test execution plan entries. -* -* @since S60 v5.0 -* -*/ -class MDiagExecPlanEntry - { -public: // data types - /** - * Item execution state. - */ - enum TState - { - EStateQueued = 0, // Execution has not begun. - EStateInitDelay, // Waiting for initial delay timer to expire - EStateRunning, // RunTestL() is called. Waiting for completion. - EStateSuspended, // Execution is suspended - EStateStopped, // Plugin is stopped, but result not logged yet. - EStateCompleted // Result is logged - }; - -public: - /** - * Plugin associated with the entry - * @return Reference to the plugin. - */ - virtual const MDiagPlugin& Plugin() const = 0; - - /** - * Returns whether item is being executed to satisfy dependency or not. - * @return ETrue if item is being executed to satisfy dependency. - * EFalse if item is being executed explicitly. - */ - virtual TBool AsDependency() const = 0; - - /** - * Item State - * @return Current state of execution plan item - */ - virtual TState State() const = 0; - - }; - -#endif // DIAGEXECPLANENTRY_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagexecplanentryimpl.h --- a/devicediagnosticsfw/diagframework/inc/diagexecplanentryimpl.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,297 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagExecPlanEntryImpl -* -*/ - - -#ifndef DIAGEXECPLANENTRYIMPL_H -#define DIAGEXECPLANENTRYIMPL_H - -// SYSTEM INCLUDE FILES -#include // CBase -#include // MDiagExecPlanEntry -#include // MDiagEngineCommon::TCancelMode - -class MDiagExecPlanEntryImplObserver; -class TDiagEngineConfig; - -/** -* Diagnostics Plug-in Execution Plan Entry Implementation. -* -* This class implements MDiagExecPlanEntry. It is meant to be private -* to Diagnostics Framework and not exported. -* -* @since S60 v5.0 -* -*/ -NONSHARABLE_CLASS( CDiagExecPlanEntryImpl ) : public CActive, - public MDiagExecPlanEntry - { -public: // Data Types - /** - * TType - Execution plan entry type. - * ETypeTestExec - Test plugin execution. - * ETypeSuitePrepare - Suite prepare execution - * ETypeSuiteFinalize - Suite finalize execution - * ETypeSuiteUnexpanded - Suite before being expanded into - * ETypeSuitePrepare or ETypeSuiteFinalize - */ - enum TType - { - ETypeTestExec = 0, - ETypeSuitePrepare, - ETypeSuiteFinalize, - ETypeSuiteUnexpanded, - }; - -public: // Public API - /** - * C++ destructor - */ - virtual ~CDiagExecPlanEntryImpl(); - - /** - * Plugin associated with the entry - * @return Reference to the plugin. - */ - MDiagPlugin& Plugin(); //lint !e1411 This is proper overload - - /** - * Get item type - * @return current item type - */ - TType Type() const; - - /** - * Update item type - * @param aType - new type. - */ - void SetType( TType aType ); - - /** - * Update dependency - * @param aAsDependency - ETrue if item is being executed to satisfy - * dependency. EFalse otherwise. - */ - void SetAsDependency( TBool aAsDependency ); - - /** - * Handle cancel execution by client. Calling this will case IsStoppedByClient() - * to return ETrue. - * - * @param aCancelMode - Cancellation mode. - */ - void StopExecutionByClientL( MDiagEngineCommon::TCancelMode aCancelMode ); - - /** - * Check if test was stopped by client. - * - * @return ETrue if it was stopped by StopExecutionByClientL call. - * EFalse otherwise. - */ - TBool IsStoppedByClient() const; - - /** - * Reset Watchdog to last known value. - * If watchdog was suspended, it will resume. - * If watchdog was not running, this does nothing. - */ - void ResetWatchdog(); - - /** - * Reset Watchdog to one of the default based on watchdog type - * If watchdog was suspended, it will resume. - * If watchdog was not running, this does nothing. - * @param aWatchdogType - type of watchdog to use. - */ - void ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType ); - - /** - * Reset watchdog to a specific value. - * If watchdog was suspended, it will resume. - * If watchdog was not running, this does nothing. - * @param aTimer value - watchdog timer value. - */ - void ResetWatchdog( TTimeIntervalMicroSeconds32 aWatchdogValue ); - - /** - * Stop watchdog temporarily. - */ - void StopWatchdogTemporarily(); - -public: // APIs to be implemented by derived class - /** - * Execute plan entry. To cancel request, call Cancel() - */ - virtual void ExecuteL() = 0; - - /** - * Suspend execution. - */ - virtual void SuspendL() = 0; - - /** - * Resume suspended execution. - */ - virtual void ResumeL() = 0; - -public: // From MDiagExecPlanEntry - /** - * Plugin associated with the entry - * @see MDiagExecPlanEntry::Plugin - */ - const MDiagPlugin& Plugin() const; - - /** - * Returns whether item is being executed to satisfy dependency or not. - * @see MDiagExecPlanEntry::AsDepndent - */ - TBool AsDependency() const; - - /** - * Item State - * @see MDiagExecPlanEntry::State - */ - TState State() const; - - -protected: // API for derived class - /** - * C++ Constructor - * This is protected since it should not be created directly. - * Use one of the derived class version. - * - * @param aEngine - Reference to the engine. - * @param aEngineConifg - Reference to the engine configuration. - * @param aPlugin - Reference to the plug-in. - * @param aAsDependent - Whether it is being executed as dependent test. - * @param aType - Type of entry. @see CDiagExecPlanEntryImpl::TType - */ - CDiagExecPlanEntryImpl( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagPlugin& aPlugin, - TBool aAsDependency, - TType aType ); - - /** - * Get Engine reference - * - * @return reference to engine. - */ - MDiagEngineCommon& Engine(); - - /** - * Get Engine configuration reference - * - * @return Reference to engine configuration. - */ - const TDiagEngineConfig& EngineConfig() const; - - /** - * Get observer. - * - * @return Reference to plan entry observer. - */ - MDiagExecPlanEntryImplObserver& Observer(); - - /** - * Change current state to a new state. - * @param aState - new state to set to. - */ - void ChangeStateL( TState aState ); - -protected: // API to be implemented by derived class. - /** - * Handle cancel execution by client. - * - * @param aCancelMode - Cancellation mode. - */ - virtual void DoStopExecutionByClientL( MDiagEngineCommon::TCancelMode aCancelMode ) = 0; - - /** - * Watchdog timeout stop. - */ - virtual void StopExecutionByWatchdogL() = 0; - - -private: // private methods - /** - * Watchdog timer timeout handler. - * @param aPtr - pointer to *this* object. - */ - static TInt WatchdogTimerExpiredL( TAny* aPtr ); - -private: // Private data - /** - * Engine - */ - MDiagEngineCommon& iEngine; - - /** - * Engine Configuration. - */ - const TDiagEngineConfig& iEngineConfig; - - /** - * Observer - */ - MDiagExecPlanEntryImplObserver& iObserver; - - /** - * Plug-in - */ - MDiagPlugin& iPlugin; - - /** - * Indicates whether it is being executed as dependent test. - */ - TBool iAsDependency; - - /** - * Indicates whether execution is stopped by client. - */ - TBool iStoppedByClient; - - /** - * Current item state - * @see MDiagExecPlanEntry::TState - */ - TState iState; - - /** - * Current item type - * @see CDiagExecPlanEntryImpl::TType - */ - TType iType; - - /** - * Watchdog timer value. It is a microsecond value to be used with - * watchdog timer. - */ - TTimeIntervalMicroSeconds32 iWatchdogValue; - - /** - * Watchdog timer - * Owership: this. - */ - CPeriodic* iWatchdogTimer; - - }; - -#endif // DIAGEXECPLANENTRY_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagexecplanentryimplobserver.h --- a/devicediagnosticsfw/diagframework/inc/diagexecplanentryimplobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for MDiagExecPlanEntryImplObserver.h -* -*/ - - -#ifndef DIAGEXECPLANENTRYIMPLOBSERVER_H -#define DIAGEXECPLANENTRYIMPLOBSERVER_H - - -class CDiagExecPlanEntryImpl; - -/** -* Diagnostics Plug-in Execution Plan Entry Observer Interface -* -* This interface is called by CDiagExecPlanEntryImpl and its derived classes -* to notify progress of plugin execution. -* -* @since S60 v5.0 -* -*/ -class MDiagExecPlanEntryImplObserver - { -public: - /** - * Notify plugin execution progress - * @param aSender - Reference to the plan entry that caused this event. - * @param aCurrentStep - current execution step. - * @param aTotalSteps - Total number of steps to execute. - */ - virtual void ExecPlanEntryProgressL( CDiagExecPlanEntryImpl& aSender, - TUint aCurrentStep, - TUint aTotalSteps ) = 0; - - /** - * Notify plugin execution completion. - * This is called only when it is completed normally. - * It will not becalled if execution is interrupted by watchdog or by client. - * @param aSender - Reference to the plan entry that caused this event. - */ - virtual void ExecPlanEntryExecutedL( CDiagExecPlanEntryImpl& aSender ) = 0; - - /** - * Notify that a critical error has occured. - * This is called when there is a critical execution error - * that cannot be recovered. Engine should not execute any - * more plug-ins after this point. - * @param aError - Error number. - */ - virtual void ExecPlanEntryCriticalError( TInt aError ) = 0; - }; - -#endif // DIAGEXECPLANENTRYIMPLOBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagexecplanentryimplsuite.h --- a/devicediagnosticsfw/diagframework/inc/diagexecplanentryimplsuite.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,172 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagExecPlanEntryImplSuite -* -*/ - - -#ifndef DIAGEXECPLANENTRYIMPLSUITE_H -#define DIAGEXECPLANENTRYIMPLSUITE_H - -// SYSTEM INCLUDE FILES -#include // MDiagSuitePlugin::TStopReason -#include // MDiagSuiteObserver - -// USER INCLUDE FILES -#include "diagexecplanentryimpl.h" // CDiagExecPlanEntryImpl - -// FORWARD DECLARATION -class MDiagSuitePlugin; - -/** -* Diagnostics Plug-in Execution Plan Entry Implementation for Suite plugin -* -* This class implements CDiagExecPlanEntryImplSuite. It is meant to be private -* to Diagnostics Framework and not exported. -* -* @since S60 v5.0 -* -*/ -NONSHARABLE_CLASS( CDiagExecPlanEntryImplSuite ) : public CDiagExecPlanEntryImpl, - public MDiagSuiteObserver - { -public: // Public constructors and destructors - /** - * Symbian two-phased constructor - * - * @param aEngine - Diagnostics Engine - * @param aEngineConfig - Engine configuration. - * @param aObserver - Execution plan entry observer. - * @param aPlugin - Suite plug-in that this plan entry represents. - * @param aAsDependency - Whether this item is being executed as dependency or not. - * @param aType - Type of execution. @see CDiagExecPlanEntryImpl::TType - * - * @return a new instance of CDiagExecPlanEntryImplSuite - */ - static CDiagExecPlanEntryImplSuite* NewL( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagSuitePlugin& aPlugin, - TBool aAsDependency, - TType aType ); - - /** - * Symbian two-phased constructor - * This will leave a entry in clean up stack. - * - * @param aEngine - Diagnostics Engine - * @param aEngineConfig - Engine configuration. - * @param aObserver - Execution plan entry observer. - * @param aPlugin - Suite plug-in that this plan entry represents. - * @param aAsDependency - Whether this item is being executed as dependency or not. - * @param aType - Type of execution. @see CDiagExecPlanEntryImpl::TType - * - * @return a new instance of CDiagExecPlanEntryImplSuite - */ - static CDiagExecPlanEntryImplSuite* NewLC( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagSuitePlugin& aPlugin, - TBool aAsDependency, - TType aType ); - - /** - * C++ destructor - */ - virtual ~CDiagExecPlanEntryImplSuite(); - -public: // new public api - /** - * Get suite plugin associated. - */ - MDiagSuitePlugin& SuitePlugin(); - -private: // from CActive - /* - * @see CActive::RunL - */ - virtual void RunL(); - - /* - * @see CActive::DoCancel - */ - virtual void DoCancel(); - - -private: // from CDiagExecPlanEntryImpl - /** - * @see CDiagExecPlanEntryImpl::ExecuteL - */ - virtual void ExecuteL(); - - /** - * @see CDiagEXecPlanEntryImpl::StopExecutionByWatchdogL - */ - virtual void StopExecutionByWatchdogL(); - - /** - * @see CDiagEXecPlanEntryImpl::StopExecutionByClientL - */ - virtual void DoStopExecutionByClientL( MDiagEngineCommon::TCancelMode aCancelMode ); - - /** - * @see CDiagEXecPlanEntryImpl::SuspendL - */ - virtual void SuspendL(); - - /** - * @see CDiagEXecPlanEntryImpl::ResumeL - */ - virtual void ResumeL(); - - -private: // from MDiagSuiteObserver - /** - * Notify engine of suite plug-in execution completion. - * - * @see MDiagSuitePlugin::ContinueExecutionL - */ - virtual void ContinueExecutionL( const MDiagSuitePlugin& aSender ); - - -private: // private methods - /** - * C++ constructor - * - * @param aEngine - Diagnostics Engine - * @param aEngineConfig - Engine configuration. - * @param aObserver - Execution plan entry observer. - * @param aPlugin - Suite plug-in that this plan entry represents. - * @param aAsDependency - Whether this item is being executed as dependency or not. - * @param aType - Type of execution. @see CDiagExecPlanEntryImpl::TType - */ - CDiagExecPlanEntryImplSuite( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagSuitePlugin& aPlugin, - TBool aAsDependency, - TType aType ); - - /** - * Stop suite plug-in. - * - * @param aStopReason - Stop reason to pass to suite. - */ - void StopSuitePluginL( MDiagSuitePlugin::TStopReason aStopReason ); - }; - -#endif // DIAGEXECPLANENTRYIMPLSUITE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagexecplanentryimpltest.h --- a/devicediagnosticsfw/diagframework/inc/diagexecplanentryimpltest.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,254 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagExecPlanEntryImplTest -* -*/ - - -#ifndef DIAGEXECPLANENTRYIMPLTEST_H -#define DIAGEXECPLANENTRYIMPLTEST_H - -// SYSTEM INCLUDE FILES -#include // CDiagResultsDatabaseItem::TResult -#include // MDiagTestObserver -#include // MDiagTestPlugin::TStopReason - -// USER INCLUDE FILES -#include "diagexecplanentryimpl.h" // CDiagExecPlanEntryImpl - -// FORWARD DECLARATION -class MDiagTestPlugin; - -/** -* Diagnostics Plug-in Execution Plan Entry Implementation for test plugin -* -* This class implements CDiagExecPlanEntryImplTest. It is meant to be private -* to Diagnostics Framework and not exported. -* -* @since S60 v5.0 -* -*/ -NONSHARABLE_CLASS( CDiagExecPlanEntryImplTest ): public CDiagExecPlanEntryImpl, - public MDiagTestObserver - { -public: // Public constructors and destructors - /** - * Symbian two-phased constructor - * - * @param aEngine - Diagnostics Engine - * @param aEngineConig - Engine configuration. - * @param aObserver - Execution plan entry observer. - * @param aPlugin - Test plug-in that this plan entry represents. - * @param aAsDependency - Whether this item is being executed as dependency or not. - * @param aResult - Initial result. - * - * @return a new instance of CDiagExecPlanEntryImplTest - */ - static CDiagExecPlanEntryImplTest* NewL( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagTestPlugin& aPlugin, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Symbian two-phased constructor. - * This will put an entry in cleanup stack. - * - * @param aEngine - Diagnostics Engine - * @param aEngineConig - Engine configuration. - * @param aObserver - Execution plan entry observer. - * @param aPlugin - Test plug-in that this plan entry represents. - * @param aAsDependency - Whether this item is being executed as dependency or not. - * @param aResult - Initial result. - * - * @return a new instance of CDiagExecPlanEntryImplTest - */ - static CDiagExecPlanEntryImplTest* NewLC( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagTestPlugin& aPlugin, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResult ); - - /** - * C++ destructor - */ - virtual ~CDiagExecPlanEntryImplTest(); - -public: // new public api - /** - * Get test result - * @return Test result enum. - */ - CDiagResultsDatabaseItem::TResult Result() const; - - /** - * Set test result - * @param aResult - Test result. - */ - void SetResult( CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Get result database item. If cached value is available, it will use - * cached value. Otherwise, it will retrieve from database. - * @return Test result item from database. Ownership is transferred. - */ - CDiagResultsDatabaseItem* GetLastTestResultL(); - - /** - * Get test plugin associated. - * @return a reference to test plug-in that this entry represents. - */ - MDiagTestPlugin& TestPlugin(); - -private: // from CActive - /* - * @see CActive::RunL - */ - virtual void RunL(); - - /* - * @see CActive::DoCancel - */ - virtual void DoCancel(); - - /* - * @see CActive::RunError - */ - virtual TInt RunError( TInt aError ); - -private: // from CDiagExecPlanEntryImpl - /** - * @see CDiagExecPlanEntryImpl::ExecuteL - */ - virtual void ExecuteL(); - - /** - * @see CDiagExecPlanEntryImpl::StopExecutionByWatchdogL - */ - virtual void StopExecutionByWatchdogL(); - - /** - * @see CDiagExecPlanEntryImpl::DoStopExecutionByClientL - */ - virtual void DoStopExecutionByClientL( MDiagEngineCommon::TCancelMode aCancelMode ); - - /** - * @see CDiagExecPlanEntryImpl::SuspendL - */ - virtual void SuspendL(); - - /** - * @see CDiagExecPlanEntryImpl::ResumeL - */ - virtual void ResumeL(); - -private: // from MDiagTestObserver - /** - * Notify engine of test plug-in execution progress. - * @see MDiagTestObserver::TestProgressL - */ - virtual void TestProgressL( const MDiagTestPlugin& aSender, - TUint aCurrentStep ); - - /** - * Notify engine of test plug-in execution completion. - * @see MDiagTestObserver::TestExecutionCompletedL - */ - virtual void TestExecutionCompletedL( const MDiagTestPlugin& aSender, - CDiagResultsDatabaseItem* aTestResult ); - - -private: // Private methods - /** - * c++ constructor. - * - * @param aEngine - Diagnostics Engine - * @param aEngineConig - Engine configuration. - * @param aObserver - Execution plan entry observer. - * @param aPlugin - Test plug-in that this plan entry represents. - * @param aAsDependency - Whether this item is being executed as dependency or not. - * @param aResult - Initial result. - */ - CDiagExecPlanEntryImplTest( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagTestPlugin& aPlugin, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Starts executing test. - */ - void DoExecuteTestPluginL(); - - /** - * Stop test plugin - */ - CDiagResultsDatabaseItem* StopTestPluginL( MDiagTestPlugin::TStopReason aReason ); - - /** - * Handler function for initial delay timer expiration. - */ - static TInt HandleDelayTimerExpiredL( TAny* aData ); - - /** - * Stop initial delay timer. - */ - void StopInitDelayTimer(); - - /** - * Stop all active requests and timers. - */ - void StopAll(); - - /** - * Stops test execution, but test result is not reported. - */ - void StopExecutionAndIgnoreResultL(); - - /** - * Get human readable name for test result. This is meant for debugging - * purpose only. In non-debug build, it will return empty string. - */ - static const TDesC& TestResultString( CDiagResultsDatabaseItem::TResult aResult ); - - -private: // private data - /** - * Test result - */ - CDiagResultsDatabaseItem::TResult iResult; - - /** - * Plugin test initial delay timer. - * Ownership - this - */ - CPeriodic* iInitDelayTimer; - - /** - * Cached test result. This stores test result temporarily, so that database access - * could be avoided. Currently, cache will remain only for one request after - * test is completed. - * Ownership - this - */ - CDiagResultsDatabaseItem* iCachedResult; - - }; - -#endif // DIAGEXECPLANENTRYIMPLTEST_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagframework.pan --- a/devicediagnosticsfw/diagframework/inc/diagframework.pan Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2007 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: Enum definition of Framdwork Panic Codes -* -*/ - - -#ifndef DIAGFRAMEWORK_PAN -#define DIAGFRAMEWORK_PAN - -/** -* Panic Codes for Diagnostics Framework -* -* @since 5.0 -*/ -enum TDiagFrameworkPanics - { - EDiagFrameworkBadArgument = 1, // Invalid input parameter - EDiagFrameworkInvalidState = 2, // Function called in incorrect state - EDiagFrameworkInvalidEvent = 3, // Even not valid in current state. - EDiagFrameworkCorruptStateMachine = 4, // State machine may be corrupted. - EDiagFrameworkArrayBounds = 5, // Array out of bounds - EDiagFrameworkCorruptPlugin = 6, // Plug-in information is corrupted. - EDiagFrameworkNullTestResult = 7, // Test result is NULL - EDiagFrameworkInternal = 8, // Other framework internal error - EDiagFrameworkDb = 9, // Database related errors. - EDiagFrameworkPlugin = 10 // General plug-in behavior error - }; - -_LIT(KDiagFwCategory,"Diag Fw"); - -inline void Panic( TDiagFrameworkPanics aReason ) - { - User::Panic( KDiagFwCategory, aReason ); - } - -#endif // DIAGFRAMEWORK_PAN diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagframeworkdebug.h --- a/devicediagnosticsfw/diagframework/inc/diagframeworkdebug.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,192 +0,0 @@ -/* -* Copyright (c) 2007 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: Debugging trace definition for framework and plug-ins. -* -*/ - - -#ifndef DIAGFRAMEWORKDEBUG_H -#define DIAGFRAMEWORKDEBUG_H - -/** -* Diagnostics Framework Debug Traces -* -* This header file defines common debug trace macros for Diagnostics Framework. -* It is used by the diagnostics framework internally. However, it is -* recomanded that application and plug-ins use the macros defined here -* in order to allow consistent logging. -* -* Debugging messages are enabled only on non DEBUG build. -* -* These macros can be configured to use either Flogger (RFileLogger) or -* RDebug. By default, it will use RFileLogger. If RDebug trace is needed, -* uncomment //#define DIAG_DEBUG_LOG_USE_RDEBUG below. -* -* The following macros are provided by this files. -* -* LOGTEXT( aDescriptor ); -* - This prints a descriptor to log. E.g. if you have a TDesC type, then -* you can use this. e.g. -* -* void CMyClass::PrintSomeText( const TDesC& aText ) -* { -* LOGTEXT( aText ); -* } -* -* LOGSTRING( aFormat ) -* LOGSTRING2( aFormat, a ); -* LOGSTRING3( aFormat, a, b ); -* LOGSTRING4( aFormat, a, b, c ); -* LOGSTRING5( aFormat, a, b, c, d ); -* - These macros are used to print debugging messages with formatting text -* and several arguments. Formatting string is similar to printf. -* -* void CMyClass::PrintSomeText( TInt aInt, TInt aHex ) -* { -* LOGSTRING( "CMyClass::PrintSomeText() Enter" ); -* LOGSTRING3( "CMyClass::PrintSomeText() aInt = %d, aHex = 0x%08x", -* aInt, -* aHex ); -* } -* -*/ - -#define ENABLE_DIAG_DEBUG_LOG // Enable diagnostics debug log -//#define DIAG_DEBUG_LOG_USE_RDEBUG // Use RDebug::Print instead of flogger. - -#if ( defined _DEBUG && defined ENABLE_DIAG_DEBUG_LOG ) - -#ifdef DIAG_DEBUG_LOG_USE_RDEBUG - -#include // RDebug - -#define LOGTEXT( aDescriptor ) \ - { \ - RDebug::Print( aDescriptor ); \ - } - -#define LOGSTRING( aFormat ) \ - { \ - _LIT( KFormat, aFormat ); \ - RDebug::Print( KFormat ); \ - } - -#define LOGSTRING2( aFormat, a ) \ - { \ - _LIT( KFormat, aFormat ); \ - RDebug::Print( KFormat, a ); \ - } - -#define LOGSTRING3( aFormat, a, b ) \ - { \ - _LIT( KFormat, aFormat ); \ - RDebug::Print( KFormat, a, b ); \ - } - -#define LOGSTRING4( aFormat, a, b, c ) \ - { \ - _LIT( KFormat, aFormat ); \ - RDebug::Print( KFormat, a, b, c ); \ - } - -#define LOGSTRING5( aFormat, a, b, c, d ) \ - { \ - _LIT( KFormat, aFormat ); \ - RDebug::Print( KFormat, a, b, c, d ); \ - } - -#else // #ifdef DIAG_DEBUG_LOG_USE_RDEBUG - -// SYSTEM INCLUDES -#include - -// CONSTANTS -_LIT( KDiagFrameworkLogFolder, "DiagFramework" ); -_LIT( KDiagFrameworkLogFile, "LOG.TXT" ); - -// MACROS -#define LOGTEXT( aDescriptor ) \ - { \ - RFileLogger::Write( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - aDescriptor ); \ - } - -#define LOGSTRING( aFormat ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::Write( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - KFormat() ); \ - } - -#define LOGSTRING2( aFormat, a ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - TRefByValue( KFormat() ), \ - a ); \ - } - -#define LOGSTRING3( aFormat, a, b ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - TRefByValue( KFormat() ), \ - a, b ); \ - } - -#define LOGSTRING4( aFormat, a, b, c ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - TRefByValue( KFormat() ), \ - a, b, c ); \ - } - -#define LOGSTRING5( aFormat, a, b, c, d ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - TRefByValue( KFormat() ), \ - a, b, c, d ); \ - } - -#endif // #else DIAG_DEBUG_LOG_USE_RDEBUG - -#else // _DEBUG && ENABLE_DIAG_DEBUG_LOG - -#define LOGTEXT( aDescriptor ) -#define LOGSTRING( aFormat ) -#define LOGSTRING2( aFormat, a ) -#define LOGSTRING3( aFormat, a, b ) -#define LOGSTRING4( aFormat, a, b, c ) -#define LOGSTRING5( aFormat, a, b, c, d ) - -#endif // else _DEBUG && ENABLE_DIAG_DEBUG_LOG - -#endif // DIAGFRAMEWORKDEBUG_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diaglogeventeraser.h --- a/devicediagnosticsfw/diagframework/inc/diaglogeventeraser.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ -/* -* Copyright (c) 2007 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: This is the header for the Diagnostics Logs Event Eraser. -* -*/ - - -#ifndef DIAGLOGEVENTERASER_H -#define DIAGLOGEVENTERASER_H - -// Include Files -#include // CActive -#include // RFs - -// Forward Declarations -class MDiagLogEventEraserObserver; -class CActiveSchedulerWait; -class CLogClient; -class CLogViewEvent; -class CLogFilter; - -/** -* Diagnostics Plugin Log Event Eraser -* -* This class is used to remove log events generated by diagnostics plugins. -* Events could be anything that is logged by the system log, such as call or -* data use records. -* -* @lib euser.lib -* @lib logcli.lib -* @lib efsrv.lib -* @lib flogger.lib -*/ -NONSHARABLE_CLASS( CDiagLogEventEraser ) : public CActive - { - -public: // New functions - - /** - * Symbian OS two-phase constructor. - * - * @param aObserver A reference to the observer for this event eraser. - * @param aFilter The filter to be used for log erasure. Clients may pass - * NULL for no filtering. Ownership is transferred. - * @return An pointer to the new instance of CDiagLogEventEraser. - */ - IMPORT_C static CDiagLogEventEraser* NewL( - MDiagLogEventEraserObserver& aObserver, - CLogFilter* aFilter = NULL ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagLogEventEraser(); - - /** - * This gets the filter used for the log erasure. Clients which want to - * filter the logs to be erased must call this function and set the - * appropriate filter before calling StartAsyncEraseLogsL or EraseLogsL. - * - * @return The filter to apply to the logs to check for erasure. - */ - IMPORT_C CLogFilter& Filter(); - - /** - * This gets the log client used for the log erasure. - * - * @return The log client used for log erasure. - */ - IMPORT_C CLogClient& LogClient(); - - /** - * This starts an asynchronous log erase operation. The completion of this - * request is notified by MDiagLogEventEraserObserver::CompleteEventEraseL. - */ - IMPORT_C void StartAsyncEraseLogsL(); - - /** - * This performs a synchronous log erase operation. The function will - * leave if there is any error in log erasure. - */ - IMPORT_C void EraseLogsL(); - - -private: // New functions - - /** - * C++ default constructor. - * - * @param aObserver A reference to the observer for this event eraser. - * @param aFilter The filter to be used for log erasure. If NULL is - * passed, a new filter will be created during the second - * phase of construction. Ownership is transferred. - */ - CDiagLogEventEraser( MDiagLogEventEraserObserver& aObserver, - CLogFilter* aFilter ); - - /** - * Symbian OS default constructor. - */ - void ConstructL(); - - /** - * Handles the completion of log erasing and performs different operations - * depending on whether the erasing was asynchronous or not. - */ - void HandleCompletionL( TInt aError ); - - -private: // From base class CActive - - /** - * Handle active object completion event. - */ - virtual void RunL(); - - /** - * Handle active object cancel event. - */ - virtual void DoCancel(); - - -private: // Data - - /** The state of the log erasing operation. */ - enum TDiagLogEventEraserState - { - EStateInitial = 0, - EStateApplyingFilter, - EStateReadingEntries, - EStateDeletingEntry, - EStateComplete - }; - - /** The observer for this instance of the log event eraser. */ - MDiagLogEventEraserObserver& iObserver; - - /** The active scheduler, used for synchronous log erasure. Own. */ - CActiveSchedulerWait* iWaitScheduler; - - /** The Log client. Own. */ - CLogClient* iLogClient; - - /** The Log view. Own. */ - CLogViewEvent* iLogView; - - /** The Log filter. Own. */ - CLogFilter* iLogFilter; - - /** A file server session used to delete the logs. */ - RFs iFsSession; - - /** The internal state of the log event eraser. */ - TDiagLogEventEraserState iState; - - /** Indicates if the log event eraser is running a synchronous delete. */ - TBool iIsDeletingSynchronous; - - /** The return code for syncronous operation. */ - TInt iError; - }; - -#endif // DIAGLOGEVENTERASER_H - -// End of File diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diaglogeventeraserobserver.h --- a/devicediagnosticsfw/diagframework/inc/diaglogeventeraserobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2007 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: This is the header for the Diagnostics Logs Event Eraser -* Observer class, which clients implement to receive events -* from the Event Eraser. -* -*/ - - -#ifndef DIAGLOGEVENTERASEROBSERVER_H -#define DIAGLOGEVENTERASEROBSERVER_H - -// Forward Declarations -class CLogEvent; - -/** -* Diagnostics Plugin Log Event Eraser Observer -* -* This is a pure virtual class that clients of the Event Eraser must implement -* to receive callbacks from the Log Event Eraser. -*/ -class MDiagLogEventEraserObserver - { - -public: // New functions - - /** - * This function is called to check if the log event needs to be deleted. - * - * @param aEvent The event to check. - * @return ETrue if the log event should be deleted, EFalse otherwise. - */ - virtual TBool IsEventToBeDeleted( const CLogEvent& aEvent ) = 0; - - /** - * This function is called to notify that the erase operation is complete. - * - * @param aError Error code to indicate erase failure, or KErrNone. - */ - virtual void CompleteEventEraseL( TInt aError ) = 0; - - }; - -#endif // DIAGLOGEVENTERASEROBSERVER_H diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagnetworkregstatusobserver.h --- a/devicediagnosticsfw/diagframework/inc/diagnetworkregstatusobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2007 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: This is the header for the Diagnostics Network registration -* status observer interface -* -*/ - - -#ifndef DIAGNETWORKREGSTATUSOBSERVER_H -#define DIAGNETWORKREGSTATUSOBSERVER_H - -/** -* Diagnostics Plugin Network registration status observer interface -* -* This is an abstract class which plugins must derive and implement to receive -* call-backs from the Diagnostics Network registration status observer. -*/ -class MDiagNetworkRegStatusObserver - { -public: - /** - * This function is used to inform the intial network registration status - * - * @param aRegistered. - * ETrue :The device is currently registered on the network - * EFalse:The device is currently not registered on the network. - */ - virtual void InitialNetworkRegistrationStatusL( const TBool& aRegistered ) = 0; - - /** - * This interface is used to inform the clients of any changes in the network registration - * status - * - * @param aRegistered - * ETrue :The device has now changed to registered status. - * EFalse:The device has now lost network coverage. - */ - virtual void NetworkRegistrationStatusChangeL( const TBool& aRegistered ) = 0; - }; - -#endif // DIAGNETWORKREGSTATUSOBSERVER_H - -//End of file - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagnetworkregstatuswatcher.h --- a/devicediagnosticsfw/diagframework/inc/diagnetworkregstatuswatcher.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2007 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: This is the header for the Diagnostics Network registration -* status watcher. -* -*/ - - -#ifndef DIAGNETWORKREGSTATUSWATCHER_H -#define DIAGNETWORKREGSTATUSWATCHER_H - -// Include files -#include // CActive -#include // CTelephony - -//Forward declaration -class MDiagNetworkRegStatusObserver; - - -/** -* Diagnostics Network registration status watcher -* -* This class can be used as an observer for network status. After -* instantiating the class and calling StartObserver(), the class firstly -* informs the client of the current registration status and then goes into -* an observing mode for any changes in the network registration status. -* -*/ -class CDiagNetworkRegStatusWatcher : public CActive - { -public: - - /** - * Symbian OS constructor. - * - * @param aCallBack A reference to the callback for this network - registration status watcher - * @return An pointer to the new instance of CDiagNetworkRegStatusWatcher. - */ - IMPORT_C static CDiagNetworkRegStatusWatcher* NewL( - MDiagNetworkRegStatusObserver& aCallBack ); - - /** - * Default C++ virtual destructor - */ - IMPORT_C virtual ~CDiagNetworkRegStatusWatcher(); - - /** - * This function is used by client to start the watcher. Firstly, the - * watcher will inform the clients via call - * MDiagNetworkRegStatusObserver::InitialNetworkRegistrationStatusL() - * and then go into an observing mode for any changes in the network - * registration status. The changes status is informed via - * MDiagNetworkRegStatusObserver::NetworkRegistrationStatusChangeL() - */ - IMPORT_C void StartObserver(); - - - /** - * This function is used by client to stop the observer. - */ - IMPORT_C void StopObserver(); - -private: - - /** - * C++ constructor. - * - * @param aCallBack A reference to the callback for Network - * registration status observer - */ - CDiagNetworkRegStatusWatcher( MDiagNetworkRegStatusObserver& - aCallBack ); - - /** - * Symbian C++ 2nd phase constructor. - * - */ - void ConstructL(); - -private: // From base class CActive - - /** - * Handle active object completion event. - */ - virtual void RunL(); - - /** - * Handle active object cancel event. - */ - virtual void DoCancel(); - -private: // private functions - - /** - * Handler for the internal state EStateWaitForInitialStatus - */ - void HandleInitialStatusL(); - - /** - * Handler for the internal state EStateWaitForStatusChange - */ - void HandleNetworkStatusChangeL(); - - /** - * This function wraps the logic to decide if the device is currently - * registered or not. - * - * @return ETrue if the devide is registered, EFalse if the device is - * not registered. - */ - TBool IsDeviceRegisteredOnNetwork(); - -private: - - /** States of the Network registration status watcher */ - enum TDiagNetwRegStatusWatcherState - { - EStateInit = 0, - EStateWaitForInitialStatus, - EStateWaitForStatusChange, - EStateStopping - }; - - /** variable to store the internal state of the network registration - * status watcher - */ - TDiagNetwRegStatusWatcherState iState; - - /** Interface to phone's telephony system. Own. */ - CTelephony* iTelephony; - - /** Defines the current network registration status */ - CTelephony::TNetworkRegistrationV1 iRegV1; - - /** A typedef'd packaged CTelephony::TNetworkRegistrationV1 for - passing through a generic API method. */ - CTelephony::TNetworkRegistrationV1Pckg iRegV1Pckg; - - /** The callback interface for this instance of Network - registration status observer */ - MDiagNetworkRegStatusObserver& iCallBack; - - /** This variable remembers whether in previous state the - * the device was registered or not - */ - TBool iPreviouslyRegistered; - }; - -#endif // DIAGNETWORKREGSTATUSWATCHER_H - -//End of file - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagnosticsfwprivatecrkeys.h --- a/devicediagnosticsfw/diagframework/inc/diagnosticsfwprivatecrkeys.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* -* Copyright (c) 2007 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: Private Central Repository keys. -* -*/ - - -#ifndef DIAGNOSTICSFWPRIVATECRKEYS_H -#define DIAGNOSTICSFWPRIVATECRKEYS_H - -// INCLUDES - -#include - -// ============================================================================= -// Diagnostics Framework -// ============================================================================= - -const TUid KCRUidDiagnosticsFw = { 0x2000B16B }; - -/** -* Configure number of microseconds Diagnostics Framework will delay before starting -* to execute each test. This gives user a chance to cancel before a test -* begins. -*/ -const TUint32 KDiagFwTestInitDelay = 0x00000001; - -/** -* Configure number of microseconds of test inactivity Diagnostics Framework will -* tolerate before cancelling an interactive test. This prevents single tests -* from blocking entire testing session. -* The value will be used for interactive test steps. -*/ -const TUint32 KDiagFwWatchdogTimeoutInteractive = 0x00000002; - -/** -* Configure number of microseconds of test inactivity Diagnostics Framework will -* tolerate before cancelling an automatic test. This prevents single tests -* from blocking entire testing session. -* The value will be used for non-interactive (automatic) test steps. -*/ -const TUint32 KDiagFwWatchdogTimeoutAutomatic = 0x00000003; - -#endif // DIAGNOSTICSFWPRIVATECRKEYS_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagplugin.h --- a/devicediagnosticsfw/diagframework/inc/diagplugin.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,240 +0,0 @@ -/* -* Copyright (c) 2007 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: Abstract class that represents a diagnostics plug-in -* -*/ - - -#ifndef DIAGPLUGIN_H -#define DIAGPLUGIN_H - -// INCLUDES -#include // CPtrCArray . Needed since this is typedef. - -//Forward declarations -class CGulIcon; -class MDiagEngineCommon; - -// Constants for plugin interfaces -const TUid KDiagPluginInterfaceUid = { 0x2000AFEB }; - -// UID of top most root suite uid. All plug-ins are descendant of this suite. -const TUid KDiagRootSuiteUid = { 0x00000000 }; - -/** -* Abstract class that repsesents a diagnostics plug-in. -* -* @since S60 v5.0 -**/ -class MDiagPlugin - { -public: //data structures - - /** - * Indicates is the plug-in a suite or a test plug-in - **/ - enum TPluginType - { - ETypeTestPlugin, - ETypeSuitePlugin - }; - - /** - * Layout type of name being requested. - */ - enum TNameLayoutType - { - ENameLayoutListSingle, // list_single_graphic_heading_pane_t1_cp2 - ENameLayoutPopupNoteWaitWindow, // popup_note_wait_window - ENameLayoutListLargeGraphic, // list_single_large_graphic_pane_t1 - ENameLayoutHeadingPane, // heading_pane_t1 - ENameLayoutPopupInfoPane, // popup_info_list_pane_t1 - ENameLayoutTitlePane, // title_pane_t2/opt12 - ENameLayoutListSingleGraphic, // list_single_graphic_pane_t1 - ENameLayoutListDoubleGraphic // list_double_graphic_pane_t1 - }; - -public: // public methods - - /** - * Virtual destructor. This ensures that when the interface is deleted, - * compiler will look up virtual table to find correct destructor. - */ - virtual ~MDiagPlugin() {} - - /** - * Method for getting the name of the plugin. Name returned should be based - * on the layout requested, and it should fit within the layout. - * - * @param aLayoutType - Layout where text will be displayed in. @see TNameLayoutType - * @return Localized name of the plug-in. Ownership is transferred to caller. - */ - virtual HBufC* GetPluginNameL( TNameLayoutType aLayoutType ) const = 0; - - /** - * Get the name of the service that the plug-in provides. - * Service name is defined in the ECOM resource file, thus, it is not localized. - * - * @return The name of the service. - **/ - virtual const TDesC& ServiceLogicalName() const = 0; - - /** - * Get logical dependencies. One plug-in can have multiple dependencies to other plug-ins. - * - * @param aArray An array of logical names. - * @see ServiceLogicalName. - **/ - virtual void GetLogicalDependenciesL( CPtrCArray& aArray ) const = 0; - - /** - * Return the type of the plug-in. - * - * @return The type. - * @see TPluginType. - **/ - virtual TPluginType Type() const = 0; - - /** - * Create an icon that represents the plug-in. - * - * @return An icon. - **/ - virtual CGulIcon* CreateIconL() const = 0; - - /** Method for checking, if plugin should be visible. - * (for example shown in listbox). - * Overwrite this function to show or hide your plugin dynamically. - * - * @return ETrue if plugin should be visible, EFalse otherwise. - */ - virtual TBool IsVisible() const = 0; - - /** Method for checking, if plugin is supported. - * Overwrite this function to enable or disable your plugin dynamically. - * If EFalse, plug-in will not be loaded by plugin pool. - * - * @return ETrue if plugin is supported, EFalse otherwise. - */ - virtual TBool IsSupported() const = 0; - - /** - * Get localised description of the test. Description should be used to explain - * the test for the user. It can contain comments that this service needs for - * example access point and it creates costs or that the duration might be long. - * - * @return Allocated buffer containing localized description of the plugin. - **/ - virtual HBufC* GetDescriptionL() const = 0; - - /** - * Get UID of this plug-in. - * - * @return the UID. - **/ - virtual TUid Uid() const = 0; - - /** - * Get the order number that this plug-in should appear in its parent list. - * - * @return TUint order number. - **/ - virtual TUint Order() const = 0; - - /** - * Get UID of the parent. - * - * @return The parent UID. - **/ - virtual TUid ParentUid() const = 0; - - /** - * Set ECom Destructor ID Key. - * - * @param aDtorIdKey Uid returned by REComSession::CreateImplementationL() - **/ - virtual void SetDtorIdKey( TUid aDtorIdKey ) = 0; - - - /** - * Initialization Step. This method is called before any plugin are executed. - * This can be used to clean up any left over data from previous execution - * sessions. All plug-ins in execution plan will have a chance to clean - * up before any plug-ins are run. This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in will be executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual void TestSessionBeginL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ) = 0; - - - /** - * Cleanup Step. This method is called after all plug-ins in the - * execution plan is completed to clean up any left over data from - * current sesison. This can be used to clean up any data that - * provides dependent service created for its dependencies. - * This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in as executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual void TestSessionEndL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ) = 0; - - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the operation. - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual TAny* CustomOperationL( TUid aUid, TAny* aParam ) = 0; - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual TAny* GetCustomL( TUid aUid, TAny* aParam ) = 0; - }; - -#endif // DIAGPLUGIN_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagpluginconstructionparam.h --- a/devicediagnosticsfw/diagframework/inc/diagpluginconstructionparam.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2007 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: Diagnostics Plug-in Construction Parameter -* -*/ - - -#ifndef DIAGPLUGINCONSTRUCTIONPARAM_H -#define DIAGPLUGINCONSTRUCTIONPARAM_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class CDesC16ArrayFlat; - -/** -* Parameters that are needed to construct a Diagnostics plug-in. -* -* @since S60 v5.0 -**/ -NONSHARABLE_CLASS( CDiagPluginConstructionParam ) : public CBase - { -public: - - /** - * Two-phased constructors. - * - * @param aServiceProvided - Name of the service provided. - * Ownership is transferred to CDiagPluginConstructionParam. - * @param aServicesRequired - Array of services required. - * Ownership is transferred to CDiagPluginConstructionParam. - * @param aOrder - Order that this plug-in should appear in - * in parent suite. - * @param aImplUid - Implementation Uid of the plug-in. - * @return new instance of CDiagPluginConstructionParam* - **/ - IMPORT_C static CDiagPluginConstructionParam* NewL( - HBufC* aServiceProvided, - CDesC16ArrayFlat* aServicesRequired, - TInt aOrder, - TUid aImplUid, - TUid aParentUid ); - IMPORT_C static CDiagPluginConstructionParam* NewLC( - HBufC* aServiceProvided, - CDesC16ArrayFlat* aServicesRequired, - TInt aOrder, - TUid aImplUid, - TUid aParentUid ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagPluginConstructionParam(); - - /** - * Get Name of the service provived. - * - * @return Name of the service provided. - */ - IMPORT_C const TDesC& ServiceProvided() const; - - /** - * Get array of services required for plug-in. - * - * @return Array of services required for plug-in. - */ - IMPORT_C const CDesC16ArrayFlat& ServicesRequired() const; - - /** - * Get the order this plug-in should appear in parent. - * - * @return Order that this plug-in should appear in parent. - */ - IMPORT_C TInt Order() const; - - /** - * Uid of plug-in. - * - * @return Uid of plug-in specified in RSS file. - */ - IMPORT_C TUid Uid() const; - - /** - * Parent Uid of plug-in. - * - * @return Parent Uid of plug-in specified in RSS file. - */ - IMPORT_C TUid ParentUid() const; - -private: - - /** - * C++ Constructor. - **/ - CDiagPluginConstructionParam( HBufC* aServiceProvided, - CDesC16ArrayFlat* aServicesRequired, - TInt aOrder, - TUid aImplUid, - TUid aParentUid ); - - -private: // data - - /** - * iServiceProvided - Buffer containing service name - * Owns. - */ - HBufC* iServiceProvided; - - /** - * iServicesRequired - Array containing list of dependency list. - * Owns - */ - CDesC16ArrayFlat* iServicesRequired; - - /** - * iOrder - Order in parent list. - */ - TInt iOrder; - - /** - * iImplUid - Uid of the plug-in - */ - TUid iImplUid; - - /** - * iParentUid - Uid of the parent suite plug-ins - */ - TUid iParentUid; - }; - -#endif // DIAGPLUGINCONSTRUCTIONPARAM_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagpluginexecplan.h --- a/devicediagnosticsfw/diagframework/inc/diagpluginexecplan.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagPluginExecPlan -* -*/ - - -#ifndef DIAGPLUGINEXECPLAN_H -#define DIAGPLUGINEXECPLAN_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATION -class MDiagPlugin; -class MDiagExecPlanEntry; - -/** -* Diagnostics Plugin Execution Plan -* -* This class provides interface to access execution plan. -* It also provides interface to modify execution plan. -* A cursor to currently executing item is also maintained. -* -*/ -class MDiagPluginExecPlan - { -public: - /** - * Access an item in plan. - * - * @param aIndex - index - * @return Reference to plan entry at given index. - */ - virtual const MDiagExecPlanEntry& operator[]( TInt aIndex ) const = 0; - - /** - * Get current execution plan item. - * - * @return Reference to currently executing plan item. - */ - virtual const MDiagExecPlanEntry& CurrentExecutionItem() const = 0; - - /** - * Returns index of execution cursor. Note that this index - * includes both suite plug-in and test plug-in. - * - * If only interested about test plug-ins. use CurrentTestIndex(). - * - * @return Index to current execution cursor. - */ - virtual TInt CurrentIndex() const = 0; - - /** - * Returns total number of items in the plan. Note that this count - * includes both suite plug-in and test plug-in. - - * If only interested only test plug-ins. use TestCount(). - * - * @return Number of items in the test plan. - */ - virtual TInt Count() const = 0; - - /** - * Get current test index. - * - * Note that only test plug-ins (MDiagTestPlugin) are counted in this - * case. Suite pre/post execution are not. You cannot use this value - * with [] operator since this is not a real index. - * - * To get real cursor index, use GetCurrentIndex(). - * - * @param aIncludeDependency If ETrue, test index will also include - * plugins that are included as dependency. - * @return current test index. - */ - virtual TInt CurrentTestIndex( TBool aIncludeDependency ) const = 0; - - /** - * Get total test count. - * - * Note that only test plug-ins (MDiagTestPlugin) are counted in this - * case. Suite pre/post execution are not. You cannot use this value - * with [] operator since this is not a real count. - * - * To get the real number of items in the plan, use GetCount(). - * - * @param aIncludeDependency If ETrue, test index will also include - * plug-ins that are included as dependency. - * @return current test index. - */ - virtual TInt TestCount( TBool aIncludeDependency ) const = 0; - - /** - * Check if this is the last test being executed. - * - * Note that only test plug-ins (MDiagTestPlugin) are counted in this - * case. Suite pre/post execution are not. - * If you are interested in checking if it is currently running - * the last plug-in, including test and suites, @see IsLastPlugin() - * - * @return ETrue plan is executing the last test plug-in. - */ - virtual TBool IsLastTest() const = 0; - - /** - * Check if this is the last plug-in being executed. - * - * Note that this includes both test plug-ins and suite plug-ins. - * If you are interested in checking the progress on tests only, - * @see IsLastTest() - * - * @return ETrue plan is executing the last test or suite plug-in. - */ - virtual TBool IsLastPlugin() const = 0; - - /** - * Returns the plug-in index that plan is resuming from. - * If this session is not a resume session, this will return 0 (first index). - * Otherwise, this index will point the first real execution item. - * - * Note that this value will not change as test session progresses. Even - * as test progresses, this value will still point to the index that - * this session is being resumed from. - * - * @return Index of which session is being resumed from. - */ - virtual TInt ResumeIndex() const = 0; - }; - -#endif // DIAGPLUGINEXECPLAN_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagpluginexecplanimpl.h --- a/devicediagnosticsfw/diagframework/inc/diagpluginexecplanimpl.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,463 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagPluginExecPlanImpl -* -*/ - - -#ifndef DIAGPLUGINEXECPLANIMPL_H -#define DIAGPLUGINEXECPLANIMPL_H - -// SYSTEM INCLUDE FILES -#include // CBase -#include // MDiagPluginExecPlan -#include // CDiagResultsDatabaseItem::TResult - -// USER INCLUDE FILES -#include "diagexecplanentryimpl.h" // TDiagPluginExecPlanImpl::TType - -// FORWARD DECLARATION -class MDiagPlugin; -class MDiagSuitePlugin; -class MDiagEngineCommon; -class CDiagPluginPool; -class RDiagResultsDatabaseRecord; -class TDiagEngineConfig; -struct TTransitionStackEntry; - -template -class CStack; - -/** -* Diagnostics Plugin Execution Plan -* -* This class provides interface to access execution plan. -* It also provides interface to modify execution plan. -* A cursor to currently executing item is also maintained. -* -* @since S60 v5.0 -* -*/ -NONSHARABLE_CLASS( CDiagPluginExecPlanImpl ) : public CActive, - public MDiagPluginExecPlan - { -public: - /** - * Two-phase constructor - * - * @param aEngine - Reference to diagnostics engine. - * @param aEngineConfig - Engine configuration information. - * @param aEntryObserver - Reference to entry observer. - * @return new instance of CDiagPluginExecPlanImpl - */ - static CDiagPluginExecPlanImpl* NewL( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aEntryObserver ); - - /** - * Destructor. - */ - virtual ~CDiagPluginExecPlanImpl(); - -public: // New API - /** - * Initialize execution plan - * - * @param aStatus - Request status to set when plan creatation is completed. - * @param aBatch - list of plug-ins to execute - */ - void InitializeL( TRequestStatus& aStatus, - const RPointerArray< MDiagPlugin >& aBatch ); - - /** - * Initialize execution plan from db. - * This will read current data from results database and reconstruct - * the execution plan. - * - * This should be used to continue an incomplete session. - * - * @param aStatus - Request status to set when plan creatation is completed. - */ - void InitializeL( TRequestStatus& aStatus ); - - /** - * Access an item in plan. - * - * @param aIndex - index - * @return Reference to plan entry at given index. - */ - CDiagExecPlanEntryImpl& operator[]( TInt aIndex ); //lint !e1411 This is proper overload - - /** - * Get current execution plan item. - * - * @return Reference to currently executing plan item. - */ - CDiagExecPlanEntryImpl& CurrentExecutionItem(); //lint !e1411 This is proper overload - - /** - * Reset execution cursor - * - * Resets execution cursor to the beginning. - */ - void ResetExecutionCursor(); - - /** - * Moves execution cursor to next item. - * - * @return ETrue if cursor is updated. - * EFalse if cursor is already at last item. - */ - TInt MoveCursorToNext(); - -private: // from CActive - /** - * Handle Active Object completion event. - * @see CActive::RunL() - */ - virtual void RunL(); - - /** - * Cancel outstanding request - * @see CActive::RunL() - */ - virtual void DoCancel(); - - /** - * Handle errors - * @see CActive::RunError() - */ - virtual TInt RunError( TInt aError ); - -public: // from MDiagPluginExecPlan - /** - * Access an item in plan. - * @see MDiagPluginExecPlan::operator[] - */ - virtual const MDiagExecPlanEntry& operator[]( TInt aIndex ) const; - - /** - * Get current execution plan item. - * @see MDiagPluginExecPlan::CurrentExecutionItem - */ - virtual const MDiagExecPlanEntry& CurrentExecutionItem() const; - - /** - * Returns index of execution cursor. - * @see MDiagPluginExecPlan::CurrentIndex - */ - virtual TInt CurrentIndex() const; - - /** - * Returns total number of items in the plan. - * @see MDiagPluginExecPlan::Count - */ - virtual TInt Count() const; - - /** - * Get current test index. - * - * @see MDiagPluginExecPlan::CurrentTestIndex - */ - virtual TInt CurrentTestIndex( TBool aIncludeDependency ) const; - - /** - * Get total test count. - * - * @see MDiagPluginExecPlan::TestCount - */ - virtual TInt TestCount( TBool aIncludeDependency ) const; - - /** - * Check if this is the last test being executed. - * - * @see MDiagPluginExecPlan::IsLastTest - */ - virtual TBool IsLastTest() const; - - /** - * Check if this is the last plug-in being executed. - * - * @see MDiagPluginExecPlan::IsLastPlugin - */ - virtual TBool IsLastPlugin() const; - - /** - * Returns the plug-in index that plan is resuming from. - * - * @see MDiagPluginExecPlan::ResumeIndex - */ - virtual TInt ResumeIndex() const; - -private: // private data types - /** - * State - */ - enum TState - { - EStateIdle = 0, - EStateExpandDependencyAndSuites, - EStateRemoveEmptySuites, - EStateInsertSuiteTransitions, - EStateStoreToDb, - EStatePlanCreated - }; - -private: // private functions - /** - * C++ Constructor - * @param aEngine - reference to engine. - * @param aEngineConfig - reference to engine configuration information. - * @param aEntryObserver - Reference to observer for each plug-in - */ - CDiagPluginExecPlanImpl( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aEntryObserver ); - - /** - * Symbian 2nd phase constructor - */ - void ConstructL(); - - /** - * Change state - * @param aState - new state. - */ - void ChangeState( TState aState ); - - /** - * Plan creation phase 1. Expand dependencies - * - * @return ETrue if any changes are made to the plan. - */ - TBool ExpandDependenciesL(); - - /** - * Plan creation phase 2. Expand suites to plug-ins - * - * @return ETrure if any changes are made to the plan - */ - TBool ExpandSuitesL(); - - /** - * Plan creation phase 3. Remove empty suites. Delete plan entries that - * just has prepare and finalize without any tests in between. - * - */ - void RemoveEmptySuites(); - - /** - * Plan creation phase 4. Insert suite transition based on parent - * - */ - void InsertSuiteTransitionsL(); - - /** - * Store next test plan item to database. Part of STEP_6. - * - */ - void StoreNextTestPluginToDbL(); - - /** - * Plan creation step 7. Prepend items from last session to new plan. - */ - void PrependExecutedItemsL(); - - /** - * Report result to client. - * - * @param aErr - Result to report back to engine. KErrNone if successful. - * - */ - void ReportResult( TInt aErr ); - - /** - * Insert plugin - * - * This function will attempt to add a plugin into plan. - * If item already exists in the plan prior to the given index, it will - * not add a new item. - * If item exists after the given index, and the item is a dependent item, it will - * move it up in the plan, so that it will be executed earlier. - * If item exists after the given index, and the item is not a dependent item, - * it will create a duplicate entry, to make sure that client specified order - * is not changed. - * - * @param aPlugin - Plugin to insert - * @param aAsDependent - whether new item is to satify dependency or not. - * @param aAt - index to insert the dependent item to. - * @return ETrue if plan is updated. EFalse if no changes to plan is made. - */ - TBool InsertPluginL( MDiagPlugin& aPlugin, - TBool aAsDependent, - TInt aAt ); - - /** - * Utility function to create a default execution plan entry - * For test plug-ins, it will create an entry with EQueueToRun as status. - * For suite plug-ins, it will create an entry with ETypeSuiteUnexpanded as type. - * - * @param aPlugin - Plugin to create default entry for. Either test or suite plug-in. - * @param aAsDependency - Whether the entry should be created as dependency or not. - * - * @return New execution plan entry. Ownership is transferred. - */ - CDiagExecPlanEntryImpl* CreateDefaultPlanEntryLC( - MDiagPlugin& aPlugin, - TBool aAsDependency ) const; - - /** - * Utility function to add root suite if it does not alredy exists - * in the plan. - * - * NOTE: This should be called only from InsertSuiteTransitionsL() - */ - void AddRootSuiteIfMissingL(); - - /** - * Utility function to push new transition into stack. - * - * NOTE: This should be called only from InsertSuiteTransitionsL() - * - * @param aStack - Stack to push new transition to. - * @Param aHeadIndex - index in execution plan to head entry. - */ - void PushNewLevelL( CStack& aStack, TInt aHeadIndex ); - - /** - * Utility function to pop a level from stack. This will remove top entry - * - * NOTE: This should be called only from InsertSuiteTransitionsL() - * - * @param aStack - Stack to pop the head item from. - */ - void PopLevel( CStack& aStack ); - - /** - * Utility function to check if given level exists in stack - * - * NOTE: This should be called only from InsertSuiteTransitionsL() - * - * @param aStack - Stack to check levels in. - * @param aLevelUid - Uid of leven to check in stack. - * - * @return ETrue if item exists in stack. EFalse if not found. - */ - TBool IsLevelInStack( CStack& aStack, TUid aLevelUid ) const; - - /** - * Utility function to check if there is more of items of the same parent - * exists in the plan. - * - * NOTE: This should be called only from InsertSuiteTransitionsL() - * - * @param aParentUid - Uid of suite to search for. - * @param aIndex - Index to execution plan to start searching for. - * @return ETrue if given suite is still needed. - * EFalse otherwise. - */ - TBool IsThisSuiteNeededAfterThisIndex( TUid aSuiteUid, TInt aIndex ) const; - - /** - * Utility function to add a SuitePrepare entry into plan. - * - * NOTE: This should be called only from InsertSuiteTransitionsL() - * - * @param aLevelUid - Uid of suite to add in plan. - * @param aAt - Index in plan to add new prepare entry to. - */ - void AddSuitePrepareL( TUid aLevelUid, TInt aAt ); - - /** - * Utility function to add a SuiteFinalize entry into plan. - * - * NOTE: This should be called only from InsertSuiteTransitionsL() - * - * @param aPrepareIndex - location in plan where prepare is at. Some information - * from prepare item will be copied to finalize. - * @param aAt - Index in execution plan to add finalize entry to. - */ - void AddSuiteFinalizeL( TInt aPrepareIndex, TInt aAt ); - - /** - * Log plan information to debug log. This function does nothing in release build. - */ - void LogPlanL() const; - - /** - * Debug function that validate that entries are written to db correctly. - * This function does nothing in release build. - */ - void LogPlanInRecordL() const; - -private: // data - - /** - * iPlan - holds plan entries - * Individual entries are owned by the array. - */ - RPointerArray iPlan; - - /** - * iExecutedEntries - Items that are already executed in the - * previous session. - * Individual entries are owned by the array. - */ - RPointerArray iExecutedEntries; - - /** - * iExecutionCursor - currently executing item. - */ - TInt iExecutionCursor; - - /** - * iResumeIndex - Index which session is being resumed from. - */ - TInt iResumeIndex; - - /** - * iEngine - Reference to diag engine. - */ - MDiagEngineCommon& iEngine; - - /** - * iEngineConfig - Enine configuration information. - */ - const TDiagEngineConfig& iEngineConfig; - - /** - * iPlanEntryObserver - Plan entry observer. Passed to each plan entry - * when it is created. - */ - MDiagExecPlanEntryImplObserver& iPlanEntryObserver; - - /** - * iClientStatus - TRequestStatus of the client. Used to notify - * completion and error. - * Ownership - Does not own. - */ - TRequestStatus* iClientStatus; - - /** - * iState - state of the execution plan creation. - * @see TState - */ - TState iState; - }; - -#endif // DIAGPLUGINEXECPLANIMPL_H - - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagpluginloaderdependencyparser.h --- a/devicediagnosticsfw/diagframework/inc/diagpluginloaderdependencyparser.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,341 +0,0 @@ -/* -* Copyright (c) 2007 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: XML Parser for opaque data field of Plug-ins. This field -* contains information about depdendencies and ordering. -* -*/ - - -#ifndef DIAGPLUGINLOADERDEPENDENCYPARSER_H -#define DIAGPLUGINLOADERDEPENDENCYPARSER_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATION -class CDesC16ArrayFlat; - -namespace Xml - { - class CParser; - class RAttribute; - } - -namespace DiagPluginPool - { -/** -* Plugin Loader Depdenency Parser -* Parse dependency information and other data out of plug-ins via the -* opaque_data field. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CDependencyParser ) : public CBase, - public Xml::MContentHandler - { -public: - - /** - * Two-phased constructor. - * - * @return New instance of CDependencyParser - */ - static CDependencyParser* NewL(); - - /** - * Two-phased constructor. - * - * @return New instance of CDependencyParser and pop onto cleanup stack - */ - static CDependencyParser* NewLC(); - - /** - * Destructor. - */ - virtual ~CDependencyParser(); - - /** - * Parse out Plug-in Information from XML. - * - * @param aOpaqueData Contains text with opaque data for Dependencies/Order Number - * @param aDefaultData Contains text with default data for Parent UID - * Leave Codes: KErrNone Valid data was parsed - * KErrNotFound No valid fields found - * KErrArgument Text is NULL or empty - * KErrCorrupt XML was determined to be corrupt - * - */ - void ParseL( const TDesC8& aOpaqueData, const TDesC8& aDefaultData ); - - /** - * Return parsed order number - * - * @return orrder number - */ - TInt GetOrderNumber() const; - - /** - * Return parsed parent UID - * - * @return parent UID - */ - const TUid& GetParentUid() const; - - /** - * Return parsed service provided. Ownership is transferred to the caller - * - * @return service provided - */ - HBufC* GetServiceProvided(); - - /** - * Return parsed services required. Caller assumes ownership. - * - * @return services required - */ - CDesC16ArrayFlat* GetServicesRequired(); - -private: // from Base Class Xml::MContentHandler - /** - * Callback from XML Parser that indicates a Plugin element is starting - * - * @param aElement handle to element's details - * @param aAttributes contains attributes for element - * @param aErrorCode indicates error, if any - */ - virtual void OnStartElementL( const Xml::RTagInfo& aElement, - const Xml::RAttributeArray& aAttributes, - TInt aErrorCode ); - - /** - * Callback from XML Parser that indicates the end of a plug-in element - * - * @param aElement handle to element's details - * @param aErrorCode indicates error, if any - */ - virtual void OnEndElementL( const Xml::RTagInfo& aElement, TInt aErrorCode ); - - /** - * Callback from XML Parser that indicates content in an XML element - * - * @param aBytes simple stream of data indicating the content - * @param aErrorCode indicates error, if any - */ - virtual void OnContentL( const TDesC8& aBytes, TInt aErrorCode ); - - /** - * Callback from XML Parser that indicates a parsing error - * - * @param aErrorCode indicates error, if any - * Note: The XmlFramework has been allocated error codes in the range: -17550 to -17599 - */ - virtual void OnError( TInt aErrorCode ); - - // Unused virtual member functions - - /** - * @see Xml::MContentHandler::OnStartDocumentL - */ - virtual void OnStartDocumentL( const Xml::RDocumentParameters& aDocParam, TInt aErrorCode ); - - /** - * @see Xml::MContentHandler::OnEndDocumentL - */ - virtual void OnEndDocumentL( TInt aErrorCode ); - - /** - * @see Xml::MContentHandler::OnEndDocumentL - */ - virtual void OnStartPrefixMappingL( const RString& aPrefix, - const RString& aUri, - TInt aErrorCode ); - /** - * @see Xml::MContentHandler::OnEndDocumentL - */ - virtual void OnEndPrefixMappingL( const RString& aPrefix, TInt aErrorCode ); - - /** - * @see Xml::MContentHandler::OnEndDocumentL - */ - virtual void OnIgnorableWhiteSpaceL( const TDesC8& aBytes, TInt aErrorCode ); - - /** - * @see Xml::MContentHandler::OnEndDocumentL - */ - virtual void OnSkippedEntityL( const RString& aName, TInt aErrorCode ); - - /** - * @see Xml::MContentHandler::OnEndDocumentL - */ - virtual void OnProcessingInstructionL( const TDesC8& aTarget, - const TDesC8& aData, - TInt aErrorCode ); - /** - * @see Xml::MContentHandler::OnEndDocumentL - */ - virtual void OnExtensionL( const RString& aData, TInt aToken, TInt aErrorCode ); - - /** - * @see Xml::MContentHandler::OnEndDocumentL - */ - virtual TAny* GetExtendedInterface( const TInt32 aUid ); - -private: // private utility functions - - /** - * Simple utility function to allocate and pop onto the stack a 16 bit buffer descriptor - * from an 8 bit descriptor. - * - * @param aDes 8 bit descriptor to be converted to 16 bits - * @return Newly allocated 16-bit buffer containing converted contents of aDes - */ - HBufC* Convert8BitTo16BitBufferLC( const TDesC8& aDes ) const; - - /** - * Parse a numeric attribute from XML text with specific notation for diagnostics framework - * plug-ins. - * - * @param aAttribute XML attribute - * @param aNumericAttribute Parsed out integer - * @return Indicates whether or not attribute was parsed correctly - */ - TBool ParseNumericAttribute( const Xml::RAttribute& aAttribute, TInt& aNumericAttribute ); - - /** - * Parse a string attribute from XML text with specific notation for diagnostics framework - * plug-ins. - * - * @param aAttribute XML attribute - * @param aStringAttribute Parsed out string - * @return Indicates whether or not attribute was parsed correctly - */ - TBool ParseStringAttributeL( const Xml::RAttribute& aAttribute, HBufC*& aStringAttribute ); - - /** - * Parse a hex UID from given descriptor - * - * @param aSource String containing UID - * @param aTarget Parsed out UID - * @return Error Code - */ - TInt ParseToUid( const TDesC8& aSource, TUid& aTarget ); - - /** - * Parse a hex UID from given descriptor - * - * @param aAttributes List of attributes to parse - * @param aFoundTag Reference to some class variable that indicates if a given tag has been found. - * @return ETrue==XML OK/EFalse==XML not validated - */ - TBool ValidateXmlTag( const Xml::RAttributeArray& aAttributes, TBool& aFoundTag ); - - /** - * Reset all data - * - */ - void ResetL(); - -private: // private constructors - - /** - * Construct a CDependencyParser object - * - */ - CDependencyParser(); - - /** - * 2nd phase constructor - * - */ - void ConstructL(); - -private: // data - - /** - * Pointer to XML Parser from SDK - * owns - */ - Xml::CParser* iParser; - - /** - * Error code indicates error in parsing - */ - TInt iParseStatus; - - /** - * Parsed order number - */ - TInt iOrderNumber; - - /** - * Parsed provided service - * owns - */ - HBufC* iServiceProvided; - - /** - * Parsed required service - * owns - */ - CDesC16ArrayFlat* iServicesRequired; - - /** - * Parsed parent uid - */ - TUid iParentUid; - - /** - * Indicates that parsing is happening within services required blocks - */ - TBool iParsingServicesRequired; - - /** - * Indicates that there was some problem with the parsing - */ - TBool iBadXML; - - /** - * Indicates that root node has been found and we are inside it - */ - TBool iInsideRootNode; - - /** - * Indicates that order number has been found - */ - TBool iFoundOrderNumber; - - /** - * Indicates that services provided has been found - */ - TBool iFoundServiceProvided; - - /** - * Indicates that services required has been found - */ - TBool iFoundServicesRequired; - - /** - * Indicates that parser has been run at least once - */ - TBool iHasBeenRun; - - }; - - } // namespace DiagPluginPool - -#endif // DIAGPLUGINLOADERDEPENDENCYPARSER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagpluginpool.h --- a/devicediagnosticsfw/diagframework/inc/diagpluginpool.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2007 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: Manages Diagnostics Plug-in -* -*/ - - -#ifndef DIAGPLUGINPOOL_H -#define DIAGPLUGINPOOL_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class MDiagPlugin; -class MDiagPluginPoolObserver; -class CDiagPluginPoolImpl; - - -/** -* Diagnostics Framework Plugin Pool Class -* -* This class is used to load Diagnostics ECom plug-ins. It works with both -* Suite Plug-in and Test Plug-in. Once loaded, it will manage the life -* cycle of the plug-ins. -* -* All loaded plug-ins will be destroyed when pool is deleted. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CDiagPluginPool ) : public CBase - { -public: - - /** - * Two-phased constructors - * - * @param aObserver Plug-in Pool observer. - * @return New instance of CDiagPluginPool - */ - IMPORT_C static CDiagPluginPool* NewL( MDiagPluginPoolObserver& aObserver ); - IMPORT_C static CDiagPluginPool* NewLC( MDiagPluginPoolObserver& aObserver ); - - /** - * Destructor - * - */ - IMPORT_C virtual ~CDiagPluginPool(); - -public: // new API - - /** - * Loads all plug-ins. Progress is notified via MDiagPluginPoolObserver. - * - * @param aUid - Interface Uid to load. - */ - IMPORT_C void LoadAsyncL( TUid aUid ); - - /** - * Create an instance of a plug-in. It can be a test plug-in or suite plug-in. - * If this is a suite, it will not have its children associated with it since - * will require children to be loaded as well. - * - * Plug-ins created using this method is not part of plug-in pool. Therefore - * client must manage the life cycle of the plug-in. - * - * @param aUid - Implementation Uid of plug-in. - * @return Newly instantiated plug-in. Ownership is transferred to caller. - */ - IMPORT_C static MDiagPlugin* CreatePluginL( TUid aUid ); - - /** - * Cancel Plug-in Loading - * This method cancels plug-in loading. If it was not currently loading - * plug-ins, it will leave with KErrNotReady - */ - IMPORT_C void CancelLoadPluginsL(); - - /** - * Find Plug-in that matches given Uid. - * - * @param aUid Uid of plug-in to search. - * @param aPlugin Reference to Plugin found. Engine owns this plug-in. - * Client must not deallocate plug-in. - * @return TInt KErrNone - Success. - * KErrNotFound - Not found. - * KErrNotReady - Plug-ins are not yet loaded. - */ - IMPORT_C TInt FindPlugin( TUid aUid, MDiagPlugin*& aPlugin ) const; - - /** - * Find Plug-in that matches given Uid. This function will leave on error. - * Leave codes: KErrNone - Success. - * KErrNotFound - Not found. - * KErrNotReady - Plug-ins are not yet loaded. - * - * @param aUid Uid of plug-in to search. - * @return Refernce to the plug-in found. - */ - IMPORT_C MDiagPlugin& FindPluginL( TUid aUid ) const; - - /** - * Find Plug-in that matches given service name. - * - * @param aServiceName Service name of the plug-in. Name must match exactly. - * @param aPlugin Reference to Plugin found. Engine owns this plug-in. - * Client must not deallocate plug-in. - * @return TInt KErrNone - Success. - * KErrNotFound - Not found. - * KErrNotReady - Plug-ins are not yet loaded. - */ - IMPORT_C TInt FindPlugin( const TDesC& aServiceName, - MDiagPlugin*& aPlugin ) const; - - /** - * Find Plug-in that matches given service name. Will leave on error. - * Leave codes: KErrNone - Success. - * KErrNotFound - Not found. - * KErrNotReady - Plug-ins are not yet loaded. - * - * @param aServiceName Service name of the plug-in. Name must match exactly. - * @return Reference to Plugin found. - */ - IMPORT_C MDiagPlugin& FindPluginL( const TDesC& aServiceName ) const; - -private: // private constructors - - /** - * C++ Constructor - * - */ - CDiagPluginPool(); - - /** - * 2nd phase constructor - * - */ - void ConstructL( MDiagPluginPoolObserver& aObserver ); - -private: // MEMBER DATA - - /** - * iPluginPoolImpl - Acutal implementation of CDiagPluginPool - * Owns - */ - CDiagPluginPoolImpl* iPluginPoolImpl; - }; - - -#endif // DIAGPLUGINPOOL_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagpluginpoolimpl.h --- a/devicediagnosticsfw/diagframework/inc/diagpluginpoolimpl.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,262 +0,0 @@ -/* -* Copyright (c) 2007 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: Manages Diagnostics Plug-in -* -*/ - - -#ifndef DIAGPLUGINPOOLIMPL_H -#define DIAGPLUGINPOOLIMPL_H - -// INCLUDES -#include // CActive -#include // RImplInfoPtrArray - -// FORWARD DECLARATIONS -class MDiagPlugin; -class MDiagPluginPoolObserver; -class CDiagPluginConstructionParam; -class MDiagSuitePlugin; - -/** -* Diagnostics Framework Plugin Pool Implementation Class -* -* This class is used to load Diagnostics ECom plug-ins. It works with both -* Suite Plug-in and Test Plug-in. Once loaded, it will manage the life -* cycle of the plug-ins. -* -* All loaded plug-ins will be destroyed when pool is deleted. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CDiagPluginPoolImpl ) : public CActive - { -public: - - /** - * Two-phased constructors - * - * @param aObserver Plug-in Pool observer. - * @return New instance of CDiagPluginPool - */ - static CDiagPluginPoolImpl* NewL( MDiagPluginPoolObserver& aObserver ); - static CDiagPluginPoolImpl* NewLC( MDiagPluginPoolObserver& aObserver ); - - /** - * Destructor - * - */ - virtual ~CDiagPluginPoolImpl(); - -public: // new API - - /** - * Loads all plug-ins. Progress is notified via MDiagPluginPoolObserver. - * Leave codes: KErrNone - Success. - * KErrNotFound - No plugins - * KErrAlreadyExists - Plug-ins have already been loaded. - */ - void LoadAsyncL(); - - /** - * Create an instance of a plug-in. It can be a test plug-in or suite plug-in. - * If this is a suite, it will not have its children associated with it since - * will require children to be loaded as well. - * - * Plug-ins created using this method is not part of plug-in pool. Therefore - * client must manage the life cycle of the plug-in. - * - * @param aUid - Implementation Uid of plug-in. - * @return Newly instantiated plug-in. Ownership is transferred to caller. - */ - static MDiagPlugin* CreatePluginL( const TUid aUid ); - - /** - * Find Plug-in that matches given Uid. - * - * @param aUid Uid of plug-in to search. - * @param aPlugin Reference to Plugin found. Engine owns this plug-in. - * Client must not deallocate plug-in. - * @return TInt KErrNone - Success. - * KErrNotFound - Not found. - * KErrNotReady - Plug-ins are not yet loaded. - */ - TInt FindPlugin( TUid aUid, MDiagPlugin*& aPlugin ) const; - - /** - * Find Plug-in that matches given service name. - * - * @param aServiceName Service name of the plug-in. Name must match exactly. - * @param aPlugin Reference to Plugin found. Engine owns this plug-in. - * Client must not deallocate plug-in. - * @return TInt KErrNone - Success. - * KErrNotFound - Not found. - * KErrNotReady - Plug-ins are not yet loaded. - */ - TInt FindPlugin( const TDesC& aServiceName, - MDiagPlugin*& aPlugin ) const; - - -private: // internal types - typedef RPointerArray RConstructionParamArray; - -private: // private constructors - - /** - * Construct a CDiagPluginPoolImpl object - * - * @param aObserver The observer which listens to plug-in pool events - */ - CDiagPluginPoolImpl( MDiagPluginPoolObserver& aObserver ); - - /** - * 2nd phase constructor - * - */ - void ConstructL(); - - -private: // internal API - - /** - * Obtain the list construction paramaters to construct a plug-in - * - * @return Pointer to construction paramaters pointer array - */ - static RConstructionParamArray* GeneratePluginListL(); - - /** - * Generate parmaters to construct a plug-in given the ECOM implementation - * info structure - * - * @param aInfo Pointer to the implementation info structure - * @return Pointer to newly generated construction params - */ - - static CDiagPluginConstructionParam* GenerateConstructionParamsLC( - const CImplementationInformation* aInfo ); - - /** - * Create a plug-in from given construction data - * - * @param aInfo Pointer to the implementation info structure - * @return Pointer to the newly created plug-in - */ - static MDiagPlugin* CreatePluginFromConstructionParamsL( - const CDiagPluginConstructionParam* aParams ); - - /** - * Setup active object for next iteration of plug-in loading - * - */ - void SetNextIteration(); - - /** - * Load the next plug-in in the list per built in iterator - * - */ - void LoadNextPluginL(); - - /** - * Add plug-in to plug-in pool by inserting into the plug-in tree. - * Plug-in ownership is transferred to the Plug-in Pool if it is - * supported. If the plug-in is not supported, it is deleted. - * - * @param aPlugin pointer to the new plug-in to be added - * @return TUid UID of the plug-in to report back to the application. - * Set to TUid::Null() if the plug-in was not added to the pool. - */ - TUid AddPluginToPoolLD( MDiagPlugin* aPlugin ); - - /** - * Destroy implementation info regarding ECOM plug-ins - * - */ - void DestroyConstructionParams(); - - /** - * Call when a plug-in is loaded to add a newly loaded plug-in to a currently - * loaded suite (if available) - * no ownership transfer - * - * @param aPluginSuite pointer to the new plug-in to be added - */ - void AddNewPluginToSuiteL(MDiagPlugin* aPlugin); - - /** - * Call when a suite is loaded to add any existing parentless plug-ins with - * matching parent UID to suite - * no ownership transfer - * - * @param aPluginSuite pointer to the new suite to be added - */ - void AddPluginsToNewSuiteL(MDiagSuitePlugin* aPluginSuite); - - /** - * Resets all member data and notifies observer that load is copmlete - * - * @param aErrorCode Plug-In load error - * @return LoadCompletedL error, if any - */ - TInt ResetAndNotify(TInt aErrorCode); - - -private: // From CActive - - /** - * @see CActive::RunL - */ - virtual void RunL(); - - /** - * @see CActive::DoCancel - */ - virtual void DoCancel(); - - /** - * @see CActive::RunError - */ - virtual TInt RunError( TInt aError ); - -private: // member data - - MDiagPluginPoolObserver& iObserver; - - // List of plug-ins that have been loaded - RPointerArray iPlugins; - - // Array of plug-in construction params - // owned - RConstructionParamArray* iConstructionParamArray; - - // Indicates that all plug-ins have been loaded - TBool iPluginsLoaded; - - // Indicates that plug-ins are currently loading - TBool iPluginsLoading; - - // Index of current plug-in for plug-in load iteration - TInt iCurrentPluginIndex; - - // Holds error code for first error found in loading process - TInt iErrorCode; - - // Total number of plug-ins found - TInt iTotalPluginsFound; - }; - -#endif // DIAGPLUGINPOOLIMPL_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagpluginpoolobserver.h --- a/devicediagnosticsfw/diagframework/inc/diagpluginpoolobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2007 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: Observer interface to use with CDiagPluginPool -* -*/ - - -#ifndef DIAGPLUGINPOOLOBSERVER_H -#define DIAGPLUGINPOOLOBSERVER_H - -// INCLUDES -#include // TUid -#include // TInt - -// FORWARD DECLARATIONS -class MDiagPlugin; - -/** -* Diagnostics Framework Plugin Pool Observer -* -* This interface is called by CDiagPluginPool to notify the plug-in -* loading progress. This is used only for LoadAsyncL() scenario. -* -* @since S60 v5.0 -*/ -class MDiagPluginPoolObserver - { -public: - - /** - * Notify client of plug-in loading progress. - * - * @param aCurrPlugin Current plugin index in loading process. - * Use it to display loading progress. - * @param aPluginCount Totals number of plug-ins - * @param aLoadedPluginUid Uid of the plug-in just loaded. - */ - virtual void LoadProgressL( TUint aCurrentPlugin, - TUint aPluginCount, - const TUid& aLoadedPluginUid ) = 0; - - - /** - * Notify client of plug-in loading completion - * - * @param aError KErrNone - Success - * KErrCorrupt - One ore more plugin could not - * be loaded. - * KErrNoMemory - Not enough memory. - */ - virtual void LoadCompletedL( TInt aError ) = 0; - }; - - -#endif // DIAGPLUGINPOOLOBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagresultdetail.h --- a/devicediagnosticsfw/diagframework/inc/diagresultdetail.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2007 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: Diagnostics Detail Test Result Interface -* -*/ - - -#ifndef DIAGRESULTDETAIL_H -#define DIAGRESULTDETAIL_H - -// INCLUDES -#include // RBuf - -// FORWARD DECLARATIONS -class CGulIcon; - - -/** -* Diagnostics Framework Test Result Details -* -* This interface allows application to query addtional information about -* Diagnostics Test Result. -* -* @since S60 v5.0 -*/ -class MDiagResultDetail - { -public: - /** - * Possible Output Formats. - */ - enum TOutputFormat - { - EGetMoreInfo, // Human readable text format. - ECorrectionUrl, // URL for correction - ECorrectionUrlCaption // Caption for the correction URL. - }; - - /** - * Get list of supported output - * - * @param aOutputList - Returns supported output formats - */ - virtual void GetSupportedOutput( RArray& aOutputList ) const = 0; - - /** - * Check if a given output format is supported. - * - * @param aOutputFormat - Possible output formate. - * @return ETrue if supported. EFalse otherwise. - */ - virtual TBool IsOutputSupported( TOutputFormat aOutputFormat ) const = 0; - - /** - * Output current result to a specified format. - * - * @param aFormat Format of desired output. - * @param aBuffer Output buffer. - */ - virtual void GetOutputL( TOutputFormat aFormat, RBuf& aBuffer ) const = 0; - - /** - * Create an icon. Icon can be created based on the results of the test. - * - * @return An icon that matches the result of the test. - **/ - virtual CGulIcon* CreateIconL() const = 0; - - /** - * Externalize to CBufFlat. This will be how the data will be stored in the - * CDiagResultsDatabaseItem - * - * @return CBufFlat containing the externalized data. Ownership is passed - * to the caller. - **/ - virtual CBufFlat* ExternalizeToBufferL() const = 0; - - /** - * C++ Virtual destructor. Virtual destructor must be defined to make sure - * that correct destructor is called. - * - **/ - virtual ~MDiagResultDetail() {}; - }; - -#endif // DIAGRESULTDETAIL_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagresultsdbItembuilder.h --- a/devicediagnosticsfw/diagframework/inc/diagresultsdbItembuilder.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,244 +0,0 @@ -/* -* Copyright (c) 2007 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: Diagnostics Results Database Item Builder -* -*/ - - - -#ifndef DIAGRESULTSDBITEMBUILDER_H -#define DIAGRESULTSDBITEMBUILDER_H - -// INCLUDES -#include // CDiagResultsDatabaseItem::TResult - -// FORWARD DECLARATIONS -namespace DRM - { - class CDrmServiceApi; - } - -class MDiagResultDetail; - - -/** -* Diagnostics Result Database Item Builder. -* -* This class can be used to build CDiagResultsDatabaseItem, without having -* to have all the values avaliable. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CDiagResultsDbItemBuilder ) : public CBase - { -public: // Constructors and Destructors - /** - * Two-phase constructor. - * - * This will set the test started time to now. - * - * @param aTestUid - Test Uid. - * @param aDependencyExecution - Whether thsa was executed as dependency. - * @return New instance of CDiagResultsDbItemBuilder - */ - IMPORT_C static CDiagResultsDbItemBuilder* NewL( TUid aTestUid, - TBool aDependencyExecution ); - IMPORT_C static CDiagResultsDbItemBuilder* NewLC( TUid aTestUid, - TBool aDependencyExecution ); - - /** - * Destructor - * - */ - virtual ~CDiagResultsDbItemBuilder(); - -public: // New Interface - - /** - * Set Test Uid - * - * @param aUid - Test uid. - */ - IMPORT_C void SetTestUid( TUid aUid ); - - /** - * Get Test Uid - * - * @return Test uid. - */ - IMPORT_C TUid TestUid() const; - - /** - * Get current time. If DRM clock is available, it will use the DRM clock. - * - */ - IMPORT_C TTime GetCurrentTime() const; - - /** - * Set whether test was executed as dependency or not. - * - * @param aWasDependency - */ - IMPORT_C void SetWasDependency( TBool aWasDependency ); - - /** - * Get was dependency value - * - * @return ETrue if test was executed as a dependency. - */ - IMPORT_C TBool WasDependency() const; - - /** - * Update test result and also set completed time to now - * - * @param aResult - Test result. - */ - IMPORT_C void SetTestCompleted( CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Get Test result - * - * @return Test result. - */ - IMPORT_C CDiagResultsDatabaseItem::TResult TestResult() const; - - /** - * Set Time Started - * - * @param aTime - time started. - */ - IMPORT_C void SetTimeStarted( TTime aTime ); - - /** - * Get Time started. - * - * @return Time started. - */ - IMPORT_C TTime TimeStarted() const; - - /** - * Set Time Completed - * - * @param aTime - time completed. - */ - IMPORT_C void SetTimeCompleted( TTime aTime ); - - /** - * Get Time Completed.. - * - * @return Time Completed. - */ - IMPORT_C TTime TimeCompleted() const; - - /** - * Set result detail object. If it was already set, previous object is deleted. - * - * @param aResultDetail - Result detail object. Ownership is transferred. - */ - IMPORT_C void SetResultDetail( MDiagResultDetail* aResultDetail ); - - /** - * Get result detail object. Use static_cast to change to specific instance. - * If result detail was not set previosuly, it will Panic with - * EDiagFrameworkInvalidState - * - * @return Result detail object. - */ - IMPORT_C MDiagResultDetail& ResultDetail() const; - - /** - * Create CDiagResultsDatabaseItem from data available. - * - */ - IMPORT_C CDiagResultsDatabaseItem* ToResultsDatabaseItemL() const; - - /** - * Create a simple CDiagResultsDatabaseItem. This function is meant to be - * used to create default result data with just with minimal set of information. - * It will use current time as both start and end time of test. - * If manipulation of other information in needed, either instantiate - * CDiagResultsDbItemBuilder or CDiagResultsDatabaseItem - * - * @param aTestUid - Uid of test plugin. - * @param aAsDependency - Whether it was executed as dependency or not. - * @param aResultType - Result of the test. - * @return Instance of CDiagResultsDatabaseItem* with given info. - * Ownership is transferred. - */ - IMPORT_C static CDiagResultsDatabaseItem* CreateSimpleDbItemL( - TUid aTestUid, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResultType ); - - -protected: // constructors - /** - * C++ Constructor - * - * @param aTestUid - Uid of the test - * @param aDependencyExecution - Whether this is being executed as dependency. - */ - CDiagResultsDbItemBuilder( TUid aTestUid, - TBool aDependencyExecution ); - /** - * ConstructL - * - */ - void ConstructL(); - -private: // Data - /** - * iTestUid - Uid of the test plug-in that this result is for. - */ - TUid iTestUid; - - /** - * iDependencyExecution - Whether this test is being executed to - * satisfy dependency or not. - */ - TBool iDependencyExecution; - - /** - * iResut - Actual result of the test. - */ - CDiagResultsDatabaseItem::TResult iResult; - - /** - * iStartTime - Time test started. - */ - TTime iStartTime; - - /** - * iEndTime - Time test finished. - */ - TTime iEndTime; - - /** - * iResultDetail - Extra details data. - * Owns. - */ - MDiagResultDetail* iResultDetail; - - /** - * iDrmApi - Used to get accurate clock through DRM. - * Owns. - */ - DRM::CDrmServiceApi* iDrmApi; - }; - - -#endif // DIAGRESULTSDBITEMBUILDER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagrootsuite.h --- a/devicediagnosticsfw/diagframework/inc/diagrootsuite.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,233 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagRootSuite -* -*/ - - -#ifndef DIAGROOTSUITE_H -#define DIAGROOTSUITE_H - - -// SYSTEM INCLUDES -#include // MDiagSuitePlugin - -// USER INCLUDES - -// fORWARD DECLARATIONS - -namespace DiagFwInternal - { -/** -* Diagnostics Root Suite -* -* This class implements root suite. This provides a container for ALL suites -* that can be loaded via Plug-in Pool. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CDiagRootSuite ) : public CBase, - public MDiagSuitePlugin - { -public: - - /** - * Two-phased constructors. - * - * @return New instance of CDiagRootSuite* - */ - static CDiagRootSuite* NewL(); - static CDiagRootSuite* NewLC(); - - /** - * Destructor. - */ - virtual ~CDiagRootSuite(); - -public: // from MDiagPlugin - /** - * Get name of the plug-in - * @see MDiagPlugin::GetPluginNameL - */ - virtual HBufC* GetPluginNameL( TNameLayoutType aLayoutType ) const; - - /** - * Get name of the service it provides. - * @see MDiagPlugin::ServiceLogicalName - */ - virtual const TDesC& ServiceLogicalName() const; - - /** - * Get list af dependencies it requires. - * @see MDiagPlugin::GetLogicalDependenciesL - */ - virtual void GetLogicalDependenciesL( CPtrCArray& aArray ) const; - - /** - * Get Type of plug-in - * @see MDiagPlugin::Type - */ - virtual TPluginType Type() const; - - /** - * Create an icon for this plug-in. - * @see MDiagPlugin::CreateIconL - */ - virtual CGulIcon* CreateIconL() const; - - /** - * Whether this plug-in should be visible to user or not. - * @see MDiagPlugin::IsVisible - */ - virtual TBool IsVisible() const; - - /** - * Whether this plug-in is supported in this build or not. - * @see MDiagPlugin::IsSupported - */ - virtual TBool IsSupported() const; - - /** - * Get localized title of the plug-in - * @see MDiagPlugin::GetTitleL - */ - virtual HBufC* GetTitleL() const; - - /** - * Get localized description of the plug-in - * @see MDiagPlugin::GetDescriptionL - */ - virtual HBufC* GetDescriptionL() const; - - /** - * Uid of the plug-in - * @see MDiagPlugin::Uid - */ - virtual TUid Uid() const; - - /** - * Uid of the parent plug-in - * @see MDiagPlugin::ParentUid - */ - virtual TUid ParentUid() const; - - /** - * Set destructor key for ECOM plug-in - * @see MDiagPlugin::SetDtorIdKey - */ - virtual void SetDtorIdKey( TUid aDtorIdKey ); - - /** - * Custom operation - * @see MDiagPlugin::CustomOperationL - */ - virtual TAny* CustomOperationL( TUid aUid, TAny* aParam ); - - /** - * Custom operation - * @see MDiagPlugin::GetCustomL - */ - virtual TAny* GetCustomL( TUid aUid, TAny* aParam ); - - /** - * Order to appear in the parent - * @see MDiagPlugin::Order - */ - virtual TUint Order() const; - - /** - * Initialize the plug-in for execution. - * @see MDiagPlugin::TestSessionBeginL - */ - virtual void TestSessionBeginL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - /** - * Cleanup the plug-in after execution. - * @see MDiagPlugin::TestSessionEndL - */ - virtual void TestSessionEndL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - -public: // from MDiagSuitePlugin - /** - * Get list of children in the specified order. - * @see MDiagSuitePlugin::GetChildrenL - */ - virtual void GetChildrenL( RPointerArray& aChildren, - TSortOrder aOrder ) const; - - /** - * Add child - * @see MDiagSuitePlugin::AddChildL - */ - virtual void AddChildL( MDiagPlugin* aChild ); - - /** - * Prepare suite entering one of its children. - * @see MDiagSuitePlugin::PrepareExecutionL - */ - virtual void PrepareChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ); - - /** - * Finalize suite for exiting one of its children. - * @see MDiagSuitePlugin::FinalizeExecutionL - */ - virtual void FinalizeChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ); - - /** - * Get list of uids of its children it the specified order. - * @see MDiagSuitePlugin::GetChildrenUidsL - */ - virtual void GetChildrenUidsL( RArray& aUids, - TSortOrder aOrder ) const; - - /** - * Stop execution of PrepareExecutionL or FinalizeExecutionL - * @see MDiagSuitePlugin::ExecutionStopL - */ - virtual void ExecutionStopL( TStopReason aReason ); - - -private: // private constructors - - /** - * C++ Constructor. - **/ - CDiagRootSuite(); - - /** - * 2nd phase constructor - */ - void ConstructL(); - - -private: // data - - /** - * iChildren - list of plug-ins it owns. - */ - RPointerArray iChildren; - }; - } // namespace DiagFwInternal -#endif // DIAGROOTSUITE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagsuiteexecparam.h --- a/devicediagnosticsfw/diagframework/inc/diagsuiteexecparam.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2007 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: Provides execution parameters for Suite plug-ins -* -*/ - - - -#ifndef DIAGSUITEEXECPARAM_H -#define DIAGSUITEEXECPARAM_H - -// SYSTEM INCLUDES -#include // IMPORT_C / EXPORT_C - - -// FORWARD DECLARATIONS -class MDiagSuiteObserver; -class MDiagEngineCommon; - -/** -* Diagnostics Suite plug-in Execution Parameters -* -* This class provides the execution environment for Suite plug-ins. -* -* @since S60 v5.0 -**/ -NONSHARABLE_CLASS( TDiagSuiteExecParam ) - { -public: - /** - * C++ Constructor - * - * @param aObserver - Observer to notify continuation. - * @param aEngine - Reference to engine that provides necessary environment - * for suite execution, such as CDiagPluginPool, CAknViewAppUi and - * CDiagPluginExecPlan. - */ - IMPORT_C TDiagSuiteExecParam( MDiagSuiteObserver& aObserver, - MDiagEngineCommon& aEngine ); - -public: // new functions - - /** - * Get the Suite plug-in execution observer. - * - * @return MDiagSuiteObserver - Observer of Suite-plugin. - **/ - IMPORT_C MDiagSuiteObserver& Observer() const; - - /** - * Get execution engine. - * - * @return MDiagEngineCommon - Engine that executes the plug-in. - * Engine provides various functionalities needed for executing - * plug-ins. - **/ - IMPORT_C MDiagEngineCommon& Engine() const; - -private: // data - /** - * iObserver - Suite execution observer. - */ - MDiagSuiteObserver& iObserver; - - /** - * iEngine - Engine common interface. - */ - MDiagEngineCommon& iEngine; - }; - -#endif // DIAGSUITEEXECPARAM_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagsuiteobserver.h --- a/devicediagnosticsfw/diagframework/inc/diagsuiteobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2007 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: Interface to observe suite plug-ins -* -*/ - - -#ifndef DIAGSUITEOBSERVER_H -#define DIAGSUITEOBSERVER_H - -// FORWARD DECLARTION -class MDiagSuitePlugin; - -/** -* Diagnostics Framework Suite Plug-in Observer -* -* This interface is called by Suite Plug-ins to notify the engine -* of its suite execution completion. -* -* @since S60 v5.0 -*/ -class MDiagSuiteObserver - { -public: - /** - * Notify engine of suite plug-in execution completion. - * This should be called when PreTestExecutionL() or - * PostTestExecutionL() is called. - * - * @param aSender - reference to sender object. - */ - virtual void ContinueExecutionL( const MDiagSuitePlugin& aSender ) = 0; - }; - - -#endif // DIAGSUITEOBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagsuiteplugin.h --- a/devicediagnosticsfw/diagframework/inc/diagsuiteplugin.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,128 +0,0 @@ -/* -* Copyright (c) 2007 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: This is a test suite i.e. contains collection of tests. -* -*/ - - - -#ifndef DIAGSUITEPLUGIN_H -#define DIAGSUITEPLUGIN_H - -// INCLUDES -#include // MDiagPlugin - -// FORWARD DECLARATIONS -class MDiagSuiteObserver; -class MDiagEngineCommon; -class CDiagPluginPool; -class TDiagSuiteExecParam; - -/** -* Test suite plug-in abstract interface. -* -* @since S60 v5.0 -**/ -class MDiagSuitePlugin: public MDiagPlugin - { -public: //DATA STRUCTURES - - /** - * Defines sorting algorithm. - **/ - enum TSortOrder - { - ENotSorted, - ESortByPosition - }; - - /** - * Reason for execution stop. - **/ - enum TStopReason - { - ESkip, - ECancelAll, - EWatchdog - }; - -public: // new API - - /** - * Get children of this plug-in. The pointer array is guaranteed to - * be sorted defined by TSortOrder. - * @param aChildren Children are appended into this array. - * @param aOrder Sorting algorithm. - **/ - virtual void GetChildrenL( RPointerArray& aChildren, - TSortOrder aOrder ) const = 0; - - /** - * Add one child. Child can be either a test suite or a test plug-in. - * @param aChild - Child to be added. Ownership is transferred to - * MDiagPluginSuite. - **/ - virtual void AddChildL( MDiagPlugin* aChild ) = 0; - - /** - * Called before one of its test plug-in is executed. Note that it will - * not be called if two of its children plug-ins are executed in - * sequence. - * - * @param aExecParams Parameters for suite pre execution - * @param aSkipDependencyCheck - If ETrue dependency is disabled - * for this test session. - * @param aDependencyExecution - If ETrue, this suite is being - * executed to satisfy dependency. - **/ - virtual void PrepareChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ) = 0; - - /** - * Called before test execution switches to another test suite. - * - * @param aExecParams Parameters for suite post execution - * @param aSkipDependencyCheck - If ETrue dependency is disabled - * for this test session. - * @param aDependencyExecution - If ETrue, this suite is being - * executed to satisfy dependency. - **/ - virtual void FinalizeChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ) = 0; - - /** - * Get the Uids. The uid is used for database access. - * Test suites return a list of their childrens' uids. - * - * @param aUids An UID array. - * @param aOrder Sorting algorithm. - **/ - virtual void GetChildrenUidsL( RArray& aUids, - TSortOrder aOrder ) const = 0; - - /** - * Cancels pre/post execution. Cancellation is expected to be synchronous. - * Suite plug-in must not call ContinueExecutionL(). - * - * @param aReason - Reason why ExecutionStopL() is being called. - **/ - virtual void ExecutionStopL( TStopReason aReason ) = 0; - }; - -#endif // DIAGSUITEPLUGIN_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagtestexecparam.h --- a/devicediagnosticsfw/diagframework/inc/diagtestexecparam.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2007 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: Provides execution parameters for test plug-ins -* -*/ - - - -#ifndef DIAGTESTEXECPARAM_H -#define DIAGTESTEXECPARAM_H - - -// SYSTEM INCLUDES -#include // IMPORT_C / EXPORT_C - -// FORWARD DECLARATIONS -class MDiagTestObserver; -class MDiagEngineCommon; - -/** -* Diagnostics test plug-in Execution Parameters -* -* This class provides the execution environment for test plug-ins. -* -* @since S60 v5.0 -**/ -NONSHARABLE_CLASS( TDiagTestExecParam ) - { -public: // constructor - /** - * C++ Constructor - * - * @param aObserver - Observer to notify test execution progress. - * @param aEngine - Reference to engine that provides necessary environment - * for test execution, such as CDiagPluginPool, or CAknViewAppUi. - */ - IMPORT_C TDiagTestExecParam( MDiagTestObserver& aObserver, - MDiagEngineCommon& aEngine ); - -public: // new functions - - /** - * Get the test plug-in execution observer. - * - * @return MDiagTestObserver - Observer of test-plugin. Test progress - * and completion should be notified via this object. - **/ - IMPORT_C MDiagTestObserver& Observer() const; - - /** - * Get execution engine. - * - * @return MDiagEngineCommon - Engine that executes the plug-in. - * Engine provides various functionalities needed for executing - * plug-ins. - **/ - IMPORT_C MDiagEngineCommon& Engine() const; - -private: // data - /** - * iObserver - Test execution observer. - */ - MDiagTestObserver& iObserver; - - /** - * iEngine - Common Engine interface - */ - MDiagEngineCommon& iEngine; - }; - -#endif // DIAGTESTEXECPARAM_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagtestobserver.h --- a/devicediagnosticsfw/diagframework/inc/diagtestobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2007 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: Interface to observe test plug-ins -* -*/ - - -#ifndef DIAGTESTOBSERVER_H -#define DIAGTESTOBSERVER_H - -// INCLUDES -#include // TUint -#include // TDiagEngineWatchdogTypes - -// FORWARD DECLARATION -class CDiagResultsDatabaseItem; -class MDiagTestPlugin; - - -/** -* Diagnostics Framework Test Plug-in Observer -* -* This interface is called by Test Plug-ins to notify the engine -* of its test execution progress or completion. -* -* @since S60 v3.2 -*/ -class MDiagTestObserver - { -public: - /** - * Notify engine of test plug-in execution progress. - * - * @param aSender - Reference to sender object. - * @param aCurrentStep - Current execution step. - */ - virtual void TestProgressL( const MDiagTestPlugin& aSender, - TUint aCurrentStep ) = 0; - - - /** - * Notify engine of test plug-in execution completion. - * - * @param aSender Reference to sender object. - * @param aTestResult Result of test execution. Ownership is transferred - * from the plug-in to engine. - */ - virtual void TestExecutionCompletedL( const MDiagTestPlugin& aSender, - CDiagResultsDatabaseItem* aTestResult ) = 0; - }; - - -#endif // DIAGTESTOBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/inc/diagtestplugin.h --- a/devicediagnosticsfw/diagframework/inc/diagtestplugin.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -/* -* Copyright (c) 2007 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: Test Plugin Abstract Interface -* -*/ - - -#ifndef DIAGTESTPLUGIN_H -#define DIAGTESTPLUGIN_H - -// INCLUDES -#include // MDiagPlugin - - -// FORWARD DECLARATION -class CDiagPluginExecPlan; -class MDiagTestObserver; -class MDiagEngineCommon; -class CDiagPluginPool; -class TDiagTestExecParam; -class CDiagResultsDatabaseItem; -class MDiagResultDetail; - -/** -* Diagnostics test plug-in abstract interface. -* -* @since S60 v5.0 -**/ -class MDiagTestPlugin: public MDiagPlugin - { -public: - - /** - * Run mode defines what kind of behaviour is expected from this plug-in. - **/ - enum TRunMode - { - EInteractiveView, // plugin with a view - EInteractiveDialog, // interactive, but with dialogs - EAutomatic // automatic tests - }; - - /** - * Reason for execution stop. - **/ - enum TStopReason - { - ESkip, - ECancelAll, - EWatchdog - }; - - /** - * Execute a diagnostics test. This is an asynchronous method. The plug-in - * must call MDiagTestObserver:TestExecutionCompletedL when test has finished. - * - * @param aExecParams Parameters for running the test. - * @param aSkipDependencyCheck - If ETrue, plug-in should execute even if - * dependencies are not executed. - * @param aDependencyExecution - If ETrue, this is being executed to - * satisfy dependency. - * @param aCustomParams Custom parameters for plug-ins. - * These should be used if TDiagTestExecParam is not enough. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual void RunTestL( TDiagTestExecParam* aExecParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution, - TAny* aCustomParams ) = 0; - - /** - * Describes the run mode of the test plug-in. - * - * @return Run mode. - * @see TDiagRunMode. - **/ - virtual TRunMode RunMode() const = 0; - - /** - * Cancels testing. Cancellation is expected to be synchronous. - * Test plug-in must return the result immediately, and it must not call - * TestExecutionCompletedL(). Ownership of the CDiagResultsDatabaseItem is - * transferred to the caller. - * - * @param aReason - Reason why ExecutionStopL() is being called. - * @return Returns result object. Test must not call TestExecutionCompletedL. - **/ - virtual CDiagResultsDatabaseItem* ExecutionStopL( TStopReason aReason ) = 0; - - /** - * Suspend test. If test cannot be suspended, it will leave with - * KErrNotSupported. - **/ - virtual void SuspendL() = 0; - - /** - * Resume test. If test cannot be resumed, it will leave with - * KErrNotSupported. - **/ - virtual void ResumeL() = 0; - - /** - * Get the number of steps that is needed to execute tests. - * This can be used to calculate progress information. - * - * @return The number of steps. - **/ - virtual TUint TotalSteps() const = 0; - - /** - * Create detailed information object from test result. - * Ownership is transferred to caller. - * - * @param aTestResult - Base test result. - * @return Instance of MDiagResultDetail* that can provide detailed - * information about the last test. - **/ - virtual MDiagResultDetail* CreateDetailL( - const CDiagResultsDatabaseItem& aResult ) const = 0; - }; - -#endif // DIAGTESTPLUGIN_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/DiagTestExecParam.cpp --- a/devicediagnosticsfw/diagframework/src/DiagTestExecParam.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of TDiagTestExecParam -* -*/ - - -// CLASS DECLARATION -#include - -// SYSTEM INCLUDE FILES - -// USER INCLUDE FILES - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// TDiagTestExecParam::TDiagTestExecParam() -// --------------------------------------------------------------------------- -// -EXPORT_C TDiagTestExecParam::TDiagTestExecParam( MDiagTestObserver& aObserver, - MDiagEngineCommon& aEngine ) - : iObserver( aObserver ), - iEngine( aEngine ) - { - } - - -// --------------------------------------------------------------------------- -// TDiagTestExecParam::Observer() -// --------------------------------------------------------------------------- -// -EXPORT_C MDiagTestObserver& TDiagTestExecParam::Observer() const - { - return iObserver; - } - - -// --------------------------------------------------------------------------- -// TDiagTestExecParam::Engine() -// --------------------------------------------------------------------------- -// -EXPORT_C MDiagEngineCommon& TDiagTestExecParam::Engine() const - { - return iEngine; - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagengine.cpp --- a/devicediagnosticsfw/diagframework/src/diagengine.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,376 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagEngine -* -*/ - - -// CLASS DECLARATION -#include "diagengineimpl.h" - -// SYSTEM INCLUDE FILES -#include - -// USER INCLUDE FILES -#include "diagframework.pan" // For Panics codes. - -#include "diagpluginexecplan.h" // ADO & Platformization Changes -#include "diagexecplanentryimpltest.h" // ADO & Platformization Changes -// ======== LOCAL FUNCTIONS ======== - - -// ======== MEMBER FUNCTIONS ======== - - -// --------------------------------------------------------------------------- -// CDiagEngine::NewL() -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagEngine* CDiagEngine::NewL( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ) - { - CDiagEngine* self = CDiagEngine::NewLC( aViewAppUi, - aObserver, - aDbSession, - aPluginPool, - aDisableDependency, - aExecutionBatch ); - - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDiagEngine::NewLC() -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagEngine* CDiagEngine::NewLC( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ) - { - CDiagEngine* self = new ( ELeave ) CDiagEngine(); - CleanupStack::PushL( self ); - - self->iEngineImpl = CDiagEngineImpl::NewL( aViewAppUi, - aObserver, - aDbSession, - aPluginPool, - aDisableDependency, - aExecutionBatch ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagEngine::NewL() -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagEngine* CDiagEngine::NewL( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TUid aIncompleteRecordUid ) - { - CDiagEngine* self = CDiagEngine::NewLC( aViewAppUi, - aObserver, - aDbSession, - aPluginPool, - aIncompleteRecordUid ); - - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDiagEngine::NewLC() -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagEngine* CDiagEngine::NewLC( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TUid aIncompleteRecordUid ) - { - CDiagEngine* self = new ( ELeave ) CDiagEngine(); - CleanupStack::PushL( self ); - - self->iEngineImpl = CDiagEngineImpl::NewL( aViewAppUi, - aObserver, - aDbSession, - aPluginPool, - aIncompleteRecordUid ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDiagEngine::~CDiagEngine -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagEngine::~CDiagEngine() - { - delete iEngineImpl; - iEngineImpl = NULL; - } - - -// --------------------------------------------------------------------------- -// CDiagEngine::ExecuteL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagEngine::ExecuteL() - { - iEngineImpl->ExecuteL(); - } - -// --------------------------------------------------------------------------- -// CDiagEngine::SetCustomParam -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagEngine::SetCustomParam( TAny* aCustomParams ) - { - __ASSERT_ALWAYS( aCustomParams, Panic( EDiagFrameworkBadArgument ) ); - iEngineImpl->SetCustomParam( aCustomParams ); - } - -// --------------------------------------------------------------------------- -// CDiagEngine::SuspendL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagEngine::SuspendL() - { - iEngineImpl->SuspendL(); - } - -// --------------------------------------------------------------------------- -// CDiagEngine::ResumeL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagEngine::ResumeL() - { - iEngineImpl->ResumeL(); - } - - - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::ExecutionPlanL -// --------------------------------------------------------------------------- -// -const MDiagPluginExecPlan& CDiagEngine::ExecutionPlanL() const - { - return iEngineImpl->ExecutionPlanL(); - } - - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::ExecutionStopL -// --------------------------------------------------------------------------- -// -void CDiagEngine::ExecutionStopL( TCancelMode aCancelMode ) - { - iEngineImpl->ExecutionStopL( aCancelMode ); - } - - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::ResetWatchdog -// --------------------------------------------------------------------------- -// -void CDiagEngine::ResetWatchdog() - { - iEngineImpl->ResetWatchdog(); - } - - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::ResetWatchdog -// --------------------------------------------------------------------------- -// -void CDiagEngine::ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType ) - { - iEngineImpl->ResetWatchdog( aWatchdogType ); - } - - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::ResetWatchdog -// --------------------------------------------------------------------------- -// -void CDiagEngine::ResetWatchdog( TTimeIntervalMicroSeconds32 aExpectedTimeToComplete ) - { - iEngineImpl->ResetWatchdog( aExpectedTimeToComplete ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::ViewAppUi -// --------------------------------------------------------------------------- -// -CAknViewAppUi& CDiagEngine::ViewAppUi() - { - return iEngineImpl->ViewAppUi(); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::ViewAppUi -// --------------------------------------------------------------------------- -// -const CAknViewAppUi& CDiagEngine::ViewAppUi() const - { - return iEngineImpl->ViewAppUi(); - } - - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::DbRecord -// --------------------------------------------------------------------------- -// -RDiagResultsDatabaseRecord& CDiagEngine::DbRecord() - { - return iEngineImpl->DbRecord(); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::DbRecord -// --------------------------------------------------------------------------- -// -const RDiagResultsDatabaseRecord& CDiagEngine::DbRecord() const - { - return iEngineImpl->DbRecord(); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::DbRecord -// --------------------------------------------------------------------------- -// -CDiagPluginPool& CDiagEngine::PluginPool() - { - return iEngineImpl->PluginPool(); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::DbRecord -// --------------------------------------------------------------------------- -// -const CDiagPluginPool& CDiagEngine::PluginPool() const - { - return iEngineImpl->PluginPool(); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::AddToConfigListL -// --------------------------------------------------------------------------- -// -void CDiagEngine::AddToConfigListL( MDiagEngineCommon::TConfigListType aListType, - const TDesC& aText ) - { - return iEngineImpl->AddToConfigListL( aListType, aText ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::RemoveFromConfigListL -// --------------------------------------------------------------------------- -// -void CDiagEngine::RemoveFromConfigListL( MDiagEngineCommon::TConfigListType aListType, - const TDesC& aText ) - { - return iEngineImpl->RemoveFromConfigListL( aListType, aText ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::CreateCommonDialogLC -// --------------------------------------------------------------------------- -// -CAknDialog* CDiagEngine::CreateCommonDialogLC( TDiagCommonDialog aDialogType, - TAny* aInitData ) - { - return iEngineImpl->CreateCommonDialogLC( aDialogType, aInitData ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::ExecuteAppCommandL -// --------------------------------------------------------------------------- -// -void CDiagEngine::ExecuteAppCommandL( TDiagAppCommand aCommand, - TAny* aParam1, - TAny* aParam2 ) - { - iEngineImpl->ExecuteAppCommandL( aCommand, aParam1, aParam2 ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::StopWatchdogTemporarily -// --------------------------------------------------------------------------- -// -void CDiagEngine::StopWatchdogTemporarily() - { - iEngineImpl->StopWatchdogTemporarily(); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::IsDependencyDisabled -// --------------------------------------------------------------------------- -// -TBool CDiagEngine::IsDependencyDisabled() const - { - return iEngineImpl->IsDependencyDisabled(); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngine::CustomParam -// --------------------------------------------------------------------------- -// -TAny* CDiagEngine::CustomParam() const - { - return iEngineImpl->CustomParam(); - } - - - // ADO & Platformization Changes - -///@@@KSR: changes for Codescanner error val = High -//EXPORT_C TBool CDiagEngine::GetPluginDependency() -EXPORT_C TBool CDiagEngine::GetPluginDependencyL() -{ - return iEngineImpl->ExecutionPlanL().CurrentExecutionItem().AsDependency(); -} - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagenginecallhandler.cpp --- a/devicediagnosticsfw/diagframework/src/diagenginecallhandler.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,402 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagEngineCallHandler -* -*/ - - -// CLASS DECLARATION -#include "diagenginecallhandler.h" - -// SYSTEM INCLUDE FILES -#include // LOGSTRING -#include // CDesCArrayFlat - -// USER INCLUDE FILES -#include "diagenginecallhandlerobserver.h" // MDiagEngineCallHandlerObserver - - -// CONSTANTS - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::NewL -// --------------------------------------------------------------------------- -// -CDiagEngineCallHandler* CDiagEngineCallHandler::NewL( - MDiagEngineCallHandlerObserver& aObserver ) - { - CDiagEngineCallHandler* self = new( ELeave )CDiagEngineCallHandler( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::CDiagEngineCallHandler -// --------------------------------------------------------------------------- -// -CDiagEngineCallHandler::CDiagEngineCallHandler( - MDiagEngineCallHandlerObserver& aObserver ) - : CActive( EPriorityStandard ), - iObserver( aObserver ), - iCallStatus(), - iCallStatusPckg( iCallStatus ) - { - } - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::ConstructL -// --------------------------------------------------------------------------- -// -void CDiagEngineCallHandler::ConstructL() - { - CActiveScheduler::Add( this ); - - iCallIgnoreList = new( ELeave )CDesCArrayFlat( 1 ); - - iTelephony = CTelephony::NewL(); - - // Get call initial status. - TInt err = iTelephony->GetLineStatus( CTelephony::EVoiceLine, iCallStatusPckg ); - - if ( err != KErrNone ) - { - // This can happen even if hw failure does not occur. E.g. - // user puts the phone in offline mode, or sim card is missing. - // In this situation, assume that phone is offline and continue - // since it does not actually affect engine execution. - LOGSTRING2( "CDiagEngineCallHandler::ConstructL() " - L"Unable to get voice line status. Err = %d", err ) - iState = EDiagEngineCallHandlerStateIdle; - } - else - { - LOGSTRING2( "CDiagEngineCallHandler::ConstructL() Call status = %d", - iCallStatus.iStatus ) - if ( iCallStatus.iStatus != CTelephony::EStatusIdle ) - { - iState = EDiagEngineCallHandlerStateBusy; - } - } - - RequestNotify(); - } - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::~CDiagEngineCallHandler -// --------------------------------------------------------------------------- -// -CDiagEngineCallHandler::~CDiagEngineCallHandler() - { - Cancel(); - - delete iTelephony; - iTelephony = NULL; - - delete iCallIgnoreList; - iCallIgnoreList = NULL; - } - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::AddIgnoreNumberL -// --------------------------------------------------------------------------- -// -void CDiagEngineCallHandler::AddIgnoreNumberL( const TDesC& aNumber ) - { - LOGSTRING( "CDiagEngineCallHandler::AddIgnoreNumberL: Number = " ) - LOGTEXT( aNumber ) - - iCallIgnoreList->AppendL( aNumber ); - } - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::RemoveIgnoreNumberL -// --------------------------------------------------------------------------- -// -void CDiagEngineCallHandler::RemoveIgnoreNumberL( const TDesC& aNumber ) - { - LOGSTRING( "CDiagEngineCallHandler::RemoveIgnoreNumberL: Number = " ) - LOGTEXT( aNumber ) - - TInt position = 0; - - TInt err = iCallIgnoreList->Find( aNumber, position ); - - if ( err == KErrNone ) - { - // element found. Remove. - iCallIgnoreList->Delete( position ); - } - else - { - LOGSTRING2( "CDiagEngineCallHandler::RemoveIgnoreNumberL:" - L"Not found. Err = %d", err ) - User::Leave( err ); - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::CurrentState -// --------------------------------------------------------------------------- -// -TDiagEngineCallHandlerState CDiagEngineCallHandler::CurrentState() const - { - return iState; - } - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::RequestNotify -// --------------------------------------------------------------------------- -// -void CDiagEngineCallHandler::RequestNotify() - { - Cancel(); - iTelephony->NotifyChange( - iStatus, CTelephony::EVoiceLineStatusChange, iCallStatusPckg ); - SetActive(); - } - - -// --------------------------------------------------------------------------- -// from CActive -// CDiagEngineCallHandler::RunL() -// --------------------------------------------------------------------------- -// -void CDiagEngineCallHandler::RunL() - { - TBool notifyObserver = EFalse; - - LogCallStatus(); - - switch ( iCallStatus.iStatus ) - { - case CTelephony::EStatusIdle: - notifyObserver = HandleIdle(); - break; - - case CTelephony::EStatusDialling: // fall through - case CTelephony::EStatusRinging: - notifyObserver = HandleCall(); - break; - - default: - // Ignore. - break; - } - - if ( iStatus != KErrCancel ) - { - RequestNotify(); - } - - if ( notifyObserver ) - { - iObserver.CallHandlerStateChangedL( iState ); - } - } - -// --------------------------------------------------------------------------- -// from CActive -// CDiagEngineCallHandler::DoCancel() -// --------------------------------------------------------------------------- -// -void CDiagEngineCallHandler::DoCancel() - { - if ( iTelephony ) - { - iTelephony->CancelAsync( CTelephony::EVoiceLineStatusChangeCancel ); - } - } - - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::HandleIdle -// --------------------------------------------------------------------------- -// -TBool CDiagEngineCallHandler::HandleIdle() - { - LOGSTRING( "CDiagEngineCallHandler::HandleIdle()" ) - - TBool notifyObserver = EFalse; - if ( iState != EDiagEngineCallHandlerStateIdle ) - { - LOGSTRING( "CDiagEngineCallHandler::HandleIdle() Changing to IDLE" ) - iState = EDiagEngineCallHandlerStateIdle; - notifyObserver = ETrue; - } - - return notifyObserver; - } - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::HandleCall -// --------------------------------------------------------------------------- -// -TBool CDiagEngineCallHandler::HandleCall() - { - LOGSTRING( "CDiagEngineCallHandler::HandleCall()" ) - - TBool notifyObserver = EFalse; - - if ( iState == EDiagEngineCallHandlerStateIdle ) - { - LOGSTRING( "CDiagEngineCallHandler::HandleCall() was in Idle" ) - - // Get phone number - TBuf number; - - CTelephony::TRemotePartyInfoV1 remInfoUse; - CTelephony::TCallInfoV1 callInfoUse; - CTelephony::TCallSelectionV1 callSelectionUse; - - callSelectionUse.iLine = CTelephony::EVoiceLine; - callSelectionUse.iSelect = CTelephony::EInProgressCall; - - CTelephony::TRemotePartyInfoV1Pckg remParty( remInfoUse ); - CTelephony::TCallInfoV1Pckg callInfo( callInfoUse ); - CTelephony::TCallSelectionV1Pckg callSelection( callSelectionUse ); - - iTelephony->GetCallInfo( callSelection, callInfo, remParty ); - - LOGSTRING( "CDiagEngineCallHandler::HandleCall() Remote Number = " ) - LOGTEXT( remInfoUse.iRemoteNumber.iTelNumber ) - - LOGSTRING( "CDiagEngineCallHandler::HandleCall() Dialed Number = " ) - LOGTEXT( callInfoUse.iDialledParty.iTelNumber ) - - if ( iCallStatus.iStatus == CTelephony::EStatusRinging ) - { - number.Copy( remInfoUse.iRemoteNumber.iTelNumber ); - } - else if ( iCallStatus.iStatus == CTelephony::EStatusDialling ) - { - number.Copy( callInfoUse.iDialledParty.iTelNumber ); - } - else - { - // number not valid. - } - - // check if the number is in ignore list - TInt position = 0; - TInt err = iCallIgnoreList->Find( number, position ); - - if ( err == KErrNone ) - { - // number found. - LOGSTRING( "CDiagEngineCallHandler::HandleCall() Ignore: Number =" ) - LOGTEXT( number ) - } - else - { - // number found. - LOGSTRING( "CDiagEngineCallHandler::HandleCall() Going to Busy State. Number = " ) - LOGTEXT( number ) - - iState = EDiagEngineCallHandlerStateBusy; - - notifyObserver = ETrue; - } - } - - return notifyObserver; - } - -// --------------------------------------------------------------------------- -// CDiagEngineCallHandler::LogCallStatus -// --------------------------------------------------------------------------- -// -void CDiagEngineCallHandler::LogCallStatus() const - { - #ifdef _DEBUG - - switch ( iCallStatus.iStatus ) - { - case CTelephony::EStatusUnknown: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L" Call Status = EStatusUnknown" ) - break; - - case CTelephony::EStatusIdle: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L" Call Status = EStatusIdle" ) - break; - - case CTelephony::EStatusDialling: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L" Call Status = EStatusDialling" ) - break; - - case CTelephony::EStatusRinging: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L" Call Status = EStatusRinging" ) - break; - - case CTelephony::EStatusAnswering: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L" Call Status = EStatusAnswering" ) - break; - - case CTelephony::EStatusConnecting: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L" Call Status = EStatusConnecting" ) - break; - - case CTelephony::EStatusConnected: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L" Call Status = EStatusConnected" ) - break; - - case CTelephony::EStatusReconnectPending: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L" Call Status = EStatusReconnectPending" ) - break; - - case CTelephony::EStatusDisconnecting: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L" Call Status = EStatusDisconnecting" ) - break; - - case CTelephony::EStatusHold: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L" Call Status = EStatusHold" ) - break; - - case CTelephony::EStatusTransferring: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L"Call Status = EStatusTransferring" ) - break; - - case CTelephony::EStatusTransferAlerting: - LOGSTRING( "CDiagEngineCallHandler::LogCallStatus():" - L"Call Status = EStatusTransferAlerting" ) - break; - - default: - LOGSTRING2( "CDiagEngineCallHandler::LogCallStatus():" - L"Unknown Call Status = %d", iCallStatus.iStatus ) - break; - } - - #endif // _DEBUG - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagengineconfig.cpp --- a/devicediagnosticsfw/diagframework/src/diagengineconfig.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of TDiagEngineConfig -* -*/ - - -// CLASS DECLARATION -#include "diagengineconfig.h" - -// SYSTEM INCLUDE FILES -#include // CRepository -#include // LOGSTRING - -// USER INCLUDE FILES -#include "diagnosticsfwprivatecrkeys.h" // Private CenRep Key - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// TDiagEngineConfig::TDiagEngineConfig() -// --------------------------------------------------------------------------- -// -TDiagEngineConfig::TDiagEngineConfig() - : iCenRepWatchdogTimeoutInteractive( 0 ), - iCenRepWatchdogTimeoutAutomatic( 0 ), - iCenRepInitDelay( 0 ), - iDisableDependency( EFalse ) - { - // note that this is a T class, so all member must be initialized explicitly. - } - -// --------------------------------------------------------------------------- -// TDiagEngineConfig::ReadCenrepKeysL -// --------------------------------------------------------------------------- -// -void TDiagEngineConfig::ReadCenrepKeysL() - { - CRepository* cenrep = NULL; - cenrep = CRepository::NewLC( KCRUidDiagnosticsFw ); - - ReadTimeIntervalFromCenrepL( *cenrep, - KDiagFwWatchdogTimeoutInteractive, - iCenRepWatchdogTimeoutInteractive ); - ReadTimeIntervalFromCenrepL( *cenrep, - KDiagFwWatchdogTimeoutAutomatic, - iCenRepWatchdogTimeoutAutomatic ); - ReadTimeIntervalFromCenrepL( *cenrep, - KDiagFwTestInitDelay, - iCenRepInitDelay ); - - CleanupStack::PopAndDestroy( cenrep ); - cenrep = NULL; - - LOGSTRING2( "TDiagEngineConfig::ReadCenrepKeysL() " - L"KDiagFwWatchdogTimeoutInteractive: %d micro seconds", - iCenRepWatchdogTimeoutInteractive.Int() ) - LOGSTRING2( "TDiagEngineConfig::ReadCenrepKeysL() " - L"KDiagFwWatchdogTimeoutAutomatic: %d sec", - iCenRepWatchdogTimeoutAutomatic.Int() ) - LOGSTRING2( "TDiagEngineConfig::ReadCenrepKeysL(): " - L"KDiagFwTestInitDelay: %d microsec", - iCenRepInitDelay.Int() ) - } - -// --------------------------------------------------------------------------- -// TDiagEngineConfig::ReadTimeIntervalFromCenrepL -// --------------------------------------------------------------------------- -// -void TDiagEngineConfig::ReadTimeIntervalFromCenrepL( - CRepository& aCenrep, - TUint32 aKey, - TTimeIntervalMicroSeconds32& aValue ) - { - TInt timeoutValue = 0; - User::LeaveIfError( aCenrep.Get( aKey, timeoutValue ) ); - aValue = timeoutValue; - } - -// --------------------------------------------------------------------------- -// TDiagEngineConfig::WatchdogTimeoutValueInteractive -// --------------------------------------------------------------------------- -// -const TTimeIntervalMicroSeconds32& TDiagEngineConfig::WatchdogTimeoutValueInteractive() const - { - return iCenRepWatchdogTimeoutInteractive; - } - -// --------------------------------------------------------------------------- -// TDiagEngineConfig::WatchdogTimeoutValueAutomatic -// --------------------------------------------------------------------------- -// -const TTimeIntervalMicroSeconds32& TDiagEngineConfig::WatchdogTimeoutValueAutomatic() const - { - return iCenRepWatchdogTimeoutAutomatic; - } - -// --------------------------------------------------------------------------- -// TDiagEngineConfig::TestPluginInitialDelay -// --------------------------------------------------------------------------- -// -const TTimeIntervalMicroSeconds32& TDiagEngineConfig::TestPluginInitialDelay() const - { - return iCenRepInitDelay; - } - -// --------------------------------------------------------------------------- -// TDiagEngineConfig::SetDependencyDisabled -// --------------------------------------------------------------------------- -// -void TDiagEngineConfig::SetDependencyDisabled( TBool aDisableDependency ) - { - iDisableDependency = aDisableDependency; - } - -// --------------------------------------------------------------------------- -// TDiagEngineConfig::IsDependencyDisabled -// --------------------------------------------------------------------------- -// -TBool TDiagEngineConfig::IsDependencyDisabled() const - { - return iDisableDependency; - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagengineeventbasic.cpp --- a/devicediagnosticsfw/diagframework/src/diagengineeventbasic.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of DiagFwInternal::CEventBasic -* -*/ - - -// CLASS DECLARATION -#include "diagengineeventbasic.h" - -// SYSTEM INCLUDE FILES -#include - -// USER INCLUDE FILES -#include "diagframework.pan" // Panic Codes. - -using namespace DiagFwInternal; - -// ======== LOCAL FUNCTIONS ======== - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CEventBasic::CEventBasic() -// --------------------------------------------------------------------------- -// -CEventBasic::CEventBasic( TEvent aType ) - : iType( aType ) - { - } - -// --------------------------------------------------------------------------- -// CEventBasic::GetType() -// --------------------------------------------------------------------------- -// -TEvent CEventBasic::GetType() const - { - return iType; - } - -// --------------------------------------------------------------------------- -// CEventBasic::ToString() -// --------------------------------------------------------------------------- -// -const TDesC& CEventBasic::ToString() const - { - #if _DEBUG - _LIT( KEventExecute, "EEventExecute" ); - _LIT( KEventPlanCreated, "EEventPlanCreated" ); - _LIT( KEventExecuteNext, "EEventExecuteNext" ); - _LIT( KEventTestProgress, "EEventTestProgress" ); - _LIT( KEventResumeToRunning, "EEventResumeToRunning" ); - _LIT( KEventResumeToCreatingPlan,"EEventResumeToCreatingPlan" ); - _LIT( KEventSkip, "EEventSkip" ); - _LIT( KEventCancelAll, "EEventCancelAll" ); - _LIT( KEventSuspend, "EEventSuspend" ); - _LIT( KEventVoiceCallActive, "EEventVoiceCallActive" ); - _LIT( KEventAllPluginsCompleted, "EEventAllPluginsCompleted" ); - _LIT( KEventFinalized, "EEventFinalized" ); - - switch ( iType ) - { - case EEventExecute: - return KEventExecute(); - case EEventPlanCreated: - return KEventPlanCreated(); - case EEventExecuteNext: - return KEventExecuteNext(); - case EEventTestProgress: - return KEventTestProgress(); - case EEventResumeToRunning: - return KEventResumeToRunning(); - case EEventResumeToCreatingPlan: - return KEventResumeToCreatingPlan(); - case EEventSkip: - return KEventSkip(); - case EEventCancelAll: - return KEventCancelAll(); - case EEventSuspend: - return KEventSuspend(); - case EEventVoiceCallActive: - return KEventVoiceCallActive(); - case EEventAllPluginsCompleted: - return KEventAllPluginsCompleted(); - case EEventFinalized: - return KEventFinalized(); - default: - Panic( EDiagFrameworkInternal ); - break; - } - - - #endif // if _DEBUG - - _LIT( KEventDefaultName, "?" ); - return KEventDefaultName(); - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagengineeventtestprogress.cpp --- a/devicediagnosticsfw/diagframework/src/diagengineeventtestprogress.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of DiagFwInternal::CEventTestProgress -* -*/ - - -// CLASS DECLARATION -#include "diagengineeventtestprogress.h" - -// SYSTEM INCLUDE FILES - -// USER INCLUDE FILES - -using namespace DiagFwInternal; - -// ======== LOCAL FUNCTIONS ======== - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CEventTestProgress::CEventTestProgress() -// --------------------------------------------------------------------------- -// -CEventTestProgress::CEventTestProgress( - const MDiagPlugin& aSender, TUint aCurrStep, TUint aTotalSteps ) - : CEventBasic( EEventTestProgress ), - iSender( aSender ), - iCurrStep( aCurrStep ), - iTotalSteps( aTotalSteps ) - { - } - -// --------------------------------------------------------------------------- -// CEventTestProgress::Sender() -// --------------------------------------------------------------------------- -// -const MDiagPlugin& CEventTestProgress::Sender() const - { - return iSender; - } - -// --------------------------------------------------------------------------- -// CEventTestProgress::CurrStep() -// --------------------------------------------------------------------------- -// -TUint CEventTestProgress::CurrStep() const - { - return iCurrStep; - } - -// --------------------------------------------------------------------------- -// CEventTestProgress::TotalSteps() -// --------------------------------------------------------------------------- -// -TUint CEventTestProgress::TotalSteps() const - { - return iTotalSteps; - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagengineimpl.cpp --- a/devicediagnosticsfw/diagframework/src/diagengineimpl.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1551 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagEngineImpl -* -*/ - - -// CLASS DECLARATION -#include "diagengineimpl.h" // CDiagEngineImpl - -// SYSTEM INCLUDE FILES -#include // CDiagPluginPool -#include // LOGSTRING -#include // MDiagPlugin -#include // TDiagTestExecParam -#include // TDiagSuiteExecParam -#include // CDiagResultsDbItemBuilder -#include // CDiagResultsDbRecordEngineParam - -// USER INCLUDE FILES -#include "diagpluginexecplanimpl.h" // CDiagPluginExecPlanImpl -#include "diagexecplanentryimpltest.h" // CDiagExecPlanEntryImplTest -#include "diagenginestatemachine.h" // DiagFwInternal::CStateMachine -#include "diagenginecallhandler.h" // CDiagEngineCallHandler -#include "diagframework.pan" // Panic Codes -#include "diagengineconfig.h" // TDiagEngineConfig - -// EVENT INCLUDE FILES -#include "diagengineeventbasic.h" // DiagFwInternal::CEventBasic -#include "diagengineeventtestprogress.h" // DiagFwInternal::CEventTestProgress - -using namespace DiagFwInternal; - -// DATA - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::NewL() -// --------------------------------------------------------------------------- -// -CDiagEngineImpl* CDiagEngineImpl::NewL( - CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ) - { - CDiagEngineImpl* self = CDiagEngineImpl::NewLC( aViewAppUi, - aObserver, - aDbSession, - aPluginPool, - aDisableDependency, - aExecutionBatch ); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::NewLC() -// --------------------------------------------------------------------------- -// -CDiagEngineImpl* CDiagEngineImpl::NewLC( - CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ) - { - CDiagEngineImpl* self = new ( ELeave ) CDiagEngineImpl( aViewAppUi, - aObserver, - aDbSession, - aPluginPool ); - - CleanupStack::PushL( self ); - self->ConstructNewRecordL( aDisableDependency, aExecutionBatch ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::NewL() -// --------------------------------------------------------------------------- -// -CDiagEngineImpl* CDiagEngineImpl::NewL( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TUid aIncompleteRecordUid ) - { - CDiagEngineImpl* self = CDiagEngineImpl::NewLC( aViewAppUi, - aObserver, - aDbSession, - aPluginPool, - aIncompleteRecordUid ); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::NewLC() -// --------------------------------------------------------------------------- -// -CDiagEngineImpl* CDiagEngineImpl::NewLC( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TUid aIncompleteRecordUid ) - { - CDiagEngineImpl* self = new ( ELeave ) CDiagEngineImpl( aViewAppUi, - aObserver, - aDbSession, - aPluginPool ); - - CleanupStack::PushL( self ); - self->ConstructIncompleteRecordL( aIncompleteRecordUid ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::CDiagEngineImpl -// --------------------------------------------------------------------------- -// -CDiagEngineImpl::CDiagEngineImpl( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool ) - : CActive( EPriorityStandard ), - iViewAppUi( aViewAppUi ), - iObserver( aObserver ), - iDbSession( aDbSession ), - iPluginPool( aPluginPool ) - { - LOGSTRING( "---- DIAG ENGINE BEGIN ---- DIAG ENGINE BEGIN ----{" ) - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::ConstructNewRecordL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ConstructNewRecordL( TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ) - { - ConstructCommonL(); - - LOGSTRING( "CDiagEngineImpl::ConstructNewRecordL()" ) - - iContinueIncompleteRecord = EFalse; - iEngineConfig.SetDependencyDisabled( aDisableDependency ); - - // convert uid array to plugin reference array. - // Also, make a copy of the plug-in UID array so that it can be - // passed to database. - TInt batchCount = aExecutionBatch.Count(); - - // uidList must be allocated in heap since it database will own the data later. - RArray< TUid >* uidList = new( ELeave )RArray< TUid >(); - CleanupStack::PushL( uidList ); // to delete array itself. - CleanupClosePushL( *uidList ); // to call close. - - uidList->ReserveL( batchCount ); - - MDiagPlugin* plugin = NULL; - - for ( TInt i = 0; i < batchCount ; i++ ) - { - LOGSTRING2( "CDiagEngineImpl::ConstructNewRecordL() " - L"Add plugin 0x%08x", aExecutionBatch[i].iUid ) - - iPluginPool.FindPlugin( aExecutionBatch[i], plugin ); - iBatch.AppendL( plugin ); - plugin = NULL; - - uidList->AppendL( aExecutionBatch[i] ); - } - - CDiagResultsDbRecordEngineParam* engineParam = - CDiagResultsDbRecordEngineParam::NewL( - uidList, // ownership transfer - !iEngineConfig.IsDependencyDisabled() /* isDependencyExecution */ ); - - CleanupStack::Pop( uidList ); // CleanupClosePushL( *uidList ) - CleanupStack::Pop( uidList ); // CleanupStack::PushL( uidList ) - uidList = NULL; - - CleanupStack::PushL( engineParam ); - User::LeaveIfError( - iDbRecord.CreateNewRecord( iDbSession, iRecordId, *engineParam ) ); - CleanupStack::PopAndDestroy( engineParam ); - engineParam = NULL; - - iPlan = CDiagPluginExecPlanImpl::NewL( *this, iEngineConfig, *this ); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::ConstructIncompleteRecordL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ConstructIncompleteRecordL( TUid aIncompleteRecordUid ) - { - ConstructCommonL(); - - LOGSTRING2( "CDiagEngineImpl::ConstructIncompleteRecordL() " - L"RecordId = 0x%08x", aIncompleteRecordUid.iUid ) - - iRecordId = aIncompleteRecordUid; - iContinueIncompleteRecord = ETrue; - - User::LeaveIfError( - iDbRecord.Connect( iDbSession, - iRecordId, - EFalse /* aReadOnly */ ) ); - - // make sure that record is open for writing. - TBool isTestCompleted = EFalse; - User::LeaveIfError( iDbRecord.IsTestCompleted( isTestCompleted ) ); - if ( isTestCompleted ) - { - User::Leave( KErrLocked ); - } - - // recover original parameter - CDiagResultsDbRecordEngineParam* engineParam = NULL; - User::LeaveIfError( - iDbRecord.GetEngineParam( engineParam ) ); - - CleanupStack::PushL( engineParam ); - - // Recover original batch. - MDiagPlugin* plugin = NULL; - iEngineConfig.SetDependencyDisabled( !engineParam->DependencyExecution() ); - const RArray< TUid >& uidArray = engineParam->ExecutionsUidArray(); - TInt count = uidArray.Count(); - for ( TInt i = 0; i < count; i++ ) - { - LOGSTRING2( "CDiagEngineImpl::ConstructNewRecordL() " - L"Add plugin 0x%08x", uidArray[i].iUid ) - - User::LeaveIfError( - iPluginPool.FindPlugin( uidArray[i], plugin ) ); - iBatch.AppendL( plugin ); - plugin = NULL; - } - - CleanupStack::PopAndDestroy( engineParam ); - engineParam = NULL; - - iPlan = CDiagPluginExecPlanImpl::NewL( *this, iEngineConfig, *this ); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::ConstructCommonL() -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ConstructCommonL() - { - LOGSTRING( "CDiagEngineImpl::ConstructCommonL." ) - - // Read Cenrep key - iEngineConfig.ReadCenrepKeysL(); - - // Create state machine. - iStateMachine = CStateMachine::NewL( *this ); - - // Create call handler. - iCallHandler = CDiagEngineCallHandler::NewL( *this ); - - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::~CDiagEngineImpl -// --------------------------------------------------------------------------- -// -CDiagEngineImpl::~CDiagEngineImpl() - { - LOGSTRING( "CDiagEngineImpl::~CDiagEngineImpl() Destructor" ) - - StopAllRequests(); - - CleanupIncompleteTestSession(); - - // always delete plan before record is closed. - delete iPlan; - iPlan = NULL; - - iDbRecord.Close(); - - iBatch.Close(); // MUST NOT destroy since we don't own elements within it - - delete iStateMachine; - iStateMachine = NULL; - - delete iSuspendedResult; - iSuspendedResult = NULL; - - delete iCallHandler; - iCallHandler = NULL; - - LOGSTRING( "} ---- DIAG ENGINE END ---- DIAG ENGINE END ----" ) - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::CleanupIncompleteTestSession -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::CleanupIncompleteTestSession() - { - if ( iStateMachine == NULL || - iStateMachine->CurrentState() == EStateNotReady || - iStateMachine->CurrentState() == EStateStopped ) - { - // Test is never started or already finished. Nothing to clean up here. - return; - } - - // At this point, we can either suspend or complete the test record. - // Normally, since state machine is not in EStateStopped state, - // record should suspended. - // - // However, even if it is not completely done executing the plan, - // if last test is already completed, engine will report TestCompleted( ETrue ). - // Otherwise, when examining db record for resuming, the record will appear - // incomplete, but in reality there is no more test to execute and resuming the - // record will immediately finish the session, which is meaningless. - // Hence, when last test plug-in is executed, engine will record test completed, - // instead of suspend, even if there are suite items left in plan. - - LOGSTRING2( "CDiagEngineImpl::CleanupIncompleteTestSession() State = %d", - iStateMachine->CurrentState() ) - - switch( iStateMachine->CurrentState() ) - { - case EStateStopped: - // all completed. Nothing to finalize. - break; - - case EStateNotReady: // fall through - case EStateCreatingPlan: - // Plan was not fully created. - // Mark the record as incomplete and let execution plan - // to figure out how to resume later. - // No need to call NotifyPluginsOfTestSessionEnd() since - // TestSessionBeginL() was never called. - iDbRecord.Suspend(); // in destructor. Error ignored. - break; - - case EStateCancelAll: - { - // Test session was being cancelled. Since we were in cancel all mode, - // it cannot be resumed. Mark the record completed. - NotifyPluginsOfTestSessionEnd(); - - TInt err = iDbRecord.TestCompleted( EFalse /* aFullyComplete */ ); - LOGSTRING2( "CDiagEngineImpl::CleanupIncompleteTestSession() " - L" TestCompleted( EFalse ) err = %d", err ) - // in destructor. Error ignored. - } - break; - - case EStateFinalizing: - { - // Engine was about to finalize, but never got a chance to. - // In this state, db record should always be closed with TestCompleted - // since it is a normal execution finish scenario and it cannot - // be resumed later. - NotifyPluginsOfTestSessionEnd(); - - TBool isFullyCompleted = ( iEngineError == KErrNone ); - TInt err = iDbRecord.TestCompleted( isFullyCompleted ); - LOGSTRING3( "CDiagEngineImpl::CleanupIncompleteTestSession() " - L"iDbRecord.TestCompleted( %d ) err = %d", isFullyCompleted, err ) - - // We are in destructor. Ignore errors from db. - } - break; - - default: - // In other states, engine was still executing some items. - // Check if it shoud be marked as suspended or not. - { - TBool allTestsCompleted = EFalse; - for ( TInt i = iPlan->CurrentIndex(); i < iPlan->Count(); i++ ) - { - if ( (*iPlan)[i].Plugin().Type() == MDiagPlugin::ETypeTestPlugin && - (*iPlan)[i].State() != MDiagExecPlanEntry::EStateCompleted ) - { - // Found a test entry that is not completed. - allTestsCompleted = EFalse; - break; //lint !e960 break OK here. - } - } - - NotifyPluginsOfTestSessionEnd(); - - if ( allTestsCompleted ) - { - TInt err = iDbRecord.TestCompleted( ETrue /* aFullyComplete */ ); - LOGSTRING2( "CDiagEngineImpl::CleanupIncompleteTestSession() " - L" iDbRecord.TestCompleted( ETrue ) err = %d", err ) - } - else - { - TInt err = iDbRecord.Suspend(); - LOGSTRING2( "CDiagEngineImpl::CleanupIncompleteTestSession(). " - L"iDbRecord.Suspend() err = %d", err ) - } - - } - break; - - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::ExecuteL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ExecuteL() - { - __ASSERT_ALWAYS( iStateMachine->CurrentState() == EStateNotReady, - Panic( EDiagFrameworkInvalidState ) ); - - iStateMachine->AddEventL( EEventExecute ); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::SetCustomParam -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::SetCustomParam( TAny* aCustomParams ) - { - __ASSERT_ALWAYS( aCustomParams, Panic( EDiagFrameworkBadArgument ) ); - - // Custom parameter can be set only when engine is not running. - __ASSERT_ALWAYS( iStateMachine->CurrentState() == EStateNotReady, - Panic( EDiagFrameworkInvalidState ) ); - - iCustomParam = aCustomParams; - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::SuspendL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::SuspendL() - { - DiagFwInternal::TState state = iStateMachine->CurrentState(); - - // Suspendable states: - __ASSERT_ALWAYS( ( state == EStateRunning || - state == EStateCreatingPlan || - state == EStateFinalizing || - state == EStateStopped ), - Panic( EDiagFrameworkInvalidState ) ); - - if ( state == EStateFinalizing || state == EStateStopped ) - { - // ignore suspend request. All tests are already completed and - // we are just waiting to finalize db record and report final - // result. - return; - } - - StopAllRequests(); - - LOGSTRING( "CDiagEngineImpl::SuspendL(). Adding suspend event" ) - iStateMachine->AddEventL( EEventSuspend ); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::ResumeL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ResumeL() - { - __ASSERT_ALWAYS( iStateMachine->CurrentState() == EStateSuspended, - Panic( EDiagFrameworkInvalidState ) ); - - LOGSTRING( "CDiagEngineImpl::SuspendL(). Adding resume event" ) - AddResumeEventL( MDiagEngineObserver::EResumedByClient ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::ExecutionPlanL -// --------------------------------------------------------------------------- -// -const MDiagPluginExecPlan& CDiagEngineImpl::ExecutionPlanL() const - { - return *iPlan; - } - - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::ExecutionStopL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ExecutionStopL( TCancelMode aCancelMode ) - { - DiagFwInternal::TState state = iStateMachine->CurrentState(); - - // Acceptable states for execution stop. - __ASSERT_ALWAYS( state == EStateCreatingPlan || - state == EStateRunning || - state == EStateSuspended || - state == EStateFinalizing || - state == EStateStopped, - Panic( EDiagFrameworkInvalidState ) ); - - if ( state == EStateFinalizing || state == EStateStopped ) - { - // ignore cancel request. All tests are already completed and - // we are just waiting to finalize db record and report final - // result. - return; - } - - StopAllRequests(); - - if ( aCancelMode == ESkip ) - { - iStateMachine->AddEventL( EEventSkip ); - } - else - { - iStateMachine->AddEventL( EEventCancelAll ); - } - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::ResetWatchdog -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ResetWatchdog() - { - iPlan->CurrentExecutionItem().ResetWatchdog(); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::ResetWatchdog -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType ) - { - iPlan->CurrentExecutionItem().ResetWatchdog( aWatchdogType ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::ResetWatchdog -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ResetWatchdog( TTimeIntervalMicroSeconds32 aExpectedTimeToComplete ) - { - iPlan->CurrentExecutionItem().ResetWatchdog( aExpectedTimeToComplete ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::ViewAppUi -// --------------------------------------------------------------------------- -// -CAknViewAppUi& CDiagEngineImpl::ViewAppUi() - { - return iViewAppUi; - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::ViewAppUi -// --------------------------------------------------------------------------- -// -const CAknViewAppUi& CDiagEngineImpl::ViewAppUi() const - { - return iViewAppUi; - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::DbRecord -// --------------------------------------------------------------------------- -// -RDiagResultsDatabaseRecord& CDiagEngineImpl::DbRecord() - { - return iDbRecord; - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::DbRecord -// --------------------------------------------------------------------------- -// -const RDiagResultsDatabaseRecord& CDiagEngineImpl::DbRecord() const - { - return iDbRecord; - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::PluginPool -// --------------------------------------------------------------------------- -// -CDiagPluginPool& CDiagEngineImpl::PluginPool() - { - return iPluginPool; - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::PluginPool -// --------------------------------------------------------------------------- -// -const CDiagPluginPool& CDiagEngineImpl::PluginPool() const - { - return iPluginPool; - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::AddToConfigListL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::AddToConfigListL( - MDiagEngineCommon::TConfigListType aListType, - const TDesC& aText ) - { - switch ( aListType ) - { - case MDiagEngineCommon::EConfigListCallIngore: - iCallHandler->AddIgnoreNumberL( aText ); - break; - - default: - LOGSTRING2( "CDiagEngineImpl::AddToConfigListL(). Invalid ListType %d", - aListType ) - Panic( EDiagFrameworkBadArgument ); - break; - } - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::RemoveFromConfigListL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::RemoveFromConfigListL( - MDiagEngineCommon::TConfigListType aListType, - const TDesC& aText ) - { - switch ( aListType ) - { - case MDiagEngineCommon::EConfigListCallIngore: - iCallHandler->RemoveIgnoreNumberL( aText ); - break; - - default: - LOGSTRING2( "CDiagEngineImpl::RemoveFromConfigListL(). Invalid ListType %d", - aListType ) - Panic( EDiagFrameworkBadArgument ); - break; - } - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::CreateCommonDialogLC -// --------------------------------------------------------------------------- -// -CAknDialog* CDiagEngineImpl::CreateCommonDialogLC( TDiagCommonDialog aDialogType, - TAny* aInitData ) - { - return iObserver.CreateCommonDialogLC( aDialogType, aInitData ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::ExecuteAppCommandL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ExecuteAppCommandL( TDiagAppCommand aCommand, - TAny* aParam1, - TAny* aParam2 ) - { - iObserver.ExecuteAppCommandL( aCommand, aParam1, aParam2 ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::StopWatchdogTemporarily -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::StopWatchdogTemporarily() - { - if ( iStateMachine == NULL || iPlan == NULL ) - { - return; - } - - if ( iStateMachine->CurrentState() == EStateRunning ) - { - iPlan->CurrentExecutionItem().StopWatchdogTemporarily(); - } - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::IsDependencyDisabled -// --------------------------------------------------------------------------- -// -TBool CDiagEngineImpl::IsDependencyDisabled() const - { - return iEngineConfig.IsDependencyDisabled(); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCommon -// CDiagEngineImpl::CustomParam -// --------------------------------------------------------------------------- -// -TAny* CDiagEngineImpl::CustomParam() const - { - return iCustomParam; - } //lint !e1763 Custom param is just passed along. Does not actually change engine. - -// --------------------------------------------------------------------------- -// From class MDiagExecPlanEntryImplObserver -// CDiagEngineImpl::ExecPlanEntryProgressL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ExecPlanEntryProgressL( - CDiagExecPlanEntryImpl& aSender, - TUint aCurrentStep, - TUint aTotalSteps ) - { - LOGSTRING4( "CDiagEngineImpl::ExecPlanEntryProgressL: Plugin = 0x%08x, (%d / %d) ", - aSender.Plugin().Uid().iUid, - aCurrentStep, - aTotalSteps ) - - if ( aSender.Plugin().Uid() == iPlan->CurrentExecutionItem().Plugin().Uid() ) - { - CEventTestProgress* event = new ( ELeave ) CEventTestProgress( - aSender.Plugin(), aCurrentStep, aTotalSteps ); - - iStateMachine->AddEventL( event ); // ownership changed. - } - else - { - // probably timing issue. Ignore event. - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkInternal ) ); - } - } - -// --------------------------------------------------------------------------- -// From class MDiagExecPlanEntryImplObserver -// CDiagEngineImpl::ExecPlanEntryExecutedL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ExecPlanEntryExecutedL( CDiagExecPlanEntryImpl& aSender ) - { - LOGSTRING2( "CDiagEngineImpl::ExecPlanEntryExecutedL: Plugin = 0x%08x", - aSender.Plugin().Uid().iUid ) - - if ( aSender.Plugin().Uid() != iPlan->CurrentExecutionItem().Plugin().Uid() ) - { - // probably timing issue. Ignore event. - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkInternal ) ); - } - else - { - TInt error = KErrNone; - if ( aSender.IsStoppedByClient() ) - { - error = KErrCancel; - } - - CDiagResultsDatabaseItem* result = NULL; - - if ( aSender.Plugin().Type() == MDiagPlugin::ETypeTestPlugin ) - { - // Test was completed. Get test result. - CDiagExecPlanEntryImplTest& testEntry = - static_cast< CDiagExecPlanEntryImplTest& >( aSender ); - - result = testEntry.GetLastTestResultL(); - - __ASSERT_ALWAYS( result != NULL, Panic( EDiagFrameworkNullTestResult ) ); - } - - NotifyResultAndContinueL( error, result ); - } - } - -// --------------------------------------------------------------------------- -// From class MDiagExecPlanEntryImplObserver -// CDiagEngineImpl::ExecPlanEntryCriticalError -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ExecPlanEntryCriticalError( TInt aError ) - { - LOGSTRING2( "CDiagEngineImpl::ExecPlanEntryCriticalError: " - L"Critical failure %d", aError ) - - // Unrecoverable error has occered. e.g. out of memory, disk full etc. - iStateMachine->HandleError( aError ); - } - - -// --------------------------------------------------------------------------- -// From class MDiagEngineStateMachineObserver -// CDiagEngineImpl::HandleStateChangedL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandleStateChangedL( - TState aPreviousState, - TState aCurrentState, - const CEventBasic& aEventPreview ) - { - // NOTE: This method is called by state machine as soon as an event that - // changes states is called. This means that it could execute within caller's - // call stack. (e.g. it could be still within application or plug-in's - // call stack.) It is best to limit amount of implementation here to - // things that must be done as soon as an event occurs. - // - // Suspend and Resume are exceptions since they require immediate notification - // to observer. Otherwise, observer might have mismatch in notifications. - - LOGSTRING3( "CDiagEngineImpl::HandleStateChangedL(): " - L"Entering State : %d( %S )", - aCurrentState, &iStateMachine->StateName( aCurrentState ) ) - - switch ( aCurrentState ) - { - case EStateSuspended: - // keep track of state befor suspended, so that we can resume - // to correct state. - iSuspendedPrevState = aPreviousState; - - MDiagEngineObserver::TSuspendReason reason; - if ( aEventPreview.GetType() == EEventSuspend ) - { - reason = MDiagEngineObserver::ESuspendByClient; - } - else - { - reason = MDiagEngineObserver::ESuspendByPhoneCall; - } - - // This will also notify iObserver. - DoSuspendL( reason ); - break; - - case EStateRunning: - if ( aEventPreview.GetType() == EEventResumeToRunning ) - { - LOGSTRING( "CDiagEngineImpl::HandleStateChangedL(). Notify resume" ) - iObserver.TestExecutionResumedL( iResumeReason ); - } - break; - - case EStateCreatingPlan: - if ( aEventPreview.GetType() == EEventResumeToCreatingPlan ) - { - LOGSTRING( "CDiagEngineImpl::HandleStateChangedL(). Notify resume" ) - iObserver.TestExecutionResumedL( iResumeReason ); - } - break; - - default: - // Do nothing. - break; - } - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineStateMachineObserver -// CDiagEngineImpl::HandleEventL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandleEventL( CEventBasic& aEvent ) - { - LOGSTRING5( "CDiagEngineImpl::HandleEventL(): State=%d(%S), Event=%d(%S)", - iStateMachine->CurrentState(), - &iStateMachine->StateName( iStateMachine->CurrentState() ), - aEvent.GetType(), &aEvent.ToString() ) - - switch ( iStateMachine->CurrentState() ) - { - case EStateNotReady: - LOGSTRING( "CDiagEngineImpl::HandleEventL: " - L"ERROR! Cannot accept events in EStateNotReady State" ) - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - break; - - case EStateCreatingPlan: - HandleEventInCreatingPlanStateL( aEvent ); - break; - - case EStateRunning: - HandleEventInRunningStateL( aEvent ); - break; - - case EStateCancelAll: - HandleEventInCancelAllStateL( aEvent ); - break; - - case EStateSuspended: - HandleEventInSuspendedStateL( aEvent ); - break; - - case EStateFinalizing: - HandleEventInFinalizingStateL( aEvent ); - break; - - case EStateStopped: - HandleEventInStoppedStateL( aEvent ); - break; - - case EStateAny: // fall through - default: - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - break; - } - LOGSTRING( "CDiagEngineImpl::HandleEventL(): return" ) - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::HandleEventInCreatingPlanStateL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandleEventInCreatingPlanStateL( CEventBasic& aEvent ) - { - switch ( aEvent.GetType() ) - { - case EEventExecute: // fall through - case EEventResumeToCreatingPlan: - StartCreateExecutionPlanL(); - break; - - default: - LOGSTRING2( "CDiagEngineImpl::HandleEventInCreatingPlanStateL: " - L"Invalid event = %d", aEvent.GetType() ) - // Ignored. - break; - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::HandleEventInRunningStateL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandleEventInRunningStateL( CEventBasic& aEvent ) - { - switch ( aEvent.GetType() ) - { - case EEventPlanCreated: - // Normal case. Plan is created normally. - HandlePlanCreatedL(); - break; - - case EEventExecuteNext: - ExecuteNextPluginL(); - break; - - case EEventSkip: - HandleSkipL(); - break; - - case EEventTestProgress: - NotifyTestProgressL( static_cast( aEvent ) ); - break; - - case EEventResumeToRunning: - DoResumeL(); - break; - - default: - LOGSTRING2( "CDiagEngineImpl::HandleEventInRunningStateL " - L"Invalid event = %d", aEvent.GetType() ) - break; - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::HandleEventInCancelAllStateL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandleEventInCancelAllStateL( CEventBasic& aEvent ) - { - switch ( aEvent.GetType() ) - { - case EEventCancelAll: - case EEventExecuteNext: - HandleCancelAllL(); - break; - - case EEventSuspend: // fall through - case EEventVoiceCallActive: - // suspend is always handed in its own state - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - break; - - default: - // other events are ingored( e.g. progress ), since - // cancel has been requested - LOGSTRING2( "CDiagEngineImpl::HandleEventInCancelAllStateL " - L"Invalid event = %d", aEvent.GetType() ) - break; - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::HandleEventInSuspendedStateL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandleEventInSuspendedStateL( CEventBasic& aEvent ) - { - switch ( aEvent.GetType() ) - { - case EEventSuspend: - // nothing to do. Suspend is immediate, so it is handled - // in HandleStateChangedL - break; - - default: - // suspended. ignore. - LOGSTRING2( "CDiagEngineImpl::HandleEventInSuspendedStateL " - L"Invalid event = %d", aEvent.GetType() ) - break; - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::HandleEventInFinalizingStateL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandleEventInFinalizingStateL( CEventBasic& aEvent ) - { - switch ( aEvent.GetType() ) - { - case EEventAllPluginsCompleted: - FinalizeTestSessionL(); - break; - - default: - // ignore all others. This is because if the state machine - // gets here due to error, there may be left over events in - // event queue. Those should be ignored. - LOGSTRING2( "CDiagEngineImpl::HandleEventInFinalizingStateL " - L"Invalid event = %d", aEvent.GetType() ) - break; - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::HandleEventInStoppedStateL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandleEventInStoppedStateL( CEventBasic& /* aEvent */ ) - { - // ignore all events. This is because if the state machine - // gets here due to error, there may be left over events in - // event queue. Those should be ignored. - } - - -// --------------------------------------------------------------------------- -// From class MDiagEngineStateMachineObserver -// CDiagEngineImpl::HandleError -// --------------------------------------------------------------------------- -// -TState CDiagEngineImpl::HandleError( TState aCurrentState, TInt aError ) - { - LOGSTRING4( "CDiagEngineImpl::HandleError() State %d(%S), ERROR %d", - aCurrentState, - &iStateMachine->StateName( aCurrentState ), - aError ) - - switch ( aCurrentState ) - { - case EStateNotReady: // fall through. - case EStateStopped: - // was not running.. Nothing to do. - return aCurrentState; - - default: - { - iEngineError = aError; - - // Database record is open. Suspend the record so that - // user can retry later. - iDbRecord.Suspend(); // error ignored - - // Ignore error from application in this case since we are already - // handling error. - TRAP_IGNORE( iObserver.TestExecutionCompletedL( aError ) ) - } - return EStateStopped; - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::StartCreateExecutionPlanL -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::StartCreateExecutionPlanL() - { - LOGSTRING( "CDiagEngineImpl::StartCreateExecutionPlanL() Start creating plan" ) - if ( iContinueIncompleteRecord ) - { - iPlan->InitializeL( iStatus ); - } - else - { - iPlan->InitializeL( iStatus, iBatch ); - } - SetActive(); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::HandleEventExecute -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandlePlanCreatedL() - { - if ( iPlan->Count() == 0 ) - { - // Error. There were no items in the plan. - iEngineError = KErrArgument; - iStateMachine->AddEventL( EEventAllPluginsCompleted ); - return; - } - - // First initialize each plugins for execution. - // Note that if initialization step fails, it will be caught by - // CStateMachine's active object, and will call ::HandleError() - LOGSTRING( "CDiagEngineImpl::HandlePlanCreatedL() : Phase I - Initaliaze all plugins" ) - for ( TInt i = 0; i < iPlan->Count(); i++ ) - { - MDiagPlugin& plugin = (*iPlan)[i].Plugin(); - plugin.TestSessionBeginL( *this, iEngineConfig.IsDependencyDisabled(), iCustomParam ); - } - - LOGSTRING( "CDiagEngineImpl::HandlePlanCreatedL() : Phase II - Execution Begins" ) - iPlan->ResetExecutionCursor(); - iStateMachine->AddEventL( EEventExecuteNext ); - iObserver.TestExecutionBeginL(); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::ExecuteNextPluginL -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::ExecuteNextPluginL() - { - // first, check if cursor needs to be advanced - if ( iPlan->CurrentExecutionItem().State() == MDiagExecPlanEntry::EStateCompleted ) - { - TBool moved = iPlan->MoveCursorToNext(); - if ( !moved ) - { - // cursor should always move. This is because execute next event - // should have never been created by NotifyResultAndContinueL - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkInternal ) ); - return; - } - } - - // Check if we are in call. If so, suspend current execution immediately. - if ( iCallHandler->CurrentState() == EDiagEngineCallHandlerStateBusy ) - { - LOGSTRING( "CDiagEngineImpl::ExecuteNextPluginL() Call in progress" ) - iStateMachine->AddEventL( EEventVoiceCallActive ); - return; - } - - LOGSTRING2( "CDiagEngineImpl::ExecuteNextPluginL() : " - L"Executing plugin 0x%08x", - iPlan->CurrentExecutionItem().Plugin().Uid().iUid ) - - iPlan->CurrentExecutionItem().ExecuteL(); - } - - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::NotifyTestProgressL -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::NotifyTestProgressL( CEventTestProgress& aEvent ) - { - // make sure that we are reporting progress on currently executing test. - CDiagExecPlanEntryImpl& currItem = iPlan->CurrentExecutionItem(); - - if ( currItem.Plugin().Uid() == aEvent.Sender().Uid() && - currItem.State() != MDiagExecPlanEntry::EStateCompleted ) - { - LOGSTRING3( "CDiagEngineImpl::NotifyTestProgressL. " - L"Calling TestExecutionProgressL( %d, %d )", - aEvent.CurrStep(), - aEvent.TotalSteps() ) - iObserver.TestExecutionProgressL( aEvent.CurrStep(), aEvent.TotalSteps() ); - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::NotifyResultAndContinueL -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::NotifyResultAndContinueL( - TInt aError, - CDiagResultsDatabaseItem* aResult ) - { - // aResult can be NULL if it was executing suite. - if ( aResult ) - { - CleanupStack::PushL( aResult ); - } - - if ( aResult ) - { - CleanupStack::Pop( aResult ); - } - - iObserver.TestExecutionPluginExecutedL( aError, aResult ); - aResult = NULL; // aResult ownership transferred above. - - if ( iPlan->IsLastPlugin() ) - { - User::After(2000000); - iStateMachine->AddEventL( EEventAllPluginsCompleted ); - } - else - { - iStateMachine->AddEventL( EEventExecuteNext ); - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::HandleSkipL -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandleSkipL() - { - // if plan was empty, ( e.g. before any execution has actually started. - // do nothing. - if ( iPlan->Count() == 0 ) - { - iEngineError = KErrArgument; - iStateMachine->AddEventL( EEventAllPluginsCompleted ); - return; - } - - // Stop execution. While plug-ins are required to stop immediately, - // writing to results db is async. Completion is notified is - // ExecPlanEntryExecutedL() - iPlan->CurrentExecutionItem().StopExecutionByClientL( ESkip ); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::HandleCancelAllL -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::HandleCancelAllL() - { - iEngineError = KErrCancel; - - if ( iPlan->Count() == 0 ) - { - // If plan was empty, ( e.g. before any execution has actually started ), - // do nothing and send back completed with KErrCancel. - iStateMachine->AddEventL( EEventAllPluginsCompleted ); - return; - } - - if ( iPlan->CurrentExecutionItem().State() == MDiagExecPlanEntry::EStateCompleted ) - { - TBool moved = iPlan->MoveCursorToNext(); - if ( !moved ) - { - // cursor should always move. This is because execute next event - // should have never been created by NotifyResultAndContinueL - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkInternal ) ); - return; - } - } - - iPlan->CurrentExecutionItem().StopExecutionByClientL( ECancelAll ); - // Continue to ::ExecPlanEntryExecutedL - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::DoSuspendL -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::DoSuspendL( MDiagEngineObserver::TSuspendReason aReason ) - { - if ( iSuspendedPrevState == EStateNotReady || - iSuspendedPrevState == EStateCreatingPlan || - iSuspendedPrevState == EStateStopped ) - { - // not much to do here. - } - else - { - StopAllRequests(); - - iSuspendReason = aReason; - - iPlan->CurrentExecutionItem().SuspendL(); - } - - LOGSTRING( "CDiagEngineImpl::DoSuspendL: Engine Suspended" ) - iObserver.TestExecutionSuspendedL( aReason ); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::AddResumeEventL -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::AddResumeEventL( MDiagEngineObserver::TResumeReason aReason ) - { - iResumeReason = aReason; - if ( iSuspendedPrevState == EStateNotReady || - iSuspendedPrevState == EStateCreatingPlan ) - { - iStateMachine->AddEventL( EEventResumeToCreatingPlan ); - } - else - { - iStateMachine->AddEventL( EEventResumeToRunning ); - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::DoResumeL -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::DoResumeL() - { - LOGSTRING( "CDiagEngineImpl::DoResumeL: Resuming Engine..." ) - CDiagExecPlanEntryImpl& entry = iPlan->CurrentExecutionItem(); - - if ( entry.State() == MDiagExecPlanEntry::EStateCompleted ) - { - // already completed. nothing to resume. - ExecuteNextPluginL(); - } - else - { - entry.ResumeL(); - } - } - - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::CreateDbItem -// -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem* CDiagEngineImpl::CreateDbItemL( - CDiagExecPlanEntryImpl& aCurrItem, - CDiagResultsDatabaseItem::TResult aResultType ) const - { - return CDiagResultsDbItemBuilder::CreateSimpleDbItemL( aCurrItem.Plugin().Uid(), - aCurrItem.AsDependency(), - aResultType ); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::NotifyPluginsOfTestSessionEnd -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::NotifyPluginsOfTestSessionEnd() - { - LOGSTRING( "CDiagEngineImpl::NotifyPluginsOfTestSessionEnd() : " - L"Phase III - Cleaning up stage" ) - // unlike initialization stage, it will TRAP all errors so that - // every plug-ins will have a chance to run its clean up code. - for ( TInt index = 0; index < iPlan->Count(); index++ ) - { - MDiagPlugin& plugin = (*iPlan)[index].Plugin(); - TRAPD( err, plugin.TestSessionEndL( - *this, iEngineConfig.IsDependencyDisabled(), iCustomParam ) ); - if ( err != KErrNone ) - { - LOGSTRING3( "CDiagEngineImpl::NotifyPluginsOfTestSessionEnd(): " - L"Plug-in Uid %d CleanupL failed with error %d", - plugin.Uid().iUid, err ) - } - } - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::StopAllRequests -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::StopAllRequests() - { - Cancel(); - StopWatchdogTemporarily(); - } - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::FinalizeTestSessionL -// -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::FinalizeTestSessionL() - { - LOGSTRING( "CDiagEngineImpl::FinalizeTestSessionL() " ) - - // This causes state to change to EStateStopped - //iStateMachine->AddEventL( EEventFinalized ); - - // Call TestSessionEnd on all plug-ins - NotifyPluginsOfTestSessionEnd(); - - // Mark DB completed. - TBool isFullyCompleted = ( iEngineError == KErrNone ); - - TInt err = iDbRecord.TestCompleted( isFullyCompleted ); - if ( err != KErrNone ) - { - LOGSTRING3( "CDiagEngineImpl::FinalizeTestSessionL() " - L"iDbRecord.TestCompleted( %d ) return err %d", - isFullyCompleted, - err ) - iEngineError = err; - } - - // Let observer know that test is completed. - iObserver.TestExecutionCompletedL( iEngineError ); - } - -// --------------------------------------------------------------------------- -// From class MDiagEngineCallHandlerObserver -// CDiagEngineImpl::CallHandlerStateChangedL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::CallHandlerStateChangedL( TDiagEngineCallHandlerState aState ) - { - if ( aState == EDiagEngineCallHandlerStateBusy && - ( iStateMachine->CurrentState() == EStateRunning) ) - { - iStateMachine->AddEventL( EEventVoiceCallActive ); - } - else if ( aState == EDiagEngineCallHandlerStateIdle && - iStateMachine->CurrentState() == EStateSuspended && - iSuspendReason == MDiagEngineObserver::ESuspendByPhoneCall ) - { - AddResumeEventL( MDiagEngineObserver::EAutoResumedByCallHangup ); - } - else - { - // Ignored - } - } - - -// --------------------------------------------------------------------------- -// From class CActive -// CDiagEngineImpl::RunL -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::RunL() - { - LOGSTRING2( "CDiagEngineImpl::RunL() error %d", iStatus.Int() ) - - User::LeaveIfError( iStatus.Int() ); - - switch ( iStateMachine->CurrentState() ) - { - case EStateCreatingPlan: - // plan created successfully. - iStateMachine->AddEventL( EEventPlanCreated ); - break; - - default: - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - break; - } - } - -// --------------------------------------------------------------------------- -// From class CActive -// CDiagEngineImpl::DoCancel -// --------------------------------------------------------------------------- -// -void CDiagEngineImpl::DoCancel() - { - switch ( iStateMachine->CurrentState() ) - { - case EStateCreatingPlan: - iPlan->Cancel(); - break; - - default: - // Nothing to do - break; - } - } - -// --------------------------------------------------------------------------- -// From class CActive -// CDiagEngineImpl::RunError -// --------------------------------------------------------------------------- -// -TInt CDiagEngineImpl::RunError( TInt aError ) - { - if ( iStateMachine ) - { - iStateMachine->HandleError( aError ); - } - - return KErrNone; - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagenginestatemachine.cpp --- a/devicediagnosticsfw/diagframework/src/diagenginestatemachine.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,362 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CStateMachine -* -*/ - - -// CLASS DECLARATION -#include "diagenginestatemachine.h" // DiagFwInternal::CStateMachine - -// SYSTEM INCLUDE FILES -#include // LOGSTRING - -// USER INCLUDE FILES -#include "diagenginestatemachineobserver.h" // DiagFwInternal::MStateMachineObserver -#include "diagengineeventbasic.h" // DiagFwInternal::CEventBasic -#include "diagframework.pan" // Panics - - -namespace DiagFwInternal - { -// ======== LOCAL DATA ========== -struct TStateTableEntry - { - TState iInputState; - TEvent iEventType; - TState iOutputState; - }; - - -static const TStateTableEntry KStateTable[] = - { - // current state input event output state - { - EStateNotReady, EEventExecute, EStateCreatingPlan - }, - { - EStateCreatingPlan, EEventPlanCreated, EStateRunning - }, - { - EStateSuspended, EEventResumeToRunning, EStateRunning - }, - { - EStateSuspended, EEventResumeToCreatingPlan, EStateCreatingPlan - }, - { - EStateFinalizing, EEventFinalized, EStateStopped, - }, - // ALL EStateAny MUST be listed in below. - // This makes sure that more specific transition happens before - // any state transitions occur. - { - EStateAny, EEventAllPluginsCompleted, EStateFinalizing - }, - { - EStateAny, EEventCancelAll, EStateCancelAll - }, - { - EStateAny, EEventSuspend, EStateSuspended - }, - { - EStateAny, EEventVoiceCallActive, EStateSuspended - } - }; - -static const TInt KStateTableSize = sizeof( KStateTable )/sizeof( TStateTableEntry ); - - -// ======== LOCAL FUNCTIONS ======== - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CStateMachine::ConstructL() -// --------------------------------------------------------------------------- -// -void CStateMachine::ConstructL() - { - } - - -// --------------------------------------------------------------------------- -// CStateMachine::NewL() -// --------------------------------------------------------------------------- -// -CStateMachine* CStateMachine::NewL( MStateMachineObserver& aObserver ) - { - CStateMachine* self = CStateMachine::NewLC( aObserver ); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CStateMachine::NewLC() -// --------------------------------------------------------------------------- -// -CStateMachine* CStateMachine::NewLC( MStateMachineObserver& aObserver ) - { - CStateMachine* self = new( ELeave )CStateMachine( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// CStateMachine::CStateMachine -// --------------------------------------------------------------------------- -// -CStateMachine::CStateMachine( MStateMachineObserver& aObserver ) - : CActive( EPriorityStandard ), - iObserver( aObserver ), - iEventQueue(), - iState( EStateNotReady ) - { - CActiveScheduler::Add( this ); - } - - -// --------------------------------------------------------------------------- -// CStateMachine::~CStateMachine -// --------------------------------------------------------------------------- -// -CStateMachine::~CStateMachine() - { - Cancel(); - iEventQueue.ResetAndDestroy(); - iEventQueue.Close(); - } - - -// --------------------------------------------------------------------------- -// CStateMachine::AddEventL -// --------------------------------------------------------------------------- -// -void CStateMachine::AddEventL( CEventBasic* aEvent ) - { - __ASSERT_ALWAYS( aEvent, Panic( EDiagFrameworkBadArgument ) ); - - LOGSTRING2( "CStateMachine::AddEventL: Type = %S", &( aEvent->ToString() ) ) - - CleanupStack::PushL( aEvent ); - iEventQueue.AppendL( aEvent ); // owership transfer - CleanupStack::Pop( aEvent ); - // do not set aEvent to NULL, since it is used later - - TState nextState = CheckStateTable( iState, aEvent->GetType() ); - - if ( nextState != EStateAny && nextState != iState ) - { - // state change happened. - TState prevState = iState; - iState = nextState; - - iObserver.HandleStateChangedL( prevState, iState, *aEvent ); - } - - ReactivateQueue(); - } - - -// --------------------------------------------------------------------------- -// CStateMachine::AddEventL -// --------------------------------------------------------------------------- -// -void CStateMachine::AddEventL( TEvent aEventId ) - { - // simple event. Create a basic event type - AddEventL( new( ELeave )CEventBasic( aEventId ) ); - } - - -// --------------------------------------------------------------------------- -// CStateMachine::CurrentState -// --------------------------------------------------------------------------- -// -TState CStateMachine::CurrentState() const - { - return iState; - } - -// --------------------------------------------------------------------------- -// CStateMachine::HandleError -// --------------------------------------------------------------------------- -// -void CStateMachine::HandleError( TInt aError ) - { - iState = iObserver.HandleError( iState, aError ); - } - -// --------------------------------------------------------------------------- -// From CActive -// CStateMachine::RunL -// --------------------------------------------------------------------------- -// -void CStateMachine::RunL() - { - // Note that ReactivateQueue() must always be called before observer method - // is called. This is because observer may delete state machine - // during the callback. To prevent crashes, callback MUST BE the - // last funciton to call before returning. - if ( iEventQueue.Count() > 0 ) - { - // there is an item in the event queue. - // Pop and execute the event. - CEventBasic* event = iEventQueue[0]; - iEventQueue.Remove( 0 ); - - // always reactivate the queue before calling observer - ReactivateQueue(); - - CleanupStack::PushL( event ); - iObserver.HandleEventL( *event ); - CleanupStack::PopAndDestroy( event ); - - // must return immediately to make sure that no member variables - // are accessed after observer is called. - return; - } - else - { - LOGSTRING( "CStateMachine::RunL(). Called for no reason?" ) - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - } - } - -// --------------------------------------------------------------------------- -// From CActive -// CStateMachine::DoCancel -// --------------------------------------------------------------------------- -// -void CStateMachine::DoCancel() - { - // Nothing to do here.. - } - -// --------------------------------------------------------------------------- -// From CActive -// CStateMachine::RunError -// --------------------------------------------------------------------------- -// -TInt CStateMachine::RunError( TInt aError ) - { - HandleError( aError ); - return KErrNone; - } - - -// --------------------------------------------------------------------------- -// CStateMachine::CheckStateTable -// --------------------------------------------------------------------------- -// -TState CStateMachine::CheckStateTable( TState aCurrState, TEvent aEvent ) const - { - TState outputState = EStateAny; - TBool isFound = EFalse; - - for ( TInt i = 0; i < KStateTableSize && !isFound; i++ ) - { - if ( ( KStateTable[i].iInputState == EStateAny || - aCurrState == KStateTable[i].iInputState ) && - aEvent == KStateTable[i].iEventType ) - { - outputState = KStateTable[i].iOutputState; - isFound = ETrue; - } - } - return outputState; - } - -// --------------------------------------------------------------------------- -// CStateMachine::ReactivateQueue -// --------------------------------------------------------------------------- -// -void CStateMachine::ReactivateQueue() - { - if ( !IsActive() && iEventQueue.Count() > 0 ) - { - // reactivate only if it is not already active, and there is something - // in the queue - TRequestStatus* stat = &iStatus; - User::RequestComplete( stat, KErrNone ); - SetActive(); - } - } - -// --------------------------------------------------------------------------- -// CStateMachine::StateName -// --------------------------------------------------------------------------- -// - -#if _DEBUG -const TDesC& CStateMachine::StateName( TState aState ) const - { - _LIT( KStateAny, "EStateAny" ); - _LIT( KStateNotReady, "EStateNotReady" ); - _LIT( KStateCreatingPlan,"EStateCreatingPlan" ); - _LIT( KStateRunning, "EStateRunning" ); - _LIT( KStateStopped, "EStateStopped" ); - _LIT( KStateCancelAll, "EStateCancelAll" ); - _LIT( KStateSuspended, "EStateSuspended" ); - _LIT( KStateFinalizing, "EStateFinalizing" ); - - switch ( aState ) - { - case EStateAny: - return KStateAny(); - - case EStateNotReady: - return KStateNotReady(); - - case EStateCreatingPlan: - return KStateCreatingPlan(); - - case EStateRunning: - return KStateRunning(); - - case EStateStopped: - return KStateStopped(); - - case EStateCancelAll: - return KStateCancelAll(); - - case EStateSuspended: - return KStateSuspended(); - - case EStateFinalizing: - return KStateFinalizing(); - - default: - _LIT( KUnknownState, "* Unknown State *"); - return KUnknownState(); - } - } - -#else // #if _DEBUG - -// non-debug version. -const TDesC& CStateMachine::StateName( TState /* aState */ ) const - { - _LIT( KNonDebugStateName, "?" ); - return KNonDebugStateName(); - } - -#endif // #else _DEBUG - - } // end of namespace DiagFwInternal - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagexecplanentryimpl.cpp --- a/devicediagnosticsfw/diagframework/src/diagexecplanentryimpl.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,332 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagExecPlanEntryImpl -* -*/ - - -// CLASS DECLARATION -#include "diagexecplanentryimpl.h" - -// SYSTEM INCLUDE FILES -#include // LOGSTRING - -// USER INCLUDE FILES -#include "diagengineconfig.h" // TDiagEngineConfig -#include "diagframework.pan" // Panic Codes - -// DATA - -// MACROS - -// LOCAL DATA TYPES - - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::CDiagExecPlanEntryImpl -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImpl::CDiagExecPlanEntryImpl( - MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagPlugin& aPlugin, - TBool aAsDependency, - TType aType ) - : CActive( EPriorityStandard ), - iEngine( aEngine ), - iEngineConfig( aEngineConfig ), - iObserver( aObserver ), - iPlugin( aPlugin ), - iAsDependency( aAsDependency ), - iState ( EStateQueued ), - iType ( aType ) - { - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::~CDiagExecPlanEntryImpl -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImpl::~CDiagExecPlanEntryImpl() - { - if ( iWatchdogTimer ) - { - iWatchdogTimer->Cancel(); - delete iWatchdogTimer; - iWatchdogTimer = NULL; - } - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::Plugin -// --------------------------------------------------------------------------- -// -MDiagPlugin& CDiagExecPlanEntryImpl::Plugin() - { - return iPlugin; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::Plugin -// --------------------------------------------------------------------------- -// -const MDiagPlugin& CDiagExecPlanEntryImpl::Plugin() const - { - return iPlugin; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::State -// --------------------------------------------------------------------------- -// -MDiagExecPlanEntry::TState CDiagExecPlanEntryImpl::State() const - { - return iState; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::ChangeStateL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImpl::ChangeStateL( TState aState ) - { - iState = aState; - - TBool watchdogNeeded = EFalse; - - // determine if we need a watchdog or not. - switch( aState ) - { - case EStateRunning: - case EStateStopped: - watchdogNeeded = ETrue; - break; - - case EStateQueued: - case EStateInitDelay: - case EStateCompleted: - case EStateSuspended: - default: - watchdogNeeded = EFalse; - break; - } - - if ( watchdogNeeded ) - { - if ( iWatchdogTimer == NULL ) - { - LOGSTRING( "CDiagExecPlanEntryImpl::ChangeStateL() Create watchdog timer" ) - iWatchdogTimer = CPeriodic::NewL( EPriorityStandard ); - } - ResetWatchdog(); - } - else - { - if ( iWatchdogTimer ) - { - LOGSTRING( "CDiagExecPlanEntryImpl::ChangeStateL() delete watchdog timer" ) - iWatchdogTimer->Cancel(); - delete iWatchdogTimer; - iWatchdogTimer = NULL; - } - } - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::Type -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImpl::TType CDiagExecPlanEntryImpl::Type() const - { - return iType; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::SetType -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImpl::SetType( TType aType ) - { - iType = aType; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::AsDependency -// --------------------------------------------------------------------------- -// -TBool CDiagExecPlanEntryImpl::AsDependency() const - { - return iAsDependency; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::SetAsDependency -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImpl::SetAsDependency( TBool aAsDependency ) - { - iAsDependency = aAsDependency; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::IsStoppedByClient -// --------------------------------------------------------------------------- -// -TBool CDiagExecPlanEntryImpl::IsStoppedByClient() const - { - return iStoppedByClient; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::Engine -// --------------------------------------------------------------------------- -// -MDiagEngineCommon& CDiagExecPlanEntryImpl::Engine() - { - return iEngine; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::EngineConfig -// --------------------------------------------------------------------------- -// -const TDiagEngineConfig& CDiagExecPlanEntryImpl::EngineConfig() const - { - return iEngineConfig; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::Observer -// --------------------------------------------------------------------------- -// -MDiagExecPlanEntryImplObserver& CDiagExecPlanEntryImpl::Observer() - { - return iObserver; - } - - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::StopExecutionByClientL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImpl::StopExecutionByClientL( - MDiagEngineCommon::TCancelMode aCancelMode ) - { - iStoppedByClient = ETrue; - - DoStopExecutionByClientL( aCancelMode ); - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::ResetWatchdog -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImpl::ResetWatchdog() - { - if ( iWatchdogTimer ) - { - LOGSTRING2( "CDiagExecPlanEntryImpl::ResetWatchdog() " - L"Timout Value = %d microseconds", iWatchdogValue.Int() ) - iWatchdogTimer->Cancel(); - iWatchdogTimer->Start( iWatchdogValue, - iWatchdogValue, - TCallBack( WatchdogTimerExpiredL, this ) ); - } - else - { - LOGSTRING( "CDiagExecPlanEntryImpl::ResetWatchdog() " - L"Watchdog was not running. Reset request ignored." ) - } - } - - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::ResetWatchdog -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImpl::ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType ) - { - switch ( aWatchdogType ) - { - case EDiagEngineWatchdogTypeAutomatic: - iWatchdogValue = iEngineConfig.WatchdogTimeoutValueAutomatic(); - break; - - case EDiagEngineWatchdogTypeInteractive: - iWatchdogValue = iEngineConfig.WatchdogTimeoutValueInteractive(); - break; - - default: - __ASSERT_ALWAYS( 0, Panic( EDiagFrameworkBadArgument ) ); - break; - } - - ResetWatchdog(); - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::ResetWatchdog -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImpl::ResetWatchdog( TTimeIntervalMicroSeconds32 aWatchdogValue ) - { - iWatchdogValue = aWatchdogValue; - ResetWatchdog(); - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImpl::StopWatchdogTemporarily -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImpl::StopWatchdogTemporarily() - { - LOGSTRING( "CDiagExecPlanEntryImpl::StopWatchdogTemporarily() " ) - if ( iWatchdogTimer ) - { - iWatchdogTimer->Cancel(); - } - } - - -// --------------------------------------------------------------------------- -// CDiagEngineImpl::WatchdogTimerExpiredL -// -// --------------------------------------------------------------------------- -// -TInt CDiagExecPlanEntryImpl::WatchdogTimerExpiredL( TAny* aPtr ) - { - LOGSTRING( "CDiagExecPlanEntryImpl::WatchdogTimerExpiredL()" ) - - CDiagExecPlanEntryImpl* thisPtr = static_cast< CDiagExecPlanEntryImpl* >( aPtr ); - - // once watchdog expires, it should not be restarted, since it is end of test. - thisPtr->iWatchdogTimer->Cancel(); - delete thisPtr->iWatchdogTimer; - thisPtr->iWatchdogTimer = NULL; - - thisPtr->StopExecutionByWatchdogL(); - - return 0; - } - - - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagexecplanentryimplsuite.cpp --- a/devicediagnosticsfw/diagframework/src/diagexecplanentryimplsuite.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,419 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagExecPlanEntryImplSuite -* -*/ - - -// CLASS DECLARATION -#include "diagexecplanentryimplsuite.h" - -// SYSTEM INCLUDE FILES -#include // MDiagPlugin -#include // MDiagSuitePlugin -#include // LOGSTRING -#include // TDiagSuiteExecParam - -// USER INCLUDE FILES -#include "diagframework.pan" // Panics -#include "diagexecplanentryimplobserver.h" // MDiagExecPlanEntryImplObserver - -// DATA - -// MACROS - -// LOCAL DATA TYPES - - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplSuite::NewL -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImplSuite* CDiagExecPlanEntryImplSuite::NewL( - MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagSuitePlugin& aPlugin, - TBool aAsDependency, - CDiagExecPlanEntryImpl::TType aType ) - { - CDiagExecPlanEntryImplSuite* self = NewLC( aEngine, - aEngineConfig, - aObserver, - aPlugin, - aAsDependency, - aType ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplSuite::NewLC -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImplSuite* CDiagExecPlanEntryImplSuite::NewLC( - MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagSuitePlugin& aPlugin, - TBool aAsDependency, - CDiagExecPlanEntryImpl::TType aType ) - { - CDiagExecPlanEntryImplSuite* self = - new ( ELeave ) CDiagExecPlanEntryImplSuite ( aEngine, - aEngineConfig, - aObserver, - aPlugin, - aAsDependency, - aType ); - CleanupStack::PushL( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplSuite::CDiagExecPlanEntryImplSuite -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImplSuite::CDiagExecPlanEntryImplSuite( - MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagSuitePlugin& aPlugin, - TBool aAsDependency, - CDiagExecPlanEntryImpl::TType aType ) - : CDiagExecPlanEntryImpl( - aEngine, - aEngineConfig, - aObserver, - aPlugin, - aAsDependency, - aType ) - { - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplSuite::~CDiagExecPlanEntryImplSuite -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImplSuite::~CDiagExecPlanEntryImplSuite() - { - Cancel(); - - if ( CDiagExecPlanEntryImpl::State() == EStateRunning ) - { - TRAP_IGNORE( SuitePlugin().ExecutionStopL( MDiagSuitePlugin::ESkip ) ) - } - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplSuite::SuitePlugin -// --------------------------------------------------------------------------- -// -MDiagSuitePlugin& CDiagExecPlanEntryImplSuite::SuitePlugin() - { - // It is safe to typecast here, since CDiagExecPlanEntryImplSuite::NewL - // accepts only MDiagSuitePlugin&. - return static_cast< MDiagSuitePlugin& >( Plugin() ); - } - -// --------------------------------------------------------------------------- -// From CDiagExecPlanEntryImpl -// CDiagExecPlanEntryImplSuite::ExecuteL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplSuite::ExecuteL() - { - #ifdef _DEBUG - HBufC* pluginName = Plugin().GetPluginNameL( - MDiagPlugin::ENameLayoutListSingle ); - - LOGSTRING4( "---- SUITE BEGIN ---- [ 0x%08x %S / %s ] ---- SUITE BEGIN ---- {", - Plugin().Uid().iUid, - pluginName, - ( Type() == ETypeSuitePrepare ) ? L"PREPARE" : L"FINALIZE" ) - - delete pluginName; - pluginName = NULL; - #endif // _DEBUG - - __ASSERT_DEBUG( State() == EStateQueued, - Panic( EDiagFrameworkCorruptStateMachine ) ); - - ResetWatchdog( EDiagEngineWatchdogTypeAutomatic ); - ChangeStateL( EStateRunning ); - - // Notify observer that progress is 0 of 1 since suite does not have progress. - Observer().ExecPlanEntryProgressL( *this, 0, 1 ); - - TDiagSuiteExecParam* execParam = new ( ELeave ) TDiagSuiteExecParam( *this, Engine() ); - if ( Type() == CDiagExecPlanEntryImpl::ETypeSuitePrepare ) - { - SuitePlugin().PrepareChildrenExecutionL( execParam, // owership change - Engine().IsDependencyDisabled(), - AsDependency() ); - } - else - { - SuitePlugin().FinalizeChildrenExecutionL( execParam, // owership change - Engine().IsDependencyDisabled(), - AsDependency() ); - } - - execParam = NULL; //lint !e423 execParam ownership changed. - } - -// --------------------------------------------------------------------------- -// From CDiagExecPlanEntryImpl -// CDiagExecPlanEntryImplSuite::StopExecutionByWatchdogL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplSuite::StopExecutionByWatchdogL() - { - StopSuitePluginL( MDiagSuitePlugin::EWatchdog ); - } - -// --------------------------------------------------------------------------- -// From CDiagExecPlanEntryImpl -// CDiagExecPlanEntryImplSuite::StopExecutionByClientL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplSuite::DoStopExecutionByClientL( - MDiagEngineCommon::TCancelMode aCancelMode ) - { - MDiagSuitePlugin::TStopReason stopReason; - - switch ( aCancelMode ) - { - case MDiagEngineCommon::ECancelAll: - stopReason = MDiagSuitePlugin::ECancelAll; - break; - - case MDiagEngineCommon::ESkip: - stopReason = MDiagSuitePlugin::ESkip; - break; - - default: - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkInternal ) ); - stopReason = MDiagSuitePlugin::ESkip; - break; - } - - StopSuitePluginL( stopReason ); - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplSuite::StopSuitePluginL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplSuite::StopSuitePluginL( - MDiagSuitePlugin::TStopReason aStopReason ) - { - LOGSTRING3( "CDiagExecPlanEntryImplSuite::StopSuitePluginL(): " - L"Calling plugin uid = 0x%08x SuitePlugin::ExecutionStopL( %d )", - Plugin().Uid().iUid, - aStopReason ) - - Cancel(); - - switch ( State() ) - { - case EStateQueued: // fall through - case EStateInitDelay: // fall through - case EStateStopped: // fall through - case EStateSuspended: // fall through - case EStateCompleted: - LOGSTRING3( "CDiagExecPlanEntryImplSuite::DoStopSuitePluginL(): " - L"Plugin 0x%08x = %d. Do nothing.", - Plugin().Uid().iUid, - State() ) - break; - - case EStateRunning: - LOGSTRING2( "CDiagExecPlanEntryImplSuite::DoStopSuitePluginL(): " - L"Plugin 0x%08x was in ERunning or ESuspended. Call Stop", - Plugin().Uid().iUid ) - SuitePlugin().ExecutionStopL( aStopReason ); - break; - - default: - LOGSTRING3( "CDiagExecPlanEntryImplSuite::DoStopSuitePluginL(): " - L"Plugin 0x%08x = INVALID STATE! %d", - Plugin().Uid().iUid, - State() ) - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - break; - } - - // Notify observer as if plug-in itself would have done. - ContinueExecutionL( SuitePlugin() ); - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplSuite::SuspendL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplSuite::SuspendL() - { - Cancel(); - - switch ( State() ) - { - case EStateQueued: // fall through - case EStateInitDelay: // fall through - LOGSTRING3( "CDiagExecPlanEntryImplSuite::SuspendL(): " - L"Plugin 0x%08x = %d. Reset to Queued state", - Plugin().Uid().iUid, - State() ) - // force reset the execution state to queued so that - // it will be restarted - ChangeStateL( EStateQueued ); - break; - - case EStateRunning: - LOGSTRING2( "CDiagExecPlanEntryImplSuite::SuspendL(): " - L"Plugin 0x%08x was in ERunning. Calling Stop", - Plugin().Uid().iUid ) - - // Suites do not have suspend. Stop with cancel as reason. - SuitePlugin().ExecutionStopL( MDiagSuitePlugin::ESkip ); - // force reset the plugin execution to queued so that - // it will be restarted - ChangeStateL( EStateQueued ); - break; - - case EStateStopped: - LOGSTRING2( "CDiagExecPlanEntryImplSuite::SuspendL(): " - L"Plugin 0x%08x = Stopped.", - Plugin().Uid().iUid ) - // plug-in is already stopped. - ChangeStateL( EStateSuspended ); - break; - - case EStateSuspended: - LOGSTRING2( "CDiagExecPlanEntryImplSuite::SuspendL(): " - L"Plugin 0x%08x = Suspended.", - Plugin().Uid().iUid ) - // already suspneded. nothing to do. - break; - - case EStateCompleted: - LOGSTRING2( "CDiagExecPlanEntryImplSuite::SuspendL(): " - L"Plugin 0x%08x was already in completed state. No change", - Plugin().Uid().iUid ) - break; - - default: - LOGSTRING3( "CDiagExecPlanEntryImplSuite::SuspendL(): " - L"Plugin 0x%08x = INVALID STATE! %d", - Plugin().Uid().iUid, - State() ) - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - break; - } - - // Postcondition. Check acceptble states. - __ASSERT_DEBUG( State() == EStateQueued || - State() == EStateSuspended || - State() == EStateCompleted, - Panic( EDiagFrameworkCorruptStateMachine ) ); - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplSuite::ResumeL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplSuite::ResumeL() - { - LOGSTRING3( "CDiagExecPlanEntryImplTest::ResumeL(): " - L"Plugin 0x%08x, State = %d", Plugin().Uid().iUid, State() ) - - __ASSERT_DEBUG( State() == EStateQueued || - State() == EStateSuspended, - Panic( EDiagFrameworkCorruptStateMachine ) ); - - if ( State() == EStateQueued ) - { - ExecuteL(); - } - else - { - ContinueExecutionL( SuitePlugin() ); - } - } - -// --------------------------------------------------------------------------- -// From MDiagSuiteObserver -// CDiagExecPlanEntryImplSuite::ContinueExecutionL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplSuite::ContinueExecutionL( const MDiagSuitePlugin& aSender ) - { - __ASSERT_ALWAYS( aSender.Uid() == Plugin().Uid(), Panic( EDiagFrameworkPlugin ) ); - - // Need to do an empty request complete since by default, suite plug-ins - // do nothing in prepare/finalize steps and just call ContinueExecutionL. - // Doing empty request complete ensures that Plug-in call back does not - // directly call application TestExecutionCompletedL() method. - - ChangeStateL( EStateStopped ); - - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - SetActive(); - } - -// --------------------------------------------------------------------------- -// From CActive -// CDiagExecPlanEntryImplSuite::RunL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplSuite::RunL() - { - ChangeStateL( EStateCompleted ); - - #ifdef _DEBUG - HBufC* pluginName = Plugin().GetPluginNameL( - MDiagPlugin::ENameLayoutListSingle ); - - LOGSTRING4( "} ---- SUITE END ---- [ 0x%08x %S / %s ] ---- SUITE END ----", - Plugin().Uid().iUid, - pluginName, - ( Type() == ETypeSuitePrepare ) ? L"PREPARE" : L"FINALIZE" ) - - delete pluginName; - pluginName = NULL; - #endif // _DEBUG - - Observer().ExecPlanEntryExecutedL( *this ); - } - - -// --------------------------------------------------------------------------- -// From CActive -// CDiagExecPlanEntryImplSuite::DoCancel -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplSuite::DoCancel() - { - // nothing to do - } - - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagexecplanentryimpltest.cpp --- a/devicediagnosticsfw/diagframework/src/diagexecplanentryimpltest.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,857 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagExecPlanEntryImplTest -* -*/ - - -// CLASS DECLARATION -#include "diagexecplanentryimpltest.h" - -// SYSTEM INCLUDE FILES -#include // MDiagPlugin -#include // MDiagTestPlugin -#include // LOGSTRING -#include // CDiagResultsDbItemBuilder -#include // TDiagTestExecParam -#include // RDiagResultsDatabaseRecord - -// USER INCLUDE FILES -#include "diagframework.pan" // Panic Codes -#include "diagexecplanentryimplobserver.h" // MDiagExecPlanEntryImplObserver -#include "diagengineconfig.h" // TDiagEngineConfig - - -// DATA - -// MACROS - -// LOCAL DATA TYPES - - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::NewL -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImplTest* CDiagExecPlanEntryImplTest::NewL( - MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagTestPlugin& aPlugin, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResult ) - { - CDiagExecPlanEntryImplTest* self = NewLC( aEngine, - aEngineConfig, - aObserver, - aPlugin, - aAsDependency, - aResult ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::NewLC -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImplTest* CDiagExecPlanEntryImplTest::NewLC( - MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagTestPlugin& aPlugin, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResult ) - { - CDiagExecPlanEntryImplTest* self = - new ( ELeave ) CDiagExecPlanEntryImplTest ( aEngine, - aEngineConfig, - aObserver, - aPlugin, - aAsDependency, - aResult ); - CleanupStack::PushL( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::CDiagExecPlanEntryImplTest -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImplTest::CDiagExecPlanEntryImplTest( - MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagTestPlugin& aPlugin, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResult ) - : CDiagExecPlanEntryImpl( - aEngine, - aEngineConfig, - aObserver, - aPlugin, - aAsDependency, - ETypeTestExec ), - iResult( aResult ) - { - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::~CDiagExecPlanEntryImplTest -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImplTest::~CDiagExecPlanEntryImplTest() - { - StopAll(); // deletes timer as well. - if ( CDiagExecPlanEntryImpl::State() != EStateCompleted ) - { - // TRAP is needed since this is being called in destructor. - TRAP_IGNORE( StopExecutionAndIgnoreResultL() ) - } - delete iCachedResult; - iCachedResult = NULL; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::Result -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem::TResult CDiagExecPlanEntryImplTest::Result() const - { - return iResult; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::SetResult -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::SetResult( CDiagResultsDatabaseItem::TResult aResult ) - { - iResult = aResult; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::TestPlugin -// --------------------------------------------------------------------------- -// -MDiagTestPlugin& CDiagExecPlanEntryImplTest::TestPlugin() - { - // It is safe to typecast here, since CDiagExecPlanEntryImplTest::NewL - // accepts only MDiagTestPlugin&. - return static_cast< MDiagTestPlugin& >( Plugin() ); - } - -// --------------------------------------------------------------------------- -// From CDiagExecPlanEntryImpl -// CDiagExecPlanEntryImplTest::ExecuteL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::ExecuteL() - { - #ifdef _DEBUG - HBufC* pluginName = Plugin().GetPluginNameL( - MDiagPlugin::ENameLayoutListSingle ); - - LOGSTRING3( "---- TEST BEGIN ---- [ 0x%08x %S ] ---- TEST BEGIN ---- {", - Plugin().Uid().iUid, - pluginName ) - delete pluginName; - pluginName = NULL; - #endif // _DEBUG - - __ASSERT_DEBUG( State() == EStateQueued, - Panic( EDiagFrameworkCorruptStateMachine ) ); - - - // Case 1) Item was already executed. (Resume scenario) - // Just go straight to EStateCompleted and let engine know that - // it was completed. - if ( Result() != CDiagResultsDatabaseItem::EQueuedToRun ) - { - // it was already executed. Report result immediately. - ChangeStateL( EStateCompleted ); - Observer().ExecPlanEntryExecutedL( *this ); - return; - } - - // Notify observer that progress is 0 so that application will know that - // plug-in execution has now started. - Observer().ExecPlanEntryProgressL( *this, 0, TestPlugin().TotalSteps() ); - - // Case 2) Initial delay was specified. Start delay timer. - if ( EngineConfig().TestPluginInitialDelay().Int() > 0 ) - { - // timer value is specified. Start timer. - ChangeStateL( EStateInitDelay ); - StopInitDelayTimer(); - iInitDelayTimer = CPeriodic::NewL( CActive::EPriorityStandard ); - iInitDelayTimer->Start( EngineConfig().TestPluginInitialDelay(), // initial delay - EngineConfig().TestPluginInitialDelay(), // repeat - TCallBack( HandleDelayTimerExpiredL, this ) ); - - return; - } - - // Case 3) Start test immediately. - DoExecuteTestPluginL(); - } - - - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::DoExecuteTestPluginL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::DoExecuteTestPluginL() - { - #ifdef _DEBUG - HBufC* pluginName = Plugin().GetPluginNameL( - MDiagPlugin::ENameLayoutListSingle ); - - LOGSTRING3( "CDiagExecPlanEntryImplTest::DoExecuteTestPluginL() " - L"Starting test plugin Uid 0x%x (%S)", - Plugin().Uid().iUid, - pluginName ) - delete pluginName; - pluginName = NULL; - #endif // _DEBUG - - // Real test starts now, so reset watchdog timer. - if ( TestPlugin().RunMode() == MDiagTestPlugin::EAutomatic ) - { - ResetWatchdog( EDiagEngineWatchdogTypeAutomatic ); - } - else - { - ResetWatchdog( EDiagEngineWatchdogTypeInteractive ); - } - - ChangeStateL( EStateRunning ); - - - // Create a result in case test fails during RunTestL(). - // It needs to be created at this point to make sure that - // test start time is recorded correctly, since RunTestL() may - // take some time to finish. - CDiagResultsDbItemBuilder* resultBuilder = - CDiagResultsDbItemBuilder::NewLC( Plugin().Uid(), AsDependency() ); - - TDiagTestExecParam* execParam = - new ( ELeave ) TDiagTestExecParam( *this, // aObserver - Engine() /* aEngine */ ); - - // Trap when calling test. This makes sure that if a test fails during - // its RunTestL(), it will automatically be marked as failed. - TRAPD( err, TestPlugin().RunTestL( execParam, // ownership changed - Engine().IsDependencyDisabled(), - AsDependency(), - Engine().CustomParam() ) ); - execParam = NULL; //lint !e423 execParam ownership changed. - - if ( err != KErrNone ) - { - // Test failure. Call stop plug-in so that it may have a chance to - // clean up, but result is not needed. Discard it and replace it with - // CDiagResultsDatabaseItem::EFailed - LOGSTRING2( "CDiagExecPlanEntryImplTest::DoExecuteTestPluginL() " - L"RunTestL() for 0x%08x failed! Mark it as FAILED and continue", - Plugin().Uid().iUid ) - - StopExecutionAndIgnoreResultL(); - resultBuilder->SetTestCompleted( CDiagResultsDatabaseItem::EFailed ); - - CDiagResultsDatabaseItem* result = resultBuilder->ToResultsDatabaseItemL(); - - // Call test execution observer as if the real test is completed. - TestExecutionCompletedL( TestPlugin(), result ); - result = NULL; // ownership transferred above. - } - - CleanupStack::PopAndDestroy( resultBuilder ); - resultBuilder = NULL; - } - -// --------------------------------------------------------------------------- -// From MDiagTestObserver -// CDiagExecPlanEntryImplTest::TestProgressL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::TestProgressL( - const MDiagTestPlugin& aSender, - TUint aCurrentStep ) - { - __ASSERT_ALWAYS( aSender.Uid() == Plugin().Uid(), Panic( EDiagFrameworkPlugin ) ); - __ASSERT_ALWAYS( aCurrentStep <= TestPlugin().TotalSteps(), Panic( EDiagFrameworkPlugin ) ); - - // TestExecutionProgressL is accepted only if we were running. - if ( State() != EStateRunning ) - { - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - return; - } - - ResetWatchdog(); - Observer().ExecPlanEntryProgressL( *this, aCurrentStep, TestPlugin().TotalSteps() ); - } - -// --------------------------------------------------------------------------- -// From MDiagTestObserver -// CDiagExecPlanEntryImplTest::TestExecutionCompletedL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::TestExecutionCompletedL( - const MDiagTestPlugin& aSender, - CDiagResultsDatabaseItem* aTestResult ) - { - __ASSERT_ALWAYS( aSender.Uid() == Plugin().Uid(), Panic( EDiagFrameworkPlugin ) ); - __ASSERT_ALWAYS( aTestResult, Panic( EDiagFrameworkNullTestResult ) ); - - // TestExecutionCompletedL is accepted only if we were running. - if ( State() == EStateCompleted ) - { - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - return; - } - - // For view-switching plugins, ask the application to switch the view - // back. This allows the application to be in a known state. This must - // be done before logging the test result, because that may fail. - if ( TestPlugin().RunMode() == MDiagTestPlugin::EInteractiveView ) - { - TRAP_IGNORE( Engine().ExecuteAppCommandL( - EDiagAppCommandSwitchToMainView, - NULL, - NULL ) ) - } - // Writing to db is a non interactive step. - ResetWatchdog( EDiagEngineWatchdogTypeAutomatic ); - ChangeStateL( EStateStopped ); - - - // update cache. Cached result will be available until ResultsDbItem() - // is called. - delete iCachedResult; - iCachedResult = aTestResult; - aTestResult = NULL; - - iResult = iCachedResult->TestResult(); - - Engine().DbRecord().LogTestResult( iStatus, *iCachedResult ); - SetActive(); - } - -// --------------------------------------------------------------------------- -// From CActive -// CDiagExecPlanEntryImplTest::RunL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::RunL() - { - // Currently, this object only uses one request, which is - // Engine().DbRecord().LogTestResult(), which is sent only when state is - // EStateStopped - User::LeaveIfError( iStatus.Int() ); - - ChangeStateL( EStateCompleted ); - - #ifdef _DEBUG - HBufC* pluginName = Plugin().GetPluginNameL( - MDiagPlugin::ENameLayoutListSingle ); - - LOGSTRING4( "} ---- TEST END ---- [ 0x%08x %S %S ] ---- TEST END ----", - Plugin().Uid().iUid, - pluginName, - &TestResultString( iResult ) ) - - delete pluginName; - pluginName = NULL; - #endif // _DEBUG - - // Notify engine that test is completed. - Observer().ExecPlanEntryExecutedL( *this ); - } - -// --------------------------------------------------------------------------- -// From CActive -// CDiagExecPlanEntryImplTest::DoCancel -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::DoCancel() - { - // Currently, DbRecord().LogTestResult() is the only request this uses. - Engine().DbRecord().CancelLogTestResult(); - } - -// --------------------------------------------------------------------------- -// From CActive -// CDiagExecPlanEntryImplTest::RunError -// --------------------------------------------------------------------------- -// -TInt CDiagExecPlanEntryImplTest::RunError( TInt aError ) - { - Observer().ExecPlanEntryCriticalError( aError ); - return KErrNone; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::StopExecutionByWatchdogL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::StopExecutionByWatchdogL() - { - CDiagResultsDatabaseItem* result = StopTestPluginL( MDiagTestPlugin::EWatchdog ); - - if ( result == NULL ) - { - // It was not originally running, so no real result. Create - // a default that makes sense. - result = CDiagResultsDbItemBuilder::CreateSimpleDbItemL( - Plugin().Uid(), - AsDependency(), - CDiagResultsDatabaseItem::EWatchdogCancel ); - } - - TestExecutionCompletedL( TestPlugin(), result ); // ownership transferred. - result = NULL; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::DoStopExecutionByClientL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::DoStopExecutionByClientL( - MDiagEngineCommon::TCancelMode aCancelMode ) - { - MDiagTestPlugin::TStopReason stopReason; - - switch ( aCancelMode ) - { - case MDiagEngineCommon::ECancelAll: - stopReason = MDiagTestPlugin::ECancelAll; - break; - - case MDiagEngineCommon::ESkip: - stopReason = MDiagTestPlugin::ESkip; - break; - - default: - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkInternal ) ); - stopReason = MDiagTestPlugin::ESkip; - break; - } - - CDiagResultsDatabaseItem* result = StopTestPluginL( stopReason ); - - if ( result == NULL ) - { - // it was not originally running, so no result was given by - // the plugin. Create one for them. - result = CDiagResultsDbItemBuilder::CreateSimpleDbItemL( - Plugin().Uid(), - AsDependency(), - CDiagResultsDatabaseItem::ESkipped ); - } - - TestExecutionCompletedL( TestPlugin(), result ); // ownership transferred. - result = NULL; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::StopExecutionAndIgnoreResultL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::StopExecutionAndIgnoreResultL() - { - CDiagResultsDatabaseItem* result = StopTestPluginL( MDiagTestPlugin::ESkip ); - delete result; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::StopTestPluginL -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem* CDiagExecPlanEntryImplTest::StopTestPluginL( - MDiagTestPlugin::TStopReason aReason ) - { - StopAll(); - - CDiagResultsDatabaseItem* result = NULL; - - switch ( State() ) - { - case EStateQueued: // fall through - case EStateInitDelay: - // Test was not actually running in these casese. - LOGSTRING3( "CDiagExecPlanEntryImplTest::StopTestPluginL()" - L"Plugin 0x%x. State = %d", - Plugin().Uid().iUid, - State() ) - break; - - case EStateStopped: - // Test was already completed. Return last result. - LOGSTRING3( "CDiagExecPlanEntryImplTest::StopTestPluginL()" - L"Plugin 0x%x. State = %d", - Plugin().Uid().iUid, - State() ) - result = GetLastTestResultL(); - break; - - case EStateRunning: // fall through - case EStateSuspended: - // Test was actually running in this case. - // Need to call execution stop and use result from plug-in. - LOGSTRING2( "CDiagEngineImpl::StopTestPluginL: " - L"Plugin 0x%x was in ERunning or ESuspended. Call Stop", - Plugin().Uid().iUid ) - result = TestPlugin().ExecutionStopL( aReason ); - __ASSERT_ALWAYS( result, Panic( EDiagFrameworkNullTestResult ) ); - break; - - case EStateCompleted: - default: - LOGSTRING3( "CDiagEngineImpl::StopTestPluginL: " - L"Plugin 0x%x = INVALID STATE! %d", - Plugin().Uid().iUid, - State() ) - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - - // Use result from cache or DB. - result = GetLastTestResultL(); - break; - } - - return result; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::SuspendL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::SuspendL() - { - StopAll(); - - switch ( State() ) - { - case EStateQueued: // fall through - case EStateInitDelay: // fall through - // nothing to do. - LOGSTRING3( "CDiagExecPlanEntryImplTest::SuspendL(): " - L"Plugin 0x%08x state = %d. Was not running. Change to EQueued", - Plugin().Uid().iUid, - State() ) - - ChangeStateL( EStateQueued ); - break; - - case EStateRunning: - { - // it is currently running. suspend - LOGSTRING2( "CDiagExecPlanEntryImplTest::SuspendL(): " - L"Plugin 0x%08x = ERunning. Trying to stop", - Plugin().Uid().iUid ) - TRAPD( err, TestPlugin().SuspendL() ) - if ( err == KErrNone ) - { - LOGSTRING2( "CDiagExecPlanEntryImplTest::SuspendL(): " - L"Plugin 0x%08x Stop successful. To ESuspended", - Plugin().Uid().iUid ) - - ChangeStateL( EStateSuspended ); - } - else - { - // Suspend probably not supported. Try Stop - LOGSTRING2( "CDiagExecPlanEntryImplTest::SuspendL(): " - L"Plugin 0x%x Stop not successful. Try to Stop", - Plugin().Uid().iUid ) - - CDiagResultsDatabaseItem* result = - TestPlugin().ExecutionStopL( MDiagTestPlugin::ESkip ); - __ASSERT_ALWAYS( result, Panic( EDiagFrameworkNullTestResult ) ); - delete result; // not interested in result. - // force reset the plugin execution to queued so that - // it will be restarted - ChangeStateL( EStateQueued ); - } - } - break; - - case EStateStopped: - LOGSTRING2( "CDiagExecPlanEntryImplTest::SuspendL(): " - L"Plugin 0x%08x = EStateStopped. Do nothing.", - Plugin().Uid().iUid ) - // do nothing, When resumed, it will store temporary result to db - break; - - case EStateSuspended: - LOGSTRING2( "CDiagExecPlanEntryImplTest::SuspendL(): " - L"Plugin 0x%08x = ESuspended. Already suspended..", - Plugin().Uid().iUid ) - // do nothing. - break; - - case EStateCompleted: - // result already logged. do nothing. - LOGSTRING2( "CDiagExecPlanEntryImplTest::SuspendL(): " - L"Plugin 0x%08x = ECompleted. Stay completed.", - Plugin().Uid().iUid ) - break; - - default: - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) ); - } - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::ResumeL -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::ResumeL() - { - LOGSTRING3( "CDiagExecPlanEntryImplTest::ResumeL(): " - L"Plugin 0x%08x, State = %d", Plugin().Uid().iUid, State() ) - - // resumable states are: EStateQueued, EStateSuspended, EStateStopped - - switch ( State() ) - { - case EStateQueued: - ExecuteL(); - break; - - case EStateSuspended: - { - ChangeStateL( EStateRunning ); - - TestPlugin().ResumeL(); - } - break; - - case EStateStopped: - { - // There was a result not saved in DB yet. - // If test was suspended in EStopped state, there MUST BE a - // saved test result. - __ASSERT_DEBUG( iCachedResult, Panic( EDiagFrameworkInternal ) ); - - if ( iCachedResult ) //lint !e774 Will be evaluated in non DEBUG build. - { - // Simulate TestExecutionCompletedL from plug-in. - // Unset iCachedResult, since TestExecutionCompletedL() will try - // to deallocate iCachedResult. - CDiagResultsDatabaseItem* result = iCachedResult; - iCachedResult = NULL; - TestExecutionCompletedL( TestPlugin(), result ); // ownership passed - result = NULL; - } - } - break; - - default: - // already running. ignored. - break; - } - } - - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::GetLastTestResultL -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem* CDiagExecPlanEntryImplTest::GetLastTestResultL() - { - // Currently, cache is implemented such that calling - // GetLastTestResultL() once after test is completed will not - // require a request to DB. Any subsequent request will have to access - // database. - // - // This should satisfy most common usage of execution plan entry. - // It could be expanded to store for longer than that, however, it - // may take up too much memory if there are lots of tests in the - // execution plan. At this point, this should be sufficient. - - CDiagResultsDatabaseItem* result = NULL; - - if ( iCachedResult ) - { - if ( State() != EStateStopped ) - { - LOGSTRING2( "CDiagExecPlanEntryImplTest::GetLastTestResultL() " - L"Plugin 0x%08x. Cache hit", - Plugin().Uid().iUid ) - result = iCachedResult; - iCachedResult = NULL; - } - else - { - LOGSTRING2( "CDiagExecPlanEntryImplTest::GetLastTestResultL() " - L"Plugin 0x%08x. Cache hit, but need to duplicate.", - Plugin().Uid().iUid ) - // If we were in STOPPED state, make a copy, since it - // may not been fully written to db yet. - // Cached copy should be deleted only after it is written to db. - const CBufFlat* detailData = iCachedResult->DetailsData(); - CBufFlat* detailDataCopy = NULL; - - if ( detailData ) - { - detailDataCopy = CBufFlat::NewL( detailData->Size() ); - CleanupStack::PushL( detailDataCopy ); - - TPtr8 ptr = detailDataCopy->Ptr( 0 ); - detailData->Read( 0, ptr ); - } - - result = CDiagResultsDatabaseItem::NewL( - iCachedResult->TestUid(), - iCachedResult->WasDependency(), - iCachedResult->TestResult(), - iCachedResult->TimeStarted(), - iCachedResult->TimeCompleted(), - detailDataCopy ); - - if ( detailDataCopy ) - { - CleanupStack::Pop( detailDataCopy ); - } - } - } - else - { - LOGSTRING2( "CDiagExecPlanEntryImplTest::GetLastTestResultL() " - L"Plugin 0x%08x. Cache miss", - Plugin().Uid().iUid ) - // result was not avaiable in cache. Fetch it from database. - User::LeaveIfError( Engine().DbRecord().GetTestResult( Plugin().Uid(), result ) ); - } - - return result; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::HandleDelayTimerExpiredL -// --------------------------------------------------------------------------- -// -TInt CDiagExecPlanEntryImplTest::HandleDelayTimerExpiredL( TAny* aData ) - { - CDiagExecPlanEntryImplTest* self = static_cast< CDiagExecPlanEntryImplTest* >( aData ); - - self->StopInitDelayTimer(); - self->DoExecuteTestPluginL(); - return 0; - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::StopAll -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::StopAll() - { - Cancel(); - StopInitDelayTimer(); - StopWatchdogTemporarily(); - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::StopInitDelayTimer -// --------------------------------------------------------------------------- -// -void CDiagExecPlanEntryImplTest::StopInitDelayTimer() - { - if ( iInitDelayTimer ) - { - iInitDelayTimer->Cancel(); - delete iInitDelayTimer; - iInitDelayTimer = NULL; - } - } - -// --------------------------------------------------------------------------- -// CDiagExecPlanEntryImplTest::TestResultString -// --------------------------------------------------------------------------- -// -#ifdef _DEBUG -const TDesC& CDiagExecPlanEntryImplTest::TestResultString( - CDiagResultsDatabaseItem::TResult aResult ) - { - _LIT( KSuccess, "ESuccess" ); - _LIT( KFailed, "EFailed" ); - _LIT( KSkipped, "ESkipped" ); - _LIT( KCancelled, "ECancelled" ); - _LIT( KInterrupted, "EInterrupted" ); - _LIT( KNotPerformed, "ENotPerformed" ); - _LIT( KDependencyFailed, "EDependencyFailed" ); - _LIT( KWatchdogCancel, "EWatchdogCancel" ); - _LIT( KSuspended, "ESuspended" ); - _LIT( KQueuedToRun, "EQueuedToRun" ); - - switch( aResult ) - { - case CDiagResultsDatabaseItem::ESuccess: - return KSuccess(); - - case CDiagResultsDatabaseItem::EFailed: - return KFailed(); - - case CDiagResultsDatabaseItem::ESkipped: - return KSkipped(); - - case CDiagResultsDatabaseItem::ECancelled: - return KCancelled(); - - case CDiagResultsDatabaseItem::EInterrupted: - return KInterrupted(); - - case CDiagResultsDatabaseItem::ENotPerformed: - return KNotPerformed(); - - case CDiagResultsDatabaseItem::EDependencyFailed: - return KDependencyFailed(); - - case CDiagResultsDatabaseItem::EWatchdogCancel: - return KWatchdogCancel(); - - case CDiagResultsDatabaseItem::ESuspended: - return KSuspended(); - - case CDiagResultsDatabaseItem::EQueuedToRun: - return KQueuedToRun(); - - default: - _LIT( KUnknown, "* Unknown *" ); - return KUnknown(); - } - } - -#else // #if _DEBUG - -// non-debug version. -const TDesC& CDiagExecPlanEntryImplTest::TestResultString( - CDiagResultsDatabaseItem::TResult /* aResult */ ) - { - _LIT( KNonDebugResultName, "?" ); - return KNonDebugResultName(); - } - -#endif // #else _DEBUG - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diaglogeventeraser.cpp --- a/devicediagnosticsfw/diagframework/src/diaglogeventeraser.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,325 +0,0 @@ -/* -* Copyright (c) 2007 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: This is the implementation of the Diagnostics Log Event -* Eraser, which is used to delete OS log entries. -* -*/ - - -// System Include Files -#include // CActiveSchedulerWait -#include // CLogClient -#include // CLogViewEvent -#include // Debugging macros - -// Local Include Files -#include "diaglogeventeraser.h" // CDiagLogEventEraser -#include "diaglogeventeraserobserver.h" // MDiagLogEventEraserObserver - - -// ============================ MEMBER FUNCTIONS ============================= - -// --------------------------------------------------------------------------- -// Static two-phase constructor. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagLogEventEraser* CDiagLogEventEraser::NewL( - MDiagLogEventEraserObserver& aObserver, - CLogFilter* aFilter ) - { - LOGSTRING( "CDiagLogEventEraser::NewL()" ) - - CleanupStack::PushL( aFilter ); - CDiagLogEventEraser* self = new ( ELeave ) CDiagLogEventEraser( - aObserver, - aFilter ); - CleanupStack::Pop( aFilter ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagLogEventEraser::~CDiagLogEventEraser() - { - LOGSTRING( "CDiagLogEventEraser::~CDiagLogEventEraser()" ) - - Cancel(); - - delete iLogFilter; - delete iLogView; - delete iLogClient; - delete iWaitScheduler; - - iFsSession.Close(); - } - -// --------------------------------------------------------------------------- -// Gets the filter to use when erasing logs. -// --------------------------------------------------------------------------- -// -EXPORT_C CLogFilter& CDiagLogEventEraser::Filter() - { - LOGSTRING( "CDiagLogEventEraser::Filter()" ) - return *iLogFilter; - } - -// --------------------------------------------------------------------------- -// Gets the log client used for the log erasure. -// --------------------------------------------------------------------------- -// -EXPORT_C CLogClient& CDiagLogEventEraser::LogClient() - { - LOGSTRING( "CDiagLogEventEraser::LogClient()" ) - return *iLogClient; - } - -// --------------------------------------------------------------------------- -// Begins asynchronous erasure of logs. The observer will be notified of -// completion via callback. -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagLogEventEraser::StartAsyncEraseLogsL() - { - LOGSTRING( "CDiagLogEventEraser::StartAsyncEraseLogsL()" ) - - __ASSERT_DEBUG( iState == EStateInitial, User::Invariant() ); - - // Apply the filter. - if( iLogView->SetFilterL( *iLogFilter, iStatus ) ) - { - iState = EStateApplyingFilter; - iIsDeletingSynchronous = EFalse; - SetActive(); - } - - // There are no logs, so set this object active so that the callback will - // be asynchronous. - else - { - iState = EStateComplete; - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - SetActive(); - } - } - -// --------------------------------------------------------------------------- -// Begins synchronous erasure of logs. -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagLogEventEraser::EraseLogsL() - { - LOGSTRING( "CDiagLogEventEraser::EraseLogsL()" ) - - __ASSERT_DEBUG( iState == EStateInitial, User::Invariant() ); - - iError = KErrNone; - - // Apply the filter. iWaitScheduler->Start() will return after the wait - // scheduler is stopped. - if( iLogView->SetFilterL( *iLogFilter, iStatus ) ) - { - iState = EStateApplyingFilter; - iIsDeletingSynchronous = ETrue; - SetActive(); - iWaitScheduler->Start(); - } - - // If there is an error, iError will be set when the active object is run. - User::LeaveIfError( iError ); - } - -// --------------------------------------------------------------------------- -// The default constructor. -// --------------------------------------------------------------------------- -// -CDiagLogEventEraser::CDiagLogEventEraser( - MDiagLogEventEraserObserver& aObserver, - CLogFilter* aFilter ) -: CActive( EPriorityStandard ), - iObserver( aObserver ), - iLogFilter( aFilter ) - { - LOGSTRING( "CDiagLogEventEraser::CDiagLogEventEraser()" ) - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// The second phase constructor. -// --------------------------------------------------------------------------- -// -void CDiagLogEventEraser::ConstructL() - { - LOGSTRING( "CDiagLogEventEraser::ConstructL()" ) - - User::LeaveIfError( iFsSession.Connect() ); - iWaitScheduler = new( ELeave ) CActiveSchedulerWait; - iLogClient = CLogClient::NewL( iFsSession ); - iLogView = CLogViewEvent::NewL( *iLogClient ); - if ( !iLogFilter ) - { - iLogFilter = CLogFilter::NewL(); - } - } - -// --------------------------------------------------------------------------- -// Handles the completion of log erasing and performs different operations -// depending on whether the erasing was asynchronous or not. -// --------------------------------------------------------------------------- -// -void CDiagLogEventEraser::HandleCompletionL( TInt aError ) - { - LOGSTRING2( "CDiagLogEventEraser::HandleCompletionL( %d )", aError ) - - // Reset the state so that the object can be reused. - iState = EStateInitial; - - // For synchronous erasure, set the error code and stop the wait - // scheduler, so that it will return in EraseLogsL. - if ( iIsDeletingSynchronous ) - { - iError = aError; - iWaitScheduler->AsyncStop(); - } - - // For asynchronous erasure, inform the observer that erasing has - // completed. - else - { - iObserver.CompleteEventEraseL( aError ); - } - } - -// --------------------------------------------------------------------------- -// Handles the completion of active requests. -// --------------------------------------------------------------------------- -// -void CDiagLogEventEraser::RunL() - { - LOGSTRING( "CDiagLogEventEraser::RunL()" ) - - // Check that the request completed successfully. - if( iStatus != KErrNone ) - { - HandleCompletionL( iStatus.Int() ); - return; - } - - LOGSTRING2( "CDiagLogEventEraser::RunL() - State %d", iState ) - switch( iState ) - { - case EStateApplyingFilter: - { - // The log view filter has been successfully applied. Issue - // another request to start processing log events. Events are - // read from last to first. The reason for this arrangement is - // that we are deleting entries while reading them. - if( iLogView->LastL( iStatus ) ) - { - iState = EStateReadingEntries; - SetActive(); - } - - // There are no events in the view. - else - { - HandleCompletionL( KErrNone ); - } - - break; - } - - case EStateReadingEntries: - { - const CLogEvent& event = iLogView->Event(); - - // The log event has been fetched successfully. Ask the observer - // if this event should be erased. If so, issue another request - // to begin erasing the event. - if( iObserver.IsEventToBeDeleted( event ) ) - { - iState = EStateDeletingEntry; - iLogClient->DeleteEvent( event.Id(), iStatus ); - SetActive(); - } - - // The log event should not be erased, so get the next event. - else if( iLogView->PreviousL( iStatus ) ) - { - SetActive(); - } - - // There are no events in the view. - else - { - HandleCompletionL( KErrNone ); - } - - break; - } - - case EStateDeletingEntry: - { - // The log event was successfully deleted. Issue another request - // to read the next entry. - if( iLogView->PreviousL( iStatus ) ) - { - iState = EStateReadingEntries; - SetActive(); - } - - // There are no events in the view. - else - { - HandleCompletionL( KErrNone ); - } - - break; - } - - case EStateComplete: - { - HandleCompletionL( KErrNone ); - break; - } - - default: - // This state should never be reached. - LOGSTRING( "CDiagLogEventEraser::RunL() - Invalid State." ) - User::Invariant(); - break; - } - } - -// --------------------------------------------------------------------------- -// Handles the cancellation of active requests. -// --------------------------------------------------------------------------- -// -void CDiagLogEventEraser::DoCancel() - { - LOGSTRING( "CDiagLogEventEraser::DoCancel()" ) - - iLogView->Cancel(); - iLogClient->Cancel(); - iState = EStateInitial; - } - -// End of file diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagnetworkregstatuswatcher.cpp --- a/devicediagnosticsfw/diagframework/src/diagnetworkregstatuswatcher.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,266 +0,0 @@ -/* -* Copyright (c) 2007 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: This is the implementation for the Diagnostics Network -* registration status watcher. -* -*/ - - -// CLASS DECLARATION -#include - -// SYSTM INCLUDE FILES -#include -#include // Debugging macros -#include // MDiagNetworkRegStatusObserver - - -// ============================ MEMBER FUNCTIONS ============================= - -// --------------------------------------------------------------------------- -// Static two-phase constructor. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagNetworkRegStatusWatcher* CDiagNetworkRegStatusWatcher::NewL( - MDiagNetworkRegStatusObserver& aCallBack ) - { - CDiagNetworkRegStatusWatcher* self = new ( ELeave ) - CDiagNetworkRegStatusWatcher( aCallBack ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagNetworkRegStatusWatcher::~CDiagNetworkRegStatusWatcher() - { - // cancel any pending request - Cancel(); - - delete iTelephony; - iTelephony = NULL; - - LOGSTRING( "CDiagNetworkRegStatusWatcher::ConstructL() Destroying Network registration status watcher" ) - } - -// --------------------------------------------------------------------------- -// The default constructor. -// --------------------------------------------------------------------------- -// -CDiagNetworkRegStatusWatcher::CDiagNetworkRegStatusWatcher - ( MDiagNetworkRegStatusObserver& aCallBack ) - : CActive( EPriorityStandard ), - iState( EStateInit ), - iRegV1(), - iRegV1Pckg( iRegV1 ), - iCallBack( aCallBack ) - { - CActiveScheduler::Add( this ); - } - - -// --------------------------------------------------------------------------- -// The second phase constructor. -// --------------------------------------------------------------------------- -// - -void CDiagNetworkRegStatusWatcher::ConstructL() - { - LOGSTRING( "CDiagNetworkRegStatusWatcher::ConstructL() Creating Network registration status watcher" ) - iTelephony = CTelephony::NewL(); - iPreviouslyRegistered = EFalse; - } - - -// --------------------------------------------------------------------------- -// This function starts the network registration status monitor process. This -// involves first checking for the current status and then registering for any -// changes that may occur. -// --------------------------------------------------------------------------- -// - -EXPORT_C void CDiagNetworkRegStatusWatcher::StartObserver() - { - // get the current status of network registration - iState = EStateWaitForInitialStatus; - iTelephony->GetNetworkRegistrationStatus( iStatus, iRegV1Pckg ); - SetActive(); - } - - -// --------------------------------------------------------------------------- -// This function stops the network registration monitor process -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagNetworkRegStatusWatcher::StopObserver() - { - Cancel(); - } - -// --------------------------------------------------------------------------- -// Handles the completion of active requests. -// --------------------------------------------------------------------------- -// -void CDiagNetworkRegStatusWatcher::RunL() - { - switch ( iState ) - { - case EStateWaitForInitialStatus: - { - HandleInitialStatusL(); - } - break; - - case EStateWaitForStatusChange: - { - HandleNetworkStatusChangeL(); - } - break; - - default: - break; - } - } - - - -// --------------------------------------------------------------------------- -// Handles the request for initial network registration status -// --------------------------------------------------------------------------- -// -void CDiagNetworkRegStatusWatcher::HandleInitialStatusL() - { - if ( iStatus == KErrNone ) - { - // get the current registration status - TBool currentRegStatus = IsDeviceRegisteredOnNetwork(); - - LOGSTRING2( "CDiagNetworkRegStatusWatcher::HandleInitialStatus : current status = %d", currentRegStatus ) - - // we have to continue monitoring changes in network registration status - // so set the next asynchronous request - iState = EStateWaitForStatusChange; - iTelephony->NotifyChange( iStatus, - CTelephony::ENetworkRegistrationStatusChange, iRegV1Pckg ); - SetActive(); - - // inform the client about the initial registration status - iPreviouslyRegistered = currentRegStatus; - iCallBack.InitialNetworkRegistrationStatusL( currentRegStatus ); - } - else - { - // inform the client that device is not registered - iCallBack.InitialNetworkRegistrationStatusL( EFalse ); - iPreviouslyRegistered = EFalse; - } - } - - - -// --------------------------------------------------------------------------- -// Handles the events related to Network registration status change -// --------------------------------------------------------------------------- -// -void CDiagNetworkRegStatusWatcher::HandleNetworkStatusChangeL() - { - if ( iStatus == KErrNone ) - { - // get the current registration status - TBool currentRegStatus = IsDeviceRegisteredOnNetwork(); - - LOGSTRING2( "CDiagNetworkRegStatusWatcher::HandleNetworkStatusChange : current status = %d", currentRegStatus ) - - // we have to continue monitoring changes in network registration status - // so set the next asynchronous request - iState = EStateWaitForStatusChange; - iTelephony->NotifyChange( iStatus, - CTelephony::ENetworkRegistrationStatusChange, iRegV1Pckg ); - SetActive(); - - // if the current registration state is different from previous state, - // inform the client - if ( currentRegStatus != iPreviouslyRegistered ) - { - // inform the client about the network status change - iCallBack.NetworkRegistrationStatusChangeL( currentRegStatus ); - } - iPreviouslyRegistered = currentRegStatus; - } - else - { - iCallBack.NetworkRegistrationStatusChangeL( EFalse ); - iPreviouslyRegistered = EFalse; - } - } - - - -// --------------------------------------------------------------------------- -// This function wraps the logic if the device is currently registered or not -// --------------------------------------------------------------------------- -// -TBool CDiagNetworkRegStatusWatcher::IsDeviceRegisteredOnNetwork() - { - TBool regStatus = EFalse; - switch ( iRegV1.iRegStatus ) - { - case CTelephony::ERegisteredOnHomeNetwork: - case CTelephony::ERegisteredRoaming: - { - regStatus = ETrue; - } - break; - default: - { - // the device lost the network coverage - regStatus = EFalse; - } - break; - } - return regStatus; - } - -// --------------------------------------------------------------------------- -// Handles the cancellation of active requests. -// --------------------------------------------------------------------------- -// -void CDiagNetworkRegStatusWatcher::DoCancel() - { - switch ( iState ) - { - case EStateWaitForInitialStatus: - { - iTelephony->CancelAsync( CTelephony::EGetNetworkRegistrationStatusCancel ); - } - break; - - case EStateWaitForStatusChange: - { - iTelephony->CancelAsync( CTelephony::ENetworkRegistrationStatusChangeCancel ); - } - break; - - default: - break; - } - } - -// End of file - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagpluginconstructionparam.cpp --- a/devicediagnosticsfw/diagframework/src/diagpluginconstructionparam.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagPluginConstructionParam -* -*/ - - -// CLASS DECLARATION -#include - -// SYSTEM INCLUDE FILES -#include // CDesC16ArrayFlat - -// USER INCLUDE FILES - -// CONSTANTS -_LIT( KDiagPluginBlankServiceName, "" ); - -// ======== LOCAL FUNCTIONS ======== - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagPluginConstructionParam::NewL() -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagPluginConstructionParam* CDiagPluginConstructionParam::NewL( - HBufC* aServiceProvided, - CDesC16ArrayFlat* aServicesRequired, - TInt aOrder, - TUid aImplUid, - TUid aParentUid ) - { - CDiagPluginConstructionParam* self = CDiagPluginConstructionParam::NewLC( - aServiceProvided, - aServicesRequired, - aOrder, - aImplUid, - aParentUid ); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDiagPluginConstructionParam::NewLC() -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagPluginConstructionParam* CDiagPluginConstructionParam::NewLC( - HBufC* aServiceProvided, - CDesC16ArrayFlat* aServicesRequired, - TInt aOrder, - TUid aImplUid, - TUid aParentUid ) - { - CDiagPluginConstructionParam* self = new( ELeave )CDiagPluginConstructionParam( - aServiceProvided, - aServicesRequired, - aOrder, - aImplUid, - aParentUid ); - CleanupStack::PushL( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagPluginConstructionParam::CDiagPluginConstructionParam -// --------------------------------------------------------------------------- -// -CDiagPluginConstructionParam::CDiagPluginConstructionParam( - HBufC* aServiceProvided, - CDesC16ArrayFlat* aServicesRequired, - TInt aOrder, - TUid aImplUid, - TUid aParentUid ) - : iServiceProvided ( aServiceProvided ), - iServicesRequired ( aServicesRequired ), - iOrder ( aOrder ), - iImplUid ( aImplUid ), - iParentUid ( aParentUid ) - { - } - -// --------------------------------------------------------------------------- -// CDiagPluginConstructionParam::~CDiagPluginConstructionParam -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagPluginConstructionParam::~CDiagPluginConstructionParam() - { - delete iServiceProvided; - iServiceProvided = NULL; - - delete iServicesRequired; - iServicesRequired = NULL; - } - -// --------------------------------------------------------------------------- -// CDiagPluginConstructionParam::ServiceProvided -// --------------------------------------------------------------------------- -// -EXPORT_C const TDesC& CDiagPluginConstructionParam::ServiceProvided() const - { - if ( iServiceProvided ) - { - return *iServiceProvided; - } - else - { - // there is no service name. Because we must return a reference, - // we should at least return a blank text. - return KDiagPluginBlankServiceName(); - } - } - -// --------------------------------------------------------------------------- -// CDiagPluginConstructionParam::ServicesRequired -// --------------------------------------------------------------------------- -// -EXPORT_C const CDesC16ArrayFlat& CDiagPluginConstructionParam::ServicesRequired() const - { - return *iServicesRequired; - } - -// --------------------------------------------------------------------------- -// CDiagPluginConstructionParam::Order -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CDiagPluginConstructionParam::Order() const - { - return iOrder; - } - -// --------------------------------------------------------------------------- -// CDiagPluginConstructionParam::Uid -// --------------------------------------------------------------------------- -// -EXPORT_C TUid CDiagPluginConstructionParam::Uid() const - { - return iImplUid; - } - -// --------------------------------------------------------------------------- -// CDiagPluginConstructionParam::ParentUid -// --------------------------------------------------------------------------- -// -EXPORT_C TUid CDiagPluginConstructionParam::ParentUid() const - { - return iParentUid; - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagpluginexecplanimpl.cpp --- a/devicediagnosticsfw/diagframework/src/diagpluginexecplanimpl.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1577 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagPluginExecPlanImpl -* -*/ - - -// CLASS DECLARATION -#include "diagpluginexecplanimpl.h" - -// SYSTEM INCLUDE FILES -#include -#include // CStack -#include // MDiagPlugin -#include // MDiagSuitePlugin -#include // MDiagTestPlugin -#include // CDiagPluginPool -#include // RDiagResultsDatabaseRecord -#include // CDiagResultsDbItemBuilder -#include // MDiagResultDetail -#include // For debug log -#include // CDiagResultsDbRecordEngineParam - -// USER INCLUDE FILES -#include "diagframework.pan" // panic codes -#include "diagexecplanentryimpl.h" // CDiagExecPlanEntryImpl -#include "diagexecplanentryimpltest.h" // CDiagExecPlanEntryImplTest -#include "diagexecplanentryimplsuite.h" // CDiagExecPlanEntryImplSuite -#include "diagcleanupresetanddestroy.h" // CleanupRPointerArrayPushL -#include "diagengineconfig.h" // TDiagEngineConfig - - -// DATA - -// MACROS -// Uncomment the line below to enable more plan creation log. -// #define _DEBUG_EXEC_PLAN - - -// LOCAL DATA TYPES -/** -* Used for keeping track of suite level stack. -* It is used in InsertSuiteTransitionsL() function. ( STEP_5 ) -*/ -struct TTransitionStackEntry - { - /** - * iLeavelUid - Uid of the current level. - */ - TUid iLevelUid; - - /** - * iPrepareIndex - Index in the plan where ETypeSuitePrepare entry is. - * This information is used to update the suite iAsDependent field. - */ - TInt iPrepareIndex; - }; - - -// ======== LOCAL FUNCTIONS ======== - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::NewL -// --------------------------------------------------------------------------- -// -CDiagPluginExecPlanImpl* CDiagPluginExecPlanImpl::NewL( - MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aEntryObserver ) - { - CDiagPluginExecPlanImpl* self = new ( ELeave ) CDiagPluginExecPlanImpl( - aEngine, - aEngineConfig, - aEntryObserver ); - - return self; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::CDiagPluginExecPlanImpl -// --------------------------------------------------------------------------- -// -CDiagPluginExecPlanImpl::CDiagPluginExecPlanImpl( - MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aEntryObserver ) - : CActive( EPriorityLow ), - iEngine( aEngine ), - iEngineConfig( aEngineConfig ), - iPlanEntryObserver( aEntryObserver ) - { - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::~CDiagPluginExecPlanImpl -// --------------------------------------------------------------------------- -// -CDiagPluginExecPlanImpl::~CDiagPluginExecPlanImpl() - { - Cancel(); - iPlan.ResetAndDestroy(); - iPlan.Close(); - iExecutedEntries.ResetAndDestroy(); - iExecutedEntries.Close(); - } - - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::InitaliazeL -// Creating a fresh session. -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::InitializeL( TRequestStatus& aStatus, - const RPointerArray< MDiagPlugin >& aBatch ) - { - LOGSTRING( "CDiagPluginExecPlanImpl::InitializeL: new session") - - __ASSERT_ALWAYS( iState == EStateIdle, Panic( EDiagFrameworkInternal ) ); - - aStatus = KRequestPending; - iClientStatus = &aStatus; - - iExecutedEntries.ResetAndDestroy(); - iPlan.ResetAndDestroy(); - iResumeIndex = 0; - - // pre-step execution step. copy the argument to a local plan - TInt i; - for ( i = 0; i < aBatch.Count(); i++ ) - { - __ASSERT_ALWAYS( aBatch[i] != NULL, Panic( EDiagFrameworkBadArgument ) ); - - CDiagExecPlanEntryImpl* newEntry = CreateDefaultPlanEntryLC( - *(aBatch[i]), - EFalse ); // aAsDependency - - iPlan.AppendL( newEntry ); // ownership transferred. - CleanupStack::Pop( newEntry ); - newEntry = NULL; - } - - LOGSTRING( "CDiagPluginExecPlanImpl::InitializeL: Initial Batch" ) - LogPlanL(); - - ChangeState( EStateExpandDependencyAndSuites ); - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::InitializeL -// Continuing from incomplete session. -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::InitializeL( TRequestStatus& aStatus ) - { - LOGSTRING( "CDiagPluginExecPlanImpl::InitaliazeL: continue" ) - - // validate input. - __ASSERT_ALWAYS( iState == EStateIdle, Panic( EDiagFrameworkInternal ) ); - - // if we are resuming incomplete session, it must incomplete. - TBool isRecordCompleted = EFalse; - User::LeaveIfError( iEngine.DbRecord().IsTestCompleted( isRecordCompleted ) ); - __ASSERT_ALWAYS( !isRecordCompleted, Panic( EDiagFrameworkBadArgument ) ); - - aStatus = KRequestPending; - iClientStatus = &aStatus; - iResumeIndex = 0; - - iExecutedEntries.ResetAndDestroy(); - iPlan.ResetAndDestroy(); - - // Retrieve records from database and use it as base for creating - // a new plan. - RPointerArray< CDiagResultsDatabaseItem > previousResults; - DiagFwInternal::CleanupRPointerArrayPushL< CDiagResultsDatabaseItem >( &previousResults ); - - User::LeaveIfError( - iEngine.DbRecord().GetTestResults( previousResults ) ); - - TInt resultCount = previousResults.Count(); - for( TInt i = 0; i < resultCount; i++ ) - { - // Get the test plug-in. - // Note that FindPlugin does not transfer ownership and hence testPlugin - // and does not need to be deallocated. - MDiagPlugin& testPlugin = - iEngine.PluginPool().FindPluginL( previousResults[i]->TestUid() ); - - // This should have been a test plug-in - __ASSERT_DEBUG( testPlugin.Type() == MDiagPlugin::ETypeTestPlugin, - Panic( EDiagFrameworkInternal ) ); - - CDiagExecPlanEntryImplTest* testEntry = - CDiagExecPlanEntryImplTest::NewLC( - iEngine, - iEngineConfig, - iPlanEntryObserver, - static_cast< MDiagTestPlugin& >( testPlugin ), - previousResults[i]->WasDependency(), - previousResults[i]->TestResult() ); - - if ( testEntry->Result() == CDiagResultsDatabaseItem::EQueuedToRun ) - { - // it was queued to be executed. - iPlan.AppendL( testEntry ); // ownership transferred. - } - else - { - // it was already executed. - iExecutedEntries.AppendL( testEntry ); // ownership transferred. - } - CleanupStack::Pop( testEntry ); - testEntry = NULL; - } - - CleanupStack::PopAndDestroy( &previousResults ); - - iResumeIndex = iExecutedEntries.Count(); - - if ( iResumeIndex != 0 ) - { - LOGSTRING( "CDiagPluginExecPlanImpl::InitializeL: Queued Items" ) - LogPlanL(); - - ChangeState( EStateExpandDependencyAndSuites ); - } - else - { - LOGSTRING( "CDiagPluginExecPlanImpl::InitializeL: " - L"Items in DB may be invalid. Fully recreate plan" ) - - // If iResumeIndex is 0, it means that all items in the db are - // marked as EQueuedToRun. Because of the async nature of db, - // it could also indicate that not previous plan was not fully - // written to the database. In this case, read the engine parameter - // and try to recreate the plan from scratch. - // - // If it was already fully written but hadn't had a chance to really - // execute anything, this will not cause any ill effects since - // plan created should be identical and simply reset - // all results in db to EQueuedToRun. - iExecutedEntries.ResetAndDestroy(); - iPlan.ResetAndDestroy(); - - RPointerArray< MDiagPlugin > batch; - CleanupClosePushL( batch ); // items are not owned, so no need for "Destroy" - - CDiagResultsDbRecordEngineParam* engineParam = NULL; - User::LeaveIfError( - iEngine.DbRecord().GetEngineParam( engineParam ) ); - - CleanupStack::PushL( engineParam ); - - const RArray< TUid >& batchUids = engineParam->ExecutionsUidArray(); - - // Read original Uids from previous engine param. - for( TInt i = 0; i < batchUids.Count(); i++ ) - { - MDiagPlugin* testPlugin = NULL; - User::LeaveIfError( - iEngine.PluginPool().FindPlugin( batchUids[i], testPlugin ) ); - - __ASSERT_DEBUG( testPlugin != NULL, Panic( EDiagFrameworkInternal ) ); - if ( testPlugin ) //lint !e774 This will be evaluated on non-debug build. - { - batch.AppendL( testPlugin ); - } - } - - CleanupStack::PopAndDestroy( engineParam ); - engineParam = NULL; - - // Call the normal InitializeL() method as if it is a new session. - InitializeL( aStatus, batch ); - - CleanupStack::PopAndDestroy( &batch ); // calls Close() - } - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::operator[] -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImpl& CDiagPluginExecPlanImpl::operator[]( TInt aIndex ) - { - return *iPlan[aIndex]; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::CurrentExecutionItem -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImpl& CDiagPluginExecPlanImpl::CurrentExecutionItem() - { - return *iPlan[iExecutionCursor]; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::ResetExecutionCursor -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::ResetExecutionCursor() - { - iExecutionCursor = 0; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::MoveCursorToNext -// --------------------------------------------------------------------------- -// -TBool CDiagPluginExecPlanImpl::MoveCursorToNext() - { - TBool value = EFalse; - - if ( iExecutionCursor < iPlan.Count() - 1 ) - { - iExecutionCursor++; - value = ETrue; - } - else - { - // cannot move beyond the last item. - } - - return value; - } - -// ======== From CActive ========= -// --------------------------------------------------------------------------- -// From CActive -// CDiagPluginExecPlanImpl::RunL -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::RunL() - { - /*---------------------------------------------------------------------- - Create execution plan: - Overview: - - STEP_1. Expand Dependency - STEP_2. Expand Suites. - STEP_3. Repeat STEP_1 & STEP_2 until no changes are made to the plan - STEP_4. Check and remove empty suites - STEP_5. Add Prepare/Finalize suite execution. - STEP_6. Store execution plan to results db. - STEP_7. Append items that were executed in the previous test - to the beginning of the test. - - Details: - STEP_1. Expand Dependency - In this step, each item is checked for dependency and - dependent items will be inserted into plan. - Note that if dependent item also depends on something else, those - will be added immediately. - - All items inserted during this phase is inserted as dependent. - - STEP_2. Expand suites - Suites are expandeded to individual tests or suites. Suite - item will be expanded between parent suite's Prepare and - Finalize items. - - iAsDependent value will be inherited from the parent suite - that it expanded from. E.g. if suite was dependent, then so will - all the items that included from that suite. - - Note that it does not remove the original suite entry in the plan. - This is to make sure that dependencies inserted will be grouped - within the same group as the plug-ins that depended on it. - If they are removed, and re-inserted later in STEP_5, it will - cause the dependent items to be outside of the original grouping. - e.g. S1 = {P1} - S2 = {P2, P3} - - and P2 depends on P1 - - When dependency and suites are expanded with original - suite removed, after STEP_3, the plan will look like this: - (* indicates iAsDependent == ETrue) - - 0 1 2 - *P1 P2 P3 - - When it tries to add suite transition back in to the plan, - it will look like this: - (* indicates iAsDependent == ETrue) - (< indicates suite prepare execution.) - (> indicates suite finalize execution.) - - 0 1 2 3 4 5 6 - - - which is somewhat incorrect since *P1 is added due to - dependency. - - Instead, if original suite grouping is kept, after STEP_3 - - 0 1 2 3 4 - - - After STEP_5 - - 0 1 2 3 4 5 6 - P2 P3 S2> - - which is more correct. - - Note that this will be done in breadth first style. If there is a - nested suites, it will not be expanded until next cycle. - This is to allow dependencies of the suite to be expanded before - being removed. - - STEP_3. Repeat STEP_1 & STEP_2 until no changes are made. - This step ensures that suites are expanded, and all dependent - items are added to the plan. - - STEP_4. Remove Empty suites - Because dependent items can be moved, it is possible that plan ends - up with empty suites. This section will check for - suite prepare/finalize that has nothing inside, and remove them. - - STEP_5. Add Prepare/Finalize steps for suites. - As a final step, it will navigate all the entries in the plan, and - insert proper prepare/finalize steps. This is based on stack, - where every suite prepare is pushed into a stack, and poped when - suite finalize is called. e.g. consider following plug-ins: - - S1 = { P1, P2 } - S2 = { P3, P4 } - - And P3 depends on P2. - - And resulting plan after STEP_4 looked like this: - - 0 1 2 3 4 - - - After STEP_5, it should look like this: - - 0 1 2 3 4 5 6 - P3 P4 S2> - - STEP_6. Store execution plan to results db. - This allows continuation of the incomplete results. - Only test plug-ins are written to the database. - - STEP_7. Append items that were executed in the previous test - to the beginning of the test. - - Other Notes: - - NOTE_1) This logic currently does not check for circular dependencies. - If circular dependency exists, the program will go into an - infinite loop in ExpandDependenciesL(). - - NOTE_2) Inserting duplicate items. - Due to dependencies, duplicate entries may exist in the plan. - - When items are inserted during STEP_1 - STEP_2, it will be checked - for duplicates. - - Duplicate removal policy is as follows: - RULE_A) If an item with "iAsDependent == ETrue" is being inserted, - AND if an item already exist in the plan before current index, - then it will not be inserted. - - RULE_B) Any items inserted with "iAsDependent == EFalse" will - always be inserted at the requested index. - This is because they are considered to be user input, and - plan will not try to re-order the execution order that - client or user has specified. - - RULE_C) The first instance of an item has higher priority than later - instances. Later instace of duplicate will be removed, unless - it violates RULE_B. (e.g. item has "iAsDependent == EFalse".) - - This has a side effect: item may execute twice in certain cases. - E.g. original plan has two plug-ins: P1, P2, P3 - P1 depends on P2, and P3 also depends ond P2 - - Original Input: 0 1 2 - P1 P2 P3 - - After STEP_3, it should look like this. - (* indicates iAsDependent == ETrue) - - 0 1 2 3 4 - *P2 P1 P2 *P2 P3 - - During STEP_4, duplicates are removed, and it should look like this: - (* indicates iAsDependent == ETrue) - - 0 1 2 4 - *P2 P1 P2 P3 - - Note that there are two P2s in the plan; - at 0 with iAsDependent == ETrue and at 2 with iAsDependent == EFalse - - There may be some discussions on whether this is how it should be. - However, at this point, it seems that it is more important that - execution appears to the user in the order specified. - - To make sure that user sees that P2 is executed only once, plug-in - developer may need to make sure that if a plug-in provides services, - it should also handle cases where it is executed twice. - - In reality, such cases can be avoided by grouping the plug-ins - in the correct order, hence it should not be an issue. - - ----------------------------------------------------------------------*/ - - // First, error handling. - LOGSTRING3( "CDiagPluginExecPlanImpl::RunL: State = %d, Err = %d", - iState, iStatus.Int() ) - - User::LeaveIfError( iStatus.Int() ); - - switch ( iState ) - { - case EStateExpandDependencyAndSuites: - { - LOGSTRING( "CDiagPluginExecPlanImpl::RunL: STEP_1") - // STEP_1. Expand dependency. - if ( !iEngineConfig.IsDependencyDisabled() ) - { - ExpandDependenciesL(); - } - - LOGSTRING( "CDiagPluginExecPlanImpl::RunL: STEP_2") - // STEP_2. Expand suites. - if ( ExpandSuitesL() ) - { - // STEP_3. Repeat STEP_1, STEP_2 until no changes are made. - // Do a self transition to repeat STEP_1 and STEP_2 - ChangeState( EStateExpandDependencyAndSuites ); - } - else - { - // no changes are made to the plan. Move to STEP_4 - ChangeState( EStateRemoveEmptySuites ); - } - } - break; - - case EStateRemoveEmptySuites: - LOGSTRING( "CDiagPluginExecPlanImpl::RunL: STEP_4") - // STEP_4. Remove empty suites. This can happen because of duplicate - // dependencies moving later dependent test to earlier position. - RemoveEmptySuites(); - - #ifdef _DEBUG_EXEC_PLAN - LOGSTRING( "CDiagPluginExecPlanImpl:CreatePlanL: " - L"Before Inserting Suite Transtions" ) - LogPlanL(); - #endif // _DEBUG_EXEC_PLAN - - // Continue to STEP_5 - ChangeState( EStateInsertSuiteTransitions ); - break; - - case EStateInsertSuiteTransitions: - LOGSTRING( "CDiagPluginExecPlanImpl::RunL: STEP_5 - Insert Suite Transtions") - // STEP_5. Add pre/post suite execution - InsertSuiteTransitionsL(); - - // STEP_6. Store plan to db. - LOGSTRING( "CDiagPluginExecPlanImpl::RunL: STEP_6 - Store to db") - // this time, manually update state, since storing - // to database needs to use iStatus - iState = EStateStoreToDb; - - // Move cursor to one before so that it can start checking from - // the beginning. StoreNextTestPluginToDbL() will move the cursor - // as soon as it enters. - iExecutionCursor = -1; - StoreNextTestPluginToDbL(); - - break; - - case EStateStoreToDb: - LOGSTRING2( "CDiagPluginExecPlanImpl::RunL: STEP_6 - " - L"item 0x%08x stored.", - iPlan[iExecutionCursor]->Plugin().Uid().iUid ) - - StoreNextTestPluginToDbL(); - break; - - case EStatePlanCreated: - // STEP_7. Prepend the items that were executed in last session - // to the beginning of the execution plan. - LOGSTRING( "CDiagPluginExecPlanImpl::RunL: STEP_7 - prepend executed items" ) - PrependExecutedItemsL(); - - LOGSTRING( "CDiagPluginExecPlanImpl::RunL: Final Plan" ) - LogPlanL(); - - LOGSTRING2( "CDiagPluginExecPlanImpl::RunL: Resume at index %d", iResumeIndex ) - - LogPlanInRecordL(); - - ResetExecutionCursor(); - - ReportResult( KErrNone ); - break; - - case EStateIdle: - default: - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkInternal ) ); - break; - } - } - -// --------------------------------------------------------------------------- -// From CActive -// CDiagPluginExecPlanImpl::DoCancel -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::DoCancel() - { - iPlan.ResetAndDestroy(); - iExecutedEntries.ResetAndDestroy(); - iState = EStateIdle; - - ReportResult( KErrCancel ); - } - -// --------------------------------------------------------------------------- -// From CActive -// CDiagPluginExecPlanImpl::RunError -// --------------------------------------------------------------------------- -// -TInt CDiagPluginExecPlanImpl::RunError( TInt aError ) - { - iPlan.ResetAndDestroy(); - iExecutedEntries.ResetAndDestroy(); - iState = EStateIdle; - - ReportResult( aError ); - - return KErrNone; - } - -// --------------------------------------------------------------------------- -// From MDiagPluginExecPlan -// CDiagPluginExecPlanImpl::CurrentIndex -// --------------------------------------------------------------------------- -// -TInt CDiagPluginExecPlanImpl::CurrentIndex() const - { - return iExecutionCursor; - } - - -// --------------------------------------------------------------------------- -// From MDiagPluginExecPlan -// CDiagPluginExecPlanImpl::CurrentTestIndex -// --------------------------------------------------------------------------- -// -TInt CDiagPluginExecPlanImpl::CurrentTestIndex( TBool aIncludeDependency ) const - { - TInt count = 0; - - for ( TInt i = 0; i < iPlan.Count() && i < iExecutionCursor; i++ ) - { - if ( iPlan[i]->Plugin().Type() == MDiagPlugin::ETypeTestPlugin ) - { - // if caller wants to include both explicit and dependent - // or if plug-in is not depentent test, count. - if ( aIncludeDependency || ( !iPlan[i]->AsDependency() ) ) - { - count++; - } - } - } - - // subtract 1 if we only went past the last test. - if ( count >= TestCount( aIncludeDependency ) ) - { - count--; - } - return count; - } - - -// --------------------------------------------------------------------------- -// From MDiagPluginExecPlan -// CDiagPluginExecPlanImpl::TestCount -// --------------------------------------------------------------------------- -// -TInt CDiagPluginExecPlanImpl::TestCount( TBool aIncludeDependency ) const - { - TInt count = 0; - - for ( TInt i = 0; i < iPlan.Count(); i++ ) - { - if ( iPlan[i]->Plugin().Type() == MDiagPlugin::ETypeTestPlugin ) - { - // if caller wants to include both explicit and dependent - // or if plug-in is not depentent test, count. - if ( aIncludeDependency || ( !iPlan[i]->AsDependency() ) ) - count++; - } - } - return count; - } - -// --------------------------------------------------------------------------- -// From MDiagPluginExecPlan -// CDiagPluginExecPlanImpl::operator[] () const -// --------------------------------------------------------------------------- -// -const MDiagExecPlanEntry& CDiagPluginExecPlanImpl::operator[] ( TInt aIndex ) const - { - __ASSERT_ALWAYS( aIndex >= 0 && aIndex < iPlan.Count(), - Panic( EDiagFrameworkArrayBounds ) ); - return *( static_cast< MDiagExecPlanEntry* >( iPlan[aIndex] ) ); - } - -// --------------------------------------------------------------------------- -// From MDiagPluginExecPlan -// CDiagPluginExecPlanImpl::CurrentExecutionItem const -// --------------------------------------------------------------------------- -// -const MDiagExecPlanEntry& CDiagPluginExecPlanImpl::CurrentExecutionItem() const - { - __ASSERT_ALWAYS( iExecutionCursor >= 0 && iExecutionCursor < iPlan.Count(), - Panic( EDiagFrameworkArrayBounds ) ); - return *( static_cast< MDiagExecPlanEntry* >( iPlan[iExecutionCursor] ) ); - } - - -// --------------------------------------------------------------------------- -// From MDiagPluginExecPlan -// CDiagPluginExecPlanImpl::IsLastTest -// --------------------------------------------------------------------------- -// -TBool CDiagPluginExecPlanImpl::IsLastTest() const - { - if ( TestCount( ETrue ) == 0 ) - { - // there was no test in the plan.. - // In this case, it is always ETrue. - return ETrue; - } - - return ( CurrentTestIndex( ETrue ) == TestCount( ETrue ) - 1 ); - } - -// --------------------------------------------------------------------------- -// From MDiagPluginExecPlan -// CDiagPluginExecPlanImpl::IsLastPlugin -// --------------------------------------------------------------------------- -// -TBool CDiagPluginExecPlanImpl::IsLastPlugin() const - { - if ( iPlan.Count() == 0 ) - { - // if plan was empty, always consider it to be the last. - return ETrue; - } - - return iExecutionCursor == ( iPlan.Count() -1 ); - } - - -// --------------------------------------------------------------------------- -// From MDiagPluginExecPlan -// CDiagPluginExecPlanImpl::Count -// --------------------------------------------------------------------------- -// -TInt CDiagPluginExecPlanImpl::Count() const - { - return iPlan.Count(); - } - -// --------------------------------------------------------------------------- -// From MDiagPluginExecPlan -// CDiagPluginExecPlanImpl::ResumeIndex -// --------------------------------------------------------------------------- -// -TInt CDiagPluginExecPlanImpl::ResumeIndex() const - { - return iResumeIndex; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::ChangeState -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::ChangeState( TState aState ) - { - LOGSTRING3( "CDiagPluginExecPlanImpl::ChangeState: state change %d -> %d", - iState, aState ) - - iState = aState; - - TRequestStatus* stat = &iStatus; - User::RequestComplete( stat, KErrNone ); - SetActive(); - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::ExpandDependenciesL -// --------------------------------------------------------------------------- -// -TBool CDiagPluginExecPlanImpl::ExpandDependenciesL() - { - // STEP_1. Expand dependency. - // Before modifying this function, please see STEP_1 comments in CreatePlanL() - TInt planIdx = 0; - TBool planChanged( EFalse ); - while ( planIdx < iPlan.Count() ) - { - TBool itemAdded = EFalse; - - // we are only interested in type ETypeTestExec or ETypeSuiteUnexpanded. - // If it is ETypeSuitePrepare or ETypeSuiteFinalize, that means - // that it is a suite and it has been already been expanded to - // prepare/finalize. Since dependencies are resolved before suites - // are expanded, we are not interested in re-evaluating expanded tests. - if ( iPlan[planIdx]->Type() == CDiagExecPlanEntryImpl::ETypeTestExec || - iPlan[planIdx]->Type() == CDiagExecPlanEntryImpl::ETypeSuiteUnexpanded ) - { - // dependencies should be rare. So granuality 1 should be fine. - CPtrCArray* depList = new( ELeave )CPtrCArray( 1 ); - CleanupStack::PushL( depList ); - iPlan[planIdx]->Plugin().GetLogicalDependenciesL( *depList ); - - // iterate through the dependiencies BACKWARDS to make sure - // that dependencies are inserted in the same order - // specified. If it is not added backwards, developers may - // be surprised that dependencies are executed - // in reverse order of what is specified in the XML. - for ( TInt depIdx = depList->Count() - 1; depIdx >= 0; depIdx-- ) - { - // If dependency is specified, but the dependent plug-in is - // not found in plug-in pool, this probably means - // plug-in database is corrupted. - MDiagPlugin& plugin = iEngine.PluginPool().FindPluginL( ( *depList )[ depIdx ] ); - - if ( InsertPluginL( plugin, - ETrue, - planIdx ) ) - { - itemAdded = ETrue; - } - } - CleanupStack::PopAndDestroy( depList ); - depList = NULL; - } - - // Advance to next item in plan only if no new item is added. - // This ensures that items just added are re-evaluated for - // dependency, and expand if it is an unexpanded suite. - if ( !itemAdded ) - { - planIdx++; - } - else - { - planChanged = ETrue; - } - } - - return planChanged; - } - - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::ExpandSuitesL -// --------------------------------------------------------------------------- -// -TBool CDiagPluginExecPlanImpl::ExpandSuitesL() - { - // STEP_2. Expand suites. - // Before modifying this function, please see STEP_1 comments in CreatePlanL() - TBool planChanged = EFalse; - TInt i = 0; - while ( i < iPlan.Count() ) - { - if ( iPlan[i]->Type() == CDiagExecPlanEntryImpl::ETypeSuiteUnexpanded ) - { - // If it is unexpanded, it must be a suite. - __ASSERT_DEBUG( iPlan[i]->Plugin().Type() == MDiagPlugin::ETypeSuitePlugin, - Panic( EDiagFrameworkInternal ) ); - planChanged = ETrue; - - // Change type from ETestExec to ETypeSuitePrepare. This indicates - // that the suite item in the plan has been examined and - // expanded. - iPlan[i]->SetType( CDiagExecPlanEntryImpl::ETypeSuitePrepare ); - - // dependency is inherited - TBool asDependency = iPlan[i]->AsDependency(); - - // Get Children from the plug-in - MDiagSuitePlugin& suite = static_cast( iPlan[i]->Plugin() ); - RPointerArray children; - CleanupClosePushL( children ); - - suite.GetChildrenL( children, MDiagSuitePlugin::ESortByPosition ); - - i++; // insert rest after current item. - - TInt childIdx = 0; - while ( childIdx < children.Count() ) - { - if ( InsertPluginL( *( children[childIdx] ), - asDependency, - i ) ) - { - // new item is added. Move to next - i++; - } - childIdx++; - } - - children.Reset(); // children pointers are not owned - CleanupStack::PopAndDestroy( &children ); - - // insert suite finalize entry into plan - CDiagExecPlanEntryImplSuite* finalizeEntry = - CDiagExecPlanEntryImplSuite::NewLC( - iEngine, - iEngineConfig, - iPlanEntryObserver, - suite, - asDependency, - CDiagExecPlanEntryImpl::ETypeSuiteFinalize ); - - iPlan.InsertL( static_cast< CDiagExecPlanEntryImpl* >( finalizeEntry ), i ); - CleanupStack::Pop( finalizeEntry ); // owership transferred - finalizeEntry = NULL; - i++; - } - else - { - // this one is not suite, so examine the next one. - i++; - } - } - - return planChanged; - } - -// Looking for STEP_3? It is in RunL() .. - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::RemoveEmptySuites -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::RemoveEmptySuites() - { - // STEP_4. Remove empty suites - // Before modifying this function, please see STEP_1 comments in CreatePlanL() - - // Checking for duplicate is done by checking if suite prepare/finalize - // is in the plan next to each other. - // - // NOTE_4 - // After a empty suite is removed, step back one index. - // so that the previous item will be re-evaluated, in case removing them cased - // the parent suite to be empty as well. - // e.g - // i == 1 - // index: 0 [1] 2 3 - // A> - // after removal, now prepare/finalize A becomes next to each other - // - // i == 1 - // index: 0 [1] - // - // - // in order to make sure that above case is handled, decrement i and - // re-evaluate from index 0 - // - TInt i = 0; - while ( i < iPlan.Count() - 2 ) // no need to go beyond the last item - { - if ( iPlan[i]->Type() == CDiagExecPlanEntryImpl::ETypeSuitePrepare && - iPlan[i+1]->Type() == CDiagExecPlanEntryImpl::ETypeSuiteFinalize ) - { - // if these two do not match, then there may have been - // a problem during plan creation. - __ASSERT_DEBUG( iPlan[i]->Plugin().Uid() == iPlan[i+1]->Plugin().Uid(), - Panic( EDiagFrameworkCorruptPlugin ) ); - - - CDiagExecPlanEntryImpl* entry = iPlan[ i + 1 ]; - iPlan.Remove( i+1 ); - delete entry; - entry = NULL; - - entry = iPlan[i]; - iPlan.Remove( i ); - delete entry; - entry = NULL; - - // Wondering why step back by one? See NOTE_4 - if ( i > 0 ) - { - i--; - } - } - else - { - // it's not empty. Examine next item. - i++; - } - } - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::InsertSuiteTransitionsL -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::InsertSuiteTransitionsL() - { - // STEP_5. Add pre/post suite execution based on test parent change. - // Before modifying this function, please see STEP_1 comments in CreatePlanL() - - // if plan is empty, nothing to do. - if ( iPlan.Count() == 0 ) - { - return; - } - - // Create a new CStack. Second template parameter ETrue means that - // CStack owns the stack entries. - CStack* stack = - new( ELeave )CStack; - - CleanupStack::PushL( stack ); - - // create a root entry - AddRootSuiteIfMissingL(); - - // In this loop, iPlan.Count() cannot be cached because new item may be - // added within the loop - TInt i = 0; - while ( i < iPlan.Count() ) - { - #ifdef _DEBUG_EXEC_PLAN - LOGSTRING2( "CDiagPluginExecPlanImpl::InsertSuiteTransitionsL: ------ %d", i ) - LogPlanL(); - #endif // _DEBUG_EXEC_PLAN - - // Case 1 - // If current item is a suite prepare, push a new level into stack. - if ( iPlan[i]->Type() == CDiagExecPlanEntryImpl::ETypeSuitePrepare ) - { - // we are entering a new suite. Push current plan item into stack. - PushNewLevelL( *stack, i ); - i++; - continue; //lint !e960 continue OK. examine next item. - } - - // Case 2 - // If current item is a suite finalize, pop a level from stack. - if ( iPlan[i]->Type() == CDiagExecPlanEntryImpl::ETypeSuiteFinalize && - stack->Head() != NULL && - stack->Head()->iLevelUid == iPlan[i]->Plugin().Uid() ) - { - // we are leaving a suite. Pop top item from suite. - PopLevel( *stack ); - i++; - continue; //lint !e960 : continue OK. examine next item. - } - - // it was neither prepare or finalize. Examine item as current level. - const TTransitionStackEntry& level = *(stack->Head()); // Peek - - TUid newLevelUid = iPlan[i]->Plugin().ParentUid(); - - // Case 3 - if ( newLevelUid == level.iLevelUid ) - { - // still in the same suite level. No need to add new items. - - // check if current item is non-dependent. - // If so, update the iAsDependent to reflect that it includes - // a non-dependent item. - if ( !(iPlan[i]->AsDependency()) ) - { - // update the prepare item, indicating that it has - // an non-dependent item - iPlan[level.iPrepareIndex]->SetAsDependency( EFalse ); - } - i++; - continue; //lint !e960 : continue OK. examine next item. - } - - // If parent UID is differnt from current level uid, - // it can mean one of the following: - // A ) We are entering a new suite. - // B ) We leaving a suite. - // Case B ) can be deteced by checking whether the new parent is - // already in the stack somewhere (stack will be popped until we are - // in the same level), or if there is no more item of the same - // level is in the plan, which means it is not needed. - // If case B ) fails, assume case A. - if ( IsLevelInStack( *stack, newLevelUid ) || - !IsThisSuiteNeededAfterThisIndex( stack->Head()->iLevelUid, i ) ) - { - // Case B) Insert a new Finalize item. - AddSuiteFinalizeL( level.iPrepareIndex, i ); - } - else - { - // Case A) Insert a new prepare item. - AddSuitePrepareL( newLevelUid, i ); - } - } - - // When all done, stack must be empty. - __ASSERT_DEBUG( stack->IsEmpty(), Panic( EDiagFrameworkInternal ) ); - - CleanupStack::PopAndDestroy( stack ); - stack = NULL; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::AddRootSuiteIfMissingL -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::AddRootSuiteIfMissingL() - { - // Check to see if root element is already in the plan. - if ( iPlan[0]->Plugin().Uid() != KDiagRootSuiteUid ) - { - // root( uid 0 ) does not exist in the plan. - // Add prepare and finalize root into the plan. - MDiagPlugin& rootPlugin = iEngine.PluginPool().FindPluginL( KDiagRootSuiteUid ); - - CDiagExecPlanEntryImplSuite* rootEntry = - CDiagExecPlanEntryImplSuite::NewLC( - iEngine, - iEngineConfig, - iPlanEntryObserver, - static_cast< MDiagSuitePlugin& >( rootPlugin ), - ETrue, // iAsDependent == ETrue. Updated as later. - CDiagExecPlanEntryImpl::ETypeSuitePrepare ); - - iPlan.InsertL( static_cast< CDiagExecPlanEntryImpl* >( rootEntry ), 0 ); - CleanupStack::Pop( rootEntry ); // ownership transferred above. - rootEntry = NULL; - - rootEntry = CDiagExecPlanEntryImplSuite::NewLC( - iEngine, - iEngineConfig, - iPlanEntryObserver, - static_cast< MDiagSuitePlugin& >( rootPlugin ), - ETrue, // iAsDependent == ETrue. Updated as later. - CDiagExecPlanEntryImpl::ETypeSuiteFinalize ); - - // insert same entry with finalize as type - iPlan.AppendL( static_cast< CDiagExecPlanEntryImpl* >( rootEntry ) ); - CleanupStack::Pop( rootEntry ); // ownership transferred above - rootEntry = NULL; - } - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::PushNewLevelL -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::PushNewLevelL( - CStack& aStack, - TInt aHeadIndex ) - { - TTransitionStackEntry* level = new( ELeave )TTransitionStackEntry; - - __ASSERT_ALWAYS( aHeadIndex >= 0 && aHeadIndex < iPlan.Count(), - Panic( EDiagFrameworkInternal ) ); - - level->iLevelUid = iPlan[aHeadIndex]->Plugin().Uid(); - level->iPrepareIndex = aHeadIndex; - - #ifdef _DEBUG_EXEC_PLAN - LOGSTRING2( "CDiagPluginExecPlanImpl:: Push 0x%08x", level->iLevelUid.iUid ) - #endif // _DEBUG_EXEC_PLAN - - aStack.PushL( level ); // owership transferred. - level = NULL; //lint !e423 Ownership transferred. No leak here. - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::PopLevel -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::PopLevel( CStack& aStack ) - { - TTransitionStackEntry* level = aStack.Pop(); - #ifdef _DEBUG_EXEC_PLAN - LOGSTRING2( "CDiagPluginExecPlanImpl:: Pop 0x%08x", level->iLevelUid.iUid ) - #endif // _DEBUG_EXEC_PLAN - delete level; - level = NULL; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::IsLevelInStack -// --------------------------------------------------------------------------- -// -TBool CDiagPluginExecPlanImpl::IsLevelInStack( - CStack& aStack, - TUid aLevelUid ) const - { - for ( TInt i = 0; i < aStack.Count(); i++ ) - { - const TTransitionStackEntry& currEntry = *aStack[i]; - if ( currEntry.iLevelUid == aLevelUid ) - { - return ETrue; - } - } - - return EFalse; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::IsThisSuiteNeededAfterThisIndex -// --------------------------------------------------------------------------- -// -TBool CDiagPluginExecPlanImpl::IsThisSuiteNeededAfterThisIndex( - TUid aSuiteUid, - TInt aIndex ) const - { - for ( TInt i = aIndex; i < iPlan.Count(); i++ ) - { - if ( iPlan[i]->Plugin().Uid() == aSuiteUid || // finalize already exists - iPlan[i]->Plugin().ParentUid() == aSuiteUid ) - { - return ETrue; - } - } - - return EFalse; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::AddSuitePrepareL -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::AddSuitePrepareL( TUid aLevelUid, TInt aAt ) - { - MDiagPlugin& suitePlugin = iEngine.PluginPool().FindPluginL( aLevelUid ); - - CDiagExecPlanEntryImplSuite* prepareEntry = - CDiagExecPlanEntryImplSuite::NewLC( - iEngine, - iEngineConfig, - iPlanEntryObserver, - static_cast< MDiagSuitePlugin& >( suitePlugin ), - ETrue, // iAsDependent. Updated as later if not true. - CDiagExecPlanEntryImpl::ETypeSuitePrepare ); - - iPlan.InsertL( static_cast< CDiagExecPlanEntryImpl* >( prepareEntry ), aAt ); - CleanupStack::Pop( prepareEntry ); // ownership transfer - prepareEntry = NULL; - - #ifdef _DEBUG_EXEC_PLAN - LOGSTRING2( "CDiagPluginExecPlanImpl:: InsertPrepare 0x%08x", aLevelUid ) - #endif // _DEBUG_EXEC_PLAN - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::AddSuiteFinalizeL -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::AddSuiteFinalizeL( TInt aPrepareIndex, TInt aAt ) - { - // It is identical to the prepare entry, except that type is ETypeSuiteFinalize - __ASSERT_ALWAYS( aPrepareIndex >= 0 && aPrepareIndex < iPlan.Count(), - Panic( EDiagFrameworkInternal ) ); - - CDiagExecPlanEntryImplSuite& prepareEntry = - static_cast< CDiagExecPlanEntryImplSuite& > ( *(iPlan[aPrepareIndex]) ); - - CDiagExecPlanEntryImplSuite* finalizeEntry = - CDiagExecPlanEntryImplSuite::NewLC( - iEngine, - iEngineConfig, - iPlanEntryObserver, - prepareEntry.SuitePlugin(), - prepareEntry.AsDependency(), - CDiagExecPlanEntryImpl::ETypeSuiteFinalize ); - - iPlan.InsertL( static_cast< CDiagExecPlanEntryImpl* >( finalizeEntry ), aAt ); - CleanupStack::Pop( finalizeEntry ); // ownership transmitted above - finalizeEntry = NULL; - - #ifdef _DEBUG_EXEC_PLAN - LOGSTRING2( "CDiagPluginExecPlanImpl:: InsertFinalize 0x%08x", prepareEntry.Plugin().Uid().iUid ); - #endif // _DEBUG_EXEC_PLAN - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::StoreNextTestPluginToDbL -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::StoreNextTestPluginToDbL() - { - // STEP_6. Store plan to DB. - // In this step, all test entries must be stored in db with EQueuedToRun - // status. Since DbRecord().LogTestResult() is an async call, only one - // item can be written at a time. - // - // To do this, this function will search for the next "TEST" plug-in that - // needs to be logged to DB. Once it is found, it will call async function - // LogTestResult() and wait for RunL() to execute again. - // In RunL(), StoreNextTestPluginToDbL() is called again, and it will look for the - // next test plugin to store until it loops through all items in plan. - while ( MoveCursorToNext() ) - { - if ( CurrentExecutionItem().Plugin().Type() == MDiagPlugin::ETypeTestPlugin ) - { - LOGSTRING2( "CDiagPluginExecPlanImpl::RunL: STEP_6 - storing item 0x%08x", - CurrentExecutionItem().Plugin().Uid().iUid ) - - CDiagResultsDatabaseItem* resultItem = - CDiagResultsDbItemBuilder::CreateSimpleDbItemL( - CurrentExecutionItem().Plugin().Uid(), - CurrentExecutionItem().AsDependency(), - CDiagResultsDatabaseItem::EQueuedToRun ); - - // Record initial test result to db. - // StoreNextTestPluginToDbL() will be called again later from RunL() - iEngine.DbRecord().LogTestResult( iStatus, *resultItem ); - SetActive(); - - delete resultItem; - resultItem = NULL; - - // Exit here since we must wait for LogTestResult() to complete - // before moving on to the next item. - return; - } - } - - // All items are stored now. - ChangeState( EStatePlanCreated ); - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::PrependExecutedItemsL -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::PrependExecutedItemsL() - { - #ifdef _DEBUG_EXEC_PLAN - LOGSTRING( "CDiagExecPlanEntryImpl::PrependExecutedItemsL(). " - L" Before prepending executed entries" ); - LogPlanL(); - #endif // _DEBUG_EXEC_PLAN - - for ( TInt lastIndex = iExecutedEntries.Count() - 1; - lastIndex >= 0 ; - lastIndex-- ) - { - // Insert last entry from the executed list to the beginning. - iPlan.InsertL( iExecutedEntries[ lastIndex ], 0 ); - iExecutedEntries.Remove( lastIndex ); - } - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::ReportResult -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::ReportResult( TInt aError ) - { - User::RequestComplete( iClientStatus, aError ); - iClientStatus = NULL; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::InsertPluginL -// --------------------------------------------------------------------------- -// -TBool CDiagPluginExecPlanImpl::InsertPluginL( MDiagPlugin& aPlugin, - TBool aAsDependency, - TInt aAt ) - { - #ifdef _DEBUG_EXEC_PLAN - LOGSTRING4( "CDiagPluginExecPlanImpl::InsertPluginL:" - L"Id = 0x%x, Type = %s, At %d", - aPlugin.Uid().iUid, - ( aPlugin.Type() == MDiagPlugin::ETypeTestPlugin ? L"Test" : L"Suite" ), - aAt ) - #endif // _DEBUG_EXEC_PLAN - - __ASSERT_ALWAYS( aAt >= 0 && aAt <= iPlan.Count(), Panic( EDiagFrameworkArrayBounds ) ); - - // First, examine items before given index. - // If new item has iAsDependent == ETrue, and also found before the given index, - // --> it is okay to not insert the item, since it will just be duplicates. - // if new item has iAsDependent == EFalse, - // --> no need to check for items prior to current position, since - // explicit - // where it was requested. - TInt idx = 0; - if ( aAsDependency ) - { - // check if it was already executed in the previous session. - for ( idx = 0; idx < iExecutedEntries.Count(); idx++ ) - { - if ( iExecutedEntries[idx]->Plugin().Uid() == aPlugin.Uid() ) - { - // matching item found. - // No need to instert a new item. - return EFalse; - } - } - - // check for items in current plan. - for ( idx = 0; idx < aAt && idx < iPlan.Count(); idx++ ) - { - if ( iPlan[idx]->Plugin().Uid() == aPlugin.Uid() ) - { - // Matching item found. - // No change to plan made. - return EFalse; - } - } - } - - // Duplicate item not found before given index. - // An item will be inserted at the given index. Now, we search for - // duplicates after current index, and see if we can remove them. - idx = aAt; - while ( idx < iPlan.Count() ) - { - if ( iPlan[idx]->Plugin().Uid() == aPlugin.Uid() && iPlan[idx]->AsDependency() ) - { - // Item is found, and it was for dependency. - // We can move this item to current position. - // For now, we just need to remove it, since it will be added at - // current position when for loop is done. - CDiagExecPlanEntryImpl* entry = iPlan[idx]; - iPlan.Remove( idx ); - delete entry; - entry = NULL; - - // no need to increment idx, since current item is removed. - // idx should already be at the next item. - } - else - { - idx++; // check next item. - } - } - - // Either plug-in is not found, or we found one that we can move. - // Add to current position. - CDiagExecPlanEntryImpl* newEntry = CreateDefaultPlanEntryLC( - aPlugin, - aAsDependency ); - - iPlan.InsertL( newEntry, aAt ); - CleanupStack::Pop( newEntry ); - newEntry = NULL; - - return ETrue; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::CreateDefaultPlanEntryL -// -// --------------------------------------------------------------------------- -// -CDiagExecPlanEntryImpl* CDiagPluginExecPlanImpl::CreateDefaultPlanEntryLC( - MDiagPlugin& aPlugin, - TBool aAsDependency ) const - { - CDiagExecPlanEntryImpl* newEntry = NULL; - - if ( aPlugin.Type() == MDiagPlugin::ETypeTestPlugin ) - { - newEntry = static_cast< CDiagExecPlanEntryImpl* >( - CDiagExecPlanEntryImplTest::NewLC( - iEngine, - iEngineConfig, - iPlanEntryObserver, - static_cast< MDiagTestPlugin& >( aPlugin ), - aAsDependency, - CDiagResultsDatabaseItem::EQueuedToRun ) ); - } - else - { - newEntry = static_cast< CDiagExecPlanEntryImpl* >( - CDiagExecPlanEntryImplSuite::NewLC( - iEngine, - iEngineConfig, - iPlanEntryObserver, - static_cast< MDiagSuitePlugin& >( aPlugin ), - aAsDependency, - CDiagExecPlanEntryImpl::ETypeSuiteUnexpanded ) ); - } - - return newEntry; - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::LogPlan -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::LogPlanL() const - { - #ifdef _DEBUG - LOGSTRING( "CDiagPluginExecPlanImpl::LogPlan(): Plan Dump." ) - for ( TInt i = 0; i < iPlan.Count(); i++ ) - { - HBufC* pluginName = iPlan[i]->Plugin().GetPluginNameL( - MDiagPlugin::ENameLayoutListSingle ); - - LOGSTRING5( "Plan Entry: Id = 0x%08x, %s, Dep=[%s], Name = %S", - iPlan[i]->Plugin().Uid().iUid, - ( iPlan[i]->Type() == CDiagExecPlanEntryImpl::ETypeSuitePrepare ? L"<" : - ( iPlan[i]->Type() == CDiagExecPlanEntryImpl::ETypeSuiteFinalize ? L">" : L" " ) ), - ( iPlan[i]->AsDependency() ? L"*" : L" " ), - pluginName ) - - delete pluginName; - } - #endif // _DEBUG - } - -// --------------------------------------------------------------------------- -// CDiagPluginExecPlanImpl::LogPlanInRecordL -// --------------------------------------------------------------------------- -// -void CDiagPluginExecPlanImpl::LogPlanInRecordL() const - { - #ifdef _DEBUG - - LOGSTRING( "CDiagPluginExecPlanImpl::LogPlanInRecord()" ) - - RPointerArray< CDiagResultsDatabaseItem > results; - DiagFwInternal::CleanupRPointerArrayPushL< CDiagResultsDatabaseItem >( &results ); - User::LeaveIfError( - iEngine.DbRecord().GetTestResults( results ) ); - - TInt resultCount = results.Count(); - - LOGSTRING2( " Result Count = %d", resultCount ) - - for ( TInt i = 0; i < resultCount; i++ ) - { - LOGSTRING4( " Test UID = 0x%08x, Result = %d, Dep = %d", - results[i]->TestUid().iUid, - results[i]->TestResult(), - results[i]->WasDependency() ) - } - - CleanupStack::PopAndDestroy( &results ); - - #endif // _DEBUG - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagpluginloaderdependencyparser.cpp --- a/devicediagnosticsfw/diagframework/src/diagpluginloaderdependencyparser.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,596 +0,0 @@ -/* -* Copyright (c) 2007 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: Parse dependency information from XML in ECOM plug-in - resource files -* -*/ - - -// CLASS DECLARATION -#include "diagpluginloaderdependencyparser.h" - -// SYSTEM INCLUDE FILES -#include // CParser -#include -#include -#include // LOGSTRING - -// USER INCLUDE FILES - -using namespace Xml; - -namespace DiagPluginPool - { -// ============================================================================ -// LOCAL DATA -// ============================================================================ - -_LIT8( KParserMIMEType, "text/xml" ); -_LIT8( KRootXmlTag, "diagplugininfo" ); -_LIT8( KOrderNumberTag, "order" ); -_LIT8( KServiceProvidedTag, "serviceprovided" ); -_LIT8( KServicesRequiredTag, "servicesrequired" ); -_LIT8( KServiceTag, "service" ); -_LIT8( KNameAttrTag, "name" ); -_LIT8( KNumberAttrTag, "number" ); - -// ============================================================================ -// MEMBER FUNCTIONS( CDepdendencyParser ) -// ============================================================================ - - -// --------------------------------------------------------------------------- -// NewL -// --------------------------------------------------------------------------- -// -CDependencyParser* CDependencyParser::NewL() - { - CDependencyParser* self = CDependencyParser::NewLC(); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// NewLC -// --------------------------------------------------------------------------- -// -CDependencyParser* CDependencyParser::NewLC() - { - CDependencyParser* self = new( ELeave )CDependencyParser; - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// ~CDependencyParser -// --------------------------------------------------------------------------- -// -CDependencyParser::~CDependencyParser() - { - delete iParser; - delete iServiceProvided; - if ( iServicesRequired ) - { - iServicesRequired->Reset(); - } - delete iServicesRequired; - } - -// --------------------------------------------------------------------------- -// ParseL -// --------------------------------------------------------------------------- -// -void CDependencyParser::ParseL( const TDesC8& aOpaqueData, const TDesC8& aDefaultData ) - { - - ASSERT( aOpaqueData.Length() ); - ASSERT( aDefaultData.Length() ); - - // Start out by deleting and zeroing old elements - if ( iHasBeenRun ) - { - ResetL(); - } - - iHasBeenRun = ETrue; - - // Get Parent UID - iParseStatus = ParseToUid( aDefaultData, iParentUid ); - - // Do not parse opaque data if UID is invalid because plug-in will not be loaded - // when data error is detected. - if ( iParseStatus == KErrNone ) - { - // Parse buffer in one fell swoop - iParser->ParseBeginL(); - iParser->ParseL( aOpaqueData ); - iParser->ParseEndL(); - } - - // Check for error from parser - User::LeaveIfError( iParseStatus ); - - // Check for error in format - if ( iBadXML ) - { - User::Leave( KErrCorrupt ); - } - } - -// --------------------------------------------------------------------------- -// GetOrderNumber -// --------------------------------------------------------------------------- -// -TInt CDependencyParser::GetOrderNumber() const - { - return iOrderNumber; - } - -// --------------------------------------------------------------------------- -// GetServiceProvided -// --------------------------------------------------------------------------- -// -HBufC* CDependencyParser::GetServiceProvided() - { - HBufC* ret = iServiceProvided; - iServiceProvided = NULL; - return ret; - } - -// --------------------------------------------------------------------------- -// GetServicesRequired -// --------------------------------------------------------------------------- -// -CDesC16ArrayFlat* CDependencyParser::GetServicesRequired() - { - // Ownership is passed to caller - CDesC16ArrayFlat* ret = iServicesRequired; - iServicesRequired = NULL; - return ret; - } - -// --------------------------------------------------------------------------- -// GetServicesRequired -// --------------------------------------------------------------------------- -// -const TUid& CDependencyParser::GetParentUid() const - { - return iParentUid; - } - -// --------------------------------------------------------------------------- -// From Xml::MContentHandler -// OnStartElementL -// --------------------------------------------------------------------------- -// -void CDependencyParser::OnStartElementL( - const RTagInfo& aElement, - const RAttributeArray& aAttributes, - TInt aErrorCode - ) - { - const TDesC8& elementName8 = aElement.LocalName().DesC(); - -#ifdef _DEBUG - HBufC* elementName16 = Convert8BitTo16BitBufferLC( elementName8 ); - LOGSTRING3( "OnStartElementL %S %d\n", elementName16, aErrorCode ) - CleanupStack::PopAndDestroy( elementName16 ); -#endif - - /* - Parse XML tags in the following sample format: - - - - - " - - - - - */ - - if ( !iInsideRootNode ) - { - // Look for root node - if ( ! elementName8.Compare( KRootXmlTag ) ) - { - iInsideRootNode = ETrue; - } - else - { - LOGSTRING( "Error: unexpected element looking for root node.\n" ) - iBadXML = ETrue; - } - } - else // Look for "body" nodes - { - // Check order number - if ( ! elementName8.Compare( KOrderNumberTag ) ) - { - LOGSTRING("Order number\n") - if ( ValidateXmlTag( aAttributes, iFoundOrderNumber )) - { - if ( ! ParseNumericAttribute( aAttributes[0], iOrderNumber ) ) - { - LOGSTRING2( "Order Number: \'%d\'\n", iOrderNumber ) - } - else - { - iBadXML = ETrue; - } - } - } - // Check service provided - else if ( ! elementName8.Compare( KServiceProvidedTag ) ) - { - LOGSTRING("Service Provided\n") - - if ( ValidateXmlTag( aAttributes, iFoundServiceProvided )) - { - if ( ! ParseStringAttributeL( aAttributes[0], iServiceProvided ) ) - - { - LOGSTRING2( "Service Provided \"%S\"\n", iServiceProvided ) - } - else - { - iBadXML = ETrue; - } - } - } - - // Check services required block - else if ( ! elementName8.Compare( KServicesRequiredTag ) ) - { - if ( ! iFoundServicesRequired ) - { - iParsingServicesRequired = ETrue; - iFoundServicesRequired = ETrue; - } - else - { - LOGSTRING( "Error: unexpected services required tag found.\n" ) - iBadXML = ETrue; - } - } - - // Check service tag - else if ( ! elementName8.Compare( KServiceTag ) ) - { - LOGSTRING("Service\n") - - // OK to have multiple service tags so use dummy as "found" flag - TBool Dummy = EFalse; - - if ( ValidateXmlTag( aAttributes, Dummy )) - { - HBufC* newService = NULL; - - if ( ! ParseStringAttributeL( aAttributes[0], - newService ) ) - { - LOGSTRING2( "Got service required \"%S\"\n", newService ) - CleanupStack::PushL( newService ); - iServicesRequired->AppendL( *newService ); - CleanupStack::PopAndDestroy( newService ); - } - else - { - iBadXML = ETrue; - } - } - } - // Unexpected tag - else - { - LOGSTRING( "Error: unexpected XML tag found.\n" ) - iBadXML = ETrue; - } - } - } - -// --------------------------------------------------------------------------- -// From Xml::MContentHandler -// OnEndElementL -// --------------------------------------------------------------------------- -// -void CDependencyParser::OnEndElementL( const Xml::RTagInfo& aElement, TInt aErrorCode ) - { - const TDesC8& elementName8 = aElement.LocalName().DesC(); - - #ifdef _DEBUG - HBufC* elementName16 = Convert8BitTo16BitBufferLC( elementName8 ); - LOGSTRING3( "OnEndElementL %S %d\n", elementName16, aErrorCode ) - CleanupStack::PopAndDestroy( elementName16 ); - #endif - - // Check for end services required block - if ( ! elementName8.Compare( KServicesRequiredTag ) ) - { - iParsingServicesRequired = EFalse; - } - - // Check for end of root block - if ( ! elementName8.Compare( KRootXmlTag ) ) - { - iInsideRootNode = EFalse; - } - } - -// --------------------------------------------------------------------------- -// From Xml::MContentHandler -// OnContentL -// --------------------------------------------------------------------------- -// -void CDependencyParser::OnContentL( const TDesC8& /*aBytes*/, TInt aErrorCode ) - { - LOGSTRING2( "OnContentL %d\n", aErrorCode ) - } - -// --------------------------------------------------------------------------- -// From Xml::MContentHandler -// OnError -// --------------------------------------------------------------------------- -// -void CDependencyParser::OnError( TInt aErrorCode ) - { - LOGSTRING2( "OnError %d\n", aErrorCode ) - - iParseStatus = aErrorCode; - } - -// ============================================================================ -// PRIVATE MEMBER FUNCTIONS( CDepdendencyParser ) -// ============================================================================ - -// --------------------------------------------------------------------------- -// Convert8BitTo16BitBufferLC -// --------------------------------------------------------------------------- -// -HBufC* CDependencyParser::Convert8BitTo16BitBufferLC( const TDesC8& Des ) const - { - HBufC* buf = HBufC::NewLC( Des.Length() ); - buf->Des().Copy( Des ); - return buf; - } - -// --------------------------------------------------------------------------- -// ParseNumericAttribute -// --------------------------------------------------------------------------- -// -TBool CDependencyParser::ParseNumericAttribute( const RAttribute& aAttribute, - TInt& aNumericAttribute ) - { - TBool corrupt = EFalse; - const TDesC8& attrName = aAttribute.Attribute().LocalName().DesC(); - const TDesC8& attrVal = aAttribute.Value().DesC(); - - // Attribute name should be "number" - if ( attrName.Compare( KNumberAttrTag ) ) - { - LOGSTRING( "Error: expected number attribute.\n" ) - corrupt = ETrue; - } - else - { - // Parse out order number - TLex8 lex( attrVal ); - TInt rc=lex.Val( aNumericAttribute ); - if ( rc != KErrNone ) - { - LOGSTRING2( "Error: Could not parse attribute( rc=%d )", rc ) - corrupt = ETrue; - } - } - - return corrupt; - } - -// --------------------------------------------------------------------------- -// ParseStringAttributeL -// --------------------------------------------------------------------------- -// -TBool CDependencyParser::ParseStringAttributeL( const RAttribute& aAttribute, - HBufC*& aStringAttribute ) - { - TBool corrupt = EFalse; - const TDesC8& attrName = aAttribute.Attribute().LocalName().DesC(); - const TDesC8& attrVal = aAttribute.Value().DesC(); - - // Attribute name should be "name" - if ( attrName.Compare( KNameAttrTag ) ) - { - LOGSTRING( "Error: expected name attribute.\n" ) - corrupt = ETrue; - } - else - { - aStringAttribute = Convert8BitTo16BitBufferLC( attrVal ); - CleanupStack::Pop( aStringAttribute ); - } - - return corrupt; - } - -// ---------------------------------------------------------------------------- -// ParseToUid -// ---------------------------------------------------------------------------- -// -TInt CDependencyParser::ParseToUid( const TDesC8& aSource, TUid& aTarget ) - { - // Remove required "0x" from the descriptor - _LIT8( KHexPrefix, "0x" ); - - TPtrC8 pSource( aSource ); - const TInt prefixPosition = pSource.Find( KHexPrefix ); - if ( prefixPosition == KErrNotFound ) - { - return KErrCorrupt; - } - else - { - pSource.Set( aSource.Mid( prefixPosition + KHexPrefix().Length() ) ); - } - - // Parse to integer - TLex8 lex( pSource ); - TUint integer = 0; - - // Parse using TRadix::EHex as radix: - const TInt err = lex.Val( integer, EHex ); - aTarget.iUid = integer; - - return err; - } - - -// --------------------------------------------------------------------------- -// ValidateXmlTag -// Validate Xml tag following a few standard rules that apply to -// all XML tags in this format: -// 1) Only one attribute is in each XML tag -// 2) Only one of any given tag is allowed -// --------------------------------------------------------------------------- -// -TBool CDependencyParser::ValidateXmlTag( const Xml::RAttributeArray& aAttributes, - TBool& aFoundTag ) - { - if ( aFoundTag ) - { - LOGSTRING( "Error: multiple tags found. Ignoring subsequent values.\n" ) - } - else - { - aFoundTag = ETrue; - - if ( aAttributes.Count() == 1 ) - { - return ETrue; - } - else if ( aAttributes.Count() > 1 ) - { - LOGSTRING( "Error: Extra data after attribute tag.\n" ) - iBadXML = ETrue; - } - else - { - LOGSTRING( "Error: No attributes found.\n" ) - iBadXML = ETrue; - } - } - - return EFalse; - } - -// --------------------------------------------------------------------------- -// ResetL -// --------------------------------------------------------------------------- -// -void CDependencyParser::ResetL() - { - delete iServiceProvided; - iServiceProvided = NULL; - - if ( iServicesRequired ) - { - iServicesRequired->Reset(); - } - delete iServicesRequired; - iServicesRequired = new( ELeave )CDesC16ArrayFlat( 1 ); - - iOrderNumber = 0; - iParentUid = TUid::Uid(0); - - // Reset all flags - iParsingServicesRequired = EFalse; - iBadXML = EFalse; - iInsideRootNode = EFalse; - iFoundOrderNumber = EFalse; - iFoundServiceProvided = EFalse; - iFoundServicesRequired = EFalse; - iParseStatus = 0; - } - -// ============================================================================ -// PRIVATE CONSTRUCTORS ( CDepdendencyParser ) -// ============================================================================ - -// --------------------------------------------------------------------------- -// CDependencyParser::CDependencyParser -// --------------------------------------------------------------------------- -// -CDependencyParser::CDependencyParser() - { //lint !e1927 variables not showing up in initializer list - // initialized in CBase constructor - } //lint !e1744 member variables possibly not initialized - -// --------------------------------------------------------------------------- -// ConstructL -// --------------------------------------------------------------------------- -// -void CDependencyParser::ConstructL() - { - iParser = CParser::NewL( KParserMIMEType, *this ); - iServicesRequired = new( ELeave )CDesC16ArrayFlat( 1 ); - } - - -// ============================================================================ -// Unused pure virtual functions from Xml::MContentHandler -// ============================================================================ - -void CDependencyParser::OnStartDocumentL( const RDocumentParameters& /* aDocParam */, TInt /* aErrorCode */ ) - { - } - -void CDependencyParser::OnEndDocumentL( TInt /* aErrorCode */ ) - { - } - -void CDependencyParser::OnStartPrefixMappingL( const RString& /* aPrefix */, const RString& /* aUri */, TInt /* aErrorCode */ ) - { - } - -void CDependencyParser::OnEndPrefixMappingL( const RString& /* aPrefix */, TInt /* aErrorCode */ ) - { - } - -void CDependencyParser::OnIgnorableWhiteSpaceL( const TDesC8& /* aBytes */, TInt /* aErrorCode */ ) - { - } - -void CDependencyParser::OnSkippedEntityL( const RString& /* aName */, TInt /* aErrorCode */ ) - { - } - -void CDependencyParser::OnProcessingInstructionL( const TDesC8& /* aTarget */, const TDesC8& /* aData */, TInt /* aErrorCode */ ) - { - } - -void CDependencyParser::OnExtensionL( const RString& /* aData */, TInt /* aToken */, TInt /* aErrorCode */ ) - { - } - -TAny* CDependencyParser::GetExtendedInterface( const TInt32 /* aUid */ ) - { - return 0; - } - - } // namespace DiagPluginPool - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagpluginpool.cpp --- a/devicediagnosticsfw/diagframework/src/diagpluginpool.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,163 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagPluginPool -* -*/ - - -// CLASS DECLARATION -#include "diagpluginpoolimpl.h" // CDiagPluginPoolImpl -#include -// SYSTEM INCLUDE FILES -#include -#include // MDiagPlugin - -// USER INCLUDE FILES - - -// =========================================================================== -// MEMBER FUNCTIONS -// =========================================================================== - - -// --------------------------------------------------------------------------- -// CDiagPluginPool::NewL() -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagPluginPool* CDiagPluginPool::NewL( - MDiagPluginPoolObserver& aObserver ) - { - LOGSTRING("CDiagPluginPool* CDiagPluginPool::NewL"); - CDiagPluginPool* self = CDiagPluginPool::NewLC( aObserver ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagPluginPool::NewLC() -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagPluginPool* CDiagPluginPool::NewLC( - MDiagPluginPoolObserver& aObserver ) - { - LOGSTRING("CDiagPluginPool* CDiagPluginPool::NewLC"); - CDiagPluginPool* self = new( ELeave )CDiagPluginPool(); - CleanupStack::PushL( self ); - self->ConstructL( aObserver ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagPluginPool::CDiagPluginPool -// --------------------------------------------------------------------------- -// -CDiagPluginPool::CDiagPluginPool() - { - } - -// --------------------------------------------------------------------------- -// CDiagPluginPool::LoadAsyncL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagPluginPool::LoadAsyncL( TUid /*aUid*/ ) - { - iPluginPoolImpl->LoadAsyncL(); - } - - -// --------------------------------------------------------------------------- -// CDiagPluginPool::CreatePluginL -// --------------------------------------------------------------------------- -// -EXPORT_C MDiagPlugin* CDiagPluginPool::CreatePluginL( TUid aUid ) - { - LOGSTRING("CDiagPluginPool::CreatePluginL"); - return CDiagPluginPoolImpl::CreatePluginL( aUid ); - } - -// --------------------------------------------------------------------------- -// CDiagPluginPool::CancelLoadPluginsL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagPluginPool::CancelLoadPluginsL() - { - iPluginPoolImpl->Cancel(); - } - - -// --------------------------------------------------------------------------- -// CDiagPluginPool::FindPlugin -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CDiagPluginPool::FindPlugin( TUid aUid, - MDiagPlugin*& aPlugin ) const - { - LOGSTRING("CDiagPluginPool::FindPlugin"); - return iPluginPoolImpl->FindPlugin( aUid, aPlugin ); - } - -// --------------------------------------------------------------------------- -// CDiagPluginPool::FindPluginL -// --------------------------------------------------------------------------- -// -EXPORT_C MDiagPlugin& CDiagPluginPool::FindPluginL( TUid aUid ) const - { - MDiagPlugin* plugin = NULL; - User::LeaveIfError( FindPlugin( aUid, plugin ) ); - return *plugin; - } - -// --------------------------------------------------------------------------- -// CDiagPluginPool::FindPlugin -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CDiagPluginPool::FindPlugin( const TDesC& aServiceName, - MDiagPlugin*& aPlugin ) const - { - return iPluginPoolImpl->FindPlugin( aServiceName, aPlugin ); - } - -// --------------------------------------------------------------------------- -// CDiagPluginPool::FindPluginL -// --------------------------------------------------------------------------- -// -EXPORT_C MDiagPlugin& CDiagPluginPool::FindPluginL( const TDesC& aServiceName ) const - { - MDiagPlugin* plugin = NULL; - User::LeaveIfError( FindPlugin( aServiceName, plugin ) ); - return *plugin; - } - -// --------------------------------------------------------------------------- -// CDiagPluginPool::ConstructL() -// --------------------------------------------------------------------------- -// -void CDiagPluginPool::ConstructL( MDiagPluginPoolObserver& aObserver ) - { - // Construct implementation class - iPluginPoolImpl = CDiagPluginPoolImpl::NewL( aObserver ); - } - -// --------------------------------------------------------------------------- -// CDiagPluginPool::~CDiagPluginPool -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagPluginPool::~CDiagPluginPool() - { - LOGSTRING("CDiagPluginPool::~CDiagPluginPool"); - delete iPluginPoolImpl; - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagpluginpoolimpl.cpp --- a/devicediagnosticsfw/diagframework/src/diagpluginpoolimpl.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,623 +0,0 @@ -/* -* Copyright (c) 2007 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 Diagnostics Plug-in Pool -* -*/ - - -// CLASS DECLARATION -#include "diagpluginpoolimpl.h" - -// SYSTEM INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include // CleanupResetAndDestroyPushL - -// USER INCLUDE FILES -#include "diagpluginloaderdependencyparser.h" -#include "diagrootsuite.h" - -using namespace DiagPluginPool; -using namespace DiagFwInternal; - -_LIT( KPanicCode, "PluginPool" ); - -// =========================================================================== -// PUBLIC MEMBER FUNCTIONS -// =========================================================================== - -// --------------------------------------------------------------------------- -// NewL -// --------------------------------------------------------------------------- -// -CDiagPluginPoolImpl* CDiagPluginPoolImpl::NewL( MDiagPluginPoolObserver& aObserver ) - { - LOGSTRING(""); - CDiagPluginPoolImpl* self = CDiagPluginPoolImpl::NewLC( aObserver ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// NewLC -// --------------------------------------------------------------------------- -// -CDiagPluginPoolImpl* CDiagPluginPoolImpl::NewLC( MDiagPluginPoolObserver& aObserver ) - { - CDiagPluginPoolImpl* self = new( ELeave )CDiagPluginPoolImpl( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CDiagPluginPoolImpl::~CDiagPluginPoolImpl() - { - LOGSTRING(""); - Cancel(); - iPlugins.ResetAndDestroy(); - iPlugins.Close(); - REComSession::FinalClose(); - } - -// --------------------------------------------------------------------------- -// LoadAsyncL -// --------------------------------------------------------------------------- -// -void CDiagPluginPoolImpl::LoadAsyncL() - { - LOGSTRING( "CDiagPluginPoolImpl::LoadAsyncL" ) - - ASSERT ( !iPluginsLoaded ); - ASSERT ( !iPluginsLoading ); - - iPluginsLoading = ETrue; - - iConstructionParamArray = GeneratePluginListL(); - - iTotalPluginsFound = iConstructionParamArray->Count(); - - // No plug-ins found - if ( ! iTotalPluginsFound ) - { - DestroyConstructionParams(); - User::Leave( KErrNotFound ); - } - - // Create root suite to define the hierarchy - MDiagSuitePlugin* rootSuite = CDiagRootSuite::NewL(); - CleanupStack::PushL( rootSuite ); - iPlugins.AppendL( rootSuite ); // ownership transfered - CleanupStack::Pop( rootSuite ); - - SetNextIteration(); - } - -// --------------------------------------------------------------------------- -// CreatePluginL -// --------------------------------------------------------------------------- -// -MDiagPlugin* CDiagPluginPoolImpl::CreatePluginL( const TUid aUid ) - { - TInt errorCode = KErrNone; - - LOGSTRING2( "CDiagPluginPoolImpl::CreatePluginL %d\n", aUid.iUid ) - - // Create construction parameters list - RConstructionParamArray* constructionParamsArray = GeneratePluginListL(); - CleanupStack::PushL( constructionParamsArray ); - CleanupResetAndDestroyPushL( *constructionParamsArray ); - - MDiagPlugin* plugin = NULL; - - // Find plug-in with matching UID - for ( TInt i=0; iCount(); i++ ) - { - if ( ( *constructionParamsArray )[i]->Uid() == aUid ) - { - plugin = CreatePluginFromConstructionParamsL( ( *constructionParamsArray )[i] ); - - // Construction params owned by plug-in so remove from list - constructionParamsArray->Remove(i); - break; //lint !e960 ok to break from for loop - } - } - - if ( ! plugin ) - { - errorCode = KErrNotFound; - } - - CleanupStack::PopAndDestroy(); // *implInfoArray - CleanupStack::PopAndDestroy( constructionParamsArray ); - - User::LeaveIfError( errorCode ); - - return plugin; - } - -// --------------------------------------------------------------------------- -// FindPlugin -// --------------------------------------------------------------------------- -// -TInt CDiagPluginPoolImpl::FindPlugin( TUid aUid, MDiagPlugin*& aPlugin ) const - { - LOGSTRING2( "CDiagPluginPoolImpl::FindPlugin 0x%x\n", aUid.iUid ) - - aPlugin = NULL; - - // Find plug-in with matching UID in pool - for ( TInt i=0; iUid() == aUid ) - { - aPlugin = iPlugins[i]; - return KErrNone; - } - } - - return KErrNotFound; - } - -// --------------------------------------------------------------------------- -// FindPlugin -// --------------------------------------------------------------------------- -// -TInt CDiagPluginPoolImpl::FindPlugin( const TDesC& aServiceName, - MDiagPlugin *& aPlugin ) const - { - LOGSTRING2( "CDiagPluginPoolImpl::FindPlugin \"%S\"\n", &aServiceName ) - - aPlugin = NULL; - - // Find plug-in with matching service name in pool - for ( TInt i=0; iServiceLogicalName() == aServiceName ) - { - aPlugin = iPlugins[i]; - return KErrNone; - } - } - - return KErrNotFound; - } - - -// =========================================================================== -// PRIVATE CONSTRUCTORS -// =========================================================================== - -// --------------------------------------------------------------------------- -// CDiagPluginPool -// --------------------------------------------------------------------------- -// -CDiagPluginPoolImpl::CDiagPluginPoolImpl( MDiagPluginPoolObserver& aObserver ) - // Priority is idle to allow plug-ins to load in background regardless of - // what UI priority is set to. - : CActive( EPriorityIdle ), - iObserver( aObserver ), - iErrorCode( KErrNone ) - { - } - - -// --------------------------------------------------------------------------- -// ConstructL -// --------------------------------------------------------------------------- -// -void CDiagPluginPoolImpl::ConstructL() - { - CActiveScheduler::Add( this ); - } - - -// =========================================================================== -// PRIVATE STATIC FUNCTIONS -// =========================================================================== - -// --------------------------------------------------------------------------- -// ObtainImplementationInfoL -// --------------------------------------------------------------------------- -// -CDiagPluginPoolImpl::RConstructionParamArray* CDiagPluginPoolImpl::GeneratePluginListL() - { - - // Get list of plug-in implementation implementationInfo - RImplInfoPtrArray* implInfoArray = new( ELeave )RImplInfoPtrArray; - - REComSession::ListImplementationsL( KDiagPluginInterfaceUid, *implInfoArray ); - - // Leave if no matching plug-ins found - if ( ! implInfoArray->Count() ) - { - delete implInfoArray; - User::Leave( KErrNotFound ); - } - - CleanupStack::PushL( implInfoArray ); - CleanupResetAndDestroyPushL( *implInfoArray ); - - RConstructionParamArray* constructionParamsArray = new(ELeave)RConstructionParamArray; - CleanupStack::PushL( constructionParamsArray ); - CleanupResetAndDestroyPushL( *constructionParamsArray ); - CDependencyParser* parser = CDependencyParser::NewLC(); - - // Iterate through implementation information array and create construction data for each - // plug-in. Insert into array by order number. - for ( TInt pluginIndex=0; pluginIndex < implInfoArray->Count(); pluginIndex++ ) - { - CImplementationInformation* pluginImplementationInfo = ( *implInfoArray )[pluginIndex]; - - if ( !pluginImplementationInfo->RomBased() ) - { -#ifdef _DEBUG - LOGSTRING2( "CDiagPluginPoolImpl::GeneratePluginListL() " - L" Loading non-rom plug-in 0x%08x", - pluginImplementationInfo->ImplementationUid() ); -#else // #ifdef _DEBUG - // In non _DEBUG build, do not load plug-in that are not in ROM - // for security reasons. Continue to next plug-in. - //continue; -#endif // #else _DEBUG - } - - // Obtain depenency and other information from opaque data field - parser->ParseL( pluginImplementationInfo->OpaqueData(), - pluginImplementationInfo->DataType() ); - - CDiagPluginConstructionParam* constructionParams = - GenerateConstructionParamsLC( pluginImplementationInfo ); - - TInt orderNumber = constructionParams->Order(); - - // Find correct index to insert plug-in - TInt insertIndex; - for ( insertIndex=0; insertIndexCount(); insertIndex++ ) - { - if ( orderNumber < (*constructionParamsArray)[insertIndex]->Order() ) - { - break; //lint !e960 break OK here. - } - } - - // Insert in order by order number - constructionParamsArray->InsertL(constructionParams,insertIndex); - CleanupStack::Pop(constructionParams); - } - - // Clean up - CleanupStack::PopAndDestroy(parser); - CleanupStack::Pop(); // constructionParamsArray - CleanupStack::Pop(constructionParamsArray); - CleanupStack::PopAndDestroy(); // implInfoArray - CleanupStack::PopAndDestroy(implInfoArray); - - return constructionParamsArray; - } - -// --------------------------------------------------------------------------- -// GenerateConstructionParamsL -// --------------------------------------------------------------------------- -// -CDiagPluginConstructionParam* CDiagPluginPoolImpl::GenerateConstructionParamsLC( - const CImplementationInformation* aInfo ) - { - CDependencyParser* parser = CDependencyParser::NewLC(); - - // Obtain depenency and other information from opaque data field - parser->ParseL( aInfo->OpaqueData(), aInfo->DataType() ); - - CDiagPluginConstructionParam* params = CDiagPluginConstructionParam::NewL - ( - parser->GetServiceProvided(), - parser->GetServicesRequired(), - parser->GetOrderNumber(), - aInfo->ImplementationUid(), - parser->GetParentUid() - ); - - CleanupStack::PopAndDestroy( parser ); - CleanupStack::PushL( params ); - - return params; - } - -// --------------------------------------------------------------------------- -// CreatePluginFromImplementationInfoL -// --------------------------------------------------------------------------- -// -MDiagPlugin* CDiagPluginPoolImpl::CreatePluginFromConstructionParamsL( - const CDiagPluginConstructionParam* aParams ) - { - MDiagPlugin* newPlugin = NULL; - TUid destructorIdKey; - - // Call ECOM to load next plug-in - TAny* object = REComSession::CreateImplementationL( aParams->Uid(), - destructorIdKey, - ( TAny* )aParams ); - if (!object) - User::Leave(KErrNotFound); - - newPlugin = static_cast( object ); - newPlugin->SetDtorIdKey( destructorIdKey ); - return newPlugin; - } - -// =========================================================================== -// PRIVATE MEMBER FUNCTIONS -// =========================================================================== - -// --------------------------------------------------------------------------- -// AddNewPluginToSuiteL -// --------------------------------------------------------------------------- -// -void CDiagPluginPoolImpl::AddNewPluginToSuiteL(MDiagPlugin* aPlugin) - { - // Search the plug-in list for a matching suite plug-in and add this newly - // loaded plug-in to that corresponding suite. If a suite is not found, - // this plug-in will have no parent unless the parent suite is loaded - // at some later point. - for ( TInt pluginIndex = 0; pluginIndex < iPlugins.Count(); pluginIndex++ ) - { - - // Find matching parent suite - if ( aPlugin->ParentUid() == iPlugins[pluginIndex]->Uid() ) - { - if ( iPlugins[pluginIndex]->Type() == MDiagPlugin::ETypeSuitePlugin ) - { - // If parent is a suite, add child - MDiagSuitePlugin* parent = static_cast( iPlugins[pluginIndex] ); - - parent->AddChildL( aPlugin ); - return; - } - else - { - // if parent is not a suite, leave - User::Leave( KErrCorrupt ); - } - } - } - } - -// --------------------------------------------------------------------------- -// AddPluginsToNewSuiteL -// --------------------------------------------------------------------------- -// -void CDiagPluginPoolImpl::AddPluginsToNewSuiteL(MDiagSuitePlugin* aPluginSuite) - { - // Search the plug-in list for plug-ins with matching parent suite. - for ( TInt pluginIndex = 0; pluginIndex < iPlugins.Count(); pluginIndex++ ) - { - // Add any "orphan" plug-ins - if ( aPluginSuite->Uid() == iPlugins[pluginIndex]->ParentUid() ) - { - aPluginSuite->AddChildL( iPlugins[pluginIndex] ); - } - } - } - -// --------------------------------------------------------------------------- -// SetNextIteration -// --------------------------------------------------------------------------- -// -void CDiagPluginPoolImpl::SetNextIteration() - { - TRequestStatus* status = &iStatus; - - // Complete own request - User::RequestComplete( status, KErrNone ); - SetActive(); - } - -// --------------------------------------------------------------------------- -// LoadNextPlugin -// --------------------------------------------------------------------------- -// -void CDiagPluginPoolImpl::LoadNextPluginL() - { - // Get parameters to generate plug-in - CDiagPluginConstructionParam* constructionParams = ( *iConstructionParamArray )[ 0 ]; - iCurrentPluginIndex++; - MDiagPlugin* newPlugin = NULL; - - // Uid to report to application, defaults to NULL. - TUid reportedUid = TUid::Null(); - - // Create plug-in from ECOM structure - // Any parsing or ECOM error will be caught here - TRAPD( error, newPlugin = CreatePluginFromConstructionParamsL( constructionParams ) ) - - // Construction params are now owned by plug-in so remove from array - iConstructionParamArray->Remove( 0 ); - - LOGSTRING4( "CDiagPluginPoolImpl::LoadNextPluginL Plugin( %d/%d ): Error=%d\n", - iCurrentPluginIndex, iTotalPluginsFound, error ) - - // Check for error in plug-in creation - if ( error != KErrNone ) - { - if ( iErrorCode == KErrNone ) - { - // Sets error code to whatever was the first error encountered - iErrorCode = error; - } - } - else - { - - CleanupDeletePushL( newPlugin ); - - // Add to plug-in pool - reportedUid = AddPluginToPoolLD( newPlugin ); - newPlugin = NULL; - } - - // Load is not complete - if ( iConstructionParamArray->Count() ) - { - - // Set next plug-in to load in next active scheduler cycle - SetNextIteration(); - - // Report progress to client - iObserver.LoadProgressL( iCurrentPluginIndex, iTotalPluginsFound, reportedUid ); - } - - // Load is complete - else - { - // Report load completed to client - iPluginsLoading = EFalse; - iPluginsLoaded = ETrue; - - iObserver.LoadCompletedL( iErrorCode ); - - // Don't need implementation implementationInfo list anymore - DestroyConstructionParams(); - } - } - -// --------------------------------------------------------------------------- -// DestroyConstructionParams -// --------------------------------------------------------------------------- -// -TUid CDiagPluginPoolImpl::AddPluginToPoolLD( MDiagPlugin* aPlugin ) - { - - TUid reportedUid = TUid::Null(); - - // Add plug-in to list - if ( aPlugin->IsSupported() ) - { - iPlugins.AppendL( aPlugin ); - - // Indicate to client that a plug-in was loaded with this UID - reportedUid = aPlugin->Uid(); - - // Update suite tree. If this is a plug-in, try to find parent - // suite and add. If this is a suite, try to find child plug-ins - // and add them. - AddNewPluginToSuiteL(aPlugin); - - if ( aPlugin->Type() == MDiagPlugin::ETypeSuitePlugin ) - { - MDiagSuitePlugin* pluginSuite = - static_cast(aPlugin); - AddPluginsToNewSuiteL( pluginSuite ); - } - - CleanupStack::Pop(); // aPlugin - } - else - { - LOGSTRING2( " Plugin UID 0x%x NOT SUPPORTED. Skipped", aPlugin->Uid().iUid ) - CleanupStack::PopAndDestroy(); // aPlugin - } - - return reportedUid; - } - -// --------------------------------------------------------------------------- -// DestroyConstructionParams -// --------------------------------------------------------------------------- -// -void CDiagPluginPoolImpl::DestroyConstructionParams( ) - { - if ( iConstructionParamArray ) - { - iConstructionParamArray->ResetAndDestroy(); - delete iConstructionParamArray; - iConstructionParamArray = NULL; - } - } - -// --------------------------------------------------------------------------- -// ResetAndNotify -// --------------------------------------------------------------------------- -// -TInt CDiagPluginPoolImpl::ResetAndNotify(TInt aErrorCode) - { - // Reset load data - iCurrentPluginIndex = 0; - iPlugins.ResetAndDestroy(); - - iPluginsLoading = EFalse; - - // Reset and delete implementation implementationInfo array - DestroyConstructionParams(); - - TRAPD( error, iObserver.LoadCompletedL( aErrorCode ) ) - - return error; - } - - - -// =========================================================================== -// From CActive -// =========================================================================== - -// --------------------------------------------------------------------------- -// RunL -// --------------------------------------------------------------------------- -// -void CDiagPluginPoolImpl::RunL() - { - // Load a plug-in in active scheduler cycle - LoadNextPluginL(); - } - -// --------------------------------------------------------------------------- -// DoCancel -// --------------------------------------------------------------------------- -// -void CDiagPluginPoolImpl::DoCancel() - { - LOGSTRING( "CDiagPluginPoolImpl::DoCancel" ) - - TInt error = ResetAndNotify(KErrCancel); - - // Reset load data - if ( error ) - { - User::Panic( KPanicCode(), error ); - } - } - -// --------------------------------------------------------------------------- -// RunError -// --------------------------------------------------------------------------- -// -TInt CDiagPluginPoolImpl::RunError( TInt aError ) - { - // An unhandled exception occurs while running. Destroy all currently - // loaded plug-ins. - - LOGSTRING2( "CDiagPluginPoolImpl::RunError %d", aError ) - - return ResetAndNotify( aError ); - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagresultsdbitembuilder.cpp --- a/devicediagnosticsfw/diagframework/src/diagresultsdbitembuilder.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,285 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagResultsDbItemBuilder -* -*/ - - -// CLASS DECLARATION -#include - -// SYSTEM INCLUDE FILES -#include // MDiagResultDetail - -#ifndef __DIAGFW_DISABLE_DRM_API -#include // DRM::CDrmServiceApi -#endif // __DIAGFW_DISABLE_DRM_API - -// USER INCLUDE FILES -#include "diagframework.pan" // Panic Codes - - -// CONSTANTS - -// ======== MEMBER FUNCTIONS ======== -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::NewL -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDbItemBuilder* CDiagResultsDbItemBuilder::NewL( - TUid aTestUid, - TBool aDependencyExecution ) - { - CDiagResultsDbItemBuilder* self = CDiagResultsDbItemBuilder::NewLC( - aTestUid, - aDependencyExecution ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::NewLC -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDbItemBuilder* CDiagResultsDbItemBuilder::NewLC( - TUid aTestUid, - TBool aDependencyExecution ) - { - CDiagResultsDbItemBuilder* self = new( ELeave )CDiagResultsDbItemBuilder( - aTestUid, - aDependencyExecution ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::CDiagResultsDbItemBuilder -// --------------------------------------------------------------------------- -// -CDiagResultsDbItemBuilder::CDiagResultsDbItemBuilder( - TUid aTestUid, - TBool aDependencyExecution ) - : iTestUid( aTestUid ), - iDependencyExecution( aDependencyExecution ), - iResult( CDiagResultsDatabaseItem::ENotPerformed ) - { - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::ConstructL -// --------------------------------------------------------------------------- -// -void CDiagResultsDbItemBuilder::ConstructL() - { -#ifndef __DIAGFW_DISABLE_DRM_API - iDrmApi = DRM::CDrmServiceApi::NewL(); -#endif // __DIAGFW_DISABLE_DRM_API - - SetTimeStarted( GetCurrentTime() ); - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::~CDiagResultsDbItemBuilder -// --------------------------------------------------------------------------- -// -CDiagResultsDbItemBuilder::~CDiagResultsDbItemBuilder() - { -#ifndef __DIAGFW_DISABLE_DRM_API - delete iDrmApi; - iDrmApi = NULL; -#endif // __DIAGFW_DISABLE_DRM_API - delete iResultDetail; - iResultDetail = NULL; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::SetTestUid -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultsDbItemBuilder::SetTestUid( TUid aUid ) - { - iTestUid = aUid; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::TestUid -// --------------------------------------------------------------------------- -// -EXPORT_C TUid CDiagResultsDbItemBuilder::TestUid() const - { - return iTestUid; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::GetCurrentTime -// --------------------------------------------------------------------------- -// -EXPORT_C TTime CDiagResultsDbItemBuilder::GetCurrentTime() const - { - TTime currTime = ( TInt64 )0; -#ifndef __DIAGFW_DISABLE_DRM_API - TInt timeZone = 0; - DRMClock::ESecurityLevel secLevel = DRMClock::KInsecure; - if ( iDrmApi->GetSecureTime( currTime, timeZone, secLevel ) != KErrNone ) - { - __ASSERT_DEBUG( 0, Panic( EDiagFrameworkInternal ) ); - // if we are unable to get DRM clock, use home clock. - currTime.UniversalTime(); - } -#endif // __DIAGFW_DISABLE_DRM_API - currTime.UniversalTime(); // Added for Time Updation in HardwareSuiteView - return currTime; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::SetWasDependency -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultsDbItemBuilder::SetWasDependency( TBool aWasDependency ) - { - iDependencyExecution = aWasDependency; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::WasDependency -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CDiagResultsDbItemBuilder::WasDependency() const - { - return iDependencyExecution; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::SetTestCompleted -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultsDbItemBuilder::SetTestCompleted( - CDiagResultsDatabaseItem::TResult aResult ) - { - iResult = aResult; - SetTimeCompleted( GetCurrentTime() ); - } - - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::TestResult -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem::TResult CDiagResultsDbItemBuilder::TestResult() const - { - return iResult; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::SetTimeStarted -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultsDbItemBuilder::SetTimeStarted( TTime aTime ) - { - iStartTime = aTime; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::TimeStarted -// --------------------------------------------------------------------------- -// -EXPORT_C TTime CDiagResultsDbItemBuilder::TimeStarted() const - { - return iStartTime; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::SetTimeCompleted -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultsDbItemBuilder::SetTimeCompleted( TTime aTime ) - { - iEndTime = aTime; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::TimeCompleted -// --------------------------------------------------------------------------- -// -EXPORT_C TTime CDiagResultsDbItemBuilder::TimeCompleted() const - { - return iStartTime; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::SetResultDetail -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultsDbItemBuilder::SetResultDetail( - MDiagResultDetail* aResultDetail ) - { - delete iResultDetail; - iResultDetail = aResultDetail; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::ResultDetail -// --------------------------------------------------------------------------- -// -EXPORT_C MDiagResultDetail& CDiagResultsDbItemBuilder::ResultDetail() const - { - __ASSERT_ALWAYS( iResultDetail, Panic( EDiagFrameworkInvalidState ) ); - return *iResultDetail; - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::ToResultsDatabaseItemL -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem* CDiagResultsDbItemBuilder::ToResultsDatabaseItemL() const - { - CBufFlat* detailsData = NULL; - - if ( iResultDetail ) - { - detailsData = iResultDetail->ExternalizeToBufferL(); - } - - return CDiagResultsDatabaseItem::NewL( iTestUid, - iDependencyExecution, - iResult, - iStartTime, - iEndTime, - detailsData ); // ownership tranferred. - } - -// --------------------------------------------------------------------------- -// CDiagResultsDbItemBuilder::CreateSimpleDbItemL -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem* CDiagResultsDbItemBuilder::CreateSimpleDbItemL( - TUid aTestUid, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResultType ) - { - CDiagResultsDbItemBuilder* resultBuilder = - CDiagResultsDbItemBuilder::NewL( aTestUid, - aAsDependency ); - resultBuilder->SetTestCompleted( aResultType ); - - CleanupStack::PushL( resultBuilder ); - CDiagResultsDatabaseItem* dbItem = resultBuilder->ToResultsDatabaseItemL(); - CleanupStack::PopAndDestroy( resultBuilder ); - - return dbItem; - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagrootsuite.cpp --- a/devicediagnosticsfw/diagframework/src/diagrootsuite.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,374 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagRootSuite -* -*/ - - -// CLASS DECLARATION -#include "diagrootsuite.h" - -// SYSTEM INCLUDE FILES -#include // TDiagSuiteExecParam -#include // MDiagSuiteObserver - -// USER INCLUDE FILES -#include "diagframework.pan" // panic codes. -#include "diagrootsuite.h" // CDiagRootSuite - -using namespace DiagFwInternal; - -// ======== LOCAL FUNCTIONS ======== -/** -* Compares two plug-ins by order. Used for RArray InsertInOrderAllowRepeats -* @param aFirst - first plug-in -* @param aSecond - second plug-in -* @return positive if aFirst > aSecond -* 0 if same. -* negative if aFirst < aSecond -*/ -static TInt ComparePluginByOrder( const MDiagPlugin& aFirst, - const MDiagPlugin& aSecond ) - { - return aFirst.Order() - aSecond.Order(); - } - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagRootSuite::ConstructL() -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::ConstructL() - { - } - - -// --------------------------------------------------------------------------- -// CDiagRootSuite::NewL() -// --------------------------------------------------------------------------- -// -CDiagRootSuite* CDiagRootSuite::NewL() - { - CDiagRootSuite* self = CDiagRootSuite::NewLC(); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDiagRootSuite::NewLC() -// --------------------------------------------------------------------------- -// -CDiagRootSuite* CDiagRootSuite::NewLC() - { - CDiagRootSuite* self = new( ELeave )CDiagRootSuite(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagRootSuite::CDiagRootSuite -// --------------------------------------------------------------------------- -// -CDiagRootSuite::CDiagRootSuite() - : iChildren() - { - } - -// --------------------------------------------------------------------------- -// CDiagRootSuite::~CDiagRootSuite -// --------------------------------------------------------------------------- -// -CDiagRootSuite::~CDiagRootSuite() - { - iChildren.Close(); - } - - -// --------------------------------------------------------------------------- -// from MDiagPlugin -// CDiagRootSuite::GetPluginNameL -// --------------------------------------------------------------------------- -// -HBufC* CDiagRootSuite::GetPluginNameL( TNameLayoutType /* aLayoutType */) const - { - _LIT( KRootSuitePluginName, "*Root Suite" ); - return KRootSuitePluginName().AllocL(); - } - -// --------------------------------------------------------------------------- -// from MDiagPlugin -// CDiagRootSuite::ServiceLogicalName -// --------------------------------------------------------------------------- -// -const TDesC& CDiagRootSuite::ServiceLogicalName() const - { - _LIT( KRootSuiteServiceName, "" ); - return KRootSuiteServiceName(); - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::GetLogicalDependenciesL -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::GetLogicalDependenciesL( CPtrCArray& /* aArray */ ) const - { - } - - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::Type -// --------------------------------------------------------------------------- -// -MDiagPlugin::TPluginType CDiagRootSuite::Type() const - { - return ETypeSuitePlugin; - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::CreateIconL -// --------------------------------------------------------------------------- -// -CGulIcon* CDiagRootSuite::CreateIconL() const - { - return NULL; - } - - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::IsVisible -// --------------------------------------------------------------------------- -// -TBool CDiagRootSuite::IsVisible() const - { - return EFalse; - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::IsSupported -// --------------------------------------------------------------------------- -// -TBool CDiagRootSuite::IsSupported() const - { - return ETrue; - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::GetTitleL -// --------------------------------------------------------------------------- -// -HBufC* CDiagRootSuite::GetTitleL() const - { - // This should never be displayed to the end user. - _LIT( KRootSuitePluginTitle, "*Root Suite Title" ); - return KRootSuitePluginTitle().AllocL(); - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::GetDescriptionL -// --------------------------------------------------------------------------- -// -HBufC* CDiagRootSuite::GetDescriptionL() const - { - // This should never be displayed to the end user. - _LIT( KRootSuitePluginDesc, "*Root Suite Desc" ); - return KRootSuitePluginDesc().AllocL(); - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::Uid -// --------------------------------------------------------------------------- -// -TUid CDiagRootSuite::Uid() const - { - return TUid::Uid( 0 ); - } - - - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::ParentUid -// --------------------------------------------------------------------------- -// -TUid CDiagRootSuite::ParentUid() const - { - return TUid::Uid( 0 ); - } - - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::SetDtorIdKey -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::SetDtorIdKey( TUid /* aDtorIdKey */ ) - { - } - - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::CustomOperationL -// --------------------------------------------------------------------------- -// -TAny* CDiagRootSuite::CustomOperationL( TUid /*aUid*/, TAny* /*aParam*/ ) - { - User::Leave( KErrNotSupported ); - return NULL; - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::GetCustomL -// --------------------------------------------------------------------------- -// -TAny* CDiagRootSuite::GetCustomL( TUid /* aUid */, TAny* /*aParam*/ ) - { - User::Leave( KErrNotSupported ); - return NULL; - } - - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagRootSuite::TestSessionBeginL -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::TestSessionBeginL( MDiagEngineCommon& /* aEngine */, - TBool /* aSkipDependencyCheck */, - TAny* /* aCustomParams */ ) - { - // nothing to do - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagRootSuite::CleanupL -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::TestSessionEndL( MDiagEngineCommon& /* aEngine */, - TBool /* aSkipDependencyCheck */, - TAny* /* aCustomParams */ ) - { - // nothing to do - } - - - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagRootSuite::Order -// --------------------------------------------------------------------------- -// -TUint CDiagRootSuite::Order() const - { - return 0; - } - - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagRootSuite::GetChildrenL -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::GetChildrenL( RPointerArray& aChildren, - TSortOrder aOrder ) const - { - if ( aOrder != ENotSorted && aOrder != ESortByPosition ) - User::Leave( KErrArgument ); - - for ( TInt i = 0; i < iChildren.Count(); i++ ) - { - aChildren.AppendL( iChildren[i] ); - } - } - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagRootSuite::AddChildL -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::AddChildL( MDiagPlugin* aChild ) - { - TLinearOrder order( *ComparePluginByOrder ); - User::LeaveIfError( iChildren.InsertInOrderAllowRepeats( aChild, order ) ); - } - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagRootSuite::PrepareChildrenExecutionL -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::PrepareChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool /* aSkipDependencyCheck */, - TBool /* aDependencyExecution */ ) - { - aParam->Observer().ContinueExecutionL( *this ); - delete aParam; - } - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagRootSuite::FinalizeExecutionL -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::FinalizeChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool /* aSkipDependencyCheck */, - TBool /* aDependencyExecution */ ) - { - aParam->Observer().ContinueExecutionL( *this ); - delete aParam; - } - - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagRootSuite::GetChildrenUidsL -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::GetChildrenUidsL( RArray& aUids, - TSortOrder aOrder ) const - { - if ( aOrder != ENotSorted && aOrder != ESortByPosition ) - User::Leave( KErrArgument ); - - for ( TInt i = 0; i < iChildren.Count(); i++ ) - { - aUids.AppendL( iChildren[i]->Uid() ); - } - } - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagRootSuite::ExecutionStopL -// --------------------------------------------------------------------------- -// -void CDiagRootSuite::ExecutionStopL( TStopReason /* aReason */ ) - { - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagframework/src/diagsuiteexecparam.cpp --- a/devicediagnosticsfw/diagframework/src/diagsuiteexecparam.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of TDiagSuiteExecParam -* -*/ - - -// CLASS DECLARATION -#include - -// SYSTEM INCLUDE FILES - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// TDiagSuiteExecParam::TDiagSuiteExecParam() -// --------------------------------------------------------------------------- -// -EXPORT_C TDiagSuiteExecParam::TDiagSuiteExecParam( MDiagSuiteObserver& aObserver, - MDiagEngineCommon& aEngine ) - : iObserver( aObserver ), - iEngine( aEngine ) - { - } - -// --------------------------------------------------------------------------- -// TDiagSuiteExecParam::Observer() -// --------------------------------------------------------------------------- -// -EXPORT_C MDiagSuiteObserver& TDiagSuiteExecParam::Observer() const - { - return iObserver; - } - - -// --------------------------------------------------------------------------- -// TDiagSuiteExecParam::Engine() -// --------------------------------------------------------------------------- -// -EXPORT_C MDiagEngineCommon& TDiagSuiteExecParam::Engine() const - { - return iEngine; - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/bwins/diagpluginbase.def --- a/devicediagnosticsfw/diagpluginbase/bwins/diagpluginbase.def Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -EXPORTS - ??0CDiagResultDetailBasic@@QAE@W4TResult@CDiagResultsDatabaseItem@@@Z @ 1 NONAME ; CDiagResultDetailBasic::CDiagResultDetailBasic(enum CDiagResultsDatabaseItem::TResult) - ??0CDiagSuitePluginBase@@IAE@PAVCDiagPluginConstructionParam@@@Z @ 2 NONAME ; CDiagSuitePluginBase::CDiagSuitePluginBase(class CDiagPluginConstructionParam *) - ??0CDiagTestPluginBase@@IAE@PAVCDiagPluginConstructionParam@@@Z @ 3 NONAME ; CDiagTestPluginBase::CDiagTestPluginBase(class CDiagPluginConstructionParam *) - ??1CDiagPluginWaitingDialogWrapper@@UAE@XZ @ 4 NONAME ; CDiagPluginWaitingDialogWrapper::~CDiagPluginWaitingDialogWrapper(void) - ??1CDiagResultDetailBasic@@UAE@XZ @ 5 NONAME ; CDiagResultDetailBasic::~CDiagResultDetailBasic(void) - ??1CDiagSuitePluginBase@@UAE@XZ @ 6 NONAME ; CDiagSuitePluginBase::~CDiagSuitePluginBase(void) - ??1CDiagTestPluginBase@@UAE@XZ @ 7 NONAME ; CDiagTestPluginBase::~CDiagTestPluginBase(void) - ?AddChildL@CDiagSuitePluginBase@@UAEXPAVMDiagPlugin@@@Z @ 8 NONAME ; void CDiagSuitePluginBase::AddChildL(class MDiagPlugin *) - ?AreDependenciesSatisfiedL@CDiagTestPluginBase@@MBEHAAVMDiagEngineCommon@@AAPAV?$RArray@VTUid@@@@@Z @ 9 NONAME ; int CDiagTestPluginBase::AreDependenciesSatisfiedL(class MDiagEngineCommon &, class RArray * &) const - ?BaseConstructL@CDiagResultDetailBasic@@IAEXAAVRReadStream@@@Z @ 10 NONAME ; void CDiagResultDetailBasic::BaseConstructL(class RReadStream &) - ?BaseConstructL@CDiagResultDetailBasic@@IAEXABVCBufFlat@@@Z @ 11 NONAME ; void CDiagResultDetailBasic::BaseConstructL(class CBufFlat const &) - ?BaseConstructL@CDiagSuitePluginBase@@IAEXABVTDesC16@@@Z @ 12 NONAME ; void CDiagSuitePluginBase::BaseConstructL(class TDesC16 const &) - ?BaseConstructL@CDiagTestPluginBase@@IAEXABVTDesC16@@@Z @ 13 NONAME ; void CDiagTestPluginBase::BaseConstructL(class TDesC16 const &) - ?CoeEnv@CDiagSuitePluginBase@@IAEAAVCCoeEnv@@XZ @ 14 NONAME ; class CCoeEnv & CDiagSuitePluginBase::CoeEnv(void) - ?CoeEnv@CDiagTestPluginBase@@IAEAAVCCoeEnv@@XZ @ 15 NONAME ; class CCoeEnv & CDiagTestPluginBase::CoeEnv(void) - ?CompleteTestL@CDiagTestPluginBase@@IAEXW4TResult@CDiagResultsDatabaseItem@@@Z @ 16 NONAME ; void CDiagTestPluginBase::CompleteTestL(enum CDiagResultsDatabaseItem::TResult) - ?CreateDetailL@CDiagTestPluginBase@@MBEPAVMDiagResultDetail@@ABVCDiagResultsDatabaseItem@@@Z @ 17 NONAME ; class MDiagResultDetail * CDiagTestPluginBase::CreateDetailL(class CDiagResultsDatabaseItem const &) const - ?CreateIconL@CDiagResultDetailBasic@@UBEPAVCGulIcon@@XZ @ 18 NONAME ; class CGulIcon * CDiagResultDetailBasic::CreateIconL(void) const - ?CreateIconL@CDiagSuitePluginBase@@UBEPAVCGulIcon@@XZ @ 19 NONAME ; class CGulIcon * CDiagSuitePluginBase::CreateIconL(void) const - ?CreateIconL@CDiagTestPluginBase@@MBEPAVCGulIcon@@XZ @ 20 NONAME ; class CGulIcon * CDiagTestPluginBase::CreateIconL(void) const - ?CustomOperationL@CDiagSuitePluginBase@@UAEPAXVTUid@@PAX@Z @ 21 NONAME ; void * CDiagSuitePluginBase::CustomOperationL(class TUid, void *) - ?CustomOperationL@CDiagTestPluginBase@@MAEPAXVTUid@@PAX@Z @ 22 NONAME ; void * CDiagTestPluginBase::CustomOperationL(class TUid, void *) - ?CustomParam@CDiagTestPluginBase@@IBEPAXXZ @ 23 NONAME ; void * CDiagTestPluginBase::CustomParam(void) const - ?DismissWaitingDialog@CDiagSuitePluginBase@@IAEXXZ @ 24 NONAME ; void CDiagSuitePluginBase::DismissWaitingDialog(void) - ?DismissWaitingDialog@CDiagTestPluginBase@@IAEXXZ @ 25 NONAME ; void CDiagTestPluginBase::DismissWaitingDialog(void) - ?DoExecutionStopL@CDiagTestPluginBase@@MAEXW4TStopReason@MDiagTestPlugin@@AAW4TResult@CDiagResultsDatabaseItem@@@Z @ 26 NONAME ; void CDiagTestPluginBase::DoExecutionStopL(enum MDiagTestPlugin::TStopReason, enum CDiagResultsDatabaseItem::TResult &) - ?ExecutionParam@CDiagTestPluginBase@@IAEAAVTDiagTestExecParam@@XZ @ 27 NONAME ; class TDiagTestExecParam & CDiagTestPluginBase::ExecutionParam(void) - ?ExecutionStopL@CDiagSuitePluginBase@@UAEXW4TStopReason@MDiagSuitePlugin@@@Z @ 28 NONAME ; void CDiagSuitePluginBase::ExecutionStopL(enum MDiagSuitePlugin::TStopReason) - ?ExecutionStopL@CDiagTestPluginBase@@MAEPAVCDiagResultsDatabaseItem@@W4TStopReason@MDiagTestPlugin@@@Z @ 29 NONAME ; class CDiagResultsDatabaseItem * CDiagTestPluginBase::ExecutionStopL(enum MDiagTestPlugin::TStopReason) - ?ExternalizeL@CDiagResultDetailBasic@@QBEXAAVRWriteStream@@@Z @ 30 NONAME ; void CDiagResultDetailBasic::ExternalizeL(class RWriteStream &) const - ?ExternalizeToBufferL@CDiagResultDetailBasic@@UBEPAVCBufFlat@@XZ @ 31 NONAME ; class CBufFlat * CDiagResultDetailBasic::ExternalizeToBufferL(void) const - ?FinalizeChildrenExecutionL@CDiagSuitePluginBase@@UAEXPAVTDiagSuiteExecParam@@HH@Z @ 32 NONAME ; void CDiagSuitePluginBase::FinalizeChildrenExecutionL(class TDiagSuiteExecParam *, int, int) - ?GetChildrenL@CDiagSuitePluginBase@@UBEXAAV?$RPointerArray@VMDiagPlugin@@@@W4TSortOrder@MDiagSuitePlugin@@@Z @ 33 NONAME ; void CDiagSuitePluginBase::GetChildrenL(class RPointerArray &, enum MDiagSuitePlugin::TSortOrder) const - ?GetChildrenUidsL@CDiagSuitePluginBase@@UBEXAAV?$RArray@VTUid@@@@W4TSortOrder@MDiagSuitePlugin@@@Z @ 34 NONAME ; void CDiagSuitePluginBase::GetChildrenUidsL(class RArray &, enum MDiagSuitePlugin::TSortOrder) const - ?GetCustomL@CDiagSuitePluginBase@@UAEPAXVTUid@@PAX@Z @ 35 NONAME ; void * CDiagSuitePluginBase::GetCustomL(class TUid, void *) - ?GetCustomL@CDiagTestPluginBase@@MAEPAXVTUid@@PAX@Z @ 36 NONAME ; void * CDiagTestPluginBase::GetCustomL(class TUid, void *) - ?GetDescriptionL@CDiagSuitePluginBase@@UBEPAVHBufC16@@XZ @ 37 NONAME ; class HBufC16 * CDiagSuitePluginBase::GetDescriptionL(void) const - ?GetDescriptionL@CDiagTestPluginBase@@MBEPAVHBufC16@@XZ @ 38 NONAME ; class HBufC16 * CDiagTestPluginBase::GetDescriptionL(void) const - ?GetLogicalDependenciesL@CDiagSuitePluginBase@@UBEXAAVCPtrC16Array@@@Z @ 39 NONAME ; void CDiagSuitePluginBase::GetLogicalDependenciesL(class CPtrC16Array &) const - ?GetLogicalDependenciesL@CDiagTestPluginBase@@MBEXAAVCPtrC16Array@@@Z @ 40 NONAME ; void CDiagTestPluginBase::GetLogicalDependenciesL(class CPtrC16Array &) const - ?GetOutputL@CDiagResultDetailBasic@@UBEXW4TOutputFormat@MDiagResultDetail@@AAVRBuf16@@@Z @ 41 NONAME ; void CDiagResultDetailBasic::GetOutputL(enum MDiagResultDetail::TOutputFormat, class RBuf16 &) const - ?GetSupportedOutput@CDiagResultDetailBasic@@UBEXAAV?$RArray@W4TOutputFormat@MDiagResultDetail@@@@@Z @ 42 NONAME ; void CDiagResultDetailBasic::GetSupportedOutput(class RArray &) const - ?GetTitleL@CDiagSuitePluginBase@@UBEPAVHBufC16@@XZ @ 43 NONAME ; class HBufC16 * CDiagSuitePluginBase::GetTitleL(void) const - ?GetTitleL@CDiagTestPluginBase@@MBEPAVHBufC16@@XZ @ 44 NONAME ; class HBufC16 * CDiagTestPluginBase::GetTitleL(void) const - ?GetValue@CDiagResultDetailBasic@@IBEHHAAH@Z @ 45 NONAME ; int CDiagResultDetailBasic::GetValue(int, int &) const - ?GetValue@CDiagResultDetailBasic@@IBEHHAAVTPtrC16@@@Z @ 46 NONAME ; int CDiagResultDetailBasic::GetValue(int, class TPtrC16 &) const - ?GetValue@CDiagResultDetailBasic@@IBEHHAAVTPtrC8@@@Z @ 47 NONAME ; int CDiagResultDetailBasic::GetValue(int, class TPtrC8 &) const - ?IsDependencyCheckSkipped@CDiagTestPluginBase@@IBEHXZ @ 48 NONAME ; int CDiagTestPluginBase::IsDependencyCheckSkipped(void) const - ?IsDependencyExecution@CDiagTestPluginBase@@IBEHXZ @ 49 NONAME ; int CDiagTestPluginBase::IsDependencyExecution(void) const - ?IsOutputSupported@CDiagResultDetailBasic@@UBEHW4TOutputFormat@MDiagResultDetail@@@Z @ 50 NONAME ; int CDiagResultDetailBasic::IsOutputSupported(enum MDiagResultDetail::TOutputFormat) const - ?IsSupported@CDiagSuitePluginBase@@UBEHXZ @ 51 NONAME ; int CDiagSuitePluginBase::IsSupported(void) const - ?IsSupported@CDiagTestPluginBase@@MBEHXZ @ 52 NONAME ; int CDiagTestPluginBase::IsSupported(void) const - ?NewL@CDiagPluginWaitingDialogWrapper@@SAPAV1@PAVCAknDialog@@@Z @ 53 NONAME ; class CDiagPluginWaitingDialogWrapper * CDiagPluginWaitingDialogWrapper::NewL(class CAknDialog *) - ?Order@CDiagSuitePluginBase@@UBEIXZ @ 54 NONAME ; unsigned int CDiagSuitePluginBase::Order(void) const - ?Order@CDiagTestPluginBase@@MBEIXZ @ 55 NONAME ; unsigned int CDiagTestPluginBase::Order(void) const - ?ParentUid@CDiagSuitePluginBase@@UBE?AVTUid@@XZ @ 56 NONAME ; class TUid CDiagSuitePluginBase::ParentUid(void) const - ?ParentUid@CDiagTestPluginBase@@MBE?AVTUid@@XZ @ 57 NONAME ; class TUid CDiagTestPluginBase::ParentUid(void) const - ?PrepareChildrenExecutionL@CDiagSuitePluginBase@@UAEXPAVTDiagSuiteExecParam@@HH@Z @ 58 NONAME ; void CDiagSuitePluginBase::PrepareChildrenExecutionL(class TDiagSuiteExecParam *, int, int) - ?ReportTestProgressL@CDiagTestPluginBase@@IAEXI@Z @ 59 NONAME ; void CDiagTestPluginBase::ReportTestProgressL(unsigned int) - ?ResultsDbItemBuilder@CDiagTestPluginBase@@IAEAAVCDiagResultsDbItemBuilder@@XZ @ 60 NONAME ; class CDiagResultsDbItemBuilder & CDiagTestPluginBase::ResultsDbItemBuilder(void) - ?ResumeL@CDiagTestPluginBase@@MAEXXZ @ 61 NONAME ; void CDiagTestPluginBase::ResumeL(void) - ?RunError@CDiagTestPluginBase@@MAEHH@Z @ 62 NONAME ; int CDiagTestPluginBase::RunError(int) - ?RunLD@CDiagPluginWaitingDialogWrapper@@QAEHAAH@Z @ 63 NONAME ; int CDiagPluginWaitingDialogWrapper::RunLD(int &) - ?RunTestL@CDiagTestPluginBase@@MAEXPAVTDiagTestExecParam@@HHPAX@Z @ 64 NONAME ; void CDiagTestPluginBase::RunTestL(class TDiagTestExecParam *, int, int, void *) - ?RunWaitingDialogL@CDiagSuitePluginBase@@IAEHPAVCAknDialog@@AAH@Z @ 65 NONAME ; int CDiagSuitePluginBase::RunWaitingDialogL(class CAknDialog *, int &) - ?RunWaitingDialogL@CDiagTestPluginBase@@IAEHPAVCAknDialog@@AAH@Z @ 66 NONAME ; int CDiagTestPluginBase::RunWaitingDialogL(class CAknDialog *, int &) - ?ServiceLogicalName@CDiagSuitePluginBase@@UBEABVTDesC16@@XZ @ 67 NONAME ; class TDesC16 const & CDiagSuitePluginBase::ServiceLogicalName(void) const - ?ServiceLogicalName@CDiagTestPluginBase@@MBEABVTDesC16@@XZ @ 68 NONAME ; class TDesC16 const & CDiagTestPluginBase::ServiceLogicalName(void) const - ?SetDtorIdKey@CDiagSuitePluginBase@@UAEXVTUid@@@Z @ 69 NONAME ; void CDiagSuitePluginBase::SetDtorIdKey(class TUid) - ?SetDtorIdKey@CDiagTestPluginBase@@MAEXVTUid@@@Z @ 70 NONAME ; void CDiagTestPluginBase::SetDtorIdKey(class TUid) - ?SetResult@CDiagResultDetailBasic@@QAEXW4TResult@CDiagResultsDatabaseItem@@@Z @ 71 NONAME ; void CDiagResultDetailBasic::SetResult(enum CDiagResultsDatabaseItem::TResult) - ?SetValueL@CDiagResultDetailBasic@@IAEXHABVTDesC8@@0@Z @ 72 NONAME ; void CDiagResultDetailBasic::SetValueL(int, class TDesC8 const &, class TDesC8 const &) - ?SetValueL@CDiagResultDetailBasic@@IAEXHABVTDesC8@@ABVTDesC16@@@Z @ 73 NONAME ; void CDiagResultDetailBasic::SetValueL(int, class TDesC8 const &, class TDesC16 const &) - ?SetValueL@CDiagResultDetailBasic@@IAEXHABVTDesC8@@H@Z @ 74 NONAME ; void CDiagResultDetailBasic::SetValueL(int, class TDesC8 const &, int) - ?StopAndCleanupL@CDiagTestPluginBase@@IAEXXZ @ 75 NONAME ; void CDiagTestPluginBase::StopAndCleanupL(void) - ?SuspendL@CDiagTestPluginBase@@MAEXXZ @ 76 NONAME ; void CDiagTestPluginBase::SuspendL(void) - ?TestSessionBeginL@CDiagSuitePluginBase@@UAEXAAVMDiagEngineCommon@@HPAX@Z @ 77 NONAME ; void CDiagSuitePluginBase::TestSessionBeginL(class MDiagEngineCommon &, int, void *) - ?TestSessionBeginL@CDiagTestPluginBase@@MAEXAAVMDiagEngineCommon@@HPAX@Z @ 78 NONAME ; void CDiagTestPluginBase::TestSessionBeginL(class MDiagEngineCommon &, int, void *) - ?TestSessionEndL@CDiagSuitePluginBase@@UAEXAAVMDiagEngineCommon@@HPAX@Z @ 79 NONAME ; void CDiagSuitePluginBase::TestSessionEndL(class MDiagEngineCommon &, int, void *) - ?TestSessionEndL@CDiagTestPluginBase@@MAEXAAVMDiagEngineCommon@@HPAX@Z @ 80 NONAME ; void CDiagTestPluginBase::TestSessionEndL(class MDiagEngineCommon &, int, void *) - ?Type@CDiagSuitePluginBase@@UBE?AW4TPluginType@MDiagPlugin@@XZ @ 81 NONAME ; enum MDiagPlugin::TPluginType CDiagSuitePluginBase::Type(void) const - ?Type@CDiagTestPluginBase@@MBE?AW4TPluginType@MDiagPlugin@@XZ @ 82 NONAME ; enum MDiagPlugin::TPluginType CDiagTestPluginBase::Type(void) const - ?SinglePluginExecution@CDiagTestPluginBase@@IBEHXZ @ 83 NONAME ; int CDiagTestPluginBase::SinglePluginExecution(void) const - ?VerifyDependenciesL@CDiagTestPluginBase@@MBE?AW4TResult@CDiagResultsDatabaseItem@@AAVMDiagEngineCommon@@AAPAV?$RArray@VTUid@@@@@Z @ 84 NONAME ; enum CDiagResultsDatabaseItem::TResult CDiagTestPluginBase::VerifyDependenciesL(class MDiagEngineCommon &, class RArray * &) const - ?ResetWatchdog@CDiagTestPluginBase@@IAEXHW4TResult@CDiagResultsDatabaseItem@@@Z @ 85 NONAME ; void CDiagTestPluginBase::ResetWatchdog(int, enum CDiagResultsDatabaseItem::TResult) - ?ResetWatchdog@CDiagTestPluginBase@@IAEXW4TDiagEngineWatchdogTypes@@W4TResult@CDiagResultsDatabaseItem@@@Z @ 86 NONAME ; void CDiagTestPluginBase::ResetWatchdog(enum TDiagEngineWatchdogTypes, enum CDiagResultsDatabaseItem::TResult) - ?ResetWatchdogToDefault@CDiagTestPluginBase@@IAEXXZ @ 87 NONAME ; void CDiagTestPluginBase::ResetWatchdogToDefault(void) - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/eabi/diagpluginbase.def --- a/devicediagnosticsfw/diagpluginbase/eabi/diagpluginbase.def Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ -EXPORTS - _ZN19CDiagTestPluginBase10GetCustomLE4TUidPv @ 1 NONAME - _ZN19CDiagTestPluginBase12SetDtorIdKeyE4TUid @ 2 NONAME - _ZN19CDiagTestPluginBase13CompleteTestLEN24CDiagResultsDatabaseItem7TResultE @ 3 NONAME - _ZN19CDiagTestPluginBase14BaseConstructLERK7TDesC16 @ 4 NONAME - _ZN19CDiagTestPluginBase14ExecutionParamEv @ 5 NONAME - _ZN19CDiagTestPluginBase14ExecutionStopLEN15MDiagTestPlugin11TStopReasonE @ 6 NONAME - _ZN19CDiagTestPluginBase15StopAndCleanupLEv @ 7 NONAME - _ZN19CDiagTestPluginBase15TestSessionEndLER17MDiagEngineCommoniPv @ 8 NONAME - _ZN19CDiagTestPluginBase16CustomOperationLE4TUidPv @ 9 NONAME - _ZN19CDiagTestPluginBase16DoExecutionStopLEN15MDiagTestPlugin11TStopReasonERN24CDiagResultsDatabaseItem7TResultE @ 10 NONAME - _ZN19CDiagTestPluginBase17RunWaitingDialogLEP10CAknDialogRi @ 11 NONAME - _ZN19CDiagTestPluginBase17TestSessionBeginLER17MDiagEngineCommoniPv @ 12 NONAME - _ZN19CDiagTestPluginBase19ReportTestProgressLEj @ 13 NONAME - _ZN19CDiagTestPluginBase20DismissWaitingDialogEv @ 14 NONAME - _ZN19CDiagTestPluginBase20ResultsDbItemBuilderEv @ 15 NONAME - _ZN19CDiagTestPluginBase6CoeEnvEv @ 16 NONAME - _ZN19CDiagTestPluginBase7ResumeLEv @ 17 NONAME - _ZN19CDiagTestPluginBase8RunErrorEi @ 18 NONAME - _ZN19CDiagTestPluginBase8RunTestLEP18TDiagTestExecParamiiPv @ 19 NONAME - _ZN19CDiagTestPluginBase8SuspendLEv @ 20 NONAME - _ZN19CDiagTestPluginBaseC2EP28CDiagPluginConstructionParam @ 21 NONAME - _ZN19CDiagTestPluginBaseD0Ev @ 22 NONAME - _ZN19CDiagTestPluginBaseD1Ev @ 23 NONAME - _ZN19CDiagTestPluginBaseD2Ev @ 24 NONAME - _ZN20CDiagSuitePluginBase10GetCustomLE4TUidPv @ 25 NONAME - _ZN20CDiagSuitePluginBase12SetDtorIdKeyE4TUid @ 26 NONAME - _ZN20CDiagSuitePluginBase14BaseConstructLERK7TDesC16 @ 27 NONAME - _ZN20CDiagSuitePluginBase14ExecutionStopLEN16MDiagSuitePlugin11TStopReasonE @ 28 NONAME - _ZN20CDiagSuitePluginBase15TestSessionEndLER17MDiagEngineCommoniPv @ 29 NONAME - _ZN20CDiagSuitePluginBase16CustomOperationLE4TUidPv @ 30 NONAME - _ZN20CDiagSuitePluginBase17RunWaitingDialogLEP10CAknDialogRi @ 31 NONAME - _ZN20CDiagSuitePluginBase17TestSessionBeginLER17MDiagEngineCommoniPv @ 32 NONAME - _ZN20CDiagSuitePluginBase20DismissWaitingDialogEv @ 33 NONAME - _ZN20CDiagSuitePluginBase25PrepareChildrenExecutionLEP19TDiagSuiteExecParamii @ 34 NONAME - _ZN20CDiagSuitePluginBase26FinalizeChildrenExecutionLEP19TDiagSuiteExecParamii @ 35 NONAME - _ZN20CDiagSuitePluginBase6CoeEnvEv @ 36 NONAME - _ZN20CDiagSuitePluginBase9AddChildLEP11MDiagPlugin @ 37 NONAME - _ZN20CDiagSuitePluginBaseC2EP28CDiagPluginConstructionParam @ 38 NONAME - _ZN20CDiagSuitePluginBaseD0Ev @ 39 NONAME - _ZN20CDiagSuitePluginBaseD1Ev @ 40 NONAME - _ZN20CDiagSuitePluginBaseD2Ev @ 41 NONAME - _ZN22CDiagResultDetailBasic14BaseConstructLER11RReadStream @ 42 NONAME - _ZN22CDiagResultDetailBasic14BaseConstructLERK8CBufFlat @ 43 NONAME - _ZN22CDiagResultDetailBasic9SetResultEN24CDiagResultsDatabaseItem7TResultE @ 44 NONAME - _ZN22CDiagResultDetailBasic9SetValueLEiRK6TDesC8RK7TDesC16 @ 45 NONAME - _ZN22CDiagResultDetailBasic9SetValueLEiRK6TDesC8S2_ @ 46 NONAME - _ZN22CDiagResultDetailBasic9SetValueLEiRK6TDesC8i @ 47 NONAME - _ZN22CDiagResultDetailBasicC1EN24CDiagResultsDatabaseItem7TResultE @ 48 NONAME - _ZN22CDiagResultDetailBasicC2EN24CDiagResultsDatabaseItem7TResultE @ 49 NONAME - _ZN22CDiagResultDetailBasicD0Ev @ 50 NONAME - _ZN22CDiagResultDetailBasicD1Ev @ 51 NONAME - _ZN22CDiagResultDetailBasicD2Ev @ 52 NONAME - _ZN31CDiagPluginWaitingDialogWrapper4NewLEP10CAknDialog @ 53 NONAME - _ZN31CDiagPluginWaitingDialogWrapper5RunLDERi @ 54 NONAME - _ZN31CDiagPluginWaitingDialogWrapperD0Ev @ 55 NONAME - _ZN31CDiagPluginWaitingDialogWrapperD1Ev @ 56 NONAME - _ZN31CDiagPluginWaitingDialogWrapperD2Ev @ 57 NONAME - _ZNK19CDiagTestPluginBase11CreateIconLEv @ 58 NONAME - _ZNK19CDiagTestPluginBase11CustomParamEv @ 59 NONAME - _ZNK19CDiagTestPluginBase11IsSupportedEv @ 60 NONAME - _ZNK19CDiagTestPluginBase13CreateDetailLERK24CDiagResultsDatabaseItem @ 61 NONAME - _ZNK19CDiagTestPluginBase15GetDescriptionLEv @ 62 NONAME - _ZNK19CDiagTestPluginBase18ServiceLogicalNameEv @ 63 NONAME - _ZNK19CDiagTestPluginBase21IsDependencyExecutionEv @ 64 NONAME - _ZNK19CDiagTestPluginBase23GetLogicalDependenciesLER12CPtrC16Array @ 65 NONAME - _ZNK19CDiagTestPluginBase24IsDependencyCheckSkippedEv @ 66 NONAME - _ZNK19CDiagTestPluginBase25AreDependenciesSatisfiedLER17MDiagEngineCommonRP6RArrayI4TUidE @ 67 NONAME - _ZNK19CDiagTestPluginBase4TypeEv @ 68 NONAME - _ZNK19CDiagTestPluginBase5OrderEv @ 69 NONAME - _ZNK19CDiagTestPluginBase9GetTitleLEv @ 70 NONAME - _ZNK19CDiagTestPluginBase9ParentUidEv @ 71 NONAME - _ZNK20CDiagSuitePluginBase11CreateIconLEv @ 72 NONAME - _ZNK20CDiagSuitePluginBase11IsSupportedEv @ 73 NONAME - _ZNK20CDiagSuitePluginBase12GetChildrenLER13RPointerArrayI11MDiagPluginEN16MDiagSuitePlugin10TSortOrderE @ 74 NONAME - _ZNK20CDiagSuitePluginBase15GetDescriptionLEv @ 75 NONAME - _ZNK20CDiagSuitePluginBase16GetChildrenUidsLER6RArrayI4TUidEN16MDiagSuitePlugin10TSortOrderE @ 76 NONAME - _ZNK20CDiagSuitePluginBase18ServiceLogicalNameEv @ 77 NONAME - _ZNK20CDiagSuitePluginBase23GetLogicalDependenciesLER12CPtrC16Array @ 78 NONAME - _ZNK20CDiagSuitePluginBase4TypeEv @ 79 NONAME - _ZNK20CDiagSuitePluginBase5OrderEv @ 80 NONAME - _ZNK20CDiagSuitePluginBase9GetTitleLEv @ 81 NONAME - _ZNK20CDiagSuitePluginBase9ParentUidEv @ 82 NONAME - _ZNK22CDiagResultDetailBasic10GetOutputLEN17MDiagResultDetail13TOutputFormatER6RBuf16 @ 83 NONAME - _ZNK22CDiagResultDetailBasic11CreateIconLEv @ 84 NONAME - _ZNK22CDiagResultDetailBasic12ExternalizeLER12RWriteStream @ 85 NONAME - _ZNK22CDiagResultDetailBasic17IsOutputSupportedEN17MDiagResultDetail13TOutputFormatE @ 86 NONAME - _ZNK22CDiagResultDetailBasic18GetSupportedOutputER6RArrayIN17MDiagResultDetail13TOutputFormatEE @ 87 NONAME - _ZNK22CDiagResultDetailBasic20ExternalizeToBufferLEv @ 88 NONAME - _ZNK22CDiagResultDetailBasic8GetValueEiR6TPtrC8 @ 89 NONAME - _ZNK22CDiagResultDetailBasic8GetValueEiR7TPtrC16 @ 90 NONAME - _ZNK22CDiagResultDetailBasic8GetValueEiRi @ 91 NONAME - _ZTI19CDiagTestPluginBase @ 92 NONAME ; ## - _ZTI20CDiagSuitePluginBase @ 93 NONAME ; ## - _ZTI22CDiagResultDetailBasic @ 94 NONAME ; ## - _ZTI26CDiagResultDetailBasicItem @ 95 NONAME ; ## - _ZTI31CDiagPluginWaitingDialogWrapper @ 96 NONAME ; ## - _ZTV19CDiagTestPluginBase @ 97 NONAME ; ## - _ZTV20CDiagSuitePluginBase @ 98 NONAME ; ## - _ZTV22CDiagResultDetailBasic @ 99 NONAME ; ## - _ZTV26CDiagResultDetailBasicItem @ 100 NONAME ; ## - _ZTV31CDiagPluginWaitingDialogWrapper @ 101 NONAME ; ## - _ZThn28_N19CDiagTestPluginBase10GetCustomLE4TUidPv @ 102 NONAME ; ## - _ZThn28_N19CDiagTestPluginBase12SetDtorIdKeyE4TUid @ 103 NONAME ; ## - _ZThn28_N19CDiagTestPluginBase14ExecutionStopLEN15MDiagTestPlugin11TStopReasonE @ 104 NONAME ; ## - _ZThn28_N19CDiagTestPluginBase15TestSessionEndLER17MDiagEngineCommoniPv @ 105 NONAME ; ## - _ZThn28_N19CDiagTestPluginBase16CustomOperationLE4TUidPv @ 106 NONAME ; ## - _ZThn28_N19CDiagTestPluginBase17TestSessionBeginLER17MDiagEngineCommoniPv @ 107 NONAME ; ## - _ZThn28_N19CDiagTestPluginBase7ResumeLEv @ 108 NONAME ; ## - _ZThn28_N19CDiagTestPluginBase8RunTestLEP18TDiagTestExecParamiiPv @ 109 NONAME ; ## - _ZThn28_N19CDiagTestPluginBase8SuspendLEv @ 110 NONAME ; ## - _ZThn28_N19CDiagTestPluginBaseD0Ev @ 111 NONAME ; ## - _ZThn28_N19CDiagTestPluginBaseD1Ev @ 112 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBase10GetCustomLE4TUidPv @ 113 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBase12SetDtorIdKeyE4TUid @ 114 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBase14ExecutionStopLEN16MDiagSuitePlugin11TStopReasonE @ 115 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBase15TestSessionEndLER17MDiagEngineCommoniPv @ 116 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBase16CustomOperationLE4TUidPv @ 117 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBase17TestSessionBeginLER17MDiagEngineCommoniPv @ 118 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBase25PrepareChildrenExecutionLEP19TDiagSuiteExecParamii @ 119 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBase26FinalizeChildrenExecutionLEP19TDiagSuiteExecParamii @ 120 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBase9AddChildLEP11MDiagPlugin @ 121 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBaseD0Ev @ 122 NONAME ; ## - _ZThn28_N20CDiagSuitePluginBaseD1Ev @ 123 NONAME ; ## - _ZThn28_NK19CDiagTestPluginBase11CreateIconLEv @ 124 NONAME ; ## - _ZThn28_NK19CDiagTestPluginBase11IsSupportedEv @ 125 NONAME ; ## - _ZThn28_NK19CDiagTestPluginBase13CreateDetailLERK24CDiagResultsDatabaseItem @ 126 NONAME ; ## - _ZThn28_NK19CDiagTestPluginBase15GetDescriptionLEv @ 127 NONAME ; ## - _ZThn28_NK19CDiagTestPluginBase18ServiceLogicalNameEv @ 128 NONAME ; ## - _ZThn28_NK19CDiagTestPluginBase23GetLogicalDependenciesLER12CPtrC16Array @ 129 NONAME ; ## - _ZThn28_NK19CDiagTestPluginBase4TypeEv @ 130 NONAME ; ## - _ZThn28_NK19CDiagTestPluginBase5OrderEv @ 131 NONAME ; ## - _ZThn28_NK19CDiagTestPluginBase9ParentUidEv @ 132 NONAME ; ## - _ZThn28_NK20CDiagSuitePluginBase11CreateIconLEv @ 133 NONAME ; ## - _ZThn28_NK20CDiagSuitePluginBase11IsSupportedEv @ 134 NONAME ; ## - _ZThn28_NK20CDiagSuitePluginBase12GetChildrenLER13RPointerArrayI11MDiagPluginEN16MDiagSuitePlugin10TSortOrderE @ 135 NONAME ; ## - _ZThn28_NK20CDiagSuitePluginBase15GetDescriptionLEv @ 136 NONAME ; ## - _ZThn28_NK20CDiagSuitePluginBase16GetChildrenUidsLER6RArrayI4TUidEN16MDiagSuitePlugin10TSortOrderE @ 137 NONAME ; ## - _ZThn28_NK20CDiagSuitePluginBase18ServiceLogicalNameEv @ 138 NONAME ; ## - _ZThn28_NK20CDiagSuitePluginBase23GetLogicalDependenciesLER12CPtrC16Array @ 139 NONAME ; ## - _ZThn28_NK20CDiagSuitePluginBase4TypeEv @ 140 NONAME ; ## - _ZThn28_NK20CDiagSuitePluginBase5OrderEv @ 141 NONAME ; ## - _ZThn28_NK20CDiagSuitePluginBase9ParentUidEv @ 142 NONAME ; ## - _ZThn4_N22CDiagResultDetailBasicD0Ev @ 143 NONAME ; ## - _ZThn4_N22CDiagResultDetailBasicD1Ev @ 144 NONAME ; ## - _ZThn4_NK22CDiagResultDetailBasic10GetOutputLEN17MDiagResultDetail13TOutputFormatER6RBuf16 @ 145 NONAME ; ## - _ZThn4_NK22CDiagResultDetailBasic11CreateIconLEv @ 146 NONAME ; ## - _ZThn4_NK22CDiagResultDetailBasic17IsOutputSupportedEN17MDiagResultDetail13TOutputFormatE @ 147 NONAME ; ## - _ZThn4_NK22CDiagResultDetailBasic18GetSupportedOutputER6RArrayIN17MDiagResultDetail13TOutputFormatEE @ 148 NONAME ; ## - _ZThn4_NK22CDiagResultDetailBasic20ExternalizeToBufferLEv @ 149 NONAME ; ## - _ZNK19CDiagTestPluginBase21SinglePluginExecutionEv @ 150 NONAME - _ZNK19CDiagTestPluginBase19VerifyDependenciesLER17MDiagEngineCommonRP6RArrayI4TUidE @ 151 NONAME - _ZN19CDiagTestPluginBase13ResetWatchdogE24TDiagEngineWatchdogTypesN24CDiagResultsDatabaseItem7TResultE @ 152 NONAME - _ZN19CDiagTestPluginBase13ResetWatchdogEiN24CDiagResultsDatabaseItem7TResultE @ 153 NONAME - _ZN19CDiagTestPluginBase22ResetWatchdogToDefaultEv @ 154 NONAME - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/group/bld.inf --- a/devicediagnosticsfw/diagpluginbase/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* -* Copyright (c) 2007 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: Build information file for Diagnostics Plug-in Base Classes -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -../inc/diagplugincommon.loc MW_LAYER_PLATFORM_EXPORT_PATH( diagplugincommon.loc ) - -PRJ_MMPFILES -diagpluginbase.mmp - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/group/diagpluginbase.mmp --- a/devicediagnosticsfw/diagpluginbase/group/diagpluginbase.mmp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* -* Copyright (c) 2007 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: Project specification for DiagPluginBase.dll -* -*/ - - -#include -#include - -TARGET diagpluginbase.dll -TARGETTYPE dll - -UID 0x1000008d 0x2000afe9 - -CAPABILITY CAP_GENERAL_DLL -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE diagtestpluginbase.cpp -SOURCE diagsuitepluginbase.cpp -SOURCE diagresultdetailbasic.cpp -SOURCE diagresultdetailbasicitem.cpp -SOURCE diagpluginbaseutils.cpp -SOURCE diagpluginwaitingdialogwrapper.cpp - -// User Include -USERINCLUDE ../inc - -// System Include Paths -SYSTEMINCLUDE /epoc32/include/ecom -MW_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY ecom.lib -LIBRARY efsrv.lib -LIBRARY bafl.lib -LIBRARY cone.lib // CCoeEnv -LIBRARY commonengine.lib -LIBRARY estor.lib // RBufReadStream -LIBRARY flogger.lib // logging -LIBRARY eikdlg.lib // CEikDialog -LIBRARY diagframework.lib -LIBRARY diagresultsdatabase.lib - -#if defined(WINSCW) - deffile ../bwins/diagpluginbase.def -#else - deffile ../eabi/diagpluginbase.def -#endif - -nostrictdef - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/group/diagpluginbase_uid_.cpp --- a/devicediagnosticsfw/diagpluginbase/group/diagpluginbase_uid_.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +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 diagnostics components -* -*/ -// Makmake-generated uid source file -#include -#pragma data_seg(".SYMBIAN") -__EMULATOR_IMAGE_HEADER2(0x10000079,0x1000008d,0x2000afe9,EPriorityForeground,0x000ffffeu,0x00000000u,0x2000afe9,0x101fb657,0x00010000,0) -#pragma data_seg() diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/inc/diagpluginbase.pan --- a/devicediagnosticsfw/diagpluginbase/inc/diagpluginbase.pan Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2007 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: Enum definition of Framdwork Panic Codes -* -*/ - - -#ifndef DIAGPLUGINBASE_PAN -#define DIAGPLUGINBASE_PAN - -/** -* Panic Codes for Diagnostics PluginBase -* -* @since 5.0 -*/ -enum TDiagPluginBasePanics - { - EDiagPluginBasePanicConstruction = 1, // Failed to construct - EDiagPluginBasePanicBadArgument = 2, // Invalid input parameter - EDiagPluginBasePanicDialogAlreadyUp = 3, // Another dialog is already being displayed. - EDiagPluginBasePanicInternal = 4, // Base class internal error - EDiagPluginBasePanicInvalidState = 5 // Function called in invalid state. - }; - - -_LIT( KDiagPluginBaseCategory, "Diag Plugin Base" ); - -inline void Panic( TDiagPluginBasePanics aReason ) - { - User::Panic( KDiagPluginBaseCategory, aReason ); - } - -#endif // DIAGPLUGINBASE_PAN - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/inc/diagpluginbaseutils.h --- a/devicediagnosticsfw/diagpluginbase/inc/diagpluginbaseutils.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2007 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: Utility functions for plug-ins -* -*/ - - -#ifndef DIAGPLUGINBASEUTILS_H -#define DIAGPLUGINBASEUTILS_H - -// INCLUDES - -// FORWARD DECLARATIONS -class RConeResourceLoader; - -// CONSTANTS - -/** -* Diagnostics Plugin Base Utility Functions -* -* Collection of various useful functions. -* -* @since S60 v5.0 -*/ - -namespace DiagPluginBaseUtils - { -void OpenResourceFileL( const TDesC& aResourceFileName, - RConeResourceLoader& aResourceLoader, - RFs& aFsSession ); - } // namespace DiagPluginBaseUtils - -#endif // DIAGPLUGINBASEUTILS_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/inc/diagplugincommon.loc --- a/devicediagnosticsfw/diagpluginbase/inc/diagplugincommon.loc Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2007 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: Localization strings for project Diagnostics Plugin -* -*/ - - -// d:Softkey text for Skip -// l:control_pane_t1/opt7 -// r:3.2 -// -#define qtn_diag_softk_skip "Skip" - - -// d:Message for remove cables -// l:popup_note_window -// r:3.2 -// -#define qtn_diag_msg_remove_all_cables "Please remove all cables" - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/inc/diagpluginwaitingdialogwrapper.h --- a/devicediagnosticsfw/diagpluginbase/inc/diagpluginwaitingdialogwrapper.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/* -* Copyright (c) 2007 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: Provides wrapper for waiting dialogs. -* -*/ - - -#ifndef DIAGPLUGINWAITINGDIALOGWRAPPER_H -#define DIAGPLUGINWAITINGDIALOGWRAPPER_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class CAknDialog; - -/** -* Diagnostics Plugin Waiting Dialog Wrapper. -* -* This class provides a wrapper for executing dialogs. The only functionality -* it adds is that it provides a way for the caller to find out whether -* the dialog was dismissed by the user response, or by application deletion. -* -* @since S60 v5.0 -*/ -class CDiagPluginWaitingDialogWrapper : public CBase - { -public: // new API - /** - * Two-phased constructor. - * - * @param - aWaitingDialog. Pointer to dialog to display. Note that - * it must be a dialog with EEikDialogFlagWait set. Otherwise, it - * will panic with EDiagPluginBasePanicBadArgument - * Ownership is transferred to the wrapper. - * @return - New instance of CDiagPluginWaitingDialogWrapper - */ - IMPORT_C static CDiagPluginWaitingDialogWrapper* NewL( CAknDialog* aWaitingDialog ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagPluginWaitingDialogWrapper(); - - /** - * Run a dialog that waits for response. - * - * To dismiss the dialog, simply delete CDiagPluginWaitingDialogWrapper instance. - * - * The difference from normal dialog RunLD is that this function returns - * ETrue if dialog exited due to user response and - * EFalse if the object was deleted. - * - * !!!! NOTE THAT PLUG-IN MUST RETURN IMMEDIATELY WITHOUT ACCESSING !!!! - * !!!! LOCAL VARIABLE OR LOCAL FUNCITONS WHEN THIS FUNCTION RETURNS !!!! - * !!!! EFalse VALUE BECAUSE "THIS" POINTER MAY BE FREED ALREADY. !!!! - * - * The normal dialog response is returned via aDialogResponse parameter. - * - * @param aDialogResponse - Response from the dialog. - * For detailed values @see avkon.hrh "CBA constants". E.g. EAknSoftkeyYes - * The only exception is that if cancel is pressed, it will be 0. - * @return ETrue if dialog is exiting due to user response. - * Efalse if dialog is dismissed without user input. - * If EFalse is returned, plug-in MUST NOT act on the response. - */ - IMPORT_C TBool RunLD( TInt& aDialogResponse ); - -private: // private interface - /** - * C++ Constructor - * - * @param - aWaitingDialog. Pointer to dialog to display. Note that - * it must be a dialog with EEikDialogFlagWait set. Otherwise, it - * will panic with EDiagPluginBasePanicBadArgument - * Ownership is transferred to the wrapper. - */ - CDiagPluginWaitingDialogWrapper( CAknDialog* aWaitingDialog ); - -private: // Private Data - /** - * Pointer to the dialog being displayed. - * Ownership: Shared. Normally, dialog will dismiss itself. However, - * if plug-in is being deleted, it can be deleted by the plug-in as well. - */ - CAknDialog* iWaitingDialog; - - /** - * Indicates whether this class is deleted by caller. - * Ownership: Not owned. Normally, it will point to a stack entry. - */ - TBool* iIsObjectDeletedPtr; - }; - -#endif // DIAGTESTPLUGINBASE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/inc/diagresultdetailbasic.h --- a/devicediagnosticsfw/diagpluginbase/inc/diagresultdetailbasic.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,208 +0,0 @@ -/* -* Copyright (c) 2007 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: Basic Diagnostics Test Result Detail class -* -*/ - - -#ifndef DIAGRESULTDETAILBASIC_H -#define DIAGRESULTDETAILBASIC_H - -// INCLUDES -#include // CBase -#include // MDiagResultDetail -#include // CDiagResultsDatabaseItem::TResult - -// FORWARD DECLARATIONS -class CDiagResultDetailBasicItem; - - -// CONSTANTS -const TInt KDiagResultDetailBasicVersion = 1; // verion of data format. - -/** -* Diagnostics Result Database Detail class. -* -* This class provides implementation of MDiagResultDetail -* with commonly used methods. -* -* @since S60 v5.0 -*/ -class CDiagResultDetailBasic : public CBase, - public MDiagResultDetail - { -public: - /** - * Constructor. - * - * @param aResult - Test Result - */ - IMPORT_C CDiagResultDetailBasic( - CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagResultDetailBasic(); - - /** - * Externalize to a stream - * - * @param aWriteStream - stream to write to. - */ - IMPORT_C void ExternalizeL( RWriteStream& aWriteStream ) const; - - /** - * Update result value - * - * @param aResult - Test result - */ - IMPORT_C void SetResult( CDiagResultsDatabaseItem::TResult aResult ); - -protected: // Interface for Derived class - /** - * Set data to a field. This function sets a value to a field. - * If data already exists at the same field id, new data will - * over write the old value at the same field. - * - * @param aFieldId - Unique ID to identify the data. - * @param aFieldName - Name of the field. This only for a - * reference. - * @param aValue - Value to set. This can be a TInt, - * const TDesC8& or const TDesC16&. - */ - IMPORT_C void SetValueL( TInt aFieldId, - const TDesC8& aFieldName, - TInt aValue ); - IMPORT_C void SetValueL( TInt aFieldId, - const TDesC8& aFieldName, - const TDesC8& aValue ); - IMPORT_C void SetValueL( TInt aFieldId, - const TDesC8& aFieldName, - const TDesC16& aValue ); - - /** - * Get value. If invalid aFieldId is passed, or type does not - * match, function will leave with KErrArgument. - * - * @param aFieldId - Unique id that identifies the data. Same - * value used in SetValueL function. - * @param aValue - Output paramater. The data will be stored - * here. - * @return KErrNone if successful. If not found KErrNotFound. - * If type does not match, KErrArgument. - */ - IMPORT_C TInt GetValue( TInt aFieldId, TInt& aValue ) const; - IMPORT_C TInt GetValue( TInt aFieldId, TPtrC8& aValue ) const; - IMPORT_C TInt GetValue( TInt aFieldId, TPtrC16& aValue ) const; - -public: // from MDiagResultDetail - /** - * Get list of supported output - * - * @param aOutputList - Returns supported output formats - */ - IMPORT_C virtual void GetSupportedOutput( - RArray& aOutputList ) const; - - /** - * Check if a given output format is supported. - * - * @param aOutputFormat - Possible output formate. - * @return ETrue if supported. EFalse otherwise. - */ - IMPORT_C virtual TBool IsOutputSupported( TOutputFormat aOutputFormat ) const; - - /** - * Output current result to a specified format. - * - * @param aFormat Format of desired output. - * @param aBuffer Output buffer. - */ - IMPORT_C virtual void GetOutputL( TOutputFormat aFormat, RBuf& aBuffer ) const; - - /** - * Create an icon. Icon can be created based on the results of the test. - * - * @return An icon that matches the result of the test. - **/ - IMPORT_C virtual CGulIcon* CreateIconL() const; - - /** - * Externalize to a CBufFlat. - * @see MDiagResultDetail::ExternalizeToBufferL - */ - IMPORT_C CBufFlat* ExternalizeToBufferL() const; - -protected: - /** - * BaseConstructL - * - * @param aReadStream - Initialize from a stream. - */ - IMPORT_C void BaseConstructL( RReadStream& aReadStream ); - - /** - * BaseConstructL - * - * @param aBuffer - Buffer to initialize from - */ - IMPORT_C void BaseConstructL( const CBufFlat& aBuffer ); - - -private: // internal methods - /** - * InternalizeL - * - * @param aReadStream - Initialize from a stream. - */ - void InternalizeL( RReadStream& aReadStream ); - - /** - * Insert a new item. This function will delete the old item if item with - * same field id already existsed. - * - * @param aNewItem - new item to set - */ - void SetItemL( CDiagResultDetailBasicItem* aNewItem ); - - /** - * Find item by field id - * - * @param - Field id to look up. - * @return - Index in iFields array if look up is successful. - * Return value is negative if look up fails. - */ - TInt FindItem( TInt aFieldId ) const; - - -private: // DATA - /** - * Test result. - */ - CDiagResultsDatabaseItem::TResult iResult; - - /** - * List of fields it contains. - * All items are owned by this class. - */ - RPointerArray iFields; - }; - - - -#endif // DIAGRESULTDETAILBASIC_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/inc/diagresultdetailbasicitem.h --- a/devicediagnosticsfw/diagpluginbase/inc/diagresultdetailbasicitem.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,166 +0,0 @@ -/* -* Copyright (c) 2007 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: Basic Diagnostics Test Result Detail Item class -* -*/ - - -#ifndef DIAGRESULTDETAILBASICITEM_H -#define DIAGRESULTDETAILBASICITEM_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class RWriteStream; -class RReadStream; - -/** -* Diagnostics Result Database Detail Item Classe. -* -* This class stores information needed for each entry in -* CDiagResultDetailBasic. -* -* @since S60 v5.0 -*/ -class CDiagResultDetailBasicItem : public CBase - { -public: // Data Types - enum TFieldType - { - ETypeInt = 0, // data is TInt type - ETypeDes16, // data is TDesC16 type - ETypeDes8, // data is TDesC8 type - }; - -public: // Constructors - /** - * Two-phase constructor. - * - * @param aFieldId - Field Id. - * @param aFieldName - Textual description of the field. - * @param aValue - TInt value. - */ - static CDiagResultDetailBasicItem* NewL( TInt aFieldId, - const TDesC8& aFieldName, - TInt aValue ); - - /** - * Two-phase constructor. - * - * @param aFieldId - Field Id. - * @param aFieldName - Textual description of the field. - * @param aValue - TDesC8 Text value. - */ - static CDiagResultDetailBasicItem* NewL( TInt aFieldId, - const TDesC8& aFieldName, - const TDesC8& aValue ); - - /** - * Two-phase constructor. - * - * @param aFieldId - Field Id - * @param aFieldName - Textual description of the field. - * @param aValue - TDesC16 Text value. - */ - static CDiagResultDetailBasicItem* NewL( TInt aFieldId, - const TDesC8& aFieldName, - const TDesC16& aValue ); - - /** - * Two-phase constructor with RReadStream - * - * @param aReadStream - stream to internalize from - */ - static CDiagResultDetailBasicItem* NewL( RReadStream& aReadStream ); - - /** - * Destructor - */ - ~CDiagResultDetailBasicItem(); - - /** - * Get the field Id. - * - * @return Field Id. - */ - TInt FieldId() const; - - /** - * Get the name of the field. - * - * @return Name of the field. - */ - const TDesC8& FieldName() const; - - /** - * Get the type of the field. - * - * @return Type of the field. - */ - TFieldType Type() const; - - /** - * Get value. If invalid aFieldId is passed, or type does not - * match, function will leave with KErrArgument. - * - * @param aValue - Output paramater. The data will be stored - * here. - * @param KErrArgument if type does not match - */ - TInt GetValue( TInt& aValue ) const; - TInt GetValue( TPtrC8& aValue ) const; - TInt GetValue( TPtrC16& aValue ) const; - - /** - * Externalize to a stream. - * - */ - void ExternalizeL( RWriteStream& aWriteStream ) const; - -private: - /** - * Constructor - * - */ - CDiagResultDetailBasicItem(); - - /** - * Internalize from stream. - * - * @param aReadStream - stream to read from. - */ - void InternalizeL( RReadStream& aReadStream ); - - -private: // Private Data Types - - typedef union - { - HBufC16* iBuffer16; - HBufC8* iBuffer8; - TInt iInt; - } TValue; - -private: // Data - TFieldType iFieldType; - TInt iFieldId; - TValue iValue; - HBufC8* iFieldName; - }; - -#endif // DIAGRESULTDETAILBASICITEM_h - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/inc/diagsuitepluginbase.h --- a/devicediagnosticsfw/diagpluginbase/inc/diagsuitepluginbase.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,325 +0,0 @@ -/* -* Copyright (c) 2007 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: Diagnostics Suite Plug-in Base class -* -*/ - - -#ifndef DIAGSUITEPLUGINBASE_H -#define DIAGSUITEPLUGINBASE_H - -// INCLUDES -#include // TUid -#include // MDiagSuitePlugin -#include // RConeResourceLoader - -// FORWARD DECLARATIONSn -class CDiagPluginConstructionParam; -class CAknDialog; - -/** -* Diagnostics Framework Suite Plugin Base Class -* -* This base class provides common implementation of Suite Plugin. -* -* @since S60 v5.0 -*/ -class CDiagSuitePluginBase : public CActive, - public MDiagSuitePlugin - { -public: - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagSuitePluginBase(); - -protected: // new API for derived class. - /** - * C++ constructor - * - * @param aConstructionParam Construction parameters. - */ - IMPORT_C CDiagSuitePluginBase( CDiagPluginConstructionParam* aParam ); - - /** - * Base class constructor - * This initializes CDiagSuitePluginBase class. Derived class must call this - * method in its ConstructL() method. - * - * @param aResourceFileName Drive and name of resource file in format - * : - */ - IMPORT_C void BaseConstructL( const TDesC& aResourceFileName ); - - /** - * Run a dialog that waits for response. It is highly recommended that - * all plug-ins use this function to display dialogs since it can detect - * deletion of dialogs. - * - * The difference from normal dialog RunLD is that this function returns - * ETrue if dialog exited due to user response and - * EFalse if it was by other means, such as object deletion or - * by DismissWaitingDialog() method. - * - * !!!! NOTE THAT PLUG-IN MUST RETURN IMMEDIATELY WITHOUT ACCESSING !!!! - * !!!! LOCAL VARIABLE OR LOCAL FUNCITONS WHEN THIS FUNCTION RETURNS !!!! - * !!!! EFalse VALUE BECAUSE "THIS" POINTER MAY BE FREED ALREADY. !!!! - * - * The normal dialog response is returned via aDialogResponse reference. - * This function can only display one dialog at a time. Calling it again - * while it has not been returned will cause panic. - * - * @param aDialog - Pointer to dialog to run. If the dialog does not have - * EEikDialogFlagWait flag set, it will panic with EDiagPluginBasePanicBadArgument - * @param aDialogResponse - Response from the dialog. - * For detailed values @see avkon.hrh "CBA constants". E.g. EAknSoftkeyYes - * The only exception is that if cancel is pressed, it will be 0. - * @return ETrue if dialog is exiting due to user response. - * Efalse if dialog is dismissed withou user input. - * If EFalse is returned, plug-in MUST NOT act on the response. - * Also, since plug-in may have been deleted, - */ - IMPORT_C TBool RunWaitingDialogL( CAknDialog* aDialog, TInt& aDialogResponse ); - - /** - * Dismiss the waiting dialog. This will cause the RunDialogLD() function to return with - * aIsUserResponse = Efalse. If nothing is being displayed, this function - * does nothing. - */ - IMPORT_C void DismissWaitingDialog(); - - /** - * CCoeEnv - * @return Reference to CCoeEnv. - */ - IMPORT_C CCoeEnv& CoeEnv(); - -public: // from MDiagPlugin - /** - * Get the name of the service that the plug-in provides. - * - * @return The name of the service. - **/ - IMPORT_C virtual const TDesC& ServiceLogicalName() const; - - /** - * Get logical dependencies. One plug-in can have multiple dependencies - * to other plug-ins. - * - * @param aArray An array of logical names. - * @see ServiceLogicalName. - **/ - IMPORT_C virtual void GetLogicalDependenciesL( CPtrCArray& aArray ) const; - - /** - * Return the type of the plug-in. - * - * @return The type. - * @see TPluginType. - **/ - IMPORT_C virtual TPluginType Type() const; - - /** - * Create an icon that represents the plug-in. - * - * @return An icon. - **/ - IMPORT_C virtual CGulIcon* CreateIconL() const; - - /** - * Get the order number that this plug-in should appear in its parent list. - * - * @return TUint order number. - **/ - IMPORT_C virtual TUint Order() const; - - /** - * @see MDiagPlugin::IsSupported - **/ - IMPORT_C virtual TBool IsSupported() const; - - /** - * Get UID of the parent. - * - * @return The parent UID. - **/ - IMPORT_C virtual TUid ParentUid() const; - - /** - * @see MDiagPlugin::SetDTorIdKey() - */ - IMPORT_C virtual void SetDtorIdKey( TUid aDtorIdKey ); - - /** - * Get title of the plugin. Default implementation in CDiagSuitePluginBase - * will leave with KErrNotSupported. If plug-in has a title, plug-ins - * must override this method. - * @see MDiagPlugin::GetTitleL() - */ - IMPORT_C virtual HBufC* GetTitleL() const; - - /** - * Get description of the plugin. Default implementation in - * CDiagSuitePluginBase will leave with KErrNotSupported. If plug-in - * has a description, plug-ins must override this method. - * @see MDiagPlugin::GetDescriptionL() - */ - IMPORT_C virtual HBufC* GetDescriptionL() const; - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the operation. - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - */ - IMPORT_C virtual TAny* CustomOperationL( TUid aUid, TAny* aParam ); - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the property - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - */ - IMPORT_C virtual TAny* GetCustomL( TUid aUid, TAny* aParam ); - - /** - * Initialization Step. This method is called before any plugin are executed. - * This can be used to clean up any left over data from previous execution - * sessions. All plug-ins in execution plan will have a chance to clean - * up before any plug-ins are run. This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in will be executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. - **/ - IMPORT_C virtual void TestSessionBeginL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - /** - * Cleanup Step. This method is called after all plug-ins in the - * execution plan is completed to clean up any left over data from - * current sesison. This can be used to clean up any data that - * provides dependent service created for its dependencies. - * This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in as executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. - **/ - IMPORT_C virtual void TestSessionEndL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - -public: // from MDiagSuitePlugin - - /** - * Get children of this plug-in. The pointer array is guaranteed to - * be sorted defined by TSortOrder. - * - * @param aChildren Children are appended into this array. - * @param aOrder Sorting algorithm. - **/ - IMPORT_C virtual void GetChildrenL( RPointerArray& aChildren, - TSortOrder aOrder ) const; - - /** - * Add one child. Child can be either a test suite or a test plug-in. - * - * @param aChild - Child to be added. However, ownership is not - * transferred here. - **/ - IMPORT_C virtual void AddChildL( MDiagPlugin* aChild ); - - /** - * Get the Uids. The uid is used for database access. - * Test suites return a list of their childrens' uids. - * - * @param aUids An UID array. - * @param aOrder Sorting algorithm. - **/ - IMPORT_C virtual void GetChildrenUidsL( RArray& aUids, - TSortOrder aOrder ) const; - - /** - * Called before one of its test plug-in is executed. Note that it will - * not be called if two of its children plug-ins are executed in - * sequence. - * - * @param aSkipDependencyCheck - If ETrue dependency is disabled - * for this test session. - * @param aDependencyExecution - If ETrue, this suite is being - * executed to satisfy dependency. - **/ - IMPORT_C virtual void PrepareChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ); - - /** - * Called before test execution switches to another test suite. - * - * @param aExecParams Parameters for suite post execution - * @param aSkipDependencyCheck - If ETrue dependency is disabled - * for this test session. - * @param aDependencyExecution - If ETrue, this suite is being - * executed to satisfy dependency. - **/ - IMPORT_C virtual void FinalizeChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ); - - /** - * Cancels pre/post execution. Cancellation is expected to be synchronous. - * Suite plug-in must not call ContinueExecutionL(). - * - * @param aReason - Reason why ExecutionStopL() is being called. - **/ - IMPORT_C virtual void ExecutionStopL( TStopReason aReason ); - -private: // Private Data Types - class TPrivateData; - -private: // Private data - /** - * Plug-in constructor parameter. - * Ownership: this - */ - CDiagPluginConstructionParam* iConstructionParam; - - /** - * CCoeEnv. This is needed for handling resources. - */ - CCoeEnv& iCoeEnv; - - /** - * Plug-in base's private data - */ - TPrivateData* iData; - }; - -#endif // DIAGSUITEPLUGINBASE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/inc/diagtestpluginbase.h --- a/devicediagnosticsfw/diagpluginbase/inc/diagtestpluginbase.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,589 +0,0 @@ -/* -* Copyright (c) 2007 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: Diagnostics Test Plug-in Base class -* -*/ - - -#ifndef DIAGTESTPLUGINBASE_H -#define DIAGTESTPLUGINBASE_H - -// INCLUDES -#include // MDiagTestPlugin -#include // RConeResourceLoader -#include // CDiagResultsDatabaseItem::TResult -#include // TDiagEngineWatchdogTypes - -// FORWARD DECLARATIONS -class CDiagResultsDbItemBuilder; -class TDiagTestPluginBasePrivateData; -class CDiagPluginConstructionParam; -class CAknDialog; - -/** -* Diagnostics Framework Test Plugin Base Class -* -* This class provides further simplification of test execution. -* It handles execution parameter and reporting results to engine -* -* @since S60 v5.0 -*/ -class CDiagTestPluginBase : public CActive, - public MDiagTestPlugin - { -public: // C++ Destructor - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagTestPluginBase(); - -protected: // new API for derived class - /** - * C++ constructor - * - * Note that BaseConstructL() must be called to complete object construction. - * @param aConstructionParam Construction parameters. - */ - IMPORT_C CDiagTestPluginBase( CDiagPluginConstructionParam* aConstructionParam ); - - /** - * 2nd phase Base class constructor - * This initializes CDiagTestPluginBase class. Derived class must call this - * method in its ConstructL() method. - * - * @param aResourceFileName Drive and name of resource file in format - * : - */ - IMPORT_C void BaseConstructL( const TDesC& aResourceFileName ); - - /** - * Verify that all dependencies are satisfied. Also returns a list of - * failed dependencies. - * - * @param aEngine. Reference to engine, which provides references to - * database session and plug-in pool. - * @param aFailedUids. If ETrue is returned, the parameter is NULL. - * if EFalse is returned, the parameter points to an array that - * can be used to query UIDs of failed dependencies. Client is - * responsible of closing the array. - * @return ETrue if all dependencies are executed successfully. - * EFalse if one or more dependencies are failed. - */ - IMPORT_C virtual TBool AreDependenciesSatisfiedL( MDiagEngineCommon& aEngine, - RArray*& aFailedUids ) const; - - /** - * Check result of dependencies. This will check each dependency and - * determine the best overall result of all the dependencies. - * - * @param aEngine. Reference to engine, which provides references to - * database session and plug-in pool. - * @param aFailedUids. If ESuccess is returned, the parameter is NULL. - * Otherwise the parameter points to an array that - * can be used to query UIDs of failed dependencies. Client is - * responsible of closing the array. - * @return Result of the dependency check. If multiple depencies or suites - * are included, it will return the most appropreate result. - */ - IMPORT_C virtual CDiagResultsDatabaseItem::TResult VerifyDependenciesL( - MDiagEngineCommon& aEngine, - RArray*& aFailedUids ) const; - - /** - * Returns execution parameter. - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return Execution parameter. - */ - IMPORT_C TDiagTestExecParam& ExecutionParam(); - - /** - * Check if current test session has dependency check skip flag set. - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return ETrue if dependency check is disabled for this execution sesison. - * EFalse if dependency check is enabled. - */ - IMPORT_C TBool IsDependencyCheckSkipped() const; - - /** - * Check if current test is being executed to satisfy dependency or - * if it is being executed explicitly. - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return ETrue - If it is to satisfy dependency. - * EFalse - If it is being executed explicitly. - */ - IMPORT_C TBool IsDependencyExecution() const; - - /** - * Get custom parameter passed to from the engine - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return Custom parameter. Ownership is not transferred. - */ - IMPORT_C TAny* CustomParam() const; - - /** - * Get currently result db item builder. - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return Reference to current CDiagResultsDbItemBuilder. - */ - IMPORT_C CDiagResultsDbItemBuilder& ResultsDbItemBuilder(); - - /** - * Report test progress test observer. - * This function will call engine's TestProgressL method with watchdog - * type value that is based on plug-in RunMode. - * - * If EAutomatic plug-in, it will use EDiagEngineWatchdogTypeNonInteractive. - * If EInteractiveView or EInteractiveDialog, EDiagEngineWatchdogTypeInteractive. - * - * When watchdog is timed out, it will stop test with test result - * CDiagResultsDatabaseItem::EWatchdogCancel. - * - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @param aCurrentStep - Current execution step - */ - IMPORT_C void ReportTestProgressL( TUint aCurrentStep ); - - /** - * Reset watchdog value and watchdog failure result type. - * When watchdog is timed out, it will use the given result type as - * value to report back to engine. - * - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @param aWatchdogType - Type of watchdog requested. - * @param aResultType - Result to report when wachdog is failed. - */ - IMPORT_C void ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType, - CDiagResultsDatabaseItem::TResult aResultType ); - - /** - * Reset watchdog value and watchdog failure result type. - * For most plug-ins, the other ResetWatchdog should be better. - * This should be used only if specific time must be given for the step. - * - * When watchdog is timed out, it will use the given result type as - * value to report back to engine. - * - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @param aTimeToCompletion - Time needed to complete current operation. - * Unit is in microseconds. - * @param aResultType - Result to report when wachdog is failed. - */ - IMPORT_C void ResetWatchdog( - TInt aTimeToCompletion, - CDiagResultsDatabaseItem::TResult aResultType ); - - /** - * Reset watchdog value and watchdog failure result type to default values. - * This will also reset watchdog on engine. - * - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - */ - IMPORT_C void ResetWatchdogToDefault(); - - /** - * Report test result to test observer. - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * This function will also call StopAndCleanupL(), which will call - * DoStopAndCleanupL(). After CompleteTestL() is called, ExecutionParam() and - * other test state specific API will fail. - * - * @param aResult - Test result. - */ - IMPORT_C void CompleteTestL( CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Stop current execution and free any data associated with the test. - * This method will call DoStopAndCleanupL() function to allow - * derived class to clean up. - * - * It will also call DismissWaitingDialog() and CActive::Cancel(). - * - * If derived class overrides ExecutionStopL() function, this function - * must be called by derived version of ExecutionStopL() to allow - * proper clean up of CDiagTestPluginBase. - * - * @see CDiagTestPluginBase::ExecutionStopL - */ - IMPORT_C void StopAndCleanupL(); - - /** - * Run a dialog that waits for response. It is highly recommended that - * all plug-ins use this function to display dialogs since it can detect - * deletion of dialogs. - * - * The difference from normal dialog RunLD is that this function returns - * ETrue if dialog exited due to user response and - * EFalse if it was by other means, such as object deletion or - * by DismissWaitingDialog() method. - * - * !!!! NOTE THAT PLUG-IN MUST RETURN IMMEDIATELY WITHOUT ACCESSING !!!! - * !!!! LOCAL VARIABLE OR LOCAL FUNCITONS WHEN THIS FUNCTION RETURNS !!!! - * !!!! EFalse VALUE BECAUSE "THIS" POINTER MAY BE FREED ALREADY. !!!! - * - * The normal dialog response is returned via aDialogResponse reference. - * This function can only display one dialog at a time. Calling it again - * while it has not been returned will cause panic. - * - * @param aDialog - Pointer to dialog to run. If the dialog does not have - * EEikDialogFlagWait flag set, it will panic with EDiagPluginBaseBadArgument - * @param aDialogResponse - Response from the dialog. - * For detailed values @see avkon.hrh "CBA constants". E.g. EAknSoftkeyYes - * The only exception is that if cancel is pressed, it will be 0. - * @return ETrue if dialog is exiting due to user response. - * Efalse if dialog is dismissed withou user input. - * If EFalse is returned, plug-in MUST NOT act on the response. - * Also, since plug-in may have been deleted, - */ - IMPORT_C TBool RunWaitingDialogL( CAknDialog* aDialog, TInt& aDialogResponse ); - - /** - * Dismiss the waiting dialog. This will cause the RunDialogLD() function to return with - * aIsUserResponse = Efalse. If nothing is being displayed, this function - * does nothing. - */ - IMPORT_C void DismissWaitingDialog(); - - /** - * CCoeEnv - * @return Reference to CCoeEnv. - */ - IMPORT_C CCoeEnv& CoeEnv(); - - /** - * Check if current test is being executed as a single plugin or - * as a part of a suite - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return ETrue - If run as a single plugin - * EFalse - If run as a part of a suite - */ - IMPORT_C TBool SinglePluginExecution() const; - -protected: // to be implemented by derived classes - /** - * Execute test. This is called by CDiagTestPluginBase::RunTestL() - * Note that CDiagTestPluginBase takes ownership of all parameters - * given in RunTestL() function. If specific parameter is needed - * use the following set of functions: - * - * Parameters are available via the following APIs. - * Observer: ExecutionParam().Observer(); - * Engine: ExecutionParam().Engine(); - * Dependency Execution: IsDependencyExecution(); - * Skip Depdency: IsDependencyCheckSkipped(); - * Custom Parameter: CustomParam(); - * - * Also, a new instance of CDiagResultsDbItemBuilder is created and - * accessible via: - * - * Result Db Item Builder: ResultsDbItemBuilder(); - */ - virtual void DoRunTestL() = 0; - - /** - * Stop current execution and free any data associated with the test. - * This is called by StopAndCleanupL - */ - virtual void DoStopAndCleanupL() = 0; - - /** - * This is called by CDiagTestPluginBase::ExecutionStopL() to allow - * the derived class to provide additional behavior in ExecutionStopL(). - * Default implementation does nothing. For more information about - * how this is called, @see CDiagTestPluginBase::ExecutionStopL() - * - * @param aReason - Reason why ExecutionStopL() is being called. - * @param aTestResult - Test result to write to in database. - * This is IN/OUT parameter. By default, it contains default result based on - * aReason. Plug-in can provide different test result, assign new result - * to this variable. - * - */ - IMPORT_C virtual void DoExecutionStopL( MDiagTestPlugin::TStopReason aReason, - CDiagResultsDatabaseItem::TResult& aTestResult ); - -protected: // From CActive - /** - * RunError. Handle leaves from test. If test is currently running, - * CDiagTestPluginBase will handle the error by calling - * CompleteTestL( CDiagResultsDatabaseItem::EFailed ). If test was - * not running, it will return the error back to active scheduler. - * - * If this behavior is not desired, derived class should override this - * method. - * - * For parameters and return value, - * @see CActive::RunError - */ - IMPORT_C virtual TInt RunError( TInt aError ); - -protected: // from MDiagTestPlugin - /** - * Handle execution stop. - * @see MDiagTestPlugin::ExecutionStopL() - * - * This method does the following: - * a) Call DoExecutionStopL() - * b) Call StopAndCleanupL() -> Calls DoStopAndCleanupL() - * c) Return either EWatchdogCancel or ECancelled depending on - * the stop reason. - * - * Note: If derived class wants override this function, be sure to - * call StopAndCleanupL() to allow proper clean up of - * CDiagTestPluginBase class. StopAndCleanupL() will call - * DoStopAndCleanupL(). - * - * @see DoExecutionStopL() - * @see StopAndCleanupL() - */ - IMPORT_C virtual CDiagResultsDatabaseItem* ExecutionStopL( TStopReason aReason ); - -protected: // from MDiagTestPlugin - /** - * Get the name of the service that the plug-in provides. - * - * @return The name of the service. - */ - IMPORT_C virtual const TDesC& ServiceLogicalName() const; - - /** - * Get logical dependencies. One plug-in can have multiple dependencies to - * other plug-ins. - * - * @param aArray An array of logical names. - * @see ServiceLogicalNameL - */ - IMPORT_C virtual void GetLogicalDependenciesL( CPtrCArray& aArray ) const; - - /** - * Return the type of the plug-in. - * - * @return The type. - * @see TPluginType. - */ - IMPORT_C virtual TPluginType Type() const; - - /** - * Create an icon that represents the plug-in. - * - * @return An icon. - */ - IMPORT_C virtual CGulIcon* CreateIconL() const; - - /** - * @see MDiagPlugin::IsSupported - */ - IMPORT_C virtual TBool IsSupported() const; - - /** - * Get the order number that this plug-in should appear in its parent list. - * - * @return TUint order number. - */ - IMPORT_C virtual TUint Order() const; - - /** - * Get UID of the parent. - * - * @return The parent UID. - */ - IMPORT_C virtual TUid ParentUid() const; - - /** - * @see MDiagPlugin::SetDTorIdKey() - */ - IMPORT_C virtual void SetDtorIdKey( TUid aDtorIdKey ); - - /** - * Get title of the plugin. Default implementation in CDiagTestPluginBase - * will leave with KErrNotSupported. If plug-in has a title, plug-ins - * must override this method. - * @see MDiagPlugin::GetTitleL() - */ - IMPORT_C virtual HBufC* GetTitleL() const; - - /** - * Get description of the plugin. Default implementation in - * CDiagTestPluginBase will leave with KErrNotSupported. If plug-in - * has a description, plug-in must override this method. - * @see MDiagPlugin::GetDescriptionL() - */ - IMPORT_C virtual HBufC* GetDescriptionL() const; - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the operation. - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - */ - IMPORT_C virtual TAny* CustomOperationL( TUid aUid, TAny* aParam ); - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the property - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - */ - IMPORT_C virtual TAny* GetCustomL( TUid aUid, TAny* aParam ); - - /** - * Initialization Step. This method is called before any plugin are executed. - * This can be used to clean up any left over data from previous execution - * sessions. All plug-ins in execution plan will have a chance to clean - * up before any plug-ins are run. This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in will be executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. - */ - IMPORT_C virtual void TestSessionBeginL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - /** - * Cleanup Step. This method is called after all plug-ins in the - * execution plan is completed to clean up any left over data from - * current sesison. This can be used to clean up any data that - * provides dependent service created for its dependencies. - * This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in as executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. - */ - IMPORT_C virtual void TestSessionEndL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - - /** - * Execute diagnostics test. - * @see MDiagTestPlugin::RunTestL - */ - IMPORT_C virtual void RunTestL( TDiagTestExecParam* aExecParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution, - TAny* aCustomParams ); - - /** - * Suspend test. - * @see MDiagTestPlugin::SuspendL - */ - IMPORT_C virtual void SuspendL(); - - /** - * Resume test. - * @see MDiagTestPlugin::ResumeL - */ - IMPORT_C virtual void ResumeL(); - - /** - * Create test result detail. - * @see CDiagTestPluginBase::CreateDetailL - */ - IMPORT_C virtual MDiagResultDetail* CreateDetailL( - const CDiagResultsDatabaseItem& aResult ) const; - -private: // private functions - /** - * Stop and clean up CDiagTestPluginBase - */ - void BaseStopAndCleanup(); - - /** - * Utility function to get all dependent test plug-ins. If suite is found, - * it will be expanded to test plug-ins. - - * @param aEngine. Reference to engine, which provides references to - * database session and plug-in pool. - * @param aPluginList - Output array. Upon completion, it will hold - * list of test plug-ins. If this plug-in does not depend on any tests, - * it will be empty. - * Ownership of individual items are not trasferred, so ResetAndDestroy() - * must not be called. - */ - void GetAllDependentTestsL( MDiagEngineCommon& aEngine, - RPointerArray< MDiagTestPlugin >& aPluginList ) const; - - /** - * Utility function to check results of tests in array and come up with - * best overall result of tests. - * @param aPluginList - List of test plug-ins. - * @param aFailedUidList - Output array. Upon completion, it will contain - * list of uids that failed. - * @return Overall result of dependent tets. - */ - CDiagResultsDatabaseItem::TResult SummarizeOverallTestResultsL( - MDiagEngineCommon& aEngine, - const RPointerArray< MDiagTestPlugin >& aPluginList, - RArray< TUid >& aFailedUidList ) const; - - -private: // Private Data Type - // Forward declaration. - class TPrivateData; - -private: // Private Data - /** - * Plug-in constructor parameter. - * Ownership: this - */ - CDiagPluginConstructionParam* iConstructionParam; - - /** - * CCoeEnv. This is needed for handling resources. - */ - CCoeEnv& iCoeEnv; - - /** - * Plug-in base's private data - */ - TPrivateData* iData; - }; - -#endif // DIAGTESTPLUGINBASE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/src/diagpluginbaseutils.cpp --- a/devicediagnosticsfw/diagpluginbase/src/diagpluginbaseutils.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2007 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: Collection of utility functions useful for plugins -* -*/ - - -// SYSTEM INCLUDE FILES -#include // BaflUtils -#include // RConeResourceLoader -#include // RFs -#include // KDC_RESOURCE_FILES_DIR -#include // LOGSTRING - -// USER INCLUDE FILES -#include "diagpluginbaseutils.h" // CDiagPluginUtils - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// DiagPluginBaseUtils::OpenResourceFileL() -// --------------------------------------------------------------------------- -// -void DiagPluginBaseUtils::OpenResourceFileL( - const TDesC& aResourceFileName, - RConeResourceLoader& aResourceLoader, - RFs& aFsSession ) - { - // Find the resource file: - TParse parse; - parse.Set( aResourceFileName, &KDC_RESOURCE_FILES_DIR, NULL ); - TFileName fileName( parse.FullName() ); - - // Get language of resource file: - BaflUtils::NearestLanguageFile( aFsSession, fileName ); - - LOGSTRING( "CDiagPluginBaseUtils::OpenLocalizedResourceFileL: FileName:" ) - LOGTEXT( fileName ) - - // Open resource file: - TRAPD( err, aResourceLoader.OpenL( fileName ) ) - -#ifdef _DEBUG - if ( err != KErrNone ) - { - // if it is a debug build, and it fails to load the resource, try - // again with C: as base directory. - // This allows installation of plug-ins as SIS file without changing - // code in the plug-in itself. - _LIT( KCDriveName, "c" ); - fileName.Replace( 0, 1, KCDriveName ); - - LOGSTRING( "CDiagPluginBaseUtils::OpenLocalizedResourceFileL: Retry:" ) - LOGTEXT( fileName ) - TRAP( err, aResourceLoader.OpenL( fileName ) ) - } -#endif // _DEBUG - - if ( err != KErrNone ) - { - LOGSTRING2( "CDiagPluginBaseUtils::OpenLocalizedResourceFileL:" - L" Failed err = %d", err ) - User::Leave( err ); - } - - LOGSTRING( "CDiagPluginBaseUtils::OpenLocalizedResourceFileL: Resource Opened" ) - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/src/diagpluginwaitingdialogwrapper.cpp --- a/devicediagnosticsfw/diagpluginbase/src/diagpluginwaitingdialogwrapper.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagPluginWaitingDialogWrapper -* -*/ - - -// CLASS DECLARATION -#include "diagpluginwaitingdialogwrapper.h" - -// SYSTEM INCLUDE FILES -#include // CAknDialog - -// USER INCLUDE FILES -#include "diagpluginbase.pan" // Panic Codes - -// LOCAL TYPES - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagPluginWaitingDialogWrapper::NewL -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagPluginWaitingDialogWrapper* CDiagPluginWaitingDialogWrapper::NewL( - CAknDialog* aWaitingDialog ) - { - CleanupStack::PushL( aWaitingDialog ); - CDiagPluginWaitingDialogWrapper* self = new ( ELeave ) - CDiagPluginWaitingDialogWrapper( aWaitingDialog ); - CleanupStack::Pop( aWaitingDialog ); - - return self; - } - -// --------------------------------------------------------------------------- -// CDiagPluginWaitingDialogWrapper::CDiagPluginWaitingDialogWrapper -// --------------------------------------------------------------------------- -// -CDiagPluginWaitingDialogWrapper::CDiagPluginWaitingDialogWrapper( - CAknDialog* aWaitingDialog ) - : iWaitingDialog( aWaitingDialog ), - iIsObjectDeletedPtr( NULL ) - { - // Dialog must not be NULL - __ASSERT_ALWAYS( iWaitingDialog, Panic( EDiagPluginBasePanicBadArgument ) ); - - // Dialog must have EEikDialogFlagWait flag set - __ASSERT_ALWAYS( !(iWaitingDialog->DialogFlags() & EEikDialogFlagWait), - Panic( EDiagPluginBasePanicBadArgument ) ); - } - -// --------------------------------------------------------------------------- -// CDiagPluginWaitingDialogWrapper::~CDiagPluginWaitingDialogWrapper -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagPluginWaitingDialogWrapper::~CDiagPluginWaitingDialogWrapper() - { - if( iIsObjectDeletedPtr ) - { - // If this pointer is set, we are still in RunLD(). - __ASSERT_DEBUG( iWaitingDialog, Panic( EDiagPluginBasePanicInternal ) ); - - *iIsObjectDeletedPtr = ETrue; - iIsObjectDeletedPtr = NULL; - - delete iWaitingDialog; - iWaitingDialog = NULL; - } - } - -// --------------------------------------------------------------------------- -// CDiagPluginWaitingDialogWrapper::RunLD -// --------------------------------------------------------------------------- -EXPORT_C TBool CDiagPluginWaitingDialogWrapper::RunLD( TInt& aDialogResponse ) - { - // Make sure that this function is not called twice. - __ASSERT_ALWAYS( iIsObjectDeletedPtr == NULL, - Panic( EDiagPluginBasePanicInvalidState ) ); - - TBool isObjectDeleted = EFalse; - - iIsObjectDeletedPtr = &isObjectDeleted; - - aDialogResponse = iWaitingDialog->RunLD(); - // Do not access local variable until isObjectDeleted - // value is checked first. "this" pointer may be invalid at this pointer. - - if ( isObjectDeleted ) - { - // this class is already deleted. Exit immediately. - return EFalse; - } - else - { - // iWaitingDialog->RunLD() returned with user response. - iIsObjectDeletedPtr = NULL; - iWaitingDialog = NULL; - - // Self-destruct as it is a "D" function. - delete this; - return ETrue; - } - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/src/diagresultdetailbasic.cpp --- a/devicediagnosticsfw/diagpluginbase/src/diagresultdetailbasic.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,378 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagResultDetailBasic -* -*/ - - -// CLASS DECLARATION -#include "diagresultdetailbasicitem.h" // CDiagResultDetailBasicItem - -// SYSTEM INCLUDE FILES -#include -#include // RBufReadStream / RBufWriteStream - -// USER INCLUDE FILES -#include "diagpluginbase.pan" // panic codes - - -// CONSTANTS -static const TInt KDiagResultDetailBasicBufferSize = 1024; - -// ======== LOCAL FUNCTIONS ======== -// --------------------------------------------------------------------------- -// Compares two items by order field id -// --------------------------------------------------------------------------- -// -static TInt CompareItemById( const CDiagResultDetailBasicItem& aFirst, - const CDiagResultDetailBasicItem& aSecond ) - { - return aFirst.FieldId() - aSecond.FieldId(); - } - -// ======== MEMBER FUNCTIONS ======== -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::CDiagResultDetailBasic() -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultDetailBasic::CDiagResultDetailBasic( - CDiagResultsDatabaseItem::TResult aResult ) - : iResult( aResult ) - { - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::~CDiagResultDetailBasic() -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultDetailBasic::~CDiagResultDetailBasic() - { - iFields.ResetAndDestroy(); - iFields.Close(); - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::BaseConstructL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultDetailBasic::BaseConstructL( RReadStream& aReadStream ) - { - InternalizeL( aReadStream ); - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::BaseConstructL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultDetailBasic::BaseConstructL( const CBufFlat& aBuf ) - { - // if empty buffer, do nothing. - if ( aBuf.Size() == 0 ) - { - return; - } - - RBufReadStream readStream; - - readStream.Open( aBuf, 0 ); - - InternalizeL( readStream ); - - readStream.Close(); - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::SetResult() -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultDetailBasic::SetResult( - CDiagResultsDatabaseItem::TResult aResult ) - { - iResult = aResult; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::SetValueL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultDetailBasic::SetValueL( TInt aFieldId, - const TDesC8& aFieldName, - TInt aValue ) - { - CDiagResultDetailBasicItem* newItem = CDiagResultDetailBasicItem::NewL( - aFieldId, - aFieldName, - aValue ); - - // no need to call clean up stack since ownership is - // transferred. - SetItemL( newItem ); - newItem = NULL; - } - - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::SetValueL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultDetailBasic::SetValueL( TInt aFieldId, - const TDesC8& aFieldName, - const TDesC8& aValue ) - - { - CDiagResultDetailBasicItem* newItem = CDiagResultDetailBasicItem::NewL( - aFieldId, - aFieldName, - aValue ); - - // no need to call clean up stack since ownership is - // transferred. - SetItemL( newItem ); - newItem = NULL; - } - - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::SetValueL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultDetailBasic::SetValueL( TInt aFieldId, - const TDesC8& aFieldName, - const TDesC16& aValue ) - - { - CDiagResultDetailBasicItem* newItem = CDiagResultDetailBasicItem::NewL( - aFieldId, - aFieldName, - aValue ); - - // no need to call clean up stack since ownership is - // transferred. - SetItemL( newItem ); - newItem = NULL; - } - - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::GetValue -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CDiagResultDetailBasic::GetValue( TInt aFieldId, - TInt& aValue ) const - { - TInt itemIndex = FindItem( aFieldId ); - - if ( itemIndex < 0 ) - { - // item not found - return KErrNotFound; - } - - return iFields[itemIndex]->GetValue( aValue ); - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::GetValueL -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CDiagResultDetailBasic::GetValue( TInt aFieldId, - TPtrC8& aValue ) const - { - TInt itemIndex = FindItem( aFieldId ); - - if ( itemIndex < 0 ) - { - // item not found - return KErrNotFound; - } - - return iFields[itemIndex]->GetValue( aValue ); - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::GetValueL -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CDiagResultDetailBasic::GetValue( TInt aFieldId, - TPtrC16& aValue ) const - { - TInt itemIndex = FindItem( aFieldId ); - - if ( itemIndex < 0 ) - { - // item not found - return KErrNotFound; - } - - return iFields[itemIndex]->GetValue( aValue ); - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::InternalizeL -// --------------------------------------------------------------------------- -// -void CDiagResultDetailBasic::InternalizeL( RReadStream& aReadStream ) - { - iFields.ResetAndDestroy(); - - // Make sure that we are dealing with the correct version of data format. - TUint32 version = aReadStream.ReadUint32L(); - - if ( version != ( TUint32 )KDiagResultDetailBasicVersion ) - { - User::Leave( KErrCorrupt ); - } - - // Read the number of items in the list. - TUint32 count = aReadStream.ReadUint32L(); - - // Read each item - for ( TUint i = 0; i < count; i++ ) - { - CDiagResultDetailBasicItem* newItem = - CDiagResultDetailBasicItem::NewL( aReadStream ); - - SetItemL( newItem ); // ownership passed. - } - } - - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::ExternalizeL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultDetailBasic::ExternalizeL( - RWriteStream& aWriteStream ) const - { - // write only if there is something to write.. - if ( iFields.Count() > 0 ) - { - aWriteStream.WriteUint32L( KDiagResultDetailBasicVersion ); - aWriteStream.WriteUint32L( iFields.Count() ); - - for ( TInt i = 0; i < iFields.Count(); i++ ) - { - iFields[i]->ExternalizeL( aWriteStream ); - } - } - } - - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::ExternalizeToBufferL -// --------------------------------------------------------------------------- -// -EXPORT_C CBufFlat* CDiagResultDetailBasic::ExternalizeToBufferL() const - { - CBufFlat* buffer = CBufFlat::NewL( KDiagResultDetailBasicBufferSize ); - - CleanupStack::PushL( buffer ); - - RBufWriteStream bufStream; - bufStream.Open( *buffer ); - - ExternalizeL( bufStream ); - - bufStream.CommitL(); - bufStream.Close(); - - CleanupStack::Pop( buffer ); - - return buffer; - } - - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::GetSupportedOutput -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultDetailBasic::GetSupportedOutput( - RArray& /* aOutputList */ ) const - { - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::IsOutputSupported -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CDiagResultDetailBasic::IsOutputSupported( - MDiagResultDetail::TOutputFormat /* aOutputFormat */ ) const - { - return EFalse; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::GetOutputL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultDetailBasic::GetOutputL( - MDiagResultDetail::TOutputFormat /* aOutputFormat */, - RBuf& /* aBuffer */ ) const - { - User::Leave( KErrNotSupported ); - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::CreateIconL -// --------------------------------------------------------------------------- -// -EXPORT_C CGulIcon* CDiagResultDetailBasic::CreateIconL() const - { - User::Leave( KErrNotSupported ); - return NULL; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::SetItemL -// --------------------------------------------------------------------------- -// -void CDiagResultDetailBasic::SetItemL( CDiagResultDetailBasicItem* aNewItem ) - { - // Check if an item with same field id already exists. - TInt itemIndex = FindItem( aNewItem->FieldId() ); - - if ( itemIndex >= 0 ) - { - // duplicate found. Remove old one. - CDiagResultDetailBasicItem* oldItem = iFields[itemIndex]; - iFields.Remove( itemIndex ); - delete oldItem; - } - - CleanupStack::PushL( aNewItem ); - TLinearOrder order( *CompareItemById ); - - // if a duplicate item is still found, leave. - User::LeaveIfError( iFields.InsertInOrder( aNewItem, order ) ); - CleanupStack::Pop( aNewItem ); - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasic::FindItem -// --------------------------------------------------------------------------- -// -TInt CDiagResultDetailBasic::FindItem( TInt aFieldId ) const - { - for ( TInt i = 0; i < iFields.Count(); i++ ) - { - if ( iFields[i]->FieldId() == aFieldId ) - { - return i; - } - } - return -1; - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/src/diagresultdetailbasicitem.cpp --- a/devicediagnosticsfw/diagpluginbase/src/diagresultdetailbasicitem.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,278 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagResultDetailBasicItem -* -*/ - - -// SYSTEM INCLUDE FILES -#include // RReadStream, RWriteStream - -// USER INCLUDE FILES -#include "diagresultdetailbasicitem.h" - -// CONSTANTS -const TInt KDiagResultDetailBasicMaxNameLen = 50; -const TInt KDiagResultDetailBasicMaxFieldValueLen = 1024; - -// ======== MEMBER FUNCTIONS ======== -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::NewL -// --------------------------------------------------------------------------- -// -CDiagResultDetailBasicItem* CDiagResultDetailBasicItem::NewL( - TInt aFieldId, - const TDesC8& aFieldName, - TInt aValue ) - { - CDiagResultDetailBasicItem* self = new( ELeave ) - CDiagResultDetailBasicItem(); - CleanupStack::PushL( self ); - - self->iFieldId = aFieldId; - self->iFieldName = aFieldName.AllocL(); - self->iFieldType = ETypeInt; - self->iValue.iInt = aValue; - - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::NewL -// --------------------------------------------------------------------------- -// -CDiagResultDetailBasicItem* CDiagResultDetailBasicItem::NewL( - TInt aFieldId, - const TDesC8& aFieldName, - const TDesC8& aValue ) - { - CDiagResultDetailBasicItem* self = new( ELeave ) - CDiagResultDetailBasicItem(); - CleanupStack::PushL( self ); - - self->iFieldId = aFieldId; - self->iFieldName = aFieldName.AllocL(); - self->iFieldType = ETypeDes8; - self->iValue.iBuffer8 = aValue.AllocL(); - - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::NewL -// --------------------------------------------------------------------------- -// -CDiagResultDetailBasicItem* CDiagResultDetailBasicItem::NewL( - TInt aFieldId, - const TDesC8& aFieldName, - const TDesC16& aValue ) - { - CDiagResultDetailBasicItem* self = new( ELeave ) - CDiagResultDetailBasicItem(); - CleanupStack::PushL( self ); - - self->iFieldId = aFieldId; - self->iFieldName = aFieldName.AllocL(); - self->iFieldType = ETypeDes16; - self->iValue.iBuffer16 = aValue.AllocL(); - - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::NewL -// --------------------------------------------------------------------------- -// -CDiagResultDetailBasicItem* CDiagResultDetailBasicItem::NewL( - RReadStream& aReadStream ) - { - CDiagResultDetailBasicItem* self = new( ELeave ) - CDiagResultDetailBasicItem(); - CleanupStack::PushL( self ); - - self->InternalizeL( aReadStream ); - - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::CDiagResultDetailBasicItem -// --------------------------------------------------------------------------- -// -CDiagResultDetailBasicItem::CDiagResultDetailBasicItem() - { - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::~CDiagResultDetailBasicItem -// --------------------------------------------------------------------------- -// -CDiagResultDetailBasicItem::~CDiagResultDetailBasicItem() - { - delete iFieldName; - iFieldName = NULL; - - switch ( Type() ) - { - case ETypeDes16: - delete iValue.iBuffer16; - iValue.iBuffer16 = NULL; - break; - case ETypeDes8: - delete iValue.iBuffer8; - iValue.iBuffer8 = NULL; - break; - default: - // do nothing - break; - } - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::FieldId -// --------------------------------------------------------------------------- -// -TInt CDiagResultDetailBasicItem::FieldId() const - { - return iFieldId; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::FieldName -// --------------------------------------------------------------------------- -// -const TDesC8& CDiagResultDetailBasicItem::FieldName() const - { - return *iFieldName; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::Type -// --------------------------------------------------------------------------- -// -CDiagResultDetailBasicItem::TFieldType CDiagResultDetailBasicItem::Type() const - { - return iFieldType; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::GetValue -// --------------------------------------------------------------------------- -// -TInt CDiagResultDetailBasicItem::GetValue( TInt& aValue ) const - { - if ( Type() != ETypeInt ) - return KErrArgument; - - aValue = iValue.iInt; - return KErrNone; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::GetValue -// --------------------------------------------------------------------------- -// -TInt CDiagResultDetailBasicItem::GetValue( TPtrC8& aValue ) const - { - if ( Type() != ETypeDes8 ) - return KErrArgument; - - aValue.Set( iValue.iBuffer8->Des() ); - return KErrNone; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::GetValue -// --------------------------------------------------------------------------- -// -TInt CDiagResultDetailBasicItem::GetValue( TPtrC16& aValue ) const - { - if ( Type() != ETypeDes16 ) - return KErrArgument; - - - aValue.Set( iValue.iBuffer16->Des() ); - return KErrNone; - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::InternalizeL -// --------------------------------------------------------------------------- -// -void CDiagResultDetailBasicItem::InternalizeL( RReadStream& aReadStream ) - { - // first read id - iFieldId = aReadStream.ReadInt32L(); - - // read field Type - iFieldType = ( TFieldType ) aReadStream.ReadUint32L(); - - // read field name - iFieldName = HBufC8::NewL( aReadStream, KDiagResultDetailBasicMaxNameLen ); - - switch ( Type() ) - { - case ETypeInt: - iValue.iInt = aReadStream.ReadInt32L(); - break; - case ETypeDes16: - iValue.iBuffer16 = HBufC16::NewL( aReadStream, - KDiagResultDetailBasicMaxFieldValueLen ); - break; - case ETypeDes8: - iValue.iBuffer8 = HBufC8::NewL( aReadStream, - KDiagResultDetailBasicMaxFieldValueLen ); - break; - default: - User::Leave( KErrCorrupt ); - } - } - -// --------------------------------------------------------------------------- -// CDiagResultDetailBasicItem::ExternalizeL -// --------------------------------------------------------------------------- -// -void CDiagResultDetailBasicItem::ExternalizeL( RWriteStream& aWriteStream ) const - { - // first field id - aWriteStream.WriteInt32L( iFieldId ); - - // write field Type - aWriteStream.WriteUint32L( ( TUint )Type() ); - - // write field name - aWriteStream << FieldName(); - - switch ( Type() ) - { - case ETypeInt: - aWriteStream.WriteInt32L( iValue.iInt ); - break; - case ETypeDes16: - aWriteStream << *( iValue.iBuffer16 ); - break; - case ETypeDes8: - aWriteStream << *( iValue.iBuffer8 ); - break; - default: - User::Leave( KErrCorrupt ); - } - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/src/diagsuitepluginbase.cpp --- a/devicediagnosticsfw/diagpluginbase/src/diagsuitepluginbase.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,460 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagSuitePluginBase -* -*/ - - -// CLASS DECLARATION -#include // CDiagSuitePluginBase - -// SYSTEM INCLUDE FILES -#include // REComSession -#include // CCoeEnv::Static() -#include // StringLoader -#include // CDiagPluginConstructionParam -#include // TDiagSuiteExecParam -#include // MDiagSuiteObserver -#include // LOGSTRING -#include // CDiagPluginWaitingDialogWrapper - -// USER INCLUDE FILES -#include "diagpluginbaseutils.h" // DiagPluginBaseUtils -#include "diagpluginbase.pan" // Panic Codes - - -// LOCAL TYPES -/** -* Internal private data class for CDiagSuitePluginBase -*/ -class CDiagSuitePluginBase::TPrivateData - { -public: - /** - * C++ Constructor - * All variables must be initialized here since this does not derive from - * CBase. - * Note that this class does not manage memory. Instead it is left to - * CDiagSuitePluginBase class to allocate/free memory. - */ - TPrivateData( CCoeEnv& aCoeEnv ) - : iDtorIdKey( TUid::Null() ), - iWaitingDialogWrapper( NULL ), - iChildren(), - iPluginResourceLoader( aCoeEnv ) - { - } - -public: // data - /** - * ECOM Destructor key. - */ - TUid iDtorIdKey; - - /** - * Wrapper class for displaying waiting dialogs. - * Ownership: Shared. Normally, dialog will dismiss itself. However, - * if plug-in is being deleted, it can be deleted by the plug-in as well. - */ - CDiagPluginWaitingDialogWrapper* iWaitingDialogWrapper; - - /** - * Array of children. - */ - RPointerArray iChildren; - - /** - * Resource loader for derived class resource. - */ - RConeResourceLoader iPluginResourceLoader; - }; - - -// ======== LOCAL FUNCTIONS ======== -// --------------------------------------------------------------------------- -// Compares two plug-ins by order number. -// --------------------------------------------------------------------------- -// -static TInt ComparePluginByOrder( const MDiagPlugin& aFirst, - const MDiagPlugin& aSecond ) - { - return aFirst.Order() - aSecond.Order(); - } - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagSuitePluginBase::CDiagSuitePluginBase -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagSuitePluginBase::CDiagSuitePluginBase( - CDiagPluginConstructionParam* aParam ) - : CActive( EPriorityStandard ), - iConstructionParam( aParam ), - iCoeEnv( *CCoeEnv::Static() ) - { - } - -// --------------------------------------------------------------------------- -// CDiagSuitePluginBase::BaseConstructL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::BaseConstructL( const TDesC& aResourceFileName ) - { - iData = new ( ELeave ) TPrivateData( CoeEnv() ); - - DiagPluginBaseUtils::OpenResourceFileL( - aResourceFileName, iData->iPluginResourceLoader, CoeEnv().FsSession() ); - } - - -// --------------------------------------------------------------------------- -// CDiagSuitePluginBase::~CDiagSuitePluginBase -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagSuitePluginBase::~CDiagSuitePluginBase() - { - if ( iData ) - { - DismissWaitingDialog(); - iData->iChildren.Close(); - - if ( iData->iDtorIdKey != TUid::Null() ) - { - REComSession::DestroyedImplementation( iData->iDtorIdKey ); - } - - iData->iPluginResourceLoader.Close(); - - delete iData; - iData = NULL; - } - - delete iConstructionParam; - iConstructionParam = NULL; - } - -// --------------------------------------------------------------------------- -// from MDiagPlugin -// CDiagSuitePluginBase::ServiceLogicalName -// --------------------------------------------------------------------------- -// -EXPORT_C const TDesC& CDiagSuitePluginBase::ServiceLogicalName() const - { - return iConstructionParam->ServiceProvided(); - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagSuitePluginBase::GetLogicalDependenciesL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::GetLogicalDependenciesL( - CPtrCArray& aArray ) const - { - aArray.CopyL( iConstructionParam->ServicesRequired() ); - } - - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagSuitePluginBase::Type -// --------------------------------------------------------------------------- -// -EXPORT_C MDiagPlugin::TPluginType CDiagSuitePluginBase::Type() const - { - return ETypeSuitePlugin; - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagSuitePluginBase::CreateIconL -// --------------------------------------------------------------------------- -// -EXPORT_C CGulIcon* CDiagSuitePluginBase::CreateIconL() const - { - // Currently, GetTitleL() is not supported. - User::Leave( KErrNotSupported ); - return NULL; - } - - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagSuitePluginBase::IsSupported -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CDiagSuitePluginBase::IsSupported() const - { - return ETrue; - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagSuitePluginBase::ParentUid -// --------------------------------------------------------------------------- -// -EXPORT_C TUid CDiagSuitePluginBase::ParentUid() const - { - return iConstructionParam->ParentUid(); - } - - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagSuitePluginBase::SetDtorIdKey -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::SetDtorIdKey( TUid aDtorIdKey ) - { - LOGSTRING2( "CDiagTestPluginBase::SetDtorIdKey: New=0x%x", - aDtorIdKey.iUid ) - - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - - iData->iDtorIdKey = aDtorIdKey; - } - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagSuitePluginBase::GetTitleL -// --------------------------------------------------------------------------- -// -EXPORT_C HBufC* CDiagSuitePluginBase::GetTitleL() const - { - // Currently, GetTitleL() is not supported. - User::Leave( KErrNotSupported ); - return NULL; - } - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagSuitePluginBase::GetDescriptionL -// --------------------------------------------------------------------------- -// -EXPORT_C HBufC* CDiagSuitePluginBase::GetDescriptionL() const - { - // Currently, GetDescriptionL() is not supported. - User::Leave( KErrNotSupported ); - return NULL; - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagSuitePluginBase::CustomOperationL -// --------------------------------------------------------------------------- -// -EXPORT_C TAny* CDiagSuitePluginBase::CustomOperationL( TUid /*aUid*/, - TAny* /*aParam*/ ) - { - LOGSTRING( "CDiagTestPluginBase::CustomOperationL: KErrNotSupported" ) - User::Leave( KErrNotSupported ); - return NULL; - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagSuitePluginBase::GetCustomL -// --------------------------------------------------------------------------- -// -EXPORT_C TAny* CDiagSuitePluginBase::GetCustomL( TUid /* aUid */, - TAny* /*aParam*/ ) - { - LOGSTRING( "CDiagTestPluginBase::CustomOperationL: KErrNotSupported" ) - User::Leave( KErrNotSupported ); - return NULL; - } - -// --------------------------------------------------------------------------- -// From MDiagPlugin -// CDiagSuitePluginBase::Order -// --------------------------------------------------------------------------- -// -EXPORT_C TUint CDiagSuitePluginBase::Order() const - { - return iConstructionParam->Order(); - } - - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagSuitePluginBase::GetChildrenL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::GetChildrenL( RPointerArray& aChildren, - TSortOrder aOrder ) const - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( (aOrder == ENotSorted || aOrder == ESortByPosition), - Panic( EDiagPluginBasePanicBadArgument ) ); - - TInt count = iData->iChildren.Count(); - for ( TInt i = 0; i < count; i++ ) - { - aChildren.AppendL( iData->iChildren[i] ); - } - } - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagSuitePluginBase::AddChildL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::AddChildL( MDiagPlugin* aChild ) - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - - TLinearOrder order( *ComparePluginByOrder ); - User::LeaveIfError( iData->iChildren.InsertInOrderAllowRepeats( aChild, order ) ); - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagSuitePluginBase::TestSessionBeginL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::TestSessionBeginL( - MDiagEngineCommon& /* aEngine */, - TBool /* aSkipDependencyCheck */, - TAny* /* aCustomParams */ ) - { - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagSuitePluginBase::TestSessionEndL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::TestSessionEndL( - MDiagEngineCommon& /* aEngine */, - TBool /* aSkipDependencyCheck */, - TAny* /* aCustomParams */ ) - { - } - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagSuitePluginBase::PrepareExecutionL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::PrepareChildrenExecutionL( - TDiagSuiteExecParam* aParam, - TBool /* aSkipDependencyCheck */, - TBool /* aDependencyExecution */) - { - CleanupStack::PushL( aParam ); - aParam->Observer().ContinueExecutionL( *this ); - CleanupStack::PopAndDestroy ( aParam ); - } - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagSuitePluginBase::FinalizeExecutionL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::FinalizeChildrenExecutionL( - TDiagSuiteExecParam* aParam, - TBool /* aSkipDependencyCheck */, - TBool /* aDependencyExecution */ ) - { - CleanupStack::PushL( aParam ); - aParam->Observer().ContinueExecutionL( *this ); - CleanupStack::PopAndDestroy ( aParam ); - } - - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagSuitePluginBase::GetChildrenUidsL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::GetChildrenUidsL( RArray& aUids, - TSortOrder aOrder ) const - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( (aOrder == ENotSorted || aOrder == ESortByPosition), - Panic( EDiagPluginBasePanicBadArgument ) ); - - TInt count = iData->iChildren.Count(); - for ( TInt i = 0; i < count; i++ ) - { - aUids.AppendL( iData->iChildren[i]->Uid() ); - } - } - -// --------------------------------------------------------------------------- -// From MDiagSuitePlugin -// CDiagSuitePluginBase::ExecutionStopL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagSuitePluginBase::ExecutionStopL( TStopReason /* aReason */ ) - { - // Currently, GetTitleL() is not supported. - User::Leave( KErrNotSupported ); - } - - -// --------------------------------------------------------------------------- -// CDiagSuitePluginBase::RunWaitingDialogLD -// --------------------------------------------------------------------------- -EXPORT_C TBool CDiagSuitePluginBase::RunWaitingDialogL( CAknDialog* aDialog, - TInt& aDialogResponse ) - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - - // this function can display only one dialog at a time. - __ASSERT_ALWAYS( iData->iWaitingDialogWrapper == NULL, - Panic( EDiagPluginBasePanicDialogAlreadyUp ) ); - - iData->iWaitingDialogWrapper = CDiagPluginWaitingDialogWrapper::NewL( aDialog ); - - TBool isUserResonse = iData->iWaitingDialogWrapper->RunLD( aDialogResponse ); - - if ( isUserResonse ) - { - // local variable can be accessed only if it was returned due to - // user response. - iData->iWaitingDialogWrapper = NULL; - } - - return isUserResonse; - } - -// --------------------------------------------------------------------------- -// CDiagSuitePluginBase::DismissWaitingDialog -// --------------------------------------------------------------------------- -EXPORT_C void CDiagSuitePluginBase::DismissWaitingDialog() - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - - if ( iData->iWaitingDialogWrapper ) - { - LOGSTRING( "CDiagTestPluginBase::DismissWaitingDialog() Dialog dismissed." ) - delete iData->iWaitingDialogWrapper; - iData->iWaitingDialogWrapper = NULL; - } - } - -// --------------------------------------------------------------------------- -// CDiagSuitePluginBase::CoeEnv -// --------------------------------------------------------------------------- -// -EXPORT_C CCoeEnv& CDiagSuitePluginBase::CoeEnv() - { - return iCoeEnv; - } - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagpluginbase/src/diagtestpluginbase.cpp --- a/devicediagnosticsfw/diagpluginbase/src/diagtestpluginbase.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1049 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagTestPluginBase -* -*/ - - -// CLASS DECLARATION -#include - -// SYSTEM INCLUDE FILES -#include // CCoeEnv::Static() -#include // TDiagTestExecParam -#include // CDiagResultsDbItemBuilder -#include // MDiagTestObserver -#include // CDiagPluginConstructionParam -#include // LOGSTRING -#include // CDiagResultDetailBasic -#include // MDiagEngineCommon -#include // CDiagPluginPool -#include // RDiagResultsDatabase -#include // CDiagPluginWaitingDialogWrapper -#include // MDiagPluginExecPlan -#include // MDiagSuitePlugin -// ADO & Platformization Changes -#include // EAknSoftkeyYes - -// USER INCLUDE FILES -#include "diagpluginbaseutils.h" // DiagPluginBaseUtils -#include "diagpluginbase.pan" // Panic Codes - -// CONSTANTS - -// priority of result value. Entries that are earlier have higher priority -static const CDiagResultsDatabaseItem::TResult KResultPriority[] = - { - CDiagResultsDatabaseItem::EQueuedToRun, - CDiagResultsDatabaseItem::EDependencyFailed, - CDiagResultsDatabaseItem::EFailed, - CDiagResultsDatabaseItem::ECancelled, - CDiagResultsDatabaseItem::ESkipped, - CDiagResultsDatabaseItem::EInterrupted, - CDiagResultsDatabaseItem::EWatchdogCancel, - CDiagResultsDatabaseItem::ENotPerformed, - CDiagResultsDatabaseItem::ESuspended, - CDiagResultsDatabaseItem::ESuccess - }; - -static const TInt KResultPriorityCount = - sizeof( KResultPriority ) / sizeof( CDiagResultsDatabaseItem::TResult ); - -// LOCAL TYPES -class CDiagTestPluginBase::TPrivateData - { -public: // Constructor - // Note that this is not a C-class, and ALL member must be explicitly initialized. - TPrivateData( CCoeEnv& aCoeEnv ) - : iDtorIdKey( TUid::Null() ), - iPluginResourceLoader( aCoeEnv ), - iWaitingDialogWrapper( NULL ), - iResultBuilder( NULL ), - iExecParam( NULL ), - iCustomParam( NULL ), - iDependencyCheckSkipped( EFalse ), - iDependencyExecution( EFalse ), - iSinglePluginExecution( EFalse ), - iWatchdogResultType( CDiagResultsDatabaseItem::EWatchdogCancel ) - {} - -public: - /** - * ECOM Destructor key. - */ - TUid iDtorIdKey; - - /** - * Resource loader for derived class resource. - */ - RConeResourceLoader iPluginResourceLoader; - - /** - * Wrapper class for displaying waiting dialogs. - * Ownership: Shared. Normally, dialog will dismiss itself. However, - * if plug-in is being deleted, it can be deleted by the plug-in as well. - */ - CDiagPluginWaitingDialogWrapper* iWaitingDialogWrapper; - - /** - * Results Db Item Builder. This will be used to build the result db item. - * Owneship: this. - */ - CDiagResultsDbItemBuilder* iResultBuilder; - - /** - * Test execution parameter. - * Ownership: this. - */ - TDiagTestExecParam* iExecParam; - - /** - * Custom test execution parameter - * Ownership: Does not own. Owned by application. - */ - TAny* iCustomParam; - - /** - * This indicates whether this test session has skipped dependency check. - */ - TBool iDependencyCheckSkipped; - - /** - * This indicates whether this test is being executed to satisfy dependency. - */ - TBool iDependencyExecution; - - /** - * Indicates if the plugin is run as a single plugin - * or as a part of suite - */ - TBool iSinglePluginExecution; - - /** - * Result type to use when watchdog is timed out. - */ - CDiagResultsDatabaseItem::TResult iWatchdogResultType; - }; - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::CDiagTestPluginBase -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagTestPluginBase::CDiagTestPluginBase( - CDiagPluginConstructionParam* aParam ) - : CActive( EPriorityStandard ), - iConstructionParam( aParam ), - iCoeEnv ( *CCoeEnv::Static() ) - { - __ASSERT_ALWAYS( aParam, Panic( EDiagPluginBasePanicBadArgument ) ); - - CActiveScheduler::Add(this); - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::BaseConstructL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::BaseConstructL( const TDesC& aResourceFileName ) - { - iData = new ( ELeave ) TPrivateData( CoeEnv() ); - - DiagPluginBaseUtils::OpenResourceFileL( - aResourceFileName, iData->iPluginResourceLoader, CoeEnv().FsSession() ); - } - - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::~CDiagTestPluginBase -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagTestPluginBase::~CDiagTestPluginBase() - { - if ( iData ) - { - // In case test was still running, clean up. - // It takes care of: - // iData->iWaitingDialog - // iData->iIsDialogDismessedByUserResponsePtr - // iData->iResultBuilder - // iData->iExecParam - // It must be trapped, since it is part of object destruction. - TRAPD( err, StopAndCleanupL() ); - if ( err != KErrNone ) - { - /*LOGSTRING3( "CDiagTestPluginBase::~CDiagTestPluginBase(). " - L"StopAndCleaupL() failed Uid = 0x%08x , err = %d", - Uid(), - err );*/ - } - - // Call DestroyedImplementation only if it was set. - // SetDtorIdKey may not have been called if it is not actually an - // ECOM plug-in. - if ( iData->iDtorIdKey != TUid::Null() ) - { - REComSession::DestroyedImplementation( iData->iDtorIdKey ); - } - - iData->iPluginResourceLoader.Close(); - - delete iData; - iData = NULL; - } - - delete iConstructionParam; - iConstructionParam = NULL; - } - -// --------------------------------------------------------------------------- -// From CActive -// CDiagTestPluginBase::RunError -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CDiagTestPluginBase::RunError( TInt aError ) - { - LOGSTRING2( "CDiagTestPluginBase::RunError( %d )", aError ) - - // Check if we are executing a test. - if ( iData->iExecParam != NULL ) - { - // Catch error from CompleteTestL. If there is an error while calling - // CompleteTestL(), return the error to active scheduler. - aError = KErrNone; - TRAP( aError, CompleteTestL( CDiagResultsDatabaseItem::EFailed ) ); - } - - return aError; - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::GetServiceLogicalNameL -// --------------------------------------------------------------------------- -// -EXPORT_C const TDesC& CDiagTestPluginBase::ServiceLogicalName() const - { - return iConstructionParam->ServiceProvided(); - } - - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::GetLogicalDependenciesL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::GetLogicalDependenciesL( - CPtrCArray& aArray ) const - { - aArray.CopyL( iConstructionParam->ServicesRequired() ); - } - - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::Type -// --------------------------------------------------------------------------- -// -EXPORT_C MDiagPlugin::TPluginType CDiagTestPluginBase::Type() const - { - return ETypeTestPlugin; - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::CreateIconL -// --------------------------------------------------------------------------- -// -EXPORT_C CGulIcon* CDiagTestPluginBase::CreateIconL() const - { - return NULL; - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::IsSupported -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CDiagTestPluginBase::IsSupported() const - { - return ETrue; - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::ParentUid -// --------------------------------------------------------------------------- -// -EXPORT_C TUid CDiagTestPluginBase::ParentUid() const - { - return iConstructionParam->ParentUid(); - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::Order -// --------------------------------------------------------------------------- -// -EXPORT_C TUint CDiagTestPluginBase::Order() const - { - return iConstructionParam->Order(); - } - - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::SetDtorIdKey -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::SetDtorIdKey( TUid aDtorIdKey ) - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - LOGSTRING3( "CDiagTestPluginBase::SetDtorIdKey: Old=0x%x, New=0x%x", - iData->iDtorIdKey.iUid, aDtorIdKey.iUid ) - iData->iDtorIdKey = aDtorIdKey; - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::GetTitleL -// --------------------------------------------------------------------------- -// -EXPORT_C HBufC* CDiagTestPluginBase::GetTitleL() const - { - // Currently, GetTitleL() is not supported. - User::Leave( KErrNotSupported ); - return NULL; - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::GetDescriptionL -// --------------------------------------------------------------------------- -// -EXPORT_C HBufC* CDiagTestPluginBase::GetDescriptionL() const - { - // Currently, GetDescriptionL() is not supported. - User::Leave( KErrNotSupported ); - return NULL; - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::CustomOperationL -// --------------------------------------------------------------------------- -// -EXPORT_C TAny* CDiagTestPluginBase::CustomOperationL( TUid /* aUid */, - TAny* /* aParam */ ) - { - LOGSTRING( "CDiagTestPluginBase::CustomOperationL: KErrNotSupported" ) - User::Leave( KErrNotSupported ); - return NULL; - } - - - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::GetCustomL -// --------------------------------------------------------------------------- -// -EXPORT_C TAny* CDiagTestPluginBase::GetCustomL( TUid /* aUid*/, - TAny* /* aParam */ ) - { - LOGSTRING( "CDiagTestPluginBase::GetCustomL: KErrNotSupported" ) - User::Leave( KErrNotSupported ); - return NULL; - } - - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::TestSessionBeginL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::TestSessionBeginL( - MDiagEngineCommon& /* aEngine */, - TBool /* aSkipDependencyCheck */, - TAny* /* aCustomParams */ ) - { - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::TestSessionEndL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::TestSessionEndL( - MDiagEngineCommon& /* aEngine */, - TBool /* aSkipDependencyCheck */, - TAny* /* aCustomParams */ ) - { - } - -// --------------------------------------------------------------------------- -// From CDiagTestPluginBase -// CDiagTestPluginBase::RunTestL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::RunTestL( - TDiagTestExecParam* aExecParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution, - TAny* aCustomParam ) - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_DEBUG( iData->iExecParam == NULL, Panic( EDiagPluginBasePanicInternal ) ); - __ASSERT_DEBUG( iData->iResultBuilder == NULL, Panic( EDiagPluginBasePanicInternal ) ); - delete iData->iExecParam; - delete iData->iResultBuilder; - - iData->iExecParam = aExecParam; - iData->iCustomParam = aCustomParam; - iData->iDependencyCheckSkipped = aSkipDependencyCheck; - iData->iDependencyExecution = aDependencyExecution; - iData->iResultBuilder = CDiagResultsDbItemBuilder::NewL( Uid(), aDependencyExecution ); - ResetWatchdogToDefault(); - - // checking if this is a single test execution or not - iData->iSinglePluginExecution = - ( aExecParam->Engine().ExecutionPlanL().TestCount( EFalse ) == 1 ); - - // verify that dependencies are satisfied. - RArray* failedUids = NULL; - CDiagResultsDatabaseItem::TResult dependencyResult = CDiagResultsDatabaseItem::ESuccess; - - if ( !aSkipDependencyCheck ) - { - dependencyResult = VerifyDependenciesL( - aExecParam->Engine(), - failedUids ); - } - - if(dependencyResult == CDiagResultsDatabaseItem::ESuccess) - LOGSTRING( "This is to remove compiler warning"); - - - if ( failedUids ) - { - failedUids->Reset(); - failedUids->Close(); - delete failedUids; - failedUids = NULL; - } - DoRunTestL(); - /*if ( dependencyResult == CDiagResultsDatabaseItem::ESuccess ) - { - - } - else - { - // Create dependency failed test result and send it to engine. - // Note that we can't actually call CompleteTestL(), or StopAndCleanupL() - // here because we haven't actually called the derived class. - // So, reporting and clean up must be done manually. - - // Map dependent test result to what we should report. - switch ( dependencyResult ) - { - case CDiagResultsDatabaseItem::EFailed: - dependencyResult = CDiagResultsDatabaseItem::EDependencyFailed; - break; - - case CDiagResultsDatabaseItem::EWatchdogCancel: - case CDiagResultsDatabaseItem::ESkipped: - case CDiagResultsDatabaseItem::EInterrupted: - case CDiagResultsDatabaseItem::ENotPerformed: - dependencyResult = CDiagResultsDatabaseItem::EDependencySkipped; - break; - - default: - // no change is needed. - break; - } - - iData->iResultBuilder->SetTestCompleted( dependencyResult ); - - iData->iExecParam->Observer().TestExecutionCompletedL( *this, - iData->iResultBuilder->ToResultsDatabaseItemL() ); - - BaseStopAndCleanup(); - }*/ - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::ExecutionParam -// --------------------------------------------------------------------------- -// -EXPORT_C TDiagTestExecParam& CDiagTestPluginBase::ExecutionParam() - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iExecParam, Panic( EDiagPluginBasePanicInvalidState ) ); - return *(iData->iExecParam); - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::IsDependencyCheckSkipped -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CDiagTestPluginBase::IsDependencyCheckSkipped() const - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iExecParam, Panic( EDiagPluginBasePanicInvalidState ) ); - return iData->iDependencyCheckSkipped; - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::IsDependencyExecution -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CDiagTestPluginBase::IsDependencyExecution() const - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iExecParam, Panic( EDiagPluginBasePanicInvalidState ) ); - return iData->iDependencyExecution; - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::CustomParam -// --------------------------------------------------------------------------- -// -EXPORT_C TAny* CDiagTestPluginBase::CustomParam() const - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iExecParam, Panic( EDiagPluginBasePanicInvalidState ) ); - return iData->iCustomParam; - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::ResultsDbItemBuilder -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDbItemBuilder& CDiagTestPluginBase::ResultsDbItemBuilder() - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iResultBuilder, Panic( EDiagPluginBasePanicInvalidState ) ); - return *(iData->iResultBuilder); - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::ReportTestProgressL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::ReportTestProgressL( TUint aCurrentStep ) - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iExecParam, Panic( EDiagPluginBasePanicInvalidState ) ); - - iData->iExecParam->Observer().TestProgressL( *this, aCurrentStep ); - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::ResetWatchdog -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::ResetWatchdog( - TDiagEngineWatchdogTypes aWatchdogType, - CDiagResultsDatabaseItem::TResult aWatchdogResultType ) - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iExecParam, Panic( EDiagPluginBasePanicInvalidState ) ); - - LOGSTRING3( "CDiagTestPluginBase::ResetWatchdog() Type = %d, result = %d", - aWatchdogType, aWatchdogResultType ) - - iData->iWatchdogResultType = aWatchdogResultType; - iData->iExecParam->Engine().ResetWatchdog( aWatchdogType ); - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::ResetWatchdog -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::ResetWatchdog( - TInt aTimeToCompletion, - CDiagResultsDatabaseItem::TResult aWatchdogResultType ) - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iExecParam, Panic( EDiagPluginBasePanicInvalidState ) ); - - LOGSTRING3( "CDiagTestPluginBase::ResetWatchdog() time = %d, result = %d", - aTimeToCompletion, aWatchdogResultType ) - - iData->iWatchdogResultType = aWatchdogResultType; - iData->iExecParam->Engine().ResetWatchdog( aTimeToCompletion ); - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::ResetWatchdogToDefault -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::ResetWatchdogToDefault() - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iExecParam, Panic( EDiagPluginBasePanicInvalidState ) ); - - if ( RunMode() == EAutomatic ) - { - ResetWatchdog( EDiagEngineWatchdogTypeAutomatic, - CDiagResultsDatabaseItem::EWatchdogCancel ); - } - else - { - ResetWatchdog( EDiagEngineWatchdogTypeInteractive, - CDiagResultsDatabaseItem::EWatchdogCancel ); - } - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::CompleteTestL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::CompleteTestL( - CDiagResultsDatabaseItem::TResult aResult ) - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iResultBuilder, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iExecParam, Panic( EDiagPluginBasePanicInvalidState ) ); - - iData->iResultBuilder->SetTestCompleted( aResult ); - iData->iExecParam->Observer().TestExecutionCompletedL( *this, - iData->iResultBuilder->ToResultsDatabaseItemL() ); - - StopAndCleanupL(); - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::StopAndCleanupL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::StopAndCleanupL() - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - // Cancel active request - Cancel(); - - // Clean up only if it was already running. - if ( iData->iExecParam != NULL || iData->iResultBuilder != NULL ) - { - // allow derived class to clean up first. - DoStopAndCleanupL(); - - BaseStopAndCleanup(); - } - } - -// --------------------------------------------------------------------------- -// from MDiagTestPlugin -// CDiagTestPluginBase::ExecutionStopL -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem* CDiagTestPluginBase::ExecutionStopL( - MDiagTestPlugin::TStopReason aReason ) - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iResultBuilder, Panic( EDiagPluginBasePanicInvalidState ) ); - __ASSERT_ALWAYS( iData->iExecParam, Panic( EDiagPluginBasePanicInvalidState ) ); - - // Determine default reason. - CDiagResultsDatabaseItem::TResult result; - - if ( aReason == MDiagTestPlugin::EWatchdog ) - { - result = iData->iWatchdogResultType; - } - else - { - result = CDiagResultsDatabaseItem::EInterrupted; - } - - // Allow derived class to provide custom behavor - DoExecutionStopL( aReason, result ); - - iData->iResultBuilder->SetTestCompleted( result ); - - CDiagResultsDatabaseItem* dbItem = iData->iResultBuilder->ToResultsDatabaseItemL(); - - // Stop and clean up before returning to the engine. - CleanupStack::PushL( dbItem ); - StopAndCleanupL(); - CleanupStack::Pop( dbItem ); - - return dbItem; // ownership transfer - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::SuspendL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::SuspendL() - { - LOGSTRING( "CDiagTestPluginBase::SuspendL: KErrNotSupported" ) - User::Leave( KErrNotSupported ); - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::ResumeL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::ResumeL() - { - LOGSTRING( "CDiagTestPluginBase::ResumeL: KErrNotSupported" ) - User::Leave( KErrNotSupported ); - } - -// --------------------------------------------------------------------------- -// From MDiagTestPlugin -// CDiagTestPluginBase::CreateDetailL -// --------------------------------------------------------------------------- -EXPORT_C MDiagResultDetail* CDiagTestPluginBase::CreateDetailL( - const CDiagResultsDatabaseItem& aResult ) const - { - // Use basic version by default - return new( ELeave )CDiagResultDetailBasic( aResult.TestResult() ); - } - - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::DoExecutionStopL -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagTestPluginBase::DoExecutionStopL( - MDiagTestPlugin::TStopReason /* aReason */, - CDiagResultsDatabaseItem::TResult& /* aTestResult */ ) - { - // default implementation. Does nothing. - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::AreDependenciesSatisfiedL -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CDiagTestPluginBase::AreDependenciesSatisfiedL( - MDiagEngineCommon& aEngine, - RArray*& aFailedUids ) const - { - CDiagResultsDatabaseItem::TResult result = VerifyDependenciesL( aEngine, aFailedUids ); - - return result == CDiagResultsDatabaseItem::ESuccess; - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::VerifyDependenciesL -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem::TResult CDiagTestPluginBase::VerifyDependenciesL( - MDiagEngineCommon& aEngine, - RArray< TUid >*& aFailedUids ) const - { - // Create a failed uid list array - RArray* failedUids = new( ELeave )RArray(); - CleanupStack::PushL( failedUids ); // to delete array itself. - CleanupClosePushL( *failedUids ); // to call close. - - // First, convert dependency list to a plugin list - RPointerArray< MDiagTestPlugin > pluginList; - CleanupClosePushL( pluginList ); // destroy not needed since elements are not owned. - - // Expand suites. - GetAllDependentTestsL( aEngine, pluginList ); - - // Analyze result of each plug-in. - CDiagResultsDatabaseItem::TResult result = - SummarizeOverallTestResultsL( aEngine, pluginList, *failedUids ); - - CleanupStack::PopAndDestroy( &pluginList ); // pluginList.Close() - - if ( result == CDiagResultsDatabaseItem::ESuccess ) - { - __ASSERT_DEBUG( failedUids->Count() == 0, - Panic( EDiagPluginBasePanicInternal ) ); - CleanupStack::PopAndDestroy( failedUids ); // call close. - CleanupStack::PopAndDestroy( failedUids ); // delete RArray - failedUids = NULL; - } - else - { - __ASSERT_DEBUG( failedUids->Count() > 0, - Panic( EDiagPluginBasePanicInternal ) ); - CleanupStack::Pop( failedUids ); // call close. - CleanupStack::Pop( failedUids ); // delete RArray - } - - aFailedUids = failedUids; - - return result; - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::GetAllDependentTestsL -// --------------------------------------------------------------------------- -// -void CDiagTestPluginBase::GetAllDependentTestsL( - MDiagEngineCommon& aEngine, - RPointerArray< MDiagTestPlugin >& aPluginList ) const - { - TInt i = 0; - - // first create an array of dependent plug-ins. - RPointerArray< MDiagPlugin > mixedPluginList; - CleanupClosePushL( mixedPluginList ); // to call close. - - CPtrCArray* dependencyList = new( ELeave )CPtrCArray( 1 ); - CleanupStack::PushL( dependencyList ); - GetLogicalDependenciesL( *dependencyList ); - - TInt count = dependencyList->Count(); - for ( i = 0; i < count; i++ ) - { - MDiagPlugin* plugin = NULL; - User::LeaveIfError( aEngine.PluginPool().FindPlugin( ( *dependencyList )[i], plugin ) ); - mixedPluginList.AppendL( plugin ); - } - - CleanupStack::PopAndDestroy( dependencyList ); - dependencyList = NULL; - - // expand suites into tests. - i = 0; - while ( i < mixedPluginList.Count() ) - { - if ( mixedPluginList[i]->Type() == ETypeTestPlugin ) - { - // test plug-in. move to next item. - aPluginList.AppendL( static_cast< MDiagTestPlugin* >( mixedPluginList[i] ) ); - i++; - } - else - { - // suite. remove and replace them with its children. - MDiagSuitePlugin& suitePlugin = - static_cast< MDiagSuitePlugin& >( *mixedPluginList[i] ); - - mixedPluginList.Remove( i ); - - RPointerArray children; - CleanupClosePushL( children ); // destroy not needed since ownership not transferred. - - suitePlugin.GetChildrenL( children, MDiagSuitePlugin::ESortByPosition ); - - TInt childCount = children.Count(); - for ( TInt childIndex = 0; childIndex < childCount; childIndex++ ) - { - mixedPluginList.InsertL( children[childIndex], i + childIndex ); - } - - CleanupStack::PopAndDestroy( &children ); // children.Close() - // do not increment 'i' to allow re-examination of item just inserted. - } - } - - CleanupStack::PopAndDestroy( &mixedPluginList ); // mixedPluginList.Close() - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::SummarizeOverallTestResultsL -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem::TResult CDiagTestPluginBase::SummarizeOverallTestResultsL( - MDiagEngineCommon& aEngine, - const RPointerArray< MDiagTestPlugin >& aPluginList, - RArray< TUid >& aFailedUidList ) const - { - // Check result of each item. - // and the result will override it. - // by default, we start with ESuccess. - CDiagResultsDatabaseItem::TResult result = CDiagResultsDatabaseItem::ESuccess; - TInt pluginListCount = aPluginList.Count(); - for ( TInt i = 0; i < pluginListCount; i++ ) - { - MDiagTestPlugin& plugin = *( aPluginList[i] ); - - CDiagResultsDatabaseItem* resultItem = NULL; - TInt err = aEngine.DbRecord().GetTestResult( plugin.Uid(), resultItem ); - - // KErrNotFound is acceptable. - if ( err != KErrNone && err != KErrNotFound ) - { - delete resultItem; - User::Leave( err ); - } - - CDiagResultsDatabaseItem::TResult newResult; - if ( resultItem == NULL ) - { - newResult = CDiagResultsDatabaseItem::EQueuedToRun; - } - else - { - newResult = resultItem->TestResult(); - } - - delete resultItem; - resultItem = NULL; - - // add items to failed list if not successful. - if ( newResult != CDiagResultsDatabaseItem::ESuccess ) - { - LOGSTRING3( "CDiagTestPluginBase::SummarizeOverallTestResultsL(): " - L"Failed test 0x%08x, result = %d", - plugin.Uid().iUid, - newResult ) - aFailedUidList.AppendL( plugin.Uid() ); - } - - // update to new result based on result priority. - // check for condition where newResult == result. If they are equal - // there is no reason to run the loop. - for ( TInt priorityIndex = 0; - priorityIndex < KResultPriorityCount && newResult != result; - priorityIndex++ ) - { - if ( KResultPriority[priorityIndex] == newResult ) - { - result = newResult; - } - } - } - - LOGSTRING3( "CDiagTestPluginBase::SummarizeOverallTestResultsL(): " - L"Plugin 0x%08x Overall depencency result = %d", - Uid().iUid, - result ) - return result; - } - - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::RunWaitingDialogL -// --------------------------------------------------------------------------- -EXPORT_C TBool CDiagTestPluginBase::RunWaitingDialogL( CAknDialog* aDialog, - TInt& aDialogResponse ) - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - - // this function can display only one dialog at a time. - __ASSERT_ALWAYS( iData->iWaitingDialogWrapper == NULL, - Panic( EDiagPluginBasePanicDialogAlreadyUp ) ); - - iData->iWaitingDialogWrapper = CDiagPluginWaitingDialogWrapper::NewL( aDialog ); - - TBool isUserResonse = iData->iWaitingDialogWrapper->RunLD( aDialogResponse ); - - if ( isUserResonse ) - { - // local variable can be accessed only if it was returned due to - // user response. - iData->iWaitingDialogWrapper = NULL; - } - - return isUserResonse; - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::DismissWaitingDialog -// --------------------------------------------------------------------------- -EXPORT_C void CDiagTestPluginBase::DismissWaitingDialog() - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - - if ( iData->iWaitingDialogWrapper ) - { - LOGSTRING( "CDiagTestPluginBase::DismissWaitingDialog() Dialog dismissed." ) - delete iData->iWaitingDialogWrapper; - iData->iWaitingDialogWrapper = NULL; - } - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::CoeEnv -// --------------------------------------------------------------------------- -// -EXPORT_C CCoeEnv& CDiagTestPluginBase::CoeEnv() - { - return iCoeEnv; - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::SinglePluginExecution -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CDiagTestPluginBase::SinglePluginExecution() const - { - __ASSERT_ALWAYS( iData, Panic( EDiagPluginBasePanicInvalidState ) ); - return iData->iSinglePluginExecution; - } - -// --------------------------------------------------------------------------- -// CDiagTestPluginBase::BaseStopAndCleanup -// --------------------------------------------------------------------------- -// -void CDiagTestPluginBase::BaseStopAndCleanup() - { - DismissWaitingDialog(); - - delete iData->iResultBuilder; - iData->iResultBuilder = NULL; - - delete iData->iExecParam; - iData->iExecParam = NULL; - - iData->iCustomParam = NULL; - } - -// ADO & Platformization Changes -/* - -// --------------------------------------------------------------------------- -// CDiagSpeakerPlugin::AskCancelExecutionL -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CDiagTestPluginBase::AskCancelExecutionL( TInt& aButtonId ) - { - LOGSTRING( "CDiagTestPluginBase::AskCancelExecutionL() IN" ) - - CAknDialog* dialog; - TBool result; - - // set softkey for single execution - if ( !SinglePluginExecution() ) - { - // Create common dialog by invoking Engine - dialog = ExecutionParam().Engine(). - CreateCommonDialogLC( EDiagCommonDialogConfirmCancelAll, NULL ); - - // Launch dialog and get result from it - result = RunWaitingDialogL( dialog, aButtonId ); - } - else - { - CompleteTestL( CDiagResultsDatabaseItem::ECancelled ); - aButtonId = EAknSoftkeyYes; - return ETrue; - } - - LOGSTRING3( "CDiagTestPluginBase::AskCancelExecutionL() OUT aButtonId=%d result=%d", aButtonId, result ) - return result; - } - */ -// End of File - - - - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/bwins/diagresultsdatabase.def --- a/devicediagnosticsfw/diagresultsdb/client/bwins/diagresultsdatabase.def Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -EXPORTS - ??0RDiagResultsDatabase@@QAE@XZ @ 1 NONAME ; RDiagResultsDatabase::RDiagResultsDatabase(void) - ??0RDiagResultsDatabaseRecord@@QAE@XZ @ 2 NONAME ; RDiagResultsDatabaseRecord::RDiagResultsDatabaseRecord(void) - ??0TDiagResultsDatabaseTestRecordInfo@@QAE@XZ @ 3 NONAME ; TDiagResultsDatabaseTestRecordInfo::TDiagResultsDatabaseTestRecordInfo(void) - ??0TDiagResultsDbRecordInfoArrayPacked@@QAE@AAPAVCBufFlat@@@Z @ 4 NONAME ; TDiagResultsDbRecordInfoArrayPacked::TDiagResultsDbRecordInfoArrayPacked(class CBufFlat * &) - ??1CDiagResultsDatabaseItem@@UAE@XZ @ 5 NONAME ; CDiagResultsDatabaseItem::~CDiagResultsDatabaseItem(void) - ??1CDiagResultsDbRecordEngineParam@@UAE@XZ @ 6 NONAME ; CDiagResultsDbRecordEngineParam::~CDiagResultsDbRecordEngineParam(void) - ??1RDiagResultsDatabase@@QAE@XZ @ 7 NONAME ; RDiagResultsDatabase::~RDiagResultsDatabase(void) - ??1RDiagResultsDatabaseRecord@@QAE@XZ @ 8 NONAME ; RDiagResultsDatabaseRecord::~RDiagResultsDatabaseRecord(void) - ?CancelInitiateGetLastResults@RDiagResultsDatabase@@QBEXXZ @ 9 NONAME ; void RDiagResultsDatabase::CancelInitiateGetLastResults(void) const - ?CancelLogTestResult@RDiagResultsDatabaseRecord@@QBEXXZ @ 10 NONAME ; void RDiagResultsDatabaseRecord::CancelLogTestResult(void) const - ?Close@RDiagResultsDatabase@@QAEHXZ @ 11 NONAME ; int RDiagResultsDatabase::Close(void) - ?Close@RDiagResultsDatabaseRecord@@QAEXXZ @ 12 NONAME ; void RDiagResultsDatabaseRecord::Close(void) - ?Connect@RDiagResultsDatabase@@QAEHVTUid@@@Z @ 13 NONAME ; int RDiagResultsDatabase::Connect(class TUid) - ?Connect@RDiagResultsDatabaseRecord@@QAEHAAVRDiagResultsDatabase@@VTUid@@H@Z @ 14 NONAME ; int RDiagResultsDatabaseRecord::Connect(class RDiagResultsDatabase &, class TUid, int) - ?CreateNewRecord@RDiagResultsDatabaseRecord@@QAEHAAVRDiagResultsDatabase@@AAVTUid@@AAVCDiagResultsDbRecordEngineParam@@@Z @ 15 NONAME ; int RDiagResultsDatabaseRecord::CreateNewRecord(class RDiagResultsDatabase &, class TUid &, class CDiagResultsDbRecordEngineParam &) - ?DRMTimeL@TDiagResultsDatabaseTestRecordInfo@@SA?AVTTime@@XZ @ 16 NONAME ; class TTime TDiagResultsDatabaseTestRecordInfo::DRMTimeL(void) - ?DependencyExecution@CDiagResultsDbRecordEngineParam@@QBEHXZ @ 17 NONAME ; int CDiagResultsDbRecordEngineParam::DependencyExecution(void) const - ?DetailsData@CDiagResultsDatabaseItem@@QBEPBVCBufFlat@@XZ @ 18 NONAME ; class CBufFlat const * CDiagResultsDatabaseItem::DetailsData(void) const - ?ExecutionsUidArray@CDiagResultsDbRecordEngineParam@@QBEABV?$RArray@VTUid@@@@XZ @ 19 NONAME ; class RArray const & CDiagResultsDbRecordEngineParam::ExecutionsUidArray(void) const - ?ExternalizeL@CDiagResultsDatabaseItem@@QBEXAAVRWriteStream@@@Z @ 20 NONAME ; void CDiagResultsDatabaseItem::ExternalizeL(class RWriteStream &) const - ?ExternalizeL@CDiagResultsDbRecordEngineParam@@QBEXAAVRWriteStream@@@Z @ 21 NONAME ; void CDiagResultsDbRecordEngineParam::ExternalizeL(class RWriteStream &) const - ?ExternalizeL@TDiagResultsDatabaseTestRecordInfo@@QBEXAAVRWriteStream@@@Z @ 22 NONAME ; void TDiagResultsDatabaseTestRecordInfo::ExternalizeL(class RWriteStream &) const - ?GetAllRecordInfos@RDiagResultsDatabase@@QAEHAAV?$CArrayFixFlat@VTDiagResultsDatabaseTestRecordInfo@@@@@Z @ 23 NONAME ; int RDiagResultsDatabase::GetAllRecordInfos(class CArrayFixFlat &) - ?GetDatabaseMaximumSize@RDiagResultsDatabase@@SAHAAH@Z @ 24 NONAME ; int RDiagResultsDatabase::GetDatabaseMaximumSize(int &) - ?GetEngineParam@RDiagResultsDatabaseRecord@@QBEHAAPAVCDiagResultsDbRecordEngineParam@@@Z @ 25 NONAME ; int RDiagResultsDatabaseRecord::GetEngineParam(class CDiagResultsDbRecordEngineParam * &) const - ?GetLastNotCompletedRecord@RDiagResultsDatabase@@QBEHAAVTUid@@@Z @ 26 NONAME ; int RDiagResultsDatabase::GetLastNotCompletedRecord(class TUid &) const - ?GetLastRecord@RDiagResultsDatabase@@QBEHAAVTUid@@@Z @ 27 NONAME ; int RDiagResultsDatabase::GetLastRecord(class TUid &) const - ?GetLastResult@RDiagResultsDatabase@@QAEHAAPAVCDiagResultsDatabaseItem@@@Z @ 28 NONAME ; int RDiagResultsDatabase::GetLastResult(class CDiagResultsDatabaseItem * &) - ?GetLastResults@RDiagResultsDatabase@@QBEHAAV?$RPointerArray@VCDiagResultsDatabaseItem@@@@@Z @ 29 NONAME ; int RDiagResultsDatabase::GetLastResults(class RPointerArray &) const - ?GetRecordCount@RDiagResultsDatabase@@QBEHAAI@Z @ 30 NONAME ; int RDiagResultsDatabase::GetRecordCount(unsigned int &) const - ?GetRecordInfo@RDiagResultsDatabaseRecord@@QBEHAAVTDiagResultsDatabaseTestRecordInfo@@@Z @ 31 NONAME ; int RDiagResultsDatabaseRecord::GetRecordInfo(class TDiagResultsDatabaseTestRecordInfo &) const - ?GetRecordUids@RDiagResultsDatabase@@QBEHAAV?$CArrayFixFlat@VTUid@@@@@Z @ 32 NONAME ; int RDiagResultsDatabase::GetRecordUids(class CArrayFixFlat &) const - ?GetStatus@RDiagResultsDatabaseRecord@@QBEHAAW4TRecordStatus@1@@Z @ 33 NONAME ; int RDiagResultsDatabaseRecord::GetStatus(enum RDiagResultsDatabaseRecord::TRecordStatus &) const - ?GetTestRecordId@RDiagResultsDatabaseRecord@@QBEHAAVTUid@@@Z @ 34 NONAME ; int RDiagResultsDatabaseRecord::GetTestRecordId(class TUid &) const - ?GetTestResult@RDiagResultsDatabaseRecord@@QBEHVTUid@@AAPAVCDiagResultsDatabaseItem@@@Z @ 35 NONAME ; int RDiagResultsDatabaseRecord::GetTestResult(class TUid, class CDiagResultsDatabaseItem * &) const - ?GetTestResults@RDiagResultsDatabaseRecord@@QBEHAAV?$RPointerArray@VCDiagResultsDatabaseItem@@@@@Z @ 36 NONAME ; int RDiagResultsDatabaseRecord::GetTestResults(class RPointerArray &) const - ?GetTestUids@RDiagResultsDatabaseRecord@@QBEHAAV?$CArrayFixFlat@VTUid@@@@@Z @ 37 NONAME ; int RDiagResultsDatabaseRecord::GetTestUids(class CArrayFixFlat &) const - ?InitiateGetLastResult@RDiagResultsDatabase@@QAEXVTUid@@AAVTRequestStatus@@@Z @ 38 NONAME ; void RDiagResultsDatabase::InitiateGetLastResult(class TUid, class TRequestStatus &) - ?InitiateGetLastResults@RDiagResultsDatabase@@QAEXABV?$CArrayFixFlat@VTUid@@@@AAVTRequestStatus@@@Z @ 39 NONAME ; void RDiagResultsDatabase::InitiateGetLastResults(class CArrayFixFlat const &, class TRequestStatus &) - ?InternalizeL@CDiagResultsDatabaseItem@@AAEXAAVRReadStream@@@Z @ 40 NONAME ; void CDiagResultsDatabaseItem::InternalizeL(class RReadStream &) - ?InternalizeL@CDiagResultsDbRecordEngineParam@@AAEXAAVRReadStream@@@Z @ 41 NONAME ; void CDiagResultsDbRecordEngineParam::InternalizeL(class RReadStream &) - ?InternalizeL@TDiagResultsDatabaseTestRecordInfo@@QAEXAAVRReadStream@@@Z @ 42 NONAME ; void TDiagResultsDatabaseTestRecordInfo::InternalizeL(class RReadStream &) - ?IsSuspended@RDiagResultsDatabaseRecord@@QBEHAAH@Z @ 43 NONAME ; int RDiagResultsDatabaseRecord::IsSuspended(int &) const - ?IsTestCompleted@RDiagResultsDatabaseRecord@@QBEHAAH@Z @ 44 NONAME ; int RDiagResultsDatabaseRecord::IsTestCompleted(int &) const - ?LogTestResult@RDiagResultsDatabaseRecord@@QAEHAAVTRequestStatus@@ABVCDiagResultsDatabaseItem@@@Z @ 45 NONAME ; int RDiagResultsDatabaseRecord::LogTestResult(class TRequestStatus &, class CDiagResultsDatabaseItem const &) - ?NewL@CDiagResultsDatabaseItem@@SAPAV1@AAVRReadStream@@@Z @ 46 NONAME ; class CDiagResultsDatabaseItem * CDiagResultsDatabaseItem::NewL(class RReadStream &) - ?NewL@CDiagResultsDatabaseItem@@SAPAV1@ABV1@@Z @ 47 NONAME ; class CDiagResultsDatabaseItem * CDiagResultsDatabaseItem::NewL(class CDiagResultsDatabaseItem const &) - ?NewL@CDiagResultsDatabaseItem@@SAPAV1@VTUid@@HW4TResult@1@VTTime@@2PAVCBufFlat@@@Z @ 48 NONAME ; class CDiagResultsDatabaseItem * CDiagResultsDatabaseItem::NewL(class TUid, int, enum CDiagResultsDatabaseItem::TResult, class TTime, class TTime, class CBufFlat *) - ?NewL@CDiagResultsDbRecordEngineParam@@SAPAV1@AAVRReadStream@@@Z @ 49 NONAME ; class CDiagResultsDbRecordEngineParam * CDiagResultsDbRecordEngineParam::NewL(class RReadStream &) - ?NewL@CDiagResultsDbRecordEngineParam@@SAPAV1@PAV?$RArray@VTUid@@@@H@Z @ 50 NONAME ; class CDiagResultsDbRecordEngineParam * CDiagResultsDbRecordEngineParam::NewL(class RArray *, int) - ?NewLC@CDiagResultsDatabaseItem@@SAPAV1@VTUid@@HW4TResult@1@VTTime@@2PAVCBufFlat@@@Z @ 51 NONAME ; class CDiagResultsDatabaseItem * CDiagResultsDatabaseItem::NewLC(class TUid, int, enum CDiagResultsDatabaseItem::TResult, class TTime, class TTime, class CBufFlat *) - ?NewLC@CDiagResultsDbRecordEngineParam@@SAPAV1@PAV?$RArray@VTUid@@@@H@Z @ 52 NONAME ; class CDiagResultsDbRecordEngineParam * CDiagResultsDbRecordEngineParam::NewLC(class RArray *, int) - ?PackArrayL@TDiagResultsDbRecordInfoArrayPacked@@QAEXABV?$CArrayFixFlat@VTDiagResultsDatabaseTestRecordInfo@@@@@Z @ 53 NONAME ; void TDiagResultsDbRecordInfoArrayPacked::PackArrayL(class CArrayFixFlat const &) - ?Size@CDiagResultsDatabaseItem@@QBEHXZ @ 54 NONAME ; int CDiagResultsDatabaseItem::Size(void) const - ?Suspend@RDiagResultsDatabaseRecord@@QAEHXZ @ 55 NONAME ; int RDiagResultsDatabaseRecord::Suspend(void) - ?TestCompleted@RDiagResultsDatabaseRecord@@QAEHH@Z @ 56 NONAME ; int RDiagResultsDatabaseRecord::TestCompleted(int) - ?TestResult@CDiagResultsDatabaseItem@@QBE?AW4TResult@1@XZ @ 57 NONAME ; enum CDiagResultsDatabaseItem::TResult CDiagResultsDatabaseItem::TestResult(void) const - ?TestUid@CDiagResultsDatabaseItem@@QBE?AVTUid@@XZ @ 58 NONAME ; class TUid CDiagResultsDatabaseItem::TestUid(void) const - ?TimeCompleted@CDiagResultsDatabaseItem@@QBE?AVTTime@@XZ @ 59 NONAME ; class TTime CDiagResultsDatabaseItem::TimeCompleted(void) const - ?TimeStarted@CDiagResultsDatabaseItem@@QBE?AVTTime@@XZ @ 60 NONAME ; class TTime CDiagResultsDatabaseItem::TimeStarted(void) const - ?UnpackArrayL@TDiagResultsDbRecordInfoArrayPacked@@QAEXAAV?$CArrayFixFlat@VTDiagResultsDatabaseTestRecordInfo@@@@@Z @ 61 NONAME ; void TDiagResultsDbRecordInfoArrayPacked::UnpackArrayL(class CArrayFixFlat &) - ?Version@RDiagResultsDatabase@@QBE?AVTVersion@@XZ @ 62 NONAME ; class TVersion RDiagResultsDatabase::Version(void) const - ?WasDependency@CDiagResultsDatabaseItem@@QBEHXZ @ 63 NONAME ; int CDiagResultsDatabaseItem::WasDependency(void) const - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/eabi/diagresultsdatabase.def --- a/devicediagnosticsfw/diagresultsdb/client/eabi/diagresultsdatabase.def Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -EXPORTS - _ZN20RDiagResultsDatabase13GetLastResultERP24CDiagResultsDatabaseItem @ 1 NONAME - _ZN20RDiagResultsDatabase17GetAllRecordInfosER13CArrayFixFlatI34TDiagResultsDatabaseTestRecordInfoE @ 2 NONAME - _ZN20RDiagResultsDatabase21InitiateGetLastResultE4TUidR14TRequestStatus @ 3 NONAME - _ZN20RDiagResultsDatabase22GetDatabaseMaximumSizeERi @ 4 NONAME - _ZN20RDiagResultsDatabase22InitiateGetLastResultsERK13CArrayFixFlatI4TUidER14TRequestStatus @ 5 NONAME - _ZN20RDiagResultsDatabase5CloseEv @ 6 NONAME - _ZN20RDiagResultsDatabase7ConnectE4TUid @ 7 NONAME - _ZN20RDiagResultsDatabaseC1Ev @ 8 NONAME - _ZN20RDiagResultsDatabaseC2Ev @ 9 NONAME - _ZN20RDiagResultsDatabaseD1Ev @ 10 NONAME - _ZN20RDiagResultsDatabaseD2Ev @ 11 NONAME - _ZN24CDiagResultsDatabaseItem12InternalizeLER11RReadStream @ 12 NONAME - _ZN24CDiagResultsDatabaseItem4NewLE4TUidiNS_7TResultE5TTimeS2_P8CBufFlat @ 13 NONAME - _ZN24CDiagResultsDatabaseItem4NewLER11RReadStream @ 14 NONAME - _ZN24CDiagResultsDatabaseItem4NewLERKS_ @ 15 NONAME - _ZN24CDiagResultsDatabaseItem5NewLCE4TUidiNS_7TResultE5TTimeS2_P8CBufFlat @ 16 NONAME - _ZN24CDiagResultsDatabaseItemD0Ev @ 17 NONAME - _ZN24CDiagResultsDatabaseItemD1Ev @ 18 NONAME - _ZN24CDiagResultsDatabaseItemD2Ev @ 19 NONAME - _ZN26RDiagResultsDatabaseRecord13LogTestResultER14TRequestStatusRK24CDiagResultsDatabaseItem @ 20 NONAME - _ZN26RDiagResultsDatabaseRecord13TestCompletedEi @ 21 NONAME - _ZN26RDiagResultsDatabaseRecord15CreateNewRecordER20RDiagResultsDatabaseR4TUidR31CDiagResultsDbRecordEngineParam @ 22 NONAME - _ZN26RDiagResultsDatabaseRecord5CloseEv @ 23 NONAME - _ZN26RDiagResultsDatabaseRecord7ConnectER20RDiagResultsDatabase4TUidi @ 24 NONAME - _ZN26RDiagResultsDatabaseRecord7SuspendEv @ 25 NONAME - _ZN26RDiagResultsDatabaseRecordC1Ev @ 26 NONAME - _ZN26RDiagResultsDatabaseRecordC2Ev @ 27 NONAME - _ZN26RDiagResultsDatabaseRecordD1Ev @ 28 NONAME - _ZN26RDiagResultsDatabaseRecordD2Ev @ 29 NONAME - _ZN31CDiagResultsDbRecordEngineParam12InternalizeLER11RReadStream @ 30 NONAME - _ZN31CDiagResultsDbRecordEngineParam4NewLEP6RArrayI4TUidEi @ 31 NONAME - _ZN31CDiagResultsDbRecordEngineParam4NewLER11RReadStream @ 32 NONAME - _ZN31CDiagResultsDbRecordEngineParam5NewLCEP6RArrayI4TUidEi @ 33 NONAME - _ZN31CDiagResultsDbRecordEngineParamD0Ev @ 34 NONAME - _ZN31CDiagResultsDbRecordEngineParamD1Ev @ 35 NONAME - _ZN31CDiagResultsDbRecordEngineParamD2Ev @ 36 NONAME - _ZN34TDiagResultsDatabaseTestRecordInfo12InternalizeLER11RReadStream @ 37 NONAME - _ZN34TDiagResultsDatabaseTestRecordInfo8DRMTimeLEv @ 38 NONAME - _ZN34TDiagResultsDatabaseTestRecordInfoC1Ev @ 39 NONAME - _ZN34TDiagResultsDatabaseTestRecordInfoC2Ev @ 40 NONAME - _ZN35TDiagResultsDbRecordInfoArrayPacked10PackArrayLERK13CArrayFixFlatI34TDiagResultsDatabaseTestRecordInfoE @ 41 NONAME - _ZN35TDiagResultsDbRecordInfoArrayPacked12UnpackArrayLER13CArrayFixFlatI34TDiagResultsDatabaseTestRecordInfoE @ 42 NONAME - _ZN35TDiagResultsDbRecordInfoArrayPackedC1ERP8CBufFlat @ 43 NONAME - _ZN35TDiagResultsDbRecordInfoArrayPackedC2ERP8CBufFlat @ 44 NONAME - _ZNK20RDiagResultsDatabase13GetLastRecordER4TUid @ 45 NONAME - _ZNK20RDiagResultsDatabase13GetRecordUidsER13CArrayFixFlatI4TUidE @ 46 NONAME - _ZNK20RDiagResultsDatabase14GetLastResultsER13RPointerArrayI24CDiagResultsDatabaseItemE @ 47 NONAME - _ZNK20RDiagResultsDatabase14GetRecordCountERj @ 48 NONAME - _ZNK20RDiagResultsDatabase25GetLastNotCompletedRecordER4TUid @ 49 NONAME - _ZNK20RDiagResultsDatabase28CancelInitiateGetLastResultsEv @ 50 NONAME - _ZNK20RDiagResultsDatabase7VersionEv @ 51 NONAME - _ZNK24CDiagResultsDatabaseItem10TestResultEv @ 52 NONAME - _ZNK24CDiagResultsDatabaseItem11DetailsDataEv @ 53 NONAME - _ZNK24CDiagResultsDatabaseItem11TimeStartedEv @ 54 NONAME - _ZNK24CDiagResultsDatabaseItem12ExternalizeLER12RWriteStream @ 55 NONAME - _ZNK24CDiagResultsDatabaseItem13TimeCompletedEv @ 56 NONAME - _ZNK24CDiagResultsDatabaseItem13WasDependencyEv @ 57 NONAME - _ZNK24CDiagResultsDatabaseItem4SizeEv @ 58 NONAME - _ZNK24CDiagResultsDatabaseItem7TestUidEv @ 59 NONAME - _ZNK26RDiagResultsDatabaseRecord11GetTestUidsER13CArrayFixFlatI4TUidE @ 60 NONAME - _ZNK26RDiagResultsDatabaseRecord11IsSuspendedERi @ 61 NONAME - _ZNK26RDiagResultsDatabaseRecord13GetRecordInfoER34TDiagResultsDatabaseTestRecordInfo @ 62 NONAME - _ZNK26RDiagResultsDatabaseRecord13GetTestResultE4TUidRP24CDiagResultsDatabaseItem @ 63 NONAME - _ZNK26RDiagResultsDatabaseRecord14GetEngineParamERP31CDiagResultsDbRecordEngineParam @ 64 NONAME - _ZNK26RDiagResultsDatabaseRecord14GetTestResultsER13RPointerArrayI24CDiagResultsDatabaseItemE @ 65 NONAME - _ZNK26RDiagResultsDatabaseRecord15GetTestRecordIdER4TUid @ 66 NONAME - _ZNK26RDiagResultsDatabaseRecord15IsTestCompletedERi @ 67 NONAME - _ZNK26RDiagResultsDatabaseRecord19CancelLogTestResultEv @ 68 NONAME - _ZNK26RDiagResultsDatabaseRecord9GetStatusERNS_13TRecordStatusE @ 69 NONAME - _ZNK31CDiagResultsDbRecordEngineParam12ExternalizeLER12RWriteStream @ 70 NONAME - _ZNK31CDiagResultsDbRecordEngineParam18ExecutionsUidArrayEv @ 71 NONAME - _ZNK31CDiagResultsDbRecordEngineParam19DependencyExecutionEv @ 72 NONAME - _ZNK34TDiagResultsDatabaseTestRecordInfo12ExternalizeLER12RWriteStream @ 73 NONAME - _ZTI24CDiagResultsDatabaseItem @ 74 NONAME ; ## - _ZTI31CDiagResultsDbRecordEngineParam @ 75 NONAME ; ## - _ZTV24CDiagResultsDatabaseItem @ 76 NONAME ; ## - _ZTV31CDiagResultsDbRecordEngineParam @ 77 NONAME ; ## - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/group/bld.inf --- a/devicediagnosticsfw/diagresultsdb/client/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* -* Copyright (c) 2007 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: Build information file for Diagnostics Results Database -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - - -PRJ_EXPORTS - -PRJ_MMPFILES -diagresultsdatabase.mmp - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/group/diagresultsdatabase.mmp --- a/devicediagnosticsfw/diagresultsdb/client/group/diagresultsdatabase.mmp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2007 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: Project specification for DiagResultsDatabase.dll -* -*/ - - -//#include -#include - -TARGET diagresultsdatabase.dll -TARGETTYPE dll - -#ifndef RD_APPS_TO_EXES - TARGETPATH /system/libs -#endif - -UID 0x1000008d 0x10282CD8 - -CAPABILITY CAP_GENERAL_DLL -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE diagresultsdatabase.cpp -SOURCE diagresultsdatabaseItem.cpp -SOURCE diagresultsdbrecordinfoarraypacked.cpp -SOURCE diagresultsdatabasetestrecordInfo.cpp -SOURCE diagresultsdbrecordengineparam.cpp - - -USERINCLUDE ../inc -USERINCLUDE ../../common - -// System Include Paths -MW_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY estor.lib -LIBRARY drmserviceapi.lib -LIBRARY centralrepository.lib -LIBRARY flogger.lib -#if defined(WINSCW) - deffile ../bwins/diagresultsdatabase.def -#elif defined(ARM) - deffile ../EABI/DiagResultsDatabase.def -#endif - -nostrictdef diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/group/diagresultsdatabase.xml --- a/devicediagnosticsfw/diagresultsdb/client/group/diagresultsdatabase.xml Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2018 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -]> - - - - - WINSCW UDEB - - - - UserSourceTrees - - - AlwaysSearchUserPathstrue - InterpretDOSAndUnixPathsfalse - RequireFrameworkStyleIncludesfalse - SourceRelativeIncludesfalse - UserSearchPaths - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\inc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Common -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\BWINS -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\src -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - - SystemSearchPaths - -SearchPath -Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\oem -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\middleware -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\osextensions -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions\loc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware\loc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions\loc\sc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware\loc\sc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\release\winscw\UDEB -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -PathSymbian_Support\Win32-x86 Support\Libraries\Win32 SDK -PathFormatWindows -PathRootCodeWarrior -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -PathSymbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs -PathFormatWindows -PathRootCodeWarrior -Recursivefalse -FrameworkPathfalse -HostFlagsAll - - - - MWRuntimeSettings_WorkingDirectory - MWRuntimeSettings_CommandLine - MWRuntimeSettings_HostApplication - Pathepoc32\release\winscw\udeb\epoc.exe -PathFormatWindows -PathRoot2 SDKTube - - MWRuntimeSettings_EnvVars - - - LinkerSymbian Linker v2 - PreLinker - PostLinkerSymbian Installer v2 - TargetnameWINSCW UDEB - OutputDirectory - Pathepoc32\release\winscw\udeb -PathFormatWindows -PathRoot2 SDKTube - - SaveEntriesUsingRelativePathsfalse - - - FileMappings - - FileTypeTEXT - FileExtension._i - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension._ii - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.c - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cc - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cfg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.cia - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cpp - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cwlink - Compiler - EditLanguageXML - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cxx - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.def - Compiler - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.h - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.hrh - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.i - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.iby - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ii - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.inf - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ini - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.inl - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.loc - Compiler - EditLanguageC/C++ - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.mmpi - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.pch++ - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.pkg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.policy - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ra - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.resources - CompilerSymbian Resource v2 - EditLanguageXML - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.rh - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rls - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rss - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rsg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.s - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.script - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.txt - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileExtension.a - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.lib - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.dso - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.o - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - - - CacheModDatestrue - DumpBrowserInfofalse - CacheSubprojectstrue - UseThirdPartyDebuggerfalse - BrowserGenerator2 - DebuggerAppPath - Path - PathFormatGeneric - PathRootAbsolute - - DebuggerCmdLineArgs - DebuggerWorkingDir - Path - PathFormatGeneric - PathRootAbsolute - - CodeCompletionPrefixFileName - CodeCompletionMacroFileName - - - ConsoleEncoding0 - LogSystemMessagestrue - AutoTargetDLLsPopUp1 - StopAtWatchpointstrue - PauseWhileRunningfalse - PauseInterval5 - PauseUIFlags0 - AltExePath - Path - PathFormatWindows - PathRootAbsolute - - StopAtTempBPOnLaunchfalse - CacheSymbolicstrue - TempBPFunctionNameE32Main - TempBPType1 - - - Enabledfalse - ConnectionName - DownloadPath - LaunchRemoteAppfalse - RemoteAppPath - CoreID0 - JTAGClockSpeed8000 - IsMultiCorefalse - OSDownloadfalse - UseGlobalOSDownloadfalse - OSDownloadConnectionName - OSDownloadPath - AltDownloadfalse - AltDownloadConnectionName - - - MWDebugger_X86_Exceptions - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - OtherExecutables - - - AnalyzerConnectionName - - - CustomColor1 - Red0 - Green32767 - Blue0 - - CustomColor2 - Red0 - Green32767 - Blue0 - - CustomColor3 - Red0 - Green32767 - Blue0 - - CustomColor4 - Red0 - Green32767 - Blue0 - - - - ProcessorGeneric - BraekPoinType_II0 - UseInitFile0 - UseConfigFile0 - IDexecutable1 - IDinitialized1 - IDuninitialized0 - IDconstant1 - SDexecutable1 - SDinitialized1 - SDuninitialized0 - SDconstant1 - VerifyMemWrites0 - ShowMPC107regs0 - InitializationFile - ConfigurationFile - BreakpointType1 - WatchpointType1 - TargetOS1 - RTOSPluginName - ByteOrderType0 - CodeTest SYMBIAN Instrumenter - 0200020000000100000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000433A5C0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000637466696C657300000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000636F6465746573742E6964620000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000 - - - - SymbianInstallationOutputFilenameApplication.sis - SymbianInstallationOutputLocation - Path - PathFormatWindows - PathRootProject - - SymbianInstallationContentSearchLocation - Pathepoc32\release\winscw\udeb -PathFormatWindows -PathRoot2 SDKTube - - SymbianInstallationPassword - SymbianInstallationCreateStubFilefalse - - - SymbianInstallationOutputFilenameApplication.sis - SymbianInstallationOutputLocation - Path - PathFormatWindows - PathRootProject - - SymbianInstallationContentSearchLocation - Pathepoc32\release\winscw\udeb -PathFormatWindows -PathRoot2 SDKTube - - SymbianInstallationPassword - SymbianInstallationCreateStubFilefalse - - - SymbianResourcesMMPFileLocation - Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesBinaryOutputLocation - Pathepoc32\release\winscw\udeb -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesHeaderFileOutputLocation - Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube - - - - SymbianResourcesMMPFileLocation - Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesBinaryOutputLocation - Pathepoc32\release\winscw\udeb -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesHeaderFileOutputLocation - Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube - - - - FileList - - - ProcessorGeneric - UseInitFile0 - UseConfigFile0 - ResetTarget1 - InitializationFile - Path - PathFormatGeneric - PathRootAbsolute - - ConfigurationFile - Path - PathFormatGeneric - PathRootAbsolute - - TargetOS1 - RTOSPluginName - - - ShowCommandLinefalse - SymbianEpocToolsPath - Path -PathFormatWindows -PathRoot2 SDKTube - - - - PrefixFilefeature_settings.hrh - CompilerXMLDescriptorMetrowerks x86 Compiler - Macros__SYMBIAN32__,__CW32__,__WINS__,__WINSCW__,__DLL__,_DEBUG,_UNICODE,__SUPPORT_CPP_EXCEPTIONS__, - CodeTESTfalse - EnableSWICfalse - Arguments-wchar_t off -align 4 -warnings on -w nohidevirtual, nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -O0 -inline off -nostdinc - CIAArgs - - - Parse Log Filefalse - Log File Path - Path - PathFormatWindows - PathRootAbsolute - - Symbian SDK Folder - Path - PathFormatWindows - PathRootAbsolute - - Log Unresolved Modulesfalse - Log Unresolved Sym Filesfalse - Debug Non-XIP Executablesfalse - - - Start Address0x00000000 - Run From Start Addressfalse - Download Imagefalse - OS Image Path - Path - PathFormatWindows - PathRootAbsolute - - Download Address0x00000000 - Ask Firstfalse - Debug Bootromfalse - Bootrom Sym File - Path - PathFormatWindows - PathRootAbsolute - - - - LinkOutputFileDiagResultsDatabase.dll - LinkCmdLine - SymbianImportLibraryDiagResultsDatabase.lib - canDebugfalse - canRunfalse - - - CommandLinebuildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img - OutputPath - PathC:\ - PathFormatWindows - PathRootAbsolute - - DisplayMessagestrue - - - TargetArchitectureWINSCW - LogMessagesfalse - SuppressWarningsfalse - GenerateSymbolicsfalse - CompilerPrefix - CompilerCmdLine - SymbianImportLibraryPath - PathC:\ - PathFormatWindows - PathRootAbsolute - - - - Gnu Tools Path - PathC:\ - PathFormatWindows - PathRootAbsolute - - Epoc32 Tools Path - PathC:\ - PathFormatWindows - PathRootAbsolute - - - -NameDiagResultsDatabase.mmpWindowsText -NameDiagResultsDatabase.defWindowsText -NameEDLL.LIBWindowsLibraryDebug -NameDiagResultsDatabase.cppWindowsTextDebug -NameDiagResultsDatabaseItem.cppWindowsTextDebug -NameDiagResultsDbRecordInfoArrayPacked.cppWindowsTextDebug -NameDiagResultsDatabaseTestRecordInfo.cppWindowsTextDebug -NameDiagResultsDbRecordEngineParam.cppWindowsTextDebug -NameDiagResultsDatabase_UID_.cppWindowsText -Nameeuser.libWindowsLibraryDebug -Nameestor.libWindowsLibraryDebug -Namedrmserviceapi.libWindowsLibraryDebug -Namecentralrepository.libWindowsLibraryDebug -Nameflogger.libWindowsLibraryDebug -NameDiagResultsDatabase.hWindowsText -NameDiagResultsDatabaseCommon.hWindowsText -NameDiagResultsDatabaseItem.hWindowsText -NameDiagResultsDatabaseTestRecordInfo.hWindowsText -NameDiagResultsDbPrivateCRKeys.hWindowsText -NameDiagResultsDbRecordEngineParam.hWindowsText -NameDiagResultsDbRecordInfoArrayPacked.hWindowsText -NameDiagResultsDatabaseWINSCWUDEB.cwlinkWindowsText - - -NameDiagResultsDatabase.mmpWindows -NameDiagResultsDatabase.defWindows -NameEDLL.LIBWindows -NameDiagResultsDatabase.cppWindows -NameDiagResultsDatabaseItem.cppWindows -NameDiagResultsDbRecordInfoArrayPacked.cppWindows -NameDiagResultsDatabaseTestRecordInfo.cppWindows -NameDiagResultsDbRecordEngineParam.cppWindows -NameDiagResultsDatabase_UID_.cppWindows -Nameeuser.libWindows -Nameestor.libWindows -Namedrmserviceapi.libWindows -Namecentralrepository.libWindows -Nameflogger.libWindows -NameDiagResultsDatabase.hWindows -NameDiagResultsDatabaseCommon.hWindows -NameDiagResultsDatabaseItem.hWindows -NameDiagResultsDatabaseTestRecordInfo.hWindows -NameDiagResultsDbPrivateCRKeys.hWindows -NameDiagResultsDbRecordEngineParam.hWindows -NameDiagResultsDbRecordInfoArrayPacked.hWindows -NameDiagResultsDatabaseWINSCWUDEB.cwlinkWindows - - - WINSCW UREL - - - - UserSourceTrees - - - AlwaysSearchUserPathstrue - InterpretDOSAndUnixPathsfalse - RequireFrameworkStyleIncludesfalse - SourceRelativeIncludesfalse - UserSearchPaths - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\inc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Common -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\BWINS -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\src -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - - SystemSearchPaths - -SearchPath -Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\oem -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\middleware -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\osextensions -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions\loc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware\loc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions\loc\sc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware\loc\sc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\release\winscw\UREL -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\release\WINSCW\UDEB -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -PathSymbian_Support\Win32-x86 Support\Libraries\Win32 SDK -PathFormatWindows -PathRootCodeWarrior -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -PathSymbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs -PathFormatWindows -PathRootCodeWarrior -Recursivefalse -FrameworkPathfalse -HostFlagsAll - - - - MWRuntimeSettings_WorkingDirectory - MWRuntimeSettings_CommandLine - MWRuntimeSettings_HostApplication - Pathepoc32\release\winscw\urel\epoc.exe -PathFormatWindows -PathRoot2 SDKTube - - MWRuntimeSettings_EnvVars - - - LinkerSymbian Linker v2 - PreLinker - PostLinkerSymbian Installer v2 - TargetnameWINSCW UREL - OutputDirectory - Pathepoc32\release\winscw\urel -PathFormatWindows -PathRoot2 SDKTube - - SaveEntriesUsingRelativePathsfalse - - - FileMappings - - FileTypeTEXT - FileExtension._i - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension._ii - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.c - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cc - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cfg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.cia - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cpp - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cwlink - Compiler - EditLanguageXML - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cxx - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.def - Compiler - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.h - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.hrh - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.i - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.iby - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ii - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.inf - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ini - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.inl - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.loc - Compiler - EditLanguageC/C++ - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.mmpi - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.pch++ - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.pkg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.policy - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ra - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.resources - CompilerSymbian Resource v2 - EditLanguageXML - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.rh - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rls - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rss - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rsg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.s - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.script - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.txt - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileExtension.a - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.lib - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.dso - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.o - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - - - CacheModDatestrue - DumpBrowserInfofalse - CacheSubprojectstrue - UseThirdPartyDebuggerfalse - BrowserGenerator2 - DebuggerAppPath - Path - PathFormatGeneric - PathRootAbsolute - - DebuggerCmdLineArgs - DebuggerWorkingDir - Path - PathFormatGeneric - PathRootAbsolute - - CodeCompletionPrefixFileName - CodeCompletionMacroFileName - - - ConsoleEncoding0 - LogSystemMessagestrue - AutoTargetDLLsPopUp1 - StopAtWatchpointstrue - PauseWhileRunningfalse - PauseInterval5 - PauseUIFlags0 - AltExePath - Path - PathFormatWindows - PathRootAbsolute - - StopAtTempBPOnLaunchfalse - CacheSymbolicstrue - TempBPFunctionNameE32Main - TempBPType1 - - - Enabledfalse - ConnectionName - DownloadPath - LaunchRemoteAppfalse - RemoteAppPath - CoreID0 - JTAGClockSpeed8000 - IsMultiCorefalse - OSDownloadfalse - UseGlobalOSDownloadfalse - OSDownloadConnectionName - OSDownloadPath - AltDownloadfalse - AltDownloadConnectionName - - - MWDebugger_X86_Exceptions - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - OtherExecutables - - - AnalyzerConnectionName - - - CustomColor1 - Red0 - Green32767 - Blue0 - - CustomColor2 - Red0 - Green32767 - Blue0 - - CustomColor3 - Red0 - Green32767 - Blue0 - - CustomColor4 - Red0 - Green32767 - Blue0 - - - - ProcessorGeneric - BraekPoinType_II0 - UseInitFile0 - UseConfigFile0 - IDexecutable1 - IDinitialized1 - IDuninitialized0 - IDconstant1 - SDexecutable1 - SDinitialized1 - SDuninitialized0 - SDconstant1 - VerifyMemWrites0 - ShowMPC107regs0 - InitializationFile - ConfigurationFile - BreakpointType1 - WatchpointType1 - TargetOS1 - RTOSPluginName - ByteOrderType0 - CodeTest SYMBIAN Instrumenter - 0200020000000100000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000433A5C0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000637466696C657300000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000636F6465746573742E6964620000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000 - - - - SymbianInstallationOutputFilenameApplication.sis - SymbianInstallationOutputLocation - Path - PathFormatWindows - PathRootProject - - SymbianInstallationContentSearchLocation - Pathepoc32\release\winscw\urel -PathFormatWindows -PathRoot2 SDKTube - - SymbianInstallationPassword - SymbianInstallationCreateStubFilefalse - - - SymbianInstallationOutputFilenameApplication.sis - SymbianInstallationOutputLocation - Path - PathFormatWindows - PathRootProject - - SymbianInstallationContentSearchLocation - Pathepoc32\release\winscw\urel -PathFormatWindows -PathRoot2 SDKTube - - SymbianInstallationPassword - SymbianInstallationCreateStubFilefalse - - - SymbianResourcesMMPFileLocation - Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesBinaryOutputLocation - Pathepoc32\release\winscw\urel -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesHeaderFileOutputLocation - Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube - - - - SymbianResourcesMMPFileLocation - Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesBinaryOutputLocation - Pathepoc32\release\winscw\urel -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesHeaderFileOutputLocation - Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube - - - - FileList - - - ProcessorGeneric - UseInitFile0 - UseConfigFile0 - ResetTarget1 - InitializationFile - Path - PathFormatGeneric - PathRootAbsolute - - ConfigurationFile - Path - PathFormatGeneric - PathRootAbsolute - - TargetOS1 - RTOSPluginName - - - ShowCommandLinefalse - SymbianEpocToolsPath - Path -PathFormatWindows -PathRoot2 SDKTube - - - - PrefixFilefeature_settings.hrh - CompilerXMLDescriptorMetrowerks x86 Compiler - Macros__SYMBIAN32__,__CW32__,__WINS__,__WINSCW__,__DLL__,NDEBUG,_UNICODE,__SUPPORT_CPP_EXCEPTIONS__, - CodeTESTfalse - EnableSWICfalse - Arguments-wchar_t off -align 4 -warnings on -w nohidevirtual, nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -O4,s -nostdinc - CIAArgs - - - Parse Log Filefalse - Log File Path - Path - PathFormatWindows - PathRootAbsolute - - Symbian SDK Folder - Path - PathFormatWindows - PathRootAbsolute - - Log Unresolved Modulesfalse - Log Unresolved Sym Filesfalse - Debug Non-XIP Executablesfalse - - - Start Address0x00000000 - Run From Start Addressfalse - Download Imagefalse - OS Image Path - Path - PathFormatWindows - PathRootAbsolute - - Download Address0x00000000 - Ask Firstfalse - Debug Bootromfalse - Bootrom Sym File - Path - PathFormatWindows - PathRootAbsolute - - - - LinkOutputFileDiagResultsDatabase.dll - LinkCmdLine - SymbianImportLibraryDiagResultsDatabase.lib - canDebugfalse - canRunfalse - - - CommandLinebuildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img - OutputPath - PathC:\ - PathFormatWindows - PathRootAbsolute - - DisplayMessagestrue - - - TargetArchitectureWINSCW - LogMessagesfalse - SuppressWarningsfalse - GenerateSymbolicsfalse - CompilerPrefix - CompilerCmdLine - SymbianImportLibraryPath - PathC:\ - PathFormatWindows - PathRootAbsolute - - - - Gnu Tools Path - PathC:\ - PathFormatWindows - PathRootAbsolute - - Epoc32 Tools Path - PathC:\ - PathFormatWindows - PathRootAbsolute - - - -NameDiagResultsDatabase.mmpWindowsText -NameDiagResultsDatabase.defWindowsText -NameEDLL.LIBWindowsLibrary -NameDiagResultsDatabase.cppWindowsText -NameDiagResultsDatabaseItem.cppWindowsText -NameDiagResultsDbRecordInfoArrayPacked.cppWindowsText -NameDiagResultsDatabaseTestRecordInfo.cppWindowsText -NameDiagResultsDbRecordEngineParam.cppWindowsText -NameDiagResultsDatabase_UID_.cppWindowsText -Nameeuser.libWindowsLibrary -Nameestor.libWindowsLibrary -Namedrmserviceapi.libWindowsLibrary -Namecentralrepository.libWindowsLibrary -Nameflogger.libWindowsLibrary -NameDiagResultsDatabaseWINSCWUREL.cwlinkWindowsText - - -NameDiagResultsDatabase.mmpWindows -NameDiagResultsDatabase.defWindows -NameEDLL.LIBWindows -NameDiagResultsDatabase.cppWindows -NameDiagResultsDatabaseItem.cppWindows -NameDiagResultsDbRecordInfoArrayPacked.cppWindows -NameDiagResultsDatabaseTestRecordInfo.cppWindows -NameDiagResultsDbRecordEngineParam.cppWindows -NameDiagResultsDatabase_UID_.cppWindows -Nameeuser.libWindows -Nameestor.libWindows -Namedrmserviceapi.libWindows -Namecentralrepository.libWindows -Nameflogger.libWindows -NameDiagResultsDatabaseWINSCWUREL.cwlinkWindows - - -Build AllLinkerNone -TargetnameBuild All - - - -WINSCW UDEB -WINSCW UREL - - - -WINSCW UDEB -WINSCW UREL -Build All - - - WINSCW UDEBNameDiagResultsDatabase.mmpWindows -Source -WINSCW UDEBNameDiagResultsDatabase.defWindows -WINSCW UDEBNameDiagResultsDatabase.cppWindows -WINSCW UDEBNameDiagResultsDatabaseItem.cppWindows -WINSCW UDEBNameDiagResultsDbRecordInfoArrayPacked.cppWindows -WINSCW UDEBNameDiagResultsDatabaseTestRecordInfo.cppWindows -WINSCW UDEBNameDiagResultsDbRecordEngineParam.cppWindows -WINSCW UDEBNameDiagResultsDatabase_UID_.cppWindows - -Headers -WINSCW UDEBNameDiagResultsDatabase.hWindows -WINSCW UDEBNameDiagResultsDatabaseCommon.hWindows -WINSCW UDEBNameDiagResultsDatabaseItem.hWindows -WINSCW UDEBNameDiagResultsDatabaseTestRecordInfo.hWindows -WINSCW UDEBNameDiagResultsDbPrivateCRKeys.hWindows -WINSCW UDEBNameDiagResultsDbRecordEngineParam.hWindows -WINSCW UDEBNameDiagResultsDbRecordInfoArrayPacked.hWindows - -Link -WINSCW UDEBNameDiagResultsDatabaseWINSCWUDEB.cwlinkWindows -WINSCW URELNameDiagResultsDatabaseWINSCWUREL.cwlinkWindows - -Libraries -WINSCW -WINSCW UDEBNameEDLL.LIBWindows -WINSCW UDEBNameeuser.libWindows -WINSCW UDEBNameestor.libWindows -WINSCW UDEBNamedrmserviceapi.libWindows -WINSCW UDEBNamecentralrepository.libWindows -WINSCW UDEBNameflogger.libWindows -WINSCW URELNameEDLL.LIBWindows - - - - - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/inc/diagresultsdatabase.h --- a/devicediagnosticsfw/diagresultsdb/client/inc/diagresultsdatabase.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,520 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Results database client interfaces. -* Provides results database session and subsession. -* libraries : DiagResultsDatabase.lib DiagResultsDatabase.dll -* -*/ - - -#ifndef DIAGNOSTICS_RESULTS_DATABASE_CLIENT_H -#define DIAGNOSTICS_RESULTS_DATABASE_CLIENT_H - -#include - -class CDiagResultsDatabaseItem; -class TDiagResultsDatabaseTestRecordInfo; -class CDiagResultsDbRecordEngineParam; - -/** -* Diagnostics Results Database. Stores test results and more information. -* Provides methods to retrieve and fetch new data. -* Requires ReadDeviceData and WriteDeviceData capabilities even if the -* session does not write anything. -* -* Results database is a permanent file store based solution. -* Database files are stored under WINSCW\C\private\10282cd9 in emulator -* environment. -* -* It is recommended to have only one open RDiagResultsDatabase per thread. -* There should be only one writer and multiple readers at the same time -* accessing the same database file. It is possible that there are multiple -* DB files for example when there are two diagnostics applications in the -* system. -* -* @since S60 v5.0 -**/ -class RDiagResultsDatabase : public RSessionBase - { -public: - - /** - * Constructor - **/ - IMPORT_C RDiagResultsDatabase(); - - /** - * Destructor - **/ - IMPORT_C ~RDiagResultsDatabase(); - - /** - * Connect to the results database to a DB file. This must be called before - * trying to use this class, otherwise KERN-EXEC 0 will crash your app. - * Only one RDiagResultsDatabase connection is recommended per application, - * because server sessions consume significant amount of system resources. - * Share the session inside your thread! Subsessions are much more lighter. - * - * Calling connect creates the DB file inside server's private directory. - * If for some reason database is corrupted, the DB file should be deleted - * manually. - * - * @param aAppUid Unique identifier of the application. Each application has - * its own store. Applications can access to another - * applications's database if they know their UID. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. If calling process does not have access rights, - * KErrPermissionDenied is returned. ReadDeviceData+WriteDeviceData are - * required. KErrDiskFull is returned if there is not enough space - * on c-drive. - **/ - IMPORT_C TInt Connect( TUid aAppUid ); - - /** - * Close the session with the server. Handle is not valid anymore. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt Close(); - - /** - * Returns the version number of the server. - * - * @return The version number. - **/ - IMPORT_C TVersion Version() const; - - /** - * Get the current number of test records in the database. - * - * @param aCount the number of records. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetRecordCount ( TUint& aCount ) const; - - /** - * Returns the maximum number of records for each application. The number - * is defined in the central repository and it is static for all applications. - * It is guarenteed that the DB file contains only the maxsize records and - * not more. Old test records are deleted when new test records are - * completed. - * - * @param aMaxSize The maximum number of test records. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C static TInt GetDatabaseMaximumSize( TInt& aMaxSize ); - - /** - * Returns an array of record Ids. The oldest records are at the beginning - * of the array. Test record are sorted based on creation time. - * - * @param aSortedRecordUidArray An array of UIds. The array is sorted - * based on time. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetRecordUids ( CArrayFixFlat& aSortedRecordUidArray ) const; - - /** - * Returns id to last test record. The last record cannot be - * still open for writing! Test record are sorted based on creation time. - * - * @param aRecordUid Unique identifier of the record. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. Returns KErrNotFound if there are no records. - **/ - IMPORT_C TInt GetLastRecord ( TUid& aRecordUid ) const; - - /** - * Returns id to last suspended or incompleted test record. - * The last record cannot be still open for writing! Returns KErrNotFound - * if there are no suspended or incomplete test records. - * - * @param aRecordUid Unique identifier of the record. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. Returns KErrNotFound if there are no suspended test records. - **/ - IMPORT_C TInt GetLastNotCompletedRecord ( TUid& aRecordUid ) const; - - /** - * Returns an overview from all records. - * - * @param aInfoArray returns an array of record infos. - * @see TDiagResultsDatabaseTestRecordInfo. - **/ - IMPORT_C TInt GetAllRecordInfos ( - CArrayFixFlat& aInfoArray ); - - /** - * Initiate retrieving of last results. After request is completed, - * data can be fetched using GetLastResults method. - * - * @param aUidArray An array of uid used to identify plug-ins. - * @param aStatus Completion status. - **/ - IMPORT_C void InitiateGetLastResults ( const CArrayFixFlat& aUidArray, - TRequestStatus& aStatus ); - - /** - * Cancel InitiateGetLastResults. - **/ - IMPORT_C void CancelInitiateGetLastResults () const; - - /** - * Get list of last results. Last result means that the plug-in has passed / failed - * test result. - * - * GetLastResults deletes data after this function - * is called, so InitiateGetLastResults must be called if data is needed - * again. Client is responsible for deleting the returned array. Contains - * null values if the searched uid was not found. There should be the same - * number of cells in UidArray and in the results array. - * - * @param aResults Returned results array. Client is responsible for - * deleting the array. - * - * @return KErrNotReady if this is called before InitiateGetLastResults. - */ - IMPORT_C TInt GetLastResults ( RPointerArray& aResults ) const; - - /** - * Get last (the newest) test result of a test plug-in. The algorithm searches for a - * test result that is either passed or failed. This is also asynchronous operation, - * because all records have to be browsed in worst case scenario (that is, when - * the plug-in uid is not found). Call GetLastResult when test result is needed. - * - * - * @param aTestPluginUid UID of a plug-in. - * @param aStatus Asynchronous request status. - * - */ - IMPORT_C void InitiateGetLastResult ( TUid aTestPluginUid, - TRequestStatus& aStatus ); - - - /** - * Get last result of a test plug-in. - * - * @param aItem Test result or NULL if not found. - * @retrun KErrNotReady if this is called before InitiateGetLastResult. - **/ - IMPORT_C TInt GetLastResult ( CDiagResultsDatabaseItem*& aItem ); - -private: - - /** - * Leaving version of the service functions. Look above for explanations. - **/ - void DoConnectL (TUid aAppUid); - - void DoGetRecordUidsL( CArrayFixFlat& aSortedRecordUidArray ) const; - - /* - * @see GetDatabaseMaximumSize() - */ - static void DoGetDatabaseMaximumSizeL( TInt& aMaxSize ); - - void DoGetAllRecordInfosL ( CArrayFixFlat& aInfoArray); - - void DoGetLastResultsL ( RPointerArray& aResults ) const; - - void WriteArrayIntoBufferL( const CArrayFixFlat& aUidArray ); - - void DoGetLastResultL ( CDiagResultsDatabaseItem*& aItem ); - -private: - - // Flat dynamic buffer. - CBufFlat* iBuffer; - - // is the connection already open. - TBool iOpen; - - //Buffer pointer - TPtr8 iPtr; - }; - -/** -* Sub-session to Diagnostics Results Database. This API is used to -* handle a Test record. A test record is a collection of test results. -* -* Test record is always written into the file, when updates are necessary. -* -* -* @since S60 v5.0 -**/ -class RDiagResultsDatabaseRecord : public RSubSessionBase - { -public: - - /** - * Test record status. - **/ - enum TRecordStatus - { - EOpen, // Currently open for writing. - ESuspended, // ::Suspend() is called. - ECrashed, // It was open previously, and it was not - // closed properly. - EPartiallyCompleted, // Record is completed (not resumable), but not - // all tests were completed. - ECompleted // Record is completed (not resumable), and all - // tests were completed. - }; - - /** - * Constructor - **/ - IMPORT_C RDiagResultsDatabaseRecord(); - - /** - * Destructor - **/ - IMPORT_C ~RDiagResultsDatabaseRecord(); - - /** - * Connects to a test record. There must be at least one created record. - * If the specified record is not found, KErrNotFound is returned. - * Opened test record can be modified if the test record has not been - * completed (= TestCompleted called). - * - * @param aSession open database session. - * @param aRecordId specifies the record where we want to connect. - * @param aReadOnly Indicates is the test record opened in read-only mode. - * If read-only = EFalse, the test record can overwrite - * test records that are not completed already. If - * the test record is completed it can be opened only - * in read-mode. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. Returns KErrAlreadyExists if subsession is connected. - **/ - IMPORT_C TInt Connect( RDiagResultsDatabase& aSession, - TUid aRecordId, - TBool aReadOnly ); - - /** - * Creates a new record and returns the uid of that record. - * Writes empty test record into the file. Create new record opens the record - * always in Write mode. - * - * @param aSession open database session. - * @param aRecordId a new unique identifier is returned that is used to - * identify particular test record. Client can use the record ID to access - * the same record again. - * @param aEngineParam Engine parameters. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. Returns KErrAlreadyExists if subsession is connected. - * KErrDiskFull is returned if there is not enough space on c-drive. - **/ - IMPORT_C TInt CreateNewRecord( RDiagResultsDatabase& aSession, - TUid& aRecordId, - CDiagResultsDbRecordEngineParam& aEngineParam ); - - /** - * Retrieve parameters of the diagnostics engine. These are needed in - * Suspend/Resume functionality. - * - * @param aEngineParam Engine parameters. Ownership is transferred. - * Client is responsible for deleting the object. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetEngineParam( CDiagResultsDbRecordEngineParam*& aEngineParam ) const; - - - /** - * Get record status. - * - * @param aRecordStatus The status of the record. - * @see TRecordStatus in the beginning of the class declaration. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetStatus( TRecordStatus& aRecordStatus ) const; - - /** - * Close subsession. Does not write test record into the file. - * - * @return Symbian error code or KErrNone. - **/ - IMPORT_C void Close(); - - /** - * Suspend test record. Same as complete, but the test record can be modified - * on next connect.Writes test suspend time into test record info. - * - * @return Symbian error code or KErrNone. - **/ - IMPORT_C TInt Suspend(); - - /** - * Indicates has this test record been suspended. - * @param aSuspended Returns has this test record been suspended(ETrue), - * otherwise EFalse. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt IsSuspended( TBool& aSuspended ) const; - - /** - * Returns the record UID of this subsession. - * - * @param aRecordUid Record ID of the subsession. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetTestRecordId( TUid& aRecordUid ) const; - - /** - * Write test completion time/date to the record and prevent further - * writing. Handle is still valid. However, it cannot be used for adding - * any more test results. During completion database file is cleaned up from - * old test records (limited by GetDatabaseMaximumSize method). - * - * Test completion is synchronous operation because only record handle must be - * updated (fixed size stream). - * - * @param aFullyComplete If ETrue (default), test record is completed with - * status fully completed. Otherwise the test record is - * considered partially completed. - * - * @return Symbian error code or KErrNone. KErrDiskFull is returned if there - | is not enough space on c-drive. - **/ - IMPORT_C TInt TestCompleted( TBool aFullyComplete = ETrue ); - - /** - * Indicates has this record been written into the DB file or not. - * - * @param aCompleted Has the test record been completed. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt IsTestCompleted( TBool& aCompleted ) const; - - /** - * Returns information about the record. If the record is not finalized, - * iFinishTimes contains unknown values. - * - * @param aInfo returns an overview of the test record. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetRecordInfo ( TDiagResultsDatabaseTestRecordInfo& aInfo ) const; - - /** - * Get list of test UIDs inside the test record. - * - * @param aTestUidArray An array of test uids. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetTestUids ( CArrayFixFlat& aTestUidArray ) const; - - /** - * Logs results of a test into the database including more information - * that there might be. See class CDiagResultsDatabaseItem. Result Item - * is written into the file immediately after TRequestStatus completes. - * - * @param aResultItem This structure is stored into the database. - * Client is responsible for creating the object. Also client is responsible - * for setting item's values. - * - * @param aStatus Asynchronous status. Completes when process is finished. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. Returns KErrAlreadyExists if record is already completed. - * KErrDiskFull is returned if there is not enough space on c-drive. - * If KErrDiskFull is received, the test result is not logged. - * - **/ - IMPORT_C TInt LogTestResult ( TRequestStatus& aStatus, - const CDiagResultsDatabaseItem& aResultItem ); - - /** - * Cancel LogTestResult. Server continues to write result item into the DB. - * Cancelling only completes client's request. - **/ - IMPORT_C void CancelLogTestResult() const; - - /** - * Get single test result from this test record identified by an uid. - * - * @param aPluginUid Unique identifier of the plug-in whose results are needed. - * @param aResultItem Contains test results. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes.KErrNotFound is returned if the plug-in is not found - * from the record. - **/ - IMPORT_C TInt GetTestResult ( TUid aPluginUid, - CDiagResultsDatabaseItem*& aResultItem ) const; - - /** - * Get all test results inside the test record. Client is responsible for - * reseting/destroying the array. - * - * @param aResultsArray Returns test results for this record. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - */ - IMPORT_C TInt GetTestResults ( RPointerArray& aResultsArray ) const; - -private: - - /** - * Leaving version of the functions and helper functions. - **/ - void DoConnectL ( RDiagResultsDatabase& aSession, - TUid aRecordId, - TBool aReadOnly ); - - void DoCreateNewRecordL ( RDiagResultsDatabase& aSession, TUid& aRecordId, - CDiagResultsDbRecordEngineParam& aEngineParam ); - - void DoGetTestUidsL ( CArrayFixFlat& aTestUidArray ) const; - - void DoLogTestResultL ( TRequestStatus& aStatus, - const CDiagResultsDatabaseItem& aResultItem ); - - void DoGetTestResultsL ( RPointerArray& aResultsArray ) const; - - void DoGetTestResultL ( TUid aPluginUid, CDiagResultsDatabaseItem*& aResultItem ) const; - - void WriteDatabaseItemIntoBufferL( const CDiagResultsDatabaseItem& aResultItem ); - - void WriteEngineParamIntoBufferL( CDiagResultsDbRecordEngineParam& aEngineParam ); - - void DoGetEngineParamL( CDiagResultsDbRecordEngineParam*& aEngineParam ) const; - -private: - - // Dynamic flat buffer. - CBufFlat* iBuffer; - - // Is the connection already open. - TBool iOpen; - - //Buffer pointer - TPtr8 iPtr; - }; - -#endif // DIAGNOSTICS_RESULTS_DATABASE_CLIENT_H - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/inc/diagresultsdatabaseitem.h --- a/devicediagnosticsfw/diagresultsdb/client/inc/diagresultsdatabaseitem.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,241 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Results database item -* -*/ - - -#ifndef DIAGRESULTSDATABASEITEM_H -#define DIAGRESULTSDATABASEITEM_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class RWriteStream; -class RReadStream; -class TTime; -class TStreamId; -class CStreamStore; -class CBufFlat; - -/** -* Results database item. -* -* @since S60 v5.0 -**/ -class CDiagResultsDatabaseItem : public CBase - { -public: - /** - * Result of test. - */ - enum TResult - { - ESuccess = 0, - EFailed, // Test failed - ESkipped, // Test was never executed because it was skipped - // before it is started. (e.g. during initial delay timer) - ECancelled, // Test session was cancelled. ( ECancelAll ) - EInterrupted, // Interrupted. Test was already running, but interrupted - // by end user, or other external cause. - ENotPerformed, // Not performed due to invalid set up. - EDependencyFailed, // Failed because dependent test failed. - EWatchdogCancel, // Watchdog cancelled testing. - ESuspended, // Test is scheduled to run later. - EQueuedToRun, // Test is waiting for execution. It is possible that - // EQueuedToRun is never overwritten. - EDependencySkipped // Skipped because common dependency was not executed - // either due to it was skipped or interrupted. - }; - -public: - - /** - * NewL. Construct from a stream. - * @param aStream Stream to read from. - */ - IMPORT_C static CDiagResultsDatabaseItem* NewL ( RReadStream& aStream ); - - /** - * NewL. - */ - IMPORT_C static CDiagResultsDatabaseItem* NewL ( - TUid aTestUid, - TBool aDependencyExecution, - TResult aResult, - TTime aStartTime, - TTime aEndTime, - CBufFlat* aDetailsData ); - /** - * NewLC. - */ - IMPORT_C static CDiagResultsDatabaseItem* NewLC ( - TUid aTestUid, - TBool aDependencyExecution, - TResult aResult, - TTime aStartTime, - TTime aEndTime, - CBufFlat* aDetailsData ); - - /** - * NewL. Copy constructor. This will do a deep copy. - * - * @param aOriginal - Original to copy data from. - * @return a new instance of CDiagResultsDatabaseItem that is a deep - * copy of the original given. Ownership is transferred. - */ - IMPORT_C static CDiagResultsDatabaseItem* NewL ( - const CDiagResultsDatabaseItem& aOriginal ); - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagResultsDatabaseItem(); - - /** - * Get Uid of test plug-in. - * - * @return TUid - uid of the test plug-in. - */ - IMPORT_C TUid TestUid() const; - - /** - * Whether the test was executed to satisfy dependency or not. - * - * @return ETrue if executed as dependency. - * EFalse otherwise. - */ - IMPORT_C TBool WasDependency() const; - - /** - * Get Test Result. - * - * @return TResult. - */ - IMPORT_C TResult TestResult() const; - - /** - * Time that test execution was started. - * Universal time is used. - * - * @return Time that execution was started. - */ - IMPORT_C TTime TimeStarted() const; - - /** - * Time that test execution was completed. - * Universal time is used. - * - * @return Time that execution was completed. - */ - IMPORT_C TTime TimeCompleted() const; - - /** - * Details data. This must be interpreted by the plug-ins before - * it can be used. Data is in object form. - */ - IMPORT_C const CBufFlat* DetailsData() const; - - /** - * Calculate stream size in bytes. Size can be used to evaluate needed - * stream size. - * - * @return Size in bytes. - */ - IMPORT_C TInt Size() const; - -public: - - /** - * Externalize the test result to a stream. - * - * @param aStream Stream to write to. - */ - IMPORT_C void ExternalizeL( RWriteStream& aStream ) const; - - -private: //internalization methods - - /** - * Internalize the test result from a stream. - * - * @param aStream Stream to read from. - */ - IMPORT_C void InternalizeL( RReadStream& aStream ); - - /** - * Write TTime into write stream. - * - * @param aStream Stream to write to. - * @param aTime TTime that is written into the stream. - **/ - void WriteTimeToStreamL( RWriteStream& aStream, const TTime& aTime ) const; - - /** - * Read TTime from read stream. - * - * @param aStream read stream. - * @param aTime Contains time after stream is read. - **/ - void ReadTimeFromStreamL( RReadStream& aStream, TTime& aTime ); - -private: - - /** - * C++ Constructors. - */ - CDiagResultsDatabaseItem ( - TUid aTestUid, - TBool aDependencyExecution, - TResult aResult, - TTime aStartTime, - TTime aEndTime, - CBufFlat* aDetailsData ); - - /** - * Construct from a stream. - * - * @param aStream Read stream. - */ - void ConstructL ( RReadStream& aStream ); - - /** - * Default C++ constructor. - **/ - CDiagResultsDatabaseItem (); - -private: // data - - // Uid of the test plug-in. - TUid iTestUid; - - // Has this been executed as a part of another execution (precondition). - TBool iDependencyExecution; - - // Test result - TResult iResult; - - // When the test began. - TTime iStartTime; - - // When the test ended - TTime iEndTime; - - // Contains flat buffer that can hold additional data - // For example debugging data or further analysis. - CBufFlat* iDetailsData; - - }; - -#endif // DIAGRESULTSDATABASEITEM_H diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/inc/diagresultsdatabasetestrecordinfo.h --- a/devicediagnosticsfw/diagresultsdb/client/inc/diagresultsdatabasetestrecordinfo.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Contains overview of the test record, not actual test results. -* libraries : DiagResultsDatabase.lib DiagResultsDatabase.dll -* -*/ - - -#ifndef DIAGNOSTICS_RESULTS_DATABASE_TEST_RECORD_INFO_H -#define DIAGNOSTICS_RESULTS_DATABASE_TEST_RECORD_INFO_H - -#include - -class RReadStream; -class RWriteStream; - -/** -* Results database record info. Contains information about one record. -* -* @since S60 v5.0 -**/ -class TDiagResultsDatabaseTestRecordInfo - { -public: - - enum TDbRecordStatus - { - EOpen, // Currently open for writing. - ESuspended, // ::Suspend() is called. - ECompleted // Record is completed (not resumable), and all - // tests were completed. - }; - - - /** - * Constructor - **/ - IMPORT_C TDiagResultsDatabaseTestRecordInfo(); - - /** - * Internalize from a stream. - * - * @param aStream Stream to be read from. - **/ - IMPORT_C void InternalizeL( RReadStream& aStream ); - - /** - * Externalize into a stream. - * - * @param aStream Stream to be written into. - **/ - IMPORT_C void ExternalizeL( RWriteStream& aStream ) const; - - /** - * Returns DRM time. - * - * @return DRM time. - **/ - IMPORT_C static TTime DRMTimeL(); - - //Public member data. - TUid iRecordId; // Identifies this record. - TTime iDrmStartTime; //When the record was opened (DRM time). - TTime iDrmFinishTime; //when the record was completed (DRM time). - TTime iStartTime; //When the record was opened (Home time). - TTime iFinishTime; //when the record was completed (Home time). - TUid iDbUid; //UID3 of the database. - TUint iTestCount; //The number of tests in this record. - TDbRecordStatus iRecordStatus; //Stored record status. - TBool iCompleted; //Writable or read-only test record - - -private: - - /** - * Writes time(TTime) into a stream. Time has to be written into a stream - * using two 32-bit values since there is no method to write 64-bit value. - * - * @param aStream Stream to be written into. - * @param aTime Time that is written into the stream. - **/ - void WriteTimeToStreamL( RWriteStream& aStream, const TTime& aTime ) const; - - /** - * Reads time (TTime) from a stream. - * - * @param aStream Stream to be read from. - * @param aTime Time that was read from the stream. - **/ - void ReadTimeFromStreamL( RReadStream& aStream, TTime& aTime ); - - }; - -#endif \ No newline at end of file diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/inc/diagresultsdbrecordengineparam.h --- a/devicediagnosticsfw/diagresultsdb/client/inc/diagresultsdbrecordengineparam.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Capsulates parameters of the diagnostics engine. -* -*/ - - -#ifndef DIAGRESULTSDBRECORDENGINEPARAM_H -#define DIAGRESULTSDBRECORDENGINEPARAM_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class RWriteStream; -class RReadStream; - -/** -* Contains parameters of the diagnostics engine. -* Parameters are needed only in suspend/resume functionality. -* -* @since S60 v5.0 -**/ -class CDiagResultsDbRecordEngineParam : public CBase - { -public: - - - /** - * NewL. Construct from a stream. - * @param aStream Stream to read from. - */ - IMPORT_C static CDiagResultsDbRecordEngineParam* NewL ( RReadStream& aStream ); - - /** - * NewL. Ownership of RArray is transferred. - * - * @param aInitialUids Execution Uid array. Should not be null. - * Use empty array if there are no uids. - * @param aDependencyExecution This value is needed when resuming - * in order to create proper test resume plan. - */ - IMPORT_C static CDiagResultsDbRecordEngineParam* NewL ( - RArray* aInitialUids, - TBool aDependencyExecution - ); - /** - * NewLC. Ownership of RArray is transferred. - * - * @param aInitialUids Execution Uid array. Should not be null. - * Use empty array if there are no uids. - * @param aDependencyExecution This value is needed when resuming - * in order to create proper test resume plan. - */ - IMPORT_C static CDiagResultsDbRecordEngineParam* NewLC ( - RArray* aInitialUids, - TBool aDependencyExecution - ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagResultsDbRecordEngineParam(); - - /** - * Return execution uids. These can be used to store for example - * user selections. User selections are needed when test run is suspended - * or test session crashed the phone. - * - * @return Array of uids. Empty if none. - */ - IMPORT_C const RArray& ExecutionsUidArray() const; - - /** - * Indicates were dependencies resolved when diagnostics engine executed tests. - * - * @return ETrue if dependencies were resolved, EFalse otherwise. - */ - IMPORT_C TBool DependencyExecution() const; - -public: - - /** - * Externalize the test result to a stream. - * - * @param aStream Stream to write to. - */ - IMPORT_C void ExternalizeL( RWriteStream& aStream ) const; - - -private: //internalization methods - - /** - * Internalize the test result from a stream. - * - * @param aStream Stream to read from. - */ - IMPORT_C void InternalizeL( RReadStream& aStream ); - - -private: - - /** - * C++ Constructors. - */ - CDiagResultsDbRecordEngineParam ( RArray* aInitialUids, - TBool aDependencyExecution ); - - /** - * Construct from a stream. - * - * @param aStream Read stream. - */ - void ConstructL ( RReadStream& aStream ); - - /** - * Default constructL. Does nothing. - */ - void ConstructL (); - - /** - * Default C++ constructor. - **/ - CDiagResultsDbRecordEngineParam (); - -private: // data - - // Execution uid array - RArray* iExecutionUids; - - //Dependency resolving state. - TBool iDependencyExecution; - - }; - -#endif // DIAGRESULTSDBRECORDENGINEPARAM_H diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/inc/diagresultsdbrecordinfoarraypacked.h --- a/devicediagnosticsfw/diagresultsdb/client/inc/diagresultsdbrecordinfoarraypacked.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Contains functions to pack or unpack test record info array. -* libraries : DiagResultsDatabase.lib DiagResultsDatabase.dll -* -*/ - - -#ifndef DIAGNOSTICS_RESULTS_DB_RECORD_INFO_ARRAY_PACKED_H -#define DIAGNOSTICS_RESULTS_DB_RECORD_INFO_ARRAY_PACKED_H - -#include "diagresultsdatabasetestrecordinfo.h" - -class CBufFlat; - -/** -* Pack or unpack a CBufFlat buffer. This can be used to deliver data -* across process boundaries using a flat buffer. -* -* @since S60 v5.0 -**/ -class TDiagResultsDbRecordInfoArrayPacked - { -public: - - /** - * Constructor - * @param aBuffer Flat buffer where the array of test records is written. - **/ - IMPORT_C TDiagResultsDbRecordInfoArrayPacked(CBufFlat*& aBuffer); - - /** - * Packs a test record into the flat buffer. - * @param aInfoArray An array of test records that are written into the buffer. - **/ - IMPORT_C void PackArrayL(const CArrayFixFlat& aInfoArray); - - /** - * Unpack array from the buffer. - * @param aInfoArray Contains the unpacked array after function finishes. - **/ - IMPORT_C void UnpackArrayL(CArrayFixFlat& aInfoArray); - -private: - - // Buffer that contains data. - CBufFlat *& iBuffer; - - }; - -#endif \ No newline at end of file diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/src/diagresultsdatabase.cpp --- a/devicediagnosticsfw/diagresultsdb/client/src/diagresultsdatabase.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1107 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of RDiagResultsDatabase -* -*/ - - - -// USER INCLUDE FILES - -#include "diagresultsdatabase.h" -#include "diagresultsdatabaseitem.h" -#include "diagresultsdbrecordinfoarraypacked.h" -#include "diagresultsdatabasetestrecordinfo.h" -#include "diagresultsdbprivatecrkeys.h" -#include "diagresultsdbrecordengineparam.h" -#include "diagresultsdatabasecommon.h" -//#include -// SYSTEM INCLUDE FILES -#include -#include - -const TInt KResultsDatabaseBufferLength = 0x700; -const TInt KResultsDatabaseSubsessionBufferLength = 0x250; -const TInt KResultsDatabaseGranuality = 50; - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -EXPORT_C RDiagResultsDatabase::RDiagResultsDatabase(): - iBuffer(NULL), iOpen(EFalse) - , iPtr( NULL, 0 ) - { - - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -EXPORT_C RDiagResultsDatabase::~RDiagResultsDatabase() - { - if ( iBuffer ) - { - iBuffer->Reset(); - delete iBuffer; - iBuffer = NULL; - } - } - -// --------------------------------------------------------------------------- -// Create connection to the results DB server -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabase::Connect( TUid aAppUid ) - { - LOGME("RDiagResultsDatabase::Connect"); - TRAPD( err, DoConnectL( aAppUid)); - - return err; - } - -// --------------------------------------------------------------------------- -// Start server, create flat buffer and send request. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabase::DoConnectL (TUid aAppUid) - { - LOGME("RDiagResultsDatabase::DoConnectL"); - if (iBuffer==NULL) - { - iBuffer = CBufFlat::NewL(KResultsDatabaseGranuality); - iBuffer->ResizeL(KResultsDatabaseBufferLength); - if (iBuffer==NULL) - User::Leave( KErrNoMemory ); - } - - TInt r = DiagResultsDbCommon::StartServer(); - LOGME1("RDiagResultsDatabase::StartServer %d",r); - if( r==KErrNone ) - // Use default message slots - r = CreateSession( KDiagResultsDatabaseServerName, Version() ); - LOGME1("RDiagResultsDatabase::Createsession %d",r); - if ( r != KErrNone ) - { - User::Leave (r); - } - - iOpen = ETrue; - - TPckgBuf uid( aAppUid ); - TInt srret = SendReceive (DiagResultsDbCommon::EConnect,TIpcArgs(&uid) ); - LOGME1("Rsession sendreceive %d",srret); - if (srret != KErrNone) - User::Leave( srret ); - } - -// --------------------------------------------------------------------------- -// Close connection with the server. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabase::Close() - { - LOGME("RDiagResultsDatabase::Close"); - if ( iOpen ) - { - TInt err = SendReceive( DiagResultsDbCommon::EClose ); - RHandleBase::Close(); - iOpen = EFalse; - delete iBuffer; - iBuffer = NULL; - return err; - } - else - { - iOpen = EFalse; - return KErrNone; - } - } - -// --------------------------------------------------------------------------- -// Returns the version of this server. -// --------------------------------------------------------------------------- -// -EXPORT_C TVersion RDiagResultsDatabase::Version() const - { - return( TVersion( KDiagResultsDatabaseServerMajor, - KDiagResultsDatabaseServerMinor, - KDiagResultsDatabaseServerBuild ) ); - } - -// --------------------------------------------------------------------------- -// Returns test record count. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabase::GetRecordCount( TUint& aCount ) const - { - TPckgBuf pckg; - TInt error = SendReceive( DiagResultsDbCommon::EGetRecordCount, TIpcArgs(&pckg) ); - aCount = pckg(); - - return error; - } - - -// --------------------------------------------------------------------------- -// Fetch maximum number of test records from the central repository. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabase::GetDatabaseMaximumSize( TInt& aMaxSize ) - { - TRAPD( err, DoGetDatabaseMaximumSizeL( aMaxSize ) ); - return err; - } - -// --------------------------------------------------------------------------- -// Fetch maximum number of test records from the central repository. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabase::DoGetDatabaseMaximumSizeL( TInt& aMaxSize ) - { - CRepository* cr = CRepository::NewLC( KCRUidDiagnosticsResults ); - - User::LeaveIfError( cr->Get( KDiagDatabaseMaxRecordCount, aMaxSize ) ); - - CleanupStack::PopAndDestroy( cr ); - } - -// --------------------------------------------------------------------------- -// Get available record uids. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabase::GetRecordUids( - CArrayFixFlat& aSortedRecordUidArray ) const - { - TRAPD( err, DoGetRecordUidsL( aSortedRecordUidArray )); - return err; - } - -// --------------------------------------------------------------------------- -// Resize buffer and then start query. Overflow means that the buffer was not -// large enough. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabase::DoGetRecordUidsL( - CArrayFixFlat& aSortedRecordUidArray ) const - { - iBuffer->Delete( 0, iBuffer->Size() ); - iBuffer->ResizeL( KResultsDatabaseBufferLength ); - - TPtr8 ptr ( iBuffer->Ptr(0) ); - //Now ask server to serialize object into this buffer - TInt ret = SendReceive( DiagResultsDbCommon::EGetRecordList, - TIpcArgs(&ptr) ); - - while ( ret == KErrOverflow ) - { - iBuffer->ResizeL( iBuffer->Size() + KResultsDatabaseBufferLength ); - ptr.Set( iBuffer->Ptr(0) ); - ret = SendReceive( DiagResultsDbCommon::EGetRecordList, - TIpcArgs(&ptr) ); - } - if ( ret != KErrNone ) - { - User::Leave (ret); - } - - RBufReadStream readStream ( *iBuffer ); - CleanupClosePushL( readStream ) ; - TInt count = readStream.ReadInt16L(); - - for ( TInt i = 0; i < count; ++i ) - { - aSortedRecordUidArray.AppendL ( TUid::Uid( readStream.ReadInt32L()) ); - } - - CleanupStack::PopAndDestroy( &readStream ); - } - -// --------------------------------------------------------------------------- -// Returns last completed record. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabase::GetLastRecord( TUid& aRecordUid ) const - { - TPckgBuf pckg; - TInt err = SendReceive( DiagResultsDbCommon::EGetLastRecord, - TIpcArgs(&pckg) ); - aRecordUid = pckg(); - return err; - } - - -// --------------------------------------------------------------------------- -// Get last incomplete record. It could suspended or application crashed -// when running the test. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabase::GetLastNotCompletedRecord ( - TUid& aRecordUid ) const - { - TPckgBuf pckg; - TInt err = SendReceive( DiagResultsDbCommon::EGetLastNotCompletedRecord, - TIpcArgs(&pckg) ); - aRecordUid = pckg(); - return err; - - } - -// --------------------------------------------------------------------------- -// Get all test record overviews. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabase::GetAllRecordInfos ( - CArrayFixFlat& aInfoArray) - { - TRAPD( err, DoGetAllRecordInfosL( aInfoArray )); - return err; - } - -// --------------------------------------------------------------------------- -// Send client request to the server. If overflow, then resize buffer and -// try again. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabase::DoGetAllRecordInfosL ( - CArrayFixFlat& aInfoArray) - { - iBuffer->Delete( 0, iBuffer->Size() ); - iBuffer->ResizeL( KResultsDatabaseBufferLength ); - - TPtr8 ptr ( iBuffer->Ptr(0) ); - - TInt ret = SendReceive( DiagResultsDbCommon::EGetRecordInfoList, - TIpcArgs(&ptr) ); - - while ( ret == KErrOverflow ) - { - iBuffer->ResizeL( iBuffer->Size() + KResultsDatabaseBufferLength ); - ptr.Set( iBuffer->Ptr(0) ); - ret = SendReceive( DiagResultsDbCommon::EGetRecordInfoList, - TIpcArgs(&ptr) ); - } - - if ( ret != KErrNone ) - { - User::Leave (ret); - } - - TDiagResultsDbRecordInfoArrayPacked packedArray( iBuffer ); - packedArray.UnpackArrayL( aInfoArray ); - } - -// --------------------------------------------------------------------------- -// Asynchronous get last results. -// --------------------------------------------------------------------------- -// -EXPORT_C void RDiagResultsDatabase::InitiateGetLastResults ( - const CArrayFixFlat& aUidArray, - TRequestStatus& aStatus ) - { - TRAPD( error, WriteArrayIntoBufferL( aUidArray )); - - if ( error != KErrNone ) - { - TRequestStatus* status = &aStatus; - User::RequestComplete( status, error ); - return; - } - - - iPtr.Set( iBuffer->Ptr(0) ); - - SendReceive( DiagResultsDbCommon::EInitiateGetLastResults, - TIpcArgs( &iPtr ), - aStatus); - } - -// --------------------------------------------------------------------------- -// Write Array into Buffer: -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabase::WriteArrayIntoBufferL( const CArrayFixFlat& aUidArray ) - { - iBuffer->Delete( 0, iBuffer->Size() ); - iBuffer->ResizeL( KResultsDatabaseBufferLength ); - - RBufWriteStream writeStream ( *iBuffer ); - CleanupClosePushL( writeStream ); - - writeStream.WriteInt8L( aUidArray.Count() ); - - for ( TInt i=0; i < aUidArray.Count(); ++i ) - { - writeStream.WriteInt32L( aUidArray[i].iUid ); - } - - writeStream.CommitL(); - - CleanupStack::PopAndDestroy(); - } - -// --------------------------------------------------------------------------- -// Cancel asynchronous request. -// --------------------------------------------------------------------------- -// -EXPORT_C void RDiagResultsDatabase::CancelInitiateGetLastResults () const - { - SendReceive( DiagResultsDbCommon::ECancelInitiateGetLastResults ); - } - -// --------------------------------------------------------------------------- -// See InitiateGetLastResults. After InitiateGetLastResults finishes ok, -// this method can be called to retrieve data. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabase::GetLastResults ( - RPointerArray& aResults ) const - { - TRAPD( err, DoGetLastResultsL( aResults ) ); - return err; - } - -// --------------------------------------------------------------------------- -// Resize buffer and make the request. Data is serialized in the buffer so it -// must be read using a read stream. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabase::DoGetLastResultsL ( - RPointerArray& aResults ) const - { - iBuffer->Delete( 0, iBuffer->Size() ); - iBuffer->ResizeL( KResultsDatabaseBufferLength ); - - TPtr8 ptr ( iBuffer->Ptr(0)); - //Now ask server to serialize object into this buffer - TInt ret = SendReceive( DiagResultsDbCommon::EGetLastResults, - TIpcArgs(&ptr) ); - - while ( ret == KErrOverflow ) - { - iBuffer->ResizeL( iBuffer->Size() + KResultsDatabaseBufferLength ); - ptr.Set ( iBuffer->Ptr(0) ); - ret = SendReceive( DiagResultsDbCommon::EGetLastResults, - TIpcArgs(&ptr) ); - } - - if ( ret != KErrNone ) - { - User::Leave (ret); - } - - RBufReadStream readStream ( *iBuffer ); - TInt count = readStream.ReadInt16L(); - - for ( TInt i = 0; i < count; ++i ) - { - - TUint8 value = readStream.ReadUint8L(); - if ( value == 0 ) - { - aResults.AppendL( NULL ); - } - else - { - aResults.AppendL (CDiagResultsDatabaseItem::NewL( readStream ) ); - } - } - - readStream.Close(); - } - - -// --------------------------------------------------------------------------- -// Initiate asynchronous operation. -// --------------------------------------------------------------------------- -// -EXPORT_C void RDiagResultsDatabase::InitiateGetLastResult ( TUid aTestPluginUid, - TRequestStatus& aStatus ) - { - TPckgBuf uidpckg( aTestPluginUid ); - - SendReceive( DiagResultsDbCommon::EInitiateGetSingleLastResult, - TIpcArgs( &uidpckg ), - aStatus); - } - - -// --------------------------------------------------------------------------- -// Get last result that was fetched using InitiateGetLastResult method. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabase::GetLastResult ( - CDiagResultsDatabaseItem*& aItem ) - { - - TRAPD( err, DoGetLastResultL( aItem ) ); - return err; - } - - -// --------------------------------------------------------------------------- -// Leaving version of the function. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabase::DoGetLastResultL ( - CDiagResultsDatabaseItem*& aItem ) - { - iBuffer->Delete( 0, iBuffer->Size() ); - iBuffer->ResizeL( KResultsDatabaseBufferLength ); - - TPtr8 ptr ( iBuffer->Ptr(0)); - //Now ask server to serialize object into this buffer - TInt ret = SendReceive( DiagResultsDbCommon::EGetSingleLastResult, - TIpcArgs(&ptr) ); - - while ( ret == KErrOverflow ) - { - iBuffer->ResizeL( iBuffer->Size() + KResultsDatabaseBufferLength ); - ptr.Set ( iBuffer->Ptr(0) ); - ret = SendReceive( DiagResultsDbCommon::EGetSingleLastResult, - TIpcArgs(&ptr) ); - } - - if ( ret != KErrNone ) - { - User::Leave (ret); - } - - RBufReadStream readStream ( *iBuffer ); - - TInt count = readStream.ReadInt8L(); - - if ( count == 0 ) - { - aItem = NULL; - } - else - { - aItem = CDiagResultsDatabaseItem::NewL ( readStream ); - } - - readStream.Close(); - } - -// --------------------------------------------------------------------------- -// Subsession constructor. -// --------------------------------------------------------------------------- -// -EXPORT_C RDiagResultsDatabaseRecord::RDiagResultsDatabaseRecord(): - iBuffer(NULL), - iOpen(EFalse) - ,iPtr( NULL, 0 ) - { - } - -// --------------------------------------------------------------------------- -// Subsession destructor. -// --------------------------------------------------------------------------- -// -EXPORT_C RDiagResultsDatabaseRecord::~RDiagResultsDatabaseRecord() - { - if ( iBuffer ) - { - iBuffer->Reset(); - delete iBuffer; - iBuffer = NULL; - } - } - -// --------------------------------------------------------------------------- -// Checks if connection is already open. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::Connect( - RDiagResultsDatabase& aSession, - TUid aRecordId, - TBool aReadOnly ) - { - LOGME("RDiagResultsDatabaseRecord::Connect"); - if ( iOpen ) - { - return KErrAlreadyExists; - } - - TRAPD( err, DoConnectL( aSession, aRecordId, aReadOnly ) ); - return err; - } - -// --------------------------------------------------------------------------- -// Creates the flat buffer and connects the subsession to a test record. -// The test record must exist. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabaseRecord::DoConnectL( - RDiagResultsDatabase& aSession, - TUid aRecordId, - TBool aReadOnly ) - { - LOGME("RDiagResultsDatabaseRecord::DoConnectL"); - if (iBuffer==NULL) - { - iBuffer = CBufFlat::NewL(KResultsDatabaseGranuality); - iBuffer->ResizeL(KResultsDatabaseSubsessionBufferLength); - if (iBuffer==NULL) - User::Leave( KErrNoMemory ); - } - - iOpen = ETrue; - - TPckgBuf uid( aRecordId ); - TPckgBuf readonlyPckg( aReadOnly ); - User::LeaveIfError( CreateSubSession( aSession, - DiagResultsDbCommon::EConnectSubsession, - TIpcArgs(&uid, &readonlyPckg) )); - } - - -// --------------------------------------------------------------------------- -// Create a new subsession and create a new test record. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::CreateNewRecord ( - RDiagResultsDatabase& aSession, - TUid& aRecordId, - CDiagResultsDbRecordEngineParam& aEngineParam ) - { - if ( iOpen ) - { - return KErrAlreadyExists; - } - - TRAPD( err, DoCreateNewRecordL( aSession, aRecordId, aEngineParam) ); - return err; - } - -// --------------------------------------------------------------------------- -// Get parameters that are needed when resuming test session. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::GetEngineParam( - CDiagResultsDbRecordEngineParam*& aEngineParam ) const - { - TRAPD(err, DoGetEngineParamL( aEngineParam ) ); - return err; - } - - -// --------------------------------------------------------------------------- -// Leaving version of GetEngineParam. Serialize EngineParam class. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabaseRecord::DoGetEngineParamL( - CDiagResultsDbRecordEngineParam*& aEngineParam ) const - { - iBuffer->Delete( 0, iBuffer->Size() ); - iBuffer->ResizeL( KResultsDatabaseSubsessionBufferLength ); - - TPtr8 ptr ( iBuffer->Ptr(0) ); - //Now ask server to serialize object into this buffer - TInt ret = SendReceive( DiagResultsDbCommon::ESubsessionGetEngineParam, - TIpcArgs(&ptr) ); - - while ( ret == KErrOverflow ) - { - iBuffer->ResizeL( iBuffer->Size() - + KResultsDatabaseSubsessionBufferLength ); - ptr.Set( iBuffer->Ptr(0) ); - ret = SendReceive( DiagResultsDbCommon::ESubsessionGetEngineParam, - TIpcArgs(&ptr) ); - } - - if ( ret != KErrNone ) - { - User::Leave (ret); - } - - //Stream contains the serialized array - RBufReadStream readStream ( *iBuffer ); - CleanupClosePushL ( readStream ); - - //Construct new test result. - CDiagResultsDbRecordEngineParam* params = - CDiagResultsDbRecordEngineParam::NewL( readStream ); - aEngineParam = params; - - CleanupStack::PopAndDestroy( &readStream ); - - iBuffer->Delete(0, iBuffer->Size() ); - } -// --------------------------------------------------------------------------- -// Create the flat buffer and create the subsession. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabaseRecord::DoCreateNewRecordL ( - RDiagResultsDatabase& aSession, - TUid& aRecordId, - CDiagResultsDbRecordEngineParam& aEngineParam ) - { - if (iBuffer==NULL) - { - iBuffer = CBufFlat::NewL(KResultsDatabaseGranuality); - iBuffer->ResizeL(KResultsDatabaseSubsessionBufferLength); - if (iBuffer==NULL) - User::Leave( KErrNoMemory ); - } - - iBuffer->Delete( 0, iBuffer->Size() ); - iBuffer->ResizeL( KResultsDatabaseSubsessionBufferLength ); - - TPtr8 ptr ( iBuffer->Ptr(0) ); - - TRAPD( error, WriteEngineParamIntoBufferL( aEngineParam ) ); - - while ( error == KErrOverflow ) - { - iBuffer->ResizeL( iBuffer->Size() + KResultsDatabaseSubsessionBufferLength ); - ptr.Set( iBuffer->Ptr(0) ); - TRAP( error, WriteEngineParamIntoBufferL( aEngineParam) ); - } - - User::LeaveIfError ( error ); - - TPckgBuf pckg; - - TInt err = CreateSubSession( aSession, - DiagResultsDbCommon::ESubsessionCreateNewRecord, - TIpcArgs(&pckg, &ptr) ); - aRecordId = pckg(); - if ( err == KErrNone ) - { - iOpen = ETrue; - } - - User::LeaveIfError( err ); - } - -// --------------------------------------------------------------------------- -// Write engine parameters into the buffer. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabaseRecord::WriteEngineParamIntoBufferL( - CDiagResultsDbRecordEngineParam& aEngineParam ) - { - RBufWriteStream writeStream ( *iBuffer ); - CleanupClosePushL( writeStream ); - - aEngineParam.ExternalizeL( writeStream ); - - writeStream.CommitL(); - CleanupStack::PopAndDestroy(); - } - -// --------------------------------------------------------------------------- -// Close the subsession. -// --------------------------------------------------------------------------- -// -EXPORT_C void RDiagResultsDatabaseRecord::Close() - { - if ( iOpen ) - { - CloseSubSession( DiagResultsDbCommon::ECloseSubsession ); - } - - iOpen = EFalse; - } - -// --------------------------------------------------------------------------- - -// See ResumeTestRecord. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::Suspend() - { - return SendReceive ( DiagResultsDbCommon::ESubsessionSuspend ); - } - -// --------------------------------------------------------------------------- -// Has this test record been suspended. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::IsSuspended( TBool& aSuspended ) const - { - TPckgBuf pckg; - TInt err = SendReceive( DiagResultsDbCommon::ESubsessionIsSuspended, - TIpcArgs(&pckg) ); - aSuspended = pckg(); - return err; - } - -// --------------------------------------------------------------------------- -// Returns test record Id that this subsession represents. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::GetTestRecordId( - TUid& aRecordUid ) const - { - TPckgBuf pckg; - TInt err = SendReceive( DiagResultsDbCommon::ESubsessionGetTestRecordId, - TIpcArgs(&pckg) ); - aRecordUid = pckg(); - return err; - } - - -// --------------------------------------------------------------------------- -// Test record completion. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::TestCompleted( - TBool aFullyComplete ) - { - TPckgBuf pckg (aFullyComplete); - return SendReceive ( DiagResultsDbCommon::ESubsessionTestCompleted, - TIpcArgs(&pckg) ); - } - -// --------------------------------------------------------------------------- -// GetStatus returns current record status. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::GetStatus( - TRecordStatus& aRecordStatus ) const - { - TPckgBuf pckg; - TInt err = SendReceive( DiagResultsDbCommon::ESubsessionGetStatus, - TIpcArgs(&pckg) ); - aRecordStatus = pckg(); - return err; - } - -// --------------------------------------------------------------------------- -// Indicates has the subsession been written into the DB file. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::IsTestCompleted( - TBool& aCompleted ) const - { - TPckgBuf pckg; - TInt err = SendReceive( DiagResultsDbCommon::ESubsessionIsTestCompleted, - TIpcArgs(&pckg) ); - aCompleted = pckg(); - return err; - } - - -// --------------------------------------------------------------------------- -// Returns record overview. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::GetRecordInfo ( - TDiagResultsDatabaseTestRecordInfo& aInfo ) const - { - TPckgBuf pckg; - TInt err = SendReceive( DiagResultsDbCommon::ESubsessionGetRecordInfo, - TIpcArgs(&pckg) ); - aInfo = pckg(); - return err; - } - -// --------------------------------------------------------------------------- -// Get all test plug-in uids that are stored in the test record. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::GetTestUids ( - CArrayFixFlat& aTestUidArray ) const - { - TRAPD( err, DoGetTestUidsL( aTestUidArray )); - return err; - } - -// --------------------------------------------------------------------------- -// Resize flat buffer, make the request. If flat buffer is not large enough -// grow the size and make the request again. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabaseRecord::DoGetTestUidsL ( - CArrayFixFlat& aTestUidArray ) const - { - iBuffer->Delete( 0, iBuffer->Size() ); - iBuffer->ResizeL( KResultsDatabaseSubsessionBufferLength ); - - TPtr8 ptr ( iBuffer->Ptr(0) ); - //Now ask server to serialize object into this buffer - TInt ret = SendReceive( DiagResultsDbCommon::ESubsessionGetTestUids, - TIpcArgs(&ptr) ); - - while ( ret == KErrOverflow ) - { - iBuffer->ResizeL( iBuffer->Size() + - KResultsDatabaseSubsessionBufferLength ); - ptr.Set( iBuffer->Ptr(0) ); - ret = SendReceive( DiagResultsDbCommon::ESubsessionGetTestUids, - TIpcArgs(&ptr) ); - } - if ( ret != KErrNone ) - { - User::Leave (ret); - } - - RBufReadStream readStream ( *iBuffer ); - CleanupClosePushL( readStream ); - TInt count = readStream.ReadInt16L(); - - for ( TInt i = 0; i < count; ++i ) - { - aTestUidArray.AppendL ( TUid::Uid( readStream.ReadInt32L() )); - } - - CleanupStack::PopAndDestroy( &readStream ); - } - -// --------------------------------------------------------------------------- -// Store one test result into the test record. The method does not write -// anything. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::LogTestResult ( - TRequestStatus& aStatus, - const CDiagResultsDatabaseItem& aResultItem ) - { - TRAPD(err, DoLogTestResultL( aStatus, aResultItem ) ); - return err; - } - - -// --------------------------------------------------------------------------- -// Cancel LogTestResultL. -// --------------------------------------------------------------------------- -// -EXPORT_C void RDiagResultsDatabaseRecord::CancelLogTestResult() const - { - SendReceive( DiagResultsDbCommon::ESubsessionCancelLogTestResult ); - } - -// --------------------------------------------------------------------------- -// Resize flat buffer and serialize the object that needs to be transferred. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabaseRecord::DoLogTestResultL ( - TRequestStatus& aStatus, - const CDiagResultsDatabaseItem& aResultItem ) - { - iBuffer->Delete( 0, iBuffer->Size() ); - - //Make sure that the buffer is big enough for the item. - iBuffer->ResizeL( KResultsDatabaseSubsessionBufferLength ); - - TRAPD( error, WriteDatabaseItemIntoBufferL( aResultItem )); - - while ( error == KErrOverflow ) - { - iBuffer->ResizeL( iBuffer->Size() + aResultItem.Size() ); - TRAP( error, WriteDatabaseItemIntoBufferL( aResultItem )); - } - - if ( error != KErrNone ) - { - TRequestStatus* status = &aStatus; - User::RequestComplete( status, error ); - return; - } - - //Note that iPtr has to be member variable. If a new TPtr8 is defined in - //here it can go out of scope i.e. reading will fail in the server side. - //Synchronous SendReceive would not have that problem. - iPtr.Set( iBuffer->Ptr(0) ); - SendReceive( DiagResultsDbCommon::ESubsessionLogTestResult, - TIpcArgs(&iPtr), aStatus ); - - } - - -// --------------------------------------------------------------------------- -// Write CDiagResultsDatabaseItem into a buffer. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabaseRecord::WriteDatabaseItemIntoBufferL( - const CDiagResultsDatabaseItem& aResultItem ) - { - RBufWriteStream writeStream ( *iBuffer ); - CleanupClosePushL( writeStream ); - aResultItem.ExternalizeL( writeStream ); - writeStream.CommitL(); - CleanupStack::PopAndDestroy(); - } - -// --------------------------------------------------------------------------- -// Get test results of the test record. -// --------------------------------------------------------------------------- -// - EXPORT_C TInt RDiagResultsDatabaseRecord::GetTestResults ( - RPointerArray& aResultsArray ) const - { - - TRAPD( err, DoGetTestResultsL( aResultsArray ) ); - return err; - } - -// --------------------------------------------------------------------------- -// Retrieve test results. Server serializes data into the flat buffer. -// Read stream can be used to deserialize data. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabaseRecord::DoGetTestResultsL ( - RPointerArray& aResultsArray ) const - { - iBuffer->Delete( 0, iBuffer->Size() ); - iBuffer->ResizeL( KResultsDatabaseSubsessionBufferLength ); - - TPtr8 ptr ( iBuffer->Ptr(0)); - //Now ask server to serialize object into this buffer - TInt ret = SendReceive( DiagResultsDbCommon::ESubsessionGetTestResults, - TIpcArgs(&ptr) ); - - while ( ret == KErrOverflow ) - { - iBuffer->ResizeL( iBuffer->Size() + - KResultsDatabaseSubsessionBufferLength ); - ptr.Set( iBuffer->Ptr(0) ); - ret = SendReceive( DiagResultsDbCommon::ESubsessionGetTestResults, - TIpcArgs(&ptr) ); - } - if ( ret != KErrNone ) - { - User::Leave (ret); - } - - RBufReadStream readStream ( *iBuffer ); - TInt count = readStream.ReadInt16L(); - - for ( TInt i = 0; i < count; ++i ) - { - aResultsArray.AppendL (CDiagResultsDatabaseItem::NewL( readStream ) ); - } - } - -// --------------------------------------------------------------------------- -// Get only one result from the test record. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RDiagResultsDatabaseRecord::GetTestResult ( - TUid aPluginUid, - CDiagResultsDatabaseItem*& aResultItem ) const - { - TRAPD( err, DoGetTestResultL ( aPluginUid, aResultItem ) ); - return err; - } - -// --------------------------------------------------------------------------- -// Resize flat buffer and use read stream to retrieve data into DB item. -// --------------------------------------------------------------------------- -// -void RDiagResultsDatabaseRecord::DoGetTestResultL ( - TUid aPluginUid, - CDiagResultsDatabaseItem*& aResultItem ) const - { - iBuffer->Delete( 0, iBuffer->Size() ); - iBuffer->ResizeL( KResultsDatabaseSubsessionBufferLength ); - - TPtr8 ptr ( iBuffer->Ptr(0) ); - TPckgBuf uid( aPluginUid ); - //Now ask server to serialize object into this buffer - TInt ret = SendReceive( DiagResultsDbCommon::ESubsessionGetTestResult, - TIpcArgs(&uid, &ptr) ); - - while ( ret == KErrOverflow ) - { - iBuffer->ResizeL( iBuffer->Size() - + KResultsDatabaseSubsessionBufferLength ); - ptr.Set( iBuffer->Ptr(0) ); - ret = SendReceive( DiagResultsDbCommon::ESubsessionGetTestResult, - TIpcArgs(&uid, &ptr) ); - } - - if ( ret != KErrNone ) - { - User::Leave (ret); - } - - //Stream contains the serialized array - RBufReadStream readStream ( *iBuffer ); - CleanupClosePushL( readStream ); - - //Construct new test result. - CDiagResultsDatabaseItem* item = - CDiagResultsDatabaseItem::NewL( readStream ); - aResultItem = item; - - CleanupStack::PopAndDestroy( &readStream ); - - iBuffer->Delete(0, iBuffer->Size() ); - } - -// --------------------------------------------------------------------------- -// Starts server if it's not already running. -// --------------------------------------------------------------------------- -// -TInt DiagResultsDbCommon::StartServer() - { - LOGME("DiagResultsDbCommon::StartServer"); - TInt res(KErrNone); - // create server - if one of this name does not already exist - TFindServer findServer(KDiagResultsDatabaseServerName); - TFullName name; - if (findServer.Next(name)!=KErrNone) // we don't exist already - { - TRequestStatus status; - RProcess server; - // Create the server process - res = server.Create(KDiagResultsDatabaseServerExe, KNullDesC); - - if( res!=KErrNone ) // thread created ok - now start it going - { - return res; - } - - server.Rendezvous( status ); - if( status != KRequestPending ) - { - server.Kill(0); // abort start-up - } - else - { - server.Resume(); // // wait for server start-up. - } - - // Wait until the completion of the server creation - User::WaitForRequest( status ); - if( status != KErrNone ) - { - server.Close(); - return status.Int(); - } - // Server created successfully - server.Close(); // we're no longer interested in the other process - } - LOGME1("startserver %d",res); - return res; - } - -// --------------------------------------------------------------------------- -// DLL entry point -// --------------------------------------------------------------------------- -// -#ifndef EKA2 -GLDEF_C TInt E32Dll(TDllReason /*aReason*/) - { - return(KErrNone); - } -#endif - - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/src/diagresultsdatabaseItem.cpp --- a/devicediagnosticsfw/diagresultsdb/client/src/diagresultsdatabaseItem.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,332 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagResultsDatabaseItem -* -*/ - - -#include - -#include "diagresultsdatabaseitem.h" - -// --------------------------------------------------------------------------- -// NewL.Used when creating the object from a stream that contains the -// serialized object. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem* CDiagResultsDatabaseItem::NewL ( - RReadStream& aStream ) - { - CDiagResultsDatabaseItem* self = new( ELeave ) CDiagResultsDatabaseItem(); - CleanupStack::PushL( self ); - self->ConstructL( aStream ); - CleanupStack::Pop(); - return self; - } - -// --------------------------------------------------------------------------- -// NewL. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem* CDiagResultsDatabaseItem::NewL ( - TUid aTestUid, - TBool aDependencyExecution, - TResult aResult, - TTime aStartTime, - TTime aEndTime, - CBufFlat* aDetailsData ) - { - - CDiagResultsDatabaseItem* self = new( ELeave ) CDiagResultsDatabaseItem( - aTestUid, aDependencyExecution, aResult, - aStartTime, aEndTime, aDetailsData ); - return self; - } - -// --------------------------------------------------------------------------- -// NewLC. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem* CDiagResultsDatabaseItem::NewLC ( - TUid aTestUid, - TBool aDependencyExecution, - TResult aResult, - TTime aStartTime, - TTime aEndTime, - CBufFlat* aDetailsData ) - { - CDiagResultsDatabaseItem* self = new( ELeave ) CDiagResultsDatabaseItem( - aTestUid, aDependencyExecution, aResult, - aStartTime, aEndTime, aDetailsData ); - CleanupStack::PushL( self ); - return self; - } - -// --------------------------------------------------------------------------- -// NewL. Copy constructor -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem* CDiagResultsDatabaseItem::NewL ( - const CDiagResultsDatabaseItem& aOriginal ) - { - const CBufFlat* detailData = aOriginal.DetailsData(); - - CBufFlat* detailDataCopy = NULL; - - if ( detailData ) - { - detailDataCopy = CBufFlat::NewL( detailData->Size() ); - CleanupStack::PushL( detailDataCopy ); - - TPtr8 ptr = detailDataCopy->Ptr( 0 ); - detailData->Read( 0, ptr ); - } - - CDiagResultsDatabaseItem* self = CDiagResultsDatabaseItem::NewL( - aOriginal.TestUid(), - aOriginal.WasDependency(), - aOriginal.TestResult(), - aOriginal.TimeStarted(), - aOriginal.TimeCompleted(), - detailDataCopy ); - - if ( detailDataCopy ) - { - CleanupStack::Pop( detailDataCopy ); - } - - return self; - } - -// ConstructL. -// --------------------------------------------------------------------------- -// -void CDiagResultsDatabaseItem::ConstructL ( RReadStream& aStream ) - { - InternalizeL( aStream ); - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem::~CDiagResultsDatabaseItem() - { - if ( iDetailsData ) - { - iDetailsData->Reset(); - } - - delete iDetailsData; - iDetailsData = NULL; - } - -// --------------------------------------------------------------------------- -// C++ default constructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem::CDiagResultsDatabaseItem() - { - - } - -// --------------------------------------------------------------------------- -// Getter. -// --------------------------------------------------------------------------- -// -EXPORT_C TUid CDiagResultsDatabaseItem::TestUid() const - { - return iTestUid; - } - -// --------------------------------------------------------------------------- -// Getter. -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CDiagResultsDatabaseItem::WasDependency() const - { - return iDependencyExecution; - } - -// --------------------------------------------------------------------------- -// Getter. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDatabaseItem::TResult - CDiagResultsDatabaseItem::TestResult() const - { - return iResult; - } - -// --------------------------------------------------------------------------- -// Getter. -// --------------------------------------------------------------------------- -// -EXPORT_C TTime CDiagResultsDatabaseItem::TimeStarted() const - { - return iStartTime; - } - -// --------------------------------------------------------------------------- -// Getter. -// --------------------------------------------------------------------------- -// -EXPORT_C TTime CDiagResultsDatabaseItem::TimeCompleted() const - { - return iEndTime; - } - -// --------------------------------------------------------------------------- -// Getter. -// --------------------------------------------------------------------------- -// -EXPORT_C const CBufFlat* CDiagResultsDatabaseItem::DetailsData() const - { - return iDetailsData; - } - -// --------------------------------------------------------------------------- -// Externalize the object into writestream. -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultsDatabaseItem::ExternalizeL( - RWriteStream& aStream ) const - { - aStream.WriteInt32L ( iTestUid.iUid ); - aStream.WriteUint8L ( iDependencyExecution ); - aStream.WriteInt16L ( iResult ); - - WriteTimeToStreamL( aStream, iStartTime ); - WriteTimeToStreamL( aStream, iEndTime ); - - if ( iDetailsData == NULL ) - { - aStream.WriteUint32L ( 0 ); - } - else - { - aStream.WriteUint32L ( iDetailsData->Size() ); - - if ( iDetailsData->Size() > 0 ) - { - aStream.WriteL( iDetailsData->Ptr(0), iDetailsData->Size() ); - } - } - } - - -// --------------------------------------------------------------------------- -// Bytes are calculated from ExternalizeL method. (216 bits = 27 bytes). -// 32 + 8 + 16 + 64 + 64 + 32 = 216 bits. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CDiagResultsDatabaseItem::Size() const - { - if ( iDetailsData == NULL ) - { - return 27; - } - - return (27 + iDetailsData->Size() ); - } - -// --------------------------------------------------------------------------- -// Internalize the object from a stream. -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultsDatabaseItem::InternalizeL( RReadStream& aStream ) - { - iTestUid = TUid::Uid( aStream.ReadInt32L () ); - iDependencyExecution = aStream.ReadUint8L(); - iResult = (TResult ) aStream.ReadInt16L(); - - ReadTimeFromStreamL( aStream, iStartTime ); - ReadTimeFromStreamL( aStream, iEndTime ); - - TInt size = aStream.ReadUint32L(); - - if ( size == 0 ) - { - iDetailsData = NULL; - } - else - { - iDetailsData = CBufFlat::NewL( 50 ); - iDetailsData->ResizeL( size ); - } - - - if ( size > 0 ) - { - TPtr8 ptr = iDetailsData->Ptr(0); - aStream.ReadL( ptr, size); - } - } - -// --------------------------------------------------------------------------- -// Helper function. -// --------------------------------------------------------------------------- -// -void CDiagResultsDatabaseItem::WriteTimeToStreamL( - RWriteStream& aStream, - const TTime& aTime ) const - { - TInt64 time = aTime.Int64(); - - TInt32 low_time = I64LOW( time ); - TInt32 high_time = I64HIGH( time ); - - aStream.WriteInt32L( low_time ); - aStream.WriteInt32L( high_time ); - } - -// --------------------------------------------------------------------------- -// Helper function. -// --------------------------------------------------------------------------- -// -void CDiagResultsDatabaseItem::ReadTimeFromStreamL( - RReadStream& aStream, - TTime& aTime ) - { - TInt32 low_time = aStream.ReadInt32L(); - TInt32 high_time = aStream.ReadInt32L(); - - TInt64 readTime = MAKE_TINT64(high_time,low_time); - - aTime = TTime(readTime); - } - -// --------------------------------------------------------------------------- -// Constructor that sets the values. -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem::CDiagResultsDatabaseItem ( - TUid aTestUid, - TBool aDependencyExecution, - TResult aResult, - TTime aStartTime, - TTime aEndTime, - CBufFlat* aDetailsData ) - { - iTestUid = aTestUid; - iDependencyExecution = aDependencyExecution; - iResult = aResult; - iStartTime = aStartTime; - iEndTime = aEndTime; - iDetailsData = aDetailsData; - } - - - - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/src/diagresultsdatabasetestrecordInfo.cpp --- a/devicediagnosticsfw/diagresultsdb/client/src/diagresultsdatabasetestrecordInfo.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of TDiagResultsDatabaseTestRecordInfo -* -*/ - - -// SYSTEM INCLUDE FILES -#include -#include -#include - -// USER INCLUDE FILES -#include "diagresultsdatabasetestrecordinfo.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -EXPORT_C TDiagResultsDatabaseTestRecordInfo::TDiagResultsDatabaseTestRecordInfo() - { - iRecordId = TUid::Null(); - iDbUid = TUid::Null(); - iTestCount = 0; - iCompleted = EFalse; - } - -// --------------------------------------------------------------------------- -// Read TDiagResultsDatabaseTestRecordInfo object from a stream. -// --------------------------------------------------------------------------- -// -EXPORT_C void TDiagResultsDatabaseTestRecordInfo::InternalizeL( - RReadStream& aStream ) - { - iRecordId = TUid::Uid( aStream.ReadInt32L() ); - - ReadTimeFromStreamL( aStream, iDrmStartTime ); - ReadTimeFromStreamL( aStream, iDrmFinishTime ); - - ReadTimeFromStreamL( aStream, iStartTime ); - ReadTimeFromStreamL( aStream, iFinishTime ); - - iDbUid = TUid::Uid( aStream.ReadInt32L() ); - iTestCount = aStream.ReadInt32L(); - - iRecordStatus = (TDbRecordStatus) aStream.ReadUint8L(); - - iCompleted = (TBool) aStream.ReadUint8L(); - } - -// --------------------------------------------------------------------------- -// Write TDiagResultsDatabaseTestRecordInfo object into a stream. -// --------------------------------------------------------------------------- -// -EXPORT_C void TDiagResultsDatabaseTestRecordInfo::ExternalizeL( - RWriteStream& aStream ) const - { - aStream.WriteInt32L( iRecordId.iUid ); - - WriteTimeToStreamL( aStream, iDrmStartTime ); - WriteTimeToStreamL( aStream, iDrmFinishTime ); - - WriteTimeToStreamL( aStream, iStartTime ); - WriteTimeToStreamL( aStream, iFinishTime ); - - aStream.WriteInt32L( iDbUid.iUid ); - aStream.WriteInt32L( iTestCount ); - - aStream.WriteUint8L( iRecordStatus ); - - aStream.WriteUint8L( iCompleted ); - } - -// --------------------------------------------------------------------------- -// Helper function to write TTime into a stream. -// --------------------------------------------------------------------------- -// -void TDiagResultsDatabaseTestRecordInfo::WriteTimeToStreamL( - RWriteStream& aStream, - const TTime& aTime ) const - { - TInt64 time = aTime.Int64(); - - TInt32 low_time = I64LOW( time ); - TInt32 high_time = I64HIGH( time ); - - aStream.WriteInt32L( low_time ); - aStream.WriteInt32L( high_time ); - } - -// --------------------------------------------------------------------------- -// Helper function to read TTime from a stream. -// --------------------------------------------------------------------------- -// -void TDiagResultsDatabaseTestRecordInfo::ReadTimeFromStreamL( - RReadStream& aStream, - TTime& aTime ) - { - TInt32 low_time = aStream.ReadInt32L(); - TInt32 high_time = aStream.ReadInt32L(); - - TInt64 readTime = MAKE_TINT64(high_time,low_time); - - aTime = TTime(readTime); - } - -// --------------------------------------------------------------------------- -// Get secure DRM time. -// --------------------------------------------------------------------------- -// -EXPORT_C TTime TDiagResultsDatabaseTestRecordInfo::DRMTimeL() - { - // Get the current time. - TTime currTime = 0; - DRM::CDrmServiceApi* drmApi = DRM::CDrmServiceApi::NewLC(); - TInt timeZone = 0; - DRMClock::ESecurityLevel secLevel = DRMClock::KInsecure; - TInt err = drmApi->GetSecureTime( currTime, timeZone, secLevel ); - CleanupStack::PopAndDestroy( drmApi ); - User::LeaveIfError( err ); - return currTime; - } diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/src/diagresultsdbrecordengineparam.cpp --- a/devicediagnosticsfw/diagresultsdb/client/src/diagresultsdbrecordengineparam.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,194 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagResultsDbRecordEngineParam -* -*/ - - -#include - -#include "diagresultsdbrecordengineparam.h" - - -// --------------------------------------------------------------------------- -// NewL.Used when creating the object from a stream that contains the -// serialized object. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDbRecordEngineParam* CDiagResultsDbRecordEngineParam::NewL ( - RReadStream& aStream ) - { - CDiagResultsDbRecordEngineParam* self = - new( ELeave ) CDiagResultsDbRecordEngineParam(); - - CleanupStack::PushL( self ); - self->ConstructL( aStream ); - CleanupStack::Pop(); - return self; - } - -// --------------------------------------------------------------------------- -// NewL -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDbRecordEngineParam* CDiagResultsDbRecordEngineParam::NewL - ( - RArray* aInitialUids, - TBool aDependencyExecution - ) - { - CDiagResultsDbRecordEngineParam* self = - new( ELeave ) CDiagResultsDbRecordEngineParam( - aInitialUids, - aDependencyExecution ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - - -// --------------------------------------------------------------------------- -// NewLC. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDbRecordEngineParam* CDiagResultsDbRecordEngineParam::NewLC ( - RArray* aInitialUids, - TBool aDependencyExecution - ) - { - CDiagResultsDbRecordEngineParam* self = - new( ELeave ) CDiagResultsDbRecordEngineParam( - aInitialUids, - aDependencyExecution ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// ConstructL. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbRecordEngineParam::ConstructL ( RReadStream& aStream ) - { - InternalizeL( aStream ); - } - -// --------------------------------------------------------------------------- -// ConstructL. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbRecordEngineParam::ConstructL () - { - if ( !iExecutionUids ) - { - User::Leave( KErrArgument ); - } - - } - - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -EXPORT_C CDiagResultsDbRecordEngineParam::~CDiagResultsDbRecordEngineParam() - { - iExecutionUids->Close(); - delete iExecutionUids; - iExecutionUids = NULL; - } - -// --------------------------------------------------------------------------- -// C++ default constructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbRecordEngineParam::CDiagResultsDbRecordEngineParam() - { - - } - -// --------------------------------------------------------------------------- -// Return execution uid array. -// --------------------------------------------------------------------------- -// -EXPORT_C const RArray& CDiagResultsDbRecordEngineParam::ExecutionsUidArray() const - { - return *iExecutionUids; - } - -// --------------------------------------------------------------------------- -// Return dependency execution. -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CDiagResultsDbRecordEngineParam::DependencyExecution() const - { - return iDependencyExecution; - } - -// --------------------------------------------------------------------------- -// Externalize this object into a stream. -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultsDbRecordEngineParam::ExternalizeL( - RWriteStream& aStream ) const - { - aStream.WriteInt16L( iExecutionUids->Count() ); - - for (TInt i=0; i < iExecutionUids->Count(); ++i ) - { - aStream.WriteInt32L( (*iExecutionUids)[i].iUid ); - } - - aStream.WriteUint8L ( iDependencyExecution ); - } - - -// --------------------------------------------------------------------------- -// Internalize the object from a stream. -// --------------------------------------------------------------------------- -// -EXPORT_C void CDiagResultsDbRecordEngineParam::InternalizeL( RReadStream& aStream ) - { - iExecutionUids = new (ELeave) RArray(10); - - TInt length = aStream.ReadInt16L(); - - for ( TInt i=0; i < length; ++i ) - { - - iExecutionUids->AppendL( TUid::Uid( aStream.ReadInt32L() ) ); - } - - iDependencyExecution = aStream.ReadUint8L(); - } - - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbRecordEngineParam::CDiagResultsDbRecordEngineParam ( - RArray* aInitialUids, - TBool aDependencyExecution ) - { - iExecutionUids = aInitialUids; - iDependencyExecution = aDependencyExecution; - } - - - - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/client/src/diagresultsdbrecordinfoarraypacked.cpp --- a/devicediagnosticsfw/diagresultsdb/client/src/diagresultsdbrecordinfoarraypacked.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of -* -*/ - - -// SYSTEM INCLUDE FILES -#include -#include - -// USER INCLUDE FILES -#include "diagresultsdbrecordinfoarraypacked.h" -#include "diagresultsdatabasetestrecordinfo.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -EXPORT_C TDiagResultsDbRecordInfoArrayPacked::TDiagResultsDbRecordInfoArrayPacked( - CBufFlat*& aBuffer): iBuffer(aBuffer) - { - - } - -// --------------------------------------------------------------------------- -// Packs the array for sending across IPC. Flat buffer is used to deliver data. -// --------------------------------------------------------------------------- -// -EXPORT_C void TDiagResultsDbRecordInfoArrayPacked::PackArrayL( - const CArrayFixFlat& aInfoArray) - { - RBufWriteStream writeStream ( *iBuffer ); - CleanupClosePushL( writeStream ); - writeStream.WriteInt16L( aInfoArray.Count() ); - - for (TInt i=0; i < aInfoArray.Count(); ++i ) - { - aInfoArray[i].ExternalizeL( writeStream ); - } - - CleanupStack::PopAndDestroy( &writeStream ); - } - -// --------------------------------------------------------------------------- -// Unpack the array. -// --------------------------------------------------------------------------- -// -EXPORT_C void TDiagResultsDbRecordInfoArrayPacked::UnpackArrayL( - CArrayFixFlat& aInfoArray) - { - RBufReadStream readStream ( *iBuffer ); - CleanupClosePushL( readStream ); - - //how many cells needs to be unpacked - TInt length = readStream.ReadInt16L(); - - for ( TInt i=0; i < length; ++i ) - { - TDiagResultsDatabaseTestRecordInfo info = - TDiagResultsDatabaseTestRecordInfo(); - info.InternalizeL( readStream ); - aInfoArray.AppendL( info ) ; - } - CleanupStack::PopAndDestroy( &readStream ); - } diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/common/diagresultsdatabasecommon.h --- a/devicediagnosticsfw/diagresultsdb/common/diagresultsdatabasecommon.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Contains common datatypes. -* -*/ - - -#ifndef DIAG_RESULTS_DATABASE_COMMON_H -#define DIAG_RESULTS_DATABASE_COMMON_H - -#include // TTime -#include - -// CONSTANTS -_LIT( KDiagLogFolder, "DiagFramework" ); -_LIT( KDiagLogFile1, "LOG1.TXT" ); - -#define LOGME( aFormat ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::Write( KDiagLogFolder(), \ - KDiagLogFile1(), \ - EFileLoggingModeAppend, \ - KFormat() ); \ - } - -#define LOGME1( aFormat, a ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::WriteFormat( KDiagLogFolder(), \ - KDiagLogFile1(), \ - EFileLoggingModeAppend, \ - TRefByValue( KFormat() ), \ - a ); \ - } - -// FORWARD DECLARATIONS - -// CONSTANTS -const TUint KDiagResultsDatabaseServerMajor(1); -const TUint KDiagResultsDatabaseServerMinor(1); -const TUint KDiagResultsDatabaseServerBuild(0); - -_LIT(KDiagResultsDatabaseServerName,"diagresultsdatabaseserver"); -_LIT(KDiagResultsDatabaseServerExe,"diagresultsdatabaseserver.exe"); - -/** -* Namespace for results database common datatypes. -* -* @since S60 v5.0 -*/ -namespace DiagResultsDbCommon - { - - // Server start function - TInt StartServer(); - - // ENUMERATIONS - enum TServerOpCodes - { - EConnect, - EClose, - EGetRecordCount, - EConnectSubsession, - ECloseSubsession, - EGetLastRecord, - EGetLastNotCompletedRecord, - EGetRecordList, - EGetRecordInfoList, - EInitiateGetLastResults, - ECancelInitiateGetLastResults, - EGetLastResults, - EInitiateGetSingleLastResult, - EGetSingleLastResult, - - ESubsessionGetTestRecordId, - ESubsessionTestCompleted, - ESubsessionSuspend, - ESubsessionIsTestCompleted, - ESubsessionIsSuspended, - ESubsessionCreateNewRecord, - ESubsessionGetRecordInfo, - ESubsessionGetTestUids, - ESubsessionGetEngineParam, - ESubsessionLogTestResult, - ESubsessionCancelLogTestResult, - ESubsessionGetStatus, - ESubsessionGetTestResult, - ESubsessionGetTestResults, - ENotSupported - }; - - // reasons for server panic - enum TPanics - { - EBadRequest, - EBadDescriptor, - EMainSchedulerError, - ESvrCreateServer, - ESvrStartServer, - ESvrCreateSubsession, - EServerCorruptFileDelete, - EServerFileCreationError, - EServerStoreRevertError, - ECreateTrapCleanup, - EDatabaseCompact, - EDatabaseCompactCommit, - EGetLastResultsMismatch, - ECentralRepositoryFailure, - EDoCompleteTestResultL, - EDoCompleteTestRecordL, - EStoreTestResultRevertLError, - EStoreRecordCompleteRevertLError, - EStoreNullPointer, - EGetStatusPanic, - EUnknownLastResultState, - EIncorrectExtendNumberForLastResults, - EIncorrectStreamId, - EUnableToDelete, - EMaximumFileSizeExceeded, - EUnknownDeletionAlgorithm, - ENotImplementedYet, - }; - - } - -#endif //DIAG_RESULTS_DATABASE_COMMON_H - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/common/diagresultsdbprivatecrkeys.h --- a/devicediagnosticsfw/diagresultsdb/common/diagresultsdbprivatecrkeys.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2007 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: Private Central Repository keys. -* -*/ - - -#ifndef DIAGRESULTSDBPRIVATECRKEYS_H -#define DIAGRESULTSDBPRIVATECRKEYS_H - -// INCLUDES - -#include - -// ============================================================================= -// Diagnostics Results DB -// ============================================================================= - -const TUid KCRUidDiagnosticsResults = { 0x2000B45D }; - -/** -* The maximum number of test records inside each DB file. -**/ -const TUint32 KDiagDatabaseMaxRecordCount = 0x00000001; - -/** -* The maximum file size for DB file in bytes. -**/ -const TUint32 KDiagDatabaseMaxFileSize = 0x00000002; - -/** -* The value indicates which deletion algorithm the DB uses. The First alternative -* deletes test records when max record count is exceeded (0). The other uses a buffer -* to store last results (1) and keeps the max record count. -**/ -const TUint32 KDiagDatabaseDeletionAlgorithm = 0x00000003; - - -#endif // DIAGRESULTSDBPRIVATECRKEYS_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/cenrep_files/clean_cenrep.bat --- a/devicediagnosticsfw/diagresultsdb/server/cenrep_files/clean_cenrep.bat Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: -rem - -rd /s /q output diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/cenrep_files/keys_diagresultsdb.xls Binary file devicediagnosticsfw/diagresultsdb/server/cenrep_files/keys_diagresultsdb.xls has changed diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/cenrep_files/make_cenrep.bat --- a/devicediagnosticsfw/diagresultsdb/server/cenrep_files/make_cenrep.bat Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: -rem - -@set XLS_FILE=keys_diagresultsdb.xls -@set INI_FILE=2000B45D.txt -@set RELEASE=3.2 - -@set CENREP_DIR=%CD% -@cd \epoc32\tools\cenrep - -cenrep.pl -o "%CENREP_DIR%\output" -l "%CENREP_DIR%\%XLS_FILE%" -p %RELEASE% -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\RELEASE\winscw\udeb\Z\private\10202be9\ -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\RELEASE\winscw\udeb\Z\private\10202be9\ -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\RELEASE\winscw\urel\Z\private\10202be9\ -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\RELEASE\armv5\udeb\Z\private\10202be9\ -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\RELEASE\armv5\urel\Z\private\10202be9\ -copy "%CENREP_DIR%\output\inifiles\%INI_FILE%" \epoc32\data\Z\private\10202be9\ -@cd "%CENREP_DIR%" - -@echo ================= done. Hit any key to continue ================== -@pause diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/cenrep_files/output/inifiles/2000B45D.txt Binary file devicediagnosticsfw/diagresultsdb/server/cenrep_files/output/inifiles/2000B45D.txt has changed diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/cenrep_files/output/key_sheets_info.storable Binary file devicediagnosticsfw/diagresultsdb/server/cenrep_files/output/key_sheets_info.storable has changed diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/cenrep_files/output/rfs/cenrep_rfs.txt --- a/devicediagnosticsfw/diagresultsdb/server/cenrep_files/output/rfs/cenrep_rfs.txt Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -ÿþ \ No newline at end of file diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/conf/diagresultsdb.confml Binary file devicediagnosticsfw/diagresultsdb/server/conf/diagresultsdb.confml has changed diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/conf/diagresultsdb_2000B45d.crml Binary file devicediagnosticsfw/diagresultsdb/server/conf/diagresultsdb_2000B45d.crml has changed diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/group/bld.inf --- a/devicediagnosticsfw/diagresultsdb/server/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* -* Copyright (c) 2007 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: Build information file for Diagnostics Results Database -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -// Generic configuration interface for component cenrep settings -../conf/diagresultsdb.confml MW_LAYER_CONFML(diagresultsdb.confml) -../conf/diagresultsdb_2000B45d.crml MW_LAYER_CRML(diagresultsdb_2000B45D.crml) - -PRJ_MMPFILES -diagresultsdbserver.mmp - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/group/diagresultsdbserver.mmp --- a/devicediagnosticsfw/diagresultsdb/server/group/diagresultsdbserver.mmp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* Copyright (c) 2007 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: Project specification for diagresultsdatabaseserver.exe -* -*/ - - -#include -#include - - -TARGET diagresultsdatabaseserver.exe -TARGETTYPE exe - -UID 0x1000008d 0x10282CD9 -VENDORID VID_DEFAULT - -CAPABILITY CAP_SERVER - -SOURCEPATH ../src -SOURCE diagresultsdbserver.cpp -SOURCE diagresultsdbsession.cpp -SOURCE diagresultsdbtestrecordsubsession.cpp -SOURCE diagresultsdbstore.cpp -SOURCE diagresultsdbtestrecord.cpp -SOURCE diagresultsdbtestrecordhandle.cpp - -SOURCEPATH ../../client/src -SOURCE diagresultsdatabasetestrecordInfo.cpp - -USERINCLUDE . -USERINCLUDE ../inc -USERINCLUDE ../../common -USERINCLUDE ../../client/inc - -// MW Common System Include. -MW_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY estor.lib -LIBRARY flogger.lib -LIBRARY diagresultsdatabase.lib //common items -LIBRARY drmserviceapi.lib -LIBRARY sysutil.lib centralrepository.lib - -EPOCSTACKSIZE 0x4000 -//EPOCHEAPSIZE 0x1000 0x400000 - - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/group/diagresultsdbserver.xml --- a/devicediagnosticsfw/diagresultsdb/server/group/diagresultsdbserver.xml Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2075 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -]> - - - - - WINSCW UDEB - - - - UserSourceTrees - - - AlwaysSearchUserPathstrue - InterpretDOSAndUnixPathsfalse - RequireFrameworkStyleIncludesfalse - SourceRelativeIncludesfalse - UserSearchPaths - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\inc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\common -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\Inc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\Src -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\src -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - - SystemSearchPaths - -SearchPath -Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\oem -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\middleware -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\osextensions -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions\loc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware\loc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions\loc\sc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware\loc\sc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\release\winscw\UDEB -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -PathSymbian_Support\Win32-x86 Support\Libraries\Win32 SDK -PathFormatWindows -PathRootCodeWarrior -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -PathSymbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs -PathFormatWindows -PathRootCodeWarrior -Recursivefalse -FrameworkPathfalse -HostFlagsAll - - - - MWRuntimeSettings_WorkingDirectory - MWRuntimeSettings_CommandLine - MWRuntimeSettings_HostApplication - Pathepoc32\release\winscw\udeb\diagresultsdatabaseserver.exe -PathFormatWindows -PathRoot2 SDKTube - - MWRuntimeSettings_EnvVars - - - LinkerSymbian Linker v2 - PreLinker - PostLinkerSymbian Installer v2 - TargetnameWINSCW UDEB - OutputDirectory - Pathepoc32\release\winscw\udeb -PathFormatWindows -PathRoot2 SDKTube - - SaveEntriesUsingRelativePathsfalse - - - FileMappings - - FileTypeTEXT - FileExtension._i - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension._ii - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.c - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cc - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cfg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.cia - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cpp - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cwlink - Compiler - EditLanguageXML - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cxx - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.def - Compiler - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.h - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.hrh - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.i - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.iby - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ii - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.inf - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ini - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.inl - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.loc - Compiler - EditLanguageC/C++ - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.mmpi - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.pch++ - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.pkg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.policy - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ra - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.resources - CompilerSymbian Resource v2 - EditLanguageXML - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.rh - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rls - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rss - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rsg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.s - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.script - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.txt - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileExtension.a - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.lib - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.dso - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.o - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - - - CacheModDatestrue - DumpBrowserInfofalse - CacheSubprojectstrue - UseThirdPartyDebuggerfalse - BrowserGenerator2 - DebuggerAppPath - Path - PathFormatGeneric - PathRootAbsolute - - DebuggerCmdLineArgs - DebuggerWorkingDir - Path - PathFormatGeneric - PathRootAbsolute - - CodeCompletionPrefixFileName - CodeCompletionMacroFileName - - - ConsoleEncoding0 - LogSystemMessagestrue - AutoTargetDLLsPopUp1 - StopAtWatchpointstrue - PauseWhileRunningfalse - PauseInterval5 - PauseUIFlags0 - AltExePath - Path - PathFormatWindows - PathRootAbsolute - - StopAtTempBPOnLaunchfalse - CacheSymbolicstrue - TempBPFunctionNameE32Main - TempBPType1 - - - Enabledfalse - ConnectionName - DownloadPath - LaunchRemoteAppfalse - RemoteAppPath - CoreID0 - JTAGClockSpeed8000 - IsMultiCorefalse - OSDownloadfalse - UseGlobalOSDownloadfalse - OSDownloadConnectionName - OSDownloadPath - AltDownloadfalse - AltDownloadConnectionName - - - MWDebugger_X86_Exceptions - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - OtherExecutables - - - AnalyzerConnectionName - - - CustomColor1 - Red0 - Green32767 - Blue0 - - CustomColor2 - Red0 - Green32767 - Blue0 - - CustomColor3 - Red0 - Green32767 - Blue0 - - CustomColor4 - Red0 - Green32767 - Blue0 - - - - ProcessorGeneric - BraekPoinType_II0 - UseInitFile0 - UseConfigFile0 - IDexecutable1 - IDinitialized1 - IDuninitialized0 - IDconstant1 - SDexecutable1 - SDinitialized1 - SDuninitialized0 - SDconstant1 - VerifyMemWrites0 - ShowMPC107regs0 - InitializationFile - ConfigurationFile - BreakpointType1 - WatchpointType1 - TargetOS1 - RTOSPluginName - ByteOrderType0 - CodeTest SYMBIAN Instrumenter - 0200020000000100000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000433A5C0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000637466696C657300000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000636F6465746573742E6964620000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000 - - - - SymbianInstallationOutputFilenameApplication.sis - SymbianInstallationOutputLocation - Path - PathFormatWindows - PathRootProject - - SymbianInstallationContentSearchLocation - Pathepoc32\release\winscw\udeb -PathFormatWindows -PathRoot2 SDKTube - - SymbianInstallationPassword - SymbianInstallationCreateStubFilefalse - - - SymbianInstallationOutputFilenameApplication.sis - SymbianInstallationOutputLocation - Path - PathFormatWindows - PathRootProject - - SymbianInstallationContentSearchLocation - Pathepoc32\release\winscw\udeb -PathFormatWindows -PathRoot2 SDKTube - - SymbianInstallationPassword - SymbianInstallationCreateStubFilefalse - - - SymbianResourcesMMPFileLocation - Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesBinaryOutputLocation - Pathepoc32\release\winscw\udeb -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesHeaderFileOutputLocation - Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube - - - - SymbianResourcesMMPFileLocation - Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesBinaryOutputLocation - Pathepoc32\release\winscw\udeb -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesHeaderFileOutputLocation - Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube - - - - FileList - - - ProcessorGeneric - UseInitFile0 - UseConfigFile0 - ResetTarget1 - InitializationFile - Path - PathFormatGeneric - PathRootAbsolute - - ConfigurationFile - Path - PathFormatGeneric - PathRootAbsolute - - TargetOS1 - RTOSPluginName - - - ShowCommandLinefalse - SymbianEpocToolsPath - Path -PathFormatWindows -PathRoot2 SDKTube - - - - PrefixFilefeature_settings.hrh - CompilerXMLDescriptorMetrowerks x86 Compiler - Macros__SYMBIAN32__,__CW32__,__WINS__,__WINSCW__,__EXE__,_DEBUG,_UNICODE,__SUPPORT_CPP_EXCEPTIONS__, - CodeTESTfalse - EnableSWICfalse - Arguments-wchar_t off -align 4 -warnings on -w nohidevirtual, nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -O0 -inline off -nostdinc - CIAArgs - - - Parse Log Filefalse - Log File Path - Path - PathFormatWindows - PathRootAbsolute - - Symbian SDK Folder - Path - PathFormatWindows - PathRootAbsolute - - Log Unresolved Modulesfalse - Log Unresolved Sym Filesfalse - Debug Non-XIP Executablesfalse - - - Start Address0x00000000 - Run From Start Addressfalse - Download Imagefalse - OS Image Path - Path - PathFormatWindows - PathRootAbsolute - - Download Address0x00000000 - Ask Firstfalse - Debug Bootromfalse - Bootrom Sym File - Path - PathFormatWindows - PathRootAbsolute - - - - LinkOutputFilediagresultsdatabaseserver.exe - LinkCmdLine - SymbianImportLibrarydiagresultsdatabaseserver.lib - canDebugtrue - canRuntrue - - - CommandLinebuildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img - OutputPath - PathC:\ - PathFormatWindows - PathRootAbsolute - - DisplayMessagestrue - - - TargetArchitectureWINSCW - LogMessagesfalse - SuppressWarningsfalse - GenerateSymbolicsfalse - CompilerPrefix - CompilerCmdLine - SymbianImportLibraryPath - PathC:\ - PathFormatWindows - PathRootAbsolute - - - - Gnu Tools Path - PathC:\ - PathFormatWindows - PathRootAbsolute - - Epoc32 Tools Path - PathC:\ - PathFormatWindows - PathRootAbsolute - - - -NameDiagResultsDbServer.mmpWindowsText -NameEEXE.LIBWindowsLibraryDebug -NameDiagResultsDbServer.cppWindowsTextDebug -NameDiagResultsDbSession.cppWindowsTextDebug -NameDiagResultsDbTestRecordSubsession.cppWindowsTextDebug -NameDiagResultsDbStore.cppWindowsTextDebug -NameDiagResultsDbTestRecord.cppWindowsTextDebug -NameDiagResultsDbTestRecordHandle.cppWindowsTextDebug -NameDiagResultsDatabaseTestRecordInfo.cppWindowsTextDebug -Namediagresultsdatabaseserver_UID_.cppWindowsText -Nameeuser.libWindowsLibraryDebug -Nameefsrv.libWindowsLibraryDebug -Nameestor.libWindowsLibraryDebug -Nameflogger.libWindowsLibraryDebug -NameDiagResultsDatabase.libWindowsLibraryDebug -Namedrmserviceapi.libWindowsLibraryDebug -Namesysutil.libWindowsLibraryDebug -Namecentralrepository.libWindowsLibraryDebug -NameDiagResultsDatabase.hWindowsText -NameDiagResultsDatabaseCommon.hWindowsText -NameDiagResultsDatabaseItem.hWindowsText -NameDiagResultsDatabaseTestRecordInfo.hWindowsText -NameDiagResultsDbCRDC.hWindowsText -NameDiagResultsDbPrivateCRKeys.hWindowsText -NameDiagResultsDbRecordEngineParam.hWindowsText -NameDiagResultsDbRecordInfoArrayPacked.hWindowsText -NameDiagResultsDbServer.hWindowsText -NameDiagResultsDbSession.hWindowsText -NameDiagResultsDbStore.hWindowsText -NameDiagResultsDbTestRecord.hWindowsText -NameDiagResultsDbTestRecordHandle.hWindowsText -NameDiagResultsDbTestRecordSubsession.hWindowsText -NamediagresultsdatabaseserverWINSCWUDEB.cwlinkWindowsText - - -NameDiagResultsDbServer.mmpWindows -NameEEXE.LIBWindows -NameDiagResultsDbServer.cppWindows -NameDiagResultsDbSession.cppWindows -NameDiagResultsDbTestRecordSubsession.cppWindows -NameDiagResultsDbStore.cppWindows -NameDiagResultsDbTestRecord.cppWindows -NameDiagResultsDbTestRecordHandle.cppWindows -NameDiagResultsDatabaseTestRecordInfo.cppWindows -Namediagresultsdatabaseserver_UID_.cppWindows -Nameeuser.libWindows -Nameefsrv.libWindows -Nameestor.libWindows -Nameflogger.libWindows -NameDiagResultsDatabase.libWindows -Namedrmserviceapi.libWindows -Namesysutil.libWindows -Namecentralrepository.libWindows -NameDiagResultsDatabase.hWindows -NameDiagResultsDatabaseCommon.hWindows -NameDiagResultsDatabaseItem.hWindows -NameDiagResultsDatabaseTestRecordInfo.hWindows -NameDiagResultsDbCRDC.hWindows -NameDiagResultsDbPrivateCRKeys.hWindows -NameDiagResultsDbRecordEngineParam.hWindows -NameDiagResultsDbRecordInfoArrayPacked.hWindows -NameDiagResultsDbServer.hWindows -NameDiagResultsDbSession.hWindows -NameDiagResultsDbStore.hWindows -NameDiagResultsDbTestRecord.hWindows -NameDiagResultsDbTestRecordHandle.hWindows -NameDiagResultsDbTestRecordSubsession.hWindows -NamediagresultsdatabaseserverWINSCWUDEB.cwlinkWindows - - - WINSCW UREL - - - - UserSourceTrees - - - AlwaysSearchUserPathstrue - InterpretDOSAndUnixPathsfalse - RequireFrameworkStyleIncludesfalse - SourceRelativeIncludesfalse - UserSearchPaths - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\inc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\common -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\Inc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\Src -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\src -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - - SystemSearchPaths - -SearchPath -Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\oem -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\middleware -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\osextensions -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions\loc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware\loc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\osextensions\loc\sc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\include\domain\middleware\loc\sc -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\release\winscw\UREL -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -Pathepoc32\release\WINSCW\UDEB -PathFormatWindows -PathRoot2 SDKTube -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -PathSymbian_Support\Win32-x86 Support\Libraries\Win32 SDK -PathFormatWindows -PathRootCodeWarrior -Recursivefalse -FrameworkPathfalse -HostFlagsAll - -SearchPath -PathSymbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs -PathFormatWindows -PathRootCodeWarrior -Recursivefalse -FrameworkPathfalse -HostFlagsAll - - - - MWRuntimeSettings_WorkingDirectory - MWRuntimeSettings_CommandLine - MWRuntimeSettings_HostApplication - Pathepoc32\release\winscw\urel\diagresultsdatabaseserver.exe -PathFormatWindows -PathRoot2 SDKTube - - MWRuntimeSettings_EnvVars - - - LinkerSymbian Linker v2 - PreLinker - PostLinkerSymbian Installer v2 - TargetnameWINSCW UREL - OutputDirectory - Pathepoc32\release\winscw\urel -PathFormatWindows -PathRoot2 SDKTube - - SaveEntriesUsingRelativePathsfalse - - - FileMappings - - FileTypeTEXT - FileExtension._i - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension._ii - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.c - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cc - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cfg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.cia - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cpp - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cwlink - Compiler - EditLanguageXML - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.cxx - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.def - Compiler - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.h - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.hrh - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.i - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.iby - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ii - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.inf - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ini - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.inl - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.loc - Compiler - EditLanguageC/C++ - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.mmpi - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.pch++ - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.pkg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.policy - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.ra - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.resources - CompilerSymbian Resource v2 - EditLanguageXML - Precompiletrue - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.rh - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rls - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rss - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.rsg - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.s - CompilerSymbian Compiler v2 - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileTypeTEXT - FileExtension.script - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileTypeTEXT - FileExtension.txt - Compiler - EditLanguageC/C++ - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMaketrue - - - FileExtension.a - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.lib - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.dso - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - FileExtension.o - CompilerSymbian Object Importer v2 - EditLanguage - Precompilefalse - Launchablefalse - ResourceFilefalse - IgnoredByMakefalse - - - - - CacheModDatestrue - DumpBrowserInfofalse - CacheSubprojectstrue - UseThirdPartyDebuggerfalse - BrowserGenerator2 - DebuggerAppPath - Path - PathFormatGeneric - PathRootAbsolute - - DebuggerCmdLineArgs - DebuggerWorkingDir - Path - PathFormatGeneric - PathRootAbsolute - - CodeCompletionPrefixFileName - CodeCompletionMacroFileName - - - ConsoleEncoding0 - LogSystemMessagestrue - AutoTargetDLLsPopUp1 - StopAtWatchpointstrue - PauseWhileRunningfalse - PauseInterval5 - PauseUIFlags0 - AltExePath - Path - PathFormatWindows - PathRootAbsolute - - StopAtTempBPOnLaunchfalse - CacheSymbolicstrue - TempBPFunctionNameE32Main - TempBPType1 - - - Enabledfalse - ConnectionName - DownloadPath - LaunchRemoteAppfalse - RemoteAppPath - CoreID0 - JTAGClockSpeed8000 - IsMultiCorefalse - OSDownloadfalse - UseGlobalOSDownloadfalse - OSDownloadConnectionName - OSDownloadPath - AltDownloadfalse - AltDownloadConnectionName - - - MWDebugger_X86_Exceptions - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - OtherExecutables - - - AnalyzerConnectionName - - - CustomColor1 - Red0 - Green32767 - Blue0 - - CustomColor2 - Red0 - Green32767 - Blue0 - - CustomColor3 - Red0 - Green32767 - Blue0 - - CustomColor4 - Red0 - Green32767 - Blue0 - - - - ProcessorGeneric - BraekPoinType_II0 - UseInitFile0 - UseConfigFile0 - IDexecutable1 - IDinitialized1 - IDuninitialized0 - IDconstant1 - SDexecutable1 - SDinitialized1 - SDuninitialized0 - SDconstant1 - VerifyMemWrites0 - ShowMPC107regs0 - InitializationFile - ConfigurationFile - BreakpointType1 - WatchpointType1 - TargetOS1 - RTOSPluginName - ByteOrderType0 - CodeTest SYMBIAN Instrumenter - 0200020000000100000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000433A5C0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000637466696C657300000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000636F6465746573742E6964620000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000 - - - - SymbianInstallationOutputFilenameApplication.sis - SymbianInstallationOutputLocation - Path - PathFormatWindows - PathRootProject - - SymbianInstallationContentSearchLocation - Pathepoc32\release\winscw\urel -PathFormatWindows -PathRoot2 SDKTube - - SymbianInstallationPassword - SymbianInstallationCreateStubFilefalse - - - SymbianInstallationOutputFilenameApplication.sis - SymbianInstallationOutputLocation - Path - PathFormatWindows - PathRootProject - - SymbianInstallationContentSearchLocation - Pathepoc32\release\winscw\urel -PathFormatWindows -PathRoot2 SDKTube - - SymbianInstallationPassword - SymbianInstallationCreateStubFilefalse - - - SymbianResourcesMMPFileLocation - Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesBinaryOutputLocation - Pathepoc32\release\winscw\urel -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesHeaderFileOutputLocation - Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube - - - - SymbianResourcesMMPFileLocation - Paths60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesBinaryOutputLocation - Pathepoc32\release\winscw\urel -PathFormatWindows -PathRoot2 SDKTube - - SymbianResourcesHeaderFileOutputLocation - Pathepoc32\include -PathFormatWindows -PathRoot2 SDKTube - - - - FileList - - - ProcessorGeneric - UseInitFile0 - UseConfigFile0 - ResetTarget1 - InitializationFile - Path - PathFormatGeneric - PathRootAbsolute - - ConfigurationFile - Path - PathFormatGeneric - PathRootAbsolute - - TargetOS1 - RTOSPluginName - - - ShowCommandLinefalse - SymbianEpocToolsPath - Path -PathFormatWindows -PathRoot2 SDKTube - - - - PrefixFilefeature_settings.hrh - CompilerXMLDescriptorMetrowerks x86 Compiler - Macros__SYMBIAN32__,__CW32__,__WINS__,__WINSCW__,__EXE__,NDEBUG,_UNICODE,__SUPPORT_CPP_EXCEPTIONS__, - CodeTESTfalse - EnableSWICfalse - Arguments-wchar_t off -align 4 -warnings on -w nohidevirtual, nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -O4,s -nostdinc - CIAArgs - - - Parse Log Filefalse - Log File Path - Path - PathFormatWindows - PathRootAbsolute - - Symbian SDK Folder - Path - PathFormatWindows - PathRootAbsolute - - Log Unresolved Modulesfalse - Log Unresolved Sym Filesfalse - Debug Non-XIP Executablesfalse - - - Start Address0x00000000 - Run From Start Addressfalse - Download Imagefalse - OS Image Path - Path - PathFormatWindows - PathRootAbsolute - - Download Address0x00000000 - Ask Firstfalse - Debug Bootromfalse - Bootrom Sym File - Path - PathFormatWindows - PathRootAbsolute - - - - LinkOutputFilediagresultsdatabaseserver.exe - LinkCmdLine - SymbianImportLibrarydiagresultsdatabaseserver.lib - canDebugfalse - canRuntrue - - - CommandLinebuildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img - OutputPath - PathC:\ - PathFormatWindows - PathRootAbsolute - - DisplayMessagestrue - - - TargetArchitectureWINSCW - LogMessagesfalse - SuppressWarningsfalse - GenerateSymbolicsfalse - CompilerPrefix - CompilerCmdLine - SymbianImportLibraryPath - PathC:\ - PathFormatWindows - PathRootAbsolute - - - - Gnu Tools Path - PathC:\ - PathFormatWindows - PathRootAbsolute - - Epoc32 Tools Path - PathC:\ - PathFormatWindows - PathRootAbsolute - - - -NameDiagResultsDbServer.mmpWindowsText -NameEEXE.LIBWindowsLibrary -NameDiagResultsDbServer.cppWindowsText -NameDiagResultsDbSession.cppWindowsText -NameDiagResultsDbTestRecordSubsession.cppWindowsText -NameDiagResultsDbStore.cppWindowsText -NameDiagResultsDbTestRecord.cppWindowsText -NameDiagResultsDbTestRecordHandle.cppWindowsText -NameDiagResultsDatabaseTestRecordInfo.cppWindowsText -Namediagresultsdatabaseserver_UID_.cppWindowsText -Nameeuser.libWindowsLibrary -Nameefsrv.libWindowsLibrary -Nameestor.libWindowsLibrary -Nameflogger.libWindowsLibrary -NameDiagResultsDatabase.libWindowsLibrary -Namedrmserviceapi.libWindowsLibrary -Namesysutil.libWindowsLibrary -Namecentralrepository.libWindowsLibrary -NamediagresultsdatabaseserverWINSCWUREL.cwlinkWindowsText - - -NameDiagResultsDbServer.mmpWindows -NameEEXE.LIBWindows -NameDiagResultsDbServer.cppWindows -NameDiagResultsDbSession.cppWindows -NameDiagResultsDbTestRecordSubsession.cppWindows -NameDiagResultsDbStore.cppWindows -NameDiagResultsDbTestRecord.cppWindows -NameDiagResultsDbTestRecordHandle.cppWindows -NameDiagResultsDatabaseTestRecordInfo.cppWindows -Namediagresultsdatabaseserver_UID_.cppWindows -Nameeuser.libWindows -Nameefsrv.libWindows -Nameestor.libWindows -Nameflogger.libWindows -NameDiagResultsDatabase.libWindows -Namedrmserviceapi.libWindows -Namesysutil.libWindows -Namecentralrepository.libWindows -NamediagresultsdatabaseserverWINSCWUREL.cwlinkWindows - - -Build AllLinkerNone -TargetnameBuild All - - - -WINSCW UDEB -WINSCW UREL - - - -WINSCW UDEB -WINSCW UREL -Build All - - - WINSCW UDEBNameDiagResultsDbServer.mmpWindows -Source -WINSCW UDEBNameDiagResultsDbServer.cppWindows -WINSCW UDEBNameDiagResultsDbSession.cppWindows -WINSCW UDEBNameDiagResultsDbTestRecordSubsession.cppWindows -WINSCW UDEBNameDiagResultsDbStore.cppWindows -WINSCW UDEBNameDiagResultsDbTestRecord.cppWindows -WINSCW UDEBNameDiagResultsDbTestRecordHandle.cppWindows -WINSCW UDEBNameDiagResultsDatabaseTestRecordInfo.cppWindows -WINSCW UDEBNamediagresultsdatabaseserver_UID_.cppWindows - -Headers -WINSCW UDEBNameDiagResultsDatabase.hWindows -WINSCW UDEBNameDiagResultsDatabaseCommon.hWindows -WINSCW UDEBNameDiagResultsDatabaseItem.hWindows -WINSCW UDEBNameDiagResultsDatabaseTestRecordInfo.hWindows -WINSCW UDEBNameDiagResultsDbCRDC.hWindows -WINSCW UDEBNameDiagResultsDbPrivateCRKeys.hWindows -WINSCW UDEBNameDiagResultsDbRecordEngineParam.hWindows -WINSCW UDEBNameDiagResultsDbRecordInfoArrayPacked.hWindows -WINSCW UDEBNameDiagResultsDbServer.hWindows -WINSCW UDEBNameDiagResultsDbSession.hWindows -WINSCW UDEBNameDiagResultsDbStore.hWindows -WINSCW UDEBNameDiagResultsDbTestRecord.hWindows -WINSCW UDEBNameDiagResultsDbTestRecordHandle.hWindows -WINSCW UDEBNameDiagResultsDbTestRecordSubsession.hWindows - -Link -WINSCW UDEBNamediagresultsdatabaseserverWINSCWUDEB.cwlinkWindows -WINSCW URELNamediagresultsdatabaseserverWINSCWUREL.cwlinkWindows - -Libraries -WINSCW -WINSCW UDEBNameEEXE.LIBWindows -WINSCW UDEBNameeuser.libWindows -WINSCW UDEBNameefsrv.libWindows -WINSCW UDEBNameestor.libWindows -WINSCW UDEBNameflogger.libWindows -WINSCW UDEBNameDiagResultsDatabase.libWindows -WINSCW UDEBNamedrmserviceapi.libWindows -WINSCW UDEBNamesysutil.libWindows -WINSCW UDEBNamecentralrepository.libWindows -WINSCW URELNameEEXE.LIBWindows - - - - - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbcrdc.h --- a/devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbcrdc.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Real cleanup stack for RPointerArrays. -* ResetAndDestroy + Close must be called, instead of just Close. -* libraries : -* -*/ - - -/** -* Template class for destroying RPointerArrays -* -* @since S60 v5.0 -**/ -template -class CleanupResetAndDestroyClose - { -public: - inline static void PushL(T& aRef) - { - CleanupStack::PushL(TCleanupItem(&Close,&aRef)); - } - - static void Close(TAny *aPtr) - { - (STATIC_CAST(T*,aPtr))->ResetAndDestroy(); - (STATIC_CAST(T*,aPtr))->Close(); - } - }; - -/** -* Use for pushing RPointerArrays onto a cleanupstack. -* -* @since S60 v5.0 -**/ -template -inline void CleanupResetAndDestroyClosePushL(T& aRef) - { - CleanupResetAndDestroyClose::PushL(aRef); - } diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbserver.h --- a/devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Symbian OS server results database. -* libraries : -* -*/ - - -#ifndef DIAG_RESULTS_DB_SERVER_H -#define DIAG_RESULTS_DB_SERVER_H - -#include "diagresultsdatabasecommon.h" - -//System includes -#include -#include - -/** -* Results database symbian OS server class. Creates server sessions and keeps -* track of the session counts. -* -* @since S60 v5.0 -**/ -class CDiagResultsDbServer : public CPolicyServer - { -public: - - /** - * Destructor - **/ - ~CDiagResultsDbServer(); - - /** - * NewLC. - * @param aPolicy Security policy that is defined at the end of this file. - **/ - static void NewLC(const TPolicy &aPolicy); - - /** - * Create a new server session. - * @param aVersion version of the server. - * @param aMessage - * @return a new session. - **/ - virtual CSession2 *NewSessionL(const TVersion &aVersion, const RMessage2 &/*aMessage*/) const; - - /** - * Run server i.e. first create cleanup stack and active scheduler. This server is CActive based. - * @return Symbian error code or KErrNone. - **/ - static TInt RunServer(); - static void RunServerL(); - -public: // New methods - - /** - * Create object container that is needed when handling subsession. - * @return object container. - **/ - CObjectCon* NewContainerL(); - - /** - * Remove object container from container index. - * @param aCon container to be removed. - **/ - void RemoveContainer(CObjectCon* aCon); - - /** - * Decrease session count by one. ServerSession uses this function when client dies. - **/ - void DecreaseSessionCount(); - - /** - * Increase session count by one. ServerSession uses this function when client dies. - **/ - void IncreaseSessionCount(); - - /** - * Returns the number of active sessions. - * @return Session count. - **/ - TInt SessionCount(); - - /** - * Custom security check. From CPolicyServer. - **/ - TCustomResult CustomSecurityCheckL(const RMessage2 &aMsg, TInt &aAction, TSecurityInfo &aMissing); - -protected: - /** - * Constructor. - * @param aPriority Priority of this server. Should be pretty high. - * @param aPolicy Security policy of this server. - **/ - CDiagResultsDbServer(TInt aPriority, const TPolicy &aPolicy); - -private: - - /** - * ConstructL. - **/ - void ConstructL(); - -private: // Data - - // For creating object container instances - CObjectConIx* iContainerIndex; - - // The number of active sessions - TInt iSessionCount; - }; - -// Security policy definition. -// ReadDeviceData + WriteDeviceData is needed. -const CPolicyServer::TPolicyElement elements[] = - { - {_INIT_SECURITY_POLICY_C2(ECapabilityReadDeviceData, ECapabilityWriteDeviceData), - CPolicyServer::EFailClient}, - }; - -const TInt ranges[2] = - { - 0, - DiagResultsDbCommon::ENotSupported, - - }; - -const TUint8 elementsIndex[2] = - { - CPolicyServer::ECustomCheck, //ReadDeviceData + WriteDeviceData for all clients. - CPolicyServer::ENotSupported, - }; - -const CPolicyServer::TPolicy policy = - { - CPolicyServer::EAlwaysPass, // on connect - 2, // range count - ranges, - elementsIndex, - elements, - }; - -#endif //DIAG_RESULTS_DB_SERVER_H \ No newline at end of file diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbsession.h --- a/devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbsession.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,273 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Symbian OS server session. -* libraries : -* -*/ - - -#ifndef DIAGRESULTSDBSESSION_H -#define DIAGRESULTSDBSESSION_H - -class CDiagResultsDbServer; -class CDiagResultsDbTestRecord; - -#include "diagresultsdbstore.h" - -//System includes -#include //TUid -#include - -/** -* Server session. Represents a session (version 2) -* for a client thread on the server-side. -* -* @since S60 v5.0 -**/ -class CDiagResultsDbSession : - public CSession2, - public MRecordLoadingObserver - { -public: - - /** - * Destructor. - **/ - ~CDiagResultsDbSession(); - - /** - * NewL. - * - * @param aServer Server object. - * @return DB session. - **/ - static CDiagResultsDbSession* NewL(CDiagResultsDbServer * aServer); - -public: // From CSession - - /** - * Handles the servicing of a client request that has been - * passed to the server. - * - * @param aMessage The message containing the details of the client request. - **/ - void ServiceL(const RMessage2 &aMessage); - -public: // New methods - - /** - * Handle the client message. - * - * @param aMessage Details of the client request. - * @return ETrue if client request is asynchronous, EFalse is synchronous. - **/ - TBool DispatchMessageL(const RMessage2 &aMessage); - - /** - * Create a new subsession. - * - * @param aTestRecord Test record that represents the subsession. - **/ - void CreateSubsessionL(CDiagResultsDbTestRecordHandle* aTestRecordHandle, - TBool aReadonly ); - - /** - * Close the subsession. - **/ - void CloseSubsessionL(); - - /** - * Returns the Uid of the results database file. - * - * @return TUid of the database file. - **/ - TUid DbUid() const; - - /** - * Returns the results store. - * - * @return Results store. - **/ - CDiagResultsDbStore& Store(); - - /** - * Helper function to read buffer from client side. - * - * @param aMessage Details of the client request. - * @param aParam Message argument number. - * @param aBuffer Buffer that is filled with client side data. - **/ - void ReadBufferL(const RMessage2& aMessage, TInt aParam, - CBufFlat*& aBuffer); - - /** - * Subsession must tell to the session has it written data. - **/ - void HasWritten(); - - /** - * Indicates has the session wrote any data. - * @return ETrue if session has wrote data, EFalse otherwise. - **/ - TBool SessionHasWritten() const; - - /** - * Turn off compacting. For example KErrDiskFull causes compacting to fail. - **/ - void DoNotCompact(); - - -public: //From MRecordLoadingObserver - - /** - * Returns an array of test records. Contains all test records - * from a single database file. - * - * @param aError Indicates if there were any errors. - * @param aArray An array of test records. Ownership is transferred. - **/ - void ExistingRecordsL( TInt aError, - RPointerArray* aArray ); - -protected: // service functions for client requests - // Look at DiagResultsDatabaseCommon.h for the client requests. - - void ConnectSubsessionL( const RMessage2 &aMessage ); - - void CreateNewRecordL ( const RMessage2 &aMessage ); - - void GetLastRecordL( const RMessage2 &aMessage ); - - void GetLastNotCompletedRecordL( const RMessage2 &aMessage ); - - void GetRecordListL( const RMessage2 &aMessage ); - - void GetRecordInfoListL( const RMessage2 &aMessage ); - - void GetLastResultsL( const RMessage2 &aMessage ); - - void CancelLastResultsL(const RMessage2 &aMessage); - - void GetSingleLastResultL( const RMessage2 &aMessage ); - -private: - - /** - * Constructor. - * - * @param aServer Server object. - **/ - CDiagResultsDbSession(CDiagResultsDbServer * aServer); - - /** - * ConstructL. - **/ - void ConstructL(); - - /** - * Find database item from the array based on uid. - * - * @param aUid Uid of the database item. - * @param aArray Pointer array that contains test records. - * @return Database item or NULL if not found. - **/ - CDiagResultsDatabaseItem* FindDatabaseItemL( - TUid aUid, - RPointerArray* aArray ); - - /** - * Search for the newest test results. - * - * @param aUidArray Contains the uids to be searched. - * @param aTestRecordArray Contains all test records. - * @param aResultsArray Contains the found results or NULL if the test - * result was not found. - **/ - void SearchLastResultsL( - const CArrayFixFlat& aUidArray, - RPointerArray& aTestRecordArray, - RPointerArray& aResultsArray ); - - /** - * Reads uids that are searched from the buffer and creates the test result array. - * - * @param aArray Contains all test records. - **/ - void FindLastResultsL( RPointerArray& aArray ); - - /** - * Read last results buffer if there would be any additional test results. - * - * @param aUidArray Test results to be searched. - * @param aResultsArray results array. Found test results are appended into this. - **/ - void CheckLastResultsBufferL( - const CArrayFixFlat& aUidArray, - RPointerArray& aResultsArray ); - - /** - * Read last results buffer if there would be any additional test results. - * - * @param aTestUid UID to be searched from the last buffer. - * @param aResult Returns the last result if found. Otherwise NULL. - **/ - void CheckLastResultsBufferL( - TUid aTestUid, - CDiagResultsDatabaseItem*& aResult ); - - -private: // Data - - // Server pointer. - CDiagResultsDbServer *iServer; - - // Counts subsession. - CObjectCon* iSubsessionContainer; - - // Index to the container. - CObjectIx* iSubsessionIndex; - - // Client request details. - RMessage2 iMsg; - - //Indicates are we handling InitiateGetLastResults or InitiateGetLastResult - TInt iLastResultCommand; - - // This is needed when InitiateGetLastResults is called. - RMessage2 iLastResultsMsg; - - // This is needed when InitiateGetLastResult is called. - RMessage2 iLastSingleResultsMsg; - - // Database uid. - TUid iDbUid; - - // Contains the permanent file store. - CDiagResultsDbStore* iStore; - - // GetLastResultsL operation needs this. - RPointerArray* iBufferedLastResults; - - // Contains buffered test result. - // - CDiagResultsDatabaseItem* iBufferedSingleResult; - - // Indicates has this session wrote any data. - TBool iHasWrittenData; - - // Dynamic flat buffer for transmitting data across IPC. - CBufFlat* iBuffer; - }; - -#endif // DIAGRESULTSDBSESSION_H diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbstore.h --- a/devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbstore.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,453 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Permanent File Store for diagnostics test records. -* libraries : -* -*/ - - -#ifndef DIAGRESULTSDBSTORE_H -#define DIAGRESULTSDBSTORE_H - -//System includes -#include //CPermanentFileStore -#include //Rfs, RFile -#include - -class CDiagResultsDatabaseItem; -class CDiagResultsDbTestRecord; -class CDiagResultsDbTestRecordHandle; -class TDiagResultsDatabaseTestRecordInfo; -class CDiagResultsDbRecordEngineParam; - -/** -* An interface that must be implemented in order to call -* ExistingRecordsAsyncL that is an asynchronous method. -* -* @since S60 v5.0 -**/ -class MRecordLoadingObserver - { -public: - /** - * Returns an array of test records. Contains all test records from a - * single database file. - * - * @param aError Indicates if there were any errors. - * @param aArray An array of test records. Ownership is transferred. - **/ - virtual void ExistingRecordsL( TInt aError, - RPointerArray* aArray ) = 0; - - }; - -/** -* An interface that must be implemented in order to call CompleteRecordAsyncL. -* -* @since S60 v5.0 -**/ -class MRecordCompletionObserver - { -public: - - /** - * This is called when test record is completed. - * - * @param aError Symbian error code or KErrNone. - **/ - virtual void CompletedRecordL( TInt aError ) = 0; - }; - -/** -* Permanent file store class that manipulates results database file. -* Database files are saved under server's private directory. -* For example epoc32\WINSCW\C\private\10282cd9\ in WINSCW. -* Provides functions to load, save, compact and cleanup data. -* -* Files have format [UID].dat e.g. [21234563].dat -* -* Stream Ids of the test record handle are stored into the root stream. -* Handles contain the stream ids to the test results. -* -* Implementation uses 3 kinds of streams: -* 1) root stream -* 2) Test record handle stream -* 3) Test result stream -* 4) Last results buffer (buffer for overflowing test results) -* -* In order to retrieve a test result, we must first know which record -* is needed and then ask from the handle where test result is. -* Of course we can browse all test records, because root stream -* contains stream ids into test record handles. -* -* @since S60 v5.0 -**/ -class CDiagResultsDbStore : public CActive - { -public: - - /** - * Destructor - **/ - ~CDiagResultsDbStore(); - - /** - * NewL. - * - * @param aUid UID of the database file. This class manipulates only one - * database file at a time. If multiple database files needs - * to be open, use another instance. - * @return New object. - **/ - static CDiagResultsDbStore* NewL( TUid aUid ); - static CDiagResultsDbStore* NewLC( TUid aUid ); - - /** - * Create and return a new record. Ownership is transferred. - * - * @return a new test record. - **/ - CDiagResultsDbTestRecordHandle* CreateNewRecordL( - CDiagResultsDbRecordEngineParam* aEngineParam ); - - /** - * Write test record into the database. - * - * @param aHandle The test record to be written into the database. - * @return KErrNone or symbian error code. - **/ - TInt CompleteRecord( CDiagResultsDbTestRecordHandle& aHandle ); - - /** - * Write one test item into the DB. - * - * @param aCommit Indicates should we commit the store. - * @param aHandle Handle that is updated to contain the item. - * @param aTestItem An item to be added. - * - * @return Symbian error code or KErrNone. - **/ - TInt CompleteTestResult( TBool aCommit, - CDiagResultsDbTestRecordHandle& aHandle, - CDiagResultsDatabaseItem& aTestItem ); - - /** - * Search database for a test record handle. - * Handle does not contain test results directly. It only contains - * stream ids to the test results and general record info. - * - * @param aUid test record is searched based on the uid. - * @return The found test record or NULL. - **/ - CDiagResultsDbTestRecordHandle* OpenExistingHandleL( TUid aUid ); - - - /** - * Search database for a test record. - * - * @param aUid test record is searched based on the uid. - * @param aReadOnly indicates should we allow writing. - * @return The found test record or NULL. - */ - CDiagResultsDbTestRecord* OpenExistingRecordL( TUid aUid, - TBool aReadOnly ); - - /** - * Opens a single database item. - * @param aId Stream id that represents the item. - * - * @return The found item or NULL. - **/ - CDiagResultsDatabaseItem* OpenExistingTestResultL( TStreamId aId ); - - /** - * Returns all record infos. Client is responsible for deleting the array. - * - * @return Record info array. - **/ - RArray* ExistingRecordInfosL(); - - /** - * Retrieve all test records from the database asynchronously. - * - * @param aObserver Observer is notified after test records have - * been loaded. - **/ - void ExistingRecordsAsyncL( MRecordLoadingObserver& aObserver ); - - - - /** - * Open last results buffer. It contains the test results that would have - * been otherwise deleted. These are needed when all last results are - * retrieved. Use with CleanUpDatabaseUseLastResultsBufferL. - * - * @return Test record. - **/ - CDiagResultsDbTestRecord* OpenExistingLastResultsBufferL(); - - /** - * Compacts database to have only necessary information. This should be - * done as often as necessary after writing. Compacting should not be - * done after reading! - * However note that this operation could take a long time. - **/ - void CompactDatabase(); - - /** - * Cleanup database. Used deletion algorithm is taken from the - * Central Repository. - * - * @param aCommit ETrue commits the store. - **/ - void CleanUpDatabaseL( TBool aCommit ); - - /** - * Read available test record handle uids. - * - * @param aUids Contains available test record handle uids. - **/ - void RecordUidsL( RArray& aUids ); - -protected: //From CActive - - /** - * Called from CActive::Cancel. - **/ - virtual void DoCancel(); - - /** - * Asynchronous service function. - **/ - virtual void RunL(); - - /** - * Called if error happens in RunL. - **/ - virtual TInt RunError(TInt aError); - -private: - - /** - * Cleanup database to have only certain amount of test records - * inside per each database file. - * - * @param aCommit ETrue commits the store. - **/ - void CleanUpDatabaseNoLastResultsL( TBool aCommit ); - - /** - * Cleanup database and move some of the test results into the - * last results buffer. This function guarantees that the DB - * keeps last results. CleanUpDatabase does not do that. - * - * @param aCommit ETrue commits the store. - **/ - void CleanUpDatabaseUseLastResultsBufferL( TBool aCommit ); - - /** - * Read all stream ids from the root stream. - * - * @param aIds StreamId array. - **/ - void ReadRootStreamL( RArray& aIds ); - - /** - * Create empty root stream. - * - * @param aStore Root stream is created into this store. - **/ - void CreateEmptyRootStreamL( CPermanentFileStore& aStore ); - - /** - * Replace root stream with an array. - * - * @param aArray Array that replaces any existing root stream. - **/ - void ReplaceRootStreamL( RArray& aArray ); - - /** - * Write test record into the database file. - * - * @param aCompletedRecord is the record closed/completed or not. - * @param aCommit Commit the store or not. - * @param aTestRecord The test record to be written into the file. - **/ - void DoCompleteRecordL( CDiagResultsDbTestRecordHandle& aHandle ); - - /** - * Complete test result i.e. write it into the store. - * @param aHandle Handle to be written. - * @param aTestItem Contains test results that are written into the store. - **/ - void DoCompleteTestResultL( TBool aCommit, - CDiagResultsDbTestRecordHandle& aHandle, - CDiagResultsDatabaseItem& aTestItem ); - - - /** - * Constructor. - * - * @param aDbUid Database file uid. - **/ - CDiagResultsDbStore( TUid aDbUid ); - - /** - * ConstructL. - **/ - void ConstructL(); - - /** - * Complete own request is needed in some cases because this class uses - * CActive to partition tasks into smaller pieces. This function completes - * TRequestStatus so that the RunL is called. - **/ - void CompleteOwnRequest(); - - //State of this class. These are used only in asynchronous methods. - enum EState - { - ENotRunning, - EGetRootStream, - EGetRecord, - ERecordsReady, - }; - - enum EDeletionAlgorithm - { - EMaxRecordCountAlgorithm, - ELastResultsAlgorithm, - }; - - /** - * Write handle into the store. Handle knows where test results are. - * @param aHandle The handle that is written into the store. - **/ - void WriteHandleIntoDbL( CDiagResultsDbTestRecordHandle& aHandle ); - - - /** - * Append one ID into the root stream. - * @param aId ID to be added. - **/ - void AppendRootStreamL( TStreamId& aId ); - - - /** - * Deletes the oldest handle from the store. - * - * @param aIds Root stream. - **/ - void DeleteOldestHandleL( RArray& aIds ); - - /** - * Delete handle and its test results. - * - * @param aIndex Index of the handle in the root stream. - * @param aIds Root stream. - * - **/ - void DeleteHandleL( TInt aIndex, RArray& aIds ); - - /** - * Create last results buffer. It can be used to store test results - * that would be deleted otherwise. - **/ - void CreateLastResultsBufferStreamL(); - - /** - * Open test record handle and its test results. - * - * @param aId Handle root stream ID. - * @param aRecord Returned test record. - * @param aHandle Returned test record handle. - **/ - void OpenExistingRecordAndHandleL( TStreamId aId, - CDiagResultsDbTestRecord*& aRecord, - CDiagResultsDbTestRecordHandle*& aHandle ); - - /** - * Check last results buffer and add test results into it if needed. - * - * @param aIds Root stream. - **/ - ///@@@KSR: changes for Codescanner error val = High - //void CheckOverflowingTestResults( RArray& aIds ); - void CheckOverflowingTestResultsL( RArray& aIds ); - - /** - * Return maximum file size defined in the Central Repository. - * This can be used to prevent a DB file from using too much disk space. - * - * @return Maximum file size in bytes. - **/ - TInt GetMaximumFileSizeL(); - - /** - * Return the deletion algorithm defined in the central repository. - * - * @return The type of the deletion algorithm. - **/ - TInt GetDeletionAlgorithmL(); - - /** - * Get maximum file size from the central repository and check the file size. - * - * @param aRfs Opened file server session. - * @param aFileName File name of the DB file. - * @param aFileSize Size of the DB file in bytes. - **/ - void CheckMaximumFileSizeLimitL( RFs& aRfs, - const TDesC& aFileName, - TInt aFileSize ); - -private: // Data - - // Store that is owned by this class. Performs many file manipulation operations. - CPermanentFileStore* iStore; - - // File DB uid. [UID].dat - TUid iDbUid; - - // File server session - RFs iRfs; - - // The database file. - RFile iFile; - - // Loading observer to be notified async. - MRecordLoadingObserver* iLoadingObserver; - - // Completion observer (notified async). - MRecordCompletionObserver* iCompletionObserver; - - // Pointer to test record arrays. Used in async methods. - RPointerArray* iRecordArray; - - // Contains available record ids. Used in async methods. - RArray* iRecordIds; - - // Used in async methods to remember what record was loaded. - TInt iRecordNumber; - - // Contains the test record to be completed (Used only in async methods). - CDiagResultsDbTestRecord* iTestRecord; - - // State of the asynchronous operation. - EState iState; - - EDeletionAlgorithm iDeletionAlgorithm; - }; - -#endif // DIAGRESULTSDBSTORE_H diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbtestrecord.h --- a/devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbtestrecord.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,160 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Represents test record. -* libraries : -* -*/ - - -#ifndef DIAGRESULTSDBTESTRECORD_H -#define DIAGRESULTSDBTESTRECORD_H - -#include "diagresultsdatabaseitem.h" -#include "diagresultsdatabasetestrecordinfo.h" - -/** -* Class represents a test record. Contains N amount of -* test results (CDiagResultsDatabaseItem). -* -* @since S60 v5.0 -**/ -class CDiagResultsDbTestRecord : public CBase - { -public: - - /** - * Destructor. - **/ - ~CDiagResultsDbTestRecord(); - - /** - * NewL. - * - * @param aReadOnly Indicates are we creating already completed test record. - * @param aRecordUid The Uid of this test record. The test record can be - * searched based on the UID. Very important to remember. - * @param aDbUid Identifies what DB file the test record should be written - * to (when test record is completed). - * @return New record. - **/ - static CDiagResultsDbTestRecord* NewL( TBool aReadOnly, - TUid aRecordUid ); - - /** - * Return overview of the test record. - * - * @return Overview of the test record. - **/ - //TDiagResultsDatabaseTestRecordInfo& RecordInfo(); - - /** - * Add one test result into the test record. - * - * @param aItem Test result to be added. - **/ - void AddL( CDiagResultsDatabaseItem* aItem ); - - /** - * Operator that returns the database item. - * Panics if index is out of boundaries. - * - * @param aIndex Index of the item in the test record. - * @return Test result / databaseitem. - **/ - const CDiagResultsDatabaseItem& operator[] (TInt aIndex) const; - - /** - * Returns a pointer to a database item. - * - * @param aIndex Index of the item in the test record. - * @return NULL or database item. - **/ - CDiagResultsDatabaseItem* GetItem(TInt aIndex) const; - - /** - * Return the number of test results in the test record. - * - * @return The number of items. - **/ - TInt Count() const; - - /** - * Indicates has the test record been written into the DB file or not. - * - * @return ETrue if the test record is written, otherwise EFalse. - **/ - TBool ReadOnly() const; - - /** - * Remove one item from the test record. Note that the removed - * item is not deleted. - * - * @param aIndex Index of the item to be removed. - **/ - void RemoveL( TInt aIndex ); - - /** - * Remove one item from the test record. - * - * @param aTestUid UID of the test. - **/ - void RemoveL( TUid aTestUid ); - - /** - * Check is this kind of test result already in the test record. - * Matching is done using test result UID. - * - * @param aItem The item to be searched. - * @return Index in the record or -1 if not found. - **/ - TInt FindTestRecord( const CDiagResultsDatabaseItem& aItem ) const; - - CDiagResultsDatabaseItem* FindTestRecord( TUid aUid ); - -private: - - /** - * Constructor. - * - * @param aReadOnly Indicates are we creating already completed test record. - * @param aRecordUid The Uid of this test record. The test record can be - * searched based on the UID. Very important to remember. - * @param aDbUid Identifies what DB file the test record should be written - * to (when test record is completed). - * @return New record. - **/ - CDiagResultsDbTestRecord( TBool aReadOnly, TUid aRecordUid ); - - /** - * ConstructL. - **/ - void ConstructL(); - -private: // Data - - // Array containing the test results. - RPointerArray iTestArray; - - // The record uid. - TUid iRecordUid; - - // Database file uid. - //TUid iDbUid; - - // Indicates has the test record been written into the DB file. - TBool iReadOnly; - }; - -#endif //DIAGRESULTSDBTESTRECORD_H - \ No newline at end of file diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbtestrecordhandle.h --- a/devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbtestrecordhandle.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,237 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Represents test record handle. The handle contains -* stream ids to test results. -* libraries : -* -*/ - - -#ifndef DIAGRESULTSDBTESTRECORDHANDLE_H -#define DIAGRESULTSDBTESTRECORDHANDLE_H - -#include "diagresultsdatabasetestrecordinfo.h" - -#include //TStreamId - -class CDiagResultsDbRecordEngineParam; - -/** -* Test handle contains test result stream IDs. -* Contains also general record info. -* Stream ids can be used to store and load -* test results ( CDiagResultsDatabaseItem ). -* -* This class is only in the server side. -* -* Handle contains one stream Id per test result that is stored. -* Handle is stored into the root stream. -* -* @since S60 v5.0 -**/ -class CDiagResultsDbTestRecordHandle : public CBase - { -public: - - /** - * Maps stream ids into test case Uids. - **/ - struct TTestResultHandle - { - TStreamId iStreamId; - TUid iTestUid; - }; - - /** - * Destructor. - **/ - ~CDiagResultsDbTestRecordHandle(); - - /** - * NewL. - **/ - static CDiagResultsDbTestRecordHandle* NewL( - TStreamId aRecordUid, - TUid aDbUid, - CDiagResultsDbRecordEngineParam* aEngineParam ); - - /** - * NewL. - **/ - static CDiagResultsDbTestRecordHandle* NewL( RReadStream& aStream ); - - /** - * Return overview of the test record. - * - * @return Overview of the test record. - **/ - TDiagResultsDatabaseTestRecordInfo& RecordInfo(); - - - /** - * Return Engine parameters. These are needed by the - * Diagnostics framework. - * - * @return Engine parameters. - **/ - const CDiagResultsDbRecordEngineParam& GetEngineParam() const; - - /** - * Root stream ID. - * - * @return StreamID that represents this handle in the root stream. - **/ - TStreamId RecordId() const; - - /** - * Add one test result into the test record. - * - * @param aItem Test result to be added. - **/ - void AddL( TTestResultHandle& aItem ); - - /** - * Update one test result handle. Assumes - * that this kind of result handle already exists. - * Leaves with KErrNotFound if the resulthandle is not found - * (checked using the UID). - * - * @param aResultHandle Contains updated stream ID. - **/ - void UpdateL( TTestResultHandle& aResultHandle ); - - /** - * Operator that returns the database item. - * Panics if index is out of boundaries. - * - * @param aIndex Index of the item in the test record. - * @return Test result / databaseitem. - **/ - const TStreamId& operator[] (TInt aIndex) const; - - - /** - * Get result handle. - * - * @param aIndex Index of the handle. - * @return Return handle that corresponds the index. - * - **/ - TTestResultHandle Get( TInt aIndex ) const; - - /** - * Convert Test Uids into stream Ids. Stream ids can be used - * to load actual results from the store. - * - * @param aTestUid Plug-in Uid. - * @param aStreamId StreamId that matches plug-in Uid. - * @return KErrNotFound or KErrNone. - * - **/ - TInt MatchingStreamId( TUid aTestUid, TStreamId& aStreamId ) const; - - /** - * Return the number of test results in the test record. - * - * @return The number of items. - **/ - TInt Count() const; - - /** - * Remove one item from the test record. - * - * @param aItem ID to be removed. - **/ - void RemoveL( TStreamId& aItem ); - - /** - * Remove one item from the test record. - * - * @param aItemUid UID to be removed. - **/ - void RemoveL( TUid aItemUid ); - - /** - * Check does the handle already exist. - * - * @param aTestUid Plug-in uid to be searched. - * @return Index of the found plug-in uid. - **/ - TInt FindIndex ( TUid aTestUid ) const; - - /** - * Check does the handle already exist. - * - * @param aTestUid Plug-in Uid to be searched. - * @return ETrue if plug-in Uid is found, EFalse otherwise. - **/ - TBool Find ( TUid aTestUid ) const; - - /** - * Externalize the test result to a stream. - * - * @param aStream Stream to write to. - */ - void ExternalizeL( RWriteStream& aStream ) const; - -private: - - /** - * Constructor. - **/ - CDiagResultsDbTestRecordHandle( - TStreamId aRecordUid, - TUid aDbUid, - CDiagResultsDbRecordEngineParam* aEngineParam ); - - /** - * Constructor. - **/ - CDiagResultsDbTestRecordHandle(); - - /** - * ConstructL. - **/ - void ConstructL(); - - /** - * ConstructL. - **/ - void ConstructL( RReadStream& aStream ); - - /** - * Internalize the test result from a stream. - * - * @param aStream Stream to read from. - */ - void InternalizeL( RReadStream& aStream ); - -private: // Data - - // Test record overview. - TDiagResultsDatabaseTestRecordInfo iTestRecordInfo; - - // Array containing the streans IDs of test results. - // These can be used to reload test records. - RArray iHandleArray; - - // Represents root stream ID. - TStreamId iRecordId; - - // Engine parameters. - CDiagResultsDbRecordEngineParam* iEngineParam; - }; - -#endif //DIAGRESULTSDBTESTRECORDHANDLE_H - \ No newline at end of file diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbtestrecordsubsession.h --- a/devicediagnosticsfw/diagresultsdb/server/inc/diagresultsdbtestrecordsubsession.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Symbian OS server subsession. -* libraries : -* -*/ - - -#ifndef DIAGRESULTSDBTESTRECORDSUBSESSION_H -#define DIAGRESULTSDBTESTRECORDSUBSESSION_H - -//System includes -#include //RMessage2 -#include //CObject - -//Forward declarations -class CDiagResultsDbSession; -class CDiagResultsDbTestRecordHandle; -class MRecordCompletionObserver; - -/** -* Server Subsession -* -* @since S60 v5.0 -**/ -class CDiagResultsDbTestRecordSubsession: public CObject, - public MRecordCompletionObserver - { -public: - - /** - * NewL. - * - * @param aSession Main Database session. - * @param aTestRecord The test record that this subsession handles. - * The record is either totally empty or contains data. - * @param aResumeTestRecord Indicates can opened test record modified. - * - * @return Test record subsession. - **/ - static CDiagResultsDbTestRecordSubsession* NewL( - CDiagResultsDbSession* aSession, - CDiagResultsDbTestRecordHandle* aTestRecordHandle, - TBool aReadonly - ); - - /** - * Destructor. - **/ - ~CDiagResultsDbTestRecordSubsession(); - - /** - * Handles the client request. - * - * @param aMessage Details of the client request. - * @return ETrue if request was asynchronous, EFalse otherwise. - **/ - TBool DispatchMessageL(const RMessage2& aMessage); - - /** - * Returns the test record that this subsession represents. - * - * @return The test record. - **/ - CDiagResultsDbTestRecordHandle* CurrentTestRecordHandle(); - - /** - * Returns the value that client send when connecting. - * ETrue = Readonly subsession. - * EFalse = Writable subsession. - **/ - TBool ReadonlySubsession() const; - -public: //MRecordCompletionObserver - - /** - * This is called when test record is completed. - * - * @param aError Symbian error code or KErrNone. - **/ - void CompletedRecordL( TInt aError ); - -protected: - - /** - * C++ Constructor - * - * @param aSession Main Database session. - * @param aTestRecord The test record that this subsession handles. - * The record is either totally empty or contains data. - **/ - CDiagResultsDbTestRecordSubsession( - CDiagResultsDbSession* aSession, - CDiagResultsDbTestRecordHandle* aTestRecord, - TBool aReadonly - ); - - /** - * ConstructL. - **/ - void ConstructL(); - -private: // Client request handling functions. - // Look at DiagResultsDatabaseCommon.h for the client requests. - - void LogTestResultL( const RMessage2& aMessage ); - - void GetTestResultL( const RMessage2& aMessage ); - - void CompleteTestRecordL( const RMessage2& aMessage ); - - void GetTestResultsL( CDiagResultsDbTestRecordHandle* aTestRecord, - const RMessage2& aMessage ); - - void GetTestUidsL( const RMessage2& aMessage ); - - void GetEngineParamL( const RMessage2& aMessage ); - - TBool Completed() const; - - void GetStatusL ( const RMessage2& aMessage ); - - void SuspendTestRecordL( const RMessage2& aMessage ); - - void CancelLogTestResult( const RMessage2& aMessage ); - -private: // Data - - // Main DB session - CDiagResultsDbSession* iSession; - - // Test record that represents this subsession. - CDiagResultsDbTestRecordHandle* iTestRecordHandle; - - // Details of the client request. - RMessage2 iMsg; - - // Dynamic flat buffer for transmitting data across IPC. - CBufFlat* iBuffer; - - // Read or Write-mode - TBool iReadonly; - - TBool iCompletedLogTest; - }; - -#endif // DIAGRESULTSDBTESTRECORDSUBSESSION_H diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbserver.cpp --- a/devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbserver.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,245 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of -* -*/ - - -#include "diagresultsdatabasecommon.h" -#include "diagresultsdbserver.h" -#include "diagresultsdbsession.h" - -#include -#include - -//Enter any new accepted UIDs here. -const TInt KAcceptedUids[] = - { - 0x2000B0E8, //Phone Doctor - 0x2000E542, //Diagnostics application - 0x102073E4, // STIF -#if defined( _DEBUG ) || defined( __WINSCW__ ) - 0x10282CDA, //Results DB test app - 0x20000FB1, //EUnitAppEnv - 0x20000FB2, //EUnitEikApp - 0x20000FB3, //EUnitExeEnv - 0xED80F513, // DiagFramework Test app -#endif // _DEBUG || __WINSCW__ - 0x2000F8E8 // donno - }; - -const TInt KAcceptedUidCount = sizeof( KAcceptedUids ) / sizeof( TInt ); - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbServer::CDiagResultsDbServer(TInt aPriority, - const TPolicy &aPolicy) -: CPolicyServer(aPriority, aPolicy), iContainerIndex( NULL ), iSessionCount(0) - { - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbServer::~CDiagResultsDbServer() - { - delete iContainerIndex; - } - -// --------------------------------------------------------------------------- -// NewLC. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbServer::NewLC(const TPolicy &aPolicy) - { - CDiagResultsDbServer *pS = new CDiagResultsDbServer( - CActive::EPriorityHigh, aPolicy ); - CleanupStack::PushL( pS ); - pS->StartL( KDiagResultsDatabaseServerName ); - pS->ConstructL(); - } - -// --------------------------------------------------------------------------- -// ConstructL. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbServer::ConstructL() - { - iContainerIndex = CObjectConIx::NewL(); - } - - -// --------------------------------------------------------------------------- -// Create a new server session. -// --------------------------------------------------------------------------- -// -CSession2 *CDiagResultsDbServer::NewSessionL(const TVersion &aVersion, - const RMessage2 &/*aMessage*/) const - { - // check we're the right version - TVersion v(KDiagResultsDatabaseServerMajor, KDiagResultsDatabaseServerMinor, - KDiagResultsDatabaseServerBuild); - if( !User::QueryVersionSupported( v, aVersion ) ) - User::Leave( KErrNotSupported ); - // make new session - return CDiagResultsDbSession::NewL((CDiagResultsDbServer*)this); - } - -// --------------------------------------------------------------------------- -// Create new object container. -// --------------------------------------------------------------------------- -// -CPolicyServer::TCustomResult CDiagResultsDbServer::CustomSecurityCheckL( - const RMessage2 &aMsg, - TInt &/*aAction*/, - TSecurityInfo &/*aMissing*/) - { - CPolicyServer::TCustomResult result = EFail; - TInt sid = aMsg.SecureId(); - - for ( TInt i = 0; i < KAcceptedUidCount; ++i ) - { - if ( sid == KAcceptedUids[i] ) - { - if ( aMsg.HasCapability( ECapabilityReadDeviceData ) && - aMsg.HasCapability( ECapabilityWriteDeviceData ) ) - { - result = EPass; - break; - } - } - } - - return result; - } - -// --------------------------------------------------------------------------- -// Create new object container. -// --------------------------------------------------------------------------- -// -CObjectCon* CDiagResultsDbServer::NewContainerL() - { - return iContainerIndex->CreateL(); - } - - -// --------------------------------------------------------------------------- -// Remove object from a container index, -// --------------------------------------------------------------------------- -// -void CDiagResultsDbServer::RemoveContainer(CObjectCon* aCon) - { - iContainerIndex->Remove( aCon ); - } - -// --------------------------------------------------------------------------- -// Return the total amount of client sessions. -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbServer::SessionCount() - { - return iSessionCount; - } - -// --------------------------------------------------------------------------- -// Decrease session count when one client leaves and stop server if there are -// no more clients. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbServer::DecreaseSessionCount() - { - iSessionCount--; - if (iSessionCount == 0) - { - CActiveScheduler::Stop(); - } - } - -// --------------------------------------------------------------------------- -// One new session created. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbServer::IncreaseSessionCount() - { - iSessionCount++; - } - -// --------------------------------------------------------------------------- -// Create cleanupStack and call RunserverL. -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbServer::RunServer() - { - __UHEAP_MARK; - // - CTrapCleanup* cleanup = CTrapCleanup::New(); - TInt ret = KErrNoMemory; - if( cleanup ) - { - TRAP( ret, CDiagResultsDbServer::RunServerL() ); - delete cleanup; - } - // - __UHEAP_MARKEND; - if( ret != KErrNone ) - { - // Signal the client that server creation failed - RProcess::Rendezvous( ret ); - } - return ret; - } - -// --------------------------------------------------------------------------- -// Create active scheduler and run server. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbServer::RunServerL() - { - User::RenameThread(KDiagResultsDatabaseServerName); - - // Create and install the active scheduler we need - CActiveScheduler *as=new (ELeave)CActiveScheduler; - CleanupStack::PushL( as ); - CActiveScheduler::Install(as); - - // Create server - CDiagResultsDbServer::NewLC(policy); - - // Initialisation complete, now signal the client - - RProcess::Rendezvous(KErrNone); - - // Ready to run - CActiveScheduler::Start(); - - // Cleanup the server and scheduler - CleanupStack::PopAndDestroy(2, as); - } - - -// --------------------------------------------------------------------------- -// Main function that is called when server(.EXE) is launched. -// --------------------------------------------------------------------------- -// -TInt E32Main() - { - TInt error(KErrNone); - error = CDiagResultsDbServer::RunServer(); - return error; - } - - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbsession.cpp --- a/devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbsession.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1042 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of CDiagResultsDbSession -* -*/ - - -#include "diagresultsdatabasecommon.h" -#include "diagresultsdbsession.h" -#include "diagresultsdbserver.h" -#include "diagresultsdbtestrecordsubsession.h" -#include "diagresultsdatabasetestrecordinfo.h" -#include "diagresultsdbtestrecordhandle.h" -#include "diagresultsdbtestrecord.h" -#include "diagresultsdatabaseitem.h" -#include "diagresultsdbrecordinfoarraypacked.h" -#include "diagresultsdbcrdc.h" -#include "diagresultsdbrecordengineparam.h" - -//System includes -#include - -const TInt KArrayGranuality = 50; -const TInt KResultsDatabaseBufferLength=0x700; - -// --------------------------------------------------------------------------- -// constructor - must pass client to CSession -// --------------------------------------------------------------------------- -// -CDiagResultsDbSession::CDiagResultsDbSession(CDiagResultsDbServer * aServer): - iServer(aServer), iSubsessionContainer( NULL ), iSubsessionIndex(NULL), - iLastResultCommand( 0 ), - iStore(NULL), iBufferedLastResults(NULL), iBufferedSingleResult(NULL), - iHasWrittenData(EFalse) - { - aServer->IncreaseSessionCount(); - } - -// --------------------------------------------------------------------------- -// NewL. -// --------------------------------------------------------------------------- -// -CDiagResultsDbSession* CDiagResultsDbSession::NewL(CDiagResultsDbServer * aServer) - { - CDiagResultsDbSession* pSession= new (ELeave) CDiagResultsDbSession( aServer ); - CleanupStack::PushL( pSession ); - pSession->ConstructL(); - CleanupStack::Pop(); - return pSession; - } - -// --------------------------------------------------------------------------- -// ConstructL. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::ConstructL() - { - iSubsessionContainer = iServer->NewContainerL(); - iSubsessionIndex = CObjectIx::NewL(); - - // buffer for IPC. Objects are transmitted in this buffer. - // Size of the buffer has to be selected carefully. - // It should be 'large enough' but not too large. - // If you see too many overflows, increase the size. - iBuffer = CBufFlat::NewL(KArrayGranuality); - iBuffer->ResizeL(KResultsDatabaseBufferLength); - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbSession::~CDiagResultsDbSession() - { - if ( iBuffer ) - { - iBuffer->Reset(); - delete iBuffer; - iBuffer = NULL; - } - - // NOTE! - // The deletion order is important here. You must - // delete object indexes first, because this zeros the - // number of references to any CObject type objects. Trying - // to delete object container first, you get panic - // E32USER-CBase 33: an attempt is made to delete the CObject - // when the reference count is not zero. - delete iSubsessionIndex; - - if ( iSubsessionContainer ) - { - iServer->RemoveContainer( iSubsessionContainer ); - } - - delete iStore; - - if ( iServer ) - { - iServer->DecreaseSessionCount(); - } - - if ( iBufferedLastResults ) - { - iBufferedLastResults->ResetAndDestroy(); - iBufferedLastResults->Close(); - delete iBufferedLastResults; - iBufferedLastResults = 0; - } - - if ( iBufferedSingleResult ) - { - delete iBufferedSingleResult; - iBufferedSingleResult = NULL; - } - } - -// --------------------------------------------------------------------------- -// Service client requests. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::ServiceL(const RMessage2& aMessage) - { - LOGME("CDiagResultsDbSession::ServiceL"); - TBool async = EFalse; - TRAPD( err, async = DispatchMessageL( aMessage ) ); - LOGME1("CDiagResultsDbSession::ServiceL %d",err); - if ( !async ) - { - aMessage.Complete( err ); - } - } - -// --------------------------------------------------------------------------- -// service a client request; test the opcode and then do appropriate servicing -// --------------------------------------------------------------------------- -// -TBool CDiagResultsDbSession::DispatchMessageL(const RMessage2 &aMessage) - { - LOGME("CDiagResultsDbSession::DispatchMessageL"); - iMsg = aMessage; - TInt function = aMessage.Function(); - LOGME1("CDiagResultsDbSession::DispatchMessageL - %d",function); - TInt handle(0); - CObject* subsession = NULL; - switch( function ) - { - case DiagResultsDbCommon::EConnect: - { - LOGME("CDiagResultsDbSession::EConnect"); - TPckgBuf uidpckg; - aMessage.Read(0, uidpckg); - iDbUid = uidpckg(); - - iStore = CDiagResultsDbStore::NewL( iDbUid ); - return EFalse; - } - - case DiagResultsDbCommon::EClose: - { - LOGME("CDiagResultsDbSession::EClose"); - aMessage.Complete (KErrNone); - - return ETrue; - } - - case DiagResultsDbCommon::EGetRecordCount: - { - LOGME("CDiagResultsDbSession::EGetRecordCount"); - RArray uids; - CleanupClosePushL ( uids ); - iStore->RecordUidsL( uids ); - - TPckgBuf pckg( uids.Count() ); - aMessage.Write(0, pckg); - - CleanupStack::PopAndDestroy( &uids ); - return EFalse; - } - - case DiagResultsDbCommon::EConnectSubsession: - LOGME("CDiagResultsDbSession::EConnectSubsession"); - ConnectSubsessionL( aMessage ); - return EFalse; - - case DiagResultsDbCommon::ESubsessionCreateNewRecord: - LOGME("CDiagResultsDbSession::ESubsessionCreateNewRecord"); - CreateNewRecordL( aMessage ); - HasWritten(); - return EFalse; - - case DiagResultsDbCommon::ECloseSubsession: - LOGME("CDiagResultsDbSession::ECloseSubsession"); - CloseSubsessionL(); - return EFalse; - - case DiagResultsDbCommon::EGetLastRecord: - LOGME("CDiagResultsDbSession::EGetLastRecord"); - GetLastRecordL( aMessage ); - return EFalse; - - case DiagResultsDbCommon::EGetLastNotCompletedRecord: - LOGME("CDiagResultsDbSession::EGetLastNotCompletedRecord"); - GetLastNotCompletedRecordL( aMessage ); - return EFalse; - - case DiagResultsDbCommon::EGetRecordList: //record uids - LOGME("CDiagResultsDbSession::EGetRecordList"); - GetRecordListL( aMessage ); - return EFalse; - - case DiagResultsDbCommon::EGetRecordInfoList: - LOGME("CDiagResultsDbSession::EGetRecordInfoList"); - GetRecordInfoListL( aMessage ); - return EFalse; - - case DiagResultsDbCommon::EInitiateGetLastResults: //Async - { - LOGME("CDiagResultsDbSession::EInitiateGetLastResults"); - ReadBufferL( aMessage, 0, iBuffer ); - - iLastResultsMsg = iMsg; - - iLastResultCommand = DiagResultsDbCommon::EInitiateGetLastResults; - - if ( iBufferedLastResults ) - { - iBufferedLastResults->ResetAndDestroy(); - iBufferedLastResults->Close(); - delete iBufferedLastResults; - iBufferedLastResults = 0; - } - - iStore->ExistingRecordsAsyncL( *this ); - return ETrue; - } - - case DiagResultsDbCommon::EInitiateGetSingleLastResult: //Async - { - LOGME("CDiagResultsDbSession::EInitiateGetSingleLastResult"); - iLastSingleResultsMsg = iMsg; - - iLastResultCommand = DiagResultsDbCommon::EInitiateGetSingleLastResult; - - if ( iBufferedSingleResult ) - { - delete iBufferedSingleResult; - iBufferedSingleResult = NULL; - } - - iStore->ExistingRecordsAsyncL( *this ); - return ETrue; - } - - - case DiagResultsDbCommon::EGetLastResults: - LOGME("CDiagResultsDbSession::EGetLastResults"); - GetLastResultsL( aMessage ); - return EFalse; - - case DiagResultsDbCommon::EGetSingleLastResult: - LOGME("CDiagResultsDbSession::EGetSingleLastResult"); - GetSingleLastResultL( aMessage ); - return EFalse; - - case DiagResultsDbCommon::ECancelInitiateGetLastResults: - { - LOGME("CDiagResultsDbSession::ECancelInitiateGetLastResults"); - CancelLastResultsL( aMessage ); - return EFalse; - } - - // Sub-session requests. See CDiagResultsDbTestRecordSubsession. - case DiagResultsDbCommon::ESubsessionGetTestRecordId: - case DiagResultsDbCommon::ESubsessionTestCompleted: - case DiagResultsDbCommon::ESubsessionIsTestCompleted: - case DiagResultsDbCommon::ESubsessionGetRecordInfo: - case DiagResultsDbCommon::ESubsessionGetTestUids: - case DiagResultsDbCommon::ESubsessionSuspend: - case DiagResultsDbCommon::ESubsessionIsSuspended: - case DiagResultsDbCommon::ESubsessionLogTestResult: - case DiagResultsDbCommon::ESubsessionGetTestResult: - case DiagResultsDbCommon::ESubsessionGetTestResults: - case DiagResultsDbCommon::ESubsessionGetEngineParam: - case DiagResultsDbCommon::ESubsessionGetStatus: - case DiagResultsDbCommon::ESubsessionCancelLogTestResult: - LOGME("CDiagResultsDbSession::ESubsessionCancelLogTestResult"); - handle = aMessage.Int3(); - subsession = iSubsessionIndex->At( handle ); - return static_cast(subsession) - ->DispatchMessageL( aMessage ); - default: - aMessage.Panic( _L("DiagSrv panic: unknown command"), - DiagResultsDbCommon::EBadRequest ); - return EFalse; - } - } - -// --------------------------------------------------------------------------- -// Get function. -// --------------------------------------------------------------------------- -// -TBool CDiagResultsDbSession::SessionHasWritten() const - { - return iHasWrittenData; - } - -// --------------------------------------------------------------------------- -// Connect to a subsession. Test record represents the connected subsession. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::ConnectSubsessionL( const RMessage2 &aMessage ) - { - TPckgBuf uidpckg; - aMessage.Read(0, uidpckg); - TUid recordUid = uidpckg(); - - TPckgBuf readOnlyPckg; - aMessage.Read(1, readOnlyPckg); - TBool readonly = readOnlyPckg(); - - CDiagResultsDbTestRecordHandle* handle = iStore->OpenExistingHandleL( - recordUid ); - - if ( readonly ) - { - // keep the record as it is. - } - else - { - if ( handle->RecordInfo().iCompleted ) - { - delete handle; - handle = 0; - User::Leave( KErrAlreadyExists ); - } - - handle->RecordInfo().iRecordStatus = - TDiagResultsDatabaseTestRecordInfo::EOpen; - } - - CreateSubsessionL( handle, readonly ); - } - -// --------------------------------------------------------------------------- -// Create a new record. This does not write data into the db file. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::CreateNewRecordL ( const RMessage2 &aMessage ) - { - - ReadBufferL( aMessage, 1, iBuffer ); - - RBufReadStream stream( *iBuffer ); - CleanupClosePushL ( stream ); - - CDiagResultsDbRecordEngineParam* params = - CDiagResultsDbRecordEngineParam::NewL ( stream ); - CleanupStack::PushL( params ); - - CDiagResultsDbTestRecordHandle* handle = iStore->CreateNewRecordL( params ); - - handle->RecordInfo().iRecordStatus = - TDiagResultsDatabaseTestRecordInfo::EOpen; - - CleanupStack::Pop(); //params - CleanupStack::PopAndDestroy( &stream ); - - CreateSubsessionL(handle, EFalse); - - TPckgBuf recorduidpckg( handle->RecordInfo().iRecordId ); - - aMessage.Write(0, recorduidpckg ); - } - -// --------------------------------------------------------------------------- -// Return the database file uid. -// --------------------------------------------------------------------------- -// -TUid CDiagResultsDbSession::DbUid() const - { - return iDbUid; - } - -// --------------------------------------------------------------------------- -// Create a new subsession. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::CreateSubsessionL( - CDiagResultsDbTestRecordHandle* aTestRecordHandle, - TBool aReadonly ) - { - TInt handle(0); - CObject* subsession = NULL; - - // Create sub-session object - subsession = CDiagResultsDbTestRecordSubsession::NewL( this, - aTestRecordHandle, - aReadonly ); - CleanupStack::PushL( subsession ); - iSubsessionContainer->AddL( subsession ); - CleanupStack::Pop(); - - // Create sub-session handle - TRAPD( err, handle = iSubsessionIndex->AddL( subsession ) ); - - // Remember to remove session object from object container - if( err != KErrNone ) - { - iSubsessionContainer->Remove( subsession ); - User::Leave( DiagResultsDbCommon::ESvrCreateSubsession ); - } - - // Package to pass information to the client - TPckgC handlePckg(handle); - - // Send handle to the client - TRAP( err, iMsg.WriteL( 3, handlePckg ) ); - if( err != KErrNone ) - { - iSubsessionIndex->Remove(handle); - User::Leave( DiagResultsDbCommon::ESvrCreateSubsession ); - } - - return; - } - -// --------------------------------------------------------------------------- -// Close existing subsession. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::CloseSubsessionL() - { - TInt handle = iMsg.Int3(); - iSubsessionIndex->Remove(handle); - } - -// --------------------------------------------------------------------------- -// Return store that is responsible for handling the database file. -// --------------------------------------------------------------------------- -// -CDiagResultsDbStore& CDiagResultsDbSession::Store() - { - return *iStore; - } - -// --------------------------------------------------------------------------- -// Service function. Searches for newest test results. -// Related functions: -// ExistingRecordsAsyncL (initiates async fetch of test records) -// CancelLastResultsL (cancel async fetch) -// ExistingRecordsL (retrieves test records) -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::GetLastResultsL( const RMessage2 &aMessage ) - { - if ( iBufferedLastResults == NULL ) - { - User::Leave ( KErrNotFound ); - } - - ReadBufferL( aMessage, 0, iBuffer ); - - RBufWriteStream stream ( *iBuffer ); - CleanupClosePushL( stream ); - - stream.WriteInt16L( iBufferedLastResults->Count() ); - - for ( TInt i = 0; i < iBufferedLastResults->Count(); ++i ) - { - CDiagResultsDatabaseItem* item = (*iBufferedLastResults)[i]; - - if ( item == NULL ) - { - stream.WriteUint8L(0); - } - else - { - stream.WriteUint8L(1); - (*iBufferedLastResults)[i]->ExternalizeL( stream ); - } - } - - if ( iBuffer->Ptr(0).Length() > aMessage.GetDesMaxLength(0) ) - { - User::Leave( KErrOverflow ); - } - - stream.CommitL(); - - CleanupStack::PopAndDestroy( &stream ); - - aMessage.Write( 0, iBuffer->Ptr(0) ); //write to client's address space - - iBufferedLastResults->ResetAndDestroy(); - iBufferedLastResults->Close(); - delete iBufferedLastResults; - iBufferedLastResults = NULL; - } - - -// --------------------------------------------------------------------------- -// Service function. Get single test result (the newest). -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::GetSingleLastResultL( const RMessage2 &aMessage ) - { - ReadBufferL( aMessage, 0, iBuffer ); - - RBufWriteStream stream ( *iBuffer ); - CleanupClosePushL( stream ); - - if ( iBufferedSingleResult ) - { - stream.WriteInt8L( 1 ); - - iBufferedSingleResult->ExternalizeL( stream ); - - } - else //NULL - { - stream.WriteInt8L( 0 ); - } - - stream.CommitL(); - CleanupStack::PopAndDestroy( &stream ); - - aMessage.Write( 0, iBuffer->Ptr(0) ); - - delete iBufferedSingleResult; - iBufferedSingleResult = NULL; - } - - -// --------------------------------------------------------------------------- -// Service function. Cancel InitiateGetLastResults method. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::CancelLastResultsL( const RMessage2 & /*aMessage*/ ) - { - if ( !iLastResultsMsg.IsNull() ) - { - iStore->Cancel(); - iLastResultsMsg.Complete( KErrCancel ); - - if ( iBufferedLastResults ) - { - iBufferedLastResults->ResetAndDestroy(); - delete iBufferedLastResults; - iBufferedLastResults = NULL; - } - } - } - -// --------------------------------------------------------------------------- -// Service function. Retrieve uid of the newest test record. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::GetLastRecordL( const RMessage2 &aMessage ) - { - RArray uids; - CleanupClosePushL ( uids ); - iStore->RecordUidsL( uids ); - - if ( uids.Count() == 0 ) - { - User::Leave( KErrNotFound ); - } - - TPckgBuf pckg( uids[uids.Count() -1] ); //newest record is the last - aMessage.Write( 0, pckg ); - - CleanupStack::PopAndDestroy( &uids ); - } - - -// --------------------------------------------------------------------------- -// Service function. Try to find a test record that was suspended. -// Leave with KErrNotFound if such test record is not found. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::GetLastNotCompletedRecordL( const RMessage2 &aMessage ) - { - RArray uids; - CleanupClosePushL ( uids ); - iStore->RecordUidsL( uids ); - - TBool found = EFalse; - - // newest record are on the top. - for (TInt i = uids.Count() -1; i >= 0; --i) - { - CDiagResultsDbTestRecordHandle* handle = - iStore->OpenExistingHandleL( uids[i] ); - - CleanupStack::PushL (handle); - - if( handle->RecordInfo().iRecordStatus != - TDiagResultsDatabaseTestRecordInfo::ECompleted && - !handle->RecordInfo().iCompleted ) - - { - TPckgBuf pckg( handle->RecordInfo().iRecordId ); - aMessage.Write( 0, pckg ); - found = ETrue; - CleanupStack::PopAndDestroy( handle ); - break; - } - - CleanupStack::PopAndDestroy( handle ); - } - - CleanupStack::PopAndDestroy( &uids ); - - if ( !found ) - { - User::Leave ( KErrNotFound ); - } - } - -// --------------------------------------------------------------------------- -// Service function. Retrieve all test record uids that there are. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::GetRecordListL( const RMessage2 &aMessage ) - { - ReadBufferL( aMessage, 0, iBuffer ); - - RArray uids; - CleanupClosePushL( uids ); - iStore->RecordUidsL( uids ); - - RBufWriteStream stream ( *iBuffer ); - CleanupClosePushL( stream ); - stream.WriteInt16L( uids.Count() ); - - for ( TInt i = 0; i < uids.Count(); ++i ) - { - stream.WriteInt32L( uids[i].iUid ); - } - - if ( iBuffer->Ptr(0).Length() > aMessage.GetDesMaxLength(0) ) - { - User::Leave( KErrOverflow ); - } - - aMessage.Write( 0, iBuffer->Ptr(0) ); //write to client's address space - - CleanupStack::PopAndDestroy( &stream ); - CleanupStack::PopAndDestroy( &uids ); - - } - -// --------------------------------------------------------------------------- -// Service function. Return overviews of test records. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::GetRecordInfoListL( const RMessage2 &aMessage ) - { - ReadBufferL( aMessage, 0, iBuffer ); - - CArrayFixFlat* array = new (ELeave) - CArrayFixFlat(KArrayGranuality); - CleanupStack::PushL (array); - - RArray uids; - CleanupClosePushL ( uids ); - iStore->RecordUidsL( uids ); - - for (TInt i = 0; i < uids.Count(); ++i) - { - CDiagResultsDbTestRecordHandle* handle = - iStore->OpenExistingHandleL( uids[i] ); - - CleanupStack::PushL (handle); - array->AppendL( handle->RecordInfo() ); - - CleanupStack::PopAndDestroy( handle ); - } - - CleanupStack::PopAndDestroy( &uids ); - - TDiagResultsDbRecordInfoArrayPacked packedArray ( iBuffer ); - packedArray.PackArrayL ( *array ); - - if ( iBuffer->Ptr(0).Length() > aMessage.GetDesMaxLength(0) ) - { - User::Leave( KErrOverflow ); - } - - aMessage.Write( 0, iBuffer->Ptr(0) ); //write to client's address space - - CleanupStack::PopAndDestroy( array ); - - } - -// --------------------------------------------------------------------------- -// Helper function to read a buffer from client side. Leaves the buffer -// onto cleanup stack IF it has to create a new one. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::ReadBufferL(const RMessage2& aMessage, TInt aParam, - CBufFlat*& aBuffer) - { - TInt desLen = aMessage.GetDesLengthL(aParam); - - if(desLen >= 0) - { - if (aBuffer==NULL) - { - aBuffer = CBufFlat::NewL(KArrayGranuality); - aBuffer->ResizeL(desLen); - CleanupStack::PushL(aBuffer); - } - else if (desLen > aBuffer->Ptr(0).MaxLength()) - { - iBuffer->Delete( 0, iBuffer->Size() ); // delete old data. - // we have to increase the size of aBuffer - aBuffer->ResizeL(desLen); - } - - TPtr8 desPtr = aBuffer->Ptr(0); - aMessage.ReadL(aParam, desPtr); - - } - else - { - // desLen is negative leave with an error. - User::Leave(KErrArgument); - } - } - -// --------------------------------------------------------------------------- -// Store observer method. This is called after store has retrieved -// test records from the DB file. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::ExistingRecordsL( TInt aError, - RPointerArray* aArray ) - { - CleanupStack::PushL ( aArray ); - CleanupResetAndDestroyClosePushL( *aArray ); - - //Check if there were any errors during loading the test records. - if ( aError != KErrNone ) - { - - if ( iLastResultCommand == - DiagResultsDbCommon::EInitiateGetLastResults ) - { - iLastResultsMsg.Complete ( aError ); - } - else if ( iLastResultCommand == - DiagResultsDbCommon::EInitiateGetSingleLastResult ) - { - iLastSingleResultsMsg.Complete ( aError ); - } - - CleanupStack::PopAndDestroy( aArray ); - CleanupStack::PopAndDestroy( aArray ); //delete the pointer - return; - } - - switch( iLastResultCommand ) - { - - //Find multiple last results - //buffer contains the uids to be searched. - //See RDiagResultsDatabase::InitiateGetLastResults. - case DiagResultsDbCommon::EInitiateGetLastResults: - { - //Trap is needed so that we can complete client's request - //if any errors occur. - TRAPD(error, FindLastResultsL( *aArray )); - - if ( error != KErrNone ) - { - iLastResultsMsg.Complete (error); - break; - } - else - { - iLastResultsMsg.Complete (KErrNone); - } - - break; - } - - // Find single test result - // see RDiagResultsDatabase::InitiateGetLastResult. - case DiagResultsDbCommon::EInitiateGetSingleLastResult: - { - TPckgBuf uidpckg; - iLastSingleResultsMsg.Read(0, uidpckg); - TUid resultsItemUid = uidpckg(); - - CDiagResultsDatabaseItem* item = NULL; - - // Trap any errors and complete client's request if there - // are any errors. - TRAPD(error, item = FindDatabaseItemL( resultsItemUid, aArray)) ; - - if ( error != KErrNone ) - { - delete item; - item = NULL; - - iLastSingleResultsMsg.Complete (error); - break; - } - - if ( item == NULL ) //Not found - { - iBufferedSingleResult = NULL; - - //Check also the last results buffer - CheckLastResultsBufferL( resultsItemUid, iBufferedSingleResult ); - } - else - { - iBufferedSingleResult = item; - } - - - - iLastSingleResultsMsg.Complete (KErrNone); - break; - } - - default: - { - User::Panic ( _L("Diag results DB"), - DiagResultsDbCommon::EUnknownLastResultState ); - } - } - - iLastResultCommand = 0; - - CleanupStack::PopAndDestroy( aArray ); //call reset and destroy + close - CleanupStack::PopAndDestroy( aArray ); //delete the pointer - } - - -// --------------------------------------------------------------------------- -// Read UIDs from a stream and search last results. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::FindLastResultsL( - RPointerArray& aArray ) - { - - CArrayFixFlat* uidArray = new (ELeave) - CArrayFixFlat(KArrayGranuality); - CleanupStack::PushL( uidArray ); - - RBufReadStream stream( *iBuffer ); - CleanupClosePushL ( stream ); - - TInt8 count = stream.ReadInt8L(); - - for ( TInt i = 0; i < count; ++i ) - { - TInt32 uid = stream.ReadInt32L(); - - uidArray->AppendL( TUid::Uid( uid )); - } - - CleanupStack::PopAndDestroy( &stream ); - - iBufferedLastResults = new (ELeave) RPointerArray; - - SearchLastResultsL( *uidArray, aArray, *iBufferedLastResults ); - - //last results could be also in the last results buffer. - CheckLastResultsBufferL( *uidArray, *iBufferedLastResults ); - - // there must be exactly the same number of cells in both arrays. - if ( uidArray->Count() != iBufferedLastResults->Count() ) - { - User::Panic ( _L("Diag results DB"), - DiagResultsDbCommon::EGetLastResultsMismatch ); - } - - CleanupStack::PopAndDestroy( uidArray ); - } - - -// --------------------------------------------------------------------------- -// Check last result buffer for test results. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::CheckLastResultsBufferL( - const CArrayFixFlat& aUidArray, - RPointerArray& aResultsArray ) - { - CDiagResultsDbTestRecord* buffer = iStore->OpenExistingLastResultsBufferL(); - CleanupStack::PushL( buffer ); - - for (TInt i = 0; i < aResultsArray.Count(); ++i) - { - if ( aResultsArray[i] == NULL ) - { - TUid uid = aUidArray[i]; - - CDiagResultsDatabaseItem* item = buffer->FindTestRecord( uid ); - - if ( item ) - { - buffer->RemoveL( uid ); - aResultsArray[i] = item; - } - } - } - - CleanupStack::PopAndDestroy( buffer ); - } - - -// --------------------------------------------------------------------------- -// Check last result buffer for test result. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::CheckLastResultsBufferL( - TUid aTestUid, - CDiagResultsDatabaseItem*& aResult ) - { - - - CDiagResultsDbTestRecord* buffer = iStore->OpenExistingLastResultsBufferL(); - CleanupStack::PushL( buffer ); - - CDiagResultsDatabaseItem* item = buffer->FindTestRecord( aTestUid ); - - if ( item ) - { - buffer->RemoveL( aTestUid ); - aResult = item; - } - - CleanupStack::PopAndDestroy( buffer ); - } - - -// --------------------------------------------------------------------------- -// Searches for the newest test results. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::SearchLastResultsL( - const CArrayFixFlat& aUidArray, - RPointerArray& aTestRecordArray, - RPointerArray& aResultsArray ) - - { - //Search all records for certain uid. - for ( TInt i = 0; i < aUidArray.Count(); ++i ) - { - - CDiagResultsDatabaseItem* item = - FindDatabaseItemL( aUidArray[i], &aTestRecordArray ); - - if ( item == NULL ) //Not found - { - aResultsArray.Append(NULL); - } - else - { - aResultsArray.Append( item ); - } - } - } - - -// --------------------------------------------------------------------------- -// Indicates has session written any data into the DB file. -// To be exact only subsession writes data into the file. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::HasWritten() - { - iHasWrittenData = ETrue; - } - -// --------------------------------------------------------------------------- -// Turn off compacting. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbSession::DoNotCompact() - { - iHasWrittenData = EFalse; - } - -// --------------------------------------------------------------------------- -// Helper function to seach an item from a pointer array. -// Starts from the newest record to search for an UID. -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem* CDiagResultsDbSession::FindDatabaseItemL( TUid aUid, - RPointerArray* aArray ) - { - - //Check that there is a test record. - if ( !aArray || aArray->Count() == 0 ) - { - return NULL; - } - - // start from the newest record - for (TInt x = aArray->Count() -1; x >= 0 ; --x ) - { - CDiagResultsDbTestRecord* record = (*aArray)[x]; - - //Assumes that there is only MAX one specific UID in the test record. - for ( TInt y = 0; y < record->Count(); ++y ) - { - CDiagResultsDatabaseItem* item = record->GetItem( y ); - - // Search for a test result that is not skipped / cancelled. - if ( item->TestUid() == aUid && - (item->TestResult() == CDiagResultsDatabaseItem::ESuccess || - item->TestResult() == CDiagResultsDatabaseItem::EFailed )) - { - //Remove the found item to speed up look up times. - //This does not remove it from the DB file. - record->RemoveL( y ); - return item; - } - } - } - - return NULL; - } diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbstore.cpp --- a/devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbstore.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1267 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of -* -*/ - -#include -#include -#include -#include - -#include "diagresultsdbtestrecord.h" -#include "diagresultsdbstore.h" -#include "diagresultsdatabasecommon.h" -#include "diagresultsdbcrdc.h" -#include "diagresultsdatabase.h" -#include "diagresultsdbtestrecordhandle.h" -#include "diagresultsdbrecordengineparam.h" -#include "diagresultsdbprivatecrkeys.h" - -_LIT( KFileType, ".dat" ); -_LIT( KDriveC, "C:" ); - -const TInt KMininumDiskSpace = 500; - -const TInt KFirstStreamId = 2; - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbStore::CDiagResultsDbStore( TUid aDbUid ): - CActive( CActive::EPriorityStandard ), iStore( NULL ), - iDbUid( aDbUid ), iLoadingObserver( NULL ), iCompletionObserver( NULL ), - iRecordArray( NULL ), iRecordIds(NULL), iRecordNumber(0), - iTestRecord( NULL ), iState( ENotRunning ) - { - CActiveScheduler::Add(this); - } - -// --------------------------------------------------------------------------- -// NewL. Creates a DB file based on aDbUid if it does not exist. -// --------------------------------------------------------------------------- -// -CDiagResultsDbStore* CDiagResultsDbStore::NewL( TUid aDbUid ) - { - LOGME("CDiagResultsDbStore* CDiagResultsDbStore::NewL"); - CDiagResultsDbStore* store = new (ELeave) CDiagResultsDbStore( aDbUid ); - CleanupStack::PushL( store ); - store->ConstructL(); - CleanupStack::Pop(); - return store; - } - -// --------------------------------------------------------------------------- -// NewLC. -// --------------------------------------------------------------------------- -// -CDiagResultsDbStore* CDiagResultsDbStore::NewLC( TUid aDbUid ) - { - LOGME("CDiagResultsDbStore::NewLC"); - CDiagResultsDbStore* store = new (ELeave) CDiagResultsDbStore( aDbUid ); - CleanupStack::PushL( store ); - store->ConstructL(); - return store; - } - -// --------------------------------------------------------------------------- -// Starts asynchronous loading of all test records from the DB. -// Observer is notified when test records have been loaded. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::ExistingRecordsAsyncL( MRecordLoadingObserver& aObserver ) - { - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - - iLoadingObserver = &aObserver; - - iState = EGetRootStream; - iRecordNumber = 0; - - CompleteOwnRequest(); - - SetActive(); - } - -// --------------------------------------------------------------------------- -// Cancel asynchronous functionality. Do not call this directly (use Cancel()) -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::DoCancel() - { - if ( iRecordArray ) - { - iRecordArray->ResetAndDestroy(); - - delete iRecordArray; - iRecordArray = NULL; - } - - //Note that Store is not responsible for deleting the iTestRecord. - //iTestRecord is deleted by subsession. - - delete iRecordIds; - iRecordIds = NULL; - - iState = ENotRunning; - iRecordNumber = 0; - } - -// --------------------------------------------------------------------------- -// This is called if there are leaves or errors in RunL. -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbStore::RunError(TInt aError) - { - TInt err = KErrNone; - - switch ( iState ) - { - case EGetRootStream: - case EGetRecord: - case ERecordsReady: - { - TRAP( err, iLoadingObserver->ExistingRecordsL( aError, NULL ) ); - } - break; - default: - { - ///@@@KSR: changes for Codescanner error val = High - //User::Leave( aError ); - } - } - - return err; - } - - -// --------------------------------------------------------------------------- -// Keeps the database file small as possible. Compacting must be done often as -// possible keeping in mind that compacting could take a long time. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::CompactDatabase() - { - TRAPD( error, iStore->CompactL()); - - if ( error != KErrNone ) - { - User::Panic(_L("compact error"), - DiagResultsDbCommon::EDatabaseCompact ); - } - else - { - //Commit must be called in order to really reduce the size of DB file. - TRAP( error, iStore->CommitL() ); - if ( error != KErrNone ) - { - User::Panic(_L("compact/commit error"), - DiagResultsDbCommon::EDatabaseCompactCommit ); - } - } - } - -// --------------------------------------------------------------------------- -// Completes own request. This changes the value of TRequestStatus and causes -// RunL to be called afterwards (if CActive is active). -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::CompleteOwnRequest() - { - TRequestStatus* status = &iStatus; - User::RequestComplete( status, KErrNone ); - } - -// --------------------------------------------------------------------------- -// Asynchronous handling function. States are needed to separate two different -// tasks. The first one is loading test records from the db file. The second -// is writing a test record into the DB file. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::RunL() - { - - switch ( iState ) - { - case EGetRootStream: - { - iRecordArray = new (ELeave) RPointerArray; - iRecordIds = new (ELeave) RArray; - // Find available stream ids - ReadRootStreamL( *iRecordIds ); - - if ( iRecordIds->Count() == 0 ) //no records, no need to continue - { - //Ownership is transferred - iLoadingObserver->ExistingRecordsL( KErrNone, iRecordArray ); - iRecordArray = NULL; //do not delete - - iRecordIds->Close(); - delete iRecordIds; - iRecordIds = NULL; - - iState = ENotRunning; - iRecordNumber = 0; - - iLoadingObserver = NULL; - return; - } - - iState = EGetRecord; - - CompleteOwnRequest(); - SetActive(); - } - break; - - case EGetRecord: - { - iRecordArray->Append ( OpenExistingRecordL( - TUid::Uid( (*iRecordIds)[iRecordNumber].Value()), ETrue ) ); - iRecordNumber++; - if ( iRecordNumber < iRecordIds->Count() ) - { - iState = EGetRecord; - } - else - { - iState = ERecordsReady; - } - - CompleteOwnRequest(); - SetActive(); - } - break; - - case ERecordsReady: - { - //Ownership is transferred - iLoadingObserver->ExistingRecordsL( KErrNone, iRecordArray ); - iRecordArray = NULL; //do not delete - - iRecordIds->Close(); - delete iRecordIds; - iRecordIds = NULL; - - iState = ENotRunning; - iRecordNumber = 0; - - iLoadingObserver = NULL; - } - break; - - - default: - User::Leave( KErrNotFound ); - break; - - } - - } - -// --------------------------------------------------------------------------- -// Constructs the store. Creates the DB file if it does not exist or opens it. -// Also creates an empty root stream into the store if file was created. -// There is some exception handling included for example if file exist but it -// cannot be opened. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::ConstructL() - { - LOGME("CDiagResultsDbStore::ConstructL"); - //Read from central repository. - TInt algorithm = GetDeletionAlgorithmL(); - - if ( algorithm == 0 ) - { - iDeletionAlgorithm = EMaxRecordCountAlgorithm; - } - else if ( algorithm == 1 ) - { - iDeletionAlgorithm = ELastResultsAlgorithm; - } - else - { - User::Panic( _L("Unknown Deletion Algorithm"), - DiagResultsDbCommon::EUnknownDeletionAlgorithm); - } - - LOGME("resultdbstore::Before irfs.connect"); - User::LeaveIfError(iRfs.Connect()); - LOGME("iRfs.connect"); - TBool tooLowSpace = SysUtil::DiskSpaceBelowCriticalLevelL( - &iRfs, - KMininumDiskSpace, - EDriveC ); - LOGME1("tooLowSpace %d",tooLowSpace); - if ( tooLowSpace ) - { - User::Leave( KErrDiskFull ); - } - - TInt err = iRfs.CreatePrivatePath( EDriveC ); - - LOGME1("privatepathcreate %d",err); - //Create private path if it does not exists - if ( err != KErrAlreadyExists && err != KErrNone ) - { - User::Leave ( err ); //Unexpected error - } - - TBuf<256> filename; - iRfs.PrivatePath( filename ); - filename.Insert( 0, KDriveC ); - filename.Append( iDbUid.Name() ); - filename.Append( KFileType ); - - //Check is the File already there - //open for reading and writing. - err = iFile.Open( iRfs, filename, EFileShareAny|EFileWrite ); - - LOGME1("ifile.open %d",err); - TInt fileError = KErrNotFound; - TInt fileSize = 0; - - if ( err == KErrNone ) - { - fileError = iFile.Size( fileSize ); - } - - - //Checking is done when the file exists. - //File size reading error should never happen. - //if the file is too large, the function will panic. - if ( err == KErrNone && fileError == KErrNone ) - { - CheckMaximumFileSizeLimitL( iRfs, filename, fileSize ); - } - - iFile.Close(); - - // File exist - if ( err == KErrNone ) - { - TRAPD( err, iStore = CPermanentFileStore::OpenL(iRfs, filename, - EFileShareAny|EFileWrite|EFileRead|EFileStream )); - - if ( err != KErrNone ) - { - err = iRfs.Delete ( filename ); - - if ( err != KErrNone ) - { - User::Panic( _L("DiagServer corrupt file delete failed"), - DiagResultsDbCommon::EServerCorruptFileDelete); - } - - User::Leave( KErrCorrupt ); - } - - //This must be called, otherwise RStoreWriteStream write will fail. - iStore->SetTypeL( iStore->Layout() ); - } - - else if ( err == KErrNotFound ) //Create new file if the file is not found - { - LOGME("createnewfile"); - TRAPD( err, iStore = CPermanentFileStore::CreateL(iRfs, filename, - EFileShareAny|EFileWrite|EFileRead|EFileStream )); - - LOGME1("createnewfile = %d",err); - if ( err != KErrNone ) //File could not be created for some reason - { - LOGME1("createnewfile panic = %d",err); - User::Panic( _L("DiagServer unable to create DB file"), - DiagResultsDbCommon::EServerFileCreationError); - } - - //This must be called, otherwise RStoreWriteStream write will fail. - iStore->SetTypeL( iStore->Layout() ); - CreateEmptyRootStreamL( *iStore ); - - if ( iDeletionAlgorithm == ELastResultsAlgorithm ) - { - CreateLastResultsBufferStreamL(); - } - - iStore->CommitL(); - - } - else - { - LOGME1("else userleave = %d",err); - User::Leave( err ); - } - } - - -// --------------------------------------------------------------------------- -// Get central repository key that controls maximum file size. -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbStore::GetMaximumFileSizeL() - { - CRepository* cr = CRepository::NewLC( KCRUidDiagnosticsResults ); - - TInt result = 0; - TInt error = cr->Get( KDiagDatabaseMaxFileSize, result ); - - CleanupStack::PopAndDestroy(); - - if ( error != KErrNone ) - { - User::Leave(error); - } - return result; - } - - -// --------------------------------------------------------------------------- -// Get central repository key that controls usage of the deletion algorithm. -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbStore::GetDeletionAlgorithmL() - { - CRepository* cr = CRepository::NewLC( KCRUidDiagnosticsResults ); - - TInt result = 0; - TInt error = cr->Get( KDiagDatabaseDeletionAlgorithm, result ); - - CleanupStack::PopAndDestroy(); - - if ( error != KErrNone ) - { - User::Leave(error); - } - return result; - } - - -// --------------------------------------------------------------------------- -// Check DB file size and delete the file if it is too big. -// Checking is controlled by a central repository key. -// -// Note that this function deletes the file and after that panics, because -// the error is very serious. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::CheckMaximumFileSizeLimitL( RFs& aRfs, - const TDesC& aFileName, - TInt aFileSize ) - { - //Read central repository value - TInt maxFileSize = GetMaximumFileSizeL(); - - //If == 0, feature is disabled i.e. there is no limitation - //to the size of DB files. - if ( maxFileSize == 0 ) - { - return; - } - else - { - if ( aFileSize > maxFileSize ) - { - //Delete the file. - aRfs.Delete( aFileName ); - User::Panic(_L("Maxfile Size exceeded"), - DiagResultsDbCommon::EMaximumFileSizeExceeded ); - } - } - } - -// --------------------------------------------------------------------------- -// Create a stream for last results. -// The stream is created when DB file is created. -// -// Because this is the first stream in the PermanentFileStore, -// we do not need to store the stream ID anywhere. Consider it as a constant. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::CreateLastResultsBufferStreamL() - { - RArray* uids = new (ELeave) RArray; - - CDiagResultsDbRecordEngineParam* params = - CDiagResultsDbRecordEngineParam::NewL( uids, EFalse ); - CleanupStack::PushL( params ); - - TStreamId id = iStore->ExtendL(); - - //We assume that the permanent file store uses this as the first stream ID. - __ASSERT_ALWAYS( id == TStreamId( KFirstStreamId ), - User::Panic( _L("DiagServer Incorrect Last Results Buffer"), - DiagResultsDbCommon::EIncorrectExtendNumberForLastResults) ); - - CleanupStack::Pop(); - - CDiagResultsDbTestRecordHandle* handle = CDiagResultsDbTestRecordHandle::NewL( - id, - iDbUid, - params ); - - CleanupStack::PushL( handle ); - - WriteHandleIntoDbL( *handle ); //writes a new stream - - //Do not append on to the root stream!! - //this should be visible only for the server. - - CleanupStack::PopAndDestroy(); - - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbStore::~CDiagResultsDbStore() - { - if ( iRecordIds ) - { - iRecordIds->Close(); - delete iRecordIds; - iRecordIds = NULL; - } - - Cancel(); - - delete iStore; - iStore = NULL; - - iFile.Close(); - iRfs.Close(); - } - -// --------------------------------------------------------------------------- -// Create a new record. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordHandle* CDiagResultsDbStore::CreateNewRecordL( - CDiagResultsDbRecordEngineParam* aEngineParam ) - { - - TBool tooLowSpace = SysUtil::DiskSpaceBelowCriticalLevelL( - &iRfs, - KMininumDiskSpace, - EDriveC ); - if ( tooLowSpace ) - { - User::Leave( KErrDiskFull ); - } - - - - TStreamId id = iStore->ExtendL(); - - CDiagResultsDbTestRecordHandle* handle = CDiagResultsDbTestRecordHandle::NewL( - id, - iDbUid, - aEngineParam ); - CleanupStack::PushL( handle ); - - WriteHandleIntoDbL( *handle ); //writes a new stream - - AppendRootStreamL( id ); //update root stream - - iStore->CommitL(); - - CleanupStack::Pop(); - return handle; - - } - -// --------------------------------------------------------------------------- -// Write test record handle into the store. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::WriteHandleIntoDbL( CDiagResultsDbTestRecordHandle& aHandle ) - { - RStoreWriteStream writestream; - - writestream.ReplaceLC( *iStore, aHandle.RecordId() ); - - aHandle.ExternalizeL( writestream ); - - writestream.CommitL(); - - CleanupStack::PopAndDestroy( &writestream ); - } - -// --------------------------------------------------------------------------- -// Writes data into the DB file (.dat file). -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbStore::CompleteTestResult( TBool aCommit, - CDiagResultsDbTestRecordHandle& aHandle, - CDiagResultsDatabaseItem& aTestItem ) - { - TRAPD( err, DoCompleteTestResultL( aCommit, aHandle, aTestItem )); - - return err; - } - -// --------------------------------------------------------------------------- -// Writes handle into the DB. Test results items have been written already. -// see CompleteTestResult. -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbStore::CompleteRecord( - CDiagResultsDbTestRecordHandle& aHandle ) - { - // ignore DRM error. - TRAP_IGNORE( aHandle.RecordInfo().iDrmFinishTime = - TDiagResultsDatabaseTestRecordInfo::DRMTimeL() ); - - aHandle.RecordInfo().iFinishTime.HomeTime(); - - TRAPD( error, DoCompleteRecordL( aHandle )); - - return error; - } - -// --------------------------------------------------------------------------- -// Writes handle into the DB. Test results items have been written already. -// see CompleteTestResult. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::DoCompleteRecordL( - CDiagResultsDbTestRecordHandle& aHandle ) - { - - TBool tooLowSpace = SysUtil::DiskSpaceBelowCriticalLevelL( - &iRfs, - KMininumDiskSpace, - EDriveC ); - if ( tooLowSpace ) - { - User::Leave( KErrDiskFull ); - } - - WriteHandleIntoDbL( aHandle ); - - iStore->CommitL(); - } - - -// --------------------------------------------------------------------------- -// Write aTestItem and aHandle into the DB. These must be in sync. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::DoCompleteTestResultL( TBool aCommit, - CDiagResultsDbTestRecordHandle& aHandle, - CDiagResultsDatabaseItem& aTestItem ) - { - - TBool tooLowSpace = SysUtil::DiskSpaceBelowCriticalLevelL( - &iRfs, - aTestItem.Size() *2, - EDriveC ); - if ( tooLowSpace ) - { - User::Leave( KErrDiskFull ); - } - - RStoreWriteStream writestream; - - CDiagResultsDbTestRecordHandle::TTestResultHandle testresulthandle; - - TBool found = aHandle.Find( aTestItem.TestUid() ); - - - if ( found ) //Replace old test result - { - TStreamId id; - TInt error = aHandle.MatchingStreamId( aTestItem.TestUid(), id); - User::LeaveIfError ( error ); - writestream.ReplaceLC( *iStore, id ); - } - else //New test result - { - TStreamId newstreamid = writestream.CreateLC( *iStore ); - testresulthandle.iStreamId = newstreamid; - testresulthandle.iTestUid = aTestItem.TestUid(); - } - - aTestItem.ExternalizeL( writestream ); - writestream.CommitL(); - CleanupStack::PopAndDestroy( &writestream ); - - if ( !found ) - { - aHandle.AddL( testresulthandle ); - } - - WriteHandleIntoDbL( aHandle ); - - if ( aCommit ) - { - iStore->CommitL(); - } - } - -// --------------------------------------------------------------------------- -// Read a test record from the DB. The record should not be ever written into -// the same DB again. First read the number of items there are in the record. -// After that read the items and the record info. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecord* CDiagResultsDbStore::OpenExistingRecordL( TUid aUid, - TBool aReadOnly ) - { - TStreamId id = TStreamId ( aUid.iUid ); - - RStoreReadStream handlereadstream; - handlereadstream.OpenLC( *iStore, id ); - - CDiagResultsDbTestRecord* testrecord = CDiagResultsDbTestRecord::NewL( aReadOnly, - aUid ); - CleanupStack::PushL ( testrecord ); - - CDiagResultsDbTestRecordHandle* handle = - CDiagResultsDbTestRecordHandle::NewL( handlereadstream ); - - CleanupStack::PushL ( handle ); - - for ( TInt i = 0; i < handle->Count(); ++i ) - { - RStoreReadStream readstream; - readstream.OpenLC( *iStore, ((*handle)[i]) ); - - testrecord->AddL( CDiagResultsDatabaseItem::NewL ( readstream ) ); - - CleanupStack::PopAndDestroy( &readstream ); - } - - CleanupStack::PopAndDestroy(); //handle - CleanupStack::Pop(); //testrecord - - CleanupStack::PopAndDestroy( &handlereadstream ); - - return testrecord; - } - - -// --------------------------------------------------------------------------- -// Open last results buffer. It contains the test results that would have -// been otherwise deleted. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecord* CDiagResultsDbStore::OpenExistingLastResultsBufferL() - { - CDiagResultsDbTestRecord* testrecord = - OpenExistingRecordL( TUid::Uid(KFirstStreamId), - ETrue ); - return testrecord; - } - - -void CDiagResultsDbStore::OpenExistingRecordAndHandleL( TStreamId aId, - CDiagResultsDbTestRecord*& aRecord, - CDiagResultsDbTestRecordHandle*& aHandle ) - { - RStoreReadStream handlereadstream; - handlereadstream.OpenLC( *iStore, aId ); - - CDiagResultsDbTestRecord* testrecord = CDiagResultsDbTestRecord::NewL( ETrue, - TUid::Uid( aId.Value() )); - CleanupStack::PushL ( testrecord ); - - CDiagResultsDbTestRecordHandle* handle = - CDiagResultsDbTestRecordHandle::NewL( handlereadstream ); - - CleanupStack::PushL ( handle ); - - for ( TInt i = 0; i < handle->Count(); ++i ) - { - RStoreReadStream readstream; - readstream.OpenLC( *iStore, ((*handle)[i]) ); - - testrecord->AddL( CDiagResultsDatabaseItem::NewL ( readstream ) ); - - CleanupStack::PopAndDestroy( &readstream ); - } - - CleanupStack::Pop(); //handle - CleanupStack::Pop(); //testrecord - - aRecord = testrecord; - aHandle = handle; - - CleanupStack::PopAndDestroy( &handlereadstream ); - - - } - - -// --------------------------------------------------------------------------- -// Retrieve all record infos from the store. -// --------------------------------------------------------------------------- -// -RArray* CDiagResultsDbStore::ExistingRecordInfosL() - { - RArray ids; - CleanupClosePushL( ids ); - // Find available stream ids - ReadRootStreamL( ids ); - - RArray* infos = new (ELeave) - RArray; - CleanupClosePushL( *infos ); - - - for ( TInt i = 0; i < ids.Count(); ++i ) - { - CDiagResultsDbTestRecordHandle* handle = OpenExistingHandleL( TUid::Uid( ids[i].Value() )); - - TDiagResultsDatabaseTestRecordInfo info = handle->RecordInfo(); - - infos->Append( info ); - } - - CleanupStack::PopAndDestroy( &ids ); - CleanupStack::Pop(); - - return infos; - } - - -// --------------------------------------------------------------------------- -// Open a test result from the DB. -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem* CDiagResultsDbStore::OpenExistingTestResultL( TStreamId aId ) - { - RStoreReadStream readstream; - readstream.OpenLC( *iStore, aId ); - - CDiagResultsDatabaseItem* item = CDiagResultsDatabaseItem::NewL ( readstream ); - - CleanupStack::PopAndDestroy( &readstream ); - - return item; - } - - -// --------------------------------------------------------------------------- -// Open handle from the DB. Uid matches the handle's stream Id. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordHandle* CDiagResultsDbStore::OpenExistingHandleL( - TUid aUid ) - { - TStreamId id = TStreamId ( aUid.iUid ); - - RStoreReadStream handlereadstream; - handlereadstream.OpenLC( *iStore, id ); - - - CDiagResultsDbTestRecordHandle* handle = - CDiagResultsDbTestRecordHandle::NewL( handlereadstream ); - - CleanupStack::PopAndDestroy( &handlereadstream ); - - return handle; - } - -// --------------------------------------------------------------------------- -// Cleanup Database if there are two many test records. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::CleanUpDatabaseL(TBool aCommit) - { - if ( iDeletionAlgorithm == EMaxRecordCountAlgorithm ) - { - CleanUpDatabaseNoLastResultsL( aCommit ); - } - else if ( iDeletionAlgorithm == ELastResultsAlgorithm ) - { - CleanUpDatabaseUseLastResultsBufferL( aCommit ); - } - else - { - User::Panic( _L("Unknown Deletion Algorithm"), - DiagResultsDbCommon::EUnknownDeletionAlgorithm); - } - } - -// --------------------------------------------------------------------------- -// Cleanup Database if there are two many test records. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::CleanUpDatabaseNoLastResultsL(TBool aCommit) - { - RArray ids; - CleanupClosePushL( ids ); - ReadRootStreamL( ids ); - - //Fetch the maximum number of test records from Central Repository. Panic if - //the value is not found. Also panic if value is less than zero. - TInt maxsize = 0; - TInt err = RDiagResultsDatabase::GetDatabaseMaximumSize( maxsize ) ; - - if ( err != KErrNone || maxsize < 0 ) - { - User::Panic ( _L("Diag ResultsDB panic"), - DiagResultsDbCommon::ECentralRepositoryFailure ); - } - - TBool cleanedUp = EFalse; - - while ( ids.Count() > maxsize ) //Do cleanup - { - DeleteOldestHandleL( ids ); - - cleanedUp = ETrue; - } - - if ( cleanedUp && aCommit ) - { - iStore->CommitL(); - } - - CleanupStack::PopAndDestroy( &ids ); - } - - -// --------------------------------------------------------------------------- -// Cleanup Database if there are two many test records. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::CleanUpDatabaseUseLastResultsBufferL(TBool aCommit) - { - RArray ids; - CleanupClosePushL( ids ); - ReadRootStreamL( ids ); - - //Fetch the maximum number of test records from Central Repository. Panic if - //the value is not found. Also panic if value is less than zero. - TInt maxsize = 0; - TInt err = RDiagResultsDatabase::GetDatabaseMaximumSize( maxsize ) ; - - if ( err != KErrNone || maxsize < 0 ) - { - User::Panic ( _L("Diag ResultsDB panic"), - DiagResultsDbCommon::ECentralRepositoryFailure ); - } - - TBool cleanedUp = EFalse; - - while ( ids.Count() > maxsize ) //Do cleanup - { - TInt count = ids.Count(); - - ///@@@KSR: changes for Codescanner error val = High - //CheckOverflowingTestResults( ids ); - CheckOverflowingTestResultsL( ids ); - - cleanedUp = ETrue; - - __ASSERT_ALWAYS( ids.Count() == count - 1, User::Panic( _L("Diag ResultsDB panic"), - DiagResultsDbCommon::EUnableToDelete ) ); - } - - if ( cleanedUp && aCommit ) - { - iStore->CommitL(); - } - - CleanupStack::PopAndDestroy( &ids ); - } - - -// --------------------------------------------------------------------------- -// Load last results buffer and add test results if needed. -// -// Test results are only moved to the last results buffer. -// -// We want to preserve only test results that have Pass/fail result. -// -// The algorithm. -// -// 1. Open the test record that is going to be removed (handle + test results) -// 2. Open last results buffer -// 3. Go through the test record and search for test results that have pass/fail -// 4. If found, then check last results buffer is there a similar result. -// 5. If similar test results are found from the last results buffer, delete the old -// result and add the new one. -// 6. If similar test result is not found, then append the test result into the -// buffer. -// 7. Finally update the last result buffer -// 8. delete the test record and any of the test results that did not go into -// the last results buffer. -// --------------------------------------------------------------------------- -// -//void CDiagResultsDbStore::CheckOverflowingTestResults( RArray& aIds ) -///@@@KSR: changes for Codescanner error val = High -void CDiagResultsDbStore::CheckOverflowingTestResultsL( RArray& aIds ) - { - TStreamId id = aIds[0]; - - CDiagResultsDbTestRecordHandle* handleToBeRemoved = NULL; - CDiagResultsDbTestRecord* recordToBeRemoved = NULL; - - - OpenExistingRecordAndHandleL( id, - recordToBeRemoved, - handleToBeRemoved ); - - CleanupStack::PushL( handleToBeRemoved ); - CleanupStack::PushL( recordToBeRemoved ); - - - CDiagResultsDbTestRecordHandle* lastResultsBufferHandle = NULL; - - lastResultsBufferHandle = OpenExistingHandleL( TUid::Uid( KFirstStreamId ) ); - - TInt testCount = recordToBeRemoved->Count(); - - TInt movedCount = 0; - - CleanupStack::PushL( lastResultsBufferHandle ); - - for ( TInt x = 0; x < recordToBeRemoved->Count(); ++x ) - { - - CDiagResultsDatabaseItem* item = recordToBeRemoved->GetItem(x); - - //We are looking for only results that are either ESuccess or - //EFailed. - if ( item->TestResult() == CDiagResultsDatabaseItem::ESuccess || - item->TestResult() == CDiagResultsDatabaseItem::EFailed ) - { - TBool found = lastResultsBufferHandle->Find( item->TestUid() ); - TInt index = lastResultsBufferHandle->FindIndex( item->TestUid() ); - - CDiagResultsDbTestRecordHandle::TTestResultHandle resulthandle = - handleToBeRemoved->Get( handleToBeRemoved->FindIndex( item->TestUid() )); - - if ( resulthandle.iTestUid != item->TestUid() ) - { - User::Panic( _L("Diag ResultsDB panic"), DiagResultsDbCommon::EIncorrectStreamId); - } - - if ( found ) - { - //remove old result from last results buffer, because we add new one. - iStore->DeleteL ( lastResultsBufferHandle->Get(index).iStreamId ); - - lastResultsBufferHandle->RemoveL( item->TestUid() ); - lastResultsBufferHandle->AddL( resulthandle ); - } - else - { - lastResultsBufferHandle->AddL( resulthandle ); - } - - movedCount++; - - handleToBeRemoved->RemoveL( item->TestUid() ); - - } - } - - WriteHandleIntoDbL( *lastResultsBufferHandle ); - - iStore->DeleteL( aIds[0] ); //delete oldest first - aIds.Remove( 0 ); - - ReplaceRootStreamL( aIds ); - - //Delete test results streams as well. - for (TInt i=0; i < handleToBeRemoved->Count(); ++i) - { - iStore->DeleteL ( handleToBeRemoved->Get(i).iStreamId ); - movedCount++; - } - - if ( movedCount != testCount ) - { - User::Panic( _L("EIncorrectStreamId"), DiagResultsDbCommon::EIncorrectStreamId); - } - - CleanupStack::PopAndDestroy( lastResultsBufferHandle ); - CleanupStack::PopAndDestroy( recordToBeRemoved ); - CleanupStack::PopAndDestroy( handleToBeRemoved ); - } - - -// --------------------------------------------------------------------------- -// Deletes the oldest handle from the store. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::DeleteOldestHandleL( RArray& aIds ) - { - CDiagResultsDbTestRecordHandle* handle = OpenExistingHandleL( - TUid::Uid( aIds[0].Value() ) ); - CleanupStack::PushL( handle ); - - iStore->DeleteL( aIds[0] ); //delete oldest first - aIds.Remove( 0 ); - - ReplaceRootStreamL( aIds ); - - //Delete test results streams as well. - for (TInt i=0; i < handle->Count(); ++i) - { - iStore->DeleteL ( handle->Get(i).iStreamId ); - } - - CleanupStack::PopAndDestroy( handle ); - } - - -// --------------------------------------------------------------------------- -// Delete handle and its test results. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::DeleteHandleL( TInt aIndex, RArray& aIds ) - { - CDiagResultsDbTestRecordHandle* handle = OpenExistingHandleL( - TUid::Uid( aIds[aIndex].Value() ) ); - CleanupStack::PushL( handle ); - - iStore->DeleteL( aIds[aIndex] ); - aIds.Remove( aIndex ); - - ReplaceRootStreamL( aIds ); - - //Delete test results streams as well. - for (TInt i=0; i < handle->Count(); ++i) - { - iStore->DeleteL ( handle->Get(i).iStreamId ); - } - - CleanupStack::PopAndDestroy( handle ); - } - - -// --------------------------------------------------------------------------- -// Reads the root stream from the DB. Root stream contains uids of the -// test records. TUid is convertible to TStreamId and opposite. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::ReadRootStreamL( RArray& aIds ) - { - - if (!iStore) - { - User::Panic( _L("Store is null"), - DiagResultsDbCommon::EStoreNullPointer ); - } - - RStoreReadStream readstream; - - TStreamId rootId = iStore->Root(); - readstream.OpenLC( *iStore, rootId ); - - TInt count = readstream.ReadInt16L(); - - for ( TInt i = 0; i < count; ++i ) - { - TStreamId id; - id.InternalizeL( readstream ); - aIds.AppendL ( id ); - - } - - CleanupStack::PopAndDestroy( &readstream ); - } - -// --------------------------------------------------------------------------- -// Add one stream Id into the root stream. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::AppendRootStreamL( TStreamId& aId ) - { - RArray ids; - CleanupClosePushL( ids ); - - ReadRootStreamL( ids ); - - ids.Append( aId ); - - ReplaceRootStreamL( ids ); - - CleanupStack::PopAndDestroy( &ids); - } - -// --------------------------------------------------------------------------- -// Returns TUids from the root stream. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::RecordUidsL(RArray& aUids) - { - RArray ids; - CleanupClosePushL ( ids ); - - ReadRootStreamL( ids ); - - for (TInt i = 0; i < ids.Count(); ++i) - { - aUids.Append( TUid::Uid( ids[i].Value() )); - } - - CleanupStack::PopAndDestroy( &ids ); - } - - -// --------------------------------------------------------------------------- -// Replace the current root stream with a new array. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::ReplaceRootStreamL( RArray& aArray ) - { - RStoreWriteStream writestream; - writestream.ReplaceLC( *iStore, iStore->Root() ); - - TInt count = aArray.Count(); - - writestream.WriteInt16L( count ); - - for ( TInt i = 0; i < count; ++i ) - { - writestream << aArray[i]; - } - - writestream.CommitL(); - - CleanupStack::PopAndDestroy( &writestream ); - } - -// --------------------------------------------------------------------------- -// Empty root stream is needed when DB file is created for the first time. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbStore::CreateEmptyRootStreamL(CPermanentFileStore& aStore) - { - RStoreWriteStream writestream; - - TStreamId id = writestream.CreateLC( *iStore ); - writestream.WriteInt16L( 0 ); // stream id count = 0 - - writestream.CommitL(); - - aStore.SetRootL( id ); - - aStore.CommitL(); - - CleanupStack::PopAndDestroy( &writestream ); - } - - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbtestrecord.cpp --- a/devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbtestrecord.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of -* -*/ - - -#include "diagresultsdatabasetestrecordinfo.h" -#include "diagresultsdbtestrecord.h" - - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecord::CDiagResultsDbTestRecord( TBool aReadOnly, - TUid aRecordUid ): iRecordUid(aRecordUid), iReadOnly(aReadOnly) - { - /* - RecordInfo().iRecordId = iRecordUid; - RecordInfo().iDbUid = iDbUid; - RecordInfo().iCompleted = EFalse; - */ - } - -// --------------------------------------------------------------------------- -// NewL. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecord* CDiagResultsDbTestRecord::NewL( TBool aReadOnly, - TUid aRecordUid ) - { - CDiagResultsDbTestRecord* testrecord = - new (ELeave) CDiagResultsDbTestRecord( aReadOnly, aRecordUid ); - CleanupStack::PushL( testrecord ); - testrecord->ConstructL(); - CleanupStack::Pop(); - return testrecord; - } - -// --------------------------------------------------------------------------- -// ConstructL. Set test record overview's DRM and home times. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecord::ConstructL() - { - //Time when this test record was created. -// iTestRecordInfo.iDrmStartTime = - //TDiagResultsDatabaseTestRecordInfo::DRMTimeL(); - //iTestRecordInfo.iStartTime.HomeTime(); - } - -// --------------------------------------------------------------------------- -// Getter. -// --------------------------------------------------------------------------- -// -TBool CDiagResultsDbTestRecord::ReadOnly() const - { - return iReadOnly; - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecord::~CDiagResultsDbTestRecord() - { - iTestArray.ResetAndDestroy(); - iTestArray.Close(); - } - -// --------------------------------------------------------------------------- -// AddL. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecord::AddL( CDiagResultsDatabaseItem* aItem ) - { - for (TInt i=0; i < iTestArray.Count(); ++i) - { - - //Found same item inside the array. Delete the found item. - if ( aItem->TestUid() == iTestArray[i]->TestUid() ) - { - CDiagResultsDatabaseItem* item = iTestArray[i]; - iTestArray.Remove( i ); - delete item; - item = 0; - break; - } - } - - iTestArray.AppendL( aItem ); - } - -// --------------------------------------------------------------------------- -// Operator []. -// --------------------------------------------------------------------------- -// -const CDiagResultsDatabaseItem& CDiagResultsDbTestRecord::operator[] (TInt aIndex) const - { - return *(iTestArray[aIndex]); - } - -// --------------------------------------------------------------------------- -// Getter. This can be also NULL. -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem* CDiagResultsDbTestRecord::GetItem(TInt aIndex) const - { - return iTestArray[aIndex]; - } - -// --------------------------------------------------------------------------- -// Count(). -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbTestRecord::Count() const - { - return iTestArray.Count(); - } - -// --------------------------------------------------------------------------- -// RemoveL(). -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecord::RemoveL( TInt aIndex ) - { - iTestArray.Remove( aIndex ); - } - - -// --------------------------------------------------------------------------- -// RemoveL(). -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecord::RemoveL( TUid aTestUid ) - { - for ( TInt i = 0; i < iTestArray.Count(); ++i ) - { - if ( iTestArray[i]->TestUid() == aTestUid ) - { - iTestArray.Remove( i ); - } - } - } - -// --------------------------------------------------------------------------- -// Find test record -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbTestRecord::FindTestRecord( - const CDiagResultsDatabaseItem& aItem ) const - { - TInt index = -1; - - for (TInt i = 0; i < iTestArray.Count(); ++i) - { - - if ( iTestArray[i]->TestUid() == aItem.TestUid() ) - { - index = i; - break; - } - } - - return index; - } - -// --------------------------------------------------------------------------- -// Find test record -// --------------------------------------------------------------------------- -// -CDiagResultsDatabaseItem* CDiagResultsDbTestRecord::FindTestRecord( TUid aUid ) - { - for (TInt i = 0; i < iTestArray.Count(); ++i) - { - if ( iTestArray[i]->TestUid() == aUid ) - { - return iTestArray[i]; - } - } - - return NULL; - } -//End of file diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbtestrecordhandle.cpp --- a/devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbtestrecordhandle.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,349 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of -* -*/ - - -#include "diagresultsdbtestrecordhandle.h" -#include "diagresultsdbrecordengineparam.h" - - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordHandle::CDiagResultsDbTestRecordHandle( - TStreamId aRecordUid, - TUid aDbUid, - CDiagResultsDbRecordEngineParam* aEngineParam ) - { - iRecordId = aRecordUid; - RecordInfo().iRecordId = TUid::Uid(aRecordUid.Value()); - RecordInfo().iDbUid = aDbUid; - iEngineParam = aEngineParam; - } - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordHandle::CDiagResultsDbTestRecordHandle() - { - } - -// --------------------------------------------------------------------------- -// Return record ID. -// --------------------------------------------------------------------------- -// -TStreamId CDiagResultsDbTestRecordHandle::RecordId() const - { - return iRecordId; - } - -// --------------------------------------------------------------------------- -// NewL. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordHandle* CDiagResultsDbTestRecordHandle::NewL( - TStreamId aRecordUid, - TUid aDbUid, - CDiagResultsDbRecordEngineParam* aEngineParam ) - { - CDiagResultsDbTestRecordHandle* testrecord = - new (ELeave) CDiagResultsDbTestRecordHandle( - aRecordUid, - aDbUid, - aEngineParam ); - CleanupStack::PushL( testrecord ); - testrecord->ConstructL(); - CleanupStack::Pop(); - return testrecord; - } - -// --------------------------------------------------------------------------- -// NewL. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordHandle* CDiagResultsDbTestRecordHandle::NewL( RReadStream& aStream ) - { - - CDiagResultsDbTestRecordHandle* testrecord = - new (ELeave) CDiagResultsDbTestRecordHandle( ); - CleanupStack::PushL( testrecord ); - testrecord->ConstructL( aStream ); - CleanupStack::Pop(); - return testrecord; - } - - -// --------------------------------------------------------------------------- -// ConstructL -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordHandle::ConstructL( RReadStream& aStream ) - { - InternalizeL ( aStream ); - } - - -// --------------------------------------------------------------------------- -// ConstructL. Set test record overview's DRM and home times. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordHandle::ConstructL() - { - //Time when this test record was created. - iTestRecordInfo.iDrmStartTime = - TDiagResultsDatabaseTestRecordInfo::DRMTimeL(); - iTestRecordInfo.iStartTime.HomeTime(); - } - - - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordHandle::~CDiagResultsDbTestRecordHandle() - { - iHandleArray.Close(); - - delete iEngineParam; - iEngineParam = NULL; - } - -// --------------------------------------------------------------------------- -// Return record info. -// --------------------------------------------------------------------------- -// -TDiagResultsDatabaseTestRecordInfo& CDiagResultsDbTestRecordHandle::RecordInfo() - { - return iTestRecordInfo; - } - - -// --------------------------------------------------------------------------- -// Add one result handle into the record. -// We can use aItem to search the item from the store. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordHandle::AddL( TTestResultHandle& aItem ) - { - iTestRecordInfo.iTestCount++; - iHandleArray.AppendL( aItem ); - } - - -// --------------------------------------------------------------------------- -// Return matching streamId. -// --------------------------------------------------------------------------- -// -const TStreamId& CDiagResultsDbTestRecordHandle::operator[] (TInt aIndex) const - { - return iHandleArray[aIndex].iStreamId; - } - - -// --------------------------------------------------------------------------- -// Get handle to a test result. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordHandle::TTestResultHandle - CDiagResultsDbTestRecordHandle::Get( TInt aIndex ) const - { - return iHandleArray[aIndex]; - } - -// --------------------------------------------------------------------------- -// Convert plug-in uid into stream id. -// --------------------------------------------------------------------------- -// - TInt CDiagResultsDbTestRecordHandle::MatchingStreamId( TUid aTestUid, TStreamId& aStreamId ) const - { - - for ( TInt i=0; i < iHandleArray.Count(); ++i ) - { - if ( iHandleArray[i].iTestUid == aTestUid ) - { - aStreamId = iHandleArray[i].iStreamId; - return KErrNone; - } - } - - aStreamId = 0; - return KErrNotFound; - } - - -// --------------------------------------------------------------------------- -// Returns count. -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbTestRecordHandle::Count() const - { - return iHandleArray.Count(); - } - - -// --------------------------------------------------------------------------- -// Return the index of uid. -// --------------------------------------------------------------------------- -// -TInt CDiagResultsDbTestRecordHandle::FindIndex ( TUid aTestUid ) const - { - - for ( TInt i=0; i < iHandleArray.Count(); ++i ) - { - if ( iHandleArray[i].iTestUid == aTestUid ) - { - return i; - } - } - - return KErrNotFound; - } - -// --------------------------------------------------------------------------- -// Check does the uid exists in the array. -// --------------------------------------------------------------------------- -// -TBool CDiagResultsDbTestRecordHandle::Find ( TUid aTestUid ) const - { - - for ( TInt i=0; i < iHandleArray.Count(); ++i ) - { - if ( iHandleArray[i].iTestUid == aTestUid ) - { - return ETrue; - } - } - - return EFalse; - } - - -// --------------------------------------------------------------------------- -// Remove result handle from the array. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordHandle::RemoveL( TStreamId& aItem ) - { - - for (TInt i=0; i < iHandleArray.Count(); ++i) - { - if ( iHandleArray[i].iStreamId == aItem ) - { - iHandleArray.Remove( i ); - break; - } - } - } - - -// --------------------------------------------------------------------------- -// Remove result handle from the array. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordHandle::RemoveL( TUid aItemUid ) - { - for (TInt i=0; i < iHandleArray.Count(); ++i) - { - if ( iHandleArray[i].iTestUid == aItemUid ) - { - iHandleArray.Remove( i ); - break; - } - } - } - - -// --------------------------------------------------------------------------- -// Update one result handle. This can be done when one stream(test result) -// is moved into the last results buffer. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordHandle::UpdateL( TTestResultHandle& aResultHandle ) - { - TInt index = FindIndex( aResultHandle.iTestUid ); - - if ( index != KErrNone ) - { - User::Leave( KErrNotFound ); - } - - iHandleArray[index] = aResultHandle; - } - - -// --------------------------------------------------------------------------- -// Simple Get. -// --------------------------------------------------------------------------- -// -const CDiagResultsDbRecordEngineParam& CDiagResultsDbTestRecordHandle::GetEngineParam() const - { - return *iEngineParam; - } - - -// --------------------------------------------------------------------------- -// Externalize Handle into a stream. Typically this is used when -// handle is externalized into the store. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordHandle::ExternalizeL( RWriteStream& aStream ) const - { - iRecordId.ExternalizeL( aStream ); - iTestRecordInfo.ExternalizeL( aStream ); - - TInt count = Count(); - aStream.WriteInt16L( count ); - - for (TInt i = 0; i < count; ++i) - { - // Write the streamId - iHandleArray[i].iStreamId.ExternalizeL( aStream ); - // Write the plug-uid - aStream.WriteInt32L( iHandleArray[i].iTestUid.iUid ); - } - - iEngineParam->ExternalizeL(aStream); - } - - -// --------------------------------------------------------------------------- -// Internalize from a stream. Typically this is used when handle is read -// from the store. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordHandle::InternalizeL( RReadStream& aStream ) - { - iRecordId.InternalizeL( aStream ); - iTestRecordInfo.InternalizeL( aStream ); - - TInt count = aStream.ReadInt16L(); - - for (TInt i = 0; i < count; ++i) - { - TTestResultHandle handle; - handle.iStreamId.InternalizeL( aStream ); - handle.iTestUid.iUid = aStream.ReadInt32L(); - iHandleArray.Append( handle ); - } - - iEngineParam = CDiagResultsDbRecordEngineParam::NewL ( aStream ); - - } - - diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbtestrecordsubsession.cpp --- a/devicediagnosticsfw/diagresultsdb/server/src/diagresultsdbtestrecordsubsession.cpp Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,645 +0,0 @@ -/* -* Copyright (c) 2007 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: Class definition of -* -*/ - - -#include "diagresultsdatabasecommon.h" -#include "diagresultsdbsession.h" -#include "diagresultsdbtestrecordsubsession.h" -#include "diagresultsdbtestrecord.h" -#include "diagresultsdbtestrecordhandle.h" -#include "diagresultsdbrecordengineparam.h" -#include "diagresultsdatabase.h" - -#include - -//this matches the size in the client side. -const TInt KResultsDatabaseSubsessionBufferLength = 0x250; -const TInt KResultsDatabaseSubsessionGranuality = 50; - -// --------------------------------------------------------------------------- -// NewL. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordSubsession* CDiagResultsDbTestRecordSubsession::NewL( - CDiagResultsDbSession* aSession, - CDiagResultsDbTestRecordHandle* aTestRecordHandle, - TBool aReadonly - ) - { - CDiagResultsDbTestRecordSubsession* self = new( ELeave ) - CDiagResultsDbTestRecordSubsession( aSession, - aTestRecordHandle, - aReadonly - ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor. Checks has the test record been written into the DB. -// If it hasn't been written, destructor writes the data. -// This situation happens when for example client dies suddenly. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordSubsession::~CDiagResultsDbTestRecordSubsession() - { - delete iTestRecordHandle; - iTestRecordHandle = NULL; - - if ( iBuffer ) - { - iBuffer->Reset(); - delete iBuffer; - iBuffer = NULL; - } - } - -// --------------------------------------------------------------------------- -// ConstructL. Creates the server side buffer. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::ConstructL() - { - // buffer for IPC. Objects are transmitted in this buffer. - // Size of the buffer has to be selected carefully. - // It should be 'large enough' but not too large. - // If you see too many overflows, increase the size. - // Subsession buffer can be smaller than the session buffer - iBuffer = CBufFlat::NewL( KResultsDatabaseSubsessionGranuality ); - iBuffer->ResizeL( KResultsDatabaseSubsessionBufferLength ); - } - - -// --------------------------------------------------------------------------- -// Handles subsession requests. -// --------------------------------------------------------------------------- -// -TBool CDiagResultsDbTestRecordSubsession::DispatchMessageL( - const RMessage2& aMessage) - { - TInt function = aMessage.Function(); - switch( function ) - { - case DiagResultsDbCommon::ESubsessionGetTestRecordId: - { - TPckgBuf uid( iTestRecordHandle->RecordInfo().iRecordId); - aMessage.Write( 0, uid ); - return EFalse; - } - - case DiagResultsDbCommon::ESubsessionTestCompleted: //SYNC - { - iMsg = aMessage; - - CompleteTestRecordL( aMessage ); - - aMessage.Complete( KErrNone ); - - //Do compacting after subsession is completed to - //minimize disk space usage - if ( iSession->SessionHasWritten() ) - { - iSession->Store().CompactDatabase(); - } - - //Not asynchronous, but this prevents calling Complete again. - return ETrue; - } - - case DiagResultsDbCommon::ESubsessionGetStatus: - { - GetStatusL ( aMessage ); - return EFalse; - } - case DiagResultsDbCommon::ESubsessionSuspend: //SYNC - { - iMsg = aMessage; - - SuspendTestRecordL( aMessage ); - - aMessage.Complete( KErrNone ); - - //Do compacting after subsession is completed to - //minimize disk space usage - if ( iSession->SessionHasWritten() ) - { - iSession->Store().CompactDatabase(); - } - - //Not asynchronous, but this prevents calling Complete again. - return ETrue; - } - - case DiagResultsDbCommon::ESubsessionIsTestCompleted: - { - TPckgBuf pckg ( Completed() ); - aMessage.Write( 0, pckg ); - return EFalse; - } - case DiagResultsDbCommon::ESubsessionGetRecordInfo: - { - TPckgBuf pckg( - iTestRecordHandle->RecordInfo()); - aMessage.Write( 0, pckg ); - return EFalse; - } - case DiagResultsDbCommon::ESubsessionGetTestUids: - { - GetTestUidsL( aMessage ); - return EFalse; - } - - case DiagResultsDbCommon::ESubsessionIsSuspended: - { - TBool suspended = EFalse; - if ( iTestRecordHandle->RecordInfo().iRecordStatus == - TDiagResultsDatabaseTestRecordInfo::ESuspended ) - { - suspended = ETrue; - } - - TPckgBuf pckg ( suspended ); - aMessage.Write( 0, pckg ); - return EFalse; - } - - case DiagResultsDbCommon::ESubsessionGetEngineParam: - { - GetEngineParamL( aMessage ); - return EFalse; - } - - case DiagResultsDbCommon::ESubsessionLogTestResult: //ASYNC - { - iMsg = aMessage; - iCompletedLogTest = EFalse; - LogTestResultL( aMessage ); - return ETrue; - } - - case DiagResultsDbCommon::ESubsessionCancelLogTestResult: - { - CancelLogTestResult( aMessage ); - - return EFalse; - } - - case DiagResultsDbCommon::ESubsessionGetTestResult: - { - GetTestResultL( aMessage ); - return EFalse; - } - - case DiagResultsDbCommon::ESubsessionGetTestResults: - { - GetTestResultsL( iTestRecordHandle, aMessage ); - return EFalse; - } - default: - break; - } - aMessage.Panic( _L("DiagSrv panic: unknown command"), - DiagResultsDbCommon::EBadRequest ); - return EFalse; - } - - -// --------------------------------------------------------------------------- -// Returns record complete status. -// --------------------------------------------------------------------------- -// -TBool CDiagResultsDbTestRecordSubsession::Completed() const - { - TBool completed = EFalse; - - if ( iTestRecordHandle->RecordInfo().iCompleted ) - { - completed = ETrue; - } - return completed; - } - - -// --------------------------------------------------------------------------- -// Maps server side status into user side status. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::GetStatusL ( const RMessage2& aMessage ) - { - - RDiagResultsDatabaseRecord::TRecordStatus status; - - if ( iTestRecordHandle->RecordInfo().iCompleted ) - { - - if ( iTestRecordHandle->RecordInfo().iRecordStatus == - TDiagResultsDatabaseTestRecordInfo::EOpen ) - { - - status = RDiagResultsDatabaseRecord::EPartiallyCompleted; - } - else if ( iTestRecordHandle->RecordInfo().iRecordStatus == - TDiagResultsDatabaseTestRecordInfo::ESuspended ) - { - status = RDiagResultsDatabaseRecord::EPartiallyCompleted; - } - else if ( iTestRecordHandle->RecordInfo().iRecordStatus == - TDiagResultsDatabaseTestRecordInfo::ECompleted ) - { - status = RDiagResultsDatabaseRecord::ECompleted; - } - else - { - User::Panic( _L("DiagDbServer error"), DiagResultsDbCommon::EGetStatusPanic); - status = RDiagResultsDatabaseRecord::ECrashed; - } - } - else // iCompleted == EFalse - { - if ( iTestRecordHandle->RecordInfo().iRecordStatus == - TDiagResultsDatabaseTestRecordInfo::EOpen ) - { - if ( iSession->SessionHasWritten() ) - { - status = RDiagResultsDatabaseRecord::EOpen; - } - else - { - status = RDiagResultsDatabaseRecord::ECrashed; - } - } - else if ( iTestRecordHandle->RecordInfo().iRecordStatus == - TDiagResultsDatabaseTestRecordInfo::ESuspended ) - { - status = RDiagResultsDatabaseRecord::ESuspended; - } - // TDiagResultsDatabaseTestRecordInfo::ECompleted is not valid combination either - else - { - User::Panic( _L("DiagDbServer error"), DiagResultsDbCommon::EGetStatusPanic); - status = RDiagResultsDatabaseRecord::ECrashed; - } - } - - TPckgBuf pckg( status ); - aMessage.Write( 0, pckg ); - } - -// --------------------------------------------------------------------------- -// Constructor. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordSubsession::CDiagResultsDbTestRecordSubsession( - CDiagResultsDbSession* aSession, - CDiagResultsDbTestRecordHandle* aTestRecordHandle, - TBool aReadonly - ): - iSession( aSession ), iTestRecordHandle( aTestRecordHandle ), - iReadonly (aReadonly), iCompletedLogTest( EFalse ) - { - - } - -// --------------------------------------------------------------------------- -// Read-only subsession or not -// --------------------------------------------------------------------------- -// -TBool CDiagResultsDbTestRecordSubsession::ReadonlySubsession() const - { - return iReadonly; - } - -// --------------------------------------------------------------------------- -// Retrieve session params. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::GetEngineParamL( const RMessage2& aMessage ) - { - iSession->ReadBufferL( aMessage, 0, iBuffer ); - - RBufWriteStream stream ( *iBuffer ); - CleanupClosePushL( stream ); - - iTestRecordHandle->GetEngineParam().ExternalizeL( stream ); - - stream.CommitL(); - - CleanupStack::PopAndDestroy( &stream ); - - // if client buffer is not big enough - if ( iBuffer->Ptr(0).Length() > aMessage.GetDesMaxLength(0) ) - { - User::Leave( KErrOverflow ); - } - - aMessage.Write( 0, iBuffer->Ptr(0) ); //write to client's address space - } - - -// --------------------------------------------------------------------------- -// Log data into the store. This does not write data into the file. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::LogTestResultL( - const RMessage2& aMessage ) - { - if ( Completed() ) - { - User::Leave( KErrAlreadyExists ); - } - - if ( ReadonlySubsession() ) - { - User::Leave( KErrAccessDenied ); - } - - //Writing anymore results into suspended record is considered as resume - iTestRecordHandle->RecordInfo().iRecordStatus = - TDiagResultsDatabaseTestRecordInfo::EOpen; - - iSession->ReadBufferL( aMessage, 0, iBuffer ); - - RBufReadStream stream( *iBuffer ); - CleanupClosePushL ( stream ); - - CDiagResultsDatabaseItem * item = - CDiagResultsDatabaseItem::NewL ( stream ); - CleanupStack::PushL( item ); - - //Update handle + write data into the file. Handle and DB must be in sync. - TInt error = iSession->Store().CompleteTestResult( ETrue, - *iTestRecordHandle, - *item ); - - //item has been written, so delete the object - CleanupStack::PopAndDestroy( item ); - CleanupStack::PopAndDestroy( &stream ); - - iCompletedLogTest = ETrue; - - // LogTestResult is asynchronous. - if( error == KErrNone ) - { - iSession->HasWritten(); - aMessage.Complete( KErrNone ); - } - else - { - if ( error == KErrDiskFull ) - { - iSession->DoNotCompact(); - } - - aMessage.Complete ( error ); - } - } - - -// --------------------------------------------------------------------------- -// Cancel LogTestResultL. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::CancelLogTestResult( - const RMessage2& /*aMessage*/ ) - { - if (!iMsg.IsNull() && !iCompletedLogTest ) - { - iMsg.Complete( KErrCancel ); //Complete client's request. - } - } - - -// --------------------------------------------------------------------------- -// Returns the test record. -// --------------------------------------------------------------------------- -// -CDiagResultsDbTestRecordHandle* CDiagResultsDbTestRecordSubsession::CurrentTestRecordHandle() - { - return iTestRecordHandle; - } - -// --------------------------------------------------------------------------- -// Finds one test result and serialize it. If it is not found, return KErrNone -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::GetTestResultL( - const RMessage2& aMessage ) - { - iSession->ReadBufferL( aMessage, 1, iBuffer ); - - TPckgBuf uidpckg; - aMessage.Read(0, uidpckg); - TUid testUid = uidpckg(); - - //Find right stream Id from the handle - TStreamId id; - TInt error = iTestRecordHandle->MatchingStreamId( testUid, id ); - - User::LeaveIfError ( error ); - - CDiagResultsDatabaseItem* item = - iSession->Store().OpenExistingTestResultL( id ); - CleanupStack::PushL( item ); - - RBufWriteStream stream ( *iBuffer ); - CleanupClosePushL( stream ); - item->ExternalizeL( stream ); - stream.CommitL(); - CleanupStack::PopAndDestroy( &stream ); - - CleanupStack::PopAndDestroy( item ); - - if ( iBuffer->Size() == 0 ) // Item was not found - { - User::Leave ( KErrNotFound ); - } - - // if client buffer is not big enough - if ( iBuffer->Ptr(0).Length() > aMessage.GetDesMaxLength(1) ) - { - User::Leave( KErrOverflow ); - } - - aMessage.Write( 1, iBuffer->Ptr(0) ); //write to client's address space - - } - -// --------------------------------------------------------------------------- -// Complete test record i.e. write it to file in parts. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::CompleteTestRecordL( - const RMessage2& aMessage ) - { - if ( Completed() ) - { - User::Leave( KErrAlreadyExists ); - } - if ( ReadonlySubsession() ) - { - User::Leave( KErrAccessDenied ); - } - - TPckgBuf completeFullyPckg; - aMessage.Read(0, completeFullyPckg); - TBool completeFully = completeFullyPckg(); - - if ( completeFully ) - { - iTestRecordHandle->RecordInfo().iRecordStatus = - TDiagResultsDatabaseTestRecordInfo::ECompleted; - - iTestRecordHandle->RecordInfo().iCompleted = ETrue; - } - else // partial complete. iRecordStatus is not changed. - { - iTestRecordHandle->RecordInfo().iCompleted = ETrue; - } - - //Cleanup is not necessary if logging failed. - TInt error = iSession->Store().CompleteRecord( *iTestRecordHandle ); - - if ( error == KErrDiskFull ) - { - iSession->DoNotCompact(); - } - - User::LeaveIfError ( error ); - - iSession->HasWritten(); - - iSession->Store().CleanUpDatabaseL( ETrue ); - } - - -// --------------------------------------------------------------------------- -// Suspend test record i.e. write it to file in parts. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::SuspendTestRecordL( - const RMessage2& /*aMessage*/ ) - { - if ( Completed() ) - { - User::Leave( KErrAlreadyExists ); - } - if ( ReadonlySubsession() ) - { - User::Leave( KErrAccessDenied ); - } - - iTestRecordHandle->RecordInfo().iRecordStatus = - TDiagResultsDatabaseTestRecordInfo::ESuspended; - - iTestRecordHandle->RecordInfo().iCompleted = EFalse; - - TInt error = iSession->Store().CompleteRecord( *iTestRecordHandle ); - - if ( error == KErrDiskFull ) - { - iSession->DoNotCompact(); - } - - User::LeaveIfError ( error ); - - iSession->Store().CleanUpDatabaseL( ETrue ); - - iSession->HasWritten(); - } - -// --------------------------------------------------------------------------- -// Observers function. Observers store after CompleteTestRecordL has been -// called. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::CompletedRecordL( TInt aError ) - { - iMsg.Complete( aError ); // complete async function - } - - -// --------------------------------------------------------------------------- -// Get test results of a test record. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::GetTestResultsL( - CDiagResultsDbTestRecordHandle* aHandle, - const RMessage2& aMessage ) - { - iSession->ReadBufferL( aMessage, 0, iBuffer ); - - - RBufWriteStream stream ( *iBuffer ); - CleanupClosePushL ( stream ); - stream.WriteInt16L( aHandle->Count() ); - - CDiagResultsDbTestRecord* testrecord = - iSession->Store().OpenExistingRecordL( TUid::Uid(aHandle->RecordId().Value()), ETrue ); - CleanupStack::PushL (testrecord); - - for ( TInt i = 0; i < aHandle->Count(); ++i ) - { - const CDiagResultsDatabaseItem& item = (*testrecord)[i]; - item.ExternalizeL( stream ); - } - - CleanupStack::PopAndDestroy( testrecord ); - - // if client buffer is not big enough - if ( iBuffer->Ptr(0).Length() > aMessage.GetDesMaxLength(0) ) - { - User::Leave( KErrOverflow ); - } - - aMessage.Write( 0, iBuffer->Ptr(0) ); //write to client's address space - - CleanupStack::PopAndDestroy( &stream ); - } - -// --------------------------------------------------------------------------- -// Get UIDs of test results that are stored inside the test record. -// --------------------------------------------------------------------------- -// -void CDiagResultsDbTestRecordSubsession::GetTestUidsL( - const RMessage2& aMessage ) - { - iSession->ReadBufferL( aMessage, 0, iBuffer ); - - RBufWriteStream stream ( *iBuffer ); - CleanupClosePushL( stream ); - - //Write how many uids there are. - stream.WriteInt16L( iTestRecordHandle->Count() ); - - for (TInt i = 0; i < iTestRecordHandle->Count(); ++i) - { - stream.WriteInt32L( iTestRecordHandle->Get(i).iTestUid.iUid ) ; - } - - // if client buffer is not big enough - if ( iBuffer->Ptr(0).Length() > aMessage.GetDesMaxLength(0) ) - { - User::Leave( KErrOverflow ); - } - - - aMessage.Write( 0, iBuffer->Ptr(0) ); //write to client's address space - - CleanupStack::PopAndDestroy( &stream ); - } diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/group/bld.inf --- a/devicediagnosticsfw/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2007 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: Bldmake file -* -*/ - -#include - - - #include "../diagframework/group/bld.inf" - #include "../diagpluginbase/group/bld.inf" - #include "../diagresultsdb/client/group/bld.inf" - #include "../diagresultsdb/server/group/bld.inf" - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - - ../rom_files/diagframework.iby CORE_MW_LAYER_IBY_EXPORT_PATH(diagframework.iby) - ../rom_files/diagpluginbase.iby CORE_MW_LAYER_IBY_EXPORT_PATH(diagpluginbase.iby) - ../rom_files/diagresultsdatabase.iby CORE_MW_LAYER_IBY_EXPORT_PATH(diagresultsdatabase.iby) - ../rom_files/diagresultsdatabaseserver.iby CORE_MW_LAYER_IBY_EXPORT_PATH(diagresultsdatabaseserver.iby) diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/rom_files/diagframework.iby --- a/devicediagnosticsfw/rom_files/diagframework.iby Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* Copyright (c) 2007 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: Image description file for project Diagnostis Framework -* -*/ - - -#ifndef DIAGFRAMEWORK_IBY -#define DIAGFRAMEWORK_IBY - -#ifdef FF_DEVICE_DIAGNOSTICS_APP - -#include - -file=ABI_DIR\BUILD_DIR\diagframework.dll SHARED_LIB_DIR\diagframework.dll - -#endif - -#endif // DIAGFRAMEWORK_IBY diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/rom_files/diagpluginbase.iby --- a/devicediagnosticsfw/rom_files/diagpluginbase.iby Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* Copyright (c) 2007 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: Image description file for project Diagnostics Plugin Base -* -*/ - - -#ifndef DIAGPLUGINBASE_IBY -#define DIAGPLUGINBASE_IBY - -#ifdef FF_DEVICE_DIAGNOSTICS_APP - -#include - -file=ABI_DIR\BUILD_DIR\diagpluginbase.dll SHARED_LIB_DIR\diagpluginbase.dll - -#endif - -#endif // DIAGPLUGINBASE_IBY diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/rom_files/diagresultsdatabase.iby --- a/devicediagnosticsfw/rom_files/diagresultsdatabase.iby Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* Copyright (c) 2007 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: Image description file for project Diagnostics Plugin Base -* -*/ - - -#ifndef DIAGRESULTSDATABASE_IBY -#define DIAGRESULTSDATABASE_IBY - -#ifdef FF_DEVICE_DIAGNOSTICS_APP - -#include - -file=ABI_DIR\BUILD_DIR\diagresultsdatabase.dll SHARED_LIB_DIR\diagresultsdatabase.dll - -#endif - -#endif // DIAGRESULTSDATABASE_IBY diff -r 2c8580950a26 -r 5d0ec111abfc devicediagnosticsfw/rom_files/diagresultsdatabaseserver.iby --- a/devicediagnosticsfw/rom_files/diagresultsdatabaseserver.iby Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* Copyright (c) 2007 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: Image description file for project Diagnostics Plugin Base -* -*/ - - -#ifndef DIAGRESULTSDATABASESERVER_IBY -#define DIAGRESULTSDATABASESERVER_IBY - -#ifdef FF_DEVICE_DIAGNOSTICS_APP - -#include - -file=ABI_DIR\BUILD_DIR\diagresultsdatabaseserver.exe PROGRAMS_DIR\diagresultsdatabaseserver.exe - -#endif - -#endif // DIAGRESULTSDATABASESERVER_IBY diff -r 2c8580950a26 -r 5d0ec111abfc group/bld.inf --- a/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ b/group/bld.inf Thu May 27 13:43:36 2010 +0300 @@ -37,9 +37,6 @@ //remotemgmt_plat #include "../remotemgmt_plat/group/bld.inf" -//devicediagnosticsfw -#include "../devicediagnosticsfw/group/bld.inf" - //dcmofw #include "../dcmofw/group/bld.inf" diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_framework_api/diagnostics_framework_api.metaxml --- a/remotemgmt_plat/diagnostics_framework_api/diagnostics_framework_api.metaxml Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ - - - Diagnostics Framework API - An API for loading and executing diagnostics test cases. - c++ - devicediagnosticsfw - - - - - - - - - no - no - - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_framework_api/group/bld.inf --- a/remotemgmt_plat/diagnostics_framework_api/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2006 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 that exports the files belonging to -: Diagnostics Framework API -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/diagframeworkdebug.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagFrameworkDebug.h) -../inc/diagengineobserver.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagEngineObserver.h) -../inc/diagappcommand.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagAppCommand.h) -../inc/diagengine.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagEngine.h) -../inc/diagpluginexecplan.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagPluginExecPlan.h) -../inc/diagenginecommon.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagEngineCommon.h) -../inc/diagexecplanentry.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagExecPlanEntry.h) -../inc/diagenginewatchdogtypes.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagEngineWatchdogTypes.h) diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_framework_api/inc/diagappcommand.h --- a/remotemgmt_plat/diagnostics_framework_api/inc/diagappcommand.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* Copyright (c) 2007 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: List of commands that plug-ins can request from application. -* -*/ - - -#ifndef DIAGAPPCOMMAND_H -#define DIAGAPPCOMMAND_H - -/** -* Diagnostics Application command types. -* -* This is a list of command that plug-in can request from the application. -* -*/ -enum TDiagAppCommand - { - /** - * EDiagAppCommandSwitchToMainView - * - * This command can be used by interactive view plug-in to notify the - * application that plug-in is done with current view and application can - * switch to main view. View to switch to is determined by the application. - * - * aParam1: No parameter is needed. Always pass NULL. - * aParam2: No parameter is needed. Always pass NULL. - * - * @code - * - * ExecutionParam().Engine().ExecuteAppCommandL( - * EDiagAppCommandSwitchToMainView, - * NULL, - * NULL ); - * - * or - * - * TRAPD( err, ExecutionParam().Engine().ExecuteAppCommandL( - * EDiagAppCommandSwitchToMainView, - * NULL, - * NULL ) ); - * - */ - EDiagAppCommandSwitchToMainView = 1 - }; - -#endif // DIAGAPPCOMMAND_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_framework_api/inc/diagengine.h --- a/remotemgmt_plat/diagnostics_framework_api/inc/diagengine.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,295 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagEngine -* -*/ - - -#ifndef DIAGENGINE_H -#define DIAGENGINE_H - - -// system includes -#include // CBase - -// user includes. -#include // MDiagEngineCommon - -// Forward declarations -class MDiagEngineObserver; -class RDiagResultsDatabase; -class CDiagPluginPool; -class CDiagEngineImpl; - - -/** -* Diagnostics Framework Engine -* -* This class is used by the client to execute tests and load plug-ins. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CDiagEngine ) : public CBase, - public MDiagEngineCommon - { -public: - - /** - * Two-phased constructors. - * - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aDisableDependency if ETrue, plug-ins should execute - * event if dependencies are not met. - * @param aExecutionBatch array of plug-ins to execute. - * @return New instance of CDiagEngine*. - */ - IMPORT_C static CDiagEngine* NewL( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ); - - /** - * Two-phased constructors. This is identical to NewL, except that it will - * keep newl instance in clean up stack. - * - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aDisableDependency if ETrue, plug-ins should execute - * event if dependencies are not met. - * @param aExecutionBatch array of plug-ins to execute. - * @return New instance of CDiagEngine*. - */ - IMPORT_C static CDiagEngine* NewLC( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TBool aDisableDependency, - const RArray< TUid >& aExecutionBatch ); - /** - * Two-phased constructors. - * - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aIncompleteRecordUid - Uid to the record to resume. - * - * @return New instance of CDiagEngine*. - */ - IMPORT_C static CDiagEngine* NewL( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TUid aIncompleteRecordUid ); - - /** - * Two-phased constructors. This is identical to NewL, except that it will - * keep newl instance in clean up stack. - * - * @param aViewAppUi View App Ui that is using this engine. - * @param aObserver Engine observer. - * @param aDbSession Session to RDiagResultDatabase to create record. - * @param aPluginPool Initialized plug-in pool that holds plug-ins. - * @param aIncompleteRecordUid - Uid to the record to resume. - * - * @return New instance of CDiagEngine*. - */ - IMPORT_C static CDiagEngine* NewLC( CAknViewAppUi& aViewAppUi, - MDiagEngineObserver& aObserver, - RDiagResultsDatabase& aDbSession, - CDiagPluginPool& aPluginPool, - TUid aIncompleteRecordUid ); - - /** - * Destructor. - */ - virtual ~CDiagEngine(); - - /** - * Execute tests. This is a asynchronous method. - * First, execution plan is sent via MDiagEngineObserver::TestExecutionBeginL(). - * Then, during the execution, MDiagEngineObserver::TestExecutionProgressL() - * may be called multiple times to notify execution progress. - * When execution is completed, - * MDiagEngineObserver::TestExecutionCompletedL() is called. - */ - IMPORT_C void ExecuteL(); - - /** - * Set custom execution parameter. - * - * @param aCustomParams - Custom data. Owership is not transefrred - * so, the client must delete it once test is completed. - * Desipte it being a pointer, ownership cannot be transferred - * because engine does not know the type of pointer. - */ - IMPORT_C void SetCustomParam( TAny* aCustomParams ); - - /** - * Suspend execution. This can be used to suspend test execution. - * If currently executing test is suspendable, it will be suspended and resumed. - * Otherwise, it will be stopped. When CDiagEngine::ResumeL is called, - * the stopped test will be restarted from the beginning. Already executed - * tests are not affected. - * - * After engine is suspended, MDiagEngineObserver::TestExecutionSuspendedL() is called. - * - */ - IMPORT_C void SuspendL(); - - /** - * Resume suspended execution. This function can be used to resume - * previously suspended execution. If execution was suspended on a test - * that cannot be suspended, the test will restart. Previously executed tests - * will not be re-run. Also, dependent tests will not be re-run. If - * the suspended test fails to resume (e.g. leaves), it will be marked as - * failure. - * - * After engine is resumed, MDiagEngineObserver::TestExecutionResumedL() is called. - */ - IMPORT_C void ResumeL(); - - - // ADO & Platformization Changes - IMPORT_C TBool GetPluginDependencyL(); - -public: // from MDiagEngineCommon - - /** - * Returns current execution plan. - * @see MDiagEngineCommon::ExecutionPlanL - */ - virtual const MDiagPluginExecPlan& ExecutionPlanL() const; - - /** - * Stop current execution of tests. - * @see MDiagEngineCommon::ExecutionStopL - */ - virtual void ExecutionStopL( TCancelMode aCancelMode ); - - /** - * Resets test execution watchdog timer. - * @see MDiagEngineCommon::ResetWatchdog - */ - virtual void ResetWatchdog(); - - /** - * Resets test execution watchdog timer. - * @see MDiagEngineCommon::ResetWatchdog - */ - virtual void ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType ); - - /** - * Resets test execution watchdog timer. - * @see MDiagEngineCommon::ResetWatchdog - */ - virtual void ResetWatchdog( TTimeIntervalMicroSeconds32 aExpectedTimeToComplete ); - - /** - * Get App Ui reference that launched Diagnostics Engine. - * @see MDiagEngineCommon::ViewAppUi - */ - virtual CAknViewAppUi& ViewAppUi(); - - /** - * Get App Ui reference that launched Diagnostics Engine. - * @see MDiagEngineCommon::ViewAppUi - */ - virtual const CAknViewAppUi& ViewAppUi() const; - - /** - * Get Database Subsession for record open for writing. - * @see MDiagEngineCommon::DbRecord - */ - virtual RDiagResultsDatabaseRecord& DbRecord(); - - /** - * Get Database Subsession for record open for writing. - * @see MDiagEngineCommon::DbRecord - */ - virtual const RDiagResultsDatabaseRecord& DbRecord() const; - - /** - * Get reference to Plugin Pool - * @see MDiagEngineCommon::PluginPool - */ - virtual CDiagPluginPool& PluginPool(); - - /** - * Get reference to Plugin Pool - * @see MDiagEngineCommon::PluginPool - */ - virtual const CDiagPluginPool& PluginPool() const; - - /** - * Add a text to configuraiton list option. - * @see MDiagEngineCommon::AddToConfigListL - */ - virtual void AddToConfigListL( TConfigListType aListType, const TDesC& aText ); - - /** - * Remove a text from configuration list. - * @see MDiagEngineCommon::RemoveFromConfigListL - */ - virtual void RemoveFromConfigListL( TConfigListType aListType, const TDesC& aText ); - - /** - * Create a common dialog. - * @see MDiagEngineCommon::CreateCommonDialogL - */ - virtual CAknDialog* CreateCommonDialogLC( TDiagCommonDialog aDialogType, - TAny* aInitData ); - - /** - * Stop watchdog activity temporarily. - * @see MDiagEngineCommon::StopWatchdogTemporarily - */ - virtual void StopWatchdogTemporarily(); - - /** - * Check if current engine is being executed with dependency disabled. - * @see MDiagEngineCommon::IsDependencyDisabled - */ - virtual TBool IsDependencyDisabled() const; - - /** - * Get custom param - * @see MDiagEngineCommon::CustomParam - */ - virtual TAny* CustomParam() const; - - /** - * Execute an application command. - * @see MDiagEngineCommon::ExecuteAppCommandL - */ - virtual void ExecuteAppCommandL( TDiagAppCommand aCommand, - TAny* aParam1, - TAny* aParam2 ); - -private: // private data - CDiagEngineImpl* iEngineImpl; - }; - - -#endif // DIAGENGINE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_framework_api/inc/diagenginecommon.h --- a/remotemgmt_plat/diagnostics_framework_api/inc/diagenginecommon.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,247 +0,0 @@ -/* -* Copyright (c) 2007 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: Common interface to use engine -* -*/ - - -#ifndef DIAGENGINECOMMON_H -#define DIAGENGINECOMMON_H - -// SYSTEM INCLUDES -#include // TDesC, TTimeIntervalMicroSeconds32 -#include // TDiagCommonDialog -#include // TDiagAppCommand -#include // TDiagEngineWatchdogTypes - -// FORWARD DECLARATION -class MDiagPluginExecPlan; -class MDiagPlugin; -class CAknViewAppUi; -class RDiagResultsDatabaseRecord; -class CDiagPluginPool; -class CAknDialog; - -/** -* Diagnostics Framework Engine Common Interface -* -* This interface is provided for Test plug-ins, Suite plug-ins and -* any other clients of CDiagEngine. -* -* @since S60 v5.0 -*/ -class MDiagEngineCommon - { -public: // Data Structures - - /** - * Possible cancellation mode. - */ - enum TCancelMode - { - ESkip, // Cancel current test only. Continue rest. - ECancelAll // Cancel current test and skip rest of execution. - }; - - /** - * Text List based config options - */ - enum TConfigListType - { - /** - * EConfigListCallIngore - List of phone numbers to ignore. - * If a phone number is added to this list, engine will ignore the number - * a new MO/MT call is created by the phone, and will not suspend - * the engine execution when new call is made. - */ - EConfigListCallIngore = 0 - }; - -public: // public methods - - /** - * Returns current execution plan. - * If test is not being executed, it will leave with KErrNotReady. - * - * @return Reference to current execution plan. - */ - virtual const MDiagPluginExecPlan& ExecutionPlanL() const = 0; - - /** - * Stop current execution of tests. - * If test is not being executed, it will leave with KErrNotReady. - * - * @param aCancelMode ESkip - Skip current test only. Rest will continue. - * ECancelAll - Cancels current test and skips the rest of - * execution. - */ - virtual void ExecutionStopL( TCancelMode aCancelMode ) = 0; - - /** - * Resets test execution watchdog timer. It will use the last given watchdog - * timer value for currently executing plug-in. - */ - virtual void ResetWatchdog() = 0; - - /** - * Resets test execution watchdog timer. - * Watchog timer value will be determined by the type of watchdog requested. - * Given value is valid until next plug-in is executed, or another - * ResetWachdogL() or TestProgressL() is called. - * - * @param aWatchdogType Type of watchdog timer vaule to use. - * @see TDiagEngineWatchdogTypes - */ - virtual void ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType ) = 0; - - /** - * Resets test execution watchdog timer. - * Engine will allow specified amount of time. - * Given value is valid until next plug-in is executed, or another - * ResetWachdogL() or TestProgressL() is called. - * - * @param aTimeToWait - Amount of time to wait before watchdog is expired. - */ - virtual void ResetWatchdog( TTimeIntervalMicroSeconds32 aExpectedTimeToComplete ) = 0; - - /** - * Get App Ui reference that launched Diagnostics Engine. - * AppUi reference can be used for tests that requires AppUi for view switching. - * - * @return Reference to CAknViewAppUi - */ - virtual CAknViewAppUi& ViewAppUi() = 0; - - /** - * Get App Ui reference that launched Diagnostics Engine. - * AppUi reference can be used for tests that requires AppUi for view switching. - * - * @return Reference to CAknViewAppUi - */ - virtual const CAknViewAppUi& ViewAppUi() const = 0; - - /** - * Get Database Subsession for record open for writing. - * - * @return Reference to RDiagResultsDatabaseRecord - */ - virtual RDiagResultsDatabaseRecord& DbRecord() = 0; - - /** - * Get Database Subsession for record open for writing. - * - * @return Reference to RDiagResultsDatabaseRecord - */ - virtual const RDiagResultsDatabaseRecord& DbRecord() const = 0; - - /** - * Get reference to Plugin Pool - * - * @return Reference to CDiagPluginPool - */ - virtual CDiagPluginPool& PluginPool() = 0; - - /** - * Get reference to Plugin Pool - * - * @return Reference to CDiagPluginPool - */ - virtual const CDiagPluginPool& PluginPool() const = 0; - - /** - * Add a text to configuraiton list option. - * - * @param aListType - List type to add the configuration option to. - * @see TConfigListType - * @param aText - text to add to the list - */ - virtual void AddToConfigListL( TConfigListType aListType, const TDesC& aText ) = 0; - - /** - * Remove a text from configuration list. - * If configuration item text does not exist in the list, this function will - * leave with KErrNotFound. - * - * @param aListType - List type to remove the item from. - * @see TConfigListType - * @param aText - text for the option - */ - virtual void RemoveFromConfigListL( TConfigListType aListType, const TDesC& aText ) = 0; - - /** - * Create a common dialog. - * Plug-ins can use this factory method to create a common dialog. - * For available dialog types, @see DiagCommonDialog.h - * - * @param aDialogType - Type of dialog to create. - * @param aInitData - Initialization parameter. Ownership is passed to engine. - * @return a pointer to newly created dialog. Ownership is passed to caller. - */ - virtual CAknDialog* CreateCommonDialogLC( TDiagCommonDialog aDialogType, - TAny* aInitData ) = 0; - - /** - * Stop watchdog activity temporarily. Watchdog will stay inactive until: - * a ) TestProgressL() is called. - * b ) ResetWatchdogL() is called. - * c ) Plug-in is cancelled and the next plug-in starts to execute. - */ - virtual void StopWatchdogTemporarily() = 0; - - /** - * Check if current engine is being executed with dependency disabled. - * @return TBool - ETrue if dependency is disabled. - * EFalse if depencenty is enabled. - */ - virtual TBool IsDependencyDisabled() const = 0; - - /** - * Get custom parameter passed during engine creation. - * @return TAny* Custom parameter. Ownership is not transferred. - */ - virtual TAny* CustomParam() const = 0; - - /** - * Send a command to application to execute.. This can be used by the plug-in to - * request certain behavior from application. For more information about - * types of commands possible, @see TDiagAppCommand. - * If the command is not supported by the application, this function will - * leave with error code KErrNotSupported. - * - * Memory Ownership of Parameters. - * Note that in general, parameters should be owned by the caller. This is - * because if a particular operation is not supported, application - * will not know how to deallocate the parameter, causing memory leak. - * - * In cases where ownership must be passed, caller must check if - * ExecuteAppCommandL() leaves KErrNotSupported and deallocate - * parameters. - * - * @param aCommand - Type of command to execute. @see TDiagAppCommand - * @param aParam1 - Data for the command. Value of this parameter depends - * on the type of command. Ownership not transferred. @see TDiagAppCommand - * @param aParam2 - Data for the command. Value of this parameter depends - * on the type of command. Ownership not transferred. @see TDiagAppCommand - * - */ - virtual void ExecuteAppCommandL( TDiagAppCommand aCommand, - TAny* aParam1, - TAny* aParam2 ) = 0; - }; - - -#endif // DIAGENGINECOMMON_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_framework_api/inc/diagengineobserver.h --- a/remotemgmt_plat/diagnostics_framework_api/inc/diagengineobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,149 +0,0 @@ -/* -* Copyright (c) 2007 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: Observer interface to use with CDiagEngine -* -*/ - - -#ifndef DIAGENGINEOBSERVER_H -#define DIAGENGINEOBSERVER_H - - -// SYSTEM INCLUDES -#include // TUint -#include // TDiagCommonDialog -#include // TDiagAppCommand - -// FORWARD DECLARATION -class CDiagResultsDatabaseItem; -class CAknDialog; - -/** -* Diagnostics Framework Engine Observer -* -* This interface is called by CDiagEngine to notify its client -* of progress of requests made to engine. -* -* @since S60 v5.0 -*/ -class MDiagEngineObserver - { -public: // Public Data types - enum TSuspendReason - { - ESuspendByClient = 0, - ESuspendByPhoneCall - }; - - enum TResumeReason - { - EResumedByClient = 0, - EAutoResumedByCallHangup - }; - -public: // Public interface - - /** - * Notify client of test execution begin. Clients can get testplan using - * CDiagEngine::ExecutionPlanL. - */ - virtual void TestExecutionBeginL() = 0; - - /** - * Notify client of test execution progress. - * - * @param aCurrentItemStep - Progress in current entry. - * @param aCurrentItemTotalSteps - Total steps to execute in current entry. - */ - virtual void TestExecutionProgressL( TUint aCurrentItemStep, - TUint aCurrentItemTotalSteps ) = 0; - - /** - * Notify client of execution completion of one plug-in. - * This can be either test plug-in or suite plug-in. - * - * @param aError - KErrNone - Success. - * KErrNoMemory - Out of memory. - * KErrCancel - Cancelled due to ExecutionStopL() - * - * @param aResult - Result of the test. Ownership is transferred here. - * Client must deallocate aResult to avoid memory leak. aResult is Null - * if the plug-in being executed is a suite pre/post method. - */ - virtual void TestExecutionPluginExecutedL( TInt aError, - CDiagResultsDatabaseItem* aResult ) = 0; - - /** - * Notify client of execution suspend. - * - * @param aSuspendReason - Why execution is suspended. - */ - virtual void TestExecutionSuspendedL( TSuspendReason aSuspendReason ) = 0; - - /** - * Notify client of execution resume. - * - * @param aResumeReason - Why execution is being resumed - */ - virtual void TestExecutionResumedL( TResumeReason aResumeReason ) = 0; - - /** - * Notify client of engine stopping. - * - * This indicates that engine execution has stopped. There will not be any - * further messages from engine. This could be called because all - * tests are completed, or an unrecoverable error occured during execution. - * - * Note that if cancel is called during plan creation or if plan creation - * fails, TestExecutionStoppedL() may be called withing first calling - * TestExecutionBeginL(). - * - * @param aError - Reason for engine stopping. - * a) KErrNone - All tests are successfully completed. - * b) KErrCancel - ExecutionStopL is called with ECancelAll. - * Test session cannot be resumed later. - * c) KErrArgument - Parameters passed to engine are invalid. - * d) Others - Other critical that could not be recovered occured during - * test execution. Test may be resumed later in this case. - */ - virtual void TestExecutionCompletedL( TInt aError ) = 0; - - /** - * Create a common Dialog. - * Application should create an instance of requested dialog. - * For available dialog types, @see DiagCommonDialog.h - * - * @param aDialogType - Type of dialog to create. - * @param aData - Initialization parameter. Ownership is passed to engine. - * @return a pointer to newly created dialog. Ownership is passed to caller. - */ - virtual CAknDialog* CreateCommonDialogLC( TDiagCommonDialog aDialogType, - TAny* aInitData ) = 0; - - /** - * Execute a command from plug-in. Parameters are identical to - * MDiagEngineCommon::ExecuteAppCommandL(). - * @see MDiagEngineCommon::ExecuteAppCommandL() - * @see TDiagAppCommand - */ - virtual void ExecuteAppCommandL( TDiagAppCommand aCommand, - TAny* aParam1, - TAny* aParam2 ) = 0; - }; - - -#endif // DIAGENGINEOBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_framework_api/inc/diagenginewatchdogtypes.h --- a/remotemgmt_plat/diagnostics_framework_api/inc/diagenginewatchdogtypes.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for TDiagEngineWatchdogTypes -* -*/ - - - -#ifndef DIAGENGINEWATCHDOGTYPES_H -#define DIAGENGINEWATCHDOGTYPES_H - -/** -* These types indicate to engine how long it should wait between each -* test execution progress reports. -* -* Typically, if a test step requires user interaction, engine should wait -* longer before stopping its execution. For non-interactive steps, -* engine should not wait as long. -* -* The actual values are specifed by cenrep key value owned by engine. -* -* Values: -* EDiagEngineWatchdogTypeInteractive - Indicates that engine should -* use interactive watchdog timer value. -* -* EDiagEngineWatchdogTypeAutomatic - Indicates that engine should -* use non-interactive watchdog timer value. -* -* @since S60 3.2 -*/ -enum TDiagEngineWatchdogTypes - { - EDiagEngineWatchdogTypeInteractive = 0, - EDiagEngineWatchdogTypeAutomatic - }; - -#endif // DIAGENGINEWATCHDOGTYPES_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_framework_api/inc/diagexecplanentry.h --- a/remotemgmt_plat/diagnostics_framework_api/inc/diagexecplanentry.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagExecPlanEntry -* -*/ - - -#ifndef DIAGEXECPLANENTRY_H -#define DIAGEXECPLANENTRY_H - - -// SYSTEM INCLUDE FILES -#include // TBool - -// FORWARD DECLARATION -class MDiagPlugin; - -/** -* Diagnostics Plug-in Execution Plan Entry. -* -* This class provides the interface for test execution plan entries. -* -* @since S60 v5.0 -* -*/ -class MDiagExecPlanEntry - { -public: // data types - /** - * Item execution state. - */ - enum TState - { - EStateQueued = 0, // Execution has not begun. - EStateInitDelay, // Waiting for initial delay timer to expire - EStateRunning, // RunTestL() is called. Waiting for completion. - EStateSuspended, // Execution is suspended - EStateStopped, // Plugin is stopped, but result not logged yet. - EStateCompleted // Result is logged - }; - -public: - /** - * Plugin associated with the entry - * @return Reference to the plugin. - */ - virtual const MDiagPlugin& Plugin() const = 0; - - /** - * Returns whether item is being executed to satisfy dependency or not. - * @return ETrue if item is being executed to satisfy dependency. - * EFalse if item is being executed explicitly. - */ - virtual TBool AsDependency() const = 0; - - /** - * Item State - * @return Current state of execution plan item - */ - virtual TState State() const = 0; - - }; - -#endif // DIAGEXECPLANENTRY_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_framework_api/inc/diagframeworkdebug.h --- a/remotemgmt_plat/diagnostics_framework_api/inc/diagframeworkdebug.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,192 +0,0 @@ -/* -* Copyright (c) 2007 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: Debugging trace definition for framework and plug-ins. -* -*/ - - -#ifndef DIAGFRAMEWORKDEBUG_H -#define DIAGFRAMEWORKDEBUG_H - -/** -* Diagnostics Framework Debug Traces -* -* This header file defines common debug trace macros for Diagnostics Framework. -* It is used by the diagnostics framework internally. However, it is -* recomanded that application and plug-ins use the macros defined here -* in order to allow consistent logging. -* -* Debugging messages are enabled only on non DEBUG build. -* -* These macros can be configured to use either Flogger (RFileLogger) or -* RDebug. By default, it will use RFileLogger. If RDebug trace is needed, -* uncomment //#define DIAG_DEBUG_LOG_USE_RDEBUG below. -* -* The following macros are provided by this files. -* -* LOGTEXT( aDescriptor ); -* - This prints a descriptor to log. E.g. if you have a TDesC type, then -* you can use this. e.g. -* -* void CMyClass::PrintSomeText( const TDesC& aText ) -* { -* LOGTEXT( aText ); -* } -* -* LOGSTRING( aFormat ) -* LOGSTRING2( aFormat, a ); -* LOGSTRING3( aFormat, a, b ); -* LOGSTRING4( aFormat, a, b, c ); -* LOGSTRING5( aFormat, a, b, c, d ); -* - These macros are used to print debugging messages with formatting text -* and several arguments. Formatting string is similar to printf. -* -* void CMyClass::PrintSomeText( TInt aInt, TInt aHex ) -* { -* LOGSTRING( "CMyClass::PrintSomeText() Enter" ); -* LOGSTRING3( "CMyClass::PrintSomeText() aInt = %d, aHex = 0x%08x", -* aInt, -* aHex ); -* } -* -*/ - -#define ENABLE_DIAG_DEBUG_LOG // Enable diagnostics debug log -//#define DIAG_DEBUG_LOG_USE_RDEBUG // Use RDebug::Print instead of flogger. - -#if ( defined _DEBUG && defined ENABLE_DIAG_DEBUG_LOG ) - -#ifdef DIAG_DEBUG_LOG_USE_RDEBUG - -#include // RDebug - -#define LOGTEXT( aDescriptor ) \ - { \ - RDebug::Print( aDescriptor ); \ - } - -#define LOGSTRING( aFormat ) \ - { \ - _LIT( KFormat, aFormat ); \ - RDebug::Print( KFormat ); \ - } - -#define LOGSTRING2( aFormat, a ) \ - { \ - _LIT( KFormat, aFormat ); \ - RDebug::Print( KFormat, a ); \ - } - -#define LOGSTRING3( aFormat, a, b ) \ - { \ - _LIT( KFormat, aFormat ); \ - RDebug::Print( KFormat, a, b ); \ - } - -#define LOGSTRING4( aFormat, a, b, c ) \ - { \ - _LIT( KFormat, aFormat ); \ - RDebug::Print( KFormat, a, b, c ); \ - } - -#define LOGSTRING5( aFormat, a, b, c, d ) \ - { \ - _LIT( KFormat, aFormat ); \ - RDebug::Print( KFormat, a, b, c, d ); \ - } - -#else // #ifdef DIAG_DEBUG_LOG_USE_RDEBUG - -// SYSTEM INCLUDES -#include - -// CONSTANTS -_LIT( KDiagFrameworkLogFolder, "DiagFramework" ); -_LIT( KDiagFrameworkLogFile, "LOG.TXT" ); - -// MACROS -#define LOGTEXT( aDescriptor ) \ - { \ - RFileLogger::Write( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - aDescriptor ); \ - } - -#define LOGSTRING( aFormat ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::Write( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - KFormat() ); \ - } - -#define LOGSTRING2( aFormat, a ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - TRefByValue( KFormat() ), \ - a ); \ - } - -#define LOGSTRING3( aFormat, a, b ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - TRefByValue( KFormat() ), \ - a, b ); \ - } - -#define LOGSTRING4( aFormat, a, b, c ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - TRefByValue( KFormat() ), \ - a, b, c ); \ - } - -#define LOGSTRING5( aFormat, a, b, c, d ) \ - { \ - _LIT( KFormat, aFormat ); \ - RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \ - KDiagFrameworkLogFile(), \ - EFileLoggingModeAppend, \ - TRefByValue( KFormat() ), \ - a, b, c, d ); \ - } - -#endif // #else DIAG_DEBUG_LOG_USE_RDEBUG - -#else // _DEBUG && ENABLE_DIAG_DEBUG_LOG - -#define LOGTEXT( aDescriptor ) -#define LOGSTRING( aFormat ) -#define LOGSTRING2( aFormat, a ) -#define LOGSTRING3( aFormat, a, b ) -#define LOGSTRING4( aFormat, a, b, c ) -#define LOGSTRING5( aFormat, a, b, c, d ) - -#endif // else _DEBUG && ENABLE_DIAG_DEBUG_LOG - -#endif // DIAGFRAMEWORKDEBUG_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_framework_api/inc/diagpluginexecplan.h --- a/remotemgmt_plat/diagnostics_framework_api/inc/diagpluginexecplan.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2007 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: Class declaration for CDiagPluginExecPlan -* -*/ - - -#ifndef DIAGPLUGINEXECPLAN_H -#define DIAGPLUGINEXECPLAN_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATION -class MDiagPlugin; -class MDiagExecPlanEntry; - -/** -* Diagnostics Plugin Execution Plan -* -* This class provides interface to access execution plan. -* It also provides interface to modify execution plan. -* A cursor to currently executing item is also maintained. -* -*/ -class MDiagPluginExecPlan - { -public: - /** - * Access an item in plan. - * - * @param aIndex - index - * @return Reference to plan entry at given index. - */ - virtual const MDiagExecPlanEntry& operator[]( TInt aIndex ) const = 0; - - /** - * Get current execution plan item. - * - * @return Reference to currently executing plan item. - */ - virtual const MDiagExecPlanEntry& CurrentExecutionItem() const = 0; - - /** - * Returns index of execution cursor. Note that this index - * includes both suite plug-in and test plug-in. - * - * If only interested about test plug-ins. use CurrentTestIndex(). - * - * @return Index to current execution cursor. - */ - virtual TInt CurrentIndex() const = 0; - - /** - * Returns total number of items in the plan. Note that this count - * includes both suite plug-in and test plug-in. - - * If only interested only test plug-ins. use TestCount(). - * - * @return Number of items in the test plan. - */ - virtual TInt Count() const = 0; - - /** - * Get current test index. - * - * Note that only test plug-ins (MDiagTestPlugin) are counted in this - * case. Suite pre/post execution are not. You cannot use this value - * with [] operator since this is not a real index. - * - * To get real cursor index, use GetCurrentIndex(). - * - * @param aIncludeDependency If ETrue, test index will also include - * plugins that are included as dependency. - * @return current test index. - */ - virtual TInt CurrentTestIndex( TBool aIncludeDependency ) const = 0; - - /** - * Get total test count. - * - * Note that only test plug-ins (MDiagTestPlugin) are counted in this - * case. Suite pre/post execution are not. You cannot use this value - * with [] operator since this is not a real count. - * - * To get the real number of items in the plan, use GetCount(). - * - * @param aIncludeDependency If ETrue, test index will also include - * plug-ins that are included as dependency. - * @return current test index. - */ - virtual TInt TestCount( TBool aIncludeDependency ) const = 0; - - /** - * Check if this is the last test being executed. - * - * Note that only test plug-ins (MDiagTestPlugin) are counted in this - * case. Suite pre/post execution are not. - * If you are interested in checking if it is currently running - * the last plug-in, including test and suites, @see IsLastPlugin() - * - * @return ETrue plan is executing the last test plug-in. - */ - virtual TBool IsLastTest() const = 0; - - /** - * Check if this is the last plug-in being executed. - * - * Note that this includes both test plug-ins and suite plug-ins. - * If you are interested in checking the progress on tests only, - * @see IsLastTest() - * - * @return ETrue plan is executing the last test or suite plug-in. - */ - virtual TBool IsLastPlugin() const = 0; - - /** - * Returns the plug-in index that plan is resuming from. - * If this session is not a resume session, this will return 0 (first index). - * Otherwise, this index will point the first real execution item. - * - * Note that this value will not change as test session progresses. Even - * as test progresses, this value will still point to the index that - * this session is being resumed from. - * - * @return Index of which session is being resumed from. - */ - virtual TInt ResumeIndex() const = 0; - }; - -#endif // DIAGPLUGINEXECPLAN_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/diagnostics_plugin_api.metaxml --- a/remotemgmt_plat/diagnostics_plugin_api/diagnostics_plugin_api.metaxml Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ - - - Diagnostics plug-in API - Diagnostics plug-ins interface - c++ - devicediagnosticsfw - - - - - - - - - no - no - - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/group/bld.inf --- a/remotemgmt_plat/diagnostics_plugin_api/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2006 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 that exports the files belonging to -: Diagnostics plug-in API -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/diagtestplugin.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagTestPlugin.h) -../inc/diagplugin.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagPlugin.h) -../inc/diagsuiteplugin.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagSuitePlugin.h) -../inc/diagsuiteexecparam.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagSuiteExecParam.h) -../inc/diagtestobserver.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagTestObserver.h) -../inc/diagsuitepluginbase.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagSuitePluginBase.h) -../inc/diagtestpluginbase.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagTestPluginBase.h) -../inc/diagpluginconstructionparam.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagPluginConstructionParam.h) -../inc/diagtestexecparam.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagTestExecParam.h) -../inc/diagsuiteobserver.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagSuiteObserver.h) diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/inc/diagplugin.h --- a/remotemgmt_plat/diagnostics_plugin_api/inc/diagplugin.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,240 +0,0 @@ -/* -* Copyright (c) 2007 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: Abstract class that represents a diagnostics plug-in -* -*/ - - -#ifndef DIAGPLUGIN_H -#define DIAGPLUGIN_H - -// INCLUDES -#include // CPtrCArray . Needed since this is typedef. - -//Forward declarations -class CGulIcon; -class MDiagEngineCommon; - -// Constants for plugin interfaces -const TUid KDiagPluginInterfaceUid = { 0x2000AFEB }; - -// UID of top most root suite uid. All plug-ins are descendant of this suite. -const TUid KDiagRootSuiteUid = { 0x00000000 }; - -/** -* Abstract class that repsesents a diagnostics plug-in. -* -* @since S60 v5.0 -**/ -class MDiagPlugin - { -public: //data structures - - /** - * Indicates is the plug-in a suite or a test plug-in - **/ - enum TPluginType - { - ETypeTestPlugin, - ETypeSuitePlugin - }; - - /** - * Layout type of name being requested. - */ - enum TNameLayoutType - { - ENameLayoutListSingle, // list_single_graphic_heading_pane_t1_cp2 - ENameLayoutPopupNoteWaitWindow, // popup_note_wait_window - ENameLayoutListLargeGraphic, // list_single_large_graphic_pane_t1 - ENameLayoutHeadingPane, // heading_pane_t1 - ENameLayoutPopupInfoPane, // popup_info_list_pane_t1 - ENameLayoutTitlePane, // title_pane_t2/opt12 - ENameLayoutListSingleGraphic, // list_single_graphic_pane_t1 - ENameLayoutListDoubleGraphic // list_double_graphic_pane_t1 - }; - -public: // public methods - - /** - * Virtual destructor. This ensures that when the interface is deleted, - * compiler will look up virtual table to find correct destructor. - */ - virtual ~MDiagPlugin() {} - - /** - * Method for getting the name of the plugin. Name returned should be based - * on the layout requested, and it should fit within the layout. - * - * @param aLayoutType - Layout where text will be displayed in. @see TNameLayoutType - * @return Localized name of the plug-in. Ownership is transferred to caller. - */ - virtual HBufC* GetPluginNameL( TNameLayoutType aLayoutType ) const = 0; - - /** - * Get the name of the service that the plug-in provides. - * Service name is defined in the ECOM resource file, thus, it is not localized. - * - * @return The name of the service. - **/ - virtual const TDesC& ServiceLogicalName() const = 0; - - /** - * Get logical dependencies. One plug-in can have multiple dependencies to other plug-ins. - * - * @param aArray An array of logical names. - * @see ServiceLogicalName. - **/ - virtual void GetLogicalDependenciesL( CPtrCArray& aArray ) const = 0; - - /** - * Return the type of the plug-in. - * - * @return The type. - * @see TPluginType. - **/ - virtual TPluginType Type() const = 0; - - /** - * Create an icon that represents the plug-in. - * - * @return An icon. - **/ - virtual CGulIcon* CreateIconL() const = 0; - - /** Method for checking, if plugin should be visible. - * (for example shown in listbox). - * Overwrite this function to show or hide your plugin dynamically. - * - * @return ETrue if plugin should be visible, EFalse otherwise. - */ - virtual TBool IsVisible() const = 0; - - /** Method for checking, if plugin is supported. - * Overwrite this function to enable or disable your plugin dynamically. - * If EFalse, plug-in will not be loaded by plugin pool. - * - * @return ETrue if plugin is supported, EFalse otherwise. - */ - virtual TBool IsSupported() const = 0; - - /** - * Get localised description of the test. Description should be used to explain - * the test for the user. It can contain comments that this service needs for - * example access point and it creates costs or that the duration might be long. - * - * @return Allocated buffer containing localized description of the plugin. - **/ - virtual HBufC* GetDescriptionL() const = 0; - - /** - * Get UID of this plug-in. - * - * @return the UID. - **/ - virtual TUid Uid() const = 0; - - /** - * Get the order number that this plug-in should appear in its parent list. - * - * @return TUint order number. - **/ - virtual TUint Order() const = 0; - - /** - * Get UID of the parent. - * - * @return The parent UID. - **/ - virtual TUid ParentUid() const = 0; - - /** - * Set ECom Destructor ID Key. - * - * @param aDtorIdKey Uid returned by REComSession::CreateImplementationL() - **/ - virtual void SetDtorIdKey( TUid aDtorIdKey ) = 0; - - - /** - * Initialization Step. This method is called before any plugin are executed. - * This can be used to clean up any left over data from previous execution - * sessions. All plug-ins in execution plan will have a chance to clean - * up before any plug-ins are run. This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in will be executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual void TestSessionBeginL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ) = 0; - - - /** - * Cleanup Step. This method is called after all plug-ins in the - * execution plan is completed to clean up any left over data from - * current sesison. This can be used to clean up any data that - * provides dependent service created for its dependencies. - * This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in as executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual void TestSessionEndL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ) = 0; - - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the operation. - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual TAny* CustomOperationL( TUid aUid, TAny* aParam ) = 0; - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual TAny* GetCustomL( TUid aUid, TAny* aParam ) = 0; - }; - -#endif // DIAGPLUGIN_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/inc/diagpluginconstructionparam.h --- a/remotemgmt_plat/diagnostics_plugin_api/inc/diagpluginconstructionparam.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2007 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: Diagnostics Plug-in Construction Parameter -* -*/ - - -#ifndef DIAGPLUGINCONSTRUCTIONPARAM_H -#define DIAGPLUGINCONSTRUCTIONPARAM_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class CDesC16ArrayFlat; - -/** -* Parameters that are needed to construct a Diagnostics plug-in. -* -* @since S60 v5.0 -**/ -NONSHARABLE_CLASS( CDiagPluginConstructionParam ) : public CBase - { -public: - - /** - * Two-phased constructors. - * - * @param aServiceProvided - Name of the service provided. - * Ownership is transferred to CDiagPluginConstructionParam. - * @param aServicesRequired - Array of services required. - * Ownership is transferred to CDiagPluginConstructionParam. - * @param aOrder - Order that this plug-in should appear in - * in parent suite. - * @param aImplUid - Implementation Uid of the plug-in. - * @return new instance of CDiagPluginConstructionParam* - **/ - IMPORT_C static CDiagPluginConstructionParam* NewL( - HBufC* aServiceProvided, - CDesC16ArrayFlat* aServicesRequired, - TInt aOrder, - TUid aImplUid, - TUid aParentUid ); - IMPORT_C static CDiagPluginConstructionParam* NewLC( - HBufC* aServiceProvided, - CDesC16ArrayFlat* aServicesRequired, - TInt aOrder, - TUid aImplUid, - TUid aParentUid ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagPluginConstructionParam(); - - /** - * Get Name of the service provived. - * - * @return Name of the service provided. - */ - IMPORT_C const TDesC& ServiceProvided() const; - - /** - * Get array of services required for plug-in. - * - * @return Array of services required for plug-in. - */ - IMPORT_C const CDesC16ArrayFlat& ServicesRequired() const; - - /** - * Get the order this plug-in should appear in parent. - * - * @return Order that this plug-in should appear in parent. - */ - IMPORT_C TInt Order() const; - - /** - * Uid of plug-in. - * - * @return Uid of plug-in specified in RSS file. - */ - IMPORT_C TUid Uid() const; - - /** - * Parent Uid of plug-in. - * - * @return Parent Uid of plug-in specified in RSS file. - */ - IMPORT_C TUid ParentUid() const; - -private: - - /** - * C++ Constructor. - **/ - CDiagPluginConstructionParam( HBufC* aServiceProvided, - CDesC16ArrayFlat* aServicesRequired, - TInt aOrder, - TUid aImplUid, - TUid aParentUid ); - - -private: // data - - /** - * iServiceProvided - Buffer containing service name - * Owns. - */ - HBufC* iServiceProvided; - - /** - * iServicesRequired - Array containing list of dependency list. - * Owns - */ - CDesC16ArrayFlat* iServicesRequired; - - /** - * iOrder - Order in parent list. - */ - TInt iOrder; - - /** - * iImplUid - Uid of the plug-in - */ - TUid iImplUid; - - /** - * iParentUid - Uid of the parent suite plug-ins - */ - TUid iParentUid; - }; - -#endif // DIAGPLUGINCONSTRUCTIONPARAM_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/inc/diagsuiteexecparam.h --- a/remotemgmt_plat/diagnostics_plugin_api/inc/diagsuiteexecparam.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2007 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: Provides execution parameters for Suite plug-ins -* -*/ - - - -#ifndef DIAGSUITEEXECPARAM_H -#define DIAGSUITEEXECPARAM_H - -// SYSTEM INCLUDES -#include // IMPORT_C / EXPORT_C - - -// FORWARD DECLARATIONS -class MDiagSuiteObserver; -class MDiagEngineCommon; - -/** -* Diagnostics Suite plug-in Execution Parameters -* -* This class provides the execution environment for Suite plug-ins. -* -* @since S60 v5.0 -**/ -NONSHARABLE_CLASS( TDiagSuiteExecParam ) - { -public: - /** - * C++ Constructor - * - * @param aObserver - Observer to notify continuation. - * @param aEngine - Reference to engine that provides necessary environment - * for suite execution, such as CDiagPluginPool, CAknViewAppUi and - * CDiagPluginExecPlan. - */ - IMPORT_C TDiagSuiteExecParam( MDiagSuiteObserver& aObserver, - MDiagEngineCommon& aEngine ); - -public: // new functions - - /** - * Get the Suite plug-in execution observer. - * - * @return MDiagSuiteObserver - Observer of Suite-plugin. - **/ - IMPORT_C MDiagSuiteObserver& Observer() const; - - /** - * Get execution engine. - * - * @return MDiagEngineCommon - Engine that executes the plug-in. - * Engine provides various functionalities needed for executing - * plug-ins. - **/ - IMPORT_C MDiagEngineCommon& Engine() const; - -private: // data - /** - * iObserver - Suite execution observer. - */ - MDiagSuiteObserver& iObserver; - - /** - * iEngine - Engine common interface. - */ - MDiagEngineCommon& iEngine; - }; - -#endif // DIAGSUITEEXECPARAM_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/inc/diagsuiteobserver.h --- a/remotemgmt_plat/diagnostics_plugin_api/inc/diagsuiteobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2007 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: Interface to observe suite plug-ins -* -*/ - - -#ifndef DIAGSUITEOBSERVER_H -#define DIAGSUITEOBSERVER_H - -// FORWARD DECLARTION -class MDiagSuitePlugin; - -/** -* Diagnostics Framework Suite Plug-in Observer -* -* This interface is called by Suite Plug-ins to notify the engine -* of its suite execution completion. -* -* @since S60 v5.0 -*/ -class MDiagSuiteObserver - { -public: - /** - * Notify engine of suite plug-in execution completion. - * This should be called when PreTestExecutionL() or - * PostTestExecutionL() is called. - * - * @param aSender - reference to sender object. - */ - virtual void ContinueExecutionL( const MDiagSuitePlugin& aSender ) = 0; - }; - - -#endif // DIAGSUITEOBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/inc/diagsuiteplugin.h --- a/remotemgmt_plat/diagnostics_plugin_api/inc/diagsuiteplugin.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,128 +0,0 @@ -/* -* Copyright (c) 2007 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: This is a test suite i.e. contains collection of tests. -* -*/ - - - -#ifndef DIAGSUITEPLUGIN_H -#define DIAGSUITEPLUGIN_H - -// INCLUDES -#include // MDiagPlugin - -// FORWARD DECLARATIONS -class MDiagSuiteObserver; -class MDiagEngineCommon; -class CDiagPluginPool; -class TDiagSuiteExecParam; - -/** -* Test suite plug-in abstract interface. -* -* @since S60 v5.0 -**/ -class MDiagSuitePlugin: public MDiagPlugin - { -public: //DATA STRUCTURES - - /** - * Defines sorting algorithm. - **/ - enum TSortOrder - { - ENotSorted, - ESortByPosition - }; - - /** - * Reason for execution stop. - **/ - enum TStopReason - { - ESkip, - ECancelAll, - EWatchdog - }; - -public: // new API - - /** - * Get children of this plug-in. The pointer array is guaranteed to - * be sorted defined by TSortOrder. - * @param aChildren Children are appended into this array. - * @param aOrder Sorting algorithm. - **/ - virtual void GetChildrenL( RPointerArray& aChildren, - TSortOrder aOrder ) const = 0; - - /** - * Add one child. Child can be either a test suite or a test plug-in. - * @param aChild - Child to be added. Ownership is transferred to - * MDiagPluginSuite. - **/ - virtual void AddChildL( MDiagPlugin* aChild ) = 0; - - /** - * Called before one of its test plug-in is executed. Note that it will - * not be called if two of its children plug-ins are executed in - * sequence. - * - * @param aExecParams Parameters for suite pre execution - * @param aSkipDependencyCheck - If ETrue dependency is disabled - * for this test session. - * @param aDependencyExecution - If ETrue, this suite is being - * executed to satisfy dependency. - **/ - virtual void PrepareChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ) = 0; - - /** - * Called before test execution switches to another test suite. - * - * @param aExecParams Parameters for suite post execution - * @param aSkipDependencyCheck - If ETrue dependency is disabled - * for this test session. - * @param aDependencyExecution - If ETrue, this suite is being - * executed to satisfy dependency. - **/ - virtual void FinalizeChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ) = 0; - - /** - * Get the Uids. The uid is used for database access. - * Test suites return a list of their childrens' uids. - * - * @param aUids An UID array. - * @param aOrder Sorting algorithm. - **/ - virtual void GetChildrenUidsL( RArray& aUids, - TSortOrder aOrder ) const = 0; - - /** - * Cancels pre/post execution. Cancellation is expected to be synchronous. - * Suite plug-in must not call ContinueExecutionL(). - * - * @param aReason - Reason why ExecutionStopL() is being called. - **/ - virtual void ExecutionStopL( TStopReason aReason ) = 0; - }; - -#endif // DIAGSUITEPLUGIN_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/inc/diagsuitepluginbase.h --- a/remotemgmt_plat/diagnostics_plugin_api/inc/diagsuitepluginbase.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,325 +0,0 @@ -/* -* Copyright (c) 2007 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: Diagnostics Suite Plug-in Base class -* -*/ - - -#ifndef DIAGSUITEPLUGINBASE_H -#define DIAGSUITEPLUGINBASE_H - -// INCLUDES -#include // TUid -#include // MDiagSuitePlugin -#include // RConeResourceLoader - -// FORWARD DECLARATIONSn -class CDiagPluginConstructionParam; -class CAknDialog; - -/** -* Diagnostics Framework Suite Plugin Base Class -* -* This base class provides common implementation of Suite Plugin. -* -* @since S60 v5.0 -*/ -class CDiagSuitePluginBase : public CActive, - public MDiagSuitePlugin - { -public: - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagSuitePluginBase(); - -protected: // new API for derived class. - /** - * C++ constructor - * - * @param aConstructionParam Construction parameters. - */ - IMPORT_C CDiagSuitePluginBase( CDiagPluginConstructionParam* aParam ); - - /** - * Base class constructor - * This initializes CDiagSuitePluginBase class. Derived class must call this - * method in its ConstructL() method. - * - * @param aResourceFileName Drive and name of resource file in format - * : - */ - IMPORT_C void BaseConstructL( const TDesC& aResourceFileName ); - - /** - * Run a dialog that waits for response. It is highly recommended that - * all plug-ins use this function to display dialogs since it can detect - * deletion of dialogs. - * - * The difference from normal dialog RunLD is that this function returns - * ETrue if dialog exited due to user response and - * EFalse if it was by other means, such as object deletion or - * by DismissWaitingDialog() method. - * - * !!!! NOTE THAT PLUG-IN MUST RETURN IMMEDIATELY WITHOUT ACCESSING !!!! - * !!!! LOCAL VARIABLE OR LOCAL FUNCITONS WHEN THIS FUNCTION RETURNS !!!! - * !!!! EFalse VALUE BECAUSE "THIS" POINTER MAY BE FREED ALREADY. !!!! - * - * The normal dialog response is returned via aDialogResponse reference. - * This function can only display one dialog at a time. Calling it again - * while it has not been returned will cause panic. - * - * @param aDialog - Pointer to dialog to run. If the dialog does not have - * EEikDialogFlagWait flag set, it will panic with EDiagPluginBasePanicBadArgument - * @param aDialogResponse - Response from the dialog. - * For detailed values @see avkon.hrh "CBA constants". E.g. EAknSoftkeyYes - * The only exception is that if cancel is pressed, it will be 0. - * @return ETrue if dialog is exiting due to user response. - * Efalse if dialog is dismissed withou user input. - * If EFalse is returned, plug-in MUST NOT act on the response. - * Also, since plug-in may have been deleted, - */ - IMPORT_C TBool RunWaitingDialogL( CAknDialog* aDialog, TInt& aDialogResponse ); - - /** - * Dismiss the waiting dialog. This will cause the RunDialogLD() function to return with - * aIsUserResponse = Efalse. If nothing is being displayed, this function - * does nothing. - */ - IMPORT_C void DismissWaitingDialog(); - - /** - * CCoeEnv - * @return Reference to CCoeEnv. - */ - IMPORT_C CCoeEnv& CoeEnv(); - -public: // from MDiagPlugin - /** - * Get the name of the service that the plug-in provides. - * - * @return The name of the service. - **/ - IMPORT_C virtual const TDesC& ServiceLogicalName() const; - - /** - * Get logical dependencies. One plug-in can have multiple dependencies - * to other plug-ins. - * - * @param aArray An array of logical names. - * @see ServiceLogicalName. - **/ - IMPORT_C virtual void GetLogicalDependenciesL( CPtrCArray& aArray ) const; - - /** - * Return the type of the plug-in. - * - * @return The type. - * @see TPluginType. - **/ - IMPORT_C virtual TPluginType Type() const; - - /** - * Create an icon that represents the plug-in. - * - * @return An icon. - **/ - IMPORT_C virtual CGulIcon* CreateIconL() const; - - /** - * Get the order number that this plug-in should appear in its parent list. - * - * @return TUint order number. - **/ - IMPORT_C virtual TUint Order() const; - - /** - * @see MDiagPlugin::IsSupported - **/ - IMPORT_C virtual TBool IsSupported() const; - - /** - * Get UID of the parent. - * - * @return The parent UID. - **/ - IMPORT_C virtual TUid ParentUid() const; - - /** - * @see MDiagPlugin::SetDTorIdKey() - */ - IMPORT_C virtual void SetDtorIdKey( TUid aDtorIdKey ); - - /** - * Get title of the plugin. Default implementation in CDiagSuitePluginBase - * will leave with KErrNotSupported. If plug-in has a title, plug-ins - * must override this method. - * @see MDiagPlugin::GetTitleL() - */ - IMPORT_C virtual HBufC* GetTitleL() const; - - /** - * Get description of the plugin. Default implementation in - * CDiagSuitePluginBase will leave with KErrNotSupported. If plug-in - * has a description, plug-ins must override this method. - * @see MDiagPlugin::GetDescriptionL() - */ - IMPORT_C virtual HBufC* GetDescriptionL() const; - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the operation. - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - */ - IMPORT_C virtual TAny* CustomOperationL( TUid aUid, TAny* aParam ); - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the property - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - */ - IMPORT_C virtual TAny* GetCustomL( TUid aUid, TAny* aParam ); - - /** - * Initialization Step. This method is called before any plugin are executed. - * This can be used to clean up any left over data from previous execution - * sessions. All plug-ins in execution plan will have a chance to clean - * up before any plug-ins are run. This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in will be executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. - **/ - IMPORT_C virtual void TestSessionBeginL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - /** - * Cleanup Step. This method is called after all plug-ins in the - * execution plan is completed to clean up any left over data from - * current sesison. This can be used to clean up any data that - * provides dependent service created for its dependencies. - * This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in as executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. - **/ - IMPORT_C virtual void TestSessionEndL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - -public: // from MDiagSuitePlugin - - /** - * Get children of this plug-in. The pointer array is guaranteed to - * be sorted defined by TSortOrder. - * - * @param aChildren Children are appended into this array. - * @param aOrder Sorting algorithm. - **/ - IMPORT_C virtual void GetChildrenL( RPointerArray& aChildren, - TSortOrder aOrder ) const; - - /** - * Add one child. Child can be either a test suite or a test plug-in. - * - * @param aChild - Child to be added. However, ownership is not - * transferred here. - **/ - IMPORT_C virtual void AddChildL( MDiagPlugin* aChild ); - - /** - * Get the Uids. The uid is used for database access. - * Test suites return a list of their childrens' uids. - * - * @param aUids An UID array. - * @param aOrder Sorting algorithm. - **/ - IMPORT_C virtual void GetChildrenUidsL( RArray& aUids, - TSortOrder aOrder ) const; - - /** - * Called before one of its test plug-in is executed. Note that it will - * not be called if two of its children plug-ins are executed in - * sequence. - * - * @param aSkipDependencyCheck - If ETrue dependency is disabled - * for this test session. - * @param aDependencyExecution - If ETrue, this suite is being - * executed to satisfy dependency. - **/ - IMPORT_C virtual void PrepareChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ); - - /** - * Called before test execution switches to another test suite. - * - * @param aExecParams Parameters for suite post execution - * @param aSkipDependencyCheck - If ETrue dependency is disabled - * for this test session. - * @param aDependencyExecution - If ETrue, this suite is being - * executed to satisfy dependency. - **/ - IMPORT_C virtual void FinalizeChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ); - - /** - * Cancels pre/post execution. Cancellation is expected to be synchronous. - * Suite plug-in must not call ContinueExecutionL(). - * - * @param aReason - Reason why ExecutionStopL() is being called. - **/ - IMPORT_C virtual void ExecutionStopL( TStopReason aReason ); - -private: // Private Data Types - class TPrivateData; - -private: // Private data - /** - * Plug-in constructor parameter. - * Ownership: this - */ - CDiagPluginConstructionParam* iConstructionParam; - - /** - * CCoeEnv. This is needed for handling resources. - */ - CCoeEnv& iCoeEnv; - - /** - * Plug-in base's private data - */ - TPrivateData* iData; - }; - -#endif // DIAGSUITEPLUGINBASE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/inc/diagtestexecparam.h --- a/remotemgmt_plat/diagnostics_plugin_api/inc/diagtestexecparam.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2007 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: Provides execution parameters for test plug-ins -* -*/ - - - -#ifndef DIAGTESTEXECPARAM_H -#define DIAGTESTEXECPARAM_H - - -// SYSTEM INCLUDES -#include // IMPORT_C / EXPORT_C - -// FORWARD DECLARATIONS -class MDiagTestObserver; -class MDiagEngineCommon; - -/** -* Diagnostics test plug-in Execution Parameters -* -* This class provides the execution environment for test plug-ins. -* -* @since S60 v5.0 -**/ -NONSHARABLE_CLASS( TDiagTestExecParam ) - { -public: // constructor - /** - * C++ Constructor - * - * @param aObserver - Observer to notify test execution progress. - * @param aEngine - Reference to engine that provides necessary environment - * for test execution, such as CDiagPluginPool, or CAknViewAppUi. - */ - IMPORT_C TDiagTestExecParam( MDiagTestObserver& aObserver, - MDiagEngineCommon& aEngine ); - -public: // new functions - - /** - * Get the test plug-in execution observer. - * - * @return MDiagTestObserver - Observer of test-plugin. Test progress - * and completion should be notified via this object. - **/ - IMPORT_C MDiagTestObserver& Observer() const; - - /** - * Get execution engine. - * - * @return MDiagEngineCommon - Engine that executes the plug-in. - * Engine provides various functionalities needed for executing - * plug-ins. - **/ - IMPORT_C MDiagEngineCommon& Engine() const; - -private: // data - /** - * iObserver - Test execution observer. - */ - MDiagTestObserver& iObserver; - - /** - * iEngine - Common Engine interface - */ - MDiagEngineCommon& iEngine; - }; - -#endif // DIAGTESTEXECPARAM_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/inc/diagtestobserver.h --- a/remotemgmt_plat/diagnostics_plugin_api/inc/diagtestobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2007 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: Interface to observe test plug-ins -* -*/ - - -#ifndef DIAGTESTOBSERVER_H -#define DIAGTESTOBSERVER_H - -// INCLUDES -#include // TUint -#include // TDiagEngineWatchdogTypes - -// FORWARD DECLARATION -class CDiagResultsDatabaseItem; -class MDiagTestPlugin; - - -/** -* Diagnostics Framework Test Plug-in Observer -* -* This interface is called by Test Plug-ins to notify the engine -* of its test execution progress or completion. -* -* @since S60 v3.2 -*/ -class MDiagTestObserver - { -public: - /** - * Notify engine of test plug-in execution progress. - * - * @param aSender - Reference to sender object. - * @param aCurrentStep - Current execution step. - */ - virtual void TestProgressL( const MDiagTestPlugin& aSender, - TUint aCurrentStep ) = 0; - - - /** - * Notify engine of test plug-in execution completion. - * - * @param aSender Reference to sender object. - * @param aTestResult Result of test execution. Ownership is transferred - * from the plug-in to engine. - */ - virtual void TestExecutionCompletedL( const MDiagTestPlugin& aSender, - CDiagResultsDatabaseItem* aTestResult ) = 0; - }; - - -#endif // DIAGTESTOBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/inc/diagtestplugin.h --- a/remotemgmt_plat/diagnostics_plugin_api/inc/diagtestplugin.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -/* -* Copyright (c) 2007 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: Test Plugin Abstract Interface -* -*/ - - -#ifndef DIAGTESTPLUGIN_H -#define DIAGTESTPLUGIN_H - -// INCLUDES -#include // MDiagPlugin - - -// FORWARD DECLARATION -class CDiagPluginExecPlan; -class MDiagTestObserver; -class MDiagEngineCommon; -class CDiagPluginPool; -class TDiagTestExecParam; -class CDiagResultsDatabaseItem; -class MDiagResultDetail; - -/** -* Diagnostics test plug-in abstract interface. -* -* @since S60 v5.0 -**/ -class MDiagTestPlugin: public MDiagPlugin - { -public: - - /** - * Run mode defines what kind of behaviour is expected from this plug-in. - **/ - enum TRunMode - { - EInteractiveView, // plugin with a view - EInteractiveDialog, // interactive, but with dialogs - EAutomatic // automatic tests - }; - - /** - * Reason for execution stop. - **/ - enum TStopReason - { - ESkip, - ECancelAll, - EWatchdog - }; - - /** - * Execute a diagnostics test. This is an asynchronous method. The plug-in - * must call MDiagTestObserver:TestExecutionCompletedL when test has finished. - * - * @param aExecParams Parameters for running the test. - * @param aSkipDependencyCheck - If ETrue, plug-in should execute even if - * dependencies are not executed. - * @param aDependencyExecution - If ETrue, this is being executed to - * satisfy dependency. - * @param aCustomParams Custom parameters for plug-ins. - * These should be used if TDiagTestExecParam is not enough. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual void RunTestL( TDiagTestExecParam* aExecParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution, - TAny* aCustomParams ) = 0; - - /** - * Describes the run mode of the test plug-in. - * - * @return Run mode. - * @see TDiagRunMode. - **/ - virtual TRunMode RunMode() const = 0; - - /** - * Cancels testing. Cancellation is expected to be synchronous. - * Test plug-in must return the result immediately, and it must not call - * TestExecutionCompletedL(). Ownership of the CDiagResultsDatabaseItem is - * transferred to the caller. - * - * @param aReason - Reason why ExecutionStopL() is being called. - * @return Returns result object. Test must not call TestExecutionCompletedL. - **/ - virtual CDiagResultsDatabaseItem* ExecutionStopL( TStopReason aReason ) = 0; - - /** - * Suspend test. If test cannot be suspended, it will leave with - * KErrNotSupported. - **/ - virtual void SuspendL() = 0; - - /** - * Resume test. If test cannot be resumed, it will leave with - * KErrNotSupported. - **/ - virtual void ResumeL() = 0; - - /** - * Get the number of steps that is needed to execute tests. - * This can be used to calculate progress information. - * - * @return The number of steps. - **/ - virtual TUint TotalSteps() const = 0; - - /** - * Create detailed information object from test result. - * Ownership is transferred to caller. - * - * @param aTestResult - Base test result. - * @return Instance of MDiagResultDetail* that can provide detailed - * information about the last test. - **/ - virtual MDiagResultDetail* CreateDetailL( - const CDiagResultsDatabaseItem& aResult ) const = 0; - }; - -#endif // DIAGTESTPLUGIN_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_api/inc/diagtestpluginbase.h --- a/remotemgmt_plat/diagnostics_plugin_api/inc/diagtestpluginbase.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,589 +0,0 @@ -/* -* Copyright (c) 2007 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: Diagnostics Test Plug-in Base class -* -*/ - - -#ifndef DIAGTESTPLUGINBASE_H -#define DIAGTESTPLUGINBASE_H - -// INCLUDES -#include // MDiagTestPlugin -#include // RConeResourceLoader -#include // CDiagResultsDatabaseItem::TResult -#include // TDiagEngineWatchdogTypes - -// FORWARD DECLARATIONS -class CDiagResultsDbItemBuilder; -class TDiagTestPluginBasePrivateData; -class CDiagPluginConstructionParam; -class CAknDialog; - -/** -* Diagnostics Framework Test Plugin Base Class -* -* This class provides further simplification of test execution. -* It handles execution parameter and reporting results to engine -* -* @since S60 v5.0 -*/ -class CDiagTestPluginBase : public CActive, - public MDiagTestPlugin - { -public: // C++ Destructor - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagTestPluginBase(); - -protected: // new API for derived class - /** - * C++ constructor - * - * Note that BaseConstructL() must be called to complete object construction. - * @param aConstructionParam Construction parameters. - */ - IMPORT_C CDiagTestPluginBase( CDiagPluginConstructionParam* aConstructionParam ); - - /** - * 2nd phase Base class constructor - * This initializes CDiagTestPluginBase class. Derived class must call this - * method in its ConstructL() method. - * - * @param aResourceFileName Drive and name of resource file in format - * : - */ - IMPORT_C void BaseConstructL( const TDesC& aResourceFileName ); - - /** - * Verify that all dependencies are satisfied. Also returns a list of - * failed dependencies. - * - * @param aEngine. Reference to engine, which provides references to - * database session and plug-in pool. - * @param aFailedUids. If ETrue is returned, the parameter is NULL. - * if EFalse is returned, the parameter points to an array that - * can be used to query UIDs of failed dependencies. Client is - * responsible of closing the array. - * @return ETrue if all dependencies are executed successfully. - * EFalse if one or more dependencies are failed. - */ - IMPORT_C virtual TBool AreDependenciesSatisfiedL( MDiagEngineCommon& aEngine, - RArray*& aFailedUids ) const; - - /** - * Check result of dependencies. This will check each dependency and - * determine the best overall result of all the dependencies. - * - * @param aEngine. Reference to engine, which provides references to - * database session and plug-in pool. - * @param aFailedUids. If ESuccess is returned, the parameter is NULL. - * Otherwise the parameter points to an array that - * can be used to query UIDs of failed dependencies. Client is - * responsible of closing the array. - * @return Result of the dependency check. If multiple depencies or suites - * are included, it will return the most appropreate result. - */ - IMPORT_C virtual CDiagResultsDatabaseItem::TResult VerifyDependenciesL( - MDiagEngineCommon& aEngine, - RArray*& aFailedUids ) const; - - /** - * Returns execution parameter. - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return Execution parameter. - */ - IMPORT_C TDiagTestExecParam& ExecutionParam(); - - /** - * Check if current test session has dependency check skip flag set. - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return ETrue if dependency check is disabled for this execution sesison. - * EFalse if dependency check is enabled. - */ - IMPORT_C TBool IsDependencyCheckSkipped() const; - - /** - * Check if current test is being executed to satisfy dependency or - * if it is being executed explicitly. - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return ETrue - If it is to satisfy dependency. - * EFalse - If it is being executed explicitly. - */ - IMPORT_C TBool IsDependencyExecution() const; - - /** - * Get custom parameter passed to from the engine - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return Custom parameter. Ownership is not transferred. - */ - IMPORT_C TAny* CustomParam() const; - - /** - * Get currently result db item builder. - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return Reference to current CDiagResultsDbItemBuilder. - */ - IMPORT_C CDiagResultsDbItemBuilder& ResultsDbItemBuilder(); - - /** - * Report test progress test observer. - * This function will call engine's TestProgressL method with watchdog - * type value that is based on plug-in RunMode. - * - * If EAutomatic plug-in, it will use EDiagEngineWatchdogTypeNonInteractive. - * If EInteractiveView or EInteractiveDialog, EDiagEngineWatchdogTypeInteractive. - * - * When watchdog is timed out, it will stop test with test result - * CDiagResultsDatabaseItem::EWatchdogCancel. - * - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @param aCurrentStep - Current execution step - */ - IMPORT_C void ReportTestProgressL( TUint aCurrentStep ); - - /** - * Reset watchdog value and watchdog failure result type. - * When watchdog is timed out, it will use the given result type as - * value to report back to engine. - * - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @param aWatchdogType - Type of watchdog requested. - * @param aResultType - Result to report when wachdog is failed. - */ - IMPORT_C void ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType, - CDiagResultsDatabaseItem::TResult aResultType ); - - /** - * Reset watchdog value and watchdog failure result type. - * For most plug-ins, the other ResetWatchdog should be better. - * This should be used only if specific time must be given for the step. - * - * When watchdog is timed out, it will use the given result type as - * value to report back to engine. - * - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @param aTimeToCompletion - Time needed to complete current operation. - * Unit is in microseconds. - * @param aResultType - Result to report when wachdog is failed. - */ - IMPORT_C void ResetWatchdog( - TInt aTimeToCompletion, - CDiagResultsDatabaseItem::TResult aResultType ); - - /** - * Reset watchdog value and watchdog failure result type to default values. - * This will also reset watchdog on engine. - * - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - */ - IMPORT_C void ResetWatchdogToDefault(); - - /** - * Report test result to test observer. - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * This function will also call StopAndCleanupL(), which will call - * DoStopAndCleanupL(). After CompleteTestL() is called, ExecutionParam() and - * other test state specific API will fail. - * - * @param aResult - Test result. - */ - IMPORT_C void CompleteTestL( CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Stop current execution and free any data associated with the test. - * This method will call DoStopAndCleanupL() function to allow - * derived class to clean up. - * - * It will also call DismissWaitingDialog() and CActive::Cancel(). - * - * If derived class overrides ExecutionStopL() function, this function - * must be called by derived version of ExecutionStopL() to allow - * proper clean up of CDiagTestPluginBase. - * - * @see CDiagTestPluginBase::ExecutionStopL - */ - IMPORT_C void StopAndCleanupL(); - - /** - * Run a dialog that waits for response. It is highly recommended that - * all plug-ins use this function to display dialogs since it can detect - * deletion of dialogs. - * - * The difference from normal dialog RunLD is that this function returns - * ETrue if dialog exited due to user response and - * EFalse if it was by other means, such as object deletion or - * by DismissWaitingDialog() method. - * - * !!!! NOTE THAT PLUG-IN MUST RETURN IMMEDIATELY WITHOUT ACCESSING !!!! - * !!!! LOCAL VARIABLE OR LOCAL FUNCITONS WHEN THIS FUNCTION RETURNS !!!! - * !!!! EFalse VALUE BECAUSE "THIS" POINTER MAY BE FREED ALREADY. !!!! - * - * The normal dialog response is returned via aDialogResponse reference. - * This function can only display one dialog at a time. Calling it again - * while it has not been returned will cause panic. - * - * @param aDialog - Pointer to dialog to run. If the dialog does not have - * EEikDialogFlagWait flag set, it will panic with EDiagPluginBaseBadArgument - * @param aDialogResponse - Response from the dialog. - * For detailed values @see avkon.hrh "CBA constants". E.g. EAknSoftkeyYes - * The only exception is that if cancel is pressed, it will be 0. - * @return ETrue if dialog is exiting due to user response. - * Efalse if dialog is dismissed withou user input. - * If EFalse is returned, plug-in MUST NOT act on the response. - * Also, since plug-in may have been deleted, - */ - IMPORT_C TBool RunWaitingDialogL( CAknDialog* aDialog, TInt& aDialogResponse ); - - /** - * Dismiss the waiting dialog. This will cause the RunDialogLD() function to return with - * aIsUserResponse = Efalse. If nothing is being displayed, this function - * does nothing. - */ - IMPORT_C void DismissWaitingDialog(); - - /** - * CCoeEnv - * @return Reference to CCoeEnv. - */ - IMPORT_C CCoeEnv& CoeEnv(); - - /** - * Check if current test is being executed as a single plugin or - * as a part of a suite - * Note that this function should be called only during test execution. - * If called in other states, it will Panic with EDiagPluginBasePanicInvalidState - * - * @return ETrue - If run as a single plugin - * EFalse - If run as a part of a suite - */ - IMPORT_C TBool SinglePluginExecution() const; - -protected: // to be implemented by derived classes - /** - * Execute test. This is called by CDiagTestPluginBase::RunTestL() - * Note that CDiagTestPluginBase takes ownership of all parameters - * given in RunTestL() function. If specific parameter is needed - * use the following set of functions: - * - * Parameters are available via the following APIs. - * Observer: ExecutionParam().Observer(); - * Engine: ExecutionParam().Engine(); - * Dependency Execution: IsDependencyExecution(); - * Skip Depdency: IsDependencyCheckSkipped(); - * Custom Parameter: CustomParam(); - * - * Also, a new instance of CDiagResultsDbItemBuilder is created and - * accessible via: - * - * Result Db Item Builder: ResultsDbItemBuilder(); - */ - virtual void DoRunTestL() = 0; - - /** - * Stop current execution and free any data associated with the test. - * This is called by StopAndCleanupL - */ - virtual void DoStopAndCleanupL() = 0; - - /** - * This is called by CDiagTestPluginBase::ExecutionStopL() to allow - * the derived class to provide additional behavior in ExecutionStopL(). - * Default implementation does nothing. For more information about - * how this is called, @see CDiagTestPluginBase::ExecutionStopL() - * - * @param aReason - Reason why ExecutionStopL() is being called. - * @param aTestResult - Test result to write to in database. - * This is IN/OUT parameter. By default, it contains default result based on - * aReason. Plug-in can provide different test result, assign new result - * to this variable. - * - */ - IMPORT_C virtual void DoExecutionStopL( MDiagTestPlugin::TStopReason aReason, - CDiagResultsDatabaseItem::TResult& aTestResult ); - -protected: // From CActive - /** - * RunError. Handle leaves from test. If test is currently running, - * CDiagTestPluginBase will handle the error by calling - * CompleteTestL( CDiagResultsDatabaseItem::EFailed ). If test was - * not running, it will return the error back to active scheduler. - * - * If this behavior is not desired, derived class should override this - * method. - * - * For parameters and return value, - * @see CActive::RunError - */ - IMPORT_C virtual TInt RunError( TInt aError ); - -protected: // from MDiagTestPlugin - /** - * Handle execution stop. - * @see MDiagTestPlugin::ExecutionStopL() - * - * This method does the following: - * a) Call DoExecutionStopL() - * b) Call StopAndCleanupL() -> Calls DoStopAndCleanupL() - * c) Return either EWatchdogCancel or ECancelled depending on - * the stop reason. - * - * Note: If derived class wants override this function, be sure to - * call StopAndCleanupL() to allow proper clean up of - * CDiagTestPluginBase class. StopAndCleanupL() will call - * DoStopAndCleanupL(). - * - * @see DoExecutionStopL() - * @see StopAndCleanupL() - */ - IMPORT_C virtual CDiagResultsDatabaseItem* ExecutionStopL( TStopReason aReason ); - -protected: // from MDiagTestPlugin - /** - * Get the name of the service that the plug-in provides. - * - * @return The name of the service. - */ - IMPORT_C virtual const TDesC& ServiceLogicalName() const; - - /** - * Get logical dependencies. One plug-in can have multiple dependencies to - * other plug-ins. - * - * @param aArray An array of logical names. - * @see ServiceLogicalNameL - */ - IMPORT_C virtual void GetLogicalDependenciesL( CPtrCArray& aArray ) const; - - /** - * Return the type of the plug-in. - * - * @return The type. - * @see TPluginType. - */ - IMPORT_C virtual TPluginType Type() const; - - /** - * Create an icon that represents the plug-in. - * - * @return An icon. - */ - IMPORT_C virtual CGulIcon* CreateIconL() const; - - /** - * @see MDiagPlugin::IsSupported - */ - IMPORT_C virtual TBool IsSupported() const; - - /** - * Get the order number that this plug-in should appear in its parent list. - * - * @return TUint order number. - */ - IMPORT_C virtual TUint Order() const; - - /** - * Get UID of the parent. - * - * @return The parent UID. - */ - IMPORT_C virtual TUid ParentUid() const; - - /** - * @see MDiagPlugin::SetDTorIdKey() - */ - IMPORT_C virtual void SetDtorIdKey( TUid aDtorIdKey ); - - /** - * Get title of the plugin. Default implementation in CDiagTestPluginBase - * will leave with KErrNotSupported. If plug-in has a title, plug-ins - * must override this method. - * @see MDiagPlugin::GetTitleL() - */ - IMPORT_C virtual HBufC* GetTitleL() const; - - /** - * Get description of the plugin. Default implementation in - * CDiagTestPluginBase will leave with KErrNotSupported. If plug-in - * has a description, plug-in must override this method. - * @see MDiagPlugin::GetDescriptionL() - */ - IMPORT_C virtual HBufC* GetDescriptionL() const; - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the operation. - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - */ - IMPORT_C virtual TAny* CustomOperationL( TUid aUid, TAny* aParam ); - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the property - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - */ - IMPORT_C virtual TAny* GetCustomL( TUid aUid, TAny* aParam ); - - /** - * Initialization Step. This method is called before any plugin are executed. - * This can be used to clean up any left over data from previous execution - * sessions. All plug-ins in execution plan will have a chance to clean - * up before any plug-ins are run. This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in will be executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. - */ - IMPORT_C virtual void TestSessionBeginL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - /** - * Cleanup Step. This method is called after all plug-ins in the - * execution plan is completed to clean up any left over data from - * current sesison. This can be used to clean up any data that - * provides dependent service created for its dependencies. - * This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in as executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. - */ - IMPORT_C virtual void TestSessionEndL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - - /** - * Execute diagnostics test. - * @see MDiagTestPlugin::RunTestL - */ - IMPORT_C virtual void RunTestL( TDiagTestExecParam* aExecParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution, - TAny* aCustomParams ); - - /** - * Suspend test. - * @see MDiagTestPlugin::SuspendL - */ - IMPORT_C virtual void SuspendL(); - - /** - * Resume test. - * @see MDiagTestPlugin::ResumeL - */ - IMPORT_C virtual void ResumeL(); - - /** - * Create test result detail. - * @see CDiagTestPluginBase::CreateDetailL - */ - IMPORT_C virtual MDiagResultDetail* CreateDetailL( - const CDiagResultsDatabaseItem& aResult ) const; - -private: // private functions - /** - * Stop and clean up CDiagTestPluginBase - */ - void BaseStopAndCleanup(); - - /** - * Utility function to get all dependent test plug-ins. If suite is found, - * it will be expanded to test plug-ins. - - * @param aEngine. Reference to engine, which provides references to - * database session and plug-in pool. - * @param aPluginList - Output array. Upon completion, it will hold - * list of test plug-ins. If this plug-in does not depend on any tests, - * it will be empty. - * Ownership of individual items are not trasferred, so ResetAndDestroy() - * must not be called. - */ - void GetAllDependentTestsL( MDiagEngineCommon& aEngine, - RPointerArray< MDiagTestPlugin >& aPluginList ) const; - - /** - * Utility function to check results of tests in array and come up with - * best overall result of tests. - * @param aPluginList - List of test plug-ins. - * @param aFailedUidList - Output array. Upon completion, it will contain - * list of uids that failed. - * @return Overall result of dependent tets. - */ - CDiagResultsDatabaseItem::TResult SummarizeOverallTestResultsL( - MDiagEngineCommon& aEngine, - const RPointerArray< MDiagTestPlugin >& aPluginList, - RArray< TUid >& aFailedUidList ) const; - - -private: // Private Data Type - // Forward declaration. - class TPrivateData; - -private: // Private Data - /** - * Plug-in constructor parameter. - * Ownership: this - */ - CDiagPluginConstructionParam* iConstructionParam; - - /** - * CCoeEnv. This is needed for handling resources. - */ - CCoeEnv& iCoeEnv; - - /** - * Plug-in base's private data - */ - TPrivateData* iData; - }; - -#endif // DIAGTESTPLUGINBASE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_pool_api/diagnostics_plugin_pool_api.metaxml --- a/remotemgmt_plat/diagnostics_plugin_pool_api/diagnostics_plugin_pool_api.metaxml Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ - - - Diagnostics Plugin Pool API - This is for diagnostics App and FW communication and mainatenance of plugins - c++ - devicediagnosticsfw - - - - - - - - - no - no - - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_pool_api/group/bld.inf --- a/remotemgmt_plat/diagnostics_plugin_pool_api/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -/* -* Copyright (c) 2006 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 that exports the files belonging to -: Diagnostics Plugin Pool API -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/diagpluginpool.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagPluginPool.h) -../inc/diagpluginpoolobserver.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagPluginPoolObserver.h) diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_pool_api/inc/diagpluginpool.h --- a/remotemgmt_plat/diagnostics_plugin_pool_api/inc/diagpluginpool.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2007 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: Manages Diagnostics Plug-in -* -*/ - - -#ifndef DIAGPLUGINPOOL_H -#define DIAGPLUGINPOOL_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class MDiagPlugin; -class MDiagPluginPoolObserver; -class CDiagPluginPoolImpl; - - -/** -* Diagnostics Framework Plugin Pool Class -* -* This class is used to load Diagnostics ECom plug-ins. It works with both -* Suite Plug-in and Test Plug-in. Once loaded, it will manage the life -* cycle of the plug-ins. -* -* All loaded plug-ins will be destroyed when pool is deleted. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CDiagPluginPool ) : public CBase - { -public: - - /** - * Two-phased constructors - * - * @param aObserver Plug-in Pool observer. - * @return New instance of CDiagPluginPool - */ - IMPORT_C static CDiagPluginPool* NewL( MDiagPluginPoolObserver& aObserver ); - IMPORT_C static CDiagPluginPool* NewLC( MDiagPluginPoolObserver& aObserver ); - - /** - * Destructor - * - */ - IMPORT_C virtual ~CDiagPluginPool(); - -public: // new API - - /** - * Loads all plug-ins. Progress is notified via MDiagPluginPoolObserver. - * - * @param aUid - Interface Uid to load. - */ - IMPORT_C void LoadAsyncL( TUid aUid ); - - /** - * Create an instance of a plug-in. It can be a test plug-in or suite plug-in. - * If this is a suite, it will not have its children associated with it since - * will require children to be loaded as well. - * - * Plug-ins created using this method is not part of plug-in pool. Therefore - * client must manage the life cycle of the plug-in. - * - * @param aUid - Implementation Uid of plug-in. - * @return Newly instantiated plug-in. Ownership is transferred to caller. - */ - IMPORT_C static MDiagPlugin* CreatePluginL( TUid aUid ); - - /** - * Cancel Plug-in Loading - * This method cancels plug-in loading. If it was not currently loading - * plug-ins, it will leave with KErrNotReady - */ - IMPORT_C void CancelLoadPluginsL(); - - /** - * Find Plug-in that matches given Uid. - * - * @param aUid Uid of plug-in to search. - * @param aPlugin Reference to Plugin found. Engine owns this plug-in. - * Client must not deallocate plug-in. - * @return TInt KErrNone - Success. - * KErrNotFound - Not found. - * KErrNotReady - Plug-ins are not yet loaded. - */ - IMPORT_C TInt FindPlugin( TUid aUid, MDiagPlugin*& aPlugin ) const; - - /** - * Find Plug-in that matches given Uid. This function will leave on error. - * Leave codes: KErrNone - Success. - * KErrNotFound - Not found. - * KErrNotReady - Plug-ins are not yet loaded. - * - * @param aUid Uid of plug-in to search. - * @return Refernce to the plug-in found. - */ - IMPORT_C MDiagPlugin& FindPluginL( TUid aUid ) const; - - /** - * Find Plug-in that matches given service name. - * - * @param aServiceName Service name of the plug-in. Name must match exactly. - * @param aPlugin Reference to Plugin found. Engine owns this plug-in. - * Client must not deallocate plug-in. - * @return TInt KErrNone - Success. - * KErrNotFound - Not found. - * KErrNotReady - Plug-ins are not yet loaded. - */ - IMPORT_C TInt FindPlugin( const TDesC& aServiceName, - MDiagPlugin*& aPlugin ) const; - - /** - * Find Plug-in that matches given service name. Will leave on error. - * Leave codes: KErrNone - Success. - * KErrNotFound - Not found. - * KErrNotReady - Plug-ins are not yet loaded. - * - * @param aServiceName Service name of the plug-in. Name must match exactly. - * @return Reference to Plugin found. - */ - IMPORT_C MDiagPlugin& FindPluginL( const TDesC& aServiceName ) const; - -private: // private constructors - - /** - * C++ Constructor - * - */ - CDiagPluginPool(); - - /** - * 2nd phase constructor - * - */ - void ConstructL( MDiagPluginPoolObserver& aObserver ); - -private: // MEMBER DATA - - /** - * iPluginPoolImpl - Acutal implementation of CDiagPluginPool - * Owns - */ - CDiagPluginPoolImpl* iPluginPoolImpl; - }; - - -#endif // DIAGPLUGINPOOL_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_pool_api/inc/diagpluginpoolobserver.h --- a/remotemgmt_plat/diagnostics_plugin_pool_api/inc/diagpluginpoolobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2007 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: Observer interface to use with CDiagPluginPool -* -*/ - - -#ifndef DIAGPLUGINPOOLOBSERVER_H -#define DIAGPLUGINPOOLOBSERVER_H - -// INCLUDES -#include // TUid -#include // TInt - -// FORWARD DECLARATIONS -class MDiagPlugin; - -/** -* Diagnostics Framework Plugin Pool Observer -* -* This interface is called by CDiagPluginPool to notify the plug-in -* loading progress. This is used only for LoadAsyncL() scenario. -* -* @since S60 v5.0 -*/ -class MDiagPluginPoolObserver - { -public: - - /** - * Notify client of plug-in loading progress. - * - * @param aCurrPlugin Current plugin index in loading process. - * Use it to display loading progress. - * @param aPluginCount Totals number of plug-ins - * @param aLoadedPluginUid Uid of the plug-in just loaded. - */ - virtual void LoadProgressL( TUint aCurrentPlugin, - TUint aPluginCount, - const TUid& aLoadedPluginUid ) = 0; - - - /** - * Notify client of plug-in loading completion - * - * @param aError KErrNone - Success - * KErrCorrupt - One ore more plugin could not - * be loaded. - * KErrNoMemory - Not enough memory. - */ - virtual void LoadCompletedL( TInt aError ) = 0; - }; - - -#endif // DIAGPLUGINPOOLOBSERVER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_utility_api/diagnostics_plugin_utility_api.metaxml --- a/remotemgmt_plat/diagnostics_plugin_utility_api/diagnostics_plugin_utility_api.metaxml Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ - - - Diagnostics Plugin Utility API - Utility functions mainly used by the plugins. - c++ - devicediagnosticsfw - - - - - - - - - no - no - - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_utility_api/group/bld.inf --- a/remotemgmt_plat/diagnostics_plugin_utility_api/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -/* -* Copyright (c) 2006 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 that exports the files belonging to -: Diagnostics Plugin Utility API -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/diaglogeventeraser.h MW_LAYER_PLATFORM_EXPORT_PATH(diaglogeventeraser.h) -../inc/diagcommondialog.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagCommonDialog.h) -../inc/diagnetworkregstatuswatcher.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagNetworkRegStatusWatcher.h) -../inc/diagpluginwaitingdialogwrapper.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagPluginWaitingDialogWrapper.h) -../inc/diaglogeventeraserobserver.h MW_LAYER_PLATFORM_EXPORT_PATH(diaglogeventeraserobserver.h) -../inc/diagnetworkregstatusobserver.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagNetworkRegStatusObserver.h) diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_utility_api/inc/diagcommondialog.h --- a/remotemgmt_plat/diagnostics_plugin_utility_api/inc/diagcommondialog.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 2007 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: List of common dialog types -* -*/ - - -#ifndef DIAGCOMMONDIALOG_H -#define DIAGCOMMONDIALOG_H - - -/** -* Diagnostics Common Dialog Types -* -* This is a list of common dialogs that can be used by plug-ins. -* -*/ -enum TDiagCommonDialog - { - /** - * EDiagCommonDialogConfirmCancelAll - * Dialog that asks the user if all tests should be cancelled or not. - * - * aInitData: No init data needed. Always pass NULL. - * Return: Standard dialog. Use CAknDialog. - * Execution: Call RunLD(). - * RunLD() returns: - EAknSoftkeyYes, if the user confirmed the request to - * cancel all test execution. Plugins should not do - * any further execution and should return immediately. - * - EAknSoftkeyNo, if the user dismissed the dialog and - * decided not to cancel all test execution. - * - 0, if the dialog is forced closed. Generally, - * plugins should not distinguish between EAknSoftkeyNo - * and 0 (i.e., they should *only* check for - * EAknSoftkeyYes), unless there is good reason to. - * - * @code - * - * CAknDialog* dlg = ExecutionParam().Engine().CreateCommonDialogLC( - * EDiagCommonDialogConfirmCancelAll, - * NULL ); - * - * TInt result = 0; - * if ( !RunWaitingDialogL( dlg, result ) || - * result == EAknSoftkeyYes ) - * { - * // Do not continue executing. Either the dialog has been deleted - * // or the user has cancelled all execution. - * return; - * } - * - * dlg = NULL; - * - * // Loop and display the plugin query again. - * askAgain = ETrue; - * - */ - EDiagCommonDialogConfirmCancelAll = 1, - EDiagCommonDialogConfirmSkipAll =2 - }; - -#endif // DIAGCOMMONDIALOG_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_utility_api/inc/diaglogeventeraser.h --- a/remotemgmt_plat/diagnostics_plugin_utility_api/inc/diaglogeventeraser.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ -/* -* Copyright (c) 2007 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: This is the header for the Diagnostics Logs Event Eraser. -* -*/ - - -#ifndef DIAGLOGEVENTERASER_H -#define DIAGLOGEVENTERASER_H - -// Include Files -#include // CActive -#include // RFs - -// Forward Declarations -class MDiagLogEventEraserObserver; -class CActiveSchedulerWait; -class CLogClient; -class CLogViewEvent; -class CLogFilter; - -/** -* Diagnostics Plugin Log Event Eraser -* -* This class is used to remove log events generated by diagnostics plugins. -* Events could be anything that is logged by the system log, such as call or -* data use records. -* -* @lib euser.lib -* @lib logcli.lib -* @lib efsrv.lib -* @lib flogger.lib -*/ -NONSHARABLE_CLASS( CDiagLogEventEraser ) : public CActive - { - -public: // New functions - - /** - * Symbian OS two-phase constructor. - * - * @param aObserver A reference to the observer for this event eraser. - * @param aFilter The filter to be used for log erasure. Clients may pass - * NULL for no filtering. Ownership is transferred. - * @return An pointer to the new instance of CDiagLogEventEraser. - */ - IMPORT_C static CDiagLogEventEraser* NewL( - MDiagLogEventEraserObserver& aObserver, - CLogFilter* aFilter = NULL ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagLogEventEraser(); - - /** - * This gets the filter used for the log erasure. Clients which want to - * filter the logs to be erased must call this function and set the - * appropriate filter before calling StartAsyncEraseLogsL or EraseLogsL. - * - * @return The filter to apply to the logs to check for erasure. - */ - IMPORT_C CLogFilter& Filter(); - - /** - * This gets the log client used for the log erasure. - * - * @return The log client used for log erasure. - */ - IMPORT_C CLogClient& LogClient(); - - /** - * This starts an asynchronous log erase operation. The completion of this - * request is notified by MDiagLogEventEraserObserver::CompleteEventEraseL. - */ - IMPORT_C void StartAsyncEraseLogsL(); - - /** - * This performs a synchronous log erase operation. The function will - * leave if there is any error in log erasure. - */ - IMPORT_C void EraseLogsL(); - - -private: // New functions - - /** - * C++ default constructor. - * - * @param aObserver A reference to the observer for this event eraser. - * @param aFilter The filter to be used for log erasure. If NULL is - * passed, a new filter will be created during the second - * phase of construction. Ownership is transferred. - */ - CDiagLogEventEraser( MDiagLogEventEraserObserver& aObserver, - CLogFilter* aFilter ); - - /** - * Symbian OS default constructor. - */ - void ConstructL(); - - /** - * Handles the completion of log erasing and performs different operations - * depending on whether the erasing was asynchronous or not. - */ - void HandleCompletionL( TInt aError ); - - -private: // From base class CActive - - /** - * Handle active object completion event. - */ - virtual void RunL(); - - /** - * Handle active object cancel event. - */ - virtual void DoCancel(); - - -private: // Data - - /** The state of the log erasing operation. */ - enum TDiagLogEventEraserState - { - EStateInitial = 0, - EStateApplyingFilter, - EStateReadingEntries, - EStateDeletingEntry, - EStateComplete - }; - - /** The observer for this instance of the log event eraser. */ - MDiagLogEventEraserObserver& iObserver; - - /** The active scheduler, used for synchronous log erasure. Own. */ - CActiveSchedulerWait* iWaitScheduler; - - /** The Log client. Own. */ - CLogClient* iLogClient; - - /** The Log view. Own. */ - CLogViewEvent* iLogView; - - /** The Log filter. Own. */ - CLogFilter* iLogFilter; - - /** A file server session used to delete the logs. */ - RFs iFsSession; - - /** The internal state of the log event eraser. */ - TDiagLogEventEraserState iState; - - /** Indicates if the log event eraser is running a synchronous delete. */ - TBool iIsDeletingSynchronous; - - /** The return code for syncronous operation. */ - TInt iError; - }; - -#endif // DIAGLOGEVENTERASER_H - -// End of File diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_utility_api/inc/diaglogeventeraserobserver.h --- a/remotemgmt_plat/diagnostics_plugin_utility_api/inc/diaglogeventeraserobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2007 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: This is the header for the Diagnostics Logs Event Eraser -* Observer class, which clients implement to receive events -* from the Event Eraser. -* -*/ - - -#ifndef DIAGLOGEVENTERASEROBSERVER_H -#define DIAGLOGEVENTERASEROBSERVER_H - -// Forward Declarations -class CLogEvent; - -/** -* Diagnostics Plugin Log Event Eraser Observer -* -* This is a pure virtual class that clients of the Event Eraser must implement -* to receive callbacks from the Log Event Eraser. -*/ -class MDiagLogEventEraserObserver - { - -public: // New functions - - /** - * This function is called to check if the log event needs to be deleted. - * - * @param aEvent The event to check. - * @return ETrue if the log event should be deleted, EFalse otherwise. - */ - virtual TBool IsEventToBeDeleted( const CLogEvent& aEvent ) = 0; - - /** - * This function is called to notify that the erase operation is complete. - * - * @param aError Error code to indicate erase failure, or KErrNone. - */ - virtual void CompleteEventEraseL( TInt aError ) = 0; - - }; - -#endif // DIAGLOGEVENTERASEROBSERVER_H diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_utility_api/inc/diagnetworkregstatusobserver.h --- a/remotemgmt_plat/diagnostics_plugin_utility_api/inc/diagnetworkregstatusobserver.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2007 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: This is the header for the Diagnostics Network registration -* status observer interface -* -*/ - - -#ifndef DIAGNETWORKREGSTATUSOBSERVER_H -#define DIAGNETWORKREGSTATUSOBSERVER_H - -/** -* Diagnostics Plugin Network registration status observer interface -* -* This is an abstract class which plugins must derive and implement to receive -* call-backs from the Diagnostics Network registration status observer. -*/ -class MDiagNetworkRegStatusObserver - { -public: - /** - * This function is used to inform the intial network registration status - * - * @param aRegistered. - * ETrue :The device is currently registered on the network - * EFalse:The device is currently not registered on the network. - */ - virtual void InitialNetworkRegistrationStatusL( const TBool& aRegistered ) = 0; - - /** - * This interface is used to inform the clients of any changes in the network registration - * status - * - * @param aRegistered - * ETrue :The device has now changed to registered status. - * EFalse:The device has now lost network coverage. - */ - virtual void NetworkRegistrationStatusChangeL( const TBool& aRegistered ) = 0; - }; - -#endif // DIAGNETWORKREGSTATUSOBSERVER_H - -//End of file - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_utility_api/inc/diagnetworkregstatuswatcher.h --- a/remotemgmt_plat/diagnostics_plugin_utility_api/inc/diagnetworkregstatuswatcher.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2007 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: This is the header for the Diagnostics Network registration -* status watcher. -* -*/ - - -#ifndef DIAGNETWORKREGSTATUSWATCHER_H -#define DIAGNETWORKREGSTATUSWATCHER_H - -// Include files -#include // CActive -#include // CTelephony - -//Forward declaration -class MDiagNetworkRegStatusObserver; - - -/** -* Diagnostics Network registration status watcher -* -* This class can be used as an observer for network status. After -* instantiating the class and calling StartObserver(), the class firstly -* informs the client of the current registration status and then goes into -* an observing mode for any changes in the network registration status. -* -*/ -class CDiagNetworkRegStatusWatcher : public CActive - { -public: - - /** - * Symbian OS constructor. - * - * @param aCallBack A reference to the callback for this network - registration status watcher - * @return An pointer to the new instance of CDiagNetworkRegStatusWatcher. - */ - IMPORT_C static CDiagNetworkRegStatusWatcher* NewL( - MDiagNetworkRegStatusObserver& aCallBack ); - - /** - * Default C++ virtual destructor - */ - IMPORT_C virtual ~CDiagNetworkRegStatusWatcher(); - - /** - * This function is used by client to start the watcher. Firstly, the - * watcher will inform the clients via call - * MDiagNetworkRegStatusObserver::InitialNetworkRegistrationStatusL() - * and then go into an observing mode for any changes in the network - * registration status. The changes status is informed via - * MDiagNetworkRegStatusObserver::NetworkRegistrationStatusChangeL() - */ - IMPORT_C void StartObserver(); - - - /** - * This function is used by client to stop the observer. - */ - IMPORT_C void StopObserver(); - -private: - - /** - * C++ constructor. - * - * @param aCallBack A reference to the callback for Network - * registration status observer - */ - CDiagNetworkRegStatusWatcher( MDiagNetworkRegStatusObserver& - aCallBack ); - - /** - * Symbian C++ 2nd phase constructor. - * - */ - void ConstructL(); - -private: // From base class CActive - - /** - * Handle active object completion event. - */ - virtual void RunL(); - - /** - * Handle active object cancel event. - */ - virtual void DoCancel(); - -private: // private functions - - /** - * Handler for the internal state EStateWaitForInitialStatus - */ - void HandleInitialStatusL(); - - /** - * Handler for the internal state EStateWaitForStatusChange - */ - void HandleNetworkStatusChangeL(); - - /** - * This function wraps the logic to decide if the device is currently - * registered or not. - * - * @return ETrue if the devide is registered, EFalse if the device is - * not registered. - */ - TBool IsDeviceRegisteredOnNetwork(); - -private: - - /** States of the Network registration status watcher */ - enum TDiagNetwRegStatusWatcherState - { - EStateInit = 0, - EStateWaitForInitialStatus, - EStateWaitForStatusChange, - EStateStopping - }; - - /** variable to store the internal state of the network registration - * status watcher - */ - TDiagNetwRegStatusWatcherState iState; - - /** Interface to phone's telephony system. Own. */ - CTelephony* iTelephony; - - /** Defines the current network registration status */ - CTelephony::TNetworkRegistrationV1 iRegV1; - - /** A typedef'd packaged CTelephony::TNetworkRegistrationV1 for - passing through a generic API method. */ - CTelephony::TNetworkRegistrationV1Pckg iRegV1Pckg; - - /** The callback interface for this instance of Network - registration status observer */ - MDiagNetworkRegStatusObserver& iCallBack; - - /** This variable remembers whether in previous state the - * the device was registered or not - */ - TBool iPreviouslyRegistered; - }; - -#endif // DIAGNETWORKREGSTATUSWATCHER_H - -//End of file - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_plugin_utility_api/inc/diagpluginwaitingdialogwrapper.h --- a/remotemgmt_plat/diagnostics_plugin_utility_api/inc/diagpluginwaitingdialogwrapper.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/* -* Copyright (c) 2007 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: Provides wrapper for waiting dialogs. -* -*/ - - -#ifndef DIAGPLUGINWAITINGDIALOGWRAPPER_H -#define DIAGPLUGINWAITINGDIALOGWRAPPER_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class CAknDialog; - -/** -* Diagnostics Plugin Waiting Dialog Wrapper. -* -* This class provides a wrapper for executing dialogs. The only functionality -* it adds is that it provides a way for the caller to find out whether -* the dialog was dismissed by the user response, or by application deletion. -* -* @since S60 v5.0 -*/ -class CDiagPluginWaitingDialogWrapper : public CBase - { -public: // new API - /** - * Two-phased constructor. - * - * @param - aWaitingDialog. Pointer to dialog to display. Note that - * it must be a dialog with EEikDialogFlagWait set. Otherwise, it - * will panic with EDiagPluginBasePanicBadArgument - * Ownership is transferred to the wrapper. - * @return - New instance of CDiagPluginWaitingDialogWrapper - */ - IMPORT_C static CDiagPluginWaitingDialogWrapper* NewL( CAknDialog* aWaitingDialog ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagPluginWaitingDialogWrapper(); - - /** - * Run a dialog that waits for response. - * - * To dismiss the dialog, simply delete CDiagPluginWaitingDialogWrapper instance. - * - * The difference from normal dialog RunLD is that this function returns - * ETrue if dialog exited due to user response and - * EFalse if the object was deleted. - * - * !!!! NOTE THAT PLUG-IN MUST RETURN IMMEDIATELY WITHOUT ACCESSING !!!! - * !!!! LOCAL VARIABLE OR LOCAL FUNCITONS WHEN THIS FUNCTION RETURNS !!!! - * !!!! EFalse VALUE BECAUSE "THIS" POINTER MAY BE FREED ALREADY. !!!! - * - * The normal dialog response is returned via aDialogResponse parameter. - * - * @param aDialogResponse - Response from the dialog. - * For detailed values @see avkon.hrh "CBA constants". E.g. EAknSoftkeyYes - * The only exception is that if cancel is pressed, it will be 0. - * @return ETrue if dialog is exiting due to user response. - * Efalse if dialog is dismissed without user input. - * If EFalse is returned, plug-in MUST NOT act on the response. - */ - IMPORT_C TBool RunLD( TInt& aDialogResponse ); - -private: // private interface - /** - * C++ Constructor - * - * @param - aWaitingDialog. Pointer to dialog to display. Note that - * it must be a dialog with EEikDialogFlagWait set. Otherwise, it - * will panic with EDiagPluginBasePanicBadArgument - * Ownership is transferred to the wrapper. - */ - CDiagPluginWaitingDialogWrapper( CAknDialog* aWaitingDialog ); - -private: // Private Data - /** - * Pointer to the dialog being displayed. - * Ownership: Shared. Normally, dialog will dismiss itself. However, - * if plug-in is being deleted, it can be deleted by the plug-in as well. - */ - CAknDialog* iWaitingDialog; - - /** - * Indicates whether this class is deleted by caller. - * Ownership: Not owned. Normally, it will point to a stack entry. - */ - TBool* iIsObjectDeletedPtr; - }; - -#endif // DIAGTESTPLUGINBASE_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_results_api/diagnostics_results_api.metaxml --- a/remotemgmt_plat/diagnostics_results_api/diagnostics_results_api.metaxml Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ - - - Diagnostics results API - An API for storing and handling test case/session results. - c++ - devicediagnosticsfw - - - - - - - - - no - no - - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_results_api/group/bld.inf --- a/remotemgmt_plat/diagnostics_results_api/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2006 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 that exports the files belonging to -: Diagnostics results API -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/diagresultdetailbasic.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagResultDetailBasic.h) -../inc/diagresultsdbitembuilder.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagResultsDbItemBuilder.h) -../inc/diagresultsdbrecordengineparam.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagResultsDbRecordEngineParam.h) -../inc/diagresultsdatabase.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagResultsDatabase.h) -../inc/diagresultdetail.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagResultDetail.h) -../inc/diagresultsdatabasetestrecordinfo.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagResultsDatabaseTestRecordInfo.h) -../inc/diagresultsdatabaseitem.h MW_LAYER_PLATFORM_EXPORT_PATH(DiagResultsDatabaseItem.h) diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_results_api/inc/diagresultdetail.h --- a/remotemgmt_plat/diagnostics_results_api/inc/diagresultdetail.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2007 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: Diagnostics Detail Test Result Interface -* -*/ - - -#ifndef DIAGRESULTDETAIL_H -#define DIAGRESULTDETAIL_H - -// INCLUDES -#include // RBuf - -// FORWARD DECLARATIONS -class CGulIcon; - - -/** -* Diagnostics Framework Test Result Details -* -* This interface allows application to query addtional information about -* Diagnostics Test Result. -* -* @since S60 v5.0 -*/ -class MDiagResultDetail - { -public: - /** - * Possible Output Formats. - */ - enum TOutputFormat - { - EGetMoreInfo, // Human readable text format. - ECorrectionUrl, // URL for correction - ECorrectionUrlCaption // Caption for the correction URL. - }; - - /** - * Get list of supported output - * - * @param aOutputList - Returns supported output formats - */ - virtual void GetSupportedOutput( RArray& aOutputList ) const = 0; - - /** - * Check if a given output format is supported. - * - * @param aOutputFormat - Possible output formate. - * @return ETrue if supported. EFalse otherwise. - */ - virtual TBool IsOutputSupported( TOutputFormat aOutputFormat ) const = 0; - - /** - * Output current result to a specified format. - * - * @param aFormat Format of desired output. - * @param aBuffer Output buffer. - */ - virtual void GetOutputL( TOutputFormat aFormat, RBuf& aBuffer ) const = 0; - - /** - * Create an icon. Icon can be created based on the results of the test. - * - * @return An icon that matches the result of the test. - **/ - virtual CGulIcon* CreateIconL() const = 0; - - /** - * Externalize to CBufFlat. This will be how the data will be stored in the - * CDiagResultsDatabaseItem - * - * @return CBufFlat containing the externalized data. Ownership is passed - * to the caller. - **/ - virtual CBufFlat* ExternalizeToBufferL() const = 0; - - /** - * C++ Virtual destructor. Virtual destructor must be defined to make sure - * that correct destructor is called. - * - **/ - virtual ~MDiagResultDetail() {}; - }; - -#endif // DIAGRESULTDETAIL_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_results_api/inc/diagresultdetailbasic.h --- a/remotemgmt_plat/diagnostics_results_api/inc/diagresultdetailbasic.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,208 +0,0 @@ -/* -* Copyright (c) 2007 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: Basic Diagnostics Test Result Detail class -* -*/ - - -#ifndef DIAGRESULTDETAILBASIC_H -#define DIAGRESULTDETAILBASIC_H - -// INCLUDES -#include // CBase -#include // MDiagResultDetail -#include // CDiagResultsDatabaseItem::TResult - -// FORWARD DECLARATIONS -class CDiagResultDetailBasicItem; - - -// CONSTANTS -const TInt KDiagResultDetailBasicVersion = 1; // verion of data format. - -/** -* Diagnostics Result Database Detail class. -* -* This class provides implementation of MDiagResultDetail -* with commonly used methods. -* -* @since S60 v5.0 -*/ -class CDiagResultDetailBasic : public CBase, - public MDiagResultDetail - { -public: - /** - * Constructor. - * - * @param aResult - Test Result - */ - IMPORT_C CDiagResultDetailBasic( - CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagResultDetailBasic(); - - /** - * Externalize to a stream - * - * @param aWriteStream - stream to write to. - */ - IMPORT_C void ExternalizeL( RWriteStream& aWriteStream ) const; - - /** - * Update result value - * - * @param aResult - Test result - */ - IMPORT_C void SetResult( CDiagResultsDatabaseItem::TResult aResult ); - -protected: // Interface for Derived class - /** - * Set data to a field. This function sets a value to a field. - * If data already exists at the same field id, new data will - * over write the old value at the same field. - * - * @param aFieldId - Unique ID to identify the data. - * @param aFieldName - Name of the field. This only for a - * reference. - * @param aValue - Value to set. This can be a TInt, - * const TDesC8& or const TDesC16&. - */ - IMPORT_C void SetValueL( TInt aFieldId, - const TDesC8& aFieldName, - TInt aValue ); - IMPORT_C void SetValueL( TInt aFieldId, - const TDesC8& aFieldName, - const TDesC8& aValue ); - IMPORT_C void SetValueL( TInt aFieldId, - const TDesC8& aFieldName, - const TDesC16& aValue ); - - /** - * Get value. If invalid aFieldId is passed, or type does not - * match, function will leave with KErrArgument. - * - * @param aFieldId - Unique id that identifies the data. Same - * value used in SetValueL function. - * @param aValue - Output paramater. The data will be stored - * here. - * @return KErrNone if successful. If not found KErrNotFound. - * If type does not match, KErrArgument. - */ - IMPORT_C TInt GetValue( TInt aFieldId, TInt& aValue ) const; - IMPORT_C TInt GetValue( TInt aFieldId, TPtrC8& aValue ) const; - IMPORT_C TInt GetValue( TInt aFieldId, TPtrC16& aValue ) const; - -public: // from MDiagResultDetail - /** - * Get list of supported output - * - * @param aOutputList - Returns supported output formats - */ - IMPORT_C virtual void GetSupportedOutput( - RArray& aOutputList ) const; - - /** - * Check if a given output format is supported. - * - * @param aOutputFormat - Possible output formate. - * @return ETrue if supported. EFalse otherwise. - */ - IMPORT_C virtual TBool IsOutputSupported( TOutputFormat aOutputFormat ) const; - - /** - * Output current result to a specified format. - * - * @param aFormat Format of desired output. - * @param aBuffer Output buffer. - */ - IMPORT_C virtual void GetOutputL( TOutputFormat aFormat, RBuf& aBuffer ) const; - - /** - * Create an icon. Icon can be created based on the results of the test. - * - * @return An icon that matches the result of the test. - **/ - IMPORT_C virtual CGulIcon* CreateIconL() const; - - /** - * Externalize to a CBufFlat. - * @see MDiagResultDetail::ExternalizeToBufferL - */ - IMPORT_C CBufFlat* ExternalizeToBufferL() const; - -protected: - /** - * BaseConstructL - * - * @param aReadStream - Initialize from a stream. - */ - IMPORT_C void BaseConstructL( RReadStream& aReadStream ); - - /** - * BaseConstructL - * - * @param aBuffer - Buffer to initialize from - */ - IMPORT_C void BaseConstructL( const CBufFlat& aBuffer ); - - -private: // internal methods - /** - * InternalizeL - * - * @param aReadStream - Initialize from a stream. - */ - void InternalizeL( RReadStream& aReadStream ); - - /** - * Insert a new item. This function will delete the old item if item with - * same field id already existsed. - * - * @param aNewItem - new item to set - */ - void SetItemL( CDiagResultDetailBasicItem* aNewItem ); - - /** - * Find item by field id - * - * @param - Field id to look up. - * @return - Index in iFields array if look up is successful. - * Return value is negative if look up fails. - */ - TInt FindItem( TInt aFieldId ) const; - - -private: // DATA - /** - * Test result. - */ - CDiagResultsDatabaseItem::TResult iResult; - - /** - * List of fields it contains. - * All items are owned by this class. - */ - RPointerArray iFields; - }; - - - -#endif // DIAGRESULTDETAILBASIC_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_results_api/inc/diagresultsdatabase.h --- a/remotemgmt_plat/diagnostics_results_api/inc/diagresultsdatabase.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,520 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Results database client interfaces. -* Provides results database session and subsession. -* libraries : DiagResultsDatabase.lib DiagResultsDatabase.dll -* -*/ - - -#ifndef DIAGNOSTICS_RESULTS_DATABASE_CLIENT_H -#define DIAGNOSTICS_RESULTS_DATABASE_CLIENT_H - -#include - -class CDiagResultsDatabaseItem; -class TDiagResultsDatabaseTestRecordInfo; -class CDiagResultsDbRecordEngineParam; - -/** -* Diagnostics Results Database. Stores test results and more information. -* Provides methods to retrieve and fetch new data. -* Requires ReadDeviceData and WriteDeviceData capabilities even if the -* session does not write anything. -* -* Results database is a permanent file store based solution. -* Database files are stored under WINSCW\C\private\10282cd9 in emulator -* environment. -* -* It is recommended to have only one open RDiagResultsDatabase per thread. -* There should be only one writer and multiple readers at the same time -* accessing the same database file. It is possible that there are multiple -* DB files for example when there are two diagnostics applications in the -* system. -* -* @since S60 v5.0 -**/ -class RDiagResultsDatabase : public RSessionBase - { -public: - - /** - * Constructor - **/ - IMPORT_C RDiagResultsDatabase(); - - /** - * Destructor - **/ - IMPORT_C ~RDiagResultsDatabase(); - - /** - * Connect to the results database to a DB file. This must be called before - * trying to use this class, otherwise KERN-EXEC 0 will crash your app. - * Only one RDiagResultsDatabase connection is recommended per application, - * because server sessions consume significant amount of system resources. - * Share the session inside your thread! Subsessions are much more lighter. - * - * Calling connect creates the DB file inside server's private directory. - * If for some reason database is corrupted, the DB file should be deleted - * manually. - * - * @param aAppUid Unique identifier of the application. Each application has - * its own store. Applications can access to another - * applications's database if they know their UID. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. If calling process does not have access rights, - * KErrPermissionDenied is returned. ReadDeviceData+WriteDeviceData are - * required. KErrDiskFull is returned if there is not enough space - * on c-drive. - **/ - IMPORT_C TInt Connect( TUid aAppUid ); - - /** - * Close the session with the server. Handle is not valid anymore. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt Close(); - - /** - * Returns the version number of the server. - * - * @return The version number. - **/ - IMPORT_C TVersion Version() const; - - /** - * Get the current number of test records in the database. - * - * @param aCount the number of records. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetRecordCount ( TUint& aCount ) const; - - /** - * Returns the maximum number of records for each application. The number - * is defined in the central repository and it is static for all applications. - * It is guarenteed that the DB file contains only the maxsize records and - * not more. Old test records are deleted when new test records are - * completed. - * - * @param aMaxSize The maximum number of test records. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C static TInt GetDatabaseMaximumSize( TInt& aMaxSize ); - - /** - * Returns an array of record Ids. The oldest records are at the beginning - * of the array. Test record are sorted based on creation time. - * - * @param aSortedRecordUidArray An array of UIds. The array is sorted - * based on time. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetRecordUids ( CArrayFixFlat& aSortedRecordUidArray ) const; - - /** - * Returns id to last test record. The last record cannot be - * still open for writing! Test record are sorted based on creation time. - * - * @param aRecordUid Unique identifier of the record. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. Returns KErrNotFound if there are no records. - **/ - IMPORT_C TInt GetLastRecord ( TUid& aRecordUid ) const; - - /** - * Returns id to last suspended or incompleted test record. - * The last record cannot be still open for writing! Returns KErrNotFound - * if there are no suspended or incomplete test records. - * - * @param aRecordUid Unique identifier of the record. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. Returns KErrNotFound if there are no suspended test records. - **/ - IMPORT_C TInt GetLastNotCompletedRecord ( TUid& aRecordUid ) const; - - /** - * Returns an overview from all records. - * - * @param aInfoArray returns an array of record infos. - * @see TDiagResultsDatabaseTestRecordInfo. - **/ - IMPORT_C TInt GetAllRecordInfos ( - CArrayFixFlat& aInfoArray ); - - /** - * Initiate retrieving of last results. After request is completed, - * data can be fetched using GetLastResults method. - * - * @param aUidArray An array of uid used to identify plug-ins. - * @param aStatus Completion status. - **/ - IMPORT_C void InitiateGetLastResults ( const CArrayFixFlat& aUidArray, - TRequestStatus& aStatus ); - - /** - * Cancel InitiateGetLastResults. - **/ - IMPORT_C void CancelInitiateGetLastResults () const; - - /** - * Get list of last results. Last result means that the plug-in has passed / failed - * test result. - * - * GetLastResults deletes data after this function - * is called, so InitiateGetLastResults must be called if data is needed - * again. Client is responsible for deleting the returned array. Contains - * null values if the searched uid was not found. There should be the same - * number of cells in UidArray and in the results array. - * - * @param aResults Returned results array. Client is responsible for - * deleting the array. - * - * @return KErrNotReady if this is called before InitiateGetLastResults. - */ - IMPORT_C TInt GetLastResults ( RPointerArray& aResults ) const; - - /** - * Get last (the newest) test result of a test plug-in. The algorithm searches for a - * test result that is either passed or failed. This is also asynchronous operation, - * because all records have to be browsed in worst case scenario (that is, when - * the plug-in uid is not found). Call GetLastResult when test result is needed. - * - * - * @param aTestPluginUid UID of a plug-in. - * @param aStatus Asynchronous request status. - * - */ - IMPORT_C void InitiateGetLastResult ( TUid aTestPluginUid, - TRequestStatus& aStatus ); - - - /** - * Get last result of a test plug-in. - * - * @param aItem Test result or NULL if not found. - * @retrun KErrNotReady if this is called before InitiateGetLastResult. - **/ - IMPORT_C TInt GetLastResult ( CDiagResultsDatabaseItem*& aItem ); - -private: - - /** - * Leaving version of the service functions. Look above for explanations. - **/ - void DoConnectL (TUid aAppUid); - - void DoGetRecordUidsL( CArrayFixFlat& aSortedRecordUidArray ) const; - - /* - * @see GetDatabaseMaximumSize() - */ - static void DoGetDatabaseMaximumSizeL( TInt& aMaxSize ); - - void DoGetAllRecordInfosL ( CArrayFixFlat& aInfoArray); - - void DoGetLastResultsL ( RPointerArray& aResults ) const; - - void WriteArrayIntoBufferL( const CArrayFixFlat& aUidArray ); - - void DoGetLastResultL ( CDiagResultsDatabaseItem*& aItem ); - -private: - - // Flat dynamic buffer. - CBufFlat* iBuffer; - - // is the connection already open. - TBool iOpen; - - //Buffer pointer - TPtr8 iPtr; - }; - -/** -* Sub-session to Diagnostics Results Database. This API is used to -* handle a Test record. A test record is a collection of test results. -* -* Test record is always written into the file, when updates are necessary. -* -* -* @since S60 v5.0 -**/ -class RDiagResultsDatabaseRecord : public RSubSessionBase - { -public: - - /** - * Test record status. - **/ - enum TRecordStatus - { - EOpen, // Currently open for writing. - ESuspended, // ::Suspend() is called. - ECrashed, // It was open previously, and it was not - // closed properly. - EPartiallyCompleted, // Record is completed (not resumable), but not - // all tests were completed. - ECompleted // Record is completed (not resumable), and all - // tests were completed. - }; - - /** - * Constructor - **/ - IMPORT_C RDiagResultsDatabaseRecord(); - - /** - * Destructor - **/ - IMPORT_C ~RDiagResultsDatabaseRecord(); - - /** - * Connects to a test record. There must be at least one created record. - * If the specified record is not found, KErrNotFound is returned. - * Opened test record can be modified if the test record has not been - * completed (= TestCompleted called). - * - * @param aSession open database session. - * @param aRecordId specifies the record where we want to connect. - * @param aReadOnly Indicates is the test record opened in read-only mode. - * If read-only = EFalse, the test record can overwrite - * test records that are not completed already. If - * the test record is completed it can be opened only - * in read-mode. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. Returns KErrAlreadyExists if subsession is connected. - **/ - IMPORT_C TInt Connect( RDiagResultsDatabase& aSession, - TUid aRecordId, - TBool aReadOnly ); - - /** - * Creates a new record and returns the uid of that record. - * Writes empty test record into the file. Create new record opens the record - * always in Write mode. - * - * @param aSession open database session. - * @param aRecordId a new unique identifier is returned that is used to - * identify particular test record. Client can use the record ID to access - * the same record again. - * @param aEngineParam Engine parameters. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. Returns KErrAlreadyExists if subsession is connected. - * KErrDiskFull is returned if there is not enough space on c-drive. - **/ - IMPORT_C TInt CreateNewRecord( RDiagResultsDatabase& aSession, - TUid& aRecordId, - CDiagResultsDbRecordEngineParam& aEngineParam ); - - /** - * Retrieve parameters of the diagnostics engine. These are needed in - * Suspend/Resume functionality. - * - * @param aEngineParam Engine parameters. Ownership is transferred. - * Client is responsible for deleting the object. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetEngineParam( CDiagResultsDbRecordEngineParam*& aEngineParam ) const; - - - /** - * Get record status. - * - * @param aRecordStatus The status of the record. - * @see TRecordStatus in the beginning of the class declaration. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetStatus( TRecordStatus& aRecordStatus ) const; - - /** - * Close subsession. Does not write test record into the file. - * - * @return Symbian error code or KErrNone. - **/ - IMPORT_C void Close(); - - /** - * Suspend test record. Same as complete, but the test record can be modified - * on next connect.Writes test suspend time into test record info. - * - * @return Symbian error code or KErrNone. - **/ - IMPORT_C TInt Suspend(); - - /** - * Indicates has this test record been suspended. - * @param aSuspended Returns has this test record been suspended(ETrue), - * otherwise EFalse. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt IsSuspended( TBool& aSuspended ) const; - - /** - * Returns the record UID of this subsession. - * - * @param aRecordUid Record ID of the subsession. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetTestRecordId( TUid& aRecordUid ) const; - - /** - * Write test completion time/date to the record and prevent further - * writing. Handle is still valid. However, it cannot be used for adding - * any more test results. During completion database file is cleaned up from - * old test records (limited by GetDatabaseMaximumSize method). - * - * Test completion is synchronous operation because only record handle must be - * updated (fixed size stream). - * - * @param aFullyComplete If ETrue (default), test record is completed with - * status fully completed. Otherwise the test record is - * considered partially completed. - * - * @return Symbian error code or KErrNone. KErrDiskFull is returned if there - | is not enough space on c-drive. - **/ - IMPORT_C TInt TestCompleted( TBool aFullyComplete = ETrue ); - - /** - * Indicates has this record been written into the DB file or not. - * - * @param aCompleted Has the test record been completed. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt IsTestCompleted( TBool& aCompleted ) const; - - /** - * Returns information about the record. If the record is not finalized, - * iFinishTimes contains unknown values. - * - * @param aInfo returns an overview of the test record. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetRecordInfo ( TDiagResultsDatabaseTestRecordInfo& aInfo ) const; - - /** - * Get list of test UIDs inside the test record. - * - * @param aTestUidArray An array of test uids. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - **/ - IMPORT_C TInt GetTestUids ( CArrayFixFlat& aTestUidArray ) const; - - /** - * Logs results of a test into the database including more information - * that there might be. See class CDiagResultsDatabaseItem. Result Item - * is written into the file immediately after TRequestStatus completes. - * - * @param aResultItem This structure is stored into the database. - * Client is responsible for creating the object. Also client is responsible - * for setting item's values. - * - * @param aStatus Asynchronous status. Completes when process is finished. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. Returns KErrAlreadyExists if record is already completed. - * KErrDiskFull is returned if there is not enough space on c-drive. - * If KErrDiskFull is received, the test result is not logged. - * - **/ - IMPORT_C TInt LogTestResult ( TRequestStatus& aStatus, - const CDiagResultsDatabaseItem& aResultItem ); - - /** - * Cancel LogTestResult. Server continues to write result item into the DB. - * Cancelling only completes client's request. - **/ - IMPORT_C void CancelLogTestResult() const; - - /** - * Get single test result from this test record identified by an uid. - * - * @param aPluginUid Unique identifier of the plug-in whose results are needed. - * @param aResultItem Contains test results. - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes.KErrNotFound is returned if the plug-in is not found - * from the record. - **/ - IMPORT_C TInt GetTestResult ( TUid aPluginUid, - CDiagResultsDatabaseItem*& aResultItem ) const; - - /** - * Get all test results inside the test record. Client is responsible for - * reseting/destroying the array. - * - * @param aResultsArray Returns test results for this record. - * - * @return KErrNone, if successful, otherwise one of the other system-wide - * error codes. - */ - IMPORT_C TInt GetTestResults ( RPointerArray& aResultsArray ) const; - -private: - - /** - * Leaving version of the functions and helper functions. - **/ - void DoConnectL ( RDiagResultsDatabase& aSession, - TUid aRecordId, - TBool aReadOnly ); - - void DoCreateNewRecordL ( RDiagResultsDatabase& aSession, TUid& aRecordId, - CDiagResultsDbRecordEngineParam& aEngineParam ); - - void DoGetTestUidsL ( CArrayFixFlat& aTestUidArray ) const; - - void DoLogTestResultL ( TRequestStatus& aStatus, - const CDiagResultsDatabaseItem& aResultItem ); - - void DoGetTestResultsL ( RPointerArray& aResultsArray ) const; - - void DoGetTestResultL ( TUid aPluginUid, CDiagResultsDatabaseItem*& aResultItem ) const; - - void WriteDatabaseItemIntoBufferL( const CDiagResultsDatabaseItem& aResultItem ); - - void WriteEngineParamIntoBufferL( CDiagResultsDbRecordEngineParam& aEngineParam ); - - void DoGetEngineParamL( CDiagResultsDbRecordEngineParam*& aEngineParam ) const; - -private: - - // Dynamic flat buffer. - CBufFlat* iBuffer; - - // Is the connection already open. - TBool iOpen; - - //Buffer pointer - TPtr8 iPtr; - }; - -#endif // DIAGNOSTICS_RESULTS_DATABASE_CLIENT_H - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_results_api/inc/diagresultsdatabaseitem.h --- a/remotemgmt_plat/diagnostics_results_api/inc/diagresultsdatabaseitem.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,241 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Results database item -* -*/ - - -#ifndef DIAGRESULTSDATABASEITEM_H -#define DIAGRESULTSDATABASEITEM_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class RWriteStream; -class RReadStream; -class TTime; -class TStreamId; -class CStreamStore; -class CBufFlat; - -/** -* Results database item. -* -* @since S60 v5.0 -**/ -class CDiagResultsDatabaseItem : public CBase - { -public: - /** - * Result of test. - */ - enum TResult - { - ESuccess = 0, - EFailed, // Test failed - ESkipped, // Test was never executed because it was skipped - // before it is started. (e.g. during initial delay timer) - ECancelled, // Test session was cancelled. ( ECancelAll ) - EInterrupted, // Interrupted. Test was already running, but interrupted - // by end user, or other external cause. - ENotPerformed, // Not performed due to invalid set up. - EDependencyFailed, // Failed because dependent test failed. - EWatchdogCancel, // Watchdog cancelled testing. - ESuspended, // Test is scheduled to run later. - EQueuedToRun, // Test is waiting for execution. It is possible that - // EQueuedToRun is never overwritten. - EDependencySkipped // Skipped because common dependency was not executed - // either due to it was skipped or interrupted. - }; - -public: - - /** - * NewL. Construct from a stream. - * @param aStream Stream to read from. - */ - IMPORT_C static CDiagResultsDatabaseItem* NewL ( RReadStream& aStream ); - - /** - * NewL. - */ - IMPORT_C static CDiagResultsDatabaseItem* NewL ( - TUid aTestUid, - TBool aDependencyExecution, - TResult aResult, - TTime aStartTime, - TTime aEndTime, - CBufFlat* aDetailsData ); - /** - * NewLC. - */ - IMPORT_C static CDiagResultsDatabaseItem* NewLC ( - TUid aTestUid, - TBool aDependencyExecution, - TResult aResult, - TTime aStartTime, - TTime aEndTime, - CBufFlat* aDetailsData ); - - /** - * NewL. Copy constructor. This will do a deep copy. - * - * @param aOriginal - Original to copy data from. - * @return a new instance of CDiagResultsDatabaseItem that is a deep - * copy of the original given. Ownership is transferred. - */ - IMPORT_C static CDiagResultsDatabaseItem* NewL ( - const CDiagResultsDatabaseItem& aOriginal ); - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagResultsDatabaseItem(); - - /** - * Get Uid of test plug-in. - * - * @return TUid - uid of the test plug-in. - */ - IMPORT_C TUid TestUid() const; - - /** - * Whether the test was executed to satisfy dependency or not. - * - * @return ETrue if executed as dependency. - * EFalse otherwise. - */ - IMPORT_C TBool WasDependency() const; - - /** - * Get Test Result. - * - * @return TResult. - */ - IMPORT_C TResult TestResult() const; - - /** - * Time that test execution was started. - * Universal time is used. - * - * @return Time that execution was started. - */ - IMPORT_C TTime TimeStarted() const; - - /** - * Time that test execution was completed. - * Universal time is used. - * - * @return Time that execution was completed. - */ - IMPORT_C TTime TimeCompleted() const; - - /** - * Details data. This must be interpreted by the plug-ins before - * it can be used. Data is in object form. - */ - IMPORT_C const CBufFlat* DetailsData() const; - - /** - * Calculate stream size in bytes. Size can be used to evaluate needed - * stream size. - * - * @return Size in bytes. - */ - IMPORT_C TInt Size() const; - -public: - - /** - * Externalize the test result to a stream. - * - * @param aStream Stream to write to. - */ - IMPORT_C void ExternalizeL( RWriteStream& aStream ) const; - - -private: //internalization methods - - /** - * Internalize the test result from a stream. - * - * @param aStream Stream to read from. - */ - IMPORT_C void InternalizeL( RReadStream& aStream ); - - /** - * Write TTime into write stream. - * - * @param aStream Stream to write to. - * @param aTime TTime that is written into the stream. - **/ - void WriteTimeToStreamL( RWriteStream& aStream, const TTime& aTime ) const; - - /** - * Read TTime from read stream. - * - * @param aStream read stream. - * @param aTime Contains time after stream is read. - **/ - void ReadTimeFromStreamL( RReadStream& aStream, TTime& aTime ); - -private: - - /** - * C++ Constructors. - */ - CDiagResultsDatabaseItem ( - TUid aTestUid, - TBool aDependencyExecution, - TResult aResult, - TTime aStartTime, - TTime aEndTime, - CBufFlat* aDetailsData ); - - /** - * Construct from a stream. - * - * @param aStream Read stream. - */ - void ConstructL ( RReadStream& aStream ); - - /** - * Default C++ constructor. - **/ - CDiagResultsDatabaseItem (); - -private: // data - - // Uid of the test plug-in. - TUid iTestUid; - - // Has this been executed as a part of another execution (precondition). - TBool iDependencyExecution; - - // Test result - TResult iResult; - - // When the test began. - TTime iStartTime; - - // When the test ended - TTime iEndTime; - - // Contains flat buffer that can hold additional data - // For example debugging data or further analysis. - CBufFlat* iDetailsData; - - }; - -#endif // DIAGRESULTSDATABASEITEM_H diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_results_api/inc/diagresultsdatabasetestrecordinfo.h --- a/remotemgmt_plat/diagnostics_results_api/inc/diagresultsdatabasetestrecordinfo.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Contains overview of the test record, not actual test results. -* libraries : DiagResultsDatabase.lib DiagResultsDatabase.dll -* -*/ - - -#ifndef DIAGNOSTICS_RESULTS_DATABASE_TEST_RECORD_INFO_H -#define DIAGNOSTICS_RESULTS_DATABASE_TEST_RECORD_INFO_H - -#include - -class RReadStream; -class RWriteStream; - -/** -* Results database record info. Contains information about one record. -* -* @since S60 v5.0 -**/ -class TDiagResultsDatabaseTestRecordInfo - { -public: - - enum TDbRecordStatus - { - EOpen, // Currently open for writing. - ESuspended, // ::Suspend() is called. - ECompleted // Record is completed (not resumable), and all - // tests were completed. - }; - - - /** - * Constructor - **/ - IMPORT_C TDiagResultsDatabaseTestRecordInfo(); - - /** - * Internalize from a stream. - * - * @param aStream Stream to be read from. - **/ - IMPORT_C void InternalizeL( RReadStream& aStream ); - - /** - * Externalize into a stream. - * - * @param aStream Stream to be written into. - **/ - IMPORT_C void ExternalizeL( RWriteStream& aStream ) const; - - /** - * Returns DRM time. - * - * @return DRM time. - **/ - IMPORT_C static TTime DRMTimeL(); - - //Public member data. - TUid iRecordId; // Identifies this record. - TTime iDrmStartTime; //When the record was opened (DRM time). - TTime iDrmFinishTime; //when the record was completed (DRM time). - TTime iStartTime; //When the record was opened (Home time). - TTime iFinishTime; //when the record was completed (Home time). - TUid iDbUid; //UID3 of the database. - TUint iTestCount; //The number of tests in this record. - TDbRecordStatus iRecordStatus; //Stored record status. - TBool iCompleted; //Writable or read-only test record - - -private: - - /** - * Writes time(TTime) into a stream. Time has to be written into a stream - * using two 32-bit values since there is no method to write 64-bit value. - * - * @param aStream Stream to be written into. - * @param aTime Time that is written into the stream. - **/ - void WriteTimeToStreamL( RWriteStream& aStream, const TTime& aTime ) const; - - /** - * Reads time (TTime) from a stream. - * - * @param aStream Stream to be read from. - * @param aTime Time that was read from the stream. - **/ - void ReadTimeFromStreamL( RReadStream& aStream, TTime& aTime ); - - }; - -#endif \ No newline at end of file diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_results_api/inc/diagresultsdbitembuilder.h --- a/remotemgmt_plat/diagnostics_results_api/inc/diagresultsdbitembuilder.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,244 +0,0 @@ -/* -* Copyright (c) 2007 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: Diagnostics Results Database Item Builder -* -*/ - - - -#ifndef DIAGRESULTSDBITEMBUILDER_H -#define DIAGRESULTSDBITEMBUILDER_H - -// INCLUDES -#include // CDiagResultsDatabaseItem::TResult - -// FORWARD DECLARATIONS -namespace DRM - { - class CDrmServiceApi; - } - -class MDiagResultDetail; - - -/** -* Diagnostics Result Database Item Builder. -* -* This class can be used to build CDiagResultsDatabaseItem, without having -* to have all the values avaliable. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CDiagResultsDbItemBuilder ) : public CBase - { -public: // Constructors and Destructors - /** - * Two-phase constructor. - * - * This will set the test started time to now. - * - * @param aTestUid - Test Uid. - * @param aDependencyExecution - Whether thsa was executed as dependency. - * @return New instance of CDiagResultsDbItemBuilder - */ - IMPORT_C static CDiagResultsDbItemBuilder* NewL( TUid aTestUid, - TBool aDependencyExecution ); - IMPORT_C static CDiagResultsDbItemBuilder* NewLC( TUid aTestUid, - TBool aDependencyExecution ); - - /** - * Destructor - * - */ - virtual ~CDiagResultsDbItemBuilder(); - -public: // New Interface - - /** - * Set Test Uid - * - * @param aUid - Test uid. - */ - IMPORT_C void SetTestUid( TUid aUid ); - - /** - * Get Test Uid - * - * @return Test uid. - */ - IMPORT_C TUid TestUid() const; - - /** - * Get current time. If DRM clock is available, it will use the DRM clock. - * - */ - IMPORT_C TTime GetCurrentTime() const; - - /** - * Set whether test was executed as dependency or not. - * - * @param aWasDependency - */ - IMPORT_C void SetWasDependency( TBool aWasDependency ); - - /** - * Get was dependency value - * - * @return ETrue if test was executed as a dependency. - */ - IMPORT_C TBool WasDependency() const; - - /** - * Update test result and also set completed time to now - * - * @param aResult - Test result. - */ - IMPORT_C void SetTestCompleted( CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Get Test result - * - * @return Test result. - */ - IMPORT_C CDiagResultsDatabaseItem::TResult TestResult() const; - - /** - * Set Time Started - * - * @param aTime - time started. - */ - IMPORT_C void SetTimeStarted( TTime aTime ); - - /** - * Get Time started. - * - * @return Time started. - */ - IMPORT_C TTime TimeStarted() const; - - /** - * Set Time Completed - * - * @param aTime - time completed. - */ - IMPORT_C void SetTimeCompleted( TTime aTime ); - - /** - * Get Time Completed.. - * - * @return Time Completed. - */ - IMPORT_C TTime TimeCompleted() const; - - /** - * Set result detail object. If it was already set, previous object is deleted. - * - * @param aResultDetail - Result detail object. Ownership is transferred. - */ - IMPORT_C void SetResultDetail( MDiagResultDetail* aResultDetail ); - - /** - * Get result detail object. Use static_cast to change to specific instance. - * If result detail was not set previosuly, it will Panic with - * EDiagFrameworkInvalidState - * - * @return Result detail object. - */ - IMPORT_C MDiagResultDetail& ResultDetail() const; - - /** - * Create CDiagResultsDatabaseItem from data available. - * - */ - IMPORT_C CDiagResultsDatabaseItem* ToResultsDatabaseItemL() const; - - /** - * Create a simple CDiagResultsDatabaseItem. This function is meant to be - * used to create default result data with just with minimal set of information. - * It will use current time as both start and end time of test. - * If manipulation of other information in needed, either instantiate - * CDiagResultsDbItemBuilder or CDiagResultsDatabaseItem - * - * @param aTestUid - Uid of test plugin. - * @param aAsDependency - Whether it was executed as dependency or not. - * @param aResultType - Result of the test. - * @return Instance of CDiagResultsDatabaseItem* with given info. - * Ownership is transferred. - */ - IMPORT_C static CDiagResultsDatabaseItem* CreateSimpleDbItemL( - TUid aTestUid, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResultType ); - - -protected: // constructors - /** - * C++ Constructor - * - * @param aTestUid - Uid of the test - * @param aDependencyExecution - Whether this is being executed as dependency. - */ - CDiagResultsDbItemBuilder( TUid aTestUid, - TBool aDependencyExecution ); - /** - * ConstructL - * - */ - void ConstructL(); - -private: // Data - /** - * iTestUid - Uid of the test plug-in that this result is for. - */ - TUid iTestUid; - - /** - * iDependencyExecution - Whether this test is being executed to - * satisfy dependency or not. - */ - TBool iDependencyExecution; - - /** - * iResut - Actual result of the test. - */ - CDiagResultsDatabaseItem::TResult iResult; - - /** - * iStartTime - Time test started. - */ - TTime iStartTime; - - /** - * iEndTime - Time test finished. - */ - TTime iEndTime; - - /** - * iResultDetail - Extra details data. - * Owns. - */ - MDiagResultDetail* iResultDetail; - - /** - * iDrmApi - Used to get accurate clock through DRM. - * Owns. - */ - DRM::CDrmServiceApi* iDrmApi; - }; - - -#endif // DIAGRESULTSDBITEMBUILDER_H - -// End of File - diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/diagnostics_results_api/inc/diagresultsdbrecordengineparam.h --- a/remotemgmt_plat/diagnostics_results_api/inc/diagresultsdbrecordengineparam.h Fri May 14 16:42:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: Capsulates parameters of the diagnostics engine. -* -*/ - - -#ifndef DIAGRESULTSDBRECORDENGINEPARAM_H -#define DIAGRESULTSDBRECORDENGINEPARAM_H - -// INCLUDES -#include // CBase - -// FORWARD DECLARATIONS -class RWriteStream; -class RReadStream; - -/** -* Contains parameters of the diagnostics engine. -* Parameters are needed only in suspend/resume functionality. -* -* @since S60 v5.0 -**/ -class CDiagResultsDbRecordEngineParam : public CBase - { -public: - - - /** - * NewL. Construct from a stream. - * @param aStream Stream to read from. - */ - IMPORT_C static CDiagResultsDbRecordEngineParam* NewL ( RReadStream& aStream ); - - /** - * NewL. Ownership of RArray is transferred. - * - * @param aInitialUids Execution Uid array. Should not be null. - * Use empty array if there are no uids. - * @param aDependencyExecution This value is needed when resuming - * in order to create proper test resume plan. - */ - IMPORT_C static CDiagResultsDbRecordEngineParam* NewL ( - RArray* aInitialUids, - TBool aDependencyExecution - ); - /** - * NewLC. Ownership of RArray is transferred. - * - * @param aInitialUids Execution Uid array. Should not be null. - * Use empty array if there are no uids. - * @param aDependencyExecution This value is needed when resuming - * in order to create proper test resume plan. - */ - IMPORT_C static CDiagResultsDbRecordEngineParam* NewLC ( - RArray* aInitialUids, - TBool aDependencyExecution - ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagResultsDbRecordEngineParam(); - - /** - * Return execution uids. These can be used to store for example - * user selections. User selections are needed when test run is suspended - * or test session crashed the phone. - * - * @return Array of uids. Empty if none. - */ - IMPORT_C const RArray& ExecutionsUidArray() const; - - /** - * Indicates were dependencies resolved when diagnostics engine executed tests. - * - * @return ETrue if dependencies were resolved, EFalse otherwise. - */ - IMPORT_C TBool DependencyExecution() const; - -public: - - /** - * Externalize the test result to a stream. - * - * @param aStream Stream to write to. - */ - IMPORT_C void ExternalizeL( RWriteStream& aStream ) const; - - -private: //internalization methods - - /** - * Internalize the test result from a stream. - * - * @param aStream Stream to read from. - */ - IMPORT_C void InternalizeL( RReadStream& aStream ); - - -private: - - /** - * C++ Constructors. - */ - CDiagResultsDbRecordEngineParam ( RArray* aInitialUids, - TBool aDependencyExecution ); - - /** - * Construct from a stream. - * - * @param aStream Read stream. - */ - void ConstructL ( RReadStream& aStream ); - - /** - * Default constructL. Does nothing. - */ - void ConstructL (); - - /** - * Default C++ constructor. - **/ - CDiagResultsDbRecordEngineParam (); - -private: // data - - // Execution uid array - RArray* iExecutionUids; - - //Dependency resolving state. - TBool iDependencyExecution; - - }; - -#endif // DIAGRESULTSDBRECORDENGINEPARAM_H diff -r 2c8580950a26 -r 5d0ec111abfc remotemgmt_plat/group/bld.inf --- a/remotemgmt_plat/group/bld.inf Fri May 14 16:42:50 2010 +0300 +++ b/remotemgmt_plat/group/bld.inf Thu May 27 13:43:36 2010 +0300 @@ -41,11 +41,6 @@ #include "../dm_constant_definitions_api/group/bld.inf" #include "../oma_ds_extensions_api/group/bld.inf" #include "../pnpms_utils_api/group/bld.inf" -#include "../diagnostics_plugin_utility_api/group/bld.inf" -#include "../diagnostics_plugin_api/group/bld.inf" -#include "../diagnostics_framework_api/group/bld.inf" -#include "../diagnostics_results_api/group/bld.inf" -#include "../diagnostics_plugin_pool_api/group/bld.inf" #include "../adaptive_history_list_api/group/bld.inf" #include "../adaptive_history_list_session_api/group/bld.inf" #include "../fota_engine_api/group/bld.inf" diff -r 2c8580950a26 -r 5d0ec111abfc syncmlfw/common/syncagent/bld/DEF/bwinscwu.def --- a/syncmlfw/common/syncagent/bld/DEF/bwinscwu.def Fri May 14 16:42:50 2010 +0300 +++ b/syncmlfw/common/syncagent/bld/DEF/bwinscwu.def Thu May 27 13:43:36 2010 +0300 @@ -1,194 +1,193 @@ EXPORTS - ??0CNSmlAgentBase@@QAE@XZ @ 1 NONAME ; CNSmlAgentBase::CNSmlAgentBase(void) - ??0CNSmlCmdsBase@@QAE@XZ @ 2 NONAME ; CNSmlCmdsBase::CNSmlCmdsBase(void) - ??0TNSmlError@@QAE@XZ @ 3 NONAME ; TNSmlError::TNSmlError(void) - ??1CNSmlAgentBase@@UAE@XZ @ 4 NONAME ; CNSmlAgentBase::~CNSmlAgentBase(void) - ??1CNSmlCmdsBase@@UAE@XZ @ 5 NONAME ; CNSmlCmdsBase::~CNSmlCmdsBase(void) - ??1TNSmlError@@UAE@XZ @ 6 NONAME ; TNSmlError::~TNSmlError(void) - ??4CNSmlURI@@QAEAAV0@ABV0@@Z @ 7 NONAME ; class CNSmlURI & CNSmlURI::operator=(class CNSmlURI const &) - ?AddItemDataL@CNSmlStatusContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 8 NONAME ; void CNSmlStatusContainer::AddItemDataL(int, struct sml_pcdata_s const *) - ?AddItemL@CNSmlResultsContainer@@QAEXHABVCBufBase@@ABVTDesC8@@1@Z @ 9 NONAME ; void CNSmlResultsContainer::AddItemL(int, class CBufBase const &, class TDesC8 const &, class TDesC8 const &) - ?AddSourceRefL@CNSmlStatusContainer@@QAEXHPBUsml_source_s@@@Z @ 10 NONAME ; void CNSmlStatusContainer::AddSourceRefL(int, struct sml_source_s const *) - ?AddTargetRefL@CNSmlStatusContainer@@QAEXHPBUsml_target_s@@@Z @ 11 NONAME ; void CNSmlStatusContainer::AddTargetRefL(int, struct sml_target_s const *) - ?AlertCode@CNSmlCmdsBase@@QBE?AVTPtr8@@PAUsml_alert_s@@@Z @ 12 NONAME ; class TPtr8 CNSmlCmdsBase::AlertCode(struct sml_alert_s *) const - ?AnyResults@CNSmlResultsContainer@@QBEHXZ @ 13 NONAME ; int CNSmlResultsContainer::AnyResults(void) const - ?AppIndex@CNSmlResponseController@@QBEHH@Z @ 14 NONAME ; int CNSmlResponseController::AppIndex(int) const - ?AuthenticationRequirementL@CNSmlAgentBase@@IAEHABVCNSmlResponseController@@H@Z @ 15 NONAME ; int CNSmlAgentBase::AuthenticationRequirementL(class CNSmlResponseController const &, int) - ?Begin@CNSmlResultsContainer@@QAEXXZ @ 16 NONAME ; void CNSmlResultsContainer::Begin(void) - ?Begin@CNSmlStatusContainer@@QAEXXZ @ 17 NONAME ; void CNSmlStatusContainer::Begin(void) - ?BeginningStateL@CNSmlAgentBase@@IAEXXZ @ 18 NONAME ; void CNSmlAgentBase::BeginningStateL(void) - ?BufferAreaForParsingL@CNSmlCmdsBase@@QAE?AVTPtr8@@XZ @ 19 NONAME ; class TPtr8 CNSmlCmdsBase::BufferAreaForParsingL(void) - ?BusyStatus@CNSmlCmdsBase@@QBEHXZ @ 20 NONAME ; int CNSmlCmdsBase::BusyStatus(void) const - ?CallbackCalled@CNSmlAgentBase@@QBEHXZ @ 21 NONAME ; int CNSmlAgentBase::CallbackCalled(void) const - ?ChalType@CNSmlResponseController@@QBE?AVTPtrC8@@H@Z @ 22 NONAME ; class TPtrC8 CNSmlResponseController::ChalType(int) const - ?Challenged@CNSmlAuth@@QBEHXZ @ 23 NONAME ; int CNSmlAuth::Challenged(void) const - ?CheckStatusCodesAreReceivedL@CNSmlAgentBase@@IAEHH@Z @ 24 NONAME ; int CNSmlAgentBase::CheckStatusCodesAreReceivedL(int) - ?ClientAlertNextMakingMapStateL@CNSmlAgentBase@@MAEXXZ @ 25 NONAME ; void CNSmlAgentBase::ClientAlertNextMakingMapStateL(void) - ?ClientAlertNextStateL@CNSmlAgentBase@@IAEXXZ @ 26 NONAME ; void CNSmlAgentBase::ClientAlertNextStateL(void) - ?ClientInitialisationStateL@CNSmlAgentBase@@IAEXXZ @ 27 NONAME ; void CNSmlAgentBase::ClientInitialisationStateL(void) - ?CloseIDMappingTableL@CNSmlCmdsBase@@UAEXXZ @ 28 NONAME ; void CNSmlCmdsBase::CloseIDMappingTableL(void) - ?Cmd@CNSmlResponseController@@QBEAAVTDesC8@@H@Z @ 29 NONAME ; class TDesC8 & CNSmlResponseController::Cmd(int) const - ?ConstructL@CNSmlAgentBase@@IAEXXZ @ 30 NONAME ; void CNSmlAgentBase::ConstructL(void) - ?ConstructL@CNSmlCmdsBase@@IAEXPAVCNSmlAgentBase@@ABVTDesC8@@1HABVHBufC16@@PAVCNSmlURI@@H@Z @ 31 NONAME ; void CNSmlCmdsBase::ConstructL(class CNSmlAgentBase *, class TDesC8 const &, class TDesC8 const &, int, class HBufC16 const &, class CNSmlURI *, int) - ?CreateAndInitResponseItemL@CNSmlCmdsBase@@IAEHABVTDesC8@@@Z @ 32 NONAME ; int CNSmlCmdsBase::CreateAndInitResponseItemL(class TDesC8 const &) - ?CreateNewResultsL@CNSmlResultsContainer@@QAEHABVTDesC8@@0PBUsml_target_s@@PBUsml_source_s@@@Z @ 33 NONAME ; int CNSmlResultsContainer::CreateNewResultsL(class TDesC8 const &, class TDesC8 const &, struct sml_target_s const *, struct sml_source_s const *) - ?CreateNewStatusElementL@CNSmlStatusContainer@@QAEHXZ @ 34 NONAME ; int CNSmlStatusContainer::CreateNewStatusElementL(void) - ?CurrentEntryID@CNSmlResultsContainer@@QBEHXZ @ 35 NONAME ; int CNSmlResultsContainer::CurrentEntryID(void) const - ?DataBaseWithoutRelativePrefix@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 36 NONAME ; class TPtrC16 CNSmlURI::DataBaseWithoutRelativePrefix(void) - ?DataUpdateStatusMakingMapStateL@CNSmlAgentBase@@MAEXXZ @ 37 NONAME ; void CNSmlAgentBase::DataUpdateStatusMakingMapStateL(void) - ?DataUpdateStatusMakingResultsStateL@CNSmlAgentBase@@MAEXXZ @ 38 NONAME ; void CNSmlAgentBase::DataUpdateStatusMakingResultsStateL(void) - ?DataUpdateStatusStartingMessageStateBaseL@CNSmlAgentBase@@IAEXXZ @ 39 NONAME ; void CNSmlAgentBase::DataUpdateStatusStartingMessageStateBaseL(void) - ?DataUpdateStatusStateL@CNSmlAgentBase@@IAEXXZ @ 40 NONAME ; void CNSmlAgentBase::DataUpdateStatusStateL(void) - ?Database@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 41 NONAME ; class TPtrC16 CNSmlURI::Database(void) - ?DatabaseMatchesL@CNSmlURI@@QAEHABVTDesC16@@@Z @ 42 NONAME ; int CNSmlURI::DatabaseMatchesL(class TDesC16 const &) - ?DeleteIDMappingTableL@CNSmlCmdsBase@@UAEHABVTDesC16@@0@Z @ 43 NONAME ; int CNSmlCmdsBase::DeleteIDMappingTableL(class TDesC16 const &, class TDesC16 const &) - ?DisconnectFromOtherServers@CNSmlCmdsBase@@UAEXXZ @ 44 NONAME ; void CNSmlCmdsBase::DisconnectFromOtherServers(void) - ?DoAnchorsL@CNSmlCmdsBase@@IBEXAAUsml_metinf_metinf_s@@PBVTDesC8@@1@Z @ 45 NONAME ; void CNSmlCmdsBase::DoAnchorsL(struct sml_metinf_metinf_s &, class TDesC8 const *, class TDesC8 const *) const - ?DoCancel@CNSmlAgentBase@@UAEXXZ @ 46 NONAME ; void CNSmlAgentBase::DoCancel(void) - ?DoCmdIdL@CNSmlCmdsBase@@IAEXAAPAUsml_pcdata_s@@@Z @ 47 NONAME ; void CNSmlCmdsBase::DoCmdIdL(struct sml_pcdata_s * &) - ?DoGenericAlertL@CNSmlCmdsBase@@UAEXABVTDesC8@@00H0@Z @ 48 NONAME ; void CNSmlCmdsBase::DoGenericAlertL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &, int, class TDesC8 const &) - ?DoGenericUserAlertL@CNSmlCmdsBase@@UAEHH@Z @ 49 NONAME ; int CNSmlCmdsBase::DoGenericUserAlertL(int) - ?DoMaxObjSizeL@CNSmlCmdsBase@@IBEXAAUsml_metinf_metinf_s@@H@Z @ 50 NONAME ; void CNSmlCmdsBase::DoMaxObjSizeL(struct sml_metinf_metinf_s &, int) const - ?DoMetInfLC@CNSmlCmdsBase@@QBEXAAPAUsml_metinf_metinf_s@@@Z @ 51 NONAME ; void CNSmlCmdsBase::DoMetInfLC(struct sml_metinf_metinf_s * &) const - ?DoMetaL@CNSmlCmdsBase@@QBEXAAPAUsml_pcdata_s@@PBUsml_metinf_metinf_s@@@Z @ 52 NONAME ; void CNSmlCmdsBase::DoMetaL(struct sml_pcdata_s * &, struct sml_metinf_metinf_s const *) const - ?DoOutsideCancel@CNSmlAgentBase@@UAEXXZ @ 53 NONAME ; void CNSmlAgentBase::DoOutsideCancel(void) - ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC16@@1@Z @ 54 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC16 const &, class TDesC16 const &) const - ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC16@@@Z @ 55 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC16 const &) const - ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC8@@@Z @ 56 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC8 const &) const - ?DoStatusL@CNSmlCmdsBase@@QAE?AW4TReturnValue@1@PAUsml_status_s@@@Z @ 57 NONAME ; enum CNSmlCmdsBase::TReturnValue CNSmlCmdsBase::DoStatusL(struct sml_status_s *) - ?DoSyncHdrL@CNSmlCmdsBase@@UAEXXZ @ 58 NONAME ; void CNSmlCmdsBase::DoSyncHdrL(void) - ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC16@@1@Z @ 59 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC16 const &, class TDesC16 const &) const - ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC16@@@Z @ 60 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC16 const &) const - ?EndOfServerMessageL@CNSmlCmdsBase@@UBEXXZ @ 61 NONAME ; void CNSmlCmdsBase::EndOfServerMessageL(void) const - ?EntryID@CNSmlResponseController@@QBEHHH@Z @ 62 NONAME ; int CNSmlResponseController::EntryID(int, int) const - ?ErrorCodeConversion@TNSmlError@@MAEXXZ @ 63 NONAME ; void TNSmlError::ErrorCodeConversion(void) - ?FetchIDMappingTableL@CNSmlCmdsBase@@UAEXH@Z @ 64 NONAME ; void CNSmlCmdsBase::FetchIDMappingTableL(int) - ?FreeBaseResources@CNSmlAgentBase@@IAEXXZ @ 65 NONAME ; void CNSmlAgentBase::FreeBaseResources(void) - ?HBufC16InUnicodeL@NSmlUnicodeConverter@@SAHABVTDesC8@@AAPAVHBufC16@@@Z @ 66 NONAME ; int NSmlUnicodeConverter::HBufC16InUnicodeL(class TDesC8 const &, class HBufC16 * &) - ?HBufC16InUnicodeLC@NSmlUnicodeConverter@@SAHABVTDesC8@@AAPAVHBufC16@@@Z @ 67 NONAME ; int NSmlUnicodeConverter::HBufC16InUnicodeLC(class TDesC8 const &, class HBufC16 * &) - ?HBufC8InUTF8LC@NSmlUnicodeConverter@@SAHABVTDesC16@@AAPAVHBufC8@@@Z @ 68 NONAME ; int NSmlUnicodeConverter::HBufC8InUTF8LC(class TDesC16 const &, class HBufC8 * &) - ?HostName@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 69 NONAME ; class TPtrC16 CNSmlURI::HostName(void) - ?HostNameInUTF8AllocLC@CNSmlURI@@QAEPAVHBufC8@@XZ @ 70 NONAME ; class HBufC8 * CNSmlURI::HostNameInUTF8AllocLC(void) - ?HostNameWithPortL@CNSmlURI@@QAE?AVTPtrC16@@H@Z @ 71 NONAME ; class TPtrC16 CNSmlURI::HostNameWithPortL(int) - ?InitAskingDeviceInfoStateL@CNSmlAgentBase@@MAEXXZ @ 72 NONAME ; void CNSmlAgentBase::InitAskingDeviceInfoStateL(void) - ?InitStartingMessageStateBaseL@CNSmlAgentBase@@IAEXXZ @ 73 NONAME ; void CNSmlAgentBase::InitStartingMessageStateBaseL(void) - ?IsEqualL@CNSmlURI@@QAEHABV1@H@Z @ 74 NONAME ; int CNSmlURI::IsEqualL(class CNSmlURI const &, int) - ?IsFlagSet@CNSmlCmdsBase@@IBEHABI0@Z @ 75 NONAME ; int CNSmlCmdsBase::IsFlagSet(unsigned int const &, unsigned int const &) const - ?LUID@CNSmlResponseController@@QBE?AVTPtrC8@@H@Z @ 76 NONAME ; class TPtrC8 CNSmlResponseController::LUID(int) const - ?LastEntryID@CNSmlStatusContainer@@QBEHXZ @ 77 NONAME ; int CNSmlStatusContainer::LastEntryID(void) const - ?MarkGenAlertsSentL@CNSmlCmdsBase@@UAEXABVTDesC8@@@Z @ 78 NONAME ; void CNSmlCmdsBase::MarkGenAlertsSentL(class TDesC8 const &) - ?MarkGenAlertsSentL@CNSmlCmdsBase@@UAEXXZ @ 79 NONAME ; void CNSmlCmdsBase::MarkGenAlertsSentL(void) - ?MetaFormatInUtf8LC@CNSmlCmdsBase@@IBEPAVHBufC8@@PBUsml_pcdata_s@@@Z @ 80 NONAME ; class HBufC8 * CNSmlCmdsBase::MetaFormatInUtf8LC(struct sml_pcdata_s const *) const - ?MetaTypeInUtf8LC@CNSmlCmdsBase@@IBEPAVHBufC8@@PBUsml_pcdata_s@@@Z @ 81 NONAME ; class HBufC8 * CNSmlCmdsBase::MetaTypeInUtf8LC(struct sml_pcdata_s const *) const - ?MetaTypeLC@CNSmlCmdsBase@@IBEPAVHBufC16@@PBUsml_pcdata_s@@@Z @ 82 NONAME ; class HBufC16 * CNSmlCmdsBase::MetaTypeLC(struct sml_pcdata_s const *) const - ?MoreData@CNSmlResponseController@@QBEHH@Z @ 83 NONAME ; int CNSmlResponseController::MoreData(int) const - ?MoreDataL@CNSmlCmdsBase@@IAE?AW4TNSmlSyncMLStatusCode@TNSmlError@@PBVHBufC8@@PBUsml_item_s@@PBUsml_pcdata_s@@AAPAVCBufBase@@@Z @ 84 NONAME ; enum TNSmlError::TNSmlSyncMLStatusCode CNSmlCmdsBase::MoreDataL(class HBufC8 const *, struct sml_item_s const *, struct sml_pcdata_s const *, class CBufBase * &) - ?NewL@CNSmlAuth@@SAPAV1@XZ @ 85 NONAME ; class CNSmlAuth * CNSmlAuth::NewL(void) - ?NewL@CNSmlPhoneInfo@@SAPAV1@XZ @ 86 NONAME ; class CNSmlPhoneInfo * CNSmlPhoneInfo::NewL(void) - ?NewL@CNSmlURI@@SAPAV1@ABVTDesC16@@H@Z @ 87 NONAME ; class CNSmlURI * CNSmlURI::NewL(class TDesC16 const &, int) - ?NewL@CNSmlURI@@SAPAV1@ABVTDesC8@@H@Z @ 88 NONAME ; class CNSmlURI * CNSmlURI::NewL(class TDesC8 const &, int) - ?NewL@CNSmlURI@@SAPAV1@XZ @ 89 NONAME ; class CNSmlURI * CNSmlURI::NewL(void) - ?NewLC@CNSmlPhoneInfo@@SAPAV1@XZ @ 90 NONAME ; class CNSmlPhoneInfo * CNSmlPhoneInfo::NewLC(void) - ?NewLC@CNSmlURI@@SAPAV1@ABVTDesC16@@H@Z @ 91 NONAME ; class CNSmlURI * CNSmlURI::NewLC(class TDesC16 const &, int) - ?NewLC@CNSmlURI@@SAPAV1@ABVTDesC8@@H@Z @ 92 NONAME ; class CNSmlURI * CNSmlURI::NewLC(class TDesC8 const &, int) - ?NewLC@CNSmlURI@@SAPAV1@XZ @ 93 NONAME ; class CNSmlURI * CNSmlURI::NewLC(void) - ?NextResultsElement@CNSmlResultsContainer@@QAEHAAPAUsml_results_s@@@Z @ 94 NONAME ; int CNSmlResultsContainer::NextResultsElement(struct sml_results_s * &) - ?NextStatusElement@CNSmlStatusContainer@@QAEHAAPAUsml_status_s@@H@Z @ 95 NONAME ; int CNSmlStatusContainer::NextStatusElement(struct sml_status_s * &, int) - ?PCDATAToUnicodeLC@CNSmlCmdsBase@@QBEXABUsml_pcdata_s@@AAPAVHBufC16@@@Z @ 96 NONAME ; void CNSmlCmdsBase::PCDATAToUnicodeLC(struct sml_pcdata_s const &, class HBufC16 * &) const - ?PcdataNewL@CNSmlCmdsBase@@QBEXAAPAUsml_pcdata_s@@ABVTDesC8@@@Z @ 97 NONAME ; void CNSmlCmdsBase::PcdataNewL(struct sml_pcdata_s * &, class TDesC8 const &) const - ?PhoneDataL@CNSmlPhoneInfo@@QBEXW4TPhoneIdType@1@AAVTDes16@@@Z @ 98 NONAME ; void CNSmlPhoneInfo::PhoneDataL(enum CNSmlPhoneInfo::TPhoneIdType, class TDes16 &) const - ?ProcessCopyCmdL@CNSmlCmdsBase@@UAEXPAUsml_generic_s@@@Z @ 99 NONAME ; void CNSmlCmdsBase::ProcessCopyCmdL(struct sml_generic_s *) - ?ProcessExecCmdL@CNSmlCmdsBase@@UAEXPAUsml_exec_s@@@Z @ 100 NONAME ; void CNSmlCmdsBase::ProcessExecCmdL(struct sml_exec_s *) - ?ProcessMapCmdL@CNSmlCmdsBase@@UAEXPAUsml_map_s@@@Z @ 101 NONAME ; void CNSmlCmdsBase::ProcessMapCmdL(struct sml_map_s *) - ?ProcessReceivedDataL@CNSmlCmdsBase@@QAEHXZ @ 102 NONAME ; int CNSmlCmdsBase::ProcessReceivedDataL(void) - ?ProcessSearchCmdL@CNSmlCmdsBase@@UAEXPAUsml_search_s@@@Z @ 103 NONAME ; void CNSmlCmdsBase::ProcessSearchCmdL(struct sml_search_s *) - ?ProcessStatusCmdL@CNSmlCmdsBase@@UAEXPAUsml_status_s@@@Z @ 104 NONAME ; void CNSmlCmdsBase::ProcessStatusCmdL(struct sml_status_s *) - ?ProcessSyncHdrL@CNSmlCmdsBase@@UAEXPAUsml_sync_hdr_s@@@Z @ 105 NONAME ; void CNSmlCmdsBase::ProcessSyncHdrL(struct sml_sync_hdr_s *) - ?ProfileId@CNSmlAgentBase@@QBEHXZ @ 106 NONAME ; int CNSmlAgentBase::ProfileId(void) const - ?ReceivingStateL@CNSmlAgentBase@@IAEXXZ @ 107 NONAME ; void CNSmlAgentBase::ReceivingStateL(void) - ?RemoveWritten@CNSmlResultsContainer@@QAEXH@Z @ 108 NONAME ; void CNSmlResultsContainer::RemoveWritten(int) - ?ResetGenericUserAlertL@CNSmlCmdsBase@@UAEXXZ @ 109 NONAME ; void CNSmlCmdsBase::ResetGenericUserAlertL(void) - ?ResetL@CNSmlResponseController@@QAEXXZ @ 110 NONAME ; void CNSmlResponseController::ResetL(void) - ?ResetLargeObjectBuffer@CNSmlCmdsBase@@QAEXXZ @ 111 NONAME ; void CNSmlCmdsBase::ResetLargeObjectBuffer(void) - ?RespURI@CNSmlCmdsBase@@QBEPAVCNSmlURI@@XZ @ 112 NONAME ; class CNSmlURI * CNSmlCmdsBase::RespURI(void) const - ?ResponseController@CNSmlCmdsBase@@QBEPAVCNSmlResponseController@@XZ @ 113 NONAME ; class CNSmlResponseController * CNSmlCmdsBase::ResponseController(void) const - ?ResponseDetail@CNSmlResponseController@@QBE?AW4TResponseDetail@1@H@Z @ 114 NONAME ; enum CNSmlResponseController::TResponseDetail CNSmlResponseController::ResponseDetail(int) const - ?ResultAlertStateL@CNSmlAgentBase@@IAEXXZ @ 115 NONAME ; void CNSmlAgentBase::ResultAlertStateL(void) - ?ResultsContainer@CNSmlCmdsBase@@QBEPAVCNSmlResultsContainer@@XZ @ 116 NONAME ; class CNSmlResultsContainer * CNSmlCmdsBase::ResultsContainer(void) const - ?RunL@CNSmlAgentBase@@UAEXXZ @ 117 NONAME ; void CNSmlAgentBase::RunL(void) - ?SaveIfNonceL@CNSmlAgentBase@@IBEXABVCNSmlResponseController@@H@Z @ 118 NONAME ; void CNSmlAgentBase::SaveIfNonceL(class CNSmlResponseController const &, int) const - ?SendingStateL@CNSmlAgentBase@@IAEXXZ @ 119 NONAME ; void CNSmlAgentBase::SendingStateL(void) - ?ServerAlertNextAlertCmdStateL@CNSmlAgentBase@@IAEXPAUsml_alert_s@@@Z @ 120 NONAME ; void CNSmlAgentBase::ServerAlertNextAlertCmdStateL(struct sml_alert_s *) - ?ServerAlertNextEndMessageStateL@CNSmlAgentBase@@IAEXH@Z @ 121 NONAME ; void CNSmlAgentBase::ServerAlertNextEndMessageStateL(int) - ?ServerAlertNextStartMessageStateL@CNSmlAgentBase@@IAEXPAUsml_sync_hdr_s@@@Z @ 122 NONAME ; void CNSmlAgentBase::ServerAlertNextStartMessageStateL(struct sml_sync_hdr_s *) - ?ServerAlertNextStateL@CNSmlAgentBase@@IAEXXZ @ 123 NONAME ; void CNSmlAgentBase::ServerAlertNextStateL(void) - ?ServerAlertNextStatusCmdStateL@CNSmlAgentBase@@IAEXPAUsml_status_s@@@Z @ 124 NONAME ; void CNSmlAgentBase::ServerAlertNextStatusCmdStateL(struct sml_status_s *) - ?ServerAuth@CNSmlCmdsBase@@QBEPAVCNSmlAuth@@XZ @ 125 NONAME ; class CNSmlAuth * CNSmlCmdsBase::ServerAuth(void) const - ?ServerMaxObjSize@CNSmlCmdsBase@@IBEHPBUsml_pcdata_s@@@Z @ 126 NONAME ; int CNSmlCmdsBase::ServerMaxObjSize(struct sml_pcdata_s const *) const - ?ServerModAlertCmdStateL@CNSmlAgentBase@@IAEXPAUsml_alert_s@@@Z @ 127 NONAME ; void CNSmlAgentBase::ServerModAlertCmdStateL(struct sml_alert_s *) - ?ServerModEndMessageStateL@CNSmlAgentBase@@IAEXH@Z @ 128 NONAME ; void CNSmlAgentBase::ServerModEndMessageStateL(int) - ?ServerModStartMessageStateL@CNSmlAgentBase@@IAEXPAUsml_sync_hdr_s@@@Z @ 129 NONAME ; void CNSmlAgentBase::ServerModStartMessageStateL(struct sml_sync_hdr_s *) - ?ServerModStatusCmdStateL@CNSmlAgentBase@@IAEXPAUsml_status_s@@@Z @ 130 NONAME ; void CNSmlAgentBase::ServerModStatusCmdStateL(struct sml_status_s *) - ?ServerNonceAllocL@CNSmlAgentBase@@UBEPAVHBufC16@@XZ @ 131 NONAME ; class HBufC16 * CNSmlAgentBase::ServerNonceAllocL(void) const - ?ServerObjectSize@CNSmlCmdsBase@@IBEHPBUsml_pcdata_s@@@Z @ 132 NONAME ; int CNSmlCmdsBase::ServerObjectSize(struct sml_pcdata_s const *) const - ?ServerPassword@CNSmlAgentBase@@MBE?AVTPtrC16@@XZ @ 133 NONAME ; class TPtrC16 CNSmlAgentBase::ServerPassword(void) const - ?ServerUserName@CNSmlAgentBase@@MBE?AVTPtrC16@@XZ @ 134 NONAME ; class TPtrC16 CNSmlAgentBase::ServerUserName(void) const - ?SetAppIndex@CNSmlResponseController@@QAEXHH@Z @ 135 NONAME ; void CNSmlResponseController::SetAppIndex(int, int) - ?SetAtomicOrSequenceId@CNSmlStatusContainer@@QAEXHH@Z @ 136 NONAME ; void CNSmlStatusContainer::SetAtomicOrSequenceId(int, int) - ?SetAuthRequiredL@CNSmlAuth@@QAEXXZ @ 137 NONAME ; void CNSmlAuth::SetAuthRequiredL(void) - ?SetCmdIDL@CNSmlResultsContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 138 NONAME ; void CNSmlResultsContainer::SetCmdIDL(int, struct sml_pcdata_s const *) - ?SetCmdL@CNSmlStatusContainer@@QAEXHABVTDesC8@@@Z @ 139 NONAME ; void CNSmlStatusContainer::SetCmdL(int, class TDesC8 const &) - ?SetCmdRefL@CNSmlStatusContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 140 NONAME ; void CNSmlStatusContainer::SetCmdRefL(int, struct sml_pcdata_s const *) - ?SetCredentialL@CNSmlAuth@@QAEXABVTDesC8@@@Z @ 141 NONAME ; void CNSmlAuth::SetCredentialL(class TDesC8 const &) - ?SetDatabaseL@CNSmlURI@@QAEXABVTDesC16@@H@Z @ 142 NONAME ; void CNSmlURI::SetDatabaseL(class TDesC16 const &, int) - ?SetDatabaseL@CNSmlURI@@QAEXABVTDesC8@@H@Z @ 143 NONAME ; void CNSmlURI::SetDatabaseL(class TDesC8 const &, int) - ?SetEndOfDataAlertRequest@CNSmlAgentBase@@QAEXXZ @ 144 NONAME ; void CNSmlAgentBase::SetEndOfDataAlertRequest(void) - ?SetErrorCode@TNSmlError@@QAEXH@Z @ 145 NONAME ; void TNSmlError::SetErrorCode(int) - ?SetHostNameL@CNSmlURI@@QAEXABVTDesC16@@H@Z @ 146 NONAME ; void CNSmlURI::SetHostNameL(class TDesC16 const &, int) - ?SetHostNameL@CNSmlURI@@QAEXABVTDesC8@@H@Z @ 147 NONAME ; void CNSmlURI::SetHostNameL(class TDesC8 const &, int) - ?SetLUIDL@CNSmlResponseController@@QAEXHABVTDesC8@@@Z @ 148 NONAME ; void CNSmlResponseController::SetLUIDL(int, class TDesC8 const &) - ?SetMaximumWorkspaceSize@CNSmlCmdsBase@@QAEXH@Z @ 149 NONAME ; void CNSmlCmdsBase::SetMaximumWorkspaceSize(int) - ?SetMoreData@CNSmlResponseController@@QAEXH@Z @ 150 NONAME ; void CNSmlResponseController::SetMoreData(int) - ?SetNoResponse@CNSmlStatusContainer@@QAEXHH@Z @ 151 NONAME ; void CNSmlStatusContainer::SetNoResponse(int, int) - ?SetOffCallbackCalled@CNSmlAgentBase@@QAEXXZ @ 152 NONAME ; void CNSmlAgentBase::SetOffCallbackCalled(void) - ?SetPerformedInAtomic@CNSmlStatusContainer@@QAEXH@Z @ 153 NONAME ; void CNSmlStatusContainer::SetPerformedInAtomic(int) - ?SetPort@CNSmlURI@@QAEXH@Z @ 154 NONAME ; void CNSmlURI::SetPort(int) - ?SetResponseDetail@CNSmlResponseController@@QAEXHW4TResponseDetail@1@@Z @ 155 NONAME ; void CNSmlResponseController::SetResponseDetail(int, enum CNSmlResponseController::TResponseDetail) - ?SetServerNonceL@CNSmlAgentBase@@UBEXABVTDesC16@@@Z @ 156 NONAME ; void CNSmlAgentBase::SetServerNonceL(class TDesC16 const &) const - ?SetStatusCodeL@CNSmlStatusContainer@@QAEXHHH@Z @ 157 NONAME ; void CNSmlStatusContainer::SetStatusCodeL(int, int, int) - ?SetStatusCodeToAtomicOrSequenceCmdL@CNSmlStatusContainer@@QAEXHHABVTDesC8@@@Z @ 158 NONAME ; void CNSmlStatusContainer::SetStatusCodeToAtomicOrSequenceCmdL(int, int, class TDesC8 const &) - ?SetStatusCodesInAtomicL@CNSmlStatusContainer@@QAEXHHH@Z @ 159 NONAME ; void CNSmlStatusContainer::SetStatusCodesInAtomicL(int, int, int) - ?SetStatusID@CNSmlResultsContainer@@QAEXHH@Z @ 160 NONAME ; void CNSmlResultsContainer::SetStatusID(int, int) - ?SetSyncAgent@CNSmlAuth@@QAEXPAVCNSmlAgentBase@@@Z @ 161 NONAME ; void CNSmlAuth::SetSyncAgent(class CNSmlAgentBase *) - ?SourceIsUnderItem@CNSmlCmdsBase@@IBEHPBUsml_item_list_s@@@Z @ 162 NONAME ; int CNSmlCmdsBase::SourceIsUnderItem(struct sml_item_list_s const *) const - ?StatusCode@CNSmlResponseController@@QBEHH@Z @ 163 NONAME ; int CNSmlResponseController::StatusCode(int) const - ?StatusContainer@CNSmlCmdsBase@@QBEPAVCNSmlStatusContainer@@XZ @ 164 NONAME ; class CNSmlStatusContainer * CNSmlCmdsBase::StatusContainer(void) const - ?StatusDataToCommandL@CNSmlCmdsBase@@IAEHABVTDesC8@@PBUsml_pcdata_s@@IPBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBV2@@Z @ 165 NONAME ; int CNSmlCmdsBase::StatusDataToCommandL(class TDesC8 const &, struct sml_pcdata_s const *, unsigned int, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) - ?StatusDataToGenericCommandL@CNSmlCmdsBase@@IAEHABVTDesC8@@PBUsml_generic_s@@PBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBV2@@Z @ 166 NONAME ; int CNSmlCmdsBase::StatusDataToGenericCommandL(class TDesC8 const &, struct sml_generic_s const *, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) - ?StatusDataToGetCommandL@CNSmlCmdsBase@@IAEHPBUsml_get_put_s@@PBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBVTDesC8@@@Z @ 167 NONAME ; int CNSmlCmdsBase::StatusDataToGetCommandL(struct sml_get_put_s const *, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) - ?StatusID@CNSmlResultsContainer@@QBEHH@Z @ 168 NONAME ; int CNSmlResultsContainer::StatusID(int) const - ?StatusReference@CNSmlAgentBase@@QAEAAVTRequestStatus@@XZ @ 169 NONAME ; class TRequestStatus & CNSmlAgentBase::StatusReference(void) - ?StatusToUnsupportedCommandL@CNSmlCmdsBase@@QAEXHABVTDesC8@@PBUsml_pcdata_s@@I@Z @ 170 NONAME ; void CNSmlCmdsBase::StatusToUnsupportedCommandL(int, class TDesC8 const &, struct sml_pcdata_s const *, unsigned int) - ?SubtractConsumedFromPcData@CNSmlCmdsBase@@IAEXAAPAUsml_item_s@@H@Z @ 171 NONAME ; void CNSmlCmdsBase::SubtractConsumedFromPcData(struct sml_item_s * &, int) - ?SwVersionL@CNSmlPhoneInfo@@QAE?AVTPtrC8@@XZ @ 172 NONAME ; class TPtrC8 CNSmlPhoneInfo::SwVersionL(void) - ?SyncLog@CNSmlAgentBase@@QAEPAVCSyncMLHistoryJob@@XZ @ 173 NONAME ; class CSyncMLHistoryJob * CNSmlAgentBase::SyncLog(void) - ?SyncLogErrorCode@TNSmlError@@QAEHXZ @ 174 NONAME ; int TNSmlError::SyncLogErrorCode(void) - ?SyncLogMessageCode@TNSmlError@@UAEHXZ @ 175 NONAME ; int TNSmlError::SyncLogMessageCode(void) - ?SyncMLDatabaseAllocLC@CNSmlURI@@QAEPAVHBufC16@@XZ @ 176 NONAME ; class HBufC16 * CNSmlURI::SyncMLDatabaseAllocLC(void) - ?TargetIsUnderItem@CNSmlCmdsBase@@IBEHPBUsml_item_list_s@@@Z @ 177 NONAME ; int CNSmlCmdsBase::TargetIsUnderItem(struct sml_item_list_s const *) const - ?TrimRightSpaceAndNull@CNSmlCmdsBase@@IBEXAAVTDes8@@@Z @ 178 NONAME ; void CNSmlCmdsBase::TrimRightSpaceAndNull(class TDes8 &) const - ?WaitingLargeObjectChunk@CNSmlCmdsBase@@QBEHXZ @ 179 NONAME ; int CNSmlCmdsBase::WaitingLargeObjectChunk(void) const - ?WriteMappingInfoToDbL@CNSmlCmdsBase@@UBEHXZ @ 180 NONAME ; int CNSmlCmdsBase::WriteMappingInfoToDbL(void) const - ?smlAddCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 181 NONAME ; int CNSmlAgentBase::smlAddCmdFuncL(struct sml_generic_s *) - ?smlCopyCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 182 NONAME ; int CNSmlAgentBase::smlCopyCmdFuncL(struct sml_generic_s *) - ?smlDeleteCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 183 NONAME ; int CNSmlAgentBase::smlDeleteCmdFuncL(struct sml_generic_s *) - ?smlExecCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_exec_s@@@Z @ 184 NONAME ; int CNSmlAgentBase::smlExecCmdFuncL(struct sml_exec_s *) - ?smlMapCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_map_s@@@Z @ 185 NONAME ; int CNSmlAgentBase::smlMapCmdFuncL(struct sml_map_s *) - ?smlMoveCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 186 NONAME ; int CNSmlAgentBase::smlMoveCmdFuncL(struct sml_generic_s *) - ?smlReplaceCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 187 NONAME ; int CNSmlAgentBase::smlReplaceCmdFuncL(struct sml_generic_s *) - ?smlSearchCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_search_s@@@Z @ 188 NONAME ; int CNSmlAgentBase::smlSearchCmdFuncL(struct sml_search_s *) - ?LaunchAutoRestartL@CNSmlAgentBase@@UAEXH@Z @ 189 NONAME ; void CNSmlAgentBase::LaunchAutoRestartL(int) - ?CheckAPBearerTypeL@CNSmlAgentBase@@QAE?AW4TApBearerType@@K@Z @ 190 NONAME ; enum TApBearerType CNSmlAgentBase::CheckAPBearerTypeL(unsigned long) - ?DoGenericAlertL@CNSmlCmdsBase@@UAEXABVTDesC8@@ABV?$RArray@UCNSmlDMAlertItem@@@@@Z @ 191 NONAME ; void CNSmlCmdsBase::DoGenericAlertL(class TDesC8 const &, class RArray const &) - ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC8@@@Z @ 192 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC8 const &) const + ?TrimRightSpaceAndNull@CNSmlCmdsBase@@IBEXAAVTDes8@@@Z @ 1 NONAME ; void CNSmlCmdsBase::TrimRightSpaceAndNull(class TDes8 &) const + ?DoMetInfLC@CNSmlCmdsBase@@QBEXAAPAUsml_metinf_metinf_s@@@Z @ 2 NONAME ; void CNSmlCmdsBase::DoMetInfLC(struct sml_metinf_metinf_s * &) const + ?NewL@CNSmlURI@@SAPAV1@ABVTDesC8@@H@Z @ 3 NONAME ; class CNSmlURI * CNSmlURI::NewL(class TDesC8 const &, int) + ?BufferAreaForParsingL@CNSmlCmdsBase@@QAE?AVTPtr8@@XZ @ 4 NONAME ; class TPtr8 CNSmlCmdsBase::BufferAreaForParsingL(void) + ?NewLC@CNSmlURI@@SAPAV1@ABVTDesC16@@H@Z @ 5 NONAME ; class CNSmlURI * CNSmlURI::NewLC(class TDesC16 const &, int) + ?SetLUIDL@CNSmlResponseController@@QAEXHABVTDesC8@@@Z @ 6 NONAME ; void CNSmlResponseController::SetLUIDL(int, class TDesC8 const &) + ?DoOutsideCancel@CNSmlAgentBase@@UAEXXZ @ 7 NONAME ; void CNSmlAgentBase::DoOutsideCancel(void) + ?SetCmdL@CNSmlStatusContainer@@QAEXHABVTDesC8@@@Z @ 8 NONAME ; void CNSmlStatusContainer::SetCmdL(int, class TDesC8 const &) + ?MetaTypeLC@CNSmlCmdsBase@@IBEPAVHBufC16@@PBUsml_pcdata_s@@@Z @ 9 NONAME ; class HBufC16 * CNSmlCmdsBase::MetaTypeLC(struct sml_pcdata_s const *) const + ?smlReplaceCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 10 NONAME ; int CNSmlAgentBase::smlReplaceCmdFuncL(struct sml_generic_s *) + ?BusyStatus@CNSmlCmdsBase@@QBEHXZ @ 11 NONAME ; int CNSmlCmdsBase::BusyStatus(void) const + ?HostNameWithPortL@CNSmlURI@@QAE?AVTPtrC16@@H@Z @ 12 NONAME ; class TPtrC16 CNSmlURI::HostNameWithPortL(int) + ?AlertCode@CNSmlCmdsBase@@QBE?AVTPtr8@@PAUsml_alert_s@@@Z @ 13 NONAME ; class TPtr8 CNSmlCmdsBase::AlertCode(struct sml_alert_s *) const + ?CheckStatusCodesAreReceivedL@CNSmlAgentBase@@IAEHH@Z @ 14 NONAME ; int CNSmlAgentBase::CheckStatusCodesAreReceivedL(int) + ?AddItemDataL@CNSmlStatusContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 15 NONAME ; void CNSmlStatusContainer::AddItemDataL(int, struct sml_pcdata_s const *) + ?RunL@CNSmlAgentBase@@UAEXXZ @ 16 NONAME ; void CNSmlAgentBase::RunL(void) + ?smlAddCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 17 NONAME ; int CNSmlAgentBase::smlAddCmdFuncL(struct sml_generic_s *) + ?AddItemL@CNSmlResultsContainer@@QAEXHABVCBufBase@@ABVTDesC8@@1@Z @ 18 NONAME ; void CNSmlResultsContainer::AddItemL(int, class CBufBase const &, class TDesC8 const &, class TDesC8 const &) + ?MarkGenAlertsSentL@CNSmlCmdsBase@@UAEXXZ @ 19 NONAME ; void CNSmlCmdsBase::MarkGenAlertsSentL(void) + ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC16@@1@Z @ 20 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC16 const &, class TDesC16 const &) const + ?ConstructL@CNSmlAgentBase@@IAEXXZ @ 21 NONAME ; void CNSmlAgentBase::ConstructL(void) + ?AddTargetRefL@CNSmlStatusContainer@@QAEXHPBUsml_target_s@@@Z @ 22 NONAME ; void CNSmlStatusContainer::AddTargetRefL(int, struct sml_target_s const *) + ?ClientInitialisationStateL@CNSmlAgentBase@@IAEXXZ @ 23 NONAME ; void CNSmlAgentBase::ClientInitialisationStateL(void) + ?LaunchAutoRestartL@CNSmlAgentBase@@UAEXH@Z @ 24 NONAME ; void CNSmlAgentBase::LaunchAutoRestartL(int) + ?SetCmdRefL@CNSmlStatusContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 25 NONAME ; void CNSmlStatusContainer::SetCmdRefL(int, struct sml_pcdata_s const *) + ?ServerPassword@CNSmlAgentBase@@MBE?AVTPtrC16@@XZ @ 26 NONAME ; class TPtrC16 CNSmlAgentBase::ServerPassword(void) const + ?SetStatusCodesInAtomicL@CNSmlStatusContainer@@QAEXHHH@Z @ 27 NONAME ; void CNSmlStatusContainer::SetStatusCodesInAtomicL(int, int, int) + ?CreateAndInitResponseItemL@CNSmlCmdsBase@@IAEHABVTDesC8@@@Z @ 28 NONAME ; int CNSmlCmdsBase::CreateAndInitResponseItemL(class TDesC8 const &) + ?MoreDataL@CNSmlCmdsBase@@IAE?AW4TNSmlSyncMLStatusCode@TNSmlError@@PBVHBufC8@@PBUsml_item_s@@PBUsml_pcdata_s@@AAPAVCBufBase@@@Z @ 29 NONAME ; enum TNSmlError::TNSmlSyncMLStatusCode CNSmlCmdsBase::MoreDataL(class HBufC8 const *, struct sml_item_s const *, struct sml_pcdata_s const *, class CBufBase * &) + ?ServerModStatusCmdStateL@CNSmlAgentBase@@IAEXPAUsml_status_s@@@Z @ 30 NONAME ; void CNSmlAgentBase::ServerModStatusCmdStateL(struct sml_status_s *) + ?StatusToUnsupportedCommandL@CNSmlCmdsBase@@QAEXHABVTDesC8@@PBUsml_pcdata_s@@I@Z @ 31 NONAME ; void CNSmlCmdsBase::StatusToUnsupportedCommandL(int, class TDesC8 const &, struct sml_pcdata_s const *, unsigned int) + ?DoStatusL@CNSmlCmdsBase@@QAE?AW4TReturnValue@1@PAUsml_status_s@@@Z @ 32 NONAME ; enum CNSmlCmdsBase::TReturnValue CNSmlCmdsBase::DoStatusL(struct sml_status_s *) + ?PCDATAToUnicodeLC@CNSmlCmdsBase@@QBEXABUsml_pcdata_s@@AAPAVHBufC16@@@Z @ 33 NONAME ; void CNSmlCmdsBase::PCDATAToUnicodeLC(struct sml_pcdata_s const &, class HBufC16 * &) const + ??1CNSmlAgentBase@@UAE@XZ @ 34 NONAME ; CNSmlAgentBase::~CNSmlAgentBase(void) + ??0TNSmlError@@QAE@XZ @ 35 NONAME ; TNSmlError::TNSmlError(void) + ?SetNoResponse@CNSmlStatusContainer@@QAEXHH@Z @ 36 NONAME ; void CNSmlStatusContainer::SetNoResponse(int, int) + ?AnyResults@CNSmlResultsContainer@@QBEHXZ @ 37 NONAME ; int CNSmlResultsContainer::AnyResults(void) const + ?WriteMappingInfoToDbL@CNSmlCmdsBase@@UBEHXZ @ 38 NONAME ; int CNSmlCmdsBase::WriteMappingInfoToDbL(void) const + ?StatusContainer@CNSmlCmdsBase@@QBEPAVCNSmlStatusContainer@@XZ @ 39 NONAME ; class CNSmlStatusContainer * CNSmlCmdsBase::StatusContainer(void) const + ?smlMoveCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 40 NONAME ; int CNSmlAgentBase::smlMoveCmdFuncL(struct sml_generic_s *) + ?ServerModAlertCmdStateL@CNSmlAgentBase@@IAEXPAUsml_alert_s@@@Z @ 41 NONAME ; void CNSmlAgentBase::ServerModAlertCmdStateL(struct sml_alert_s *) + ?SetOffCallbackCalled@CNSmlAgentBase@@QAEXXZ @ 42 NONAME ; void CNSmlAgentBase::SetOffCallbackCalled(void) + ?InitAskingDeviceInfoStateL@CNSmlAgentBase@@MAEXXZ @ 43 NONAME ; void CNSmlAgentBase::InitAskingDeviceInfoStateL(void) + ?DoSyncHdrL@CNSmlCmdsBase@@UAEXXZ @ 44 NONAME ; void CNSmlCmdsBase::DoSyncHdrL(void) + ??1TNSmlError@@UAE@XZ @ 45 NONAME ; TNSmlError::~TNSmlError(void) + ?SetAuthRequiredL@CNSmlAuth@@QAEXXZ @ 46 NONAME ; void CNSmlAuth::SetAuthRequiredL(void) + ?SubtractConsumedFromPcData@CNSmlCmdsBase@@IAEXAAPAUsml_item_s@@H@Z @ 47 NONAME ; void CNSmlCmdsBase::SubtractConsumedFromPcData(struct sml_item_s * &, int) + ?ChalType@CNSmlResponseController@@QBE?AVTPtrC8@@H@Z @ 48 NONAME ; class TPtrC8 CNSmlResponseController::ChalType(int) const + ?SwVersionL@CNSmlPhoneInfo@@QAE?AVTPtrC8@@XZ @ 49 NONAME ; class TPtrC8 CNSmlPhoneInfo::SwVersionL(void) + ?RespURI@CNSmlCmdsBase@@QBEPAVCNSmlURI@@XZ @ 50 NONAME ; class CNSmlURI * CNSmlCmdsBase::RespURI(void) const + ?HostNameInUTF8AllocLC@CNSmlURI@@QAEPAVHBufC8@@XZ @ 51 NONAME ; class HBufC8 * CNSmlURI::HostNameInUTF8AllocLC(void) + ?SetAtomicOrSequenceId@CNSmlStatusContainer@@QAEXHH@Z @ 52 NONAME ; void CNSmlStatusContainer::SetAtomicOrSequenceId(int, int) + ?Begin@CNSmlStatusContainer@@QAEXXZ @ 53 NONAME ; void CNSmlStatusContainer::Begin(void) + ?ServerAlertNextEndMessageStateL@CNSmlAgentBase@@IAEXH@Z @ 54 NONAME ; void CNSmlAgentBase::ServerAlertNextEndMessageStateL(int) + ?DoMetaL@CNSmlCmdsBase@@QBEXAAPAUsml_pcdata_s@@PBUsml_metinf_metinf_s@@@Z @ 55 NONAME ; void CNSmlCmdsBase::DoMetaL(struct sml_pcdata_s * &, struct sml_metinf_metinf_s const *) const + ?SetHostNameL@CNSmlURI@@QAEXABVTDesC16@@H@Z @ 56 NONAME ; void CNSmlURI::SetHostNameL(class TDesC16 const &, int) + ?PhoneDataL@CNSmlPhoneInfo@@QBEXW4TPhoneIdType@1@AAVTDes16@@@Z @ 57 NONAME ; void CNSmlPhoneInfo::PhoneDataL(enum CNSmlPhoneInfo::TPhoneIdType, class TDes16 &) const + ?DataUpdateStatusStateL@CNSmlAgentBase@@IAEXXZ @ 58 NONAME ; void CNSmlAgentBase::DataUpdateStatusStateL(void) + ?MarkGenAlertsSentL@CNSmlCmdsBase@@UAEXABVTDesC8@@@Z @ 59 NONAME ; void CNSmlCmdsBase::MarkGenAlertsSentL(class TDesC8 const &) + ?Cmd@CNSmlResponseController@@QBEAAVTDesC8@@H@Z @ 60 NONAME ; class TDesC8 & CNSmlResponseController::Cmd(int) const + ?AddSourceRefL@CNSmlStatusContainer@@QAEXHPBUsml_source_s@@@Z @ 61 NONAME ; void CNSmlStatusContainer::AddSourceRefL(int, struct sml_source_s const *) + ?SetStatusCodeL@CNSmlStatusContainer@@QAEXHHH@Z @ 62 NONAME ; void CNSmlStatusContainer::SetStatusCodeL(int, int, int) + ?SetPort@CNSmlURI@@QAEXH@Z @ 63 NONAME ; void CNSmlURI::SetPort(int) + ?SetErrorCode@TNSmlError@@QAEXH@Z @ 64 NONAME ; void TNSmlError::SetErrorCode(int) + ?SendingStateL@CNSmlAgentBase@@IAEXXZ @ 65 NONAME ; void CNSmlAgentBase::SendingStateL(void) + ?NewL@CNSmlPhoneInfo@@SAPAV1@XZ @ 66 NONAME ; class CNSmlPhoneInfo * CNSmlPhoneInfo::NewL(void) + ?SetDatabaseL@CNSmlURI@@QAEXABVTDesC16@@H@Z @ 67 NONAME ; void CNSmlURI::SetDatabaseL(class TDesC16 const &, int) + ?ResetLargeObjectBuffer@CNSmlCmdsBase@@QAEXXZ @ 68 NONAME ; void CNSmlCmdsBase::ResetLargeObjectBuffer(void) + ?CloseIDMappingTableL@CNSmlCmdsBase@@UAEXXZ @ 69 NONAME ; void CNSmlCmdsBase::CloseIDMappingTableL(void) + ?EndOfServerMessageL@CNSmlCmdsBase@@UBEXXZ @ 70 NONAME ; void CNSmlCmdsBase::EndOfServerMessageL(void) const + ?ResetGenericUserAlertL@CNSmlCmdsBase@@UAEXXZ @ 71 NONAME ; void CNSmlCmdsBase::ResetGenericUserAlertL(void) + ?DoGenericAlertL@CNSmlCmdsBase@@UAEXABVTDesC8@@ABV?$RArray@UCNSmlDMAlertItem@@@@@Z @ 72 NONAME ; void CNSmlCmdsBase::DoGenericAlertL(class TDesC8 const &, class RArray const &) + ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC16@@@Z @ 73 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC16 const &) const + ?CurrentEntryID@CNSmlResultsContainer@@QBEHXZ @ 74 NONAME ; int CNSmlResultsContainer::CurrentEntryID(void) const + ?SetStatusCodeToAtomicOrSequenceCmdL@CNSmlStatusContainer@@QAEXHHABVTDesC8@@@Z @ 75 NONAME ; void CNSmlStatusContainer::SetStatusCodeToAtomicOrSequenceCmdL(int, int, class TDesC8 const &) + ?HBufC16InUnicodeLC@NSmlUnicodeConverter@@SAHABVTDesC8@@AAPAVHBufC16@@@Z @ 76 NONAME ; int NSmlUnicodeConverter::HBufC16InUnicodeLC(class TDesC8 const &, class HBufC16 * &) + ?Challenged@CNSmlAuth@@QBEHXZ @ 77 NONAME ; int CNSmlAuth::Challenged(void) const + ?IsEqualL@CNSmlURI@@QAEHABV1@H@Z @ 78 NONAME ; int CNSmlURI::IsEqualL(class CNSmlURI const &, int) + ?SetHostNameL@CNSmlURI@@QAEXABVTDesC8@@H@Z @ 79 NONAME ; void CNSmlURI::SetHostNameL(class TDesC8 const &, int) + ?ServerObjectSize@CNSmlCmdsBase@@IBEHPBUsml_pcdata_s@@@Z @ 80 NONAME ; int CNSmlCmdsBase::ServerObjectSize(struct sml_pcdata_s const *) const + ??0CNSmlCmdsBase@@QAE@XZ @ 81 NONAME ; CNSmlCmdsBase::CNSmlCmdsBase(void) + ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC16@@@Z @ 82 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC16 const &) const + ?smlMapCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_map_s@@@Z @ 83 NONAME ; int CNSmlAgentBase::smlMapCmdFuncL(struct sml_map_s *) + ?ResetL@CNSmlResponseController@@QAEXXZ @ 84 NONAME ; void CNSmlResponseController::ResetL(void) + ?ProcessStatusCmdL@CNSmlCmdsBase@@UAEXPAUsml_status_s@@@Z @ 85 NONAME ; void CNSmlCmdsBase::ProcessStatusCmdL(struct sml_status_s *) + ?SetCmdIDL@CNSmlResultsContainer@@QAEXHPBUsml_pcdata_s@@@Z @ 86 NONAME ; void CNSmlResultsContainer::SetCmdIDL(int, struct sml_pcdata_s const *) + ?ServerAlertNextStatusCmdStateL@CNSmlAgentBase@@IAEXPAUsml_status_s@@@Z @ 87 NONAME ; void CNSmlAgentBase::ServerAlertNextStatusCmdStateL(struct sml_status_s *) + ?ProcessExecCmdL@CNSmlCmdsBase@@UAEXPAUsml_exec_s@@@Z @ 88 NONAME ; void CNSmlCmdsBase::ProcessExecCmdL(struct sml_exec_s *) + ?HostName@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 89 NONAME ; class TPtrC16 CNSmlURI::HostName(void) + ?DoCancel@CNSmlAgentBase@@UAEXXZ @ 90 NONAME ; void CNSmlAgentBase::DoCancel(void) + ?SyncLog@CNSmlAgentBase@@QAEPAVCSyncMLHistoryJob@@XZ @ 91 NONAME ; class CSyncMLHistoryJob * CNSmlAgentBase::SyncLog(void) + ?StatusDataToGenericCommandL@CNSmlCmdsBase@@IAEHABVTDesC8@@PBUsml_generic_s@@PBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBV2@@Z @ 92 NONAME ; int CNSmlCmdsBase::StatusDataToGenericCommandL(class TDesC8 const &, struct sml_generic_s const *, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) + ?ServerAlertNextAlertCmdStateL@CNSmlAgentBase@@IAEXPAUsml_alert_s@@@Z @ 93 NONAME ; void CNSmlAgentBase::ServerAlertNextAlertCmdStateL(struct sml_alert_s *) + ?SaveIfNonceL@CNSmlAgentBase@@IBEXABVCNSmlResponseController@@H@Z @ 94 NONAME ; void CNSmlAgentBase::SaveIfNonceL(class CNSmlResponseController const &, int) const + ?FetchIDMappingTableL@CNSmlCmdsBase@@UAEXH@Z @ 95 NONAME ; void CNSmlCmdsBase::FetchIDMappingTableL(int) + ?ServerAuth@CNSmlCmdsBase@@QBEPAVCNSmlAuth@@XZ @ 96 NONAME ; class CNSmlAuth * CNSmlCmdsBase::ServerAuth(void) const + ?NewLC@CNSmlPhoneInfo@@SAPAV1@XZ @ 97 NONAME ; class CNSmlPhoneInfo * CNSmlPhoneInfo::NewLC(void) + ?smlDeleteCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 98 NONAME ; int CNSmlAgentBase::smlDeleteCmdFuncL(struct sml_generic_s *) + ?InitStartingMessageStateBaseL@CNSmlAgentBase@@IAEXXZ @ 99 NONAME ; void CNSmlAgentBase::InitStartingMessageStateBaseL(void) + ?DeleteIDMappingTableL@CNSmlCmdsBase@@UAEHABVTDesC16@@0@Z @ 100 NONAME ; int CNSmlCmdsBase::DeleteIDMappingTableL(class TDesC16 const &, class TDesC16 const &) + ?StatusReference@CNSmlAgentBase@@QAEAAVTRequestStatus@@XZ @ 101 NONAME ; class TRequestStatus & CNSmlAgentBase::StatusReference(void) + ?SetCredentialL@CNSmlAuth@@QAEXABVTDesC8@@@Z @ 102 NONAME ; void CNSmlAuth::SetCredentialL(class TDesC8 const &) + ?DoAnchorsL@CNSmlCmdsBase@@IBEXAAUsml_metinf_metinf_s@@PBVTDesC8@@1@Z @ 103 NONAME ; void CNSmlCmdsBase::DoAnchorsL(struct sml_metinf_metinf_s &, class TDesC8 const *, class TDesC8 const *) const + ?DoSourceL@CNSmlCmdsBase@@QBEXAAPAUsml_source_s@@ABVTDesC8@@@Z @ 104 NONAME ; void CNSmlCmdsBase::DoSourceL(struct sml_source_s * &, class TDesC8 const &) const + ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC16@@1@Z @ 105 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC16 const &, class TDesC16 const &) const + ?DoGenericAlertL@CNSmlCmdsBase@@UAEXABVTDesC8@@00H0@Z @ 106 NONAME ; void CNSmlCmdsBase::DoGenericAlertL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &, int, class TDesC8 const &) + ?ProcessMapCmdL@CNSmlCmdsBase@@UAEXPAUsml_map_s@@@Z @ 107 NONAME ; void CNSmlCmdsBase::ProcessMapCmdL(struct sml_map_s *) + ?ReceivingStateL@CNSmlAgentBase@@IAEXXZ @ 108 NONAME ; void CNSmlAgentBase::ReceivingStateL(void) + ??4CNSmlURI@@QAEAAV0@ABV0@@Z @ 109 NONAME ; class CNSmlURI & CNSmlURI::operator=(class CNSmlURI const &) + ?ProcessReceivedDataL@CNSmlCmdsBase@@QAEHXZ @ 110 NONAME ; int CNSmlCmdsBase::ProcessReceivedDataL(void) + ?SetPerformedInAtomic@CNSmlStatusContainer@@QAEXH@Z @ 111 NONAME ; void CNSmlStatusContainer::SetPerformedInAtomic(int) + ?SetMoreData@CNSmlResponseController@@QAEXH@Z @ 112 NONAME ; void CNSmlResponseController::SetMoreData(int) + ?DatabaseMatchesL@CNSmlURI@@QAEHABVTDesC16@@@Z @ 113 NONAME ; int CNSmlURI::DatabaseMatchesL(class TDesC16 const &) + ?LastEntryID@CNSmlStatusContainer@@QBEHXZ @ 114 NONAME ; int CNSmlStatusContainer::LastEntryID(void) const + ?ResponseController@CNSmlCmdsBase@@QBEPAVCNSmlResponseController@@XZ @ 115 NONAME ; class CNSmlResponseController * CNSmlCmdsBase::ResponseController(void) const + ?SetResponseDetail@CNSmlResponseController@@QAEXHW4TResponseDetail@1@@Z @ 116 NONAME ; void CNSmlResponseController::SetResponseDetail(int, enum CNSmlResponseController::TResponseDetail) + ?ResultAlertStateL@CNSmlAgentBase@@IAEXXZ @ 117 NONAME ; void CNSmlAgentBase::ResultAlertStateL(void) + ?ConstructL@CNSmlCmdsBase@@IAEXPAVCNSmlAgentBase@@ABVTDesC8@@1HABVHBufC16@@PAVCNSmlURI@@H@Z @ 118 NONAME ; void CNSmlCmdsBase::ConstructL(class CNSmlAgentBase *, class TDesC8 const &, class TDesC8 const &, int, class HBufC16 const &, class CNSmlURI *, int) + ?DoCmdIdL@CNSmlCmdsBase@@IAEXAAPAUsml_pcdata_s@@@Z @ 119 NONAME ; void CNSmlCmdsBase::DoCmdIdL(struct sml_pcdata_s * &) + ?smlSearchCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_search_s@@@Z @ 120 NONAME ; int CNSmlAgentBase::smlSearchCmdFuncL(struct sml_search_s *) + ?IsFlagSet@CNSmlCmdsBase@@IBEHABI0@Z @ 121 NONAME ; int CNSmlCmdsBase::IsFlagSet(unsigned int const &, unsigned int const &) const + ?SetServerNonceL@CNSmlAgentBase@@UBEXABVTDesC16@@@Z @ 122 NONAME ; void CNSmlAgentBase::SetServerNonceL(class TDesC16 const &) const + ?DoTargetL@CNSmlCmdsBase@@QBEXAAPAUsml_target_s@@ABVTDesC8@@@Z @ 123 NONAME ; void CNSmlCmdsBase::DoTargetL(struct sml_target_s * &, class TDesC8 const &) const + ?SetEndOfDataAlertRequest@CNSmlAgentBase@@QAEXXZ @ 124 NONAME ; void CNSmlAgentBase::SetEndOfDataAlertRequest(void) + ?ServerUserName@CNSmlAgentBase@@MBE?AVTPtrC16@@XZ @ 125 NONAME ; class TPtrC16 CNSmlAgentBase::ServerUserName(void) const + ?ClientAlertNextStateL@CNSmlAgentBase@@IAEXXZ @ 126 NONAME ; void CNSmlAgentBase::ClientAlertNextStateL(void) + ?NewLC@CNSmlURI@@SAPAV1@XZ @ 127 NONAME ; class CNSmlURI * CNSmlURI::NewLC(void) + ?DisconnectFromOtherServers@CNSmlCmdsBase@@UAEXXZ @ 128 NONAME ; void CNSmlCmdsBase::DisconnectFromOtherServers(void) + ?SyncLogMessageCode@TNSmlError@@UAEHXZ @ 129 NONAME ; int TNSmlError::SyncLogMessageCode(void) + ?ServerModEndMessageStateL@CNSmlAgentBase@@IAEXH@Z @ 130 NONAME ; void CNSmlAgentBase::ServerModEndMessageStateL(int) + ?HBufC8InUTF8LC@NSmlUnicodeConverter@@SAHABVTDesC16@@AAPAVHBufC8@@@Z @ 131 NONAME ; int NSmlUnicodeConverter::HBufC8InUTF8LC(class TDesC16 const &, class HBufC8 * &) + ?ProcessSearchCmdL@CNSmlCmdsBase@@UAEXPAUsml_search_s@@@Z @ 132 NONAME ; void CNSmlCmdsBase::ProcessSearchCmdL(struct sml_search_s *) + ?ProfileId@CNSmlAgentBase@@QBEHXZ @ 133 NONAME ; int CNSmlAgentBase::ProfileId(void) const + ?smlCopyCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_generic_s@@@Z @ 134 NONAME ; int CNSmlAgentBase::smlCopyCmdFuncL(struct sml_generic_s *) + ?NewL@CNSmlURI@@SAPAV1@XZ @ 135 NONAME ; class CNSmlURI * CNSmlURI::NewL(void) + ?DoGenericUserAlertL@CNSmlCmdsBase@@UAEHH@Z @ 136 NONAME ; int CNSmlCmdsBase::DoGenericUserAlertL(int) + ?HBufC16InUnicodeL@NSmlUnicodeConverter@@SAHABVTDesC8@@AAPAVHBufC16@@@Z @ 137 NONAME ; int NSmlUnicodeConverter::HBufC16InUnicodeL(class TDesC8 const &, class HBufC16 * &) + ?MoreData@CNSmlResponseController@@QBEHH@Z @ 138 NONAME ; int CNSmlResponseController::MoreData(int) const + ?RemoveWritten@CNSmlResultsContainer@@QAEXH@Z @ 139 NONAME ; void CNSmlResultsContainer::RemoveWritten(int) + ?MetaTypeInUtf8LC@CNSmlCmdsBase@@IBEPAVHBufC8@@PBUsml_pcdata_s@@@Z @ 140 NONAME ; class HBufC8 * CNSmlCmdsBase::MetaTypeInUtf8LC(struct sml_pcdata_s const *) const + ?StatusDataToGetCommandL@CNSmlCmdsBase@@IAEHPBUsml_get_put_s@@PBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBVTDesC8@@@Z @ 141 NONAME ; int CNSmlCmdsBase::StatusDataToGetCommandL(struct sml_get_put_s const *, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) + ?AppIndex@CNSmlResponseController@@QBEHH@Z @ 142 NONAME ; int CNSmlResponseController::AppIndex(int) const + ?WaitingLargeObjectChunk@CNSmlCmdsBase@@QBEHXZ @ 143 NONAME ; int CNSmlCmdsBase::WaitingLargeObjectChunk(void) const + ?SetMaximumWorkspaceSize@CNSmlCmdsBase@@QAEXH@Z @ 144 NONAME ; void CNSmlCmdsBase::SetMaximumWorkspaceSize(int) + ?StatusCode@CNSmlResponseController@@QBEHH@Z @ 145 NONAME ; int CNSmlResponseController::StatusCode(int) const + ?smlExecCmdFuncL@CNSmlAgentBase@@UAEHPAUsml_exec_s@@@Z @ 146 NONAME ; int CNSmlAgentBase::smlExecCmdFuncL(struct sml_exec_s *) + ?EntryID@CNSmlResponseController@@QBEHHH@Z @ 147 NONAME ; int CNSmlResponseController::EntryID(int, int) const + ?ProcessSyncHdrL@CNSmlCmdsBase@@UAEXPAUsml_sync_hdr_s@@@Z @ 148 NONAME ; void CNSmlCmdsBase::ProcessSyncHdrL(struct sml_sync_hdr_s *) + ?ProcessCopyCmdL@CNSmlCmdsBase@@UAEXPAUsml_generic_s@@@Z @ 149 NONAME ; void CNSmlCmdsBase::ProcessCopyCmdL(struct sml_generic_s *) + ?ServerNonceAllocL@CNSmlAgentBase@@UBEPAVHBufC16@@XZ @ 150 NONAME ; class HBufC16 * CNSmlAgentBase::ServerNonceAllocL(void) const + ?ResultsContainer@CNSmlCmdsBase@@QBEPAVCNSmlResultsContainer@@XZ @ 151 NONAME ; class CNSmlResultsContainer * CNSmlCmdsBase::ResultsContainer(void) const + ?DataUpdateStatusMakingMapStateL@CNSmlAgentBase@@MAEXXZ @ 152 NONAME ; void CNSmlAgentBase::DataUpdateStatusMakingMapStateL(void) + ?SetSyncAgent@CNSmlAuth@@QAEXPAVCNSmlAgentBase@@@Z @ 153 NONAME ; void CNSmlAuth::SetSyncAgent(class CNSmlAgentBase *) + ?MetaFormatInUtf8LC@CNSmlCmdsBase@@IBEPAVHBufC8@@PBUsml_pcdata_s@@@Z @ 154 NONAME ; class HBufC8 * CNSmlCmdsBase::MetaFormatInUtf8LC(struct sml_pcdata_s const *) const + ?ResponseDetail@CNSmlResponseController@@QBE?AW4TResponseDetail@1@H@Z @ 155 NONAME ; enum CNSmlResponseController::TResponseDetail CNSmlResponseController::ResponseDetail(int) const + ?StatusID@CNSmlResultsContainer@@QBEHH@Z @ 156 NONAME ; int CNSmlResultsContainer::StatusID(int) const + ?ErrorCodeConversion@TNSmlError@@MAEXXZ @ 157 NONAME ; void TNSmlError::ErrorCodeConversion(void) + ?ServerMaxObjSize@CNSmlCmdsBase@@IBEHPBUsml_pcdata_s@@@Z @ 158 NONAME ; int CNSmlCmdsBase::ServerMaxObjSize(struct sml_pcdata_s const *) const + ?ServerModStartMessageStateL@CNSmlAgentBase@@IAEXPAUsml_sync_hdr_s@@@Z @ 159 NONAME ; void CNSmlAgentBase::ServerModStartMessageStateL(struct sml_sync_hdr_s *) + ?CallbackCalled@CNSmlAgentBase@@QBEHXZ @ 160 NONAME ; int CNSmlAgentBase::CallbackCalled(void) const + ?PcdataNewL@CNSmlCmdsBase@@QBEXAAPAUsml_pcdata_s@@ABVTDesC8@@@Z @ 161 NONAME ; void CNSmlCmdsBase::PcdataNewL(struct sml_pcdata_s * &, class TDesC8 const &) const + ?NextResultsElement@CNSmlResultsContainer@@QAEHAAPAUsml_results_s@@@Z @ 162 NONAME ; int CNSmlResultsContainer::NextResultsElement(struct sml_results_s * &) + ?SetAppIndex@CNSmlResponseController@@QAEXHH@Z @ 163 NONAME ; void CNSmlResponseController::SetAppIndex(int, int) + ?Begin@CNSmlResultsContainer@@QAEXXZ @ 164 NONAME ; void CNSmlResultsContainer::Begin(void) + ?SetDatabaseL@CNSmlURI@@QAEXABVTDesC8@@H@Z @ 165 NONAME ; void CNSmlURI::SetDatabaseL(class TDesC8 const &, int) + ?CreateNewResultsL@CNSmlResultsContainer@@QAEHABVTDesC8@@0PBUsml_target_s@@PBUsml_source_s@@@Z @ 166 NONAME ; int CNSmlResultsContainer::CreateNewResultsL(class TDesC8 const &, class TDesC8 const &, struct sml_target_s const *, struct sml_source_s const *) + ?SyncMLDatabaseAllocLC@CNSmlURI@@QAEPAVHBufC16@@XZ @ 167 NONAME ; class HBufC16 * CNSmlURI::SyncMLDatabaseAllocLC(void) + ?DataUpdateStatusStartingMessageStateBaseL@CNSmlAgentBase@@IAEXXZ @ 168 NONAME ; void CNSmlAgentBase::DataUpdateStatusStartingMessageStateBaseL(void) + ?DataUpdateStatusMakingResultsStateL@CNSmlAgentBase@@MAEXXZ @ 169 NONAME ; void CNSmlAgentBase::DataUpdateStatusMakingResultsStateL(void) + ??0CNSmlAgentBase@@QAE@XZ @ 170 NONAME ; CNSmlAgentBase::CNSmlAgentBase(void) + ?NewLC@CNSmlURI@@SAPAV1@ABVTDesC8@@H@Z @ 171 NONAME ; class CNSmlURI * CNSmlURI::NewLC(class TDesC8 const &, int) + ?ServerAlertNextStateL@CNSmlAgentBase@@IAEXXZ @ 172 NONAME ; void CNSmlAgentBase::ServerAlertNextStateL(void) + ?LUID@CNSmlResponseController@@QBE?AVTPtrC8@@H@Z @ 173 NONAME ; class TPtrC8 CNSmlResponseController::LUID(int) const + ?NextStatusElement@CNSmlStatusContainer@@QAEHAAPAUsml_status_s@@H@Z @ 174 NONAME ; int CNSmlStatusContainer::NextStatusElement(struct sml_status_s * &, int) + ?AuthenticationRequirementL@CNSmlAgentBase@@IAEHABVCNSmlResponseController@@H@Z @ 175 NONAME ; int CNSmlAgentBase::AuthenticationRequirementL(class CNSmlResponseController const &, int) + ?StatusDataToCommandL@CNSmlCmdsBase@@IAEHABVTDesC8@@PBUsml_pcdata_s@@IPBUsml_item_s@@W4TNSmlSyncMLStatusCode@TNSmlError@@PBV2@@Z @ 176 NONAME ; int CNSmlCmdsBase::StatusDataToCommandL(class TDesC8 const &, struct sml_pcdata_s const *, unsigned int, struct sml_item_s const *, enum TNSmlError::TNSmlSyncMLStatusCode, class TDesC8 const *) + ?SourceIsUnderItem@CNSmlCmdsBase@@IBEHPBUsml_item_list_s@@@Z @ 177 NONAME ; int CNSmlCmdsBase::SourceIsUnderItem(struct sml_item_list_s const *) const + ?SetStatusID@CNSmlResultsContainer@@QAEXHH@Z @ 178 NONAME ; void CNSmlResultsContainer::SetStatusID(int, int) + ?CreateNewStatusElementL@CNSmlStatusContainer@@QAEHXZ @ 179 NONAME ; int CNSmlStatusContainer::CreateNewStatusElementL(void) + ?FreeBaseResources@CNSmlAgentBase@@IAEXXZ @ 180 NONAME ; void CNSmlAgentBase::FreeBaseResources(void) + ??1CNSmlCmdsBase@@UAE@XZ @ 181 NONAME ; CNSmlCmdsBase::~CNSmlCmdsBase(void) + ?NewL@CNSmlURI@@SAPAV1@ABVTDesC16@@H@Z @ 182 NONAME ; class CNSmlURI * CNSmlURI::NewL(class TDesC16 const &, int) + ?NewL@CNSmlAuth@@SAPAV1@XZ @ 183 NONAME ; class CNSmlAuth * CNSmlAuth::NewL(void) + ?DataBaseWithoutRelativePrefix@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 184 NONAME ; class TPtrC16 CNSmlURI::DataBaseWithoutRelativePrefix(void) + ?Database@CNSmlURI@@QAE?AVTPtrC16@@XZ @ 185 NONAME ; class TPtrC16 CNSmlURI::Database(void) + ?DoMaxObjSizeL@CNSmlCmdsBase@@IBEXAAUsml_metinf_metinf_s@@H@Z @ 186 NONAME ; void CNSmlCmdsBase::DoMaxObjSizeL(struct sml_metinf_metinf_s &, int) const + ?SyncLogErrorCode@TNSmlError@@QAEHXZ @ 187 NONAME ; int TNSmlError::SyncLogErrorCode(void) + ?ClientAlertNextMakingMapStateL@CNSmlAgentBase@@MAEXXZ @ 188 NONAME ; void CNSmlAgentBase::ClientAlertNextMakingMapStateL(void) + ?TargetIsUnderItem@CNSmlCmdsBase@@IBEHPBUsml_item_list_s@@@Z @ 189 NONAME ; int CNSmlCmdsBase::TargetIsUnderItem(struct sml_item_list_s const *) const + ?ServerAlertNextStartMessageStateL@CNSmlAgentBase@@IAEXPAUsml_sync_hdr_s@@@Z @ 190 NONAME ; void CNSmlAgentBase::ServerAlertNextStartMessageStateL(struct sml_sync_hdr_s *) + ?BeginningStateL@CNSmlAgentBase@@IAEXXZ @ 191 NONAME ; void CNSmlAgentBase::BeginningStateL(void) diff -r 2c8580950a26 -r 5d0ec111abfc syncmlfw/common/syncagent/bld/DEF/eabiu.def --- a/syncmlfw/common/syncagent/bld/DEF/eabiu.def Fri May 14 16:42:50 2010 +0300 +++ b/syncmlfw/common/syncagent/bld/DEF/eabiu.def Thu May 27 13:43:36 2010 +0300 @@ -11,217 +11,216 @@ _ZN13CNSmlCmdsBase10ConstructLEP14CNSmlAgentBaseRK6TDesC8S4_iRK7HBufC16P8CNSmlURIi @ 10 NONAME _ZN13CNSmlCmdsBase10DoSyncHdrLEv @ 11 NONAME _ZN13CNSmlCmdsBase14ProcessMapCmdLEP9sml_map_s @ 12 NONAME - _ZN13CNSmlCmdsBase15DoGenericAlertLERK6TDesC8S2_S2_iS2_ @ 13 NONAME - _ZN13CNSmlCmdsBase15ProcessCopyCmdLEP13sml_generic_s @ 14 NONAME - _ZN13CNSmlCmdsBase15ProcessExecCmdLEP10sml_exec_s @ 15 NONAME - _ZN13CNSmlCmdsBase15ProcessSyncHdrLEP14sml_sync_hdr_s @ 16 NONAME - _ZN13CNSmlCmdsBase17ProcessSearchCmdLEP12sml_search_s @ 17 NONAME - _ZN13CNSmlCmdsBase17ProcessStatusCmdLEP12sml_status_s @ 18 NONAME - _ZN13CNSmlCmdsBase18MarkGenAlertsSentLERK6TDesC8 @ 19 NONAME - _ZN13CNSmlCmdsBase18MarkGenAlertsSentLEv @ 20 NONAME - _ZN13CNSmlCmdsBase19DoGenericUserAlertLEi @ 21 NONAME - _ZN13CNSmlCmdsBase20CloseIDMappingTableLEv @ 22 NONAME - _ZN13CNSmlCmdsBase20FetchIDMappingTableLEi @ 23 NONAME - _ZN13CNSmlCmdsBase20ProcessReceivedDataLEv @ 24 NONAME - _ZN13CNSmlCmdsBase20StatusDataToCommandLERK6TDesC8PK12sml_pcdata_sjPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPS1_ @ 25 NONAME - _ZN13CNSmlCmdsBase21BufferAreaForParsingLEv @ 26 NONAME - _ZN13CNSmlCmdsBase21DeleteIDMappingTableLERK7TDesC16S2_ @ 27 NONAME - _ZN13CNSmlCmdsBase22ResetGenericUserAlertLEv @ 28 NONAME - _ZN13CNSmlCmdsBase22ResetLargeObjectBufferEv @ 29 NONAME - _ZN13CNSmlCmdsBase23SetMaximumWorkspaceSizeEi @ 30 NONAME - _ZN13CNSmlCmdsBase23StatusDataToGetCommandLEPK13sml_get_put_sPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPK6TDesC8 @ 31 NONAME - _ZN13CNSmlCmdsBase26CreateAndInitResponseItemLERK6TDesC8 @ 32 NONAME - _ZN13CNSmlCmdsBase26DisconnectFromOtherServersEv @ 33 NONAME - _ZN13CNSmlCmdsBase26SubtractConsumedFromPcDataERP10sml_item_si @ 34 NONAME - _ZN13CNSmlCmdsBase27StatusDataToGenericCommandLERK6TDesC8PK13sml_generic_sPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPS1_ @ 35 NONAME - _ZN13CNSmlCmdsBase27StatusToUnsupportedCommandLEiRK6TDesC8PK12sml_pcdata_sj @ 36 NONAME - _ZN13CNSmlCmdsBase8DoCmdIdLERP12sml_pcdata_s @ 37 NONAME - _ZN13CNSmlCmdsBase9DoStatusLEP12sml_status_s @ 38 NONAME - _ZN13CNSmlCmdsBase9MoreDataLEPK6HBufC8PK10sml_item_sPK12sml_pcdata_sRP8CBufBase @ 39 NONAME - _ZN13CNSmlCmdsBaseC2Ev @ 40 NONAME - _ZN13CNSmlCmdsBaseD0Ev @ 41 NONAME - _ZN13CNSmlCmdsBaseD1Ev @ 42 NONAME - _ZN13CNSmlCmdsBaseD2Ev @ 43 NONAME - _ZN14CNSmlAgentBase10ConstructLEv @ 44 NONAME - _ZN14CNSmlAgentBase13SendingStateLEv @ 45 NONAME - _ZN14CNSmlAgentBase14smlAddCmdFuncLEP13sml_generic_s @ 46 NONAME - _ZN14CNSmlAgentBase14smlMapCmdFuncLEP9sml_map_s @ 47 NONAME - _ZN14CNSmlAgentBase15BeginningStateLEv @ 48 NONAME - _ZN14CNSmlAgentBase15DoOutsideCancelEv @ 49 NONAME - _ZN14CNSmlAgentBase15ReceivingStateLEv @ 50 NONAME - _ZN14CNSmlAgentBase15StatusReferenceEv @ 51 NONAME - _ZN14CNSmlAgentBase15smlCopyCmdFuncLEP13sml_generic_s @ 52 NONAME - _ZN14CNSmlAgentBase15smlExecCmdFuncLEP10sml_exec_s @ 53 NONAME - _ZN14CNSmlAgentBase15smlMoveCmdFuncLEP13sml_generic_s @ 54 NONAME - _ZN14CNSmlAgentBase17FreeBaseResourcesEv @ 55 NONAME - _ZN14CNSmlAgentBase17ResultAlertStateLEv @ 56 NONAME - _ZN14CNSmlAgentBase17smlDeleteCmdFuncLEP13sml_generic_s @ 57 NONAME - _ZN14CNSmlAgentBase17smlSearchCmdFuncLEP12sml_search_s @ 58 NONAME - _ZN14CNSmlAgentBase18smlReplaceCmdFuncLEP13sml_generic_s @ 59 NONAME - _ZN14CNSmlAgentBase20SetOffCallbackCalledEv @ 60 NONAME - _ZN14CNSmlAgentBase21ClientAlertNextStateLEv @ 61 NONAME - _ZN14CNSmlAgentBase21ServerAlertNextStateLEv @ 62 NONAME - _ZN14CNSmlAgentBase22DataUpdateStatusStateLEv @ 63 NONAME - _ZN14CNSmlAgentBase23ServerModAlertCmdStateLEP11sml_alert_s @ 64 NONAME - _ZN14CNSmlAgentBase24ServerModStatusCmdStateLEP12sml_status_s @ 65 NONAME - _ZN14CNSmlAgentBase24SetEndOfDataAlertRequestEv @ 66 NONAME - _ZN14CNSmlAgentBase25ServerModEndMessageStateLEi @ 67 NONAME - _ZN14CNSmlAgentBase26AuthenticationRequirementLERK23CNSmlResponseControlleri @ 68 NONAME - _ZN14CNSmlAgentBase26ClientInitialisationStateLEv @ 69 NONAME - _ZN14CNSmlAgentBase26InitAskingDeviceInfoStateLEv @ 70 NONAME - _ZN14CNSmlAgentBase27ServerModStartMessageStateLEP14sml_sync_hdr_s @ 71 NONAME - _ZN14CNSmlAgentBase28CheckStatusCodesAreReceivedLEi @ 72 NONAME - _ZN14CNSmlAgentBase29InitStartingMessageStateBaseLEv @ 73 NONAME - _ZN14CNSmlAgentBase29ServerAlertNextAlertCmdStateLEP11sml_alert_s @ 74 NONAME - _ZN14CNSmlAgentBase30ClientAlertNextMakingMapStateLEv @ 75 NONAME - _ZN14CNSmlAgentBase30ServerAlertNextStatusCmdStateLEP12sml_status_s @ 76 NONAME - _ZN14CNSmlAgentBase31DataUpdateStatusMakingMapStateLEv @ 77 NONAME - _ZN14CNSmlAgentBase31ServerAlertNextEndMessageStateLEi @ 78 NONAME - _ZN14CNSmlAgentBase33ServerAlertNextStartMessageStateLEP14sml_sync_hdr_s @ 79 NONAME - _ZN14CNSmlAgentBase35DataUpdateStatusMakingResultsStateLEv @ 80 NONAME - _ZN14CNSmlAgentBase41DataUpdateStatusStartingMessageStateBaseLEv @ 81 NONAME - _ZN14CNSmlAgentBase4RunLEv @ 82 NONAME - _ZN14CNSmlAgentBase7SyncLogEv @ 83 NONAME - _ZN14CNSmlAgentBase8DoCancelEv @ 84 NONAME - _ZN14CNSmlAgentBaseC2Ev @ 85 NONAME - _ZN14CNSmlAgentBaseD0Ev @ 86 NONAME - _ZN14CNSmlAgentBaseD1Ev @ 87 NONAME - _ZN14CNSmlAgentBaseD2Ev @ 88 NONAME - _ZN14CNSmlPhoneInfo10SwVersionLEv @ 89 NONAME - _ZN14CNSmlPhoneInfo4NewLEv @ 90 NONAME - _ZN14CNSmlPhoneInfo5NewLCEv @ 91 NONAME - _ZN20CNSmlStatusContainer10SetCmdRefLEiPK12sml_pcdata_s @ 92 NONAME - _ZN20CNSmlStatusContainer12AddItemDataLEiPK12sml_pcdata_s @ 93 NONAME - _ZN20CNSmlStatusContainer13AddSourceRefLEiPK12sml_source_s @ 94 NONAME - _ZN20CNSmlStatusContainer13AddTargetRefLEiPK12sml_target_s @ 95 NONAME - _ZN20CNSmlStatusContainer13SetNoResponseEii @ 96 NONAME - _ZN20CNSmlStatusContainer14SetStatusCodeLEiii @ 97 NONAME - _ZN20CNSmlStatusContainer17NextStatusElementERP12sml_status_si @ 98 NONAME - _ZN20CNSmlStatusContainer20SetPerformedInAtomicEi @ 99 NONAME - _ZN20CNSmlStatusContainer21SetAtomicOrSequenceIdEii @ 100 NONAME - _ZN20CNSmlStatusContainer23CreateNewStatusElementLEv @ 101 NONAME - _ZN20CNSmlStatusContainer23SetStatusCodesInAtomicLEiii @ 102 NONAME - _ZN20CNSmlStatusContainer35SetStatusCodeToAtomicOrSequenceCmdLEiiRK6TDesC8 @ 103 NONAME - _ZN20CNSmlStatusContainer5BeginEv @ 104 NONAME - _ZN20CNSmlStatusContainer7SetCmdLEiRK6TDesC8 @ 105 NONAME - _ZN20NSmlUnicodeConverter14HBufC8InUTF8LCERK7TDesC16RP6HBufC8 @ 106 NONAME - _ZN20NSmlUnicodeConverter17HBufC16InUnicodeLERK6TDesC8RP7HBufC16 @ 107 NONAME - _ZN20NSmlUnicodeConverter18HBufC16InUnicodeLCERK6TDesC8RP7HBufC16 @ 108 NONAME - _ZN21CNSmlResultsContainer11SetStatusIDEii @ 109 NONAME - _ZN21CNSmlResultsContainer13RemoveWrittenEi @ 110 NONAME - _ZN21CNSmlResultsContainer17CreateNewResultsLERK6TDesC8S2_PK12sml_target_sPK12sml_source_s @ 111 NONAME - _ZN21CNSmlResultsContainer18NextResultsElementERP13sml_results_s @ 112 NONAME - _ZN21CNSmlResultsContainer5BeginEv @ 113 NONAME - _ZN21CNSmlResultsContainer8AddItemLEiRK8CBufBaseRK6TDesC8S5_ @ 114 NONAME - _ZN21CNSmlResultsContainer9SetCmdIDLEiPK12sml_pcdata_s @ 115 NONAME - _ZN23CNSmlResponseController11SetAppIndexEii @ 116 NONAME - _ZN23CNSmlResponseController11SetMoreDataEi @ 117 NONAME - _ZN23CNSmlResponseController17SetResponseDetailEiNS_15TResponseDetailE @ 118 NONAME - _ZN23CNSmlResponseController6ResetLEv @ 119 NONAME - _ZN23CNSmlResponseController8SetLUIDLEiRK6TDesC8 @ 120 NONAME - _ZN8CNSmlURI12SetDatabaseLERK6TDesC8i @ 121 NONAME - _ZN8CNSmlURI12SetDatabaseLERK7TDesC16i @ 122 NONAME - _ZN8CNSmlURI12SetHostNameLERK6TDesC8i @ 123 NONAME - _ZN8CNSmlURI12SetHostNameLERK7TDesC16i @ 124 NONAME - _ZN8CNSmlURI16DatabaseMatchesLERK7TDesC16 @ 125 NONAME - _ZN8CNSmlURI17HostNameWithPortLEi @ 126 NONAME - _ZN8CNSmlURI21HostNameInUTF8AllocLCEv @ 127 NONAME - _ZN8CNSmlURI21SyncMLDatabaseAllocLCEv @ 128 NONAME - _ZN8CNSmlURI29DataBaseWithoutRelativePrefixEv @ 129 NONAME - _ZN8CNSmlURI4NewLERK6TDesC8i @ 130 NONAME - _ZN8CNSmlURI4NewLERK7TDesC16i @ 131 NONAME - _ZN8CNSmlURI4NewLEv @ 132 NONAME - _ZN8CNSmlURI5NewLCERK6TDesC8i @ 133 NONAME - _ZN8CNSmlURI5NewLCERK7TDesC16i @ 134 NONAME - _ZN8CNSmlURI5NewLCEv @ 135 NONAME - _ZN8CNSmlURI7SetPortEi @ 136 NONAME - _ZN8CNSmlURI8DatabaseEv @ 137 NONAME - _ZN8CNSmlURI8HostNameEv @ 138 NONAME - _ZN8CNSmlURI8IsEqualLERKS_i @ 139 NONAME - _ZN8CNSmlURIaSERKS_ @ 140 NONAME - _ZN9CNSmlAuth12SetSyncAgentEP14CNSmlAgentBase @ 141 NONAME - _ZN9CNSmlAuth14SetCredentialLERK6TDesC8 @ 142 NONAME - _ZN9CNSmlAuth16SetAuthRequiredLEv @ 143 NONAME - _ZN9CNSmlAuth4NewLEv @ 144 NONAME - _ZNK13CNSmlCmdsBase10BusyStatusEv @ 145 NONAME - _ZNK13CNSmlCmdsBase10DoAnchorsLER19sml_metinf_metinf_sPK6TDesC8S4_ @ 146 NONAME - _ZNK13CNSmlCmdsBase10DoMetInfLCERP19sml_metinf_metinf_s @ 147 NONAME - _ZNK13CNSmlCmdsBase10MetaTypeLCEPK12sml_pcdata_s @ 148 NONAME - _ZNK13CNSmlCmdsBase10PcdataNewLERP12sml_pcdata_sRK6TDesC8 @ 149 NONAME - _ZNK13CNSmlCmdsBase10ServerAuthEv @ 150 NONAME - _ZNK13CNSmlCmdsBase13DoMaxObjSizeLER19sml_metinf_metinf_si @ 151 NONAME - _ZNK13CNSmlCmdsBase15StatusContainerEv @ 152 NONAME - _ZNK13CNSmlCmdsBase16MetaTypeInUtf8LCEPK12sml_pcdata_s @ 153 NONAME - _ZNK13CNSmlCmdsBase16ResultsContainerEv @ 154 NONAME - _ZNK13CNSmlCmdsBase16ServerMaxObjSizeEPK12sml_pcdata_s @ 155 NONAME - _ZNK13CNSmlCmdsBase16ServerObjectSizeEPK12sml_pcdata_s @ 156 NONAME - _ZNK13CNSmlCmdsBase17PCDATAToUnicodeLCERK12sml_pcdata_sRP7HBufC16 @ 157 NONAME - _ZNK13CNSmlCmdsBase17SourceIsUnderItemEPK15sml_item_list_s @ 158 NONAME - _ZNK13CNSmlCmdsBase17TargetIsUnderItemEPK15sml_item_list_s @ 159 NONAME - _ZNK13CNSmlCmdsBase18MetaFormatInUtf8LCEPK12sml_pcdata_s @ 160 NONAME - _ZNK13CNSmlCmdsBase18ResponseControllerEv @ 161 NONAME - _ZNK13CNSmlCmdsBase19EndOfServerMessageLEv @ 162 NONAME - _ZNK13CNSmlCmdsBase21TrimRightSpaceAndNullER5TDes8 @ 163 NONAME - _ZNK13CNSmlCmdsBase21WriteMappingInfoToDbLEv @ 164 NONAME - _ZNK13CNSmlCmdsBase23WaitingLargeObjectChunkEv @ 165 NONAME - _ZNK13CNSmlCmdsBase7DoMetaLERP12sml_pcdata_sPK19sml_metinf_metinf_s @ 166 NONAME - _ZNK13CNSmlCmdsBase7RespURIEv @ 167 NONAME - _ZNK13CNSmlCmdsBase9AlertCodeEP11sml_alert_s @ 168 NONAME - _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK6TDesC8 @ 169 NONAME - _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK7TDesC16 @ 170 NONAME - _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK7TDesC16S5_ @ 171 NONAME - _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK7TDesC16 @ 172 NONAME - _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK7TDesC16S5_ @ 173 NONAME - _ZNK13CNSmlCmdsBase9IsFlagSetERKjS1_ @ 174 NONAME - _ZNK14CNSmlAgentBase12SaveIfNonceLERK23CNSmlResponseControlleri @ 175 NONAME - _ZNK14CNSmlAgentBase14CallbackCalledEv @ 176 NONAME - _ZNK14CNSmlAgentBase14ServerPasswordEv @ 177 NONAME - _ZNK14CNSmlAgentBase14ServerUserNameEv @ 178 NONAME - _ZNK14CNSmlAgentBase15SetServerNonceLERK7TDesC16 @ 179 NONAME - _ZNK14CNSmlAgentBase17ServerNonceAllocLEv @ 180 NONAME - _ZNK14CNSmlAgentBase9ProfileIdEv @ 181 NONAME - _ZNK14CNSmlPhoneInfo10PhoneDataLENS_12TPhoneIdTypeER6TDes16 @ 182 NONAME - _ZNK20CNSmlStatusContainer11LastEntryIDEv @ 183 NONAME - _ZNK21CNSmlResultsContainer10AnyResultsEv @ 184 NONAME - _ZNK21CNSmlResultsContainer14CurrentEntryIDEv @ 185 NONAME - _ZNK21CNSmlResultsContainer8StatusIDEi @ 186 NONAME - _ZNK23CNSmlResponseController10StatusCodeEi @ 187 NONAME - _ZNK23CNSmlResponseController14ResponseDetailEi @ 188 NONAME - _ZNK23CNSmlResponseController3CmdEi @ 189 NONAME - _ZNK23CNSmlResponseController4LUIDEi @ 190 NONAME - _ZNK23CNSmlResponseController7EntryIDEii @ 191 NONAME - _ZNK23CNSmlResponseController8AppIndexEi @ 192 NONAME - _ZNK23CNSmlResponseController8ChalTypeEi @ 193 NONAME - _ZNK23CNSmlResponseController8MoreDataEi @ 194 NONAME - _ZNK9CNSmlAuth10ChallengedEv @ 195 NONAME - _ZTI10TNSmlError @ 196 NONAME ; ## - _ZTI13CNSmlCmdsBase @ 197 NONAME ; ## - _ZTI14CNSmlAgentBase @ 198 NONAME ; ## - _ZTI14CNSmlPhoneInfo @ 199 NONAME ; ## - _ZTI20CNSmlStatusContainer @ 200 NONAME ; ## - _ZTI21CNSmlResultsContainer @ 201 NONAME ; ## - _ZTI23CNSmlResponseController @ 202 NONAME ; ## - _ZTI8CNSmlURI @ 203 NONAME ; ## - _ZTI9CNSmlAuth @ 204 NONAME ; ## - _ZTV10TNSmlError @ 205 NONAME ; ## - _ZTV13CNSmlCmdsBase @ 206 NONAME ; ## - _ZTV14CNSmlAgentBase @ 207 NONAME ; ## - _ZTV14CNSmlPhoneInfo @ 208 NONAME ; ## - _ZTV20CNSmlStatusContainer @ 209 NONAME ; ## - _ZTV21CNSmlResultsContainer @ 210 NONAME ; ## - _ZTV23CNSmlResponseController @ 211 NONAME ; ## - _ZTV8CNSmlURI @ 212 NONAME ; ## - _ZTV9CNSmlAuth @ 213 NONAME ; ## - _ZThn28_N14CNSmlAgentBase14smlAddCmdFuncLEP13sml_generic_s @ 214 NONAME ; ## - _ZThn28_N14CNSmlAgentBase14smlMapCmdFuncLEP9sml_map_s @ 215 NONAME ; ## - _ZThn28_N14CNSmlAgentBase15smlCopyCmdFuncLEP13sml_generic_s @ 216 NONAME ; ## - _ZThn28_N14CNSmlAgentBase15smlExecCmdFuncLEP10sml_exec_s @ 217 NONAME ; ## - _ZThn28_N14CNSmlAgentBase15smlMoveCmdFuncLEP13sml_generic_s @ 218 NONAME ; ## - _ZThn28_N14CNSmlAgentBase17smlDeleteCmdFuncLEP13sml_generic_s @ 219 NONAME ; ## - _ZThn28_N14CNSmlAgentBase17smlSearchCmdFuncLEP12sml_search_s @ 220 NONAME ; ## - _ZThn28_N14CNSmlAgentBase18smlReplaceCmdFuncLEP13sml_generic_s @ 221 NONAME ; ## - _ZN14CNSmlAgentBase18LaunchAutoRestartLEi @ 222 NONAME - _ZN14CNSmlAgentBase18CheckAPBearerTypeLEm @ 223 NONAME - _ZN13CNSmlCmdsBase15DoGenericAlertLERK6TDesC8RK6RArrayI16CNSmlDMAlertItemE @ 224 NONAME - _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK6TDesC8 @ 225 NONAME + _ZN13CNSmlCmdsBase15DoGenericAlertLERK6TDesC8RK6RArrayI16CNSmlDMAlertItemE @ 13 NONAME + _ZN13CNSmlCmdsBase15DoGenericAlertLERK6TDesC8S2_S2_iS2_ @ 14 NONAME + _ZN13CNSmlCmdsBase15ProcessCopyCmdLEP13sml_generic_s @ 15 NONAME + _ZN13CNSmlCmdsBase15ProcessExecCmdLEP10sml_exec_s @ 16 NONAME + _ZN13CNSmlCmdsBase15ProcessSyncHdrLEP14sml_sync_hdr_s @ 17 NONAME + _ZN13CNSmlCmdsBase17ProcessSearchCmdLEP12sml_search_s @ 18 NONAME + _ZN13CNSmlCmdsBase17ProcessStatusCmdLEP12sml_status_s @ 19 NONAME + _ZN13CNSmlCmdsBase18MarkGenAlertsSentLERK6TDesC8 @ 20 NONAME + _ZN13CNSmlCmdsBase18MarkGenAlertsSentLEv @ 21 NONAME + _ZN13CNSmlCmdsBase19DoGenericUserAlertLEi @ 22 NONAME + _ZN13CNSmlCmdsBase20CloseIDMappingTableLEv @ 23 NONAME + _ZN13CNSmlCmdsBase20FetchIDMappingTableLEi @ 24 NONAME + _ZN13CNSmlCmdsBase20ProcessReceivedDataLEv @ 25 NONAME + _ZN13CNSmlCmdsBase20StatusDataToCommandLERK6TDesC8PK12sml_pcdata_sjPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPS1_ @ 26 NONAME + _ZN13CNSmlCmdsBase21BufferAreaForParsingLEv @ 27 NONAME + _ZN13CNSmlCmdsBase21DeleteIDMappingTableLERK7TDesC16S2_ @ 28 NONAME + _ZN13CNSmlCmdsBase22ResetGenericUserAlertLEv @ 29 NONAME + _ZN13CNSmlCmdsBase22ResetLargeObjectBufferEv @ 30 NONAME + _ZN13CNSmlCmdsBase23SetMaximumWorkspaceSizeEi @ 31 NONAME + _ZN13CNSmlCmdsBase23StatusDataToGetCommandLEPK13sml_get_put_sPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPK6TDesC8 @ 32 NONAME + _ZN13CNSmlCmdsBase26CreateAndInitResponseItemLERK6TDesC8 @ 33 NONAME + _ZN13CNSmlCmdsBase26DisconnectFromOtherServersEv @ 34 NONAME + _ZN13CNSmlCmdsBase26SubtractConsumedFromPcDataERP10sml_item_si @ 35 NONAME + _ZN13CNSmlCmdsBase27StatusDataToGenericCommandLERK6TDesC8PK13sml_generic_sPK10sml_item_sN10TNSmlError21TNSmlSyncMLStatusCodeEPS1_ @ 36 NONAME + _ZN13CNSmlCmdsBase27StatusToUnsupportedCommandLEiRK6TDesC8PK12sml_pcdata_sj @ 37 NONAME + _ZN13CNSmlCmdsBase8DoCmdIdLERP12sml_pcdata_s @ 38 NONAME + _ZN13CNSmlCmdsBase9DoStatusLEP12sml_status_s @ 39 NONAME + _ZN13CNSmlCmdsBase9MoreDataLEPK6HBufC8PK10sml_item_sPK12sml_pcdata_sRP8CBufBase @ 40 NONAME + _ZN13CNSmlCmdsBaseC2Ev @ 41 NONAME + _ZN13CNSmlCmdsBaseD0Ev @ 42 NONAME + _ZN13CNSmlCmdsBaseD1Ev @ 43 NONAME + _ZN13CNSmlCmdsBaseD2Ev @ 44 NONAME + _ZN14CNSmlAgentBase10ConstructLEv @ 45 NONAME + _ZN14CNSmlAgentBase13SendingStateLEv @ 46 NONAME + _ZN14CNSmlAgentBase14smlAddCmdFuncLEP13sml_generic_s @ 47 NONAME + _ZN14CNSmlAgentBase14smlMapCmdFuncLEP9sml_map_s @ 48 NONAME + _ZN14CNSmlAgentBase15BeginningStateLEv @ 49 NONAME + _ZN14CNSmlAgentBase15DoOutsideCancelEv @ 50 NONAME + _ZN14CNSmlAgentBase15ReceivingStateLEv @ 51 NONAME + _ZN14CNSmlAgentBase15StatusReferenceEv @ 52 NONAME + _ZN14CNSmlAgentBase15smlCopyCmdFuncLEP13sml_generic_s @ 53 NONAME + _ZN14CNSmlAgentBase15smlExecCmdFuncLEP10sml_exec_s @ 54 NONAME + _ZN14CNSmlAgentBase15smlMoveCmdFuncLEP13sml_generic_s @ 55 NONAME + _ZN14CNSmlAgentBase17FreeBaseResourcesEv @ 56 NONAME + _ZN14CNSmlAgentBase17ResultAlertStateLEv @ 57 NONAME + _ZN14CNSmlAgentBase17smlDeleteCmdFuncLEP13sml_generic_s @ 58 NONAME + _ZN14CNSmlAgentBase17smlSearchCmdFuncLEP12sml_search_s @ 59 NONAME + _ZN14CNSmlAgentBase18LaunchAutoRestartLEi @ 60 NONAME + _ZN14CNSmlAgentBase18smlReplaceCmdFuncLEP13sml_generic_s @ 61 NONAME + _ZN14CNSmlAgentBase20SetOffCallbackCalledEv @ 62 NONAME + _ZN14CNSmlAgentBase21ClientAlertNextStateLEv @ 63 NONAME + _ZN14CNSmlAgentBase21ServerAlertNextStateLEv @ 64 NONAME + _ZN14CNSmlAgentBase22DataUpdateStatusStateLEv @ 65 NONAME + _ZN14CNSmlAgentBase23ServerModAlertCmdStateLEP11sml_alert_s @ 66 NONAME + _ZN14CNSmlAgentBase24ServerModStatusCmdStateLEP12sml_status_s @ 67 NONAME + _ZN14CNSmlAgentBase24SetEndOfDataAlertRequestEv @ 68 NONAME + _ZN14CNSmlAgentBase25ServerModEndMessageStateLEi @ 69 NONAME + _ZN14CNSmlAgentBase26AuthenticationRequirementLERK23CNSmlResponseControlleri @ 70 NONAME + _ZN14CNSmlAgentBase26ClientInitialisationStateLEv @ 71 NONAME + _ZN14CNSmlAgentBase26InitAskingDeviceInfoStateLEv @ 72 NONAME + _ZN14CNSmlAgentBase27ServerModStartMessageStateLEP14sml_sync_hdr_s @ 73 NONAME + _ZN14CNSmlAgentBase28CheckStatusCodesAreReceivedLEi @ 74 NONAME + _ZN14CNSmlAgentBase29InitStartingMessageStateBaseLEv @ 75 NONAME + _ZN14CNSmlAgentBase29ServerAlertNextAlertCmdStateLEP11sml_alert_s @ 76 NONAME + _ZN14CNSmlAgentBase30ClientAlertNextMakingMapStateLEv @ 77 NONAME + _ZN14CNSmlAgentBase30ServerAlertNextStatusCmdStateLEP12sml_status_s @ 78 NONAME + _ZN14CNSmlAgentBase31DataUpdateStatusMakingMapStateLEv @ 79 NONAME + _ZN14CNSmlAgentBase31ServerAlertNextEndMessageStateLEi @ 80 NONAME + _ZN14CNSmlAgentBase33ServerAlertNextStartMessageStateLEP14sml_sync_hdr_s @ 81 NONAME + _ZN14CNSmlAgentBase35DataUpdateStatusMakingResultsStateLEv @ 82 NONAME + _ZN14CNSmlAgentBase41DataUpdateStatusStartingMessageStateBaseLEv @ 83 NONAME + _ZN14CNSmlAgentBase4RunLEv @ 84 NONAME + _ZN14CNSmlAgentBase7SyncLogEv @ 85 NONAME + _ZN14CNSmlAgentBase8DoCancelEv @ 86 NONAME + _ZN14CNSmlAgentBaseC2Ev @ 87 NONAME + _ZN14CNSmlAgentBaseD0Ev @ 88 NONAME + _ZN14CNSmlAgentBaseD1Ev @ 89 NONAME + _ZN14CNSmlAgentBaseD2Ev @ 90 NONAME + _ZN14CNSmlPhoneInfo10SwVersionLEv @ 91 NONAME + _ZN14CNSmlPhoneInfo4NewLEv @ 92 NONAME + _ZN14CNSmlPhoneInfo5NewLCEv @ 93 NONAME + _ZN20CNSmlStatusContainer10SetCmdRefLEiPK12sml_pcdata_s @ 94 NONAME + _ZN20CNSmlStatusContainer12AddItemDataLEiPK12sml_pcdata_s @ 95 NONAME + _ZN20CNSmlStatusContainer13AddSourceRefLEiPK12sml_source_s @ 96 NONAME + _ZN20CNSmlStatusContainer13AddTargetRefLEiPK12sml_target_s @ 97 NONAME + _ZN20CNSmlStatusContainer13SetNoResponseEii @ 98 NONAME + _ZN20CNSmlStatusContainer14SetStatusCodeLEiii @ 99 NONAME + _ZN20CNSmlStatusContainer17NextStatusElementERP12sml_status_si @ 100 NONAME + _ZN20CNSmlStatusContainer20SetPerformedInAtomicEi @ 101 NONAME + _ZN20CNSmlStatusContainer21SetAtomicOrSequenceIdEii @ 102 NONAME + _ZN20CNSmlStatusContainer23CreateNewStatusElementLEv @ 103 NONAME + _ZN20CNSmlStatusContainer23SetStatusCodesInAtomicLEiii @ 104 NONAME + _ZN20CNSmlStatusContainer35SetStatusCodeToAtomicOrSequenceCmdLEiiRK6TDesC8 @ 105 NONAME + _ZN20CNSmlStatusContainer5BeginEv @ 106 NONAME + _ZN20CNSmlStatusContainer7SetCmdLEiRK6TDesC8 @ 107 NONAME + _ZN20NSmlUnicodeConverter14HBufC8InUTF8LCERK7TDesC16RP6HBufC8 @ 108 NONAME + _ZN20NSmlUnicodeConverter17HBufC16InUnicodeLERK6TDesC8RP7HBufC16 @ 109 NONAME + _ZN20NSmlUnicodeConverter18HBufC16InUnicodeLCERK6TDesC8RP7HBufC16 @ 110 NONAME + _ZN21CNSmlResultsContainer11SetStatusIDEii @ 111 NONAME + _ZN21CNSmlResultsContainer13RemoveWrittenEi @ 112 NONAME + _ZN21CNSmlResultsContainer17CreateNewResultsLERK6TDesC8S2_PK12sml_target_sPK12sml_source_s @ 113 NONAME + _ZN21CNSmlResultsContainer18NextResultsElementERP13sml_results_s @ 114 NONAME + _ZN21CNSmlResultsContainer5BeginEv @ 115 NONAME + _ZN21CNSmlResultsContainer8AddItemLEiRK8CBufBaseRK6TDesC8S5_ @ 116 NONAME + _ZN21CNSmlResultsContainer9SetCmdIDLEiPK12sml_pcdata_s @ 117 NONAME + _ZN23CNSmlResponseController11SetAppIndexEii @ 118 NONAME + _ZN23CNSmlResponseController11SetMoreDataEi @ 119 NONAME + _ZN23CNSmlResponseController17SetResponseDetailEiNS_15TResponseDetailE @ 120 NONAME + _ZN23CNSmlResponseController6ResetLEv @ 121 NONAME + _ZN23CNSmlResponseController8SetLUIDLEiRK6TDesC8 @ 122 NONAME + _ZN8CNSmlURI12SetDatabaseLERK6TDesC8i @ 123 NONAME + _ZN8CNSmlURI12SetDatabaseLERK7TDesC16i @ 124 NONAME + _ZN8CNSmlURI12SetHostNameLERK6TDesC8i @ 125 NONAME + _ZN8CNSmlURI12SetHostNameLERK7TDesC16i @ 126 NONAME + _ZN8CNSmlURI16DatabaseMatchesLERK7TDesC16 @ 127 NONAME + _ZN8CNSmlURI17HostNameWithPortLEi @ 128 NONAME + _ZN8CNSmlURI21HostNameInUTF8AllocLCEv @ 129 NONAME + _ZN8CNSmlURI21SyncMLDatabaseAllocLCEv @ 130 NONAME + _ZN8CNSmlURI29DataBaseWithoutRelativePrefixEv @ 131 NONAME + _ZN8CNSmlURI4NewLERK6TDesC8i @ 132 NONAME + _ZN8CNSmlURI4NewLERK7TDesC16i @ 133 NONAME + _ZN8CNSmlURI4NewLEv @ 134 NONAME + _ZN8CNSmlURI5NewLCERK6TDesC8i @ 135 NONAME + _ZN8CNSmlURI5NewLCERK7TDesC16i @ 136 NONAME + _ZN8CNSmlURI5NewLCEv @ 137 NONAME + _ZN8CNSmlURI7SetPortEi @ 138 NONAME + _ZN8CNSmlURI8DatabaseEv @ 139 NONAME + _ZN8CNSmlURI8HostNameEv @ 140 NONAME + _ZN8CNSmlURI8IsEqualLERKS_i @ 141 NONAME + _ZN8CNSmlURIaSERKS_ @ 142 NONAME + _ZN9CNSmlAuth12SetSyncAgentEP14CNSmlAgentBase @ 143 NONAME + _ZN9CNSmlAuth14SetCredentialLERK6TDesC8 @ 144 NONAME + _ZN9CNSmlAuth16SetAuthRequiredLEv @ 145 NONAME + _ZN9CNSmlAuth4NewLEv @ 146 NONAME + _ZNK13CNSmlCmdsBase10BusyStatusEv @ 147 NONAME + _ZNK13CNSmlCmdsBase10DoAnchorsLER19sml_metinf_metinf_sPK6TDesC8S4_ @ 148 NONAME + _ZNK13CNSmlCmdsBase10DoMetInfLCERP19sml_metinf_metinf_s @ 149 NONAME + _ZNK13CNSmlCmdsBase10MetaTypeLCEPK12sml_pcdata_s @ 150 NONAME + _ZNK13CNSmlCmdsBase10PcdataNewLERP12sml_pcdata_sRK6TDesC8 @ 151 NONAME + _ZNK13CNSmlCmdsBase10ServerAuthEv @ 152 NONAME + _ZNK13CNSmlCmdsBase13DoMaxObjSizeLER19sml_metinf_metinf_si @ 153 NONAME + _ZNK13CNSmlCmdsBase15StatusContainerEv @ 154 NONAME + _ZNK13CNSmlCmdsBase16MetaTypeInUtf8LCEPK12sml_pcdata_s @ 155 NONAME + _ZNK13CNSmlCmdsBase16ResultsContainerEv @ 156 NONAME + _ZNK13CNSmlCmdsBase16ServerMaxObjSizeEPK12sml_pcdata_s @ 157 NONAME + _ZNK13CNSmlCmdsBase16ServerObjectSizeEPK12sml_pcdata_s @ 158 NONAME + _ZNK13CNSmlCmdsBase17PCDATAToUnicodeLCERK12sml_pcdata_sRP7HBufC16 @ 159 NONAME + _ZNK13CNSmlCmdsBase17SourceIsUnderItemEPK15sml_item_list_s @ 160 NONAME + _ZNK13CNSmlCmdsBase17TargetIsUnderItemEPK15sml_item_list_s @ 161 NONAME + _ZNK13CNSmlCmdsBase18MetaFormatInUtf8LCEPK12sml_pcdata_s @ 162 NONAME + _ZNK13CNSmlCmdsBase18ResponseControllerEv @ 163 NONAME + _ZNK13CNSmlCmdsBase19EndOfServerMessageLEv @ 164 NONAME + _ZNK13CNSmlCmdsBase21TrimRightSpaceAndNullER5TDes8 @ 165 NONAME + _ZNK13CNSmlCmdsBase21WriteMappingInfoToDbLEv @ 166 NONAME + _ZNK13CNSmlCmdsBase23WaitingLargeObjectChunkEv @ 167 NONAME + _ZNK13CNSmlCmdsBase7DoMetaLERP12sml_pcdata_sPK19sml_metinf_metinf_s @ 168 NONAME + _ZNK13CNSmlCmdsBase7RespURIEv @ 169 NONAME + _ZNK13CNSmlCmdsBase9AlertCodeEP11sml_alert_s @ 170 NONAME + _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK6TDesC8 @ 171 NONAME + _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK7TDesC16 @ 172 NONAME + _ZNK13CNSmlCmdsBase9DoSourceLERP12sml_source_sRK7TDesC16S5_ @ 173 NONAME + _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK6TDesC8 @ 174 NONAME + _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK7TDesC16 @ 175 NONAME + _ZNK13CNSmlCmdsBase9DoTargetLERP12sml_target_sRK7TDesC16S5_ @ 176 NONAME + _ZNK13CNSmlCmdsBase9IsFlagSetERKjS1_ @ 177 NONAME + _ZNK14CNSmlAgentBase12SaveIfNonceLERK23CNSmlResponseControlleri @ 178 NONAME + _ZNK14CNSmlAgentBase14CallbackCalledEv @ 179 NONAME + _ZNK14CNSmlAgentBase14ServerPasswordEv @ 180 NONAME + _ZNK14CNSmlAgentBase14ServerUserNameEv @ 181 NONAME + _ZNK14CNSmlAgentBase15SetServerNonceLERK7TDesC16 @ 182 NONAME + _ZNK14CNSmlAgentBase17ServerNonceAllocLEv @ 183 NONAME + _ZNK14CNSmlAgentBase9ProfileIdEv @ 184 NONAME + _ZNK14CNSmlPhoneInfo10PhoneDataLENS_12TPhoneIdTypeER6TDes16 @ 185 NONAME + _ZNK20CNSmlStatusContainer11LastEntryIDEv @ 186 NONAME + _ZNK21CNSmlResultsContainer10AnyResultsEv @ 187 NONAME + _ZNK21CNSmlResultsContainer14CurrentEntryIDEv @ 188 NONAME + _ZNK21CNSmlResultsContainer8StatusIDEi @ 189 NONAME + _ZNK23CNSmlResponseController10StatusCodeEi @ 190 NONAME + _ZNK23CNSmlResponseController14ResponseDetailEi @ 191 NONAME + _ZNK23CNSmlResponseController3CmdEi @ 192 NONAME + _ZNK23CNSmlResponseController4LUIDEi @ 193 NONAME + _ZNK23CNSmlResponseController7EntryIDEii @ 194 NONAME + _ZNK23CNSmlResponseController8AppIndexEi @ 195 NONAME + _ZNK23CNSmlResponseController8ChalTypeEi @ 196 NONAME + _ZNK23CNSmlResponseController8MoreDataEi @ 197 NONAME + _ZNK9CNSmlAuth10ChallengedEv @ 198 NONAME + _ZTI10TNSmlError @ 199 NONAME + _ZTI13CNSmlCmdsBase @ 200 NONAME + _ZTI14CNSmlAgentBase @ 201 NONAME + _ZTI14CNSmlPhoneInfo @ 202 NONAME + _ZTI20CNSmlStatusContainer @ 203 NONAME + _ZTI21CNSmlResultsContainer @ 204 NONAME + _ZTI23CNSmlResponseController @ 205 NONAME + _ZTI8CNSmlURI @ 206 NONAME + _ZTI9CNSmlAuth @ 207 NONAME + _ZTV10TNSmlError @ 208 NONAME + _ZTV13CNSmlCmdsBase @ 209 NONAME + _ZTV14CNSmlAgentBase @ 210 NONAME + _ZTV14CNSmlPhoneInfo @ 211 NONAME + _ZTV20CNSmlStatusContainer @ 212 NONAME + _ZTV21CNSmlResultsContainer @ 213 NONAME + _ZTV23CNSmlResponseController @ 214 NONAME + _ZTV8CNSmlURI @ 215 NONAME + _ZTV9CNSmlAuth @ 216 NONAME + _ZThn28_N14CNSmlAgentBase14smlAddCmdFuncLEP13sml_generic_s @ 217 NONAME + _ZThn28_N14CNSmlAgentBase14smlMapCmdFuncLEP9sml_map_s @ 218 NONAME + _ZThn28_N14CNSmlAgentBase15smlCopyCmdFuncLEP13sml_generic_s @ 219 NONAME + _ZThn28_N14CNSmlAgentBase15smlExecCmdFuncLEP10sml_exec_s @ 220 NONAME + _ZThn28_N14CNSmlAgentBase15smlMoveCmdFuncLEP13sml_generic_s @ 221 NONAME + _ZThn28_N14CNSmlAgentBase17smlDeleteCmdFuncLEP13sml_generic_s @ 222 NONAME + _ZThn28_N14CNSmlAgentBase17smlSearchCmdFuncLEP12sml_search_s @ 223 NONAME + _ZThn28_N14CNSmlAgentBase18smlReplaceCmdFuncLEP13sml_generic_s @ 224 NONAME diff -r 2c8580950a26 -r 5d0ec111abfc syncmlfw/common/syncagent/bld/NSmlAgentCommon.mmp --- a/syncmlfw/common/syncagent/bld/NSmlAgentCommon.mmp Fri May 14 16:42:50 2010 +0300 +++ b/syncmlfw/common/syncagent/bld/NSmlAgentCommon.mmp Thu May 27 13:43:36 2010 +0300 @@ -83,6 +83,7 @@ LIBRARY commdb.lib LIBRARY esock.lib LIBRARY apengine.lib +LIBRARY cmmanager.lib //RD_AUTO_RESTART SMPSAFE diff -r 2c8580950a26 -r 5d0ec111abfc syncmlfw/common/syncagent/inc/NSmlAgentBase.h --- a/syncmlfw/common/syncagent/inc/NSmlAgentBase.h Fri May 14 16:42:50 2010 +0300 +++ b/syncmlfw/common/syncagent/inc/NSmlAgentBase.h Thu May 27 13:43:36 2010 +0300 @@ -25,9 +25,6 @@ #include "nsmlerror.h" #include "nsmlagenttestdefines.h" -//Rnd_AutoRestart -#include -//Rnd_AutoRestart //DATA TYPES enum TNSmlSyncInitiation { @@ -86,7 +83,6 @@ IMPORT_C virtual void DoOutsideCancel(); //Rnd_AutoRestart IMPORT_C virtual void LaunchAutoRestartL(TInt aError); - IMPORT_C TApBearerType CheckAPBearerTypeL( const TUint32 aIAPId ); void ReadAcessPointL(); //Rnd_AutoRestart @@ -360,7 +356,7 @@ //Rnd_AutoRestart TBool iPacketDataUnAvailable; TUint32 iNetmonAPId; - TApBearerType iNetmonAPBearerType; + TBool iAllowAutoRestart; //Rnd_AutoRestart protected: // Data diff -r 2c8580950a26 -r 5d0ec111abfc syncmlfw/common/syncagent/src/NSmlAgentBase.cpp --- a/syncmlfw/common/syncagent/src/NSmlAgentBase.cpp Fri May 14 16:42:50 2010 +0300 +++ b/syncmlfw/common/syncagent/src/NSmlAgentBase.cpp Thu May 27 13:43:36 2010 +0300 @@ -49,10 +49,10 @@ #include // RConnection RSocket #include // TConnectionInfo #include -#include -#include -#include -#include +#include +#include +#include +#include #include "nsmlhttp.h" //Fix to Remove the Bad Compiler Warnings @@ -450,7 +450,7 @@ //Auto_Restart iPacketDataUnAvailable = EFalse; iNetmonAPId = 0; - iNetmonAPBearerType = TApBearerType(-1); + iAllowAutoRestart = EFalse; } @@ -957,7 +957,6 @@ if(error == KErrNone && val == 1) { - DBG_FILE_CODE(iNetmonAPBearerType, _S8("CNSmlAgentBase::SendingStateL The Network Bearer Type is")); DBG_FILE_CODE(err, _S8("CNSmlAgentBase::SendingStateL The Network Error is")); if(err == TNSmlHTTPErrCode::ENSmlHTTPErr_RequestTimeout) @@ -970,8 +969,7 @@ LaunchAutoRestartL(err); } - else if(iNetmonAPBearerType == EApBearerTypeGPRS || - iNetmonAPBearerType == EApBearerTypeCDMA ) + else if( iAllowAutoRestart ) { DBG_FILE(_S8("CNSmlAgentBase::SendingStateL Waiting for 30 sec")); User::After(TTimeIntervalMicroSeconds32(30000000)); @@ -1604,74 +1602,29 @@ connectionInfo ); iNetmonAPId = connectionInfo().iIapId; DBG_FILE_CODE(iNetmonAPId, _S8("CNSmlAgentBase::ReadAcessPointL(), The IAPId is:")); - iNetmonAPBearerType = CheckAPBearerTypeL( iNetmonAPId ); - DBG_FILE_CODE(TInt(iNetmonAPBearerType), _S8("CNSmlAgentBase::ReadAcessPointL(), The Enumerated IAPId is:")); - - } + RCmManager cmmanager; + cmmanager.OpenL(); + CleanupClosePushL(cmmanager); + RCmConnectionMethod cm; + cm = cmmanager.ConnectionMethodL( iNetmonAPId ); + CleanupClosePushL( cm ); + TUint32 bearer = 0; + //TRAP_IGNORE( accesspointId = cm.GetIntAttributeL(CMManager::ECmIapId) );? + bearer = cm.GetIntAttributeL( CMManager::ECmBearerType ); + CleanupStack::PopAndDestroy( 2 ); //cmmanager,cm + if ( bearer == KUidWlanBearerType ) + { + iAllowAutoRestart = EFalse; + } + else + { + iAllowAutoRestart = ETrue; + } + } myConnection.Close(); socketServer.Close(); } - -// ----------------------------------------------------------------------------- -// CNSmlAgentBase::CheckAPBearerTypeL -// Returns bearer type of the selected Access Point. -// ----------------------------------------------------------------------------- -EXPORT_C TApBearerType CNSmlAgentBase::CheckAPBearerTypeL( const TUint32 aIAPId ) -{ - // Create connection to the Access Points setting data. - CCommsDatabase* cAPCommsDatabase = CCommsDatabase::NewL( EDatabaseTypeIAP ); - - TApBearerType bearerType(TApBearerType(-1)); - - // Attach to the Access Point Engine. - CApSelect* apSelect = CApSelect::NewLC( - *cAPCommsDatabase, - KEApIspTypeAll, - EApBearerTypeWLAN | - EApBearerTypeCDMA | - EApBearerTypeGPRS, - KEApSortUidAscending, - EIPv4 | EIPv6 - ); - - // Create ApUtils for some utilities functions. - CApUtils* apUtils = CApUtils::NewLC( *cAPCommsDatabase ); - - // Get supported Access Points from Access Point Engine.. - CApListItemList* apItems = new (ELeave) CApListItemList; - CleanupStack::PushL( apItems ); - apSelect->AllListItemDataL( *apItems ); - - for ( TInt i = 0; i < apItems->Count(); i++ ) - { - // Get id from APEngine and convert it to the CommsDB id. - TUint32 iapId = apUtils->IapIdFromWapIdL( apItems->At( i )->Uid() ); - - // Change bearer type according to id match. - if ( aIAPId == iapId ) - { - bearerType = apItems->At( i )->BearerType(); - - //Getting the IAP name - const TDesC& name = apItems->At( i )->Name(); - - DBG_ARGS(_S("CNSmlAgentBase::CheckAPBearerTypeL(), The IAP Name is: %S"), &name); - - i = apItems->Count(); - } - } - - // PopAndDestroy some items. - CleanupStack::PopAndDestroy( apItems ); - CleanupStack::PopAndDestroy( apUtils ); - CleanupStack::PopAndDestroy( apSelect ); - - delete cAPCommsDatabase; - - // Return bearer type. - return bearerType; -} //RD_AUTO_RESTART // --------------------------------------------------------- diff -r 2c8580950a26 -r 5d0ec111abfc syncmlfw/ds/settings/src/pcsuite/NSmlDSProfileRes.rss --- a/syncmlfw/ds/settings/src/pcsuite/NSmlDSProfileRes.rss Fri May 14 16:42:50 2010 +0300 +++ b/syncmlfw/ds/settings/src/pcsuite/NSmlDSProfileRes.rss Thu May 27 13:43:36 2010 +0300 @@ -117,10 +117,10 @@ }, PROFILE { - profiledisplayname="OVISERVER"; + profiledisplayname="Intellisync"; //username=""; //password=""; - serverurl="https://sync.ovi.com:443/services/syncml"; + serverurl="http://82.77.123.83:80/services/syncml"; serverid="Ovi.com"; profilehidden=0; transportid=0x101F99F0; @@ -147,7 +147,7 @@ CONTENTTYPE { adapter_implementation_uid = 0x101F6DDE; // Calendar - clientdatasource = "Calendar"; + clientdatasource = "C:Calendar"; serverdatasource = "./EventTask/Tasks"; synctype = ESmlTwoWay; filtervisibility = "h"; @@ -158,7 +158,7 @@ CONTENTTYPE { adapter_implementation_uid = 0x101F8612; // Notes - clientdatasource = "c:Calendar"; + clientdatasource = "C:Calendar"; serverdatasource = "./Note/Unfiled"; synctype = ESmlTwoWay; filtervisibility = "h"; diff -r 2c8580950a26 -r 5d0ec111abfc syncmlfw/ds/syncagent/bld/nsmldsagent.mmp --- a/syncmlfw/ds/syncagent/bld/nsmldsagent.mmp Fri May 14 16:42:50 2010 +0300 +++ b/syncmlfw/ds/syncagent/bld/nsmldsagent.mmp Thu May 27 13:43:36 2010 +0300 @@ -88,5 +88,6 @@ LIBRARY NsmlProfileUtil.lib LIBRARY syncmlclientapi.lib LIBRARY centralrepository.lib +LIBRARY cmmanager.lib //RD_AUTO_RESTART diff -r 2c8580950a26 -r 5d0ec111abfc syncmlfw/ds/syncagent/src/nsmldsagent.cpp --- a/syncmlfw/ds/syncagent/src/nsmldsagent.cpp Fri May 14 16:42:50 2010 +0300 +++ b/syncmlfw/ds/syncagent/src/nsmldsagent.cpp Thu May 27 13:43:36 2010 +0300 @@ -22,6 +22,9 @@ #include #include #include +#include +#include +#include // common includes with DM #include "nsmlagenttestdefines.h" @@ -1888,23 +1891,39 @@ profileUtil->AccessPointIdL(LastUsedIAPId); if(LastUsedIAPId > 0) { - //Check Whether the IAPID still exists - TApBearerType bearertype = CheckAPBearerTypeL(LastUsedIAPId); - if(bearertype != TApBearerType(-1)) - { - iIAPId = LastUsedIAPId; - DBG_FILE_CODE(iIAPId , _S8("CNSmlDSAgent::ReadSettingsL, The Access Point ID Replaced from the CenRep:")); - } - else - { - //Stop the DS Sync Session - DBG_FILE(_S8("CNSmlDSAgent::ReadSettingsL, The Access Point ID is invalid so stopping the session")); - iPacketDataUnAvailable = ETrue; - StopDSSession(); - } + //Check Whether the IAPID still exists + RCmManager cmmanager; + cmmanager.OpenL(); + CleanupClosePushL(cmmanager); + RCmConnectionMethod cm; + TRAPD(err, cm = cmmanager.ConnectionMethodL( LastUsedIAPId )); + CleanupClosePushL( cm ); + TUint32 bearer = 0; + if( err == KErrNone ) + { + bearer = cm.GetIntAttributeL( CMManager::ECmBearerType ); + DBG_FILE_CODE( bearer ,_S8("CNSmlDSAgent::ReadSettingsL, BearerType")); + if ( bearer == KUidWlanBearerType ) + { + DBG_FILE(_S8("CNSmlDSAgent::ReadSettingsL, The Access Point ID is invalid WLAN")); + iPacketDataUnAvailable = ETrue; + StopDSSession(); + } + else + { + iIAPId = LastUsedIAPId; + DBG_FILE_CODE(iIAPId , _S8("CNSmlDSAgent::ReadSettingsL, The Access Point ID Replaced from the CenRep:")); + } + } + else + { + DBG_FILE_CODE( err ,_S8("CNSmlDSAgent::ReadSettingsL, The Access Point ID is invalid")); + iPacketDataUnAvailable = ETrue; + StopDSSession(); + } + CleanupStack::PopAndDestroy( 2 ); //cmmanagerext,cm } - } - + } CleanupStack::PopAndDestroy(profileUtil); } } diff -r 2c8580950a26 -r 5d0ec111abfc syncmlfw/ds/syncagent/src/nsmldsnetmon.cpp --- a/syncmlfw/ds/syncagent/src/nsmldsnetmon.cpp Fri May 14 16:42:50 2010 +0300 +++ b/syncmlfw/ds/syncagent/src/nsmldsnetmon.cpp Thu May 27 13:43:36 2010 +0300 @@ -221,8 +221,7 @@ //Fix for BPSS-7GBGV7 if( iDSAgent->IsSyncClientInitiated() && - (iDSAgent->iNetmonAPBearerType == EApBearerTypeGPRS || - iDSAgent->iNetmonAPBearerType == EApBearerTypeCDMA) ) + (iDSAgent->iAllowAutoRestart ) ) { switch(aEvent.ConnectionId()) diff -r 2c8580950a26 -r 5d0ec111abfc terminalsecurity/SCP/SCPClient/src/SCPClient.cpp --- a/terminalsecurity/SCP/SCPClient/src/SCPClient.cpp Fri May 14 16:42:50 2010 +0300 +++ b/terminalsecurity/SCP/SCPClient/src/SCPClient.cpp Thu May 27 13:43:36 2010 +0300 @@ -37,7 +37,7 @@ //#ifdef __SAP_DEVICE_LOCK_ENHANCEMENTS #include #include -#include +#include #include #include //#endif // DEVICE_LOCK_ENHANCEMENTS diff -r 2c8580950a26 -r 5d0ec111abfc terminalsecurity/SCP/SCPServer/src/SCPServer.cpp --- a/terminalsecurity/SCP/SCPServer/src/SCPServer.cpp Fri May 14 16:42:50 2010 +0300 +++ b/terminalsecurity/SCP/SCPServer/src/SCPServer.cpp Thu May 27 13:43:36 2010 +0300 @@ -52,6 +52,7 @@ // For Device encryption #include #include +#include // ==================== LOCAL FUNCTIONS ==================== @@ -654,6 +655,12 @@ void CSCPServer::ValidateConfigurationL( TInt aMode ) { Dprint( (_L("--> CSCPServer::ValidateConfigurationL()") )); + RDebug::Print(_L("--> CSCPServer::ValidateConfigurationL()")); + TInt startupReason(ENormalStartup); + RProperty::Get(KPSUidStartup, KPSStartupReason, startupReason); + Dprint( (_L("CSCPServer::ValidateConfigurationL(): startupReason = %d"), startupReason)); + if((startupReason == ENormalRFSReset)||(startupReason == EDeepRFSReset)||(startupReason == EFirmwareUpdate)||(iConfiguration.iConfigFlag == KSCPConfigUnknown)) + { RMobilePhone::TMobilePassword storedCode; storedCode.Zero(); @@ -793,7 +800,7 @@ } User::LeaveIfError( err ); - + } Dprint( (_L("<-- CSCPServer::ValidateConfigurationL()") )); }