--- 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<class TUid> 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<class TUid> 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
-
--- 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
Binary file devicediagnosticsfw/diagframework/cenrep_files/keys_diagnosticsfw.xls has changed
--- 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
-
Binary file devicediagnosticsfw/diagframework/cenrep_files/output/inifiles/2000B16B.txt has changed
Binary file devicediagnosticsfw/diagframework/cenrep_files/output/key_sheets_info.storable has changed
--- 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
Binary file devicediagnosticsfw/diagframework/conf/diagnosticsfw.confml has changed
Binary file devicediagnosticsfw/diagframework/conf/diagnosticsfw_2000B16B.crml has changed
--- 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 ; #<TI>#
- _ZTV28CDiagNetworkRegStatusWatcher @ 75 NONAME ; #<VT>#
-
--- 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 <platform_paths.hrh>
-
-
-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
-
--- 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 <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-
-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
--- 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 <e32cmn.h>
-#pragma data_seg(".SYMBIAN")
-__EMULATOR_IMAGE_HEADER2(0x10000079,0x1000008d,0x2000afe8,EPriorityForeground,0x000ffffeu,0x00000000u,0x2000afe8,0x101fb657,0x00010000,0)
-#pragma data_seg()
--- 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
-
--- 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 <e32def.h> // 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
-
--- 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 <e32base.h> // 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
-
--- 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
-
--- 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 <e32base.h> // CBase
-
-// user includes.
-#include <DiagEngineCommon.h> // 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
-
--- 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 <etel3rdparty.h> // CTelephony and its T classes
-#include <badesca.h> // 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
-
--- 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
-
--- 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
-
--- 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 <e32std.h> // TDesC, TTimeIntervalMicroSeconds32
-#include <DiagCommonDialog.h> // TDiagCommonDialog
-#include <DiagAppCommand.h> // TDiagAppCommand
-#include <DiagEngineWatchdogTypes.h> // 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
-
--- 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 <e32base.h> // 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
-
--- 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 <e32base.h> // 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
-
--- 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 <DiagResultsDatabaseItem.h> // CDiagResultsDatabaseItem
-#include <DiagEngineCommon.h> // 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
-
--- 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 <e32base.h> // 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
-
--- 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 <e32base.h> // CActive
-#include <DiagEngineCommon.h> // MDiagEngineCommon
-#include <DiagEngineObserver.h> // MDiagEngineObserver::TSuspendReason
-#include <DiagResultsDatabase.h> // RDiagResultsDatabase, RDiagResultsDatabaseRecord
-#include <DiagTestPlugin.h> // MDiagTestPlugin::TStopReason
-#include <DiagSuitePlugin.h> // 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
-
--- 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 <e32def.h> // TUint
-#include <DiagCommonDialog.h> // TDiagCommonDialog
-#include <DiagAppCommand.h> // 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
-
--- 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 <e32base.h>
-
-// 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<CEventBasic> iEventQueue;
-
- /**
- * iState - Current state.
- */
- TState iState;
- };
- } // end of namespace DiagFwInternal
-#endif // DIAGENGINESTATEMACHINE_H
-
-// End of File
-
--- 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
-
--- 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
-
--- 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
-
--- 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 <e32def.h> // 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
-
--- 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 <e32base.h> // CBase
-#include <DiagExecPlanEntry.h> // MDiagExecPlanEntry
-#include <DiagEngineCommon.h> // 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
-
--- 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
-
--- 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 <DiagSuitePlugin.h> // MDiagSuitePlugin::TStopReason
-#include <DiagSuiteObserver.h> // 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
-
--- 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 <DiagResultsDatabaseItem.h> // CDiagResultsDatabaseItem::TResult
-#include <DiagTestObserver.h> // MDiagTestObserver
-#include <DiagTestPlugin.h> // 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
-
--- 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
--- 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 <e32debug.h> // 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 <flogger.h>
-
-// 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<const TDesC>( KFormat() ), \
- a ); \
- }
-
-#define LOGSTRING3( aFormat, a, b ) \
- { \
- _LIT( KFormat, aFormat ); \
- RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \
- KDiagFrameworkLogFile(), \
- EFileLoggingModeAppend, \
- TRefByValue<const TDesC>( KFormat() ), \
- a, b ); \
- }
-
-#define LOGSTRING4( aFormat, a, b, c ) \
- { \
- _LIT( KFormat, aFormat ); \
- RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \
- KDiagFrameworkLogFile(), \
- EFileLoggingModeAppend, \
- TRefByValue<const TDesC>( KFormat() ), \
- a, b, c ); \
- }
-
-#define LOGSTRING5( aFormat, a, b, c, d ) \
- { \
- _LIT( KFormat, aFormat ); \
- RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \
- KDiagFrameworkLogFile(), \
- EFileLoggingModeAppend, \
- TRefByValue<const TDesC>( 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
-
--- 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 <e32base.h> // CActive
-#include <f32file.h> // 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
--- 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
--- 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
-
--- 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 <e32base.h> // CActive
-#include <etel3rdparty.h> // 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
-
--- 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 <e32std.h>
-
-// =============================================================================
-// 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
-
--- 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 <badesca.h> // 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
-
--- 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 <e32base.h> // 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
-
--- 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 <e32base.h> // 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
-
--- 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 <e32base.h> // CBase
-#include <DiagPluginExecPlan.h> // MDiagPluginExecPlan
-#include <DiagResultsDatabaseItem.h> // 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 T, TBool StackOwnsEntry>
-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<TTransitionStackEntry, ETrue>& 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<TTransitionStackEntry, ETrue>& 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<TTransitionStackEntry, ETrue>& 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<CDiagExecPlanEntryImpl> iPlan;
-
- /**
- * iExecutedEntries - Items that are already executed in the
- * previous session.
- * Individual entries are owned by the array.
- */
- RPointerArray<CDiagExecPlanEntryImpl> 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
-
--- 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 <e32base.h>
-#include <xml/contenthandler.h>
-
-// 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
-
--- 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 <e32base.h> // 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
-
--- 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 <e32base.h> // CActive
-#include <implementationinformation.h> // 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<CDiagPluginConstructionParam> 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<MDiagPlugin> 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
-
--- 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 <e32cmn.h> // TUid
-#include <e32def.h> // 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
-
--- 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 <e32cmn.h> // 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<TOutputFormat>& 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
-
--- 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 <DiagResultsDatabaseItem.h> // 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
-
--- 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 <DiagSuitePlugin.h> // 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<MDiagPlugin>& 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<TUid>& 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<MDiagPlugin> iChildren;
- };
- } // namespace DiagFwInternal
-#endif // DIAGROOTSUITE_H
-
-// End of File
-
--- 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 <e32def.h> // 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
-
--- 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
-
--- 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 <DiagPlugin.h> // 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<MDiagPlugin>& 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<TUid>& 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
-
--- 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 <e32def.h> // 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
-
--- 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 <e32def.h> // TUint
-#include <DiagEngineWatchdogTypes.h> // 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
-
--- 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 <DiagPlugin.h> // 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
-
--- 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 <DiagTestExecParam.h>
-
-// 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
-
--- 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 <DiagEngine.h>
-
-// 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
-
--- 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 <DiagFrameworkDebug.h> // LOGSTRING
-#include <badesca.h> // 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<CTelephony::KMaxTelNumberSize> 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
-
--- 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 <centralrepository.h> // CRepository
-#include <DiagFrameworkDebug.h> // 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
-
--- 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 <DiagFrameworkDebug.h>
-
-// 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
-
--- 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
-
--- 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 <DiagPluginPool.h> // CDiagPluginPool
-#include <DiagFrameworkDebug.h> // LOGSTRING
-#include <DiagPlugin.h> // MDiagPlugin
-#include <DiagTestExecParam.h> // TDiagTestExecParam
-#include <DiagSuiteExecParam.h> // TDiagSuiteExecParam
-#include <DiagResultsDbItemBuilder.h> // CDiagResultsDbItemBuilder
-#include <DiagResultsDbRecordEngineParam.h> // 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<CEventTestProgress&>( 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
-
--- 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 <DiagFrameworkDebug.h> // 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
-
--- 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 <DiagFrameworkDebug.h> // 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
-
--- 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 <DiagPlugin.h> // MDiagPlugin
-#include <DiagSuitePlugin.h> // MDiagSuitePlugin
-#include <DiagFrameworkDebug.h> // LOGSTRING
-#include <DiagSuiteExecParam.h> // 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
-
--- 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 <DiagPlugin.h> // MDiagPlugin
-#include <DiagTestPlugin.h> // MDiagTestPlugin
-#include <DiagFrameworkDebug.h> // LOGSTRING
-#include <DiagResultsDbItemBuilder.h> // CDiagResultsDbItemBuilder
-#include <DiagTestExecParam.h> // TDiagTestExecParam
-#include <DiagResultsDatabase.h> // 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
-
--- 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 <e32base.h> // CActiveSchedulerWait
-#include <logcli.h> // CLogClient
-#include <logview.h> // CLogViewEvent
-#include <DiagFrameworkDebug.h> // 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
--- 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 <DiagNetworkRegStatusWatcher.h>
-
-// SYSTM INCLUDE FILES
-#include <e32base.h>
-#include <DiagFrameworkDebug.h> // Debugging macros
-#include <DiagNetworkRegStatusObserver.h> // 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
-
--- 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 <DiagPluginConstructionParam.h>
-
-// SYSTEM INCLUDE FILES
-#include <badesca.h> // 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
-
--- 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 <e32def.h>
-#include <cstack.h> // CStack
-#include <DiagPlugin.h> // MDiagPlugin
-#include <DiagSuitePlugin.h> // MDiagSuitePlugin
-#include <DiagTestPlugin.h> // MDiagTestPlugin
-#include <DiagPluginPool.h> // CDiagPluginPool
-#include <DiagResultsDatabase.h> // RDiagResultsDatabaseRecord
-#include <DiagResultsDbItemBuilder.h> // CDiagResultsDbItemBuilder
-#include <DiagResultDetail.h> // MDiagResultDetail
-#include <DiagFrameworkDebug.h> // For debug log
-#include <DiagResultsDbRecordEngineParam.h> // 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
- <S1 *P1 S1> <S2 P2 P3 S2>
-
- 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
- <S2 *P1 P2 P3 S2>
-
- After STEP_5
-
- 0 1 2 3 4 5 6
- <S2 <S1 *P1 S1> 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
- <S2 *P2 P3 P4 S2>
-
- After STEP_5, it should look like this:
-
- 0 1 2 3 4 5 6
- <S2 <S1 *P2 S1> 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<MDiagSuitePlugin&>( iPlan[i]->Plugin() );
- RPointerArray<MDiagPlugin> 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 <B B> A>
- // after removal, now prepare/finalize A becomes next to each other
- //
- // i == 1
- // index: 0 [1]
- // <A A>
- //
- // 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<TTransitionStackEntry, ETrue>* stack =
- new( ELeave )CStack<TTransitionStackEntry, ETrue>;
-
- 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<TTransitionStackEntry, ETrue>& 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<TTransitionStackEntry, ETrue>& 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<TTransitionStackEntry, ETrue>& 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
-
--- 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 <xml/parser.h> // CParser
-#include <badesca.h>
-#include <e32svr.h>
-#include <DiagFrameworkDebug.h> // 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:
-
- <diagplugininfo>
- <order number="5"/>
- <serviceprovided name="Browser"/>
- <servicesrequired>"
- <service name="SIM"/>
- <service name="Graphics"/>
- </servicesrequired>
- </diagplugininfo>
- */
-
- 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
-
--- 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 <DiagFrameworkDebug.h>
-// SYSTEM INCLUDE FILES
-#include <DiagPluginPool.h>
-#include <DiagPlugin.h> // 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
-
--- 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 <ecom.h>
-#include <DiagPlugin.h>
-#include <DiagPluginPoolObserver.h>
-#include <DiagPluginConstructionParam.h>
-#include <DiagPluginPoolObserver.h>
-#include <DiagFrameworkDebug.h>
-#include <mmf/common/mmfcontrollerpluginresolver.h> // 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; i<constructionParamsArray->Count(); 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; i<iPlugins.Count(); i++ )
- {
- if ( iPlugins[i]->Uid() == 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; i<iPlugins.Count(); i++ )
- {
- if ( iPlugins[i]->ServiceLogicalName() == 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; insertIndex<constructionParamsArray->Count(); 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<MDiagPlugin*>( 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<MDiagSuitePlugin*>( 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<MDiagSuitePlugin*>(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
-
--- 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 <DiagResultsDbItemBuilder.h>
-
-// SYSTEM INCLUDE FILES
-#include <DiagResultDetail.h> // MDiagResultDetail
-
-#ifndef __DIAGFW_DISABLE_DRM_API
-#include <drmserviceapi.h> // 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
-
--- 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 <DiagSuiteExecParam.h> // TDiagSuiteExecParam
-#include <DiagSuiteObserver.h> // 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<MDiagPlugin>& 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<MDiagPlugin> 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<TUid>& 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
-
--- 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 <DiagSuiteExecParam.h>
-
-// 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
-
--- 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<class TUid> * &) 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<class MDiagPlugin> &, enum MDiagSuitePlugin::TSortOrder) const
- ?GetChildrenUidsL@CDiagSuitePluginBase@@UBEXAAV?$RArray@VTUid@@@@W4TSortOrder@MDiagSuitePlugin@@@Z @ 34 NONAME ; void CDiagSuitePluginBase::GetChildrenUidsL(class RArray<class TUid> &, 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<enum MDiagResultDetail::TOutputFormat> &) 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<class TUid> * &) 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)
-
--- 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 ; #<TI>#
- _ZTI20CDiagSuitePluginBase @ 93 NONAME ; #<TI>#
- _ZTI22CDiagResultDetailBasic @ 94 NONAME ; #<TI>#
- _ZTI26CDiagResultDetailBasicItem @ 95 NONAME ; #<TI>#
- _ZTI31CDiagPluginWaitingDialogWrapper @ 96 NONAME ; #<TI>#
- _ZTV19CDiagTestPluginBase @ 97 NONAME ; #<VT>#
- _ZTV20CDiagSuitePluginBase @ 98 NONAME ; #<VT>#
- _ZTV22CDiagResultDetailBasic @ 99 NONAME ; #<VT>#
- _ZTV26CDiagResultDetailBasicItem @ 100 NONAME ; #<VT>#
- _ZTV31CDiagPluginWaitingDialogWrapper @ 101 NONAME ; #<VT>#
- _ZThn28_N19CDiagTestPluginBase10GetCustomLE4TUidPv @ 102 NONAME ; #<thunk>#
- _ZThn28_N19CDiagTestPluginBase12SetDtorIdKeyE4TUid @ 103 NONAME ; #<thunk>#
- _ZThn28_N19CDiagTestPluginBase14ExecutionStopLEN15MDiagTestPlugin11TStopReasonE @ 104 NONAME ; #<thunk>#
- _ZThn28_N19CDiagTestPluginBase15TestSessionEndLER17MDiagEngineCommoniPv @ 105 NONAME ; #<thunk>#
- _ZThn28_N19CDiagTestPluginBase16CustomOperationLE4TUidPv @ 106 NONAME ; #<thunk>#
- _ZThn28_N19CDiagTestPluginBase17TestSessionBeginLER17MDiagEngineCommoniPv @ 107 NONAME ; #<thunk>#
- _ZThn28_N19CDiagTestPluginBase7ResumeLEv @ 108 NONAME ; #<thunk>#
- _ZThn28_N19CDiagTestPluginBase8RunTestLEP18TDiagTestExecParamiiPv @ 109 NONAME ; #<thunk>#
- _ZThn28_N19CDiagTestPluginBase8SuspendLEv @ 110 NONAME ; #<thunk>#
- _ZThn28_N19CDiagTestPluginBaseD0Ev @ 111 NONAME ; #<thunk>#
- _ZThn28_N19CDiagTestPluginBaseD1Ev @ 112 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBase10GetCustomLE4TUidPv @ 113 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBase12SetDtorIdKeyE4TUid @ 114 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBase14ExecutionStopLEN16MDiagSuitePlugin11TStopReasonE @ 115 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBase15TestSessionEndLER17MDiagEngineCommoniPv @ 116 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBase16CustomOperationLE4TUidPv @ 117 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBase17TestSessionBeginLER17MDiagEngineCommoniPv @ 118 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBase25PrepareChildrenExecutionLEP19TDiagSuiteExecParamii @ 119 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBase26FinalizeChildrenExecutionLEP19TDiagSuiteExecParamii @ 120 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBase9AddChildLEP11MDiagPlugin @ 121 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBaseD0Ev @ 122 NONAME ; #<thunk>#
- _ZThn28_N20CDiagSuitePluginBaseD1Ev @ 123 NONAME ; #<thunk>#
- _ZThn28_NK19CDiagTestPluginBase11CreateIconLEv @ 124 NONAME ; #<thunk>#
- _ZThn28_NK19CDiagTestPluginBase11IsSupportedEv @ 125 NONAME ; #<thunk>#
- _ZThn28_NK19CDiagTestPluginBase13CreateDetailLERK24CDiagResultsDatabaseItem @ 126 NONAME ; #<thunk>#
- _ZThn28_NK19CDiagTestPluginBase15GetDescriptionLEv @ 127 NONAME ; #<thunk>#
- _ZThn28_NK19CDiagTestPluginBase18ServiceLogicalNameEv @ 128 NONAME ; #<thunk>#
- _ZThn28_NK19CDiagTestPluginBase23GetLogicalDependenciesLER12CPtrC16Array @ 129 NONAME ; #<thunk>#
- _ZThn28_NK19CDiagTestPluginBase4TypeEv @ 130 NONAME ; #<thunk>#
- _ZThn28_NK19CDiagTestPluginBase5OrderEv @ 131 NONAME ; #<thunk>#
- _ZThn28_NK19CDiagTestPluginBase9ParentUidEv @ 132 NONAME ; #<thunk>#
- _ZThn28_NK20CDiagSuitePluginBase11CreateIconLEv @ 133 NONAME ; #<thunk>#
- _ZThn28_NK20CDiagSuitePluginBase11IsSupportedEv @ 134 NONAME ; #<thunk>#
- _ZThn28_NK20CDiagSuitePluginBase12GetChildrenLER13RPointerArrayI11MDiagPluginEN16MDiagSuitePlugin10TSortOrderE @ 135 NONAME ; #<thunk>#
- _ZThn28_NK20CDiagSuitePluginBase15GetDescriptionLEv @ 136 NONAME ; #<thunk>#
- _ZThn28_NK20CDiagSuitePluginBase16GetChildrenUidsLER6RArrayI4TUidEN16MDiagSuitePlugin10TSortOrderE @ 137 NONAME ; #<thunk>#
- _ZThn28_NK20CDiagSuitePluginBase18ServiceLogicalNameEv @ 138 NONAME ; #<thunk>#
- _ZThn28_NK20CDiagSuitePluginBase23GetLogicalDependenciesLER12CPtrC16Array @ 139 NONAME ; #<thunk>#
- _ZThn28_NK20CDiagSuitePluginBase4TypeEv @ 140 NONAME ; #<thunk>#
- _ZThn28_NK20CDiagSuitePluginBase5OrderEv @ 141 NONAME ; #<thunk>#
- _ZThn28_NK20CDiagSuitePluginBase9ParentUidEv @ 142 NONAME ; #<thunk>#
- _ZThn4_N22CDiagResultDetailBasicD0Ev @ 143 NONAME ; #<thunk>#
- _ZThn4_N22CDiagResultDetailBasicD1Ev @ 144 NONAME ; #<thunk>#
- _ZThn4_NK22CDiagResultDetailBasic10GetOutputLEN17MDiagResultDetail13TOutputFormatER6RBuf16 @ 145 NONAME ; #<thunk>#
- _ZThn4_NK22CDiagResultDetailBasic11CreateIconLEv @ 146 NONAME ; #<thunk>#
- _ZThn4_NK22CDiagResultDetailBasic17IsOutputSupportedEN17MDiagResultDetail13TOutputFormatE @ 147 NONAME ; #<thunk>#
- _ZThn4_NK22CDiagResultDetailBasic18GetSupportedOutputER6RArrayIN17MDiagResultDetail13TOutputFormatEE @ 148 NONAME ; #<thunk>#
- _ZThn4_NK22CDiagResultDetailBasic20ExternalizeToBufferLEv @ 149 NONAME ; #<thunk>#
- _ZNK19CDiagTestPluginBase21SinglePluginExecutionEv @ 150 NONAME
- _ZNK19CDiagTestPluginBase19VerifyDependenciesLER17MDiagEngineCommonRP6RArrayI4TUidE @ 151 NONAME
- _ZN19CDiagTestPluginBase13ResetWatchdogE24TDiagEngineWatchdogTypesN24CDiagResultsDatabaseItem7TResultE @ 152 NONAME
- _ZN19CDiagTestPluginBase13ResetWatchdogEiN24CDiagResultsDatabaseItem7TResultE @ 153 NONAME
- _ZN19CDiagTestPluginBase22ResetWatchdogToDefaultEv @ 154 NONAME
-
--- 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 <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-../inc/diagplugincommon.loc MW_LAYER_PLATFORM_EXPORT_PATH( diagplugincommon.loc )
-
-PRJ_MMPFILES
-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 <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-
-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
-
--- 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 <e32cmn.h>
-#pragma data_seg(".SYMBIAN")
-__EMULATOR_IMAGE_HEADER2(0x10000079,0x1000008d,0x2000afe9,EPriorityForeground,0x000ffffeu,0x00000000u,0x2000afe9,0x101fb657,0x00010000,0)
-#pragma data_seg()
--- 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
-
--- 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
-
--- 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
-
--- 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 <e32base.h> // 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
-
--- 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 <e32base.h> // CBase
-#include <DiagResultDetail.h> // MDiagResultDetail
-#include <DiagResultsDatabaseItem.h> // 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<TOutputFormat>& 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<CDiagResultDetailBasicItem> iFields;
- };
-
-
-
-#endif // DIAGRESULTDETAILBASIC_H
-
-// End of File
-
--- 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 <e32base.h> // 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
-
--- 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 <e32cmn.h> // TUid
-#include <DiagSuitePlugin.h> // MDiagSuitePlugin
-#include <ConeResLoader.h> // 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
- * <path>:<rsc_file_name>
- */
- 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<MDiagPlugin>& 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<TUid>& 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
-
--- 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 <DiagTestPlugin.h> // MDiagTestPlugin
-#include <ConeResLoader.h> // RConeResourceLoader
-#include <DiagResultsDatabaseItem.h> // CDiagResultsDatabaseItem::TResult
-#include <DiagEngineWatchdogTypes.h> // 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
- * <path>:<rsc_file_name>
- */
- 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<TUid>*& 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<TUid>*& 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
-
--- 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 <bautils.h> // BaflUtils
-#include <ConeResLoader.h> // RConeResourceLoader
-#include <f32file.h> // RFs
-#include <data_caging_path_literals.hrh> // KDC_RESOURCE_FILES_DIR
-#include <DiagFrameworkDebug.h> // 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
-
--- 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 <AknDialog.h> // 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
-
--- 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 <DiagResultDetailBasic.h>
-#include <s32mem.h> // 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<TOutputFormat>& /* 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<CDiagResultDetailBasicItem> 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
-
--- 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 <s32strm.h> // 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
-
--- 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 <DiagSuitePluginBase.h> // CDiagSuitePluginBase
-
-// SYSTEM INCLUDE FILES
-#include <ecom.h> // REComSession
-#include <coemain.h> // CCoeEnv::Static()
-#include <StringLoader.h> // StringLoader
-#include <DiagPluginConstructionParam.h> // CDiagPluginConstructionParam
-#include <DiagSuiteExecParam.h> // TDiagSuiteExecParam
-#include <DiagSuiteObserver.h> // MDiagSuiteObserver
-#include <DiagFrameworkDebug.h> // LOGSTRING
-#include <DiagPluginWaitingDialogWrapper.h> // 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<MDiagPlugin> 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<MDiagPlugin>& 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<MDiagPlugin> 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<TUid>& 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
-
--- 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 <DiagTestPluginBase.h>
-
-// SYSTEM INCLUDE FILES
-#include <coemain.h> // CCoeEnv::Static()
-#include <DiagTestExecParam.h> // TDiagTestExecParam
-#include <DiagResultsDbItemBuilder.h> // CDiagResultsDbItemBuilder
-#include <DiagTestObserver.h> // MDiagTestObserver
-#include <DiagPluginConstructionParam.h> // CDiagPluginConstructionParam
-#include <DiagFrameworkDebug.h> // LOGSTRING
-#include <DiagResultDetailBasic.h> // CDiagResultDetailBasic
-#include <DiagEngineCommon.h> // MDiagEngineCommon
-#include <DiagPluginPool.h> // CDiagPluginPool
-#include <DiagResultsDatabase.h> // RDiagResultsDatabase
-#include <DiagPluginWaitingDialogWrapper.h> // CDiagPluginWaitingDialogWrapper
-#include <DiagPluginExecPlan.h> // MDiagPluginExecPlan
-#include <DiagSuitePlugin.h> // MDiagSuitePlugin
-// ADO & Platformization Changes
-#include <avkon.hrh> // 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<TUid>* 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<TUid>*& 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<TUid>* failedUids = new( ELeave )RArray<TUid>();
- 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<MDiagPlugin> 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
-
-
-
-
--- 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<class TUid> 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<class TDiagResultsDatabaseTestRecordInfo> &)
- ?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<class CDiagResultsDatabaseItem> &) 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<class TUid> &) 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<class CDiagResultsDatabaseItem> &) const
- ?GetTestUids@RDiagResultsDatabaseRecord@@QBEHAAV?$CArrayFixFlat@VTUid@@@@@Z @ 37 NONAME ; int RDiagResultsDatabaseRecord::GetTestUids(class CArrayFixFlat<class TUid> &) 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<class TUid> 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<class TUid> *, 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<class TUid> *, int)
- ?PackArrayL@TDiagResultsDbRecordInfoArrayPacked@@QAEXABV?$CArrayFixFlat@VTDiagResultsDatabaseTestRecordInfo@@@@@Z @ 53 NONAME ; void TDiagResultsDbRecordInfoArrayPacked::PackArrayL(class CArrayFixFlat<class TDiagResultsDatabaseTestRecordInfo> 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<class TDiagResultsDatabaseTestRecordInfo> &)
- ?Version@RDiagResultsDatabase@@QBE?AVTVersion@@XZ @ 62 NONAME ; class TVersion RDiagResultsDatabase::Version(void) const
- ?WasDependency@CDiagResultsDatabaseItem@@QBEHXZ @ 63 NONAME ; int CDiagResultsDatabaseItem::WasDependency(void) const
-
--- 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 ; #<TI>#
- _ZTI31CDiagResultsDbRecordEngineParam @ 75 NONAME ; #<TI>#
- _ZTV24CDiagResultsDatabaseItem @ 76 NONAME ; #<VT>#
- _ZTV31CDiagResultsDbRecordEngineParam @ 77 NONAME ; #<VT>#
-
--- 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 <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-
-PRJ_EXPORTS
-
-PRJ_MMPFILES
-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 <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-
-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
--- 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 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!DOCTYPE PROJECT [
- <!ELEMENT PROJECT (TARGETLIST, TARGETORDER, GROUPLIST, DESIGNLIST?)>
- <!ELEMENT TARGETLIST (TARGET+)>
- <!ELEMENT TARGET (NAME, SETTINGLIST, FILELIST?, LINKORDER?, SEGMENTLIST?, OVERLAYGROUPLIST?, SUBTARGETLIST?, SUBPROJECTLIST?, FRAMEWORKLIST?, PACKAGEACTIONSLIST?)>
- <!ELEMENT NAME (#PCDATA)>
- <!ELEMENT USERSOURCETREETYPE (#PCDATA)>
- <!ELEMENT PATH (#PCDATA)>
- <!ELEMENT FILELIST (FILE*)>
- <!ELEMENT FILE (PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?, ROOTFILEREF?, FILEKIND?, FILEFLAGS?)>
- <!ELEMENT PATHTYPE (#PCDATA)>
- <!ELEMENT PATHROOT (#PCDATA)>
- <!ELEMENT ACCESSPATH (#PCDATA)>
- <!ELEMENT PATHFORMAT (#PCDATA)>
- <!ELEMENT ROOTFILEREF (PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?)>
- <!ELEMENT FILEKIND (#PCDATA)>
- <!ELEMENT FILEFLAGS (#PCDATA)>
- <!ELEMENT FILEREF (TARGETNAME?, PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?)>
- <!ELEMENT TARGETNAME (#PCDATA)>
- <!ELEMENT SETTINGLIST ((SETTING|PANELDATA)+)>
- <!ELEMENT SETTING (NAME?, (VALUE|(SETTING+)))>
- <!ELEMENT PANELDATA (NAME, VALUE)>
- <!ELEMENT VALUE (#PCDATA)>
- <!ELEMENT LINKORDER (FILEREF*)>
- <!ELEMENT SEGMENTLIST (SEGMENT+)>
- <!ELEMENT SEGMENT (NAME, ATTRIBUTES?, FILEREF*)>
- <!ELEMENT ATTRIBUTES (#PCDATA)>
- <!ELEMENT OVERLAYGROUPLIST (OVERLAYGROUP+)>
- <!ELEMENT OVERLAYGROUP (NAME, BASEADDRESS, OVERLAY*)>
- <!ELEMENT BASEADDRESS (#PCDATA)>
- <!ELEMENT OVERLAY (NAME, FILEREF*)>
- <!ELEMENT SUBTARGETLIST (SUBTARGET+)>
- <!ELEMENT SUBTARGET (TARGETNAME, ATTRIBUTES?, FILEREF?)>
- <!ELEMENT SUBPROJECTLIST (SUBPROJECT+)>
- <!ELEMENT SUBPROJECT (FILEREF, SUBPROJECTTARGETLIST)>
- <!ELEMENT SUBPROJECTTARGETLIST (SUBPROJECTTARGET*)>
- <!ELEMENT SUBPROJECTTARGET (TARGETNAME, ATTRIBUTES?, FILEREF?)>
- <!ELEMENT FRAMEWORKLIST (FRAMEWORK+)>
- <!ELEMENT FRAMEWORK (FILEREF, DYNAMICLIBRARY?, VERSION?)>
- <!ELEMENT PACKAGEACTIONSLIST (PACKAGEACTION+)>
- <!ELEMENT PACKAGEACTION (#PCDATA)>
- <!ELEMENT LIBRARYFILE (FILEREF)>
- <!ELEMENT VERSION (#PCDATA)>
- <!ELEMENT TARGETORDER (ORDEREDTARGET|ORDEREDDESIGN)*>
- <!ELEMENT ORDEREDTARGET (NAME)>
- <!ELEMENT ORDEREDDESIGN (NAME, ORDEREDTARGET+)>
- <!ELEMENT GROUPLIST (GROUP|FILEREF)*>
- <!ELEMENT GROUP (NAME, (GROUP|FILEREF)*)>
- <!ELEMENT DESIGNLIST (DESIGN+)>
- <!ELEMENT DESIGN (NAME, DESIGNDATA)>
- <!ELEMENT DESIGNDATA (#PCDATA)>
-]>
-<?codewarrior exportversion="1.0.1" ideversion="5.0" ?>
-<PROJECT>
- <TARGETLIST>
- <TARGET>
- <NAME>WINSCW UDEB</NAME>
- <SETTINGLIST>
-
- <!-- Settings for "Source Trees" panel -->
- <SETTING><NAME>UserSourceTrees</NAME></SETTING>
-
- <!-- Settings for "Access Paths" panel -->
- <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>UserSearchPaths</NAME>
- <SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\inc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Common</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\BWINS</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\src</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING></SETTING>
- <SETTING><NAME>SystemSearchPaths</NAME>
- <SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\oem</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\middleware</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\osextensions</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions\loc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware\loc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions\loc\sc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware\loc\sc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\UDEB</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>Symbian_Support\Win32-x86 Support\Libraries\Win32 SDK</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>Symbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING></SETTING>
-
- <!-- Settings for "Debugger Runtime" panel -->
- <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE/></SETTING>
- <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb\epoc.exe</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Target Settings" panel -->
- <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
- <SETTING><NAME>PreLinker</NAME><VALUE/></SETTING>
- <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
- <SETTING><NAME>Targetname</NAME><VALUE>WINSCW UDEB</VALUE></SETTING>
- <SETTING><NAME>OutputDirectory</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "File Mappings" panel -->
- <SETTING><NAME>FileMappings</NAME>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- </SETTING>
-
- <!-- Settings for "Build Extras" panel -->
- <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
- <SETTING><NAME>DebuggerAppPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE/></SETTING>
- <SETTING><NAME>DebuggerWorkingDir</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE/></SETTING>
- <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Debugger Target" panel -->
- <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
- <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>AltExePath</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>TempBPFunctionName</NAME><VALUE>E32Main</VALUE></SETTING>
- <SETTING><NAME>TempBPType</NAME><VALUE>1</VALUE></SETTING>
-
- <!-- Settings for "Remote Debug" panel -->
- <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ConnectionName</NAME><VALUE/></SETTING>
- <SETTING><NAME>DownloadPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>RemoteAppPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
- <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE/></SETTING>
- <SETTING><NAME>OSDownloadPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "x86 Exceptions" panel -->
- <SETTING><NAME>MWDebugger_X86_Exceptions</NAME>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Auto-target" panel -->
- <SETTING><NAME>OtherExecutables</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Analyzer Connections" panel -->
- <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Custom Keywords" panel -->
- <SETTING><NAME>CustomColor1</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor2</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor3</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor4</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "ARM Debugger" panel -->
- <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>InitializationFile</NAME><VALUE/></SETTING>
- <SETTING><NAME>ConfigurationFile</NAME><VALUE/></SETTING>
- <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>RTOSPluginName</NAME><VALUE/></SETTING>
- <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
- <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
- 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
- </VALUE></PANELDATA>
-
- <!-- Settings for "Symbian Installation" panel -->
- <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
- <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Installer Panel v2" panel -->
- <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
- <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Resource Panel" panel -->
- <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Symbian Resources Panel v2" panel -->
- <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Remote Download" panel -->
- <SETTING><NAME>FileList</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian ARM Debugger" panel -->
- <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>InitializationFile</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>ConfigurationFile</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>RTOSPluginName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian Common Panel" panel -->
- <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SymbianEpocToolsPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Symbian Compiler Panel" panel -->
- <SETTING><NAME>PrefixFile</NAME><VALUE>feature_settings.hrh</VALUE></SETTING>
- <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>Metrowerks x86 Compiler</VALUE></SETTING>
- <SETTING><NAME>Macros</NAME><VALUE>__SYMBIAN32__,__CW32__,__WINS__,__WINSCW__,__DLL__,_DEBUG,_UNICODE,__SUPPORT_CPP_EXCEPTIONS__,</VALUE></SETTING>
- <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Arguments</NAME><VALUE>-wchar_t off -align 4 -warnings on -w nohidevirtual, nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -O0 -inline off -nostdinc</VALUE></SETTING>
- <SETTING><NAME>CIAArgs</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian Debugging" panel -->
- <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Log File Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Symbian SDK Folder</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Kernel Debugging" panel -->
- <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
- <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OS Image Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
- <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Bootrom Sym File</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Symbian Linker Panel" panel -->
- <SETTING><NAME>LinkOutputFile</NAME><VALUE>DiagResultsDatabase.dll</VALUE></SETTING>
- <SETTING><NAME>LinkCmdLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianImportLibrary</NAME><VALUE>DiagResultsDatabase.lib</VALUE></SETTING>
- <SETTING><NAME>canDebug</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian RomBuild Panel" panel -->
- <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
- <SETTING><NAME>OutputPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
-
- <!-- Settings for "Symbian Target" panel -->
- <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
- <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CompilerPrefix</NAME><VALUE/></SETTING>
- <SETTING><NAME>CompilerCmdLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianImportLibraryPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Symbian Tools" panel -->
- <SETTING><NAME>Gnu Tools Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Epoc32 Tools Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- </SETTINGLIST>
- <FILELIST>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.mmp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.def</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>EDLL.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase_UID_.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>euser.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>estor.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>drmserviceapi.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>centralrepository.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>flogger.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseCommon.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbPrivateCRKeys.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseWINSCWUDEB.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-</FILELIST>
- <LINKORDER>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.mmp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.def</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>EDLL.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase_UID_.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>euser.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>estor.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>drmserviceapi.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>centralrepository.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>flogger.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseCommon.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbPrivateCRKeys.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseWINSCWUDEB.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</LINKORDER>
- </TARGET><TARGET>
- <NAME>WINSCW UREL</NAME>
- <SETTINGLIST>
-
- <!-- Settings for "Source Trees" panel -->
- <SETTING><NAME>UserSourceTrees</NAME></SETTING>
-
- <!-- Settings for "Access Paths" panel -->
- <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>UserSearchPaths</NAME>
- <SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\inc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Common</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\BWINS</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\src</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING></SETTING>
- <SETTING><NAME>SystemSearchPaths</NAME>
- <SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\oem</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\middleware</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\osextensions</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions\loc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware\loc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions\loc\sc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware\loc\sc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\UREL</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\release\WINSCW\UDEB</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>Symbian_Support\Win32-x86 Support\Libraries\Win32 SDK</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>Symbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING></SETTING>
-
- <!-- Settings for "Debugger Runtime" panel -->
- <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE/></SETTING>
- <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel\epoc.exe</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Target Settings" panel -->
- <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
- <SETTING><NAME>PreLinker</NAME><VALUE/></SETTING>
- <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
- <SETTING><NAME>Targetname</NAME><VALUE>WINSCW UREL</VALUE></SETTING>
- <SETTING><NAME>OutputDirectory</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "File Mappings" panel -->
- <SETTING><NAME>FileMappings</NAME>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- </SETTING>
-
- <!-- Settings for "Build Extras" panel -->
- <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
- <SETTING><NAME>DebuggerAppPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE/></SETTING>
- <SETTING><NAME>DebuggerWorkingDir</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE/></SETTING>
- <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Debugger Target" panel -->
- <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
- <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>AltExePath</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>TempBPFunctionName</NAME><VALUE>E32Main</VALUE></SETTING>
- <SETTING><NAME>TempBPType</NAME><VALUE>1</VALUE></SETTING>
-
- <!-- Settings for "Remote Debug" panel -->
- <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ConnectionName</NAME><VALUE/></SETTING>
- <SETTING><NAME>DownloadPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>RemoteAppPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
- <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE/></SETTING>
- <SETTING><NAME>OSDownloadPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "x86 Exceptions" panel -->
- <SETTING><NAME>MWDebugger_X86_Exceptions</NAME>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Auto-target" panel -->
- <SETTING><NAME>OtherExecutables</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Analyzer Connections" panel -->
- <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Custom Keywords" panel -->
- <SETTING><NAME>CustomColor1</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor2</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor3</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor4</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "ARM Debugger" panel -->
- <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>InitializationFile</NAME><VALUE/></SETTING>
- <SETTING><NAME>ConfigurationFile</NAME><VALUE/></SETTING>
- <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>RTOSPluginName</NAME><VALUE/></SETTING>
- <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
- <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
- 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
- </VALUE></PANELDATA>
-
- <!-- Settings for "Symbian Installation" panel -->
- <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
- <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Installer Panel v2" panel -->
- <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
- <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Resource Panel" panel -->
- <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Symbian Resources Panel v2" panel -->
- <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Remote Download" panel -->
- <SETTING><NAME>FileList</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian ARM Debugger" panel -->
- <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>InitializationFile</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>ConfigurationFile</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>RTOSPluginName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian Common Panel" panel -->
- <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SymbianEpocToolsPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Symbian Compiler Panel" panel -->
- <SETTING><NAME>PrefixFile</NAME><VALUE>feature_settings.hrh</VALUE></SETTING>
- <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>Metrowerks x86 Compiler</VALUE></SETTING>
- <SETTING><NAME>Macros</NAME><VALUE>__SYMBIAN32__,__CW32__,__WINS__,__WINSCW__,__DLL__,NDEBUG,_UNICODE,__SUPPORT_CPP_EXCEPTIONS__,</VALUE></SETTING>
- <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Arguments</NAME><VALUE>-wchar_t off -align 4 -warnings on -w nohidevirtual, nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -O4,s -nostdinc</VALUE></SETTING>
- <SETTING><NAME>CIAArgs</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian Debugging" panel -->
- <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Log File Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Symbian SDK Folder</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Kernel Debugging" panel -->
- <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
- <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OS Image Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
- <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Bootrom Sym File</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Symbian Linker Panel" panel -->
- <SETTING><NAME>LinkOutputFile</NAME><VALUE>DiagResultsDatabase.dll</VALUE></SETTING>
- <SETTING><NAME>LinkCmdLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianImportLibrary</NAME><VALUE>DiagResultsDatabase.lib</VALUE></SETTING>
- <SETTING><NAME>canDebug</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian RomBuild Panel" panel -->
- <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
- <SETTING><NAME>OutputPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
-
- <!-- Settings for "Symbian Target" panel -->
- <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
- <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CompilerPrefix</NAME><VALUE/></SETTING>
- <SETTING><NAME>CompilerCmdLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianImportLibraryPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Symbian Tools" panel -->
- <SETTING><NAME>Gnu Tools Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Epoc32 Tools Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- </SETTINGLIST>
- <FILELIST>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.mmp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.def</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>EDLL.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase_UID_.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>euser.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>estor.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>drmserviceapi.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>centralrepository.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>flogger.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseWINSCWUREL.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-</FILELIST>
- <LINKORDER>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.mmp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.def</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>EDLL.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase_UID_.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>euser.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>estor.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>drmserviceapi.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>centralrepository.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>flogger.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseWINSCWUREL.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</LINKORDER>
- </TARGET><TARGET>
-<NAME>Build All</NAME><SETTINGLIST><SETTING><NAME>Linker</NAME><VALUE>None</VALUE></SETTING>
-<SETTING><NAME>Targetname</NAME><VALUE>Build All</VALUE></SETTING>
-</SETTINGLIST>
-<FILELIST></FILELIST>
-<LINKORDER></LINKORDER>
-<SUBTARGETLIST><SUBTARGET><TARGETNAME>WINSCW UDEB</TARGETNAME></SUBTARGET>
-<SUBTARGET><TARGETNAME>WINSCW UREL</TARGETNAME></SUBTARGET>
-</SUBTARGETLIST></TARGET></TARGETLIST>
-
- <TARGETORDER>
-<ORDEREDTARGET><NAME>WINSCW UDEB</NAME></ORDEREDTARGET>
-<ORDEREDTARGET><NAME>WINSCW UREL</NAME></ORDEREDTARGET>
-<ORDEREDTARGET><NAME>Build All</NAME></ORDEREDTARGET>
-</TARGETORDER>
-
- <GROUPLIST><FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.mmp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<GROUP><NAME>Source</NAME>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.def</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase_UID_.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</GROUP>
-<GROUP><NAME>Headers</NAME>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseCommon.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbPrivateCRKeys.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</GROUP>
-<GROUP><NAME>Link</NAME>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseWINSCWUDEB.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UREL</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseWINSCWUREL.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</GROUP>
-<GROUP><NAME>Libraries</NAME>
-<GROUP><NAME>WINSCW</NAME>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>EDLL.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>euser.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>estor.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>drmserviceapi.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>centralrepository.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>flogger.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UREL</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>EDLL.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</GROUP>
-</GROUP>
-</GROUPLIST>
-
-</PROJECT>
--- 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 <e32base.h>
-
-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<TUid>& 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<TDiagResultsDatabaseTestRecordInfo>& 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<TUid>& 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<CDiagResultsDatabaseItem>& 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<TUid>& aSortedRecordUidArray ) const;
-
- /*
- * @see GetDatabaseMaximumSize()
- */
- static void DoGetDatabaseMaximumSizeL( TInt& aMaxSize );
-
- void DoGetAllRecordInfosL ( CArrayFixFlat<TDiagResultsDatabaseTestRecordInfo>& aInfoArray);
-
- void DoGetLastResultsL ( RPointerArray<CDiagResultsDatabaseItem>& aResults ) const;
-
- void WriteArrayIntoBufferL( const CArrayFixFlat<TUid>& 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<TUid>& 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<CDiagResultsDatabaseItem>& 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<TUid>& aTestUidArray ) const;
-
- void DoLogTestResultL ( TRequestStatus& aStatus,
- const CDiagResultsDatabaseItem& aResultItem );
-
- void DoGetTestResultsL ( RPointerArray<CDiagResultsDatabaseItem>& 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
-
--- 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 <e32base.h> // 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
--- 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 <e32base.h>
-
-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
--- 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 <e32base.h> // 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<TUid>* 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<TUid>* 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<TUid>& 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<TUid>* 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<TUid>* iExecutionUids;
-
- //Dependency resolving state.
- TBool iDependencyExecution;
-
- };
-
-#endif // DIAGRESULTSDBRECORDENGINEPARAM_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<TDiagResultsDatabaseTestRecordInfo>& aInfoArray);
-
- /**
- * Unpack array from the buffer.
- * @param aInfoArray Contains the unpacked array after function finishes.
- **/
- IMPORT_C void UnpackArrayL(CArrayFixFlat<TDiagResultsDatabaseTestRecordInfo>& aInfoArray);
-
-private:
-
- // Buffer that contains data.
- CBufFlat *& iBuffer;
-
- };
-
-#endif
\ No newline at end of file
--- 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 <diagframeworkdebug.h>
-// SYSTEM INCLUDE FILES
-#include <s32mem.h>
-#include <centralrepository.h>
-
-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<TUid> 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<TUint> 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<TUid>& 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<TUid>& 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<TUid> 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<TUid> pckg;
- TInt err = SendReceive( DiagResultsDbCommon::EGetLastNotCompletedRecord,
- TIpcArgs(&pckg) );
- aRecordUid = pckg();
- return err;
-
- }
-
-// ---------------------------------------------------------------------------
-// Get all test record overviews.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt RDiagResultsDatabase::GetAllRecordInfos (
- CArrayFixFlat<TDiagResultsDatabaseTestRecordInfo>& 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<TDiagResultsDatabaseTestRecordInfo>& 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<TUid>& 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<TUid>& 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<CDiagResultsDatabaseItem>& 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<CDiagResultsDatabaseItem>& 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<TUid> 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<TUid> uid( aRecordId );
- TPckgBuf<TBool> 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<TUid> 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<TBool> 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<TUid> pckg;
- TInt err = SendReceive( DiagResultsDbCommon::ESubsessionGetTestRecordId,
- TIpcArgs(&pckg) );
- aRecordUid = pckg();
- return err;
- }
-
-
-// ---------------------------------------------------------------------------
-// Test record completion.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt RDiagResultsDatabaseRecord::TestCompleted(
- TBool aFullyComplete )
- {
- TPckgBuf<TBool> pckg (aFullyComplete);
- return SendReceive ( DiagResultsDbCommon::ESubsessionTestCompleted,
- TIpcArgs(&pckg) );
- }
-
-// ---------------------------------------------------------------------------
-// GetStatus returns current record status.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt RDiagResultsDatabaseRecord::GetStatus(
- TRecordStatus& aRecordStatus ) const
- {
- TPckgBuf<TRecordStatus> 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<TBool> pckg;
- TInt err = SendReceive( DiagResultsDbCommon::ESubsessionIsTestCompleted,
- TIpcArgs(&pckg) );
- aCompleted = pckg();
- return err;
- }
-
-
-// ---------------------------------------------------------------------------
-// Returns record overview.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt RDiagResultsDatabaseRecord::GetRecordInfo (
- TDiagResultsDatabaseTestRecordInfo& aInfo ) const
- {
- TPckgBuf<TDiagResultsDatabaseTestRecordInfo> 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<TUid>& 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<TUid>& 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<CDiagResultsDatabaseItem>& 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<CDiagResultsDatabaseItem>& 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<TUid> 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
-
-
--- 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 <s32std.h>
-
-#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;
- }
-
-
-
-
--- 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 <s32strm.h>
-#include <s32std.h>
-#include <drmserviceapi.h>
-
-// 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;
- }
--- 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 <s32std.h>
-
-#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<TUid>* 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<TUid>* 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<TUid>& 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<TUid>(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<TUid>* aInitialUids,
- TBool aDependencyExecution )
- {
- iExecutionUids = aInitialUids;
- iDependencyExecution = aDependencyExecution;
- }
-
-
-
-
--- 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 <s32strm.h>
-#include <s32mem.h>
-
-// 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<TDiagResultsDatabaseTestRecordInfo>& 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<TDiagResultsDatabaseTestRecordInfo>& 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 );
- }
--- 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 <e32std.h> // TTime
-#include <flogger.h>
-
-// 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<const TDesC>( 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
-
--- 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 <e32std.h>
-
-// =============================================================================
-// 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
-
--- 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
Binary file devicediagnosticsfw/diagresultsdb/server/cenrep_files/keys_diagresultsdb.xls has changed
--- 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
Binary file devicediagnosticsfw/diagresultsdb/server/cenrep_files/output/inifiles/2000B45D.txt has changed
Binary file devicediagnosticsfw/diagresultsdb/server/cenrep_files/output/key_sheets_info.storable has changed
--- 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
Binary file devicediagnosticsfw/diagresultsdb/server/conf/diagresultsdb.confml has changed
Binary file devicediagnosticsfw/diagresultsdb/server/conf/diagresultsdb_2000B45d.crml has changed
--- 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 <platform_paths.hrh>
-
-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
-
--- 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 <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-
-
-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
-
-
--- 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 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!DOCTYPE PROJECT [
- <!ELEMENT PROJECT (TARGETLIST, TARGETORDER, GROUPLIST, DESIGNLIST?)>
- <!ELEMENT TARGETLIST (TARGET+)>
- <!ELEMENT TARGET (NAME, SETTINGLIST, FILELIST?, LINKORDER?, SEGMENTLIST?, OVERLAYGROUPLIST?, SUBTARGETLIST?, SUBPROJECTLIST?, FRAMEWORKLIST?, PACKAGEACTIONSLIST?)>
- <!ELEMENT NAME (#PCDATA)>
- <!ELEMENT USERSOURCETREETYPE (#PCDATA)>
- <!ELEMENT PATH (#PCDATA)>
- <!ELEMENT FILELIST (FILE*)>
- <!ELEMENT FILE (PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?, ROOTFILEREF?, FILEKIND?, FILEFLAGS?)>
- <!ELEMENT PATHTYPE (#PCDATA)>
- <!ELEMENT PATHROOT (#PCDATA)>
- <!ELEMENT ACCESSPATH (#PCDATA)>
- <!ELEMENT PATHFORMAT (#PCDATA)>
- <!ELEMENT ROOTFILEREF (PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?)>
- <!ELEMENT FILEKIND (#PCDATA)>
- <!ELEMENT FILEFLAGS (#PCDATA)>
- <!ELEMENT FILEREF (TARGETNAME?, PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?)>
- <!ELEMENT TARGETNAME (#PCDATA)>
- <!ELEMENT SETTINGLIST ((SETTING|PANELDATA)+)>
- <!ELEMENT SETTING (NAME?, (VALUE|(SETTING+)))>
- <!ELEMENT PANELDATA (NAME, VALUE)>
- <!ELEMENT VALUE (#PCDATA)>
- <!ELEMENT LINKORDER (FILEREF*)>
- <!ELEMENT SEGMENTLIST (SEGMENT+)>
- <!ELEMENT SEGMENT (NAME, ATTRIBUTES?, FILEREF*)>
- <!ELEMENT ATTRIBUTES (#PCDATA)>
- <!ELEMENT OVERLAYGROUPLIST (OVERLAYGROUP+)>
- <!ELEMENT OVERLAYGROUP (NAME, BASEADDRESS, OVERLAY*)>
- <!ELEMENT BASEADDRESS (#PCDATA)>
- <!ELEMENT OVERLAY (NAME, FILEREF*)>
- <!ELEMENT SUBTARGETLIST (SUBTARGET+)>
- <!ELEMENT SUBTARGET (TARGETNAME, ATTRIBUTES?, FILEREF?)>
- <!ELEMENT SUBPROJECTLIST (SUBPROJECT+)>
- <!ELEMENT SUBPROJECT (FILEREF, SUBPROJECTTARGETLIST)>
- <!ELEMENT SUBPROJECTTARGETLIST (SUBPROJECTTARGET*)>
- <!ELEMENT SUBPROJECTTARGET (TARGETNAME, ATTRIBUTES?, FILEREF?)>
- <!ELEMENT FRAMEWORKLIST (FRAMEWORK+)>
- <!ELEMENT FRAMEWORK (FILEREF, DYNAMICLIBRARY?, VERSION?)>
- <!ELEMENT PACKAGEACTIONSLIST (PACKAGEACTION+)>
- <!ELEMENT PACKAGEACTION (#PCDATA)>
- <!ELEMENT LIBRARYFILE (FILEREF)>
- <!ELEMENT VERSION (#PCDATA)>
- <!ELEMENT TARGETORDER (ORDEREDTARGET|ORDEREDDESIGN)*>
- <!ELEMENT ORDEREDTARGET (NAME)>
- <!ELEMENT ORDEREDDESIGN (NAME, ORDEREDTARGET+)>
- <!ELEMENT GROUPLIST (GROUP|FILEREF)*>
- <!ELEMENT GROUP (NAME, (GROUP|FILEREF)*)>
- <!ELEMENT DESIGNLIST (DESIGN+)>
- <!ELEMENT DESIGN (NAME, DESIGNDATA)>
- <!ELEMENT DESIGNDATA (#PCDATA)>
-]>
-<?codewarrior exportversion="1.0.1" ideversion="5.0" ?>
-<PROJECT>
- <TARGETLIST>
- <TARGET>
- <NAME>WINSCW UDEB</NAME>
- <SETTINGLIST>
-
- <!-- Settings for "Source Trees" panel -->
- <SETTING><NAME>UserSourceTrees</NAME></SETTING>
-
- <!-- Settings for "Access Paths" panel -->
- <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>UserSearchPaths</NAME>
- <SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\inc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\common</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\Inc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\Src</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\src</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING></SETTING>
- <SETTING><NAME>SystemSearchPaths</NAME>
- <SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\oem</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\middleware</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\osextensions</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions\loc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware\loc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions\loc\sc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware\loc\sc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\UDEB</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>Symbian_Support\Win32-x86 Support\Libraries\Win32 SDK</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>Symbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING></SETTING>
-
- <!-- Settings for "Debugger Runtime" panel -->
- <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE/></SETTING>
- <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb\diagresultsdatabaseserver.exe</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Target Settings" panel -->
- <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
- <SETTING><NAME>PreLinker</NAME><VALUE/></SETTING>
- <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
- <SETTING><NAME>Targetname</NAME><VALUE>WINSCW UDEB</VALUE></SETTING>
- <SETTING><NAME>OutputDirectory</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "File Mappings" panel -->
- <SETTING><NAME>FileMappings</NAME>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- </SETTING>
-
- <!-- Settings for "Build Extras" panel -->
- <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
- <SETTING><NAME>DebuggerAppPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE/></SETTING>
- <SETTING><NAME>DebuggerWorkingDir</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE/></SETTING>
- <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Debugger Target" panel -->
- <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
- <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>AltExePath</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>TempBPFunctionName</NAME><VALUE>E32Main</VALUE></SETTING>
- <SETTING><NAME>TempBPType</NAME><VALUE>1</VALUE></SETTING>
-
- <!-- Settings for "Remote Debug" panel -->
- <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ConnectionName</NAME><VALUE/></SETTING>
- <SETTING><NAME>DownloadPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>RemoteAppPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
- <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE/></SETTING>
- <SETTING><NAME>OSDownloadPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "x86 Exceptions" panel -->
- <SETTING><NAME>MWDebugger_X86_Exceptions</NAME>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Auto-target" panel -->
- <SETTING><NAME>OtherExecutables</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Analyzer Connections" panel -->
- <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Custom Keywords" panel -->
- <SETTING><NAME>CustomColor1</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor2</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor3</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor4</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "ARM Debugger" panel -->
- <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>InitializationFile</NAME><VALUE/></SETTING>
- <SETTING><NAME>ConfigurationFile</NAME><VALUE/></SETTING>
- <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>RTOSPluginName</NAME><VALUE/></SETTING>
- <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
- <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
- 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
- </VALUE></PANELDATA>
-
- <!-- Settings for "Symbian Installation" panel -->
- <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
- <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Installer Panel v2" panel -->
- <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
- <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Resource Panel" panel -->
- <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Symbian Resources Panel v2" panel -->
- <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Remote Download" panel -->
- <SETTING><NAME>FileList</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian ARM Debugger" panel -->
- <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>InitializationFile</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>ConfigurationFile</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>RTOSPluginName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian Common Panel" panel -->
- <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SymbianEpocToolsPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Symbian Compiler Panel" panel -->
- <SETTING><NAME>PrefixFile</NAME><VALUE>feature_settings.hrh</VALUE></SETTING>
- <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>Metrowerks x86 Compiler</VALUE></SETTING>
- <SETTING><NAME>Macros</NAME><VALUE>__SYMBIAN32__,__CW32__,__WINS__,__WINSCW__,__EXE__,_DEBUG,_UNICODE,__SUPPORT_CPP_EXCEPTIONS__,</VALUE></SETTING>
- <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Arguments</NAME><VALUE>-wchar_t off -align 4 -warnings on -w nohidevirtual, nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -O0 -inline off -nostdinc</VALUE></SETTING>
- <SETTING><NAME>CIAArgs</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian Debugging" panel -->
- <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Log File Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Symbian SDK Folder</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Kernel Debugging" panel -->
- <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
- <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OS Image Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
- <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Bootrom Sym File</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Symbian Linker Panel" panel -->
- <SETTING><NAME>LinkOutputFile</NAME><VALUE>diagresultsdatabaseserver.exe</VALUE></SETTING>
- <SETTING><NAME>LinkCmdLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianImportLibrary</NAME><VALUE>diagresultsdatabaseserver.lib</VALUE></SETTING>
- <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>canRun</NAME><VALUE>true</VALUE></SETTING>
-
- <!-- Settings for "Symbian RomBuild Panel" panel -->
- <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
- <SETTING><NAME>OutputPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
-
- <!-- Settings for "Symbian Target" panel -->
- <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
- <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CompilerPrefix</NAME><VALUE/></SETTING>
- <SETTING><NAME>CompilerCmdLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianImportLibraryPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Symbian Tools" panel -->
- <SETTING><NAME>Gnu Tools Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Epoc32 Tools Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- </SETTINGLIST>
- <FILELIST>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.mmp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>EEXE.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbSession.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordSubsession.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbStore.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecord.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordHandle.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserver_UID_.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>euser.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>efsrv.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>estor.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>flogger.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>drmserviceapi.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>sysutil.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>centralrepository.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND><FILEFLAGS>Debug</FILEFLAGS></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseCommon.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbCRDC.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbPrivateCRKeys.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbSession.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbStore.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecord.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordHandle.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordSubsession.h</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserverWINSCWUDEB.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-</FILELIST>
- <LINKORDER>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.mmp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>EEXE.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbSession.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordSubsession.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbStore.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecord.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordHandle.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserver_UID_.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>euser.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>efsrv.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>estor.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>flogger.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>drmserviceapi.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>sysutil.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>centralrepository.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseCommon.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbCRDC.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbPrivateCRKeys.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbSession.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbStore.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecord.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordHandle.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordSubsession.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserverWINSCWUDEB.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</LINKORDER>
- </TARGET><TARGET>
- <NAME>WINSCW UREL</NAME>
- <SETTINGLIST>
-
- <!-- Settings for "Source Trees" panel -->
- <SETTING><NAME>UserSourceTrees</NAME></SETTING>
-
- <!-- Settings for "Access Paths" panel -->
- <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>UserSearchPaths</NAME>
- <SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\inc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\common</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\Inc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Client\Src</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\src</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING></SETTING>
- <SETTING><NAME>SystemSearchPaths</NAME>
- <SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\oem</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\middleware</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\osextensions</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions\loc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware\loc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\osextensions\loc\sc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\include\domain\middleware\loc\sc</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\UREL</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>epoc32\release\WINSCW\UDEB</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>Symbian_Support\Win32-x86 Support\Libraries\Win32 SDK</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING><SETTING>
-<SETTING><NAME>SearchPath</NAME>
-<SETTING><NAME>Path</NAME><VALUE>Symbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-</SETTING><SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
-<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-</SETTING></SETTING>
-
- <!-- Settings for "Debugger Runtime" panel -->
- <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE/></SETTING>
- <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel\diagresultsdatabaseserver.exe</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Target Settings" panel -->
- <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
- <SETTING><NAME>PreLinker</NAME><VALUE/></SETTING>
- <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
- <SETTING><NAME>Targetname</NAME><VALUE>WINSCW UREL</VALUE></SETTING>
- <SETTING><NAME>OutputDirectory</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "File Mappings" panel -->
- <SETTING><NAME>FileMappings</NAME>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE/></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- <SETTING>
- <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
- <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
- <SETTING><NAME>EditLanguage</NAME><VALUE/></SETTING>
- <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
- </SETTING>
- </SETTING>
-
- <!-- Settings for "Build Extras" panel -->
- <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
- <SETTING><NAME>DebuggerAppPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE/></SETTING>
- <SETTING><NAME>DebuggerWorkingDir</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE/></SETTING>
- <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Debugger Target" panel -->
- <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
- <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>AltExePath</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
- <SETTING><NAME>TempBPFunctionName</NAME><VALUE>E32Main</VALUE></SETTING>
- <SETTING><NAME>TempBPType</NAME><VALUE>1</VALUE></SETTING>
-
- <!-- Settings for "Remote Debug" panel -->
- <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>ConnectionName</NAME><VALUE/></SETTING>
- <SETTING><NAME>DownloadPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>RemoteAppPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
- <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE/></SETTING>
- <SETTING><NAME>OSDownloadPath</NAME><VALUE/></SETTING>
- <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "x86 Exceptions" panel -->
- <SETTING><NAME>MWDebugger_X86_Exceptions</NAME>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- <SETTING><VALUE>0</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Auto-target" panel -->
- <SETTING><NAME>OtherExecutables</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Analyzer Connections" panel -->
- <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Custom Keywords" panel -->
- <SETTING><NAME>CustomColor1</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor2</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor3</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>CustomColor4</NAME>
- <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
- <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "ARM Debugger" panel -->
- <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>InitializationFile</NAME><VALUE/></SETTING>
- <SETTING><NAME>ConfigurationFile</NAME><VALUE/></SETTING>
- <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>RTOSPluginName</NAME><VALUE/></SETTING>
- <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
- <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
- 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
- </VALUE></PANELDATA>
-
- <!-- Settings for "Symbian Installation" panel -->
- <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
- <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Installer Panel v2" panel -->
- <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
- <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Resource Panel" panel -->
- <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Symbian Resources Panel v2" panel -->
- <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>s60\mw\devicecontentservices\devicediagnostics\diagnosticsfw\diagresultsdb\Server\group</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\urel</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
- <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
- <SETTING><NAME>Path</NAME><VALUE>epoc32\include</VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Remote Download" panel -->
- <SETTING><NAME>FileList</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian ARM Debugger" panel -->
- <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
- <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>InitializationFile</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>ConfigurationFile</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
- <SETTING><NAME>RTOSPluginName</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian Common Panel" panel -->
- <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SymbianEpocToolsPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-<SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-<SETTING><NAME>PathRoot</NAME><VALUE>2 SDKTube</VALUE></SETTING>
-</SETTING>
-
- <!-- Settings for "Symbian Compiler Panel" panel -->
- <SETTING><NAME>PrefixFile</NAME><VALUE>feature_settings.hrh</VALUE></SETTING>
- <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>Metrowerks x86 Compiler</VALUE></SETTING>
- <SETTING><NAME>Macros</NAME><VALUE>__SYMBIAN32__,__CW32__,__WINS__,__WINSCW__,__EXE__,NDEBUG,_UNICODE,__SUPPORT_CPP_EXCEPTIONS__,</VALUE></SETTING>
- <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Arguments</NAME><VALUE>-wchar_t off -align 4 -warnings on -w nohidevirtual, nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -O4,s -nostdinc</VALUE></SETTING>
- <SETTING><NAME>CIAArgs</NAME><VALUE/></SETTING>
-
- <!-- Settings for "Symbian Debugging" panel -->
- <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Log File Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Symbian SDK Folder</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
-
- <!-- Settings for "Symbian Kernel Debugging" panel -->
- <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
- <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>OS Image Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
- <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>Bootrom Sym File</NAME>
- <SETTING><NAME>Path</NAME><VALUE/></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Symbian Linker Panel" panel -->
- <SETTING><NAME>LinkOutputFile</NAME><VALUE>diagresultsdatabaseserver.exe</VALUE></SETTING>
- <SETTING><NAME>LinkCmdLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianImportLibrary</NAME><VALUE>diagresultsdatabaseserver.lib</VALUE></SETTING>
- <SETTING><NAME>canDebug</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>canRun</NAME><VALUE>true</VALUE></SETTING>
-
- <!-- Settings for "Symbian RomBuild Panel" panel -->
- <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
- <SETTING><NAME>OutputPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
-
- <!-- Settings for "Symbian Target" panel -->
- <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
- <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
- <SETTING><NAME>CompilerPrefix</NAME><VALUE/></SETTING>
- <SETTING><NAME>CompilerCmdLine</NAME><VALUE/></SETTING>
- <SETTING><NAME>SymbianImportLibraryPath</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
-
- <!-- Settings for "Symbian Tools" panel -->
- <SETTING><NAME>Gnu Tools Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- <SETTING><NAME>Epoc32 Tools Path</NAME>
- <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
- <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
- <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
- </SETTING>
- </SETTINGLIST>
- <FILELIST>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.mmp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>EEXE.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbSession.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordSubsession.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbStore.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecord.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordHandle.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserver_UID_.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>euser.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>efsrv.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>estor.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>flogger.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>drmserviceapi.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>sysutil.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>centralrepository.lib</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Library</FILEKIND></FILE>
-<FILE><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserverWINSCWUREL.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT><FILEKIND>Text</FILEKIND></FILE>
-</FILELIST>
- <LINKORDER>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.mmp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>EEXE.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbSession.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordSubsession.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbStore.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecord.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordHandle.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserver_UID_.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>euser.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>efsrv.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>estor.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>flogger.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>drmserviceapi.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>sysutil.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>centralrepository.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserverWINSCWUREL.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</LINKORDER>
- </TARGET><TARGET>
-<NAME>Build All</NAME><SETTINGLIST><SETTING><NAME>Linker</NAME><VALUE>None</VALUE></SETTING>
-<SETTING><NAME>Targetname</NAME><VALUE>Build All</VALUE></SETTING>
-</SETTINGLIST>
-<FILELIST></FILELIST>
-<LINKORDER></LINKORDER>
-<SUBTARGETLIST><SUBTARGET><TARGETNAME>WINSCW UDEB</TARGETNAME></SUBTARGET>
-<SUBTARGET><TARGETNAME>WINSCW UREL</TARGETNAME></SUBTARGET>
-</SUBTARGETLIST></TARGET></TARGETLIST>
-
- <TARGETORDER>
-<ORDEREDTARGET><NAME>WINSCW UDEB</NAME></ORDEREDTARGET>
-<ORDEREDTARGET><NAME>WINSCW UREL</NAME></ORDEREDTARGET>
-<ORDEREDTARGET><NAME>Build All</NAME></ORDEREDTARGET>
-</TARGETORDER>
-
- <GROUPLIST><FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.mmp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<GROUP><NAME>Source</NAME>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbSession.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordSubsession.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbStore.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecord.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordHandle.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserver_UID_.cpp</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</GROUP>
-<GROUP><NAME>Headers</NAME>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseCommon.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseItem.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabaseTestRecordInfo.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbCRDC.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbPrivateCRKeys.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordEngineParam.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbRecordInfoArrayPacked.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbServer.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbSession.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbStore.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecord.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordHandle.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDbTestRecordSubsession.h</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</GROUP>
-<GROUP><NAME>Link</NAME>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserverWINSCWUDEB.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UREL</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>diagresultsdatabaseserverWINSCWUREL.cwlink</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</GROUP>
-<GROUP><NAME>Libraries</NAME>
-<GROUP><NAME>WINSCW</NAME>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>EEXE.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>euser.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>efsrv.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>estor.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>flogger.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>DiagResultsDatabase.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>drmserviceapi.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>sysutil.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UDEB</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>centralrepository.lib</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-<FILEREF><TARGETNAME>WINSCW UREL</TARGETNAME><PATHTYPE>Name</PATHTYPE><PATH>EEXE.LIB</PATH><PATHFORMAT>Windows</PATHFORMAT></FILEREF>
-</GROUP>
-</GROUP>
-</GROUPLIST>
-
-</PROJECT>
--- 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 T>
-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 <class T>
-inline void CleanupResetAndDestroyClosePushL(T& aRef)
- {
- CleanupResetAndDestroyClose<T>::PushL(aRef);
- }
--- 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 <e32base.h>
-#include <f32file.h>
-
-/**
-* 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
--- 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 <e32cmn.h> //TUid
-#include <e32base.h>
-
-/**
-* 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<CDiagResultsDbTestRecord>* 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<CDiagResultsDbTestRecord>* 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<TUid>& aUidArray,
- RPointerArray<CDiagResultsDbTestRecord>& aTestRecordArray,
- RPointerArray<CDiagResultsDatabaseItem>& aResultsArray );
-
- /**
- * Reads uids that are searched from the buffer and creates the test result array.
- *
- * @param aArray Contains all test records.
- **/
- void FindLastResultsL( RPointerArray<CDiagResultsDbTestRecord>& 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<TUid>& aUidArray,
- RPointerArray<CDiagResultsDatabaseItem>& 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<CDiagResultsDatabaseItem>* 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
--- 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 <s32file.h> //CPermanentFileStore
-#include <f32file.h> //Rfs, RFile
-#include <e32base.h>
-
-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<CDiagResultsDbTestRecord>* 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<TDiagResultsDatabaseTestRecordInfo>* 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<TUid>& 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<TStreamId>& 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<TStreamId>& 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<TStreamId>& 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<TStreamId>& 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<TStreamId>& aIds );
- void CheckOverflowingTestResultsL( RArray<TStreamId>& 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<CDiagResultsDbTestRecord>* iRecordArray;
-
- // Contains available record ids. Used in async methods.
- RArray<TStreamId>* 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
--- 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<CDiagResultsDatabaseItem> 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
--- 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 <s32std.h> //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<TTestResultHandle> iHandleArray;
-
- // Represents root stream ID.
- TStreamId iRecordId;
-
- // Engine parameters.
- CDiagResultsDbRecordEngineParam* iEngineParam;
- };
-
-#endif //DIAGRESULTSDBTESTRECORDHANDLE_H
-
\ No newline at end of file
--- 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 <e32cmn.h> //RMessage2
-#include <e32base.h> //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
--- 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 <e32base.h>
-#include <e32uid.h>
-
-//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;
- }
-
-
--- 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 <s32mem.h>
-
-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<TUid> 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<TUid> uids;
- CleanupClosePushL ( uids );
- iStore->RecordUidsL( uids );
-
- TPckgBuf<TUint> 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<CDiagResultsDbTestRecordSubsession*>(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<TUid> uidpckg;
- aMessage.Read(0, uidpckg);
- TUid recordUid = uidpckg();
-
- TPckgBuf<TBool> 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<TUid> 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<TInt> 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<TUid> uids;
- CleanupClosePushL ( uids );
- iStore->RecordUidsL( uids );
-
- if ( uids.Count() == 0 )
- {
- User::Leave( KErrNotFound );
- }
-
- TPckgBuf<TUid> 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<TUid> 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<TUid> 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<TUid> 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<TDiagResultsDatabaseTestRecordInfo>* array = new (ELeave)
- CArrayFixFlat<TDiagResultsDatabaseTestRecordInfo>(KArrayGranuality);
- CleanupStack::PushL (array);
-
- RArray<TUid> 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<CDiagResultsDbTestRecord>* 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<TUid> 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<CDiagResultsDbTestRecord>& aArray )
- {
-
- CArrayFixFlat<TUid>* uidArray = new (ELeave)
- CArrayFixFlat<TUid>(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<CDiagResultsDatabaseItem>;
-
- 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<TUid>& aUidArray,
- RPointerArray<CDiagResultsDatabaseItem>& 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<TUid>& aUidArray,
- RPointerArray<CDiagResultsDbTestRecord>& aTestRecordArray,
- RPointerArray<CDiagResultsDatabaseItem>& 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<CDiagResultsDbTestRecord>* 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;
- }
--- 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 <s32std.h>
-#include <sysutil.h>
-#include <f32file.h>
-#include <centralrepository.h>
-
-#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<CDiagResultsDbTestRecord>;
- iRecordIds = new (ELeave) RArray<TStreamId>;
- // 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<TUid>* uids = new (ELeave) RArray<TUid>;
-
- 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<TDiagResultsDatabaseTestRecordInfo>* CDiagResultsDbStore::ExistingRecordInfosL()
- {
- RArray<TStreamId> ids;
- CleanupClosePushL( ids );
- // Find available stream ids
- ReadRootStreamL( ids );
-
- RArray<TDiagResultsDatabaseTestRecordInfo>* infos = new (ELeave)
- RArray<TDiagResultsDatabaseTestRecordInfo>;
- 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<TStreamId> 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<TStreamId> 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<TStreamId>& aIds )
-///@@@KSR: changes for Codescanner error val = High
-void CDiagResultsDbStore::CheckOverflowingTestResultsL( RArray<TStreamId>& 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<TStreamId>& 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<TStreamId>& 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<TStreamId>& 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<TStreamId> ids;
- CleanupClosePushL( ids );
-
- ReadRootStreamL( ids );
-
- ids.Append( aId );
-
- ReplaceRootStreamL( ids );
-
- CleanupStack::PopAndDestroy( &ids);
- }
-
-// ---------------------------------------------------------------------------
-// Returns TUids from the root stream.
-// ---------------------------------------------------------------------------
-//
-void CDiagResultsDbStore::RecordUidsL(RArray<TUid>& aUids)
- {
- RArray<TStreamId> 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<TStreamId>& 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 );
- }
-
-
--- 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
--- 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 );
-
- }
-
-
--- 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 <s32mem.h>
-
-//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<TUid> 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<TBool> pckg ( Completed() );
- aMessage.Write( 0, pckg );
- return EFalse;
- }
- case DiagResultsDbCommon::ESubsessionGetRecordInfo:
- {
- TPckgBuf<TDiagResultsDatabaseTestRecordInfo> 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<TBool> 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<RDiagResultsDatabaseRecord::TRecordStatus> 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<TUid> 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<TBool> 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 );
- }
--- 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 <platform_paths.hrh>
-
-
- #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)
--- 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 <data_caging_paths_for_iby.hrh>
-
-file=ABI_DIR\BUILD_DIR\diagframework.dll SHARED_LIB_DIR\diagframework.dll
-
-#endif
-
-#endif // DIAGFRAMEWORK_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 <data_caging_paths_for_iby.hrh>
-
-file=ABI_DIR\BUILD_DIR\diagpluginbase.dll SHARED_LIB_DIR\diagpluginbase.dll
-
-#endif
-
-#endif // DIAGPLUGINBASE_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 <data_caging_paths_for_iby.hrh>
-
-file=ABI_DIR\BUILD_DIR\diagresultsdatabase.dll SHARED_LIB_DIR\diagresultsdatabase.dll
-
-#endif
-
-#endif // DIAGRESULTSDATABASE_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 <data_caging_paths_for_iby.hrh>
-
-file=ABI_DIR\BUILD_DIR\diagresultsdatabaseserver.exe PROGRAMS_DIR\diagresultsdatabaseserver.exe
-
-#endif
-
-#endif // DIAGRESULTSDATABASESERVER_IBY
--- 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"
--- 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 @@
-<?xml version="1.0" ?>
-<api id="6785e3ef1cc0173dbbadb6541864411d" dataversion="1.0">
- <name>Diagnostics Framework API</name>
- <description>An API for loading and executing diagnostics test cases.</description>
- <type>c++</type>
- <subsystem>devicediagnosticsfw</subsystem>
- <libs>
- <lib name="diagframework.lib" />
- </libs>
- <release category="domain"/>
- <attributes>
- <!-- This indicates wether the api provedes separate html documentation -->
- <!-- or is the additional documentation generated from headers. -->
- <!-- If you are unsuere then the value is "no" -->
- <htmldocprovided>no</htmldocprovided>
- <adaptation>no</adaptation>
- </attributes>
-</api>
--- 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 <platform_paths.hrh>
-
-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)
--- 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
-
--- 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 <e32base.h> // CBase
-
-// user includes.
-#include <DiagEngineCommon.h> // 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
-
--- 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 <e32std.h> // TDesC, TTimeIntervalMicroSeconds32
-#include <DiagCommonDialog.h> // TDiagCommonDialog
-#include <DiagAppCommand.h> // TDiagAppCommand
-#include <DiagEngineWatchdogTypes.h> // 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
-
--- 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 <e32def.h> // TUint
-#include <DiagCommonDialog.h> // TDiagCommonDialog
-#include <DiagAppCommand.h> // 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
-
--- 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
-
--- 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 <e32def.h> // 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
-
--- 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 <e32debug.h> // 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 <flogger.h>
-
-// 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<const TDesC>( KFormat() ), \
- a ); \
- }
-
-#define LOGSTRING3( aFormat, a, b ) \
- { \
- _LIT( KFormat, aFormat ); \
- RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \
- KDiagFrameworkLogFile(), \
- EFileLoggingModeAppend, \
- TRefByValue<const TDesC>( KFormat() ), \
- a, b ); \
- }
-
-#define LOGSTRING4( aFormat, a, b, c ) \
- { \
- _LIT( KFormat, aFormat ); \
- RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \
- KDiagFrameworkLogFile(), \
- EFileLoggingModeAppend, \
- TRefByValue<const TDesC>( KFormat() ), \
- a, b, c ); \
- }
-
-#define LOGSTRING5( aFormat, a, b, c, d ) \
- { \
- _LIT( KFormat, aFormat ); \
- RFileLogger::WriteFormat( KDiagFrameworkLogFolder(), \
- KDiagFrameworkLogFile(), \
- EFileLoggingModeAppend, \
- TRefByValue<const TDesC>( 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
-
--- 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 <e32base.h> // 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
-
--- 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 @@
-<?xml version="1.0" ?>
-<api id="bf4161c7185b3c27ea85e2824c07f5e5" dataversion="1.0">
- <name>Diagnostics plug-in API</name>
- <description>Diagnostics plug-ins interface</description>
- <type>c++</type>
- <subsystem>devicediagnosticsfw</subsystem>
- <libs>
- <lib name="diagpluginbase.lib" />
- </libs>
- <release category="domain"/>
- <attributes>
- <!-- This indicates wether the api provedes separate html documentation -->
- <!-- or is the additional documentation generated from headers. -->
- <!-- If you are unsuere then the value is "no" -->
- <htmldocprovided>no</htmldocprovided>
- <adaptation>no</adaptation>
- </attributes>
-</api>
--- 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 <platform_paths.hrh>
-
-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)
--- 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 <badesca.h> // 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
-
--- 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 <e32base.h> // 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
-
--- 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 <e32def.h> // 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
-
--- 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
-
--- 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 <DiagPlugin.h> // 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<MDiagPlugin>& 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<TUid>& 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
-
--- 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 <e32cmn.h> // TUid
-#include <DiagSuitePlugin.h> // MDiagSuitePlugin
-#include <ConeResLoader.h> // 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
- * <path>:<rsc_file_name>
- */
- 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<MDiagPlugin>& 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<TUid>& 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
-
--- 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 <e32def.h> // 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
-
--- 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 <e32def.h> // TUint
-#include <DiagEngineWatchdogTypes.h> // 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
-
--- 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 <DiagPlugin.h> // 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
-
--- 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 <DiagTestPlugin.h> // MDiagTestPlugin
-#include <ConeResLoader.h> // RConeResourceLoader
-#include <DiagResultsDatabaseItem.h> // CDiagResultsDatabaseItem::TResult
-#include <DiagEngineWatchdogTypes.h> // 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
- * <path>:<rsc_file_name>
- */
- 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<TUid>*& 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<TUid>*& 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
-
--- 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 @@
-<?xml version="1.0" ?>
-<api id="400f1a7110ad1261f33dda614736cbbc" dataversion="1.0">
- <name>Diagnostics Plugin Pool API</name>
- <description>This is for diagnostics App and FW communication and mainatenance of plugins</description>
- <type>c++</type>
- <subsystem>devicediagnosticsfw</subsystem>
- <libs>
- <lib name="diagframework.lib" />
- </libs>
- <release category="domain"/>
- <attributes>
- <!-- This indicates wether the api provedes separate html documentation -->
- <!-- or is the additional documentation generated from headers. -->
- <!-- If you are unsuere then the value is "no" -->
- <htmldocprovided>no</htmldocprovided>
- <adaptation>no</adaptation>
- </attributes>
-</api>
--- 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 <platform_paths.hrh>
-
-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)
--- 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 <e32base.h> // 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
-
--- 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 <e32cmn.h> // TUid
-#include <e32def.h> // 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
-
--- 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 @@
-<?xml version="1.0" ?>
-<api id="2ce0c116ec3d4f1195d2aeef47155698" dataversion="1.0">
- <name>Diagnostics Plugin Utility API</name>
- <description>Utility functions mainly used by the plugins.</description>
- <type>c++</type>
- <subsystem>devicediagnosticsfw</subsystem>
- <libs>
- <lib name="diagframework.lib" />
- </libs>
- <release category="domain"/>
- <attributes>
- <!-- This indicates wether the api provedes separate html documentation -->
- <!-- or is the additional documentation generated from headers. -->
- <!-- If you are unsuere then the value is "no" -->
- <htmldocprovided>no</htmldocprovided>
- <adaptation>no</adaptation>
- </attributes>
-</api>
--- 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 <platform_paths.hrh>
-
-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)
--- 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
-
--- 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 <e32base.h> // CActive
-#include <f32file.h> // 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
--- 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
--- 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
-
--- 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 <e32base.h> // CActive
-#include <etel3rdparty.h> // 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
-
--- 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 <e32base.h> // 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
-
--- 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 @@
-<?xml version="1.0" ?>
-<api id="0e4bf88aa0fc3fab2fd229af2c11d0fd" dataversion="1.0">
- <name>Diagnostics results API</name>
- <description>An API for storing and handling test case/session results.</description>
- <type>c++</type>
- <subsystem>devicediagnosticsfw</subsystem>
- <libs>
- <lib name="diagresultsdatabase.lib" />
- </libs>
- <release category="domain"/>
- <attributes>
- <!-- This indicates wether the api provedes separate html documentation -->
- <!-- or is the additional documentation generated from headers. -->
- <!-- If you are unsuere then the value is "no" -->
- <htmldocprovided>no</htmldocprovided>
- <adaptation>no</adaptation>
- </attributes>
-</api>
--- 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 <platform_paths.hrh>
-
-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)
--- 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 <e32cmn.h> // 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<TOutputFormat>& 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
-
--- 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 <e32base.h> // CBase
-#include <DiagResultDetail.h> // MDiagResultDetail
-#include <DiagResultsDatabaseItem.h> // 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<TOutputFormat>& 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<CDiagResultDetailBasicItem> iFields;
- };
-
-
-
-#endif // DIAGRESULTDETAILBASIC_H
-
-// End of File
-
--- 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 <e32base.h>
-
-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<TUid>& 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<TDiagResultsDatabaseTestRecordInfo>& 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<TUid>& 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<CDiagResultsDatabaseItem>& 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<TUid>& aSortedRecordUidArray ) const;
-
- /*
- * @see GetDatabaseMaximumSize()
- */
- static void DoGetDatabaseMaximumSizeL( TInt& aMaxSize );
-
- void DoGetAllRecordInfosL ( CArrayFixFlat<TDiagResultsDatabaseTestRecordInfo>& aInfoArray);
-
- void DoGetLastResultsL ( RPointerArray<CDiagResultsDatabaseItem>& aResults ) const;
-
- void WriteArrayIntoBufferL( const CArrayFixFlat<TUid>& 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<TUid>& 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<CDiagResultsDatabaseItem>& 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<TUid>& aTestUidArray ) const;
-
- void DoLogTestResultL ( TRequestStatus& aStatus,
- const CDiagResultsDatabaseItem& aResultItem );
-
- void DoGetTestResultsL ( RPointerArray<CDiagResultsDatabaseItem>& 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
-
--- 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 <e32base.h> // 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
--- 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 <e32base.h>
-
-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
--- 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 <DiagResultsDatabaseItem.h> // 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
-
--- 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 <e32base.h> // 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<TUid>* 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<TUid>* 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<TUid>& 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<TUid>* 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<TUid>* iExecutionUids;
-
- //Dependency resolving state.
- TBool iDependencyExecution;
-
- };
-
-#endif // DIAGRESULTSDBRECORDENGINEPARAM_H
--- 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"
--- 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<struct CNSmlDMAlertItem> 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<struct CNSmlDMAlertItem> 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)
--- 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 ; #<TI>#
- _ZTI13CNSmlCmdsBase @ 197 NONAME ; #<TI>#
- _ZTI14CNSmlAgentBase @ 198 NONAME ; #<TI>#
- _ZTI14CNSmlPhoneInfo @ 199 NONAME ; #<TI>#
- _ZTI20CNSmlStatusContainer @ 200 NONAME ; #<TI>#
- _ZTI21CNSmlResultsContainer @ 201 NONAME ; #<TI>#
- _ZTI23CNSmlResponseController @ 202 NONAME ; #<TI>#
- _ZTI8CNSmlURI @ 203 NONAME ; #<TI>#
- _ZTI9CNSmlAuth @ 204 NONAME ; #<TI>#
- _ZTV10TNSmlError @ 205 NONAME ; #<VT>#
- _ZTV13CNSmlCmdsBase @ 206 NONAME ; #<VT>#
- _ZTV14CNSmlAgentBase @ 207 NONAME ; #<VT>#
- _ZTV14CNSmlPhoneInfo @ 208 NONAME ; #<VT>#
- _ZTV20CNSmlStatusContainer @ 209 NONAME ; #<VT>#
- _ZTV21CNSmlResultsContainer @ 210 NONAME ; #<VT>#
- _ZTV23CNSmlResponseController @ 211 NONAME ; #<VT>#
- _ZTV8CNSmlURI @ 212 NONAME ; #<VT>#
- _ZTV9CNSmlAuth @ 213 NONAME ; #<VT>#
- _ZThn28_N14CNSmlAgentBase14smlAddCmdFuncLEP13sml_generic_s @ 214 NONAME ; #<thunk>#
- _ZThn28_N14CNSmlAgentBase14smlMapCmdFuncLEP9sml_map_s @ 215 NONAME ; #<thunk>#
- _ZThn28_N14CNSmlAgentBase15smlCopyCmdFuncLEP13sml_generic_s @ 216 NONAME ; #<thunk>#
- _ZThn28_N14CNSmlAgentBase15smlExecCmdFuncLEP10sml_exec_s @ 217 NONAME ; #<thunk>#
- _ZThn28_N14CNSmlAgentBase15smlMoveCmdFuncLEP13sml_generic_s @ 218 NONAME ; #<thunk>#
- _ZThn28_N14CNSmlAgentBase17smlDeleteCmdFuncLEP13sml_generic_s @ 219 NONAME ; #<thunk>#
- _ZThn28_N14CNSmlAgentBase17smlSearchCmdFuncLEP12sml_search_s @ 220 NONAME ; #<thunk>#
- _ZThn28_N14CNSmlAgentBase18smlReplaceCmdFuncLEP13sml_generic_s @ 221 NONAME ; #<thunk>#
- _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
--- 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
--- 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 <ApEngineConsts.h>
-//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
--- 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 <es_sock.h> // RConnection RSocket
#include <es_enum.h> // TConnectionInfo
#include <commdb.h>
-#include <ApListItemList.h>
-#include <ApListItem.h>
-#include <ApSelect.h>
-#include <ApUtils.h>
+#include <cmconnectionmethoddef.h>
+#include <cmconnectionmethod.h>
+#include <cmmanager.h>
+#include <cmpluginwlandef.h>
#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
// ---------------------------------------------------------
--- 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";
--- 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
--- 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 <DataSyncInternalPSKeys.h>
#include <nsmlconstants.h>
#include <nsmldebug.h>
+#include <cmpluginwlandef.h>
+#include <cmmanager.h>
+#include <cmconnectionmethod.h>
// 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);
}
}
--- 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())
--- 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 <TerminalControl3rdPartyAPI.h>
#include <SCPServerInterface.h>
-#include <SecUi.hrh>
+#include <secui.hrh>
#include <StringLoader.h>
#include <bautils.h>
//#endif // DEVICE_LOCK_ENHANCEMENTS
--- 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 <DevEncEngineConstants.h>
#include <DevEncSessionBase.h>
+#include <startupdomainpskeys.h>
// ==================== 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()") ));
}