Revision: 201023
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 23 Jun 2010 18:40:52 +0300
changeset 32 b12ea03c50a3
parent 25 73f6c2762ffe
child 33 834e27cad510
Revision: 201023 Kit: 2010125
genericpositioningplugins/group/bld.inf
genericpositioningplugins/locationnpppsy/group/bld.inf
genericpositioningplugins/locationnpppsy/inc/npppsysingletonhandler.h
group/bld.inf
landmarks/group/bld.inf
landmarks/locationlandmarks/dbmanclientlib/group/bld.inf
landmarks/locationlandmarks/dbmanclientlib/src/EPos_HPosLmDatabaseInfo.cpp
landmarks/locationlandmarks/internalservices/group/bld.inf
landmarks/locationlandmarks/localaccess/inc/epos_cposlmlocaldatabase.h
landmarks/locationlandmarks/server/group/bld.inf
layers.sysdef.xml
locationsystemui/locationsysui/locsysui.pro
locationsystemui/locationsysui/possettings/bwins/possettingsengineu.def
locationsystemui/locationsysui/possettings/eabi/possettingsengineu.def
locationsystemui/locationsysui/possettings/inc/possettingsadvinterface.h
locationsystemui/locationsysui/possettings/inc/possettingsadvop.h
locationsystemui/locationsysui/possettings/inc/possettingsview.h
locationsystemui/locationsysui/possettings/poslocationservices/inc/locationservicescustomviewitem.h
locationsystemui/locationsysui/possettings/poslocationservices/inc/poslocationservicesengine.h
locationsystemui/locationsysui/possettings/posmethodsplugin/inc/pospsysettingsengineprivate.h
locationsystemui/locationsysui/possettings/posmethodsplugin/src/pospsysettingsengineprivate.cpp
locationsystemui/locationsysui/possettings/posmethodsplugin/src/possettingssignalmapper.cpp
locationsystemui/locationsysui/possettings/possettings_stub.sis
locationsystemui/locationsysui/possettings/possettingsengine/bwins/possettingsengineu.def
locationsystemui/locationsysui/possettings/possettingsengine/eabi/possettingsengineu.def
locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsadvview.h
locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsengine.h
locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsengineprivate.h
locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingspluginsloader.h
locationsystemui/locationsysui/possettings/possettingsengine/src/possettingsengineprivate.cpp
locationsystemui/locationsysui/possettings/possettingsplugin/possettingsplugin.pro
locationsystemui/locationsysui/possettings/possettingsplugin/src/possettingsplugin.cpp
locationsystemui/locationsysui/possettings/possettingsplugin/src/possettingspluginhelper_p.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/bwins/locnotificationclientu.def
locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/eabi/locnotificationclientu.def
locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/group/contactresolversession.mmp
locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/inc/contactresolversession.h
locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/src/contactresolversession.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/inc/contactresolversession.h
locationsystemui/locationsysui/privacyverifiernotifierui/inc/locprivacycommon.h
locationsystemui/locationsysui/privacyverifiernotifierui/inc/locprivacyinternal.h
locationsystemui/locationsysui/privacyverifiernotifierui/inc/locutilsdebug.h
locationsystemui/locationsysui/privacyverifiernotifierui/inc/locutilsdebugconfig.hrh
locationsystemui/locationsysui/privacyverifiernotifierui/install/privacydialogs_stub.pkg
locationsystemui/locationsysui/privacyverifiernotifierui/install/privacydialogs_stub.sis
locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/bwins/locnotificationengineu.def
locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/eabi/locnotificationengineu.def
locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/inc/locrequestorutilsresolver.h
locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/inc/qlocnotificationengine.h
locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/locnotificationengine.pro
locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/src/locrequestorutilsresolver.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/src/qlocnotificationengine.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/group/locprivacyserver.mmp
locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacycommon.h
locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyinternal.h
locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserver.h
locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserverdebugpanic.h
locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserversession.h
locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserverstartup.h
locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/src/locprivacyserver.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/src/locprivacyserversession.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/src/locprivacyserverstartup.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locutils/bwins/locutils_32u.def
locationsystemui/locationsysui/privacyverifiernotifierui/locutils/eabi/locutils_32u.def
locationsystemui/locationsysui/privacyverifiernotifierui/locutils/group/locutils.mmp
locationsystemui/locationsysui/privacyverifiernotifierui/locutils/inc/locutilsdebug.h
locationsystemui/locationsysui/privacyverifiernotifierui/locutils/inc/locutilsdebugconfig.hrh
locationsystemui/locationsysui/privacyverifiernotifierui/locutils/inc/locutilsuid.hrh
locationsystemui/locationsysui/privacyverifiernotifierui/locutils/src/locutilsdebug.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locutils/src/locutilsdebugdummy.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/group/locverifierdlg.mmp
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/locverifierdlgdebug.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/locverifieruid.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpddlgobserver.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdglobalplugindialog.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdnotifierquerylauncher.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdquerylauncherbase.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdrequestao.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdrequestorprocessor.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdresulthandler.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdverifierplugin.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdverifierquerylauncher.h
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/rss/101f84fc.rss
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpddllmain.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdglobalplugindialog.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdnotifierquerylauncher.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdquerylauncherbase.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdrequestao.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdrequestorprocessor.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdverifierplugin.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdverifierquerylauncher.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/apilogger.h
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/customdocumentloader.h
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/posverificationcustomdialog.h
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/posverificationdialogplugin.h
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/posverificationdialogplugin.pro
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/resources/posverificationcustomdialog.docml
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/resources/posverificationdialog.qrc
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/apilogger.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/customdocumentloader.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/posverificationcustomdialog.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/posverificationdialogplugin.cpp
locationsystemui/locationsysui/privacyverifiernotifierui/privacyverifiernotifierui.pro
locationsystemui/locationsysui/privacyverifiernotifierui/rom/privacydialogs.iby
locationtriggering/group/bld.inf
locationtriggering/ltcontainer/group/bld.inf
locationtriggering/ltcontainer/inc/lbtcontainerutilities.h
locationtriggering/rom/locationtriggering.iby
locationtriggering/tsrc/lbtengine_test/Additionaltests/inc/AsynOperationAO.h
locationtriggering/tsrc/lbtengine_test/CellbasedtriggerOperations/inc/AsynOperationAO.h
locationtriggering/tsrc/lbtengine_test/TestHybridTriggers/inc/AsynOperationAO.h
locsrv_plat/supl_settings_api/tsrc/conf/settingsapi_test.cfg
locsrv_plat/supl_settings_api/tsrc/eabi/settingsapiu.def
locsrv_plat/supl_settings_api/tsrc/inc/settingsapi.h
locsrv_plat/supl_settings_api/tsrc/src/settingsapiblocks.cpp
locsrv_pub/blid_application_satellite_info_api/tsrc/bc_blid_application_satellite_info_Api/group/BCBlidTest.mmp
locsrv_pub/landmarks_api/tsrc/bc_landmarks_api/src/testcposlandmarkdatabase.cpp
locsrv_pub/landmarks_api/tsrc/group/testlandmarksapi.mmp
supl/group/bld.inf
supl/locationomasuplprotocolhandler/conf/CI_suplsettings_productconfig.confml
supl/locationomasuplprotocolhandler/conf/suplsettings_productconfig.confml
supl/locationomasuplprotocolhandler/group/bld.inf
supl/locationomasuplprotocolhandler/protocolhandler/bwins/eposomasuplprotocolhandleru.def
supl/locationomasuplprotocolhandler/protocolhandler/eabi/eposomasuplprotocolhandleru.def
supl/locationomasuplprotocolhandler/protocolhandler/group/bld.inf
supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplprotocolmanager.h
supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplinitilizerequestor.cpp
supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver1/group/omasuplprotocolhandler1.mmp
supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplconnrequestor.h
supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplprotocolmanager1.h
supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsession.h
supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsettingslauncher.h
supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstartstate.h
supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplposinitstate.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver2/group/bld.inf
supl/locationomasuplprotocolhandler/protocolhandlerver2/group/omasuplprotocolhandler2.mmp
supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettings.h
supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettingslauncher.h
supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplposinitstate.cpp
supl/locationomasuplprotocolhandler/provisioninghandler/src/epos_comasuplsettings.cpp
supl/locationomasuplprotocolhandler/supllistener/group/bld.inf
supl/locationomasuplprotocolhandler/supllistener/inc/epos_comasuplsmslistenerbase.h
supl/locationsuplfw/conf/suplsettings.confml
supl/locationsuplfw/conf/suplsettings_102073D6.crml
supl/locationsuplfw/gateway/group/bld.inf
supl/locationsuplfw/gateway/inc/epos_csuplipcsubsession.h
supl/locationsuplfw/gateway/inc/epos_csuplsessionmanager.h
supl/locationsuplfw/gateway/inc/epos_csuplsessionrequest.h
supl/locationsuplfw/gateway/src/epos_csuplipcsubsession.cpp
supl/locationsuplfw/gateway/src/epos_csuplserver.cpp
supl/locationsuplfw/gateway/src/epos_csuplsessionmanager.cpp
supl/locationsuplfw/gateway/src/epos_csuplsessionrequest.cpp
supl/locationsuplfw/protocolhandlerapi/bwins/epossuplprotocolhandlerpluginu.def
supl/locationsuplfw/protocolhandlerapi/eabi/epossuplprotocolhandlerpluginu.def
supl/locationsuplfw/protocolhandlerapi/group/epos_suplprotocolhandlerplugin.mmp
supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplconnection.h
supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplprotocolmanagerbase.h
supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp
supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternalcrkeys.h
supl/locationsuplfw/terminalinitiationapi/bwins/epos_suplterminitiationu.def
supl/locationsuplfw/terminalinitiationapi/eabi/epos_suplterminitiationu.def
supl/locationsuplfw/terminalinitiationapi/group/bld.inf
supl/locationsuplfw/terminalinitiationapi/group/epos_suplterminalapi.mmp
supl/locationsuplfw/terminalinitiationapi/inc/epos_suplgeocellinfo.h
supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalinternal.h
supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalipc.h
supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalinternal.cpp
supl/supltiapiimplementation/src/lbssupltirequestmanager.cpp
--- a/genericpositioningplugins/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/genericpositioningplugins/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -18,13 +18,13 @@
 
 #include <platform_paths.hrh>
 PRJ_PLATFORMS
-DEFAULT
+DEFAULT GCCE
 
 #include "../locationnpppsy/group/bld.inf"
 #include "../locationsuplpsy/group/bld.inf"
 
 PRJ_EXPORTS
-../cenrep/10282266_s60.cre                      z:/private/10202be9/10282266_s60.cre 
+//../cenrep/10282266_s60.cre                      z:/private/10202be9/10282266_s60.cre 
 ../cenrep/1028224B_s60.cre                      z:/private/10202be9/1028224B_s60.cre
 ../rom/prifw_cenrep.iby                     CORE_MW_LAYER_IBY_EXPORT_PATH(prifw_cenrep.iby)
 
--- a/genericpositioningplugins/locationnpppsy/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/genericpositioningplugins/locationnpppsy/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -18,7 +18,7 @@
 #include <platform_paths.hrh>
 
 PRJ_PLATFORMS
-DEFAULT
+DEFAULT GCCE
 
 PRJ_EXPORTS
 ../rom/nla_npppsy.iby     	          	CORE_MW_LAYER_IBY_EXPORT_PATH(nla_npppsy.iby)
--- a/genericpositioningplugins/locationnpppsy/inc/npppsysingletonhandler.h	Thu May 27 13:18:17 2010 +0300
+++ b/genericpositioningplugins/locationnpppsy/inc/npppsysingletonhandler.h	Wed Jun 23 18:40:52 2010 +0300
@@ -51,7 +51,7 @@
         *                         status.
         * @reuturn the pointer the the singleton handler
         */
-        static CNppPsySingletonHandler* CNppPsySingletonHandler::GetInstanceL( 
+        static CNppPsySingletonHandler* GetInstanceL( 
             MPositionerStatus& aStatusInterface );
 
         /**
--- a/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -17,7 +17,7 @@
 
 
 PRJ_PLATFORMS
-WINSCW ARMV5
+WINSCW ARMV5 GCCE
 
 #include "../genericpositioningplugins/group/bld.inf"
 #include "../landmarks/group/bld.inf"
--- a/landmarks/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/landmarks/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -19,7 +19,7 @@
 
 
 PRJ_PLATFORMS
-WINSCW ARMV5
+WINSCW ARMV5 GCCE
 
 #include "../locationlandmarks/group/bld.inf"
 
--- a/landmarks/locationlandmarks/dbmanclientlib/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/landmarks/locationlandmarks/dbmanclientlib/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -20,7 +20,7 @@
 #include <platform_paths.hrh>
 
 PRJ_PLATFORMS
-DEFAULT
+DEFAULT GCCE
 
 PRJ_EXPORTS
 
--- a/landmarks/locationlandmarks/dbmanclientlib/src/EPos_HPosLmDatabaseInfo.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/landmarks/locationlandmarks/dbmanclientlib/src/EPos_HPosLmDatabaseInfo.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -254,9 +254,16 @@
                                sizeof(TInt) +
                                aDatabaseUri.Size();
 
+#if defined(__GCCE__)
+  // allocate memory
+    return User::AllocL(_FOFF(HPosLmDatabaseInfo,
+                             iBuffer) + requiredBufferSize * sizeof (typeof(iBuffer)));
+#else
     // allocate memory
     return User::AllocL(_FOFF(HPosLmDatabaseInfo,
-                              iBuffer[requiredBufferSize]));
+                             iBuffer[requiredBufferSize]));
+#endif
+
 
     }
 
--- a/landmarks/locationlandmarks/internalservices/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/landmarks/locationlandmarks/internalservices/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -43,10 +43,8 @@
 ../inc/EPos_CPosLmSettingsHandler.h         |../../../inc/epos_cposlmsettingshandler.h
 ../inc/EPos_PosLmLongTextColHandler.h       |../../../inc/epos_poslmlongtextcolhandler.h
 
-../data/101FE99B.txt                        /epoc32/release/winscw/udeb/z/private/10202be9/101fe99b.txt
 
 PRJ_MMPFILES
-//gnumakefile epos_landmarksglobalcategories_icons.mk
 EPos_LmInternalServices.mmp
 EPos_LandmarksGlobalCategories.mmp
 
--- a/landmarks/locationlandmarks/localaccess/inc/epos_cposlmlocaldatabase.h	Thu May 27 13:18:17 2010 +0300
+++ b/landmarks/locationlandmarks/localaccess/inc/epos_cposlmlocaldatabase.h	Wed Jun 23 18:40:52 2010 +0300
@@ -360,7 +360,7 @@
         *   full information.
         * @return The landmark.
         */
-        CPosLandmark* CPosLmLocalDatabase::ReadLmLC(
+        CPosLandmark* ReadLmLC(
             TPosLmItemId aLandmarkId,
             TBool aIsPartial );
 
--- a/landmarks/locationlandmarks/server/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/landmarks/locationlandmarks/server/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -25,7 +25,7 @@
 // Internal APIs
 ../inc/EPos_PosLmServerCommon.h     |../../../inc/epos_poslmservercommon.h
 
-../data/backup_registration.xml     /epoc32/data/z/private/101fdf81/backup_registration.xml
+../data/backup_registration.xml     z:/private/101fdf81/backup_registration.xml
 
 PRJ_MMPFILES
 EPos_LandmarksServer.mmp
--- a/layers.sysdef.xml	Thu May 27 13:18:17 2010 +0300
+++ b/layers.sysdef.xml	Wed Jun 23 18:40:52 2010 +0300
@@ -14,6 +14,11 @@
        mrp="" bldFile="&layer_real_source_path;/supl/locationomasuplprotocolhandler/asnpluginimplementation/group"
        filter="dfs_build"  name="lodo_locationsrv_supl_asnpluginimplementation"  />
      </module>
+     <module name="locationsupllocinfoconverter"> 
+     	<unit unitID="lodo.locationsrv.supl.locationsupllocinfoconverter"
+       mrp="" bldFile="&layer_real_source_path;/supl/locationsupllocinfoconverter/group"
+       filter="dfs_build"  name="lodo_locationsrv_supl_locationsupllocinfoconverter"  />
+     </module>
      <module name="asnpluginimplementationver2"> 
      	<unit unitID="lodo.locationsrv.supl.asnpluginimplementationver2"
        mrp="" bldFile="&layer_real_source_path;/supl/locationomasuplprotocolhandler/asnpluginimplementationver2/group"
--- a/locationsystemui/locationsysui/locsysui.pro	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/locsysui.pro	Wed Jun 23 18:40:52 2010 +0300
@@ -19,5 +19,8 @@
 SYMBIAN_PLATFORMS = WINSCW ARMV5
 
 SUBDIRS += possettings/possettings.pro
+SUBDIRS += privacyverifiernotifierui/privacyverifiernotifierui.pro
 
+BLD_INF_RULES.prj_exports += "conf/loclocalvariation.confml  MW_LAYER_CONFML(loclocalvariation.confml)" \
+							 "conf/loclocalvariation_20022D83.crml  MW_LAYER_CRML(loclocalvariation_20022D83.crml)" 
    
\ No newline at end of file
--- a/locationsystemui/locationsysui/possettings/bwins/possettingsengineu.def	Thu May 27 13:18:17 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-EXPORTS	?trUtf8@PosSettingsAdvOp@@SA?AVQString@@PBD0@Z @ 1 NONAME ; class QString PosSettingsAdvOp::trUtf8(char const *, char const *)
-	?staticMetaObject@PosSettingsAdvOp@@2UQMetaObject@@B @ 2 NONAME ; struct QMetaObject const PosSettingsAdvOp::staticMetaObject
-	?setExpanded@PosSettingsAdvOp@@QAEXABVQModelIndex@@_N@Z @ 3 NONAME ; void PosSettingsAdvOp::setExpanded(class QModelIndex const &, bool)
-	?addAction@PosSettingsAdvOp@@QAEXPAVHbAction@@W4ActionContainer@HbView@@@Z @ 4 NONAME ; void PosSettingsAdvOp::addAction(class HbAction *, enum HbView::ActionContainer)
-	?qt_metacast@PosSettingsAdvOp@@UAEPAXPBD@Z @ 5 NONAME ; void * PosSettingsAdvOp::qt_metacast(char const *)
-	??_EPosSettingsView@@UAE@I@Z @ 6 NONAME ; PosSettingsView::~PosSettingsView(unsigned int)
-	?isExpanded@PosSettingsAdvOp@@QBE_NABVQModelIndex@@@Z @ 7 NONAME ; bool PosSettingsAdvOp::isExpanded(class QModelIndex const &) const
-	?addConnection@PosSettingsAdvOp@@QAEXPAVHbDataFormModelItem@@PBDPAVQObject@@1@Z @ 8 NONAME ; void PosSettingsAdvOp::addConnection(class HbDataFormModelItem *, char const *, class QObject *, char const *)
-	?tr@PosSettingsAdvOp@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString PosSettingsAdvOp::tr(char const *, char const *, int)
-	?appendDataFormItem@PosSettingsAdvOp@@QAEXPAVHbDataFormModelItem@@0@Z @ 10 NONAME ; void PosSettingsAdvOp::appendDataFormItem(class HbDataFormModelItem *, class HbDataFormModelItem *)
-	??1PosSettingsAdvOp@@UAE@XZ @ 11 NONAME ; PosSettingsAdvOp::~PosSettingsAdvOp(void)
-	?qt_metacall@PosSettingsAdvOp@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12 NONAME ; int PosSettingsAdvOp::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0PosSettingsAdvOp@@QAE@PAVHbView@@@Z @ 13 NONAME ; PosSettingsAdvOp::PosSettingsAdvOp(class HbView *)
-	??_EPosSettingsAdvOp@@UAE@I@Z @ 14 NONAME ; PosSettingsAdvOp::~PosSettingsAdvOp(unsigned int)
-	??1PosSettingsView@@UAE@XZ @ 15 NONAME ; PosSettingsView::~PosSettingsView(void)
-	?itemPrototypes@PosSettingsAdvOp@@QAEXAAV?$QList@PAVHbAbstractViewItem@@@@@Z @ 16 NONAME ; void PosSettingsAdvOp::itemPrototypes(class QList<class HbAbstractViewItem *> &)
-	?removeConnection@PosSettingsAdvOp@@QAEXPAVHbDataFormModelItem@@PBDPAVQObject@@1@Z @ 17 NONAME ; void PosSettingsAdvOp::removeConnection(class HbDataFormModelItem *, char const *, class QObject *, char const *)
-	?indexFromItem@PosSettingsAdvOp@@QAE?AVQModelIndex@@PBVHbDataFormModelItem@@@Z @ 18 NONAME ; class QModelIndex PosSettingsAdvOp::indexFromItem(class HbDataFormModelItem const *)
-	?setItemPrototypes@PosSettingsAdvOp@@QAEXAAV?$QList@PAVHbAbstractViewItem@@@@@Z @ 19 NONAME ; void PosSettingsAdvOp::setItemPrototypes(class QList<class HbAbstractViewItem *> &)
-	??0PosSettingsView@@QAE@PAVQGraphicsItem@@@Z @ 20 NONAME ; PosSettingsView::PosSettingsView(class QGraphicsItem *)
-	?removeItem@PosSettingsAdvOp@@QAE_NPAVHbDataFormModelItem@@@Z @ 21 NONAME ; bool PosSettingsAdvOp::removeItem(class HbDataFormModelItem *)
-	?trUtf8@PosSettingsAdvOp@@SA?AVQString@@PBD0H@Z @ 22 NONAME ; class QString PosSettingsAdvOp::trUtf8(char const *, char const *, int)
-	?tr@PosSettingsAdvOp@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString PosSettingsAdvOp::tr(char const *, char const *)
-	?getStaticMetaObject@PosSettingsAdvOp@@SAABUQMetaObject@@XZ @ 24 NONAME ; struct QMetaObject const & PosSettingsAdvOp::getStaticMetaObject(void)
-	?metaObject@PosSettingsAdvOp@@UBEPBUQMetaObject@@XZ @ 25 NONAME ; struct QMetaObject const * PosSettingsAdvOp::metaObject(void) const
-
--- a/locationsystemui/locationsysui/possettings/eabi/possettingsengineu.def	Thu May 27 13:18:17 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-EXPORTS
-	_ZN15PosSettingsViewC1EP13QGraphicsItem @ 1 NONAME
-	_ZN15PosSettingsViewC2EP13QGraphicsItem @ 2 NONAME
-	_ZN15PosSettingsViewD0Ev @ 3 NONAME
-	_ZN15PosSettingsViewD1Ev @ 4 NONAME
-	_ZN15PosSettingsViewD2Ev @ 5 NONAME
-	_ZN16PosSettingsAdvOp10removeItemEP19HbDataFormModelItem @ 6 NONAME
-	_ZN16PosSettingsAdvOp11qt_metacallEN11QMetaObject4CallEiPPv @ 7 NONAME
-	_ZN16PosSettingsAdvOp11qt_metacastEPKc @ 8 NONAME
-	_ZN16PosSettingsAdvOp11setExpandedERK11QModelIndexb @ 9 NONAME
-	_ZN16PosSettingsAdvOp13addConnectionEP19HbDataFormModelItemPKcP7QObjectS3_ @ 10 NONAME
-	_ZN16PosSettingsAdvOp13indexFromItemEPK19HbDataFormModelItem @ 11 NONAME
-	_ZN16PosSettingsAdvOp14itemPrototypesER5QListIP18HbAbstractViewItemE @ 12 NONAME
-	_ZN16PosSettingsAdvOp16removeConnectionEP19HbDataFormModelItemPKcP7QObjectS3_ @ 13 NONAME
-	_ZN16PosSettingsAdvOp16staticMetaObjectE @ 14 NONAME DATA 16
-	_ZN16PosSettingsAdvOp17setItemPrototypesER5QListIP18HbAbstractViewItemE @ 15 NONAME
-	_ZN16PosSettingsAdvOp18appendDataFormItemEP19HbDataFormModelItemS1_ @ 16 NONAME
-	_ZN16PosSettingsAdvOp19getStaticMetaObjectEv @ 17 NONAME
-	_ZN16PosSettingsAdvOp9addActionEP8HbActionN6HbView15ActionContainerE @ 18 NONAME
-	_ZN16PosSettingsAdvOpC1EP6HbView @ 19 NONAME
-	_ZN16PosSettingsAdvOpC2EP6HbView @ 20 NONAME
-	_ZN16PosSettingsAdvOpD0Ev @ 21 NONAME
-	_ZN16PosSettingsAdvOpD1Ev @ 22 NONAME
-	_ZN16PosSettingsAdvOpD2Ev @ 23 NONAME
-	_ZNK16PosSettingsAdvOp10isExpandedERK11QModelIndex @ 24 NONAME
-	_ZNK16PosSettingsAdvOp10metaObjectEv @ 25 NONAME
-	_ZTI15PosSettingsView @ 26 NONAME
-	_ZTI16PosSettingsAdvOp @ 27 NONAME
-	_ZTV15PosSettingsView @ 28 NONAME
-	_ZTV16PosSettingsAdvOp @ 29 NONAME
-	_ZThn16_N15PosSettingsViewD0Ev @ 30 NONAME
-	_ZThn16_N15PosSettingsViewD1Ev @ 31 NONAME
-	_ZThn8_N15PosSettingsViewD0Ev @ 32 NONAME
-	_ZThn8_N15PosSettingsViewD1Ev @ 33 NONAME
-
--- a/locationsystemui/locationsysui/possettings/inc/possettingsadvinterface.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/inc/possettingsadvinterface.h	Wed Jun 23 18:40:52 2010 +0300
@@ -19,7 +19,7 @@
 #define POSSETTINGSENGADVANCEDINTERFACE_H
 
 #include "possettingsadvop.h"
-#include <qtplugin>
+#include <QtPlugin>
 
 
 
--- a/locationsystemui/locationsysui/possettings/inc/possettingsadvop.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/inc/possettingsadvop.h	Wed Jun 23 18:40:52 2010 +0300
@@ -20,7 +20,7 @@
 
 
 #include "possettingsglobal.h"
-#include <QObject.h>
+#include <qobject.h>
 #include <hbview.h>
 #include <hbdataform.h>
 #include <hbdataformmodel.h>
--- a/locationsystemui/locationsysui/possettings/inc/possettingsview.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/inc/possettingsview.h	Wed Jun 23 18:40:52 2010 +0300
@@ -20,7 +20,7 @@
 
 #include "possettingsglobal.h"
 
-#include<qobject>
+#include<QObject>
 #include <cpbasesettingview.h>
 
 // Forward declaration
--- a/locationsystemui/locationsysui/possettings/poslocationservices/inc/locationservicescustomviewitem.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/poslocationservices/inc/locationservicescustomviewitem.h	Wed Jun 23 18:40:52 2010 +0300
@@ -19,7 +19,7 @@
 
 #include <hbdataformviewitem.h>
 #include <hbdataformmodelitem.h>
-#include <hbwidget>
+#include <HbWidget>
 
 
 //dataItemType for Location services custom widget 
--- a/locationsystemui/locationsysui/possettings/poslocationservices/inc/poslocationservicesengine.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/poslocationservices/inc/poslocationservicesengine.h	Wed Jun 23 18:40:52 2010 +0300
@@ -18,7 +18,7 @@
 #define POSLOCATIONSERVICESENGINE_H
 
 #include "poslocationservicesengineprivate.h"
-#include <QObject.h>
+#include <QObject>
 
 
 
--- a/locationsystemui/locationsysui/possettings/posmethodsplugin/inc/pospsysettingsengineprivate.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/posmethodsplugin/inc/pospsysettingsengineprivate.h	Wed Jun 23 18:40:52 2010 +0300
@@ -25,7 +25,7 @@
 
 #include <qlist.h>
 #include <qstring.h>
-#include <epos_mposmodulesobserver.h>
+#include <EPos_MPosModulesObserver.h>
 
 /**
  * The class defines the interface for receiving position
--- a/locationsystemui/locationsysui/possettings/posmethodsplugin/src/pospsysettingsengineprivate.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/posmethodsplugin/src/pospsysettingsengineprivate.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -20,9 +20,9 @@
 #include "pospsysettingsengine.h"
 
 #include <qglobal.h>
-#include <epos_cposmodules.h>
-#include <epos_cposmoduleidlist.h>
-#include <epos_cposmoduleupdate.h>
+#include <EPos_CPosModules.h>
+#include <EPos_CPosModuleIdList.h>
+#include <EPos_CPosModuleUpdate.h>
 
 // constants
 const TInt KNameLength = 50;
--- a/locationsystemui/locationsysui/possettings/posmethodsplugin/src/possettingssignalmapper.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/posmethodsplugin/src/possettingssignalmapper.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -16,7 +16,7 @@
  */
 
 
-#include "PosSettingsSignalMapper.h"
+#include "possettingssignalmapper.h"
 
 
 //---------------------------------------------------------------------
Binary file locationsystemui/locationsysui/possettings/possettings_stub.sis has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/possettings/possettingsengine/bwins/possettingsengineu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,26 @@
+EXPORTS	?trUtf8@PosSettingsAdvOp@@SA?AVQString@@PBD0@Z @ 1 NONAME ; class QString PosSettingsAdvOp::trUtf8(char const *, char const *)
+	?staticMetaObject@PosSettingsAdvOp@@2UQMetaObject@@B @ 2 NONAME ; struct QMetaObject const PosSettingsAdvOp::staticMetaObject
+	?setExpanded@PosSettingsAdvOp@@QAEXABVQModelIndex@@_N@Z @ 3 NONAME ; void PosSettingsAdvOp::setExpanded(class QModelIndex const &, bool)
+	?addAction@PosSettingsAdvOp@@QAEXPAVHbAction@@W4ActionContainer@HbView@@@Z @ 4 NONAME ; void PosSettingsAdvOp::addAction(class HbAction *, enum HbView::ActionContainer)
+	?qt_metacast@PosSettingsAdvOp@@UAEPAXPBD@Z @ 5 NONAME ; void * PosSettingsAdvOp::qt_metacast(char const *)
+	??_EPosSettingsView@@UAE@I@Z @ 6 NONAME ; PosSettingsView::~PosSettingsView(unsigned int)
+	?isExpanded@PosSettingsAdvOp@@QBE_NABVQModelIndex@@@Z @ 7 NONAME ; bool PosSettingsAdvOp::isExpanded(class QModelIndex const &) const
+	?addConnection@PosSettingsAdvOp@@QAEXPAVHbDataFormModelItem@@PBDPAVQObject@@1@Z @ 8 NONAME ; void PosSettingsAdvOp::addConnection(class HbDataFormModelItem *, char const *, class QObject *, char const *)
+	?tr@PosSettingsAdvOp@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString PosSettingsAdvOp::tr(char const *, char const *, int)
+	?appendDataFormItem@PosSettingsAdvOp@@QAEXPAVHbDataFormModelItem@@0@Z @ 10 NONAME ; void PosSettingsAdvOp::appendDataFormItem(class HbDataFormModelItem *, class HbDataFormModelItem *)
+	??1PosSettingsAdvOp@@UAE@XZ @ 11 NONAME ; PosSettingsAdvOp::~PosSettingsAdvOp(void)
+	?qt_metacall@PosSettingsAdvOp@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12 NONAME ; int PosSettingsAdvOp::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0PosSettingsAdvOp@@QAE@PAVHbView@@@Z @ 13 NONAME ; PosSettingsAdvOp::PosSettingsAdvOp(class HbView *)
+	??_EPosSettingsAdvOp@@UAE@I@Z @ 14 NONAME ; PosSettingsAdvOp::~PosSettingsAdvOp(unsigned int)
+	??1PosSettingsView@@UAE@XZ @ 15 NONAME ; PosSettingsView::~PosSettingsView(void)
+	?itemPrototypes@PosSettingsAdvOp@@QAEXAAV?$QList@PAVHbAbstractViewItem@@@@@Z @ 16 NONAME ; void PosSettingsAdvOp::itemPrototypes(class QList<class HbAbstractViewItem *> &)
+	?removeConnection@PosSettingsAdvOp@@QAEXPAVHbDataFormModelItem@@PBDPAVQObject@@1@Z @ 17 NONAME ; void PosSettingsAdvOp::removeConnection(class HbDataFormModelItem *, char const *, class QObject *, char const *)
+	?indexFromItem@PosSettingsAdvOp@@QAE?AVQModelIndex@@PBVHbDataFormModelItem@@@Z @ 18 NONAME ; class QModelIndex PosSettingsAdvOp::indexFromItem(class HbDataFormModelItem const *)
+	?setItemPrototypes@PosSettingsAdvOp@@QAEXAAV?$QList@PAVHbAbstractViewItem@@@@@Z @ 19 NONAME ; void PosSettingsAdvOp::setItemPrototypes(class QList<class HbAbstractViewItem *> &)
+	??0PosSettingsView@@QAE@PAVQGraphicsItem@@@Z @ 20 NONAME ; PosSettingsView::PosSettingsView(class QGraphicsItem *)
+	?removeItem@PosSettingsAdvOp@@QAE_NPAVHbDataFormModelItem@@@Z @ 21 NONAME ; bool PosSettingsAdvOp::removeItem(class HbDataFormModelItem *)
+	?trUtf8@PosSettingsAdvOp@@SA?AVQString@@PBD0H@Z @ 22 NONAME ; class QString PosSettingsAdvOp::trUtf8(char const *, char const *, int)
+	?tr@PosSettingsAdvOp@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString PosSettingsAdvOp::tr(char const *, char const *)
+	?getStaticMetaObject@PosSettingsAdvOp@@SAABUQMetaObject@@XZ @ 24 NONAME ; struct QMetaObject const & PosSettingsAdvOp::getStaticMetaObject(void)
+	?metaObject@PosSettingsAdvOp@@UBEPBUQMetaObject@@XZ @ 25 NONAME ; struct QMetaObject const * PosSettingsAdvOp::metaObject(void) const
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/possettings/possettingsengine/eabi/possettingsengineu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,35 @@
+EXPORTS
+	_ZN15PosSettingsViewC1EP13QGraphicsItem @ 1 NONAME
+	_ZN15PosSettingsViewC2EP13QGraphicsItem @ 2 NONAME
+	_ZN15PosSettingsViewD0Ev @ 3 NONAME
+	_ZN15PosSettingsViewD1Ev @ 4 NONAME
+	_ZN15PosSettingsViewD2Ev @ 5 NONAME
+	_ZN16PosSettingsAdvOp10removeItemEP19HbDataFormModelItem @ 6 NONAME
+	_ZN16PosSettingsAdvOp11qt_metacallEN11QMetaObject4CallEiPPv @ 7 NONAME
+	_ZN16PosSettingsAdvOp11qt_metacastEPKc @ 8 NONAME
+	_ZN16PosSettingsAdvOp11setExpandedERK11QModelIndexb @ 9 NONAME
+	_ZN16PosSettingsAdvOp13addConnectionEP19HbDataFormModelItemPKcP7QObjectS3_ @ 10 NONAME
+	_ZN16PosSettingsAdvOp13indexFromItemEPK19HbDataFormModelItem @ 11 NONAME
+	_ZN16PosSettingsAdvOp14itemPrototypesER5QListIP18HbAbstractViewItemE @ 12 NONAME
+	_ZN16PosSettingsAdvOp16removeConnectionEP19HbDataFormModelItemPKcP7QObjectS3_ @ 13 NONAME
+	_ZN16PosSettingsAdvOp16staticMetaObjectE @ 14 NONAME DATA 16
+	_ZN16PosSettingsAdvOp17setItemPrototypesER5QListIP18HbAbstractViewItemE @ 15 NONAME
+	_ZN16PosSettingsAdvOp18appendDataFormItemEP19HbDataFormModelItemS1_ @ 16 NONAME
+	_ZN16PosSettingsAdvOp19getStaticMetaObjectEv @ 17 NONAME
+	_ZN16PosSettingsAdvOp9addActionEP8HbActionN6HbView15ActionContainerE @ 18 NONAME
+	_ZN16PosSettingsAdvOpC1EP6HbView @ 19 NONAME
+	_ZN16PosSettingsAdvOpC2EP6HbView @ 20 NONAME
+	_ZN16PosSettingsAdvOpD0Ev @ 21 NONAME
+	_ZN16PosSettingsAdvOpD1Ev @ 22 NONAME
+	_ZN16PosSettingsAdvOpD2Ev @ 23 NONAME
+	_ZNK16PosSettingsAdvOp10isExpandedERK11QModelIndex @ 24 NONAME
+	_ZNK16PosSettingsAdvOp10metaObjectEv @ 25 NONAME
+	_ZTI15PosSettingsView @ 26 NONAME
+	_ZTI16PosSettingsAdvOp @ 27 NONAME
+	_ZTV15PosSettingsView @ 28 NONAME
+	_ZTV16PosSettingsAdvOp @ 29 NONAME
+	_ZThn16_N15PosSettingsViewD0Ev @ 30 NONAME
+	_ZThn16_N15PosSettingsViewD1Ev @ 31 NONAME
+	_ZThn8_N15PosSettingsViewD0Ev @ 32 NONAME
+	_ZThn8_N15PosSettingsViewD1Ev @ 33 NONAME
+
--- a/locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsadvview.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsadvview.h	Wed Jun 23 18:40:52 2010 +0300
@@ -20,7 +20,7 @@
 
 #include "possettingsadvop.h"
 
-#include <QObject.h>
+#include <QObject>
 #include <cpbasesettingview.h>
 
 //class PosSettingsAdvancedDataForm;
--- a/locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsengine.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsengine.h	Wed Jun 23 18:40:52 2010 +0300
@@ -21,7 +21,7 @@
 
 #include "possettingscommon.h"
 #include "possettingsengineprivate.h"
-#include <QObject.h>
+#include <QObject>
 #include <qglobal.h>
 
 /**
--- a/locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsengineprivate.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsengineprivate.h	Wed Jun 23 18:40:52 2010 +0300
@@ -20,7 +20,7 @@
 
 #include "possettingscommon.h"
 
-#include <epos_mposmodulesobserver.h>
+#include <EPos_MPosModulesObserver.h>
 #include <lbtserver.h>
 #include <lbtmanager.h>
 
--- a/locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingspluginsloader.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingspluginsloader.h	Wed Jun 23 18:40:52 2010 +0300
@@ -18,9 +18,9 @@
 #ifndef PosSettingsPluginsLoader_H
 #define PosSettingsPluginsLoader_H
 
-#include "PosSettingsadvinterface.h"
+#include "possettingsadvinterface.h"
 
-#include <QObject.h>
+#include <QObject>
 #include <e32cmn.h>
 
 class PosSettingsPluginsLoader 
--- a/locationsystemui/locationsysui/possettings/possettingsengine/src/possettingsengineprivate.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/possettingsengine/src/possettingsengineprivate.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -18,11 +18,11 @@
 #include "possettingsengineprivate.h"
 #include "possettingsengine.h"
 #include <qglobal.h>
-#include <epos_csuplsettings.h>
+#include <EPos_CSuplSettings.h>
 #include <lbtcommon.h>
-#include <epos_cposmodules.h>
-#include <epos_cposmoduleidlist.h>
-#include <epos_cposmoduleupdate.h>
+#include <EPos_CPosModules.h>
+#include <EPos_CPosModuleIdList.h>
+#include <EPos_CPosModuleUpdate.h>
 
 //---------------------------------------------------------------------
 // PosSettingsEnginePrivate::PosSettingsEnginePrivate()
--- a/locationsystemui/locationsysui/possettings/possettingsplugin/possettingsplugin.pro	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/possettingsplugin/possettingsplugin.pro	Wed Jun 23 18:40:52 2010 +0300
@@ -29,7 +29,7 @@
 OBJECTS_DIR = obj
 RCC_DIR =     rcc
 RESOURCES += possettingsplugin.qrc
-#TRANSLATIONS = lilocationmw.ts
+TRANSLATIONS = lilocationmw.ts
 
 # Platforms
 SYMBIAN_PLATFORMS = WINSCW \
--- a/locationsystemui/locationsysui/possettings/possettingsplugin/src/possettingsplugin.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/possettingsplugin/src/possettingsplugin.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -20,7 +20,7 @@
 #include "possettingspluginhelper.h"
 #include "apilogger.h"
 
-#include <QTCore>
+#include <QtCore>
 #include <QDebug>
 #include <QTranslator>
 #include <cpsettingformentryitemdataimpl.h>
--- a/locationsystemui/locationsysui/possettings/possettingsplugin/src/possettingspluginhelper_p.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/locationsystemui/locationsysui/possettings/possettingsplugin/src/possettingspluginhelper_p.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -18,7 +18,7 @@
 
 #include "possettingspluginhelper_p.h"
 #include "possettingspluginhelper.h"
-#include <epos_cposmodules.h>
+#include <EPos_CPosModules.h>
 #include <lbs/epos_cposmoduleidlist.h>
 #include <featmgr.h> 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/bwins/locnotificationclientu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,6 @@
+EXPORTS
+	?Close@RContactResolverSession@@QAEXXZ @ 1 NONAME ; void RContactResolverSession::Close(void)
+	?Connect@RContactResolverSession@@QAEHXZ @ 2 NONAME ; int RContactResolverSession::Connect(void)
+	??0RContactResolverSession@@QAE@XZ @ 3 NONAME ; RContactResolverSession::RContactResolverSession(void)
+	?ResolveRequestorsL@RContactResolverSession@@QAEXAAV?$RPointerArray@VCPosRequestor@@@@@Z @ 4 NONAME ; void RContactResolverSession::ResolveRequestorsL(class RPointerArray<class CPosRequestor> &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/eabi/locnotificationclientu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,7 @@
+EXPORTS
+	_ZN23RContactResolverSession18ResolveRequestorsLER13RPointerArrayI13CPosRequestorE @ 1 NONAME
+	_ZN23RContactResolverSession5CloseEv @ 2 NONAME
+	_ZN23RContactResolverSession7ConnectEv @ 3 NONAME
+	_ZN23RContactResolverSessionC1Ev @ 4 NONAME
+	_ZN23RContactResolverSessionC2Ev @ 5 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/group/contactresolversession.mmp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 definition file for Contact Resolver clientlib
+*
+*/
+
+
+// INCLUDES
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh> // For the MW_LAYER_SYSTEMINCLUDE
+
+TARGET          locnotificationclient.dll
+TARGETTYPE      DLL
+UID             0x1000008d 0xEF2227BD
+
+CAPABILITY 		All -Tcb
+
+VENDORID		VID_DEFAULT
+
+SOURCEPATH      ../src
+SOURCE			contactresolversession.cpp
+
+
+
+// System Include
+MW_LAYER_SYSTEMINCLUDE
+
+USERINCLUDE     	.
+USERINCLUDE		../inc
+USERINCLUDE		../../inc
+
+LIBRARY         euser.lib
+LIBRARY		eiksrv.lib 
+LIBRARY         eposprvtyp.lib
+LIBRARY         estor.lib bafl.lib
+LIBRARY         flogger.lib
+
+EPOCALLOWDLLDATA
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/inc/contactresolversession.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  RContactResolverSession
+ *  This class provides the client-side interface to the server session
+ */
+#ifndef CONTACTRESOLVERSESSION_H
+#define CONTACTRESOLVERSESSION_H
+
+#include <e32std.h>
+
+class CPosRequestor;
+
+class RContactResolverSession : public RSessionBase
+    {
+public:
+    // Constructors and destructors
+
+    /**
+     * Default constructor.
+     * Constructs the object.
+     */
+    IMPORT_C RContactResolverSession();
+
+public:
+    // New functions
+
+    /**
+     * Connect.
+     * Connects to the server and create a session.
+     * @return Error code.
+     */
+    IMPORT_C TInt Connect();
+
+    /**
+     * Resolve the requestors. 
+     * @param[IN,OUT] aRequestors Array of Requestors
+     */
+    IMPORT_C void ResolveRequestorsL(
+            RPointerArray<CPosRequestor>& aRequestors);
+
+    /**
+     * closes the session.
+     */
+    IMPORT_C void Close();
+
+    /**
+     * Starts the server process if not already started.
+     */
+    static TInt StartServer();
+    
+    /**
+     * creates the server process.
+     */
+    static TInt CreateServerProcess();
+
+private:
+    /**
+     * Version.
+     * Gets the version number.
+     * @return The version.
+     */
+    TVersion Version() const;
+
+    };
+
+#endif //CONTACTRESOLVERSESSION_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/src/contactresolversession.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,228 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: client-side interface implementation for server session.
+ *  
+ */
+
+#include "contactresolversession.h"
+#include "locprivacyinternal.h"
+#include "locprivacycommon.h"
+
+#include <lbs/epos_cposrequestor.h>
+#include <lbs/EPos_RPosRequestorStack.h>
+#include <e32cmn.h>
+#include <s32strm.h>
+#include <s32mem.h>
+
+
+TInt KDefaultMessageSlots = 255;
+const TUid KServerUid3 =
+    {
+    0x101f7a86
+    };
+_LIT(KServerFilename, "locnotificationserver.exe");
+
+// -----------------------------------------------------------------------------
+// RContactResolverSession::RContactResolverSession()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C RContactResolverSession::RContactResolverSession() :
+    RSessionBase()
+    {
+    // No implementation required
+    }
+
+// -----------------------------------------------------------------------------
+// RContactResolverSession::ResolveRequestorsL()
+// Issues a request for the time to the server.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RContactResolverSession::ResolveRequestorsL(RPointerArray<
+        CPosRequestor>& aRequestors)
+    {
+
+    RPosRequestorStack* requestors = new (ELeave) RPosRequestorStack;
+    CleanupStack::PushL(requestors);
+
+    //-------------------------------------------------------------
+    // getting size from the server in first IPC
+    CBufFlat* buffer = CBufFlat::NewL(512);
+    CleanupStack::PushL(buffer);
+    RBufWriteStream writeStream;
+    writeStream.Open(*buffer);
+    CleanupClosePushL(writeStream);
+
+    TInt count = aRequestors.Count();
+    for (TInt i = 0; i < count; ++i)
+        {
+        requestors->Append(aRequestors[i]);
+        }
+    requestors->ExternalizeL(writeStream);
+    writeStream.CommitL();
+
+    TPtr8 ptr = buffer->Ptr(0);
+
+    TIpcArgs args;
+    TInt size = 0;
+    TPckg<TInt> sizePkg(size);
+    args.Set(0, &sizePkg);
+    args.Set(1, &ptr);
+
+    TInt in = SendReceive(ELocPrivacyGetSize, args);
+
+    CleanupStack::PopAndDestroy(&writeStream);
+    CleanupStack::PopAndDestroy(buffer);
+    CleanupStack::PopAndDestroy(requestors);
+    //-------------------------------------------------------------
+    //-------------------------------------------------------------
+    // allocating the buffer of the size obtained in the first IPC
+    // and getting the data from the server in the 2nd IPC
+
+    // This call waits for the server to complete the request before
+    // proceeding. When it returns, the new time will be in aTime.
+
+
+    CBufFlat* buffer1 = CBufFlat::NewL(512);
+    CleanupStack::PushL(buffer1);
+    buffer1->ResizeL(size);
+    
+    TPtr8 bufPtr = buffer1->Ptr(0);
+    TIpcArgs ipcArgs;
+    ipcArgs.Set(0, &bufPtr);
+    in = SendReceive(ELocPrivacyResolve, ipcArgs);
+    
+    //-------------------------------------------------------------
+
+    RBufReadStream readStream;
+    readStream.Open(*buffer1);
+    CleanupClosePushL(readStream);
+    RPosRequestorStack* requestors2 = new (ELeave) RPosRequestorStack;
+    CleanupStack::PushL(requestors2);
+    requestors2->InternalizeL(readStream);
+    TInt cnt = requestors2->Count();
+    aRequestors.Reset();
+    for (TInt i = 0; i < cnt; ++i)
+        {
+        CPosRequestor * entry = requestors2->operator [](i);
+        aRequestors.Append(entry);
+        }
+    CleanupStack::PopAndDestroy(requestors2);
+    CleanupStack::PopAndDestroy(&readStream);
+    CleanupStack::PopAndDestroy(buffer1);
+ 
+    }
+
+// -----------------------------------------------------------------------------
+// RContactResolverSession::Connect()
+// Connects to the server and create a session.
+// -----------------------------------------------------------------------------
+
+EXPORT_C TInt RContactResolverSession::Connect()
+    {
+    TInt error = StartServer();
+
+    if (KErrNone == error)
+        {
+        error = CreateSession(KLocPrivacyServerName, Version(),
+                KDefaultMessageSlots);
+        }
+    return error;
+    }
+
+// -----------------------------------------------------------------------------
+// StartServer()
+// Starts the server if it is not already running
+// -----------------------------------------------------------------------------
+//
+TInt RContactResolverSession::StartServer()
+    {
+    TInt result;
+
+    TFindServer findServer(KLocPrivacyServerName);
+    TFullName name;
+
+    result = findServer.Next(name);
+    if (result == KErrNone)
+        {
+        // Server already running
+        return KErrNone;
+        }
+
+    result = CreateServerProcess();
+    if (result != KErrNone)
+        {
+        return result;
+        }
+
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CreateServerProcess()
+// Creates a server process
+// -----------------------------------------------------------------------------
+//
+TInt RContactResolverSession::CreateServerProcess()
+    {
+    TInt result;
+
+    const TUidType serverUid(KNullUid, KNullUid, KServerUid3);
+
+    RProcess server;
+    TRequestStatus status;
+    result = server.Create(KServerFilename, KNullDesC, serverUid);
+
+    if (result != KErrNone)
+        {
+        server.Close();
+        return KErrNotFound;
+        }
+
+    server.Rendezvous(status);
+
+    if (status != KRequestPending)
+        {
+        User::WaitForRequest(status);
+        server.Kill(KErrNone);
+        server.Close();
+        return (status.Int());
+        }
+    else
+        {
+        server.Resume();
+        }
+
+    User::WaitForRequest(status);
+    server.Close();
+
+    if (status != KErrNone)
+        {
+        return (status.Int());
+        }
+
+    return KErrNone;
+    }
+
+TVersion RContactResolverSession::Version() const
+    {
+    return TVersion(KLocPrivacyServerMajorVersionNumber,
+            KLocPrivacyServerMinorVersionNumber,
+            KLocPrivacyServerBuildVersionNumber);
+    }
+
+EXPORT_C void RContactResolverSession::Close()
+    {
+    RSessionBase::Close();
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/inc/contactresolversession.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  RContactResolverSession
+ *  This class provides the client-side interface to the server session
+ */
+#ifndef CONTACTRESOLVERSESSION_H
+#define CONTACTRESOLVERSESSION_H
+
+#include <e32std.h>
+
+class CPosRequestor;
+
+class RContactResolverSession : public RSessionBase
+    {
+public:
+    // Constructors and destructors
+
+    /**
+     * Default constructor.
+     * Constructs the object.
+     */
+    IMPORT_C RContactResolverSession();
+
+public:
+    // New functions
+
+    /**
+     * Connect.
+     * Connects to the server and create a session.
+     * @return Error code.
+     */
+    IMPORT_C TInt Connect();
+
+    /**
+     * Resolve the requestors. 
+     * @param[IN,OUT] aRequestors Array of Requestors
+     */
+    IMPORT_C void ResolveRequestorsL(
+            RPointerArray<CPosRequestor>& aRequestors);
+
+    /**
+     * closes the session.
+     */
+    IMPORT_C void Close();
+
+    /**
+     * Starts the server process if not already started.
+     */
+    static TInt StartServer();
+    
+    /**
+     * creates the server process.
+     */
+    static TInt CreateServerProcess();
+
+private:
+    /**
+     * Version.
+     * Gets the version number.
+     * @return The version.
+     */
+    TVersion Version() const;
+
+    };
+
+#endif //CONTACTRESOLVERSESSION_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/inc/locprivacycommon.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Server name and version definition.
+*
+*/
+
+#ifndef PRIVACYCOMMON_H
+#define PRIVACYCOMMON_H
+
+#include <e32cmn.h>
+
+// CONSTANTS
+_LIT(KLocPrivacyServerName, "!locnotificationserver");
+
+const TUint KLocPrivacyServerMajorVersionNumber = 0;
+const TUint KLocPrivacyServerMinorVersionNumber = 0;
+const TUint KLocPrivacyServerBuildVersionNumber = 0;
+
+#endif      // PRIVACYCOMMON_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/inc/locprivacyinternal.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  IPC enumerations and constant definition for server.
+*
+*/
+
+#ifndef PRIVACYINTERNAL_H
+#define PRIVACYINTERNAL_H
+
+
+
+//CONSTANTS
+
+// IPC enumerations
+enum TPosPrivacyClientServer
+    {
+    // To get the size of modified buffer containing resolved requestors.
+    ELocPrivacyGetSize = 0,
+    // To get the resolved requestors.
+    ELocPrivacyResolve
+    };
+
+// Buffer granularity
+const TInt KPosBufFlatExpandSize = 100;
+
+#endif      // PRIVACYINTERNAL_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/inc/locutilsdebug.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  LocUtilsDebug contains debug macros.
+*
+*/
+
+
+#ifndef LOCUTILSDEBUG_H
+#define LOCUTILSDEBUG_H
+
+// INCLUDES
+#include "locutilsdebugconfig.hrh"
+
+#include <e32std.h>
+
+
+// MACROS
+#define DEBUG(TEXT) 				 { \
+									  _LIT( KText, #TEXT ); \
+									   Debug(KText) \
+									 }
+									 
+#define LOC(TEXT, ARG1) 			 { \
+									   _LIT( KText, #TEXT ); \
+									   Debug( KText, (ARG1) ); \
+									 }
+									 
+#define LOC2(TEXT, ARG1, ARG2) 		 { \
+									   _LIT( KText, #TEXT ); \
+									   Debug( KText,(ARG1), (ARG2) ); \
+									 }
+									 
+#define LOC3(TEXT, ARG1, ARG2, ARG3) { \
+									   _LIT( KText, #TEXT ); \
+									   Debug( KText, (ARG1), (ARG2), (ARG3) ); \
+									 }
+
+IMPORT_C void Debug( TRefByValue<const TDesC> aText, ...);
+
+/**
+* By using component specific debug macros unnecessary 
+* debug prints can be avoided. 
+* Also component specific debugging is possible by compiling 
+* only certain components when LOC_ENABLE_DEBUG_PRINT is defined.
+*/
+
+#ifdef LOC_ENABLE_DEBUG_PRINT
+
+#define LOCUTILSDEBUG(TEXT)                     DEBUG(TEXT);
+#define LOCUTILSDEBUG1(TEXT, ARG1)              LOC(TEXT, ARG1);
+#define LOCUTILSDEBUG2(TEXT, ARG1, ARG2)        LOC2(TEXT, ARG1, ARG2);
+#define LOCUTILSDEBUG3(TEXT, ARG1, ARG2, ARG3)  LOC3(TEXT, ARG1, ARG2, ARG3);
+
+#else
+
+#define LOCUTILSDEBUG(TEXT)                     ;
+#define LOCUTILSDEBUG1(TEXT, ARG1)              ;
+#define LOCUTILSDEBUG2(TEXT, ARG1, ARG2)        ;
+#define LOCUTILSDEBUG3(TEXT, ARG1, ARG2, ARG3)  ;
+
+#endif
+
+#endif // LOCUTILSDEBUG_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/inc/locutilsdebugconfig.hrh	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 main build-time configuration file of Loc Utils
+*
+*/
+
+
+#ifndef LOCUTILSDEBUGCONFIG_HRH_
+#define LOCUTILSDEBUGCONFIG_HRH_
+
+//  INCLUDES
+
+// Flags for development:
+
+
+// Defined LOC_ENABLE_DEBUG_PRINT flag enables debug prints to a file.
+
+//#define LOC_ENABLE_DEBUG_PRINT
+
+#endif // LOCUTILSDEBUGCONFIG_HRH_
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/install/privacydialogs_stub.pkg	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,40 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: Stub Package file for Privacy dialogs
+;
+;
+; Languages
+&EN
+
+; Header
+#{"privacydialog"}, (0x101f7a86), 1, 0, 0, TYPE = SA
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Hb custom device dialog plugin
+""    - "z:\sys\bin\posverificationdialogplugin.dll"
+""    - "z:\resource\plugins\devicedialogs\posverificationdialogplugin.qtplugin"
+
+; Qt engine dll
+""    - "z:\sys\bin\locnotificationengine.dll"
+
+;Symbian components
+""    - "z:\sys\bin\contactresolversession.dll"
+""    - "z:\sys\bin\locprivacysrv.exe"
+""    - "z:\sys\bin\locutils.dll"
+""    - "z:\sys\bin\locverifierdlg.dll"
Binary file locationsystemui/locationsysui/privacyverifiernotifierui/install/privacydialogs_stub.sis has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/bwins/locnotificationengineu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	?ResolveRequestorsL@CLocRequestorUtilsResolver@@QAEXAAV?$RPointerArray@VCPosRequestor@@@@@Z @ 1 NONAME ; void CLocRequestorUtilsResolver::ResolveRequestorsL(class RPointerArray<class CPosRequestor> &)
+	?NewL@CLocRequestorUtilsResolver@@SAPAV1@XZ @ 2 NONAME ; class CLocRequestorUtilsResolver * CLocRequestorUtilsResolver::NewL(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/eabi/locnotificationengineu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,4 @@
+EXPORTS
+	_ZN26CLocRequestorUtilsResolver18ResolveRequestorsLER13RPointerArrayI13CPosRequestorE @ 1 NONAME
+	_ZN26CLocRequestorUtilsResolver4NewLEv @ 2 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/inc/locrequestorutilsresolver.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,83 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Requestor utilities, supports Resolving of Requestors.
+*
+*/
+
+
+#ifndef CLOCREQUESTORUTILSRESOLVER_H
+#define CLOCREQUESTORUTILSRESOLVER_H
+
+//  INCLUDES
+#include <e32base.h>
+
+//FORWARD DECLARATION
+class CPosRequestor;
+class QLocNotificationEngine;
+
+// CLASS DECLARATION
+
+/**
+*   
+*  
+*  
+*/
+class CLocRequestorUtilsResolver  :	public CBase
+    {
+    public: // Constructors and destructor
+
+        /**
+        * Symbian OS constructor
+        * @param None
+        * @return new object
+        */
+        IMPORT_C static CLocRequestorUtilsResolver* NewL();
+
+        /**
+        * Destructor.
+        */
+        ~CLocRequestorUtilsResolver();
+
+	public: // Implement base class virtual methods
+       /**
+        * Resolve the requestors. 
+        * @param[IN,OUT] aRequestors Array of Requestors,ownership is transferred to caller
+         
+        */
+        IMPORT_C void ResolveRequestorsL( 
+        				RPointerArray<CPosRequestor>& aRequestors );
+
+      
+    private: // Constructors
+        /**
+        * C++ default constructor.
+        */
+        CLocRequestorUtilsResolver();
+
+		/**
+		* The Symbian 2nd Phase Constructor is always Private
+		*/
+		void ConstructL();
+
+		
+  
+    private: // member data
+    
+		// Qt implementation class for notification engine.Ownership remains with object
+        QLocNotificationEngine* iEngine;
+    };
+
+#endif // CLOCREQUESTORUTILSRESOLVER_H
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/inc/qlocnotificationengine.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 positioning settings engine class. 
+*
+*/
+
+#ifndef QLOCNOTIFICATIONENGINE_H
+#define QLOCNOTIFICATIONENGINE_H
+
+#include <qcontactrequests.h>
+
+class QContactManager;
+
+/**
+ * This class is used as a container for Pos requestor data which needs to be resolved.
+ * After resolution the result is returned in the same class. QPosRequestorData is used
+ * so as to avoid exposing CPosRequestorData to 
+ */
+
+class QPosRequestorData
+    {
+    
+public :
+    enum IdFormat
+        {
+        /** The requestor ID format is unknown. */
+        EIdFormatUnknown,
+        /** The requestor is identified by name. */
+        EIdFormatGenericName,
+        /** The requestor is identified by phone number. */
+        EIdFormatPhoneNumber,
+        /** The requestor is identified by URL. */
+        EIdFormatUrl,
+        /** The requestor is identified by email address. */
+        EIdFormatEmail,
+        /** The requestor is identified by the URL of the SIP session. */
+        EIdFormatSIPUrl,
+        /** The requestor is identified by the IMS public identity. */
+        EIdFormatIMSPublicIdentity,
+        /** The requestor is identified by Mobile identification Number. */
+        EIdFormatMIN,
+        /** The requestor is identified by Mobile Directory Number. */
+        EIdFormatMDN
+        };
+public:
+    /*
+     * Default construtor
+     */
+    QPosRequestorData();
+    
+    /*
+     * Destructor for QPosRequestorData
+     */
+    ~QPosRequestorData();
+    
+public:
+    /*
+     * Setter method for QPosRequestorData
+     * @param idFormat -  Field in which string needs to be searched for resolution
+     * @param idString -  String which needs to be resolved
+     */
+    void setPosRequestorData(const QPosRequestorData::IdFormat& idFormat, const QString& idString);
+    
+    /*
+     * Getter method for QPosRequestorData
+     * @param idFormat -  Field in which string needs to be searched for resolution
+     * @param idString -  String which needs to be resolved \ after resolution the result is stored in this
+     */
+    void getPosRequestorData(QPosRequestorData::IdFormat& idFormat, QString& idString) const;
+    
+private:
+    
+    // contains string to be resolve -  string after resolution is stored in this
+    QString mIdString;
+    //idformat of the string to be searched - indicates in what field the string needs to be searched in
+    IdFormat mIdFormat; 
+    };
+
+/**
+ * QLocNotificationEngine class provides a Qt interface to perform operations such as
+ * requestor resolution, activating indicators for missed location notfications etc.
+ * 
+ */
+
+class QLocNotificationEngine
+    {
+    
+public:
+    /**
+     * Default constructor
+     * This throws an error if construction fails.
+     */
+    QLocNotificationEngine();
+    
+    /**
+     * Destructor 
+     */
+    ~QLocNotificationEngine();
+    
+public:
+    /*
+     * Resolves requestor from phoebook
+     * @param[IN,OUT] posRequestorData resolved requestors
+     */
+    void processRequestors(QPosRequestorData& posRequestorData);
+
+private: // data member
+    // Contact manager instance
+    QtMobility::QContactManager* mContactManager;
+
+    };
+
+#endif // QLOCNOTIFICATIONENGINE_H 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/locnotificationengine.pro	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,43 @@
+# 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: LocNotificationEngine pro file
+TEMPLATE = lib
+TARGET = locnotificationengine
+DEPENDPATH += .
+INCLUDEPATH += ../inc
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+CONFIG += hb
+CONFIG += mobility
+MOBILITY = contacts
+
+# Uncomment following line to disable logging
+# DEFINES += QT_NO_DEBUG_OUTPUT
+MOC_DIR = moc
+OBJECTS_DIR = obj
+
+# Platforms
+SYMBIAN_PLATFORMS = WINSCW \
+    ARMV5
+LIBS += -leposprvtyp
+
+# Input
+SOURCES += src/locrequestorutilsresolver.cpp \
+    src/qlocnotificationengine.cpp
+HEADERS += inc/locrequestorutilsresolver.h \
+    inc/qlocnotificationengine.h
+symbian: { 
+    TARGET.EPOCALLOWDLLDATA = 1
+    DEFINES += BUILD_POSSETTINGS
+    DEFINES += PLUGINUID3=0x2002E705
+    TARGET.UID3 = 0x2002E705
+}
+
+TARGET.CAPABILITY = All \
+    -TCB
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/src/locrequestorutilsresolver.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 location notification engine class. 
+*
+*/
+
+
+// INCLUDE FILES
+
+
+#include "locrequestorutilsresolver.h"
+#include "qlocnotificationengine.h"
+
+#include <e32base.h>
+#include <barsread.h>
+
+
+#include <lbs/epos_cposrequestor.h>
+#include <lbs/epos_cposservicerequestor.h>
+#include <lbs/epos_cposcontactrequestor.h>
+
+
+
+
+// ============= CLocRequestorUtilsResolver MEMBER FUNCTIONS =================
+
+// ---------------------------------------------------------------------------
+// CLocRequestorUtilsResolver::NewL
+// 2 Phase Constructor
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CLocRequestorUtilsResolver* CLocRequestorUtilsResolver::NewL()
+	{
+	CLocRequestorUtilsResolver* self = 
+							new(ELeave) CLocRequestorUtilsResolver();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+    return self;
+	}
+
+// ---------------------------------------------------------------------------
+// destructor
+// ---------------------------------------------------------------------------
+//
+CLocRequestorUtilsResolver::~CLocRequestorUtilsResolver()
+	{
+	delete iEngine;
+	iEngine = NULL;
+	}
+
+// ---------------------------------------------------------------------------
+// The method resolves requestors by delegating requests to QPosRequestorData
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CLocRequestorUtilsResolver::ResolveRequestorsL( 
+	RPointerArray<CPosRequestor>& aRequestors )
+	{
+    //resolve requestors one by one by extracting the idFormat and idString 
+    //from the requestor array
+    TInt count = aRequestors.Count();
+    for(TInt iter = 0; iter < count; ++iter)
+        {        
+        CPosRequestor::TRequestorIdFormat idFormat = aRequestors[iter]->RequestorIdFormat();        
+        QPosRequestorData::IdFormat qposidformat;
+         switch(idFormat)
+        {
+
+        case CPosRequestor::EIdFormatGenericName:
+             qposidformat=QPosRequestorData::EIdFormatGenericName;
+             break;	
+             
+        case CPosRequestor::EIdFormatPhoneNumber:
+            qposidformat=QPosRequestorData::EIdFormatPhoneNumber;
+             break;
+        case CPosRequestor::EIdFormatUrl:
+            qposidformat=QPosRequestorData::EIdFormatUrl;
+              break;
+        case CPosRequestor::EIdFormatEmail:
+            qposidformat=QPosRequestorData::EIdFormatEmail;
+             break;
+        case CPosRequestor::EIdFormatSIPUrl:
+            qposidformat=QPosRequestorData::EIdFormatSIPUrl;
+             break;
+        case CPosRequestor::EIdFormatIMSPublicIdentity:
+            qposidformat=QPosRequestorData::EIdFormatIMSPublicIdentity;
+             break;
+        case CPosRequestor::EIdFormatMIN:
+            qposidformat=QPosRequestorData::EIdFormatMIN;
+             break;
+        case CPosRequestor::EIdFormatMDN:
+            qposidformat=QPosRequestorData::EIdFormatMDN;
+             break;
+        case  CPosRequestor::EIdFormatUnknown:
+        default:
+            qposidformat=QPosRequestorData::EIdFormatUnknown; 
+             break;
+            }    
+        //right now the phonebook has fields corresponding to  email,phone number, URL only
+        //other cases are not supported by the phonebook
+        if(qposidformat == QPosRequestorData::EIdFormatEmail ||
+                qposidformat == QPosRequestorData::EIdFormatPhoneNumber ||
+                qposidformat == QPosRequestorData::EIdFormatUrl ) 
+            {
+            //convert TDes to QString
+            QString qReqString((QChar*)aRequestors[iter]->RequestorIdString().Ptr(),aRequestors[iter]->RequestorIdString().Length());
+            
+            QPosRequestorData posRequestor;
+            posRequestor.setPosRequestorData(qposidformat,qReqString);
+            
+            iEngine->processRequestors(posRequestor); 
+
+            QString retString;        
+            posRequestor.getPosRequestorData(qposidformat,retString);
+            
+            //convert QString to TDes
+            TPtrC16 textPtr(reinterpret_cast<const TUint16*>(retString.utf16()));
+
+            aRequestors[iter]->SetRequestorIdL(idFormat,textPtr);
+            }
+        }
+	}
+	
+
+// ---------------------------------------------------------------------------
+// CLocRequestorUtilsResolver::CLocRequestorUtilsResolver
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ---------------------------------------------------------------------------
+//
+CLocRequestorUtilsResolver::CLocRequestorUtilsResolver()
+	{
+	// Nothing to do.
+	}
+
+// ---------------------------------------------------------------------------
+// CLocRequestorUtilsResolver::ConstructL
+// Symbian Second Phase COnstructor
+// ---------------------------------------------------------------------------
+//
+void CLocRequestorUtilsResolver::ConstructL()
+	{
+    try
+	    {
+	    iEngine = new QLocNotificationEngine();
+		}
+	catch( int error )
+		{
+		User::Leave(error);
+		}	
+	}
+
+//  End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/src/qlocnotificationengine.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 positioning settings engine class. 
+*
+*/
+
+#include "qlocnotificationengine.h"
+
+#include <QDebug>
+#include <QLocale>
+
+#include <qcontactrequests.h>
+#include <qcontactfilters.h>
+#include <qcontact.h>
+#include <qcontactname.h>
+#include <qcontactemailaddress.h>
+#include <qcontactphonenumber.h>
+#include <qcontacturl.h>
+#include <qcontactmanager.h>
+#include <qcontactdisplaylabel.h>
+
+#include <hbnumbergrouping.h>
+
+
+
+//---------------------------------------------------------------------
+// QLocNotificationEngine::QLocNotificationEngine()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+QLocNotificationEngine::QLocNotificationEngine()
+    {
+    //"symbian" is the string used to load the contact manager corresponding to the phonebook database
+    mContactManager = new QtMobility::QContactManager("symbian");
+    }
+
+//------QLocNotificationEngine-----------------------------------------
+// QLocNotificationEngine::~QLocNotificationEngine()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+QLocNotificationEngine::~QLocNotificationEngine()
+    {
+    delete mContactManager;
+    }
+
+//------QLocNotificationEngine-----------------------------------------
+// QLocNotificationEngine::processRequestors
+// Used to resolve requestors
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+void QLocNotificationEngine::processRequestors(QPosRequestorData& posRequestorData)
+    {        
+  
+    QtMobility::QContactDetailFilter filter;
+
+    QString idString;
+    QPosRequestorData::IdFormat idFormat =  QPosRequestorData::EIdFormatUnknown;
+    posRequestorData.getPosRequestorData(idFormat,idString);
+    
+    switch(idFormat) // set definition name based on the idformat to be searched for
+        {
+        case QPosRequestorData::EIdFormatPhoneNumber:      
+            {
+            filter.setDetailDefinitionName(QtMobility::QContactPhoneNumber::DefinitionName, QtMobility::QContactPhoneNumber::FieldNumber);            
+            }
+            break;
+        
+        case QPosRequestorData::EIdFormatEmail:
+            {
+            filter.setDetailDefinitionName(QtMobility::QContactEmailAddress::DefinitionName, QtMobility::QContactEmailAddress::FieldEmailAddress);
+            }
+            break;
+        case QPosRequestorData::EIdFormatUrl:
+            {
+            filter.setDetailDefinitionName(QtMobility::QContactUrl::DefinitionName,QtMobility::QContactUrl::ContextHome);
+            }
+            break;
+        
+        //other cases are not supported by the phonebook
+        default: //this case wont arise as other values will already have been filtered out 
+            
+            break;
+        }
+    filter.setMatchFlags(QtMobility::QContactFilter::MatchExactly);
+    filter.setValue(idString);
+    
+    QList<QtMobility::QContactLocalId> matchingContacts = mContactManager->contactIds(filter);
+    
+    if (matchingContacts.size() > 0) //if any contacts were found
+        {
+               
+        QtMobility::QContact match = mContactManager->contact(matchingContacts.at(0)); //return the first contact among the ones found
+
+       // QtMobility::QContactDisplayLabel cdl = match.detail(QtMobility::QContactDisplayLabel::DefinitionName);
+        QString labelDetail = match.displayLabel();
+        posRequestorData.setPosRequestorData(idFormat,labelDetail); //set back result
+        }
+    else
+    	{
+    	// if no contacts were found
+    	
+    	if( QPosRequestorData::EIdFormatPhoneNumber == idFormat )
+    		{
+    		// Group the phone number according to current system locale
+    		/*
+    	    QString isStringPh = HbNumberGrouping::formatPhoneNumber(idString,QLocale::system().country());
+            posRequestorData.setPosRequestorData(idFormat,isStringPh); //set back result
+    		*/
+            posRequestorData.setPosRequestorData(idFormat,idString); //set back result
+    		}
+    	} 
+    
+    }
+
+//---------------------------------------------------------------------
+// QPosRequestorData::QPosRequestorData()
+// Constructor for QPosRequestorData
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+QPosRequestorData::QPosRequestorData()
+    {
+    
+    }
+   
+//---------------------------------------------------------------------
+// QPosRequestorData::~QPosRequestorData()
+// Destructor for QPosRequestorData
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+QPosRequestorData::~QPosRequestorData()
+    {
+    
+    }
+
+//---------------------------------------------------------------------
+// QPosRequestorData::setPosRequestorData()
+// Settermethod for QPosRequestorData
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+void QPosRequestorData::setPosRequestorData(const QPosRequestorData::IdFormat& idFormat, const QString& idString)
+    {
+    mIdFormat = idFormat;
+    mIdString = idString;
+    }
+    
+//---------------------------------------------------------------------
+// QPosRequestorData::getPosRequestorData()
+// Gettermethod for QPosRequestorData
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+void QPosRequestorData::getPosRequestorData(QPosRequestorData::IdFormat& idFormat, QString& idString) const
+    {
+    idFormat = mIdFormat;
+    idString = mIdString;
+    }
+    
+// End of file.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/group/locprivacyserver.mmp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 definition file for server
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          locnotificationserver.exe
+EPOCSTACKSIZE   0x5000
+TARGETTYPE      exe
+UID             0x00000000 0x101f7a86
+
+VENDORID        VID_DEFAULT
+CAPABILITY      CAP_SERVER
+
+SOURCEPATH      ../src
+SOURCE          locprivacyserverstartup.cpp
+SOURCE          locprivacyserver.cpp
+SOURCE          locprivacyserversession.cpp
+
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../locnotificationengine/inc
+
+MW_LAYER_SYSTEMINCLUDE 
+
+LIBRARY         bafl.lib
+LIBRARY         euser.lib
+LIBRARY         eposprvtyp.lib
+LIBRARY         eposutils.lib
+LIBRARY         efsrv.lib
+LIBRARY         estor.lib
+LIBRARY         locnotificationengine.lib
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacycommon.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Server name and version definition.
+*
+*/
+
+#ifndef PRIVACYCOMMON_H
+#define PRIVACYCOMMON_H
+
+#include <e32cmn.h>
+
+// CONSTANTS
+_LIT(KLocPrivacyServerName, "!locnotificationserver");
+
+const TUint KLocPrivacyServerMajorVersionNumber = 0;
+const TUint KLocPrivacyServerMinorVersionNumber = 0;
+const TUint KLocPrivacyServerBuildVersionNumber = 0;
+
+#endif      // PRIVACYCOMMON_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyinternal.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  IPC enumerations and constant definition for server.
+*
+*/
+
+#ifndef PRIVACYINTERNAL_H
+#define PRIVACYINTERNAL_H
+
+
+
+//CONSTANTS
+
+// IPC enumerations
+enum TPosPrivacyClientServer
+    {
+    // To get the size of modified buffer containing resolved requestors.
+    ELocPrivacyGetSize = 0,
+    // To get the resolved requestors.
+    ELocPrivacyResolve
+    };
+
+// Buffer granularity
+const TInt KPosBufFlatExpandSize = 100;
+
+#endif      // PRIVACYINTERNAL_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserver.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  server class definition.
+*
+*/
+
+#ifndef CLOCPRIVACYSERVER_H
+#define CLOCPRIVACYSERVER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <locprivacyinternal.h>
+
+// FORWARD DECLARATIONS
+class CLocPrivacyServerSession;
+
+// CLASS DECLARATION
+
+/**
+ *  The main server side class.
+ */
+class CLocPrivacyServer : public CServer2
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * Two-phased constructor.
+     */
+    static CLocPrivacyServer* NewL();
+
+    /**
+     * Destructor.
+     */
+    ~CLocPrivacyServer();
+
+private:
+
+    /**
+     * C++ constructor.
+     *
+     * @param aPriority Priority at which to run the server active object.
+     */
+    CLocPrivacyServer(
+    /* IN  */TInt aPriority);
+
+    /**
+     * EPOC default constructor.
+     */
+    void ConstructL();
+
+public:
+    // New functions
+
+    // Server priority. 950 is standard value.
+    enum
+        {
+        EPriority = 950
+        };
+
+    /**
+     * Increment number of sessions.
+     */
+    void IncrementSessions();
+
+    /**
+     * Decrement number of sessions.
+     *
+     * @param aSession Pointer to session that is calling
+     *                 DecrementSessions().It will be used in future.
+     */
+    void DecrementSessions(
+    /* IN  */CLocPrivacyServerSession* /*aSession */);
+
+public:
+    // Functions from base classes
+
+    /**
+     * From CServer.
+     *
+     * @param aVersion the server version.
+     * @param aMessage The connect message from the client.
+     * @return a new session
+     */
+    CSession2* NewSessionL(
+    /* IN  */const TVersion& aVersion,
+    /* IN  */const RMessage2& aMessage) const;
+
+    /**
+     * From CActive.
+     *
+     * @param aError the error code of the server leave.
+     * @return always KErrNone.
+     */
+    TInt RunError(
+    /* IN  */TInt aError);
+
+private:
+
+    // By default, prohibit copy constructor
+    CLocPrivacyServer(const CLocPrivacyServer&);
+    // Prohibit assigment operator
+    CLocPrivacyServer& operator=(const CLocPrivacyServer&);
+
+private:
+    // Data
+    TInt iNumSessions;
+    };
+
+#endif      // CLOCPRIVACYSERVER_H
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserverdebugpanic.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Panic code definitions for server.
+*
+*/
+
+#ifndef LOCPRIVACYSERVERDEBUGPANIC_H
+#define LOCPRIVACYSERVERDEBUGPANIC_H
+
+#include <e32def.h>
+
+_LIT(KLocPrivSrvDebugPanicCategory, "Loc Priv debug");
+
+enum TLocPrivSrvDebugPanic
+    {
+    // Unknown request recieved from client.
+    ELocPrivSrvPanicUnknownActivity = 0
+    };
+
+#endif      // LOCPRIVACYSERVERDEBUGPANIC_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserversession.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,109 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Server session class definition.
+*
+*/
+
+
+#ifndef CLOCPRIVACYSERVERSESSION_H
+#define CLOCPRIVACYSERVERSESSION_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <lbs/epos_cposrequestor.h>
+
+// FORWARD DECLARATIONS
+class CPosPrivacyServer;
+//class CPosPrivManager;
+class RPosRequestorStack;
+
+// CLASS DECLARATION
+
+/**
+ *  The EPos privacy server session class.
+ *
+ */
+class CLocPrivacyServerSession : public CSession2
+    {
+    public:  // Constructors and destructor
+
+        /**
+         * Two-phased constructor.
+         * @param aServer Reference to the server Active Object
+         * @return Pointer to a new instance of CPosPrivacyServerSession
+         */
+        static CLocPrivacyServerSession* NewL(
+        /* IN  */   CLocPrivacyServer&  aServer
+        );
+
+        /**
+         * C++ destructor
+         */
+        ~CLocPrivacyServerSession();
+
+    private: // Private Constructing
+
+        /**
+         * C++ private constructor
+         */
+        CLocPrivacyServerSession();
+
+        /**
+         * EPOC default constructor.
+         * @param aServer Reference to the server Active Object
+         */
+        void ConstructL(
+        /* IN   */  CLocPrivacyServer& aServer
+        );
+
+    public:    // Functions from base classes
+
+        /**
+        * From CSession2.
+        * This function services all requests from clients.
+        *
+        * @param aMessage the message that should be serviced
+        */
+        void ServiceL(
+        /* IN  */   const RMessage2& aMessage
+        );
+
+    private: // New functions
+
+        /**
+        * Closes the session.
+        */
+        void CloseSession();
+
+        // Contains the actual ServiceL code.
+        //
+        void DispatchL(const RMessage2& aMessage);
+
+      
+            
+    private:
+
+        // By default, prohibit copy constructor
+        CLocPrivacyServerSession( const CLocPrivacyServerSession& );
+        // Prohibit assigment operator
+        CLocPrivacyServerSession& operator= ( const CLocPrivacyServerSession& );
+
+    private:    // Data
+        // Buffer for hoding resolved requestors
+        CBufFlat* iBufFlat;
+      };
+
+#endif      // CLOCPRIVACYSERVERSESSION_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserverstartup.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 for server startup .
+*
+*/
+
+#ifndef LOCPRIVACYSERVERSTARTUP_H
+#define LOCPRIVACYSERVERSTARTUP_H
+
+//  INCLUDES
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+/**
+*  This class contains static functions which handles server startup.
+*/
+class LocPrivacyServerStartup
+    {
+
+    public: // New functions
+
+        /**
+        * Server thread entry point
+        *
+        * @return error code
+        */
+        static TInt StartServer();
+
+    private: // New functions
+
+        static void StartServerL();
+
+    };
+
+#endif      // LOCPRIVACYSERVERSTARTUP_H
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/src/locprivacyserver.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  server class implementation.
+*
+*/
+
+// INCLUDE FILES
+
+#include "locprivacyserver.h"
+#include "locprivacycommon.h"
+#include "locprivacyserversession.h"
+#include "locprivacyserverdebugpanic.h"
+
+
+// CONSTANTS
+
+// ================= MEMBER FUNCTIONS =======================
+
+// C++ default constructor can NOT contain any code, that
+// might leave.
+//
+CLocPrivacyServer::CLocPrivacyServer(TInt aPriority)
+    : CServer2(aPriority),
+    iNumSessions(0)
+    {
+    // This does not do anything.
+    __DECLARE_NAME(_S("CLocPrivacyServer"));
+    }
+
+// EPOC default constructor can leave.
+void CLocPrivacyServer::ConstructL()
+    {
+    User::LeaveIfError(Start(KLocPrivacyServerName));
+    }
+
+// Two-phased constructor
+CLocPrivacyServer* CLocPrivacyServer::NewL()
+    {
+    CLocPrivacyServer* self = new (ELeave) CLocPrivacyServer(EPriority);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// Destructor
+CLocPrivacyServer::~CLocPrivacyServer()
+    {
+    }
+
+// ---------------------------------------------------------
+// CLocPrivacyServer::IncrementSessions
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CLocPrivacyServer::IncrementSessions()
+    {
+    iNumSessions++;
+    }
+
+// ---------------------------------------------------------
+// CLocPrivacyServer::DecrementSessions
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CLocPrivacyServer::DecrementSessions(
+    CLocPrivacyServerSession* /*aSession*/)
+    {
+    iNumSessions--;
+    if (iNumSessions == 0)
+        {
+         // Shutdown the server by shutting down the active scheduler.
+        CActiveScheduler::Stop();
+        }
+    }
+
+// ---------------------------------------------------------
+// CLocPrivacyServer::NewSessionL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+CSession2* CLocPrivacyServer::NewSessionL(
+    const TVersion& /*aVersion*/,
+    const RMessage2& /*aMessage*/) const
+    {
+    
+    // Make new session
+    CLocPrivacyServerSession* newSession = CLocPrivacyServerSession::NewL(
+            const_cast<CLocPrivacyServer&>(*this));
+
+    return newSession;
+    }
+
+// ---------------------------------------------------------
+// CLocPrivacyServer::RunError
+// This method is called by the active scheduler whenever an
+// untrapped leave occurs in the server active object.
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CLocPrivacyServer::RunError(TInt aError)
+    {
+    Message().Complete(aError);
+    ReStart();
+    return KErrNone;
+    }
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/src/locprivacyserversession.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,176 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Server session class implementation.
+*
+*/
+
+// INCLUDE FILES
+#include <s32mem.h>
+#include <lbs/EPos_RPosRequestorStack.h>
+#include "locprivacyinternal.h" 
+#include "locprivacyserver.h"
+#include "locprivacyserversession.h"
+#include "locprivacyserverdebugpanic.h"
+#include "locrequestorutilsresolver.h"
+// CONSTANTS
+
+// ================= MEMBER FUNCTIONS =======================
+
+// Two-phased constructor
+CLocPrivacyServerSession* CLocPrivacyServerSession::NewL(
+        CLocPrivacyServer& aServer)
+    {
+    CLocPrivacyServerSession* self = new (ELeave) CLocPrivacyServerSession();
+    CleanupStack::PushL(self);
+    self->ConstructL(aServer);
+    CleanupStack::Pop();
+    return self;
+    }
+
+// Destructor
+CLocPrivacyServerSession::~CLocPrivacyServerSession()
+    {
+    CloseSession();
+    delete iBufFlat;
+    iBufFlat = NULL;
+    }
+
+// C++ default constructor can NOT contain any code, that
+// might leave.
+//
+CLocPrivacyServerSession::CLocPrivacyServerSession() :
+    CSession2(), iBufFlat(NULL)
+    {
+    // Doesn't really do anything according to the header file (e32def.h,
+    // lines 139 and 184) and the documentation doesn't mention it.
+    __DECLARE_NAME(_S("CLocPrivacyServerSession"));
+    }
+
+// EPOC default constructor
+void CLocPrivacyServerSession::ConstructL(CLocPrivacyServer& aServer)
+    {
+    aServer.IncrementSessions();
+    iBufFlat = CBufFlat::NewL(KPosBufFlatExpandSize);
+    }
+
+// ---------------------------------------------------------
+// CLocPrivacyServerSession::ServiceL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CLocPrivacyServerSession::ServiceL(const RMessage2& aMessage)
+    {
+    TRAPD(err, DispatchL(aMessage));
+
+    aMessage.Complete(err);
+
+    }
+
+// ---------------------------------------------------------
+// CLocPrivacyServerSession::CloseSession
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CLocPrivacyServerSession::CloseSession()
+    {
+    CLocPrivacyServer
+            * server =
+                    static_cast<CLocPrivacyServer*> (const_cast<CServer2*> (Server()));
+    server->DecrementSessions(this);
+    }
+
+// ---------------------------------------------------------
+// CLocPrivacyServerSession::DispatchL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CLocPrivacyServerSession::DispatchL(const RMessage2& aMessage)
+    {
+    switch ( aMessage.Function() )
+        {
+        case ELocPrivacyGetSize:
+            
+           {
+           TInt desLength=0;
+           desLength = aMessage.GetDesLength( 1 );          
+
+           CBufFlat* bufFlat1 = CBufFlat::NewL(desLength);
+           CleanupStack::PushL(bufFlat1);
+           bufFlat1->ResizeL(desLength);
+           
+           TPtr8 ptr(bufFlat1->Ptr(0));
+           // Copy content to local buffer
+           aMessage.ReadL(1, ptr);
+
+           RBufReadStream readStream(*bufFlat1);
+           CleanupClosePushL(readStream);
+           
+           RPosRequestorStack* requestors1 = new (ELeave) RPosRequestorStack;
+           CleanupStack::PushL(requestors1);
+            requestors1->InternalizeL(readStream);
+
+            CLocRequestorUtilsResolver* res =
+                    CLocRequestorUtilsResolver::NewL();
+            CleanupStack::PushL(res);
+
+            res->ResolveRequestorsL(*requestors1);
+
+               
+           // use data member buffer and externalize 
+
+            RBufWriteStream writeStream;
+            // Reset the buffer
+            iBufFlat->Reset();
+            writeStream.Open(*iBufFlat);
+            CleanupClosePushL(writeStream);
+
+            requestors1->ExternalizeL(writeStream);
+            writeStream.CommitL();
+
+            // Find the new size
+
+            TInt newsize  = iBufFlat->Size();
+
+            CleanupStack::PopAndDestroy(&writeStream);
+            CleanupStack::PopAndDestroy(res);
+            CleanupStack::PopAndDestroy(requestors1);
+            CleanupStack::PopAndDestroy(&readStream);
+            CleanupStack::PopAndDestroy(bufFlat1);
+
+            // write back new size
+            TPtr8 ptr1(reinterpret_cast<TUint8*> (&newsize),
+                    sizeof(newsize), sizeof(newsize));
+                  
+            aMessage.WriteL(0, ptr1);
+         	}     
+            break;
+
+        case ELocPrivacyResolve:
+            {
+            TPtr8 ptr2 = iBufFlat->Ptr(0);
+            aMessage.WriteL(0, ptr2);
+        	}
+            break;
+            
+        default:
+            aMessage.Panic(KLocPrivSrvDebugPanicCategory,
+                    ELocPrivSrvPanicUnknownActivity);
+            break;
+        }
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/src/locprivacyserverstartup.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,90 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 for server startup .
+*
+*/
+
+// INCLUDE FILES
+#include "locprivacyserverstartup.h"
+#include "locprivacyserver.h"
+#include "locprivacycommon.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// LocPrivacyServerStartup::StartServer
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt LocPrivacyServerStartup::StartServer()
+    {
+    __UHEAP_MARK;
+
+    CTrapCleanup* cleanupStack = CTrapCleanup::New();
+
+    TInt ret = KErrNoMemory;
+
+    if (cleanupStack)
+        {
+        TRAP(ret, StartServerL());
+        delete cleanupStack;
+        }
+
+    __UHEAP_MARKEND;
+
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// LocPrivacyServerStartup::StartServerL
+//
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void LocPrivacyServerStartup::StartServerL()
+    {
+    // Rename thread to aid debugging
+    User::LeaveIfError(User::RenameThread(KLocPrivacyServerName));
+
+    // start scheduler and server
+    CActiveScheduler* scheduler = new(ELeave) CActiveScheduler;
+    CleanupStack::PushL(scheduler);
+    CActiveScheduler::Install(scheduler);
+
+    CLocPrivacyServer* server = CLocPrivacyServer::NewL();
+    CleanupStack::PushL(server);
+
+    CleanupStack::Pop(2, scheduler); // server
+
+    RProcess::Rendezvous(KErrNone);
+
+    CActiveScheduler::Start();
+
+    delete server;
+    delete scheduler;
+    }
+
+// -----------------------------------------------------------------------------
+// E32Main
+// Server process entry-point
+// Recover the startup parameters and run the server
+// -----------------------------------------------------------------------------
+//
+TInt E32Main()
+    {
+    return LocPrivacyServerStartup::StartServer();
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locutils/bwins/locutils_32u.def	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?Debug@@YAXV?$TRefByValue@$$CBVTDesC16@@@@ZZ @ 1 NONAME ; void Debug(class TRefByValue<class TDesC16 const >, ...)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locutils/eabi/locutils_32u.def	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z5Debug11TRefByValueIK7TDesC16Ez @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locutils/group/locutils.mmp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 definition file for Location Utils
+*
+*/
+
+
+// INCLUDES
+#include "../inc/locutilsuid.hrh"
+
+#include <data_caging_paths.hrh>
+#include <bldvariant.hrh>
+#include <platform_paths.hrh> // For the MW_LAYER_SYSTEMINCLUDE
+
+TARGET  			locutils.dll
+TARGETTYPE  		dll
+UID  				0x0 0x101F84FB
+
+VENDORID	 		VID_DEFAULT
+CAPABILITY 			CAP_GENERAL_DLL
+
+SOURCEPATH 			../src
+
+#ifdef LOC_ENABLE_DEBUG_PRINT
+SOURCE              locutilsdebug.cpp
+#else
+SOURCE              locutilsdebugdummy.cpp
+#endif
+
+// System Include
+MW_LAYER_SYSTEMINCLUDE
+
+USERINCLUDE 		.
+USERINCLUDE			../inc
+
+LIBRARY 			euser.lib 
+LIBRARY 			bafl.lib
+LIBRARY 			efsrv.lib
+LIBRARY 			sysutil.lib
+LIBRARY 			eposprvtyp.lib
+
+#ifdef LOC_ENABLE_DEBUG_PRINT
+LIBRARY 			flogger.lib
+#endif
+
+LIBRARY             CenRepNotifHandler.lib
+LIBRARY             CentralRepository.lib
+
+#if defined(WINS)
+deffile   ../bwins/locutils_32.def
+#elif defined(EABI)
+deffile   ../eabi/locutils_32.def
+#endif 
+
+// End of file
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locutils/inc/locutilsdebug.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  LocUtilsDebug contains debug macros.
+*
+*/
+
+
+#ifndef LOCUTILSDEBUG_H
+#define LOCUTILSDEBUG_H
+
+// INCLUDES
+#include "locutilsdebugconfig.hrh"
+
+#include <e32std.h>
+
+
+// MACROS
+#define DEBUG(TEXT) 				 { \
+									  _LIT( KText, #TEXT ); \
+									   Debug(KText) \
+									 }
+									 
+#define LOC(TEXT, ARG1) 			 { \
+									   _LIT( KText, #TEXT ); \
+									   Debug( KText, (ARG1) ); \
+									 }
+									 
+#define LOC2(TEXT, ARG1, ARG2) 		 { \
+									   _LIT( KText, #TEXT ); \
+									   Debug( KText,(ARG1), (ARG2) ); \
+									 }
+									 
+#define LOC3(TEXT, ARG1, ARG2, ARG3) { \
+									   _LIT( KText, #TEXT ); \
+									   Debug( KText, (ARG1), (ARG2), (ARG3) ); \
+									 }
+
+IMPORT_C void Debug( TRefByValue<const TDesC> aText, ...);
+
+/**
+* By using component specific debug macros unnecessary 
+* debug prints can be avoided. 
+* Also component specific debugging is possible by compiling 
+* only certain components when LOC_ENABLE_DEBUG_PRINT is defined.
+*/
+
+#ifdef LOC_ENABLE_DEBUG_PRINT
+
+#define LOCUTILSDEBUG(TEXT)                     DEBUG(TEXT);
+#define LOCUTILSDEBUG1(TEXT, ARG1)              LOC(TEXT, ARG1);
+#define LOCUTILSDEBUG2(TEXT, ARG1, ARG2)        LOC2(TEXT, ARG1, ARG2);
+#define LOCUTILSDEBUG3(TEXT, ARG1, ARG2, ARG3)  LOC3(TEXT, ARG1, ARG2, ARG3);
+
+#else
+
+#define LOCUTILSDEBUG(TEXT)                     ;
+#define LOCUTILSDEBUG1(TEXT, ARG1)              ;
+#define LOCUTILSDEBUG2(TEXT, ARG1, ARG2)        ;
+#define LOCUTILSDEBUG3(TEXT, ARG1, ARG2, ARG3)  ;
+
+#endif
+
+#endif // LOCUTILSDEBUG_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locutils/inc/locutilsdebugconfig.hrh	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 main build-time configuration file of Loc Utils
+*
+*/
+
+
+#ifndef LOCUTILSDEBUGCONFIG_HRH_
+#define LOCUTILSDEBUGCONFIG_HRH_
+
+//  INCLUDES
+
+// Flags for development:
+
+
+// Defined LOC_ENABLE_DEBUG_PRINT flag enables debug prints to a file.
+
+//#define LOC_ENABLE_DEBUG_PRINT
+
+#endif // LOCUTILSDEBUGCONFIG_HRH_
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locutils/inc/locutilsuid.hrh	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 header for Location Utils UIDs.
+*
+*/
+
+
+#ifndef LOCUTILSUID_H_
+#define LOCUTILSUID_H_
+
+//  MACROS  
+
+/// Location utility component UID3
+#define LOCUTILS_UID3 0x101F84FB
+
+#endif // LOCUTILSUID_H_
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locutils/src/locutilsdebug.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,86 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 debugging functions
+*
+*/
+
+
+
+// INCLUDE FILES
+#include "locutilsdebug.h"
+#include <flogger.h>
+#include <e32svr.h>
+// CONSTANTS
+
+/// Folder where the log resides
+_LIT( KLocLogFolder, "Verifier" );
+
+/// The name of the log file
+_LIT( KLocLogFileName, "LocVerifier" );
+
+/// The format in which the time is formatted in log
+_LIT( KLocLogTimeFormat, "%02d.%02d:%02d:%06d ");
+
+/// The length of the string produced by KLocLogTimeFormat
+const TInt KLocLogTimeFormatLength = 16;
+
+/// How many characters a log line can contain
+const TInt KLocLogLineLength = 256;
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+
+// -----------------------------------------------------------------------------
+// Debug
+// Generates a log file if c:\logs\locationsysui\ folder exists
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void Debug( TRefByValue<const TDesC> aText, ... )
+    {    
+    VA_LIST args;
+    VA_START( args, aText );
+    
+    TBuf<KLocLogLineLength> buf;
+    buf.FormatList( aText, args );
+
+    #ifdef _DEBUG
+    RDebug::Print(buf);
+    #endif
+
+    RFileLogger logger;
+    
+    TInt ret=logger.Connect();
+    if (ret==KErrNone)
+        {
+        logger.SetDateAndTime( EFalse,EFalse );
+        logger.CreateLog( KLocLogFolder, KLocLogFileName, EFileLoggingModeAppend );       
+        TBuf<KLocLogTimeFormatLength> timeStamp;
+        TTime now;
+        now.HomeTime();
+        TDateTime dateTime;
+        dateTime = now.DateTime();
+        timeStamp.Format( KLocLogTimeFormat, 
+            dateTime.Hour(), dateTime.Minute(),
+            dateTime.Second(), dateTime.MicroSecond() );
+        buf.Insert( 0, timeStamp );
+
+        logger.Write(buf);
+        }
+
+    logger.Close();
+
+    VA_END( args );
+    }
+
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locutils/src/locutilsdebugdummy.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 dummy implementation for debugging function
+*
+*/
+
+
+#include "locutilsdebug.h"
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// Debug
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void Debug( TRefByValue<const TDesC> /*aText*/, ... )
+  {
+  }
+
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/group/locverifierdlg.mmp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,73 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 definition file for Location Verification Dialog
+*
+*/
+
+
+// INCLUDES
+#include "../inc/locverifieruid.h"
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh> 
+
+TARGET          locverifierdlg.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D  KLocVerifierDlgUID3
+
+CAPABILITY 		CAP_ECOM_PLUGIN
+
+VENDORID		VID_DEFAULT
+
+SOURCEPATH      ../src
+SOURCE			lpdverifierplugin.cpp
+SOURCE			lpdrequestao.cpp
+SOURCE			lpdrequestorprocessor.cpp
+SOURCE			lpdverifierquerylauncher.cpp
+SOURCE			lpdnotifierquerylauncher.cpp
+SOURCE			lpdglobalplugindialog.cpp
+SOURCE			lpdquerylauncherbase.cpp
+SOURCE			lpddllmain.cpp
+
+
+// System Include
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE       \epoc32\include\mw\hb\hbcore
+SYSTEMINCLUDE       \epoc32\include\mw\hb\hbwidgets
+
+USERINCLUDE     .
+USERINCLUDE		../inc
+USERINCLUDE		../../inc
+USERINCLUDE		../../locnotificationengine/inc
+
+SOURCEPATH      ../rss
+START RESOURCE  101f84fc.rss
+TARGET          locverifierdlg.rsc
+END
+
+// EPos:
+LIBRARY			eposprvqnif.lib
+// Location:
+LIBRARY			locnotificationengine.lib
+// Symbian & Hb:
+LIBRARY         euser.lib
+LIBRARY			eiksrv.lib 
+LIBRARY         eposprvtyp.lib
+LIBRARY         estor.lib bafl.lib
+LIBRARY         flogger.lib
+LIBRARY			HbCore.lib
+LIBRARY         HbWidgets.lib
+LIBRARY			QtCore.lib
+LIBRARY         locnotificationclient.lib
+LIBRARY			systemtoneservice.lib
+LIBRARY			locutils.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/locverifierdlgdebug.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  LocVerifierDlgDebug contains debug macros.
+*
+*/
+
+
+#ifndef LOCVERIFIERDLGDEBUG_H 
+#define LOCVERIFIERDLGDEBUG_H
+
+// INCLUDES
+#include "locutilsdebug.h"
+#include <e32std.h>
+
+
+// MACROS
+
+/**
+* By using component specific debug macros unnecessary 
+* debug prints can be avoided. 
+* Also component specific debugging is possible by compiling 
+* only certain components when LOC_ENABLE_DEBUG_PRINT is defined.
+*/
+
+#ifdef LOC_ENABLE_DEBUG_PRINT
+#define LOCVERIFIERDLGDEBUG(TEXT) DEBUG(TEXT);
+#define LOCVERIFIERDLGDEBUG1(TEXT, ARG1) LOC(TEXT, ARG1);
+#define LOCVERIFIERDLGDEBUG2(TEXT, ARG1, ARG2) LOC2(TEXT, ARG1, ARG2);
+#define LOCVERIFIERDLGDEBUG3(TEXT, ARG1, ARG2, ARG3) LOC3(TEXT, ARG1, ARG2, ARG3);
+#else
+#define LOCVERIFIERDLGDEBUG(TEXT);
+#define LOCVERIFIERDLGDEBUG1(TEXT, ARG1);
+#define LOCVERIFIERDLGDEBUG2(TEXT, ARG1, ARG2);
+#define LOCVERIFIERDLGDEBUG3(TEXT, ARG1, ARG2, ARG3);
+#endif
+
+#endif /* LOCVERIFIERDLGDEBUG_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/locverifieruid.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 header for Location application UIDs.
+*
+*/
+
+
+#ifndef LOCVERIFIERUID_H
+#define LOCVERIFIERUID_H
+
+/// Location verifier dialog UID3
+#define KLocVerifierDlgUID3	0x101f84fc
+
+#define KNotifierUID2 0x101fdfae
+
+#endif // LOCVERIFIERUID_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpddlgobserver.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Callback interface class.
+*
+*/
+
+
+#ifndef MLPDDLGOBSERVER_H
+#define MLPDDLGOBSERVER_H
+
+// INCLUDES
+#include <e32base.h>
+
+
+// CLASS DECLARATION
+
+/**
+*  Callback interface class.
+*  Implementor of this class gives a reference to itself when
+*  creating a global query dialog. A callback method is then
+*  called when the query is dismissed.
+*
+*  @lib locverifierdlg.lib
+*  @since 2.1
+*/
+class MLpdDlgObserver
+    {
+    public:
+
+        /**
+        * Pure virtual callback method.
+        * @param aResult code of the query
+        */
+        virtual void HandleDlgDismissedL( TInt aResult) = 0;
+    };
+
+#endif  // MLPDDLGOBSERVER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdglobalplugindialog.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,126 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 query dialog suitable for verifier plug-in use.
+*
+*/
+
+
+#ifndef CLPDGLOBALPLUGINDIALOG_H
+#define CLPDGLOBALPLUGINDIALOG_H
+
+// INCLUDES
+#include <hbdevicemessageboxsymbian.h>
+#include <hbdevicenotificationdialogsymbian.h>
+#include <hbdevicedialogsymbian.h>
+
+
+const TInt KReqBufferSize = 256;
+// FORWARD DECLARATIONS
+class MLpdDlgObserver;
+class CLpdRequestorProcessor;
+class CHbDeviceDialog;
+// CLASS DECLARATION
+
+/**
+*  A list query dialog suitable for verifier plug-in use.
+*  utilizes MLpdDlgObserver
+*  for notifying when dialog is dismissed.
+*
+*  @lib locverifierdlg.lib
+*  @since 2.1
+*/
+class CLpdGlobalPluginDialog : public CBase,
+                               public  MHbDeviceDialogObserver ,
+                               public  MHbDeviceNotificationDialogObserver 
+
+	{
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        * @param aCallBack is notified when dialog is dismissed
+        * @return created object
+        */
+        static CLpdGlobalPluginDialog* NewL(
+                    MLpdDlgObserver& aCallBack);
+
+		
+        /**
+        * C++ destructor.
+        */
+        virtual ~CLpdGlobalPluginDialog();
+
+    public: // Functions from base classes
+
+      
+        void RunVerificationQueryL();
+        
+        void RunNotificationL();
+        
+                        
+        void SetRequestInfoL( CLpdRequestorProcessor* aRequestInfo );
+              
+        
+        void Cancel();
+        
+        void DataReceived(CHbSymbianVariantMap& aData);
+
+        void DeviceDialogClosed(TInt aCompletionCode);
+        
+        void AddVerDlgHeadingParamL();
+        
+        void AddQueryTextParamL();
+        
+        void AddRequestorsParamL();
+        
+           
+        
+    public:
+        void  NotificationDialogActivated (const CHbDeviceNotificationDialogSymbian *aDialog);
+        
+        void  NotificationDialogClosed (const CHbDeviceNotificationDialogSymbian *aDialog, TInt aCompletionCode);
+
+
+          
+    private:  // Constructors and destructor
+
+        /**
+        * Symbian 2nd Phase Constructor.
+        */
+		void ConstructL();
+
+        /**
+        * C++ constructor.
+        * @param aCallBack is notified when dialog is dismissed
+        */
+        CLpdGlobalPluginDialog(
+                    MLpdDlgObserver& aCallBack);
+
+    private:    // Data
+
+        // Object which is notified when query is dismissed
+        MLpdDlgObserver& iCallBack;
+        CHbDeviceDialogSymbian* iMsgBox;
+        CHbDeviceNotificationDialogSymbian* iNotification;
+        CLpdRequestorProcessor* iRequestInfo;
+        CHbSymbianVariantMap* mSymbianVariantMap;
+        TBool mDissmissed;
+        TBool isCancelled;
+
+        
+	};
+
+#endif      // CLPDGLOBALPLUGINDIALOG_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdnotifierquerylauncher.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,82 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 which handles the dialog and expiration timer.
+*
+*/
+
+
+#ifndef CLPDNOTIFIERQUERYLAUNCHER_H
+#define CLPDNOTIFIERQUERYLAUNCHER_H
+
+//  INCLUDES
+#include "lpdquerylauncherbase.h"
+#include <e32base.h>
+#include <lbs/epos_privacy.h>
+
+// FORWARD DECLARATIONS
+
+
+// CLASS DECLARATION
+
+/**
+*  Implements functionality for executing notifications.
+*
+*  @lib locverifierdlg.lib
+*  @since 2.1
+*/
+class CLpdNotifierQueryLauncher :
+public CLpdQueryLauncherBase
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        * @param aHandler of ther query result
+        * @return created object
+        */
+        static CLpdNotifierQueryLauncher* NewL( MLpdResultHandler& aHandler );
+        
+        /**
+        * Destructor. Call Cancel() first if you have launched a query.
+        */
+        virtual ~CLpdNotifierQueryLauncher();
+
+           
+    protected: // Functions from base classes
+
+        /**
+        * From CLpdQueryLauncherBase, called when dialog is dismissed.
+        */
+        void ExtendedHandleDlgDismissedL();
+        
+        void RequestType(TRequestType& aRequestType);
+
+    private: // Constructors and destructors
+
+        /**
+        * C++ constructor.
+        * @param aHandler of the query result
+        */
+        CLpdNotifierQueryLauncher( MLpdResultHandler& aHandler );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+    
+    };
+
+#endif      // CLPDNOTIFIERQUERYLAUNCHER_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdquerylauncherbase.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,144 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 base class for queries.
+*
+*/
+
+
+#ifndef CLPDQUERYLAUNCHERBASE_H
+#define CLPDQUERYLAUNCHERBASE_H
+
+//  INCLUDES
+#include "lpddlgobserver.h"
+
+#include <e32base.h>
+#include <badesca.h>
+#include <coemain.h>
+
+#include <epos_cposprivacynotifier.h>
+
+
+// SYSTEM INCLUDE
+
+
+// FORWARD DECLARATIONS
+class CLpdGlobalPluginDialog;
+class CLpdMessagePluginDialog;
+class MLpdResultHandler;
+class CLpdRequestorProcessor;
+
+    
+// CLASS DECLARATION
+
+/**
+*  Base class which handles the dialog and expiration timer.
+*  Expiration timer can be used to ensure that if the user doesn't handle
+*  a dialog in certain time the dialog is closed. NOTE: In current
+*  implementation the timer is not started, i.e. dialogs never expire.
+*  Implementations of this class should notify a result handler
+*  when dialog result is available. This base class takes care of
+*  notifying possible timeout with KErrTimedOut.
+*
+*  @lib locverifierdlg.lib
+*  @since 2.1
+*/
+class CLpdQueryLauncherBase : public CBase, public MLpdDlgObserver
+    {
+    
+protected:
+        enum TRequestType
+               {
+               EVerification = 0,
+               ENotification,
+               EUnknown
+               };
+ 
+   
+    public:  // Constructors and destructor
+                
+        /**
+        * Destructor. Exits possibly running dialog without callback.
+        */
+        virtual ~CLpdQueryLauncherBase();
+        
+        
+    public: // New functions, query setup and launching
+
+       /**
+        * Method for setting text array.
+        * 
+        */
+        void SetRequestInfoL( CLpdRequestorProcessor* aRequestInfo );
+
+       
+        /**
+        * Method for launching query, note that it must have been
+        * correctly prepared first.
+        */
+        void StartQueryL();
+
+              
+        virtual void RequestType(TRequestType& aRequestType);
+
+   
+    public: // Functions from base classes
+
+        /**
+        * From MLpdDlgObserver, called when dialog is dismissed.
+        * This method calls also pure virtual method
+        * ExtendedHandleDlgDismissedL().
+        * @param aResult code of the query
+        */
+        void HandleDlgDismissedL( TInt aResult);
+
+    public: 
+         void Cancel();
+    protected: // Constructors and destructors
+
+        /**
+        * C++ constructor.
+        * @param aHandler of the query result
+        */
+        CLpdQueryLauncherBase( MLpdResultHandler& aHandler );
+        
+        void ConstructL();
+      
+    protected: // New functions
+
+        /**
+        * This pure virtual method must be implemented
+        * by the derived class to handle the result code
+        * appropriately and to notify the observer of this
+        * class.
+        */
+        virtual void ExtendedHandleDlgDismissedL() = 0;
+
+   
+    protected: // Data
+
+        // Reference to the result handler
+        MLpdResultHandler& iHandler;
+
+        // Result code from the dialog
+        TInt iResult;
+
+        // Pointer to the list query dialog
+        CLpdGlobalPluginDialog* iQueryDlg; // owns untils RunLD() called
+            
+        
+    };
+
+#endif      // CLPDQUERYLAUNCHERBASE_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdrequestao.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Active object which ensures that current call stack is run to
+*                completion before a new request is handled
+*
+*/
+
+
+#ifndef CLPDREQUESTAO_H
+#define CLPDREQUESTAO_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <lbs/epos_privacy.h>
+
+
+// FORWARD DECLARATIONS
+class CLpdVerifierPlugin;
+
+// CLASS DECLARATION
+
+/**
+*  Active object used by the verifier plugin. 
+*  Ensures that current call stack is run to completion before a 
+*  new request is handled. Otherwise access violations might occur.
+*
+*  @lib locverifierdlg.lib
+*  @since 2.1
+*/
+class CLpdRequestAO : public CActive
+    {    
+	public: // Constructors and destructors        
+
+        /**
+        * Two-phased constructor.
+        * @param aPlugin reference to the owner of this object
+        * @return created object
+        */
+	    static CLpdRequestAO* NewL( CLpdVerifierPlugin& aPlugin );        
+
+        /**
+        * Destructor.
+        */
+	    virtual ~CLpdRequestAO();
+
+    public: // New functions
+
+        /**
+        * Issues a request and completes it immediatelly, so that it
+        * will be handled as soon as previous request is run to completion.
+        */
+        void ScheduleRequest();
+
+       		
+    private:
+
+	    /**
+        * Private C++ default constructor.
+        * @param aPlugin reference to the owner of this object
+        */
+		CLpdRequestAO( CLpdVerifierPlugin& aPlugin ); 	    
+
+    private: // Functions from base classes
+        
+        /**
+        * From CActive.
+        */
+        void RunL();
+        
+        /**
+        * From CActive.
+        */
+        void DoCancel();
+    	
+    private: // Data
+
+        // Verifier plugin
+        CLpdVerifierPlugin& iPlugin; // doesn't own     
+
+		
+};
+
+#endif      // CLPDREQUESTAO_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdrequestorprocessor.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Processes requestor related data.
+*
+*/
+
+
+#ifndef CLPDREQUESTORPROCESSOR_H
+#define CLPDREQUESTORPROCESSOR_H
+
+//  INCLUDES
+#include "locrequestorutilsresolver.h"
+#include <e32base.h>
+#include <lbs/epos_rposrequestorstack.h>
+#include <lbs/epos_cposrequestor.h>
+#include <lbs/epos_privacy.h>
+// FORWARD DECLARATIONS
+class CPosPrivacyNotifier;
+
+
+// CLASS DECLARATION
+
+/**
+*  This class reads, processes and owns requestor data.
+*  @lib locverifierdlg.dll
+*  @since 2.1
+*/
+class CLpdRequestorProcessor : public CBase
+    {
+    public:  // Constructors and destructor
+        
+        enum TDialogType
+            {
+            /** Query dialog requested. */
+            EQuery = 0,
+            /** Notification dialog requested. */
+            ENotification
+            };
+ 
+    
+    
+       /**
+        * Two-phased constructor.
+        * @return created object
+        */
+        static CLpdRequestorProcessor* NewL();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CLpdRequestorProcessor();
+
+    public: // New functions
+
+        /**
+        * Reads requestor information from the privacy notifier.
+        * Uses RequestorIdValid() for id validity check.
+        * Calls UpdateRuleRequestorsL().
+        * @param aPosNotifier reference
+        * @return ETrue if all requestor id's were valid, EFalse otherwise.
+        */
+        TBool ReadRequestorsL( const CPosPrivacyNotifier& aPosNotifier );
+
+        /**
+        * Returns requestor array for reading.
+        * @return array of requestors
+        */
+        const RPointerArray<CPosRequestor>& Requestors() const;
+        
+        /**
+         * Resets requestor arrays and destroys requestor objects.
+         */
+         void ResetAndDestroyRequestors();
+       
+             		
+    protected: // Constructors and destructors
+
+        /**
+        * C++ constructor.
+        */
+        CLpdRequestorProcessor();
+
+    protected: // New methods
+
+        /**
+        * Handles assert errors. Panics in debug build but leaves in release
+        * build, as this component runs in EikSrv and must never panic.
+        */
+        void HandleAssertErrorL() const;
+
+    private:
+        TBool RequestorIdValid(
+            const CPosRequestor& aRequestor );
+   
+    public:
+        RPointerArray<CPosRequestor> iRequestors;
+        CPosRequestor::TRequestType  iRequestType;
+        TPosRequestDecision          iRequestDecision;
+        TDialogType                  iDialogType; 
+        TPosNotificationReason       iNotifReason; 
+        
+    };
+
+#endif      // CLPDREQUESTORPROCESSOR_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdresulthandler.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Callback interface class.
+*
+*/
+
+
+#ifndef MLPDRESULTHANDLER_H
+#define MLPDRESULTHANDLER_H
+
+// INCLUDES
+#include <e32def.h>
+
+// FORWARD DECLARATIONS
+class CLpdQueryLauncherBase;
+
+
+// CLASS DECLARATION
+
+/**
+*  Observer pattern for handling dialog result. Used by several
+*  classes deriving from CLpdQueryLauncherBase.
+*
+*  @lib locverifierdlg.lib
+*  @since 2.1
+*/
+class MLpdResultHandler
+    {
+    public: // New functions
+
+        /**
+        * Pure virtual observer method.
+        * @param aResultCode
+        */        
+        virtual void HandleVerificationResultL( TInt aResultCode ) = 0;
+
+        /**
+        * Pure virtual observer method.
+        * @param aResultCode
+        */        
+        virtual void HandleNotificationResultL( TInt aResultCode ) = 0;
+
+        /**
+        * Pure virtual observer method. Called if leave occurred in other
+        * callback methods. Used because it is not acceptable to propagate
+        * leave to AVKON dialog, plugin must clean up and continue with
+        * handling of request queue.
+        * @param aError code
+        */        
+        virtual void HandleLeave( TInt aError ) = 0;
+    };
+
+#endif      // MLPDRESULTHANDLER_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdverifierplugin.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,224 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Verifier plug-in which derives from CPosPrivacyNotifier.
+*
+*/
+
+
+// INCLUDES
+
+#ifndef CLPDVERIFIERDLG_H
+#define CLPDVERIFIERDLG_H
+
+#include "lpdrequestao.h"
+#include "lpdresulthandler.h"
+
+#include <epos_cposprivacynotifier.h>
+#include <lbs/epos_privacy.h>
+#include <lbs/epos_cposrequestor.h>
+// SYSTEM INCLUDE
+#include <bldvariant.hrh>               // For the 3.2 Flag
+
+
+// FORWARD DECLARATIONS
+class CLpdVerifierQueryLauncher;
+class CLpdNotifierQueryLauncher;
+class CLpdRequestorProcessor;
+class CLocRequestorUtilsResolver;
+
+
+// CLASS DECLARATION
+
+/**
+*  Verifier plug-in which derives from CPosPrivacyNotifier.
+*  Notifiers are based on RNotifier framework, and this particular
+*  notifier is used to launch a privacy query for accepting/rejecting
+*  privacy requests. It also shows informational notes and error
+*  messages, which are received as notification.
+*
+*  @lib locverifierdlg.lib
+*  @since 2.1
+*/
+class CLpdVerifierPlugin : public CPosPrivacyNotifier, public MLpdResultHandler
+    {
+    // To allow calls to HandleNextRequest() from active object
+    friend class CLpdRequestAO;
+    
+    private:
+
+        
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        * @return created object
+        */
+        static CLpdVerifierPlugin* NewL();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CLpdVerifierPlugin();
+
+	   /**
+        * Method for cancelling query or freeing
+        * resources after finishing query.
+        */
+        void FreeQueryResources();
+
+    public: // Functions from base classes
+
+        /**
+        * From CPosPrivacyNotifier, called when a new request arrives.
+        * @param aRequestId identifier of received request
+        */
+        void HandleNewRequestL( TPosQNRequestId aRequestId );
+
+        /**
+        * From CPosPrivacyNotifier, called when request has been cancelled
+        * @param aRequestId identifier of cancelled request
+        */
+        void HandleRequestCancelled( TPosQNRequestId aRequestId );
+
+        /**
+        * From CPosPrivacyNotifier, called when all requests are cancelled.
+        */
+        void HandleAllRequestCancelled();
+
+        /**
+        * From MLpdResultHandler, called when verification result is available.
+        * @param aResultCode
+        */        
+        void HandleVerificationResultL( TInt aResultCode );
+
+        /**
+        * From MLpdResultHandler, called when notification has been done.
+        * @param aResultCode
+        */        
+        void HandleNotificationResultL( TInt aResultCode );
+
+        /**
+        * From MLpdResultHandler, called if leave occurred in callback method
+        * @param aError code
+        */        
+        void HandleLeave( TInt aError );
+        
+      
+
+
+    protected:  // New functions
+
+        /**
+        * Non-leaving internal method for handling next pending request.
+        */
+        void HandleNextRequest();
+        
+        /**
+        * Internal method for handling next pending request.
+        */
+        void HandleNextRequestL();
+
+        /**
+        * Internal helper method used by HandleNextRequestL().
+        */
+        void HandleNextVerificationL();
+
+        /**
+        * Internal helper method used by HandleNextRequestL().
+        */
+        void HandleNextNotificationL();
+
+        /**
+          * Internal helper method used by HandleNextNotificationL().
+          */
+        void HandleNextNonPeriodicNotificationL();
+
+        
+        /**
+        * Internal helper method.
+        * Completes current request and continues queue handling.
+        */
+        void CompleteCurrentAndContinue( TInt aResultCode );
+
+        /**
+        * Handles assert errors. Panics in debug build but leaves in release
+        * build, as this component runs in EikSrv and must never panic.
+        */
+        void HandleAssertErrorL() const;
+
+        /**
+        * Panics in debug build but does nothing in release build.
+        */
+        void HandleDebugAssertError() const;
+     
+       
+      
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CLpdVerifierPlugin();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+    
+        
+      
+         /**
+          * Checks the type of request and helps to know
+          * if a given request is of SUPL periodic type
+          * @param aCurrentRequest request id
+          * @return CPosRequestor::TRequestType type of request enum
+         */
+        CPosRequestor::TRequestType CheckRequestTypeL();
+
+
+    private:    // Data
+
+     
+
+        // Identifier of currently handled request
+        TPosQNRequestId iCurrentRequest;
+
+        // Type of the current request, valid if iCurrentRequest valid
+        TRequestType iCurrentRequestType;
+
+        // Result code of verifier query, needed if user cancels rule query
+        TInt iVerifyResult;
+
+       
+        // Location request accept/reject query object
+        CLpdVerifierQueryLauncher* iVerifierQuery;  // owns
+
+        // Location request accept/reject query object
+        CLpdNotifierQueryLauncher* iNotifier;       // owns
+        
+        // Active object, used to let requests run to
+        // completion instead of recursive calls.
+        CLpdRequestAO* iRequestActiveObject;        // owns
+
+        CLpdRequestorProcessor* iRtorProcessor;     // owns
+        
+        CLocRequestorUtilsResolver* iUtils; // owns
+
+        
+        };
+
+#endif      // CLPDVERIFIERDLG_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdverifierquerylauncher.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 which handles the dialog and expiration timer.
+*
+*/
+
+
+#ifndef CLPDVERIFIERQUERYLAUNCHER_H
+#define CLPDVERIFIERQUERYLAUNCHER_H
+
+//  INCLUDES
+#include "lpdquerylauncherbase.h"
+#include <e32base.h>
+#include <lbs/epos_privacy.h>
+
+
+// FORWARD DECLARATIONS
+class CLpdGlobalPluginDialog;
+
+
+// CLASS DECLARATION
+
+/**
+*  Implements functionality for executing verification queries.
+*
+*  @lib locverifierdlg.lib
+*  @since 2.1
+*/
+class CLpdVerifierQueryLauncher :
+public CLpdQueryLauncherBase
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        * @param aHandler of ther query result
+        * @return created object
+        */
+        static CLpdVerifierQueryLauncher* NewL( 
+            MLpdResultHandler& aHandler );
+        
+        /**
+        * Destructor. Call Cancel() first if you have launched a query.
+        */
+        virtual ~CLpdVerifierQueryLauncher();
+
+    public: // New functions
+        
+       
+    protected: // Functions from base classes
+
+        /**
+        * From CLpdQueryLauncherBase, called when dialog is dismissed.
+        */
+        void ExtendedHandleDlgDismissedL();
+        
+        void RequestType(TRequestType& aRequestType);
+
+    private: // Constructors and destructors
+
+        /**
+        * C++ constructor.
+        * @param aHandler of the query result
+        */
+        CLpdVerifierQueryLauncher( MLpdResultHandler& aHandler );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+            
+        
+    };
+
+#endif      // CLPDVERIFIERQUERYLAUNCHER_H   
+            
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/rss/101f84fc.rss	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 file specifies the interface and implementation information
+*                 for BTnotif Ecom Plugins.
+*
+*/
+
+
+#include "ecom/registryinfo.rh"
+#include "uikon.hrh"
+#include <lbs/epos_privacynotifier.hrh>
+
+#define PRINOTDISPLAYNAME "TTNOTIFY2V2 Plugin 1"
+#define PRINOTDEFAULTDATA "TTNOTIFY2V2"
+#define PRINOTOPAQUEDATA  "0"
+
+RESOURCE REGISTRY_INFO theInfo
+{
+	dll_uid = 0x101f84fc;
+	interfaces =
+	{
+	INTERFACE_INFO
+		{
+		interface_uid = KUikonUidPluginInterfaceNotifiers; // ECOM Notifier Plugin 
+		implementations =
+				{
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x10207243;
+					version_no = 1;
+					display_name = PRINOTDISPLAYNAME;
+					default_data = PRINOTDEFAULTDATA;
+					opaque_data	 = PRINOTOPAQUEDATA;
+					}
+				};
+		}
+	};
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpddllmain.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,76 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Dll entry point and plugin creation functions.
+*
+*/
+
+
+// INCLUDE FILES
+#include "lpdverifierplugin.h"
+#include <e32base.h>
+#include <eiknotapi.h>
+#include <ecom/implementationproxy.h>
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+LOCAL_C void CreateNotifiersL( 
+    CArrayPtrFlat<MEikSrvNotifierBase2>* aNotifiers )
+    {
+    CLpdVerifierPlugin* notifier = CLpdVerifierPlugin::NewL();
+    CleanupStack::PushL( notifier );
+    aNotifiers->AppendL( notifier->NotifierBase() );
+    CleanupStack::Pop( notifier ); // Do not destroy. This is handled by the FW.
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+LOCAL_C CArrayPtr<MEikSrvNotifierBase2>* NotifierArray()
+    {
+    CArrayPtrFlat<MEikSrvNotifierBase2>* notifiers =
+        new CArrayPtrFlat<MEikSrvNotifierBase2>( 1 );
+    if ( notifiers )
+        {
+        TRAPD( err, CreateNotifiersL( notifiers ) );
+        if ( err )
+            { // release any notifiers we have created
+            TInt count = notifiers->Count();
+            while ( --count >= 0 )
+                {
+                ( *notifiers )[count]->Release();
+                }
+            delete notifiers;
+            notifiers = NULL;
+            }
+        }
+    return notifiers;
+    }
+
+const TImplementationProxy ImplementationTable[] =
+	{
+#ifdef __EABI__
+	{{0x10207243},(TFuncPtr)NotifierArray}
+#else
+	{{0x10207243},NotifierArray}
+#endif
+	};
+
+// ======== GLOBAL FUNCTIONS ========
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+	{
+	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy) ;
+	return ImplementationTable;
+	}
+	
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdglobalplugindialog.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,420 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 query dialog suitable for verifier plug-in use.
+*
+*/
+
+
+// INCLUDE FILES
+#include "lpdglobalplugindialog.h"
+#include "lpddlgobserver.h"
+#include "lpdrequestorprocessor.h"
+
+#include <lbs/EPos_CPosContactRequestor.h>
+#include <lbs/EPos_CPosServiceRequestor.h>
+#include <lbs/EPos_CPosRequestor.h>
+#include <hbsymbianvariant.h>
+#include <hbtextresolversymbian.h>
+#include <systemtoneservice.h>
+#include <e32des16.h>
+
+_LIT(KNotifReqSeperator,",");
+_LIT(KHeadingKey, "heading");
+_LIT(KQueryTextKey, "queryText");
+_LIT(KQueryText2Key, "queryText2");
+_LIT(KRequestorKey, "requestor");
+_LIT(KVerificationDlgType, "hb.posverifiction.dialog/1.0");
+_LIT(KLocTsFileName, "lilocationmw_");
+_LIT(KLocTsFilePath, "z://resource/qt/translations/");
+_LIT(KLocTsAFileAltPath, "c://resource/");
+//Translation String Ids
+//Verification Dialog
+_LIT(KRequestHeading, "txt_loe_title_location_request");
+_LIT(KSingleshotDecisionRejected, "txt_loe_info_your_location_will_not_be_shared_by_d");
+_LIT(KSingleshotDecisionAccepted, "txt_loe_info_your_location_will_be_shared_by_defau");
+_LIT(KSingleshotDecisionNotAvailable, "txt_loe_info_your_location_will_be_shared_with");
+_LIT(KPeriodicDecisionRejected, "txt_loe_info_your_location_will_not_be_shared_peri");
+_LIT(KPeriodicDecisionAccepted, "txt_loe_info_your_location_will_be_shared_periodic");
+_LIT(KPeriodicDecisionNotAvailable, "txt_loe_info_you_location_will_be_shared_periodica");
+_LIT(KRequestorText, "txt_loe_info_location_was_requested_by");
+_LIT(KUnknownRequestor, "txt_loe_info_unknown_requestor");
+//Notification
+_LIT(KNotificationNotSent, "txt_loe_dpophead_your_location_not_sent_to");
+_LIT(KNotificationSent, "txt_loe_dpophead_your_location_sent_to");
+
+const TInt KNotificationTimeout = 15000;
+const TInt KMaxSize = 1024;
+const TInt KVariantMaxSize = 256;
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::CLpdGlobalPluginDialog
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CLpdGlobalPluginDialog::CLpdGlobalPluginDialog(                    
+    MLpdDlgObserver& aCallBack
+    )
+    : iCallBack( aCallBack ),
+      iMsgBox(NULL),
+      iNotification(NULL),
+      iRequestInfo(NULL)
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::ConstructL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+void CLpdGlobalPluginDialog::ConstructL()
+    {
+    iMsgBox = CHbDeviceDialogSymbian::NewL();
+    iNotification = CHbDeviceNotificationDialogSymbian::NewL(this);
+    TBool result =
+            HbTextResolverSymbian::Init(KLocTsFileName, KLocTsFilePath);
+    if (!result)
+        {
+        HbTextResolverSymbian::Init(KLocTsFileName, KLocTsAFileAltPath);
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CLpdGlobalPluginDialog* CLpdGlobalPluginDialog::NewL(                    
+    MLpdDlgObserver& aCallBack)
+    {
+    CLpdGlobalPluginDialog* self =
+        new( ELeave ) CLpdGlobalPluginDialog( aCallBack);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);  
+    return self;
+    }
+
+// Destructor
+CLpdGlobalPluginDialog::~CLpdGlobalPluginDialog()
+	{
+   	delete iMsgBox;
+	iMsgBox = NULL;
+	
+	delete iNotification;
+	iNotification = NULL;
+	
+	 delete iRequestInfo;
+	 iRequestInfo=NULL;
+	
+	}
+
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::RunLD
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdGlobalPluginDialog::RunVerificationQueryL()
+    {
+    mSymbianVariantMap = CHbSymbianVariantMap::NewL();
+    CleanupStack::PushL(mSymbianVariantMap);
+    
+    AddVerDlgHeadingParamL();
+    AddQueryTextParamL();
+    AddRequestorsParamL();
+    CSystemToneService* sts = CSystemToneService::Create();
+    iMsgBox->Show(KVerificationDlgType, *mSymbianVariantMap, this);
+    if( sts )
+        {
+        sts->PlayTone(CSystemToneService::ELocationRequest);
+        }
+    CSystemToneService::Delete(sts);
+    CleanupStack::Pop(mSymbianVariantMap);
+    }
+
+void CLpdGlobalPluginDialog::RunNotificationL()
+    {
+    if( EPosDecisionByRequestSource == iRequestInfo->iNotifReason ||
+        EPosVerificationTimeout == iRequestInfo->iNotifReason    )
+        {
+        if ( EPosDecisionAccepted == iRequestInfo->iRequestDecision )
+            {
+            HBufC* title = HbTextResolverSymbian::LoadL(KNotificationSent);
+            CleanupStack::PushL(title);
+            iNotification->SetTitleL(title->Des());
+            CleanupStack::PopAndDestroy(title);
+            }
+        if( EPosDecisionRejected == iRequestInfo->iRequestDecision )
+            {
+            HBufC* title = HbTextResolverSymbian::LoadL(KNotificationNotSent);
+            CleanupStack::PushL(title);
+            iNotification->SetTitleL(title->Des());
+            CleanupStack::PopAndDestroy(title);
+            }
+        }
+    else
+        {
+        // Not supported   
+        User::Leave(KErrNotSupported);
+        }
+    TBuf<KMaxSize> buf;
+    
+    TInt count= iRequestInfo->iRequestors.Count();
+    if( count == 0 )
+        {
+        HBufC* requestor = HbTextResolverSymbian::LoadL(KUnknownRequestor);
+        CleanupStack::PushL(requestor);
+        buf.Append(requestor->Des());
+        CleanupStack::PopAndDestroy(requestor);
+        }
+    else
+        {
+        for(TInt i=0;i< count;i++ )
+            {
+            if(i!=0)
+                {
+                buf.Append(KNotifReqSeperator);
+                }
+            buf.Append(iRequestInfo->iRequestors[i]->RequestorIdString());
+            }
+        }
+    iNotification->SetTextL(buf);
+    iNotification->SetTimeout(KNotificationTimeout);
+    iNotification->EnableTouchActivation(ETrue);
+    iNotification->ShowL();
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::SetMessageTextL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdGlobalPluginDialog::SetRequestInfoL( CLpdRequestorProcessor* aRequestInfo )
+    {
+    if(iRequestInfo)
+        {
+        // clear and create again if already has been set before
+        delete iRequestInfo;
+        iRequestInfo=NULL;
+        }
+    iRequestInfo=CLpdRequestorProcessor::NewL();
+    
+    iRequestInfo->iDialogType=aRequestInfo->iDialogType;
+    iRequestInfo->iNotifReason=aRequestInfo->iNotifReason;
+    iRequestInfo->iRequestDecision=aRequestInfo->iRequestDecision;
+    iRequestInfo->iRequestType=aRequestInfo->iRequestType;
+    
+    const RPointerArray<CPosRequestor>& requestors = aRequestInfo->iRequestors;
+    
+    TInt count = requestors.Count();
+    for(TInt i=0; i< count; i++ )
+        {
+        CPosRequestor::TRequestorIdFormat idFormat;
+        TPtrC idString;
+        idFormat=requestors[i]->RequestorIdFormat();
+        idString.Set(requestors[i]->RequestorIdString());
+        
+        if( CPosRequestor::ERequestorService==requestors[i]->RequestType())
+            {
+            CPosServiceRequestor* service = CPosServiceRequestor::NewL(idFormat,idString);
+            CleanupStack::PushL(service);
+            // Ownership transferred
+            iRequestInfo->iRequestors.Append(service);
+            CleanupStack::Pop(service);
+            }
+        else
+            {
+            CPosContactRequestor* contact = CPosContactRequestor::NewL(idFormat,idString);
+            CleanupStack::PushL(contact);
+            // Ownership transferred
+            iRequestInfo->iRequestors.Append(contact);
+            CleanupStack::Pop(contact);
+            }
+        
+        }
+    }
+
+
+
+void CLpdGlobalPluginDialog::Cancel()
+    {
+    // Close any running dialogs if any.Close() doesnt have any effect if dialog is not running
+    isCancelled = ETrue;
+    iMsgBox->Cancel();
+    iNotification->Close();
+    }
+
+void CLpdGlobalPluginDialog::NotificationDialogActivated(
+        const CHbDeviceNotificationDialogSymbian */*aDialog*/)        
+    {
+    // Complete with KErrNone now 
+    TRAP_IGNORE(iCallBack.HandleDlgDismissedL( KErrNone ));
+    }
+
+void CLpdGlobalPluginDialog::NotificationDialogClosed(
+        const CHbDeviceNotificationDialogSymbian */*aDialog*/,
+        TInt aCompletionCode)
+    {
+    TRAP_IGNORE(iCallBack.HandleDlgDismissedL( aCompletionCode ));
+    }
+
+void CLpdGlobalPluginDialog::DataReceived(CHbSymbianVariantMap& /*aData*/)
+    {
+    mDissmissed = ETrue;
+    TRAP_IGNORE(iCallBack.HandleDlgDismissedL( KErrAccessDenied ));
+    }
+
+void CLpdGlobalPluginDialog::DeviceDialogClosed(TInt /*aCompletionCode*/)
+    {
+    if (!mDissmissed && !isCancelled)
+        {
+        TRAP_IGNORE(iCallBack.HandleDlgDismissedL( KErrNone ));
+        }
+    }
+
+void CLpdGlobalPluginDialog::AddVerDlgHeadingParamL()
+    {
+    HBufC* headingText = HbTextResolverSymbian::LoadL(KRequestHeading);
+    CleanupStack::PushL(headingText);
+    CHbSymbianVariant* heading = CHbSymbianVariant::NewL(headingText,
+            CHbSymbianVariant::EDes);
+    CleanupStack::PushL(heading);
+    mSymbianVariantMap->Add(KHeadingKey, heading );
+    CleanupStack::Pop(heading);
+    CleanupStack::PopAndDestroy(headingText);
+    }
+
+void CLpdGlobalPluginDialog::AddQueryTextParamL()
+    {
+    HBufC * value = HBufC::NewL(KVariantMaxSize);
+    CleanupStack::PushL(value);
+    HBufC * value2 = HBufC::NewL(KVariantMaxSize);
+    CleanupStack::PushL(value2);
+    HBufC* requestorText = HbTextResolverSymbian::LoadL(KRequestorText);
+    CleanupStack::PushL(requestorText);
+
+    if (CPosRequestor::ERequestSingleShot == iRequestInfo->iRequestType)
+        {
+        if (EPosDecisionNotAvailable == iRequestInfo->iRequestDecision)
+            {
+            HBufC* queryText = HbTextResolverSymbian::LoadL(
+                    KSingleshotDecisionNotAvailable);
+            CleanupStack::PushL(queryText);
+            value->Des().Copy(queryText->Des());
+            CleanupStack::PopAndDestroy(queryText);
+            }
+        else if (EPosDecisionAccepted == iRequestInfo->iRequestDecision)
+            {
+            HBufC* queryText = HbTextResolverSymbian::LoadL(
+                    KSingleshotDecisionAccepted);
+            CleanupStack::PushL(queryText);
+            value->Des().Copy(queryText->Des());
+            value2->Des().Copy(requestorText->Des());
+            CleanupStack::PopAndDestroy(queryText);
+            }
+        else if (EPosDecisionRejected == iRequestInfo->iRequestDecision)
+            {
+            HBufC* queryText = HbTextResolverSymbian::LoadL(
+                    KSingleshotDecisionRejected);
+            CleanupStack::PushL(queryText);
+            value->Des().Copy(queryText->Des());
+            value2->Des().Copy(requestorText->Des());
+            CleanupStack::PopAndDestroy(queryText);
+            }
+        }
+
+    else if (CPosRequestor::ERequestPeriodic == iRequestInfo->iRequestType)
+        {
+        if (EPosDecisionNotAvailable == iRequestInfo->iRequestDecision)
+            {
+            HBufC* queryText = HbTextResolverSymbian::LoadL(
+                    KPeriodicDecisionNotAvailable);
+            CleanupStack::PushL(queryText);
+            value->Des().Copy(queryText->Des());
+            CleanupStack::PopAndDestroy(queryText);
+            }
+        else if (EPosDecisionAccepted == iRequestInfo->iRequestDecision)
+            {
+            HBufC* queryText = HbTextResolverSymbian::LoadL(
+                    KPeriodicDecisionAccepted);
+            CleanupStack::PushL(queryText);
+            value->Des().Copy(queryText->Des());
+            value2->Des().Copy(requestorText->Des());
+            CleanupStack::PopAndDestroy(queryText);
+            }
+        else if (EPosDecisionRejected == iRequestInfo->iRequestDecision)
+            {
+            HBufC* queryText = HbTextResolverSymbian::LoadL(
+                    KPeriodicDecisionRejected);
+            CleanupStack::PushL(queryText);
+            value->Des().Copy(queryText->Des());
+            value2->Des().Copy(requestorText->Des());
+            CleanupStack::PopAndDestroy(queryText);
+            }
+        }
+    else
+        {
+        // Not supported   
+        User::Leave(KErrNotSupported);
+        }
+
+    CHbSymbianVariant* queryText = CHbSymbianVariant::NewL(value,
+            CHbSymbianVariant::EDes);
+    CleanupStack::PushL(queryText);
+
+    CHbSymbianVariant* queryText2 = CHbSymbianVariant::NewL(value2,
+            CHbSymbianVariant::EDes);
+    CleanupStack::PushL(queryText2);
+
+    if (value2->Length()!= 0)
+        {
+        mSymbianVariantMap->Add(KQueryText2Key, queryText2);
+        }
+    mSymbianVariantMap->Add(KQueryTextKey, queryText);
+    CleanupStack::Pop(queryText2);
+    CleanupStack::Pop(queryText);
+    CleanupStack::PopAndDestroy(3);
+    }
+
+void CLpdGlobalPluginDialog::AddRequestorsParamL()
+    {
+
+    CDesC16ArrayFlat* array = new CDesC16ArrayFlat(8);
+    TInt reqCount = iRequestInfo->iRequestors.Count();
+    if (!reqCount)
+        {
+        HBufC* requestor = HbTextResolverSymbian::LoadL(KUnknownRequestor);
+        CleanupStack::PushL(requestor);
+        array->AppendL(requestor->Des());
+        CleanupStack::PopAndDestroy(requestor);
+        }
+    else
+    	{
+    	for (TInt i = 0; i < reqCount; ++i)
+	        {
+	        array->AppendL(iRequestInfo->iRequestors[i]->RequestorIdString());
+	        }
+	    }
+
+    TInt count = array->MdcaCount();
+    MDesCArray* marray = static_cast<MDesCArray*> (array);
+    CHbSymbianVariant* requestors = CHbSymbianVariant::NewL(marray,
+            CHbSymbianVariant::EDesArray);
+    mSymbianVariantMap->Add(KRequestorKey, requestors);
+    }
+
+// End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdnotifierquerylauncher.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,98 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 which handles the dialog and expiration timer.
+*
+*/
+
+
+// INCLUDE FILES
+#include "lpdnotifierquerylauncher.h"
+#include "lpdglobalplugindialog.h"
+
+#include "lpdresulthandler.h"
+#include <lbs/epos_privacy.h>
+
+// CONSTANTS
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CLpdNotifierQueryLauncher::CLpdNotifierQueryLauncher
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CLpdNotifierQueryLauncher::CLpdNotifierQueryLauncher( 
+    MLpdResultHandler& aHandler ) 
+    : CLpdQueryLauncherBase( aHandler )
+    {
+    // Intentionally empty
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdNotifierQueryLauncher::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CLpdNotifierQueryLauncher::ConstructL()
+    {
+    CLpdQueryLauncherBase::ConstructL();
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdNotifierQueryLauncher::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CLpdNotifierQueryLauncher* CLpdNotifierQueryLauncher::NewL( 
+    MLpdResultHandler& aHandler )
+    {
+    CLpdNotifierQueryLauncher* self = new( ELeave )
+             CLpdNotifierQueryLauncher( aHandler );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+// Destructor
+CLpdNotifierQueryLauncher::~CLpdNotifierQueryLauncher()
+    {
+    // Intentionally empty
+    }
+
+
+// -----------------------------------------------------------------------------
+// CLpdNotifierQueryLauncher::ExtendedHandleDlgDismissedL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdNotifierQueryLauncher::ExtendedHandleDlgDismissedL()
+    {
+    iHandler.HandleNotificationResultL( iResult );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CLpdNotifierQueryLauncher::RequestType
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdNotifierQueryLauncher::RequestType(TRequestType& aRequestType)
+    {
+    aRequestType = CLpdQueryLauncherBase::ENotification;
+    }
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdquerylauncherbase.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,142 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 base class for queries.
+*
+*/
+
+
+// INCLUDE FILES
+
+#include "lpdquerylauncherbase.h"
+#include "lpdresulthandler.h"
+#include "lpdrequestorprocessor.h"
+
+#include "lpdglobalplugindialog.h"
+
+
+// CONSTANTS
+
+// Unnamed namespace for local definitions
+
+#ifdef _DEBUG
+//_LIT( KPanicText, "CLpdQueryLauncherBase" );
+enum TPanicCode
+    {
+    KLpdErrGeneral = 1
+    };
+#endif
+
+// INCLUDE FILES
+#include <s32mem.h>
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CLpdQueryLauncherBase::CLpdQueryLauncherBase
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CLpdQueryLauncherBase::CLpdQueryLauncherBase( MLpdResultHandler& aHandler )
+    : iHandler( aHandler ),
+      iResult( KErrArgument ),
+      iQueryDlg( NULL )
+    {
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CLpdQueryLauncherBase::~CLpdQueryLauncherBase
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CLpdQueryLauncherBase::~CLpdQueryLauncherBase()
+    {
+    delete iQueryDlg;
+    iQueryDlg = NULL;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CLpdQueryLauncherBase::ConstructL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdQueryLauncherBase::ConstructL()
+    {
+    iQueryDlg = CLpdGlobalPluginDialog::NewL(*this);
+    }
+// -----------------------------------------------------------------------------
+// CLpdQueryLauncherBase::SetQueryTextArray
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdQueryLauncherBase::SetRequestInfoL( CLpdRequestorProcessor* aRequestInfo )
+    {
+    iQueryDlg->SetRequestInfoL(aRequestInfo);
+    }
+
+void CLpdQueryLauncherBase::RequestType(TRequestType& aRequestType)
+    {
+    aRequestType = EUnknown;
+    }
+// -----------------------------------------------------------------------------
+// CLpdQueryLauncherBase::StartQueryL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdQueryLauncherBase::StartQueryL()
+    {
+    TRequestType type;
+    RequestType( type );
+    if( EVerification == type )
+        {
+        iQueryDlg->RunVerificationQueryL();
+        }
+    else if( ENotification == type )
+        {
+        iQueryDlg->RunNotificationL();
+        }
+    else
+        {
+        // do nothing now
+        }
+
+    }
+
+void CLpdQueryLauncherBase::Cancel()
+    {
+    iQueryDlg->Cancel();
+    }
+// -----------------------------------------------------------------------------
+// CLpdQueryLauncherBase::HandleDlgDismissedL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdQueryLauncherBase::HandleDlgDismissedL(    
+    TInt aResult )
+    {
+    
+    iResult = aResult;
+      
+    TRAPD( err, ExtendedHandleDlgDismissedL() );
+         if ( err )
+             { 
+             iHandler.HandleLeave( err );
+             }
+      
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdrequestao.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Active object which ensures that current call stack is run to
+*                completion before a new request is handled
+*
+*/
+
+
+// INCLUDE FILES
+#include "lpdrequestao.h"
+#include "lpdverifierplugin.h"
+#include <lbs/epos_cposrequestor.h>
+#include <lbs/epos_rposrequestorstack.h>
+
+// ================= MEMBER FUNCTIONS =======================
+
+// -----------------------------------------------------------------------------
+// CLpdRequestAO::CLpdRequestAO
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CLpdRequestAO::CLpdRequestAO( CLpdVerifierPlugin& aPlugin )
+    : CActive( CActive::EPriorityHigh ), iPlugin( aPlugin )
+    {
+	}
+
+// -----------------------------------------------------------------------------
+// CLpdRequestAO::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CLpdRequestAO* CLpdRequestAO::NewL( CLpdVerifierPlugin& aPlugin )
+	{
+    CLpdRequestAO* self = new( ELeave ) CLpdRequestAO( aPlugin );
+    CActiveScheduler::Add(self);
+    // Nothing to do in the Second Phase Constructor
+    return self;
+	}
+
+// Destructor
+CLpdRequestAO::~CLpdRequestAO()
+	{
+    Cancel();
+    
+	}
+
+// -----------------------------------------------------------------------------
+// CLpdRequestAO::ScheduleRequest
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdRequestAO::ScheduleRequest()
+    {	     
+    Cancel();
+    SetActive();
+    TRequestStatus* status = &iStatus;
+    User::RequestComplete( status, KErrNone );            
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdRequestAO::RunL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdRequestAO::RunL()
+    {	    
+   	iPlugin.HandleNextRequest();
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdRequestAO::DoCancel
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdRequestAO::DoCancel()
+    {
+    // Not important with this AO
+	}
+
+
+
+	
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdrequestorprocessor.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,157 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Processes requestor related data.
+*
+*/
+
+
+// INCLUDE FILES
+#include "lpdrequestorprocessor.h"
+#include "contactresolversession.h"
+
+#include "locverifierdlgdebug.h"
+#include <lbs/epos_cposrequestor.h>
+#include <lbs/epos_cposcontactrequestor.h>
+#include <lbs/epos_cposservicerequestor.h>
+#include <epos_cposprivacynotifier.h>
+
+
+// Unnamed namespace for local definitions
+
+const TInt KRequestorsGranularity = 5;
+#ifdef _DEBUG
+_LIT( KPanicText, "CLpdRequestorProcessor" );
+enum TPanicCode
+    {
+    KLpdErrGeneral = 1
+    };
+#endif
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CLpdRequestorProcessor::CLpdRequestorProcessor
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CLpdRequestorProcessor::CLpdRequestorProcessor() 
+: iRequestors( KRequestorsGranularity)
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdRequestorProcessor::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CLpdRequestorProcessor* CLpdRequestorProcessor::NewL()
+    {
+    CLpdRequestorProcessor* self = new( ELeave ) CLpdRequestorProcessor;
+    // Nothing to do in the Second Phase Constructor
+    return self;
+    }
+    
+// Destructor
+CLpdRequestorProcessor::~CLpdRequestorProcessor()
+    {
+    iRequestors.ResetAndDestroy();
+    iRequestors.Close();
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdRequestorProcessor::ReadRequestorsL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TBool CLpdRequestorProcessor::ReadRequestorsL(
+    const CPosPrivacyNotifier& aPosNotifier )
+    {
+    __ASSERT_DEBUG( aPosNotifier.CurrentRequest() != KPosNullQNRequestId,
+                    HandleAssertErrorL() );
+
+    this->ResetAndDestroyRequestors();
+    
+    TBool allRequestorIdsValid = ETrue;
+   
+    // Let's read the requestors associated with the current request:
+    TInt nofRequestors = aPosNotifier.RequestorCountL();
+
+    for ( TInt i = 0; i < nofRequestors; i++ )
+        {
+        CPosRequestor* requestor = aPosNotifier.RequestorLC( i );
+        
+        if ( RequestorIdValid( *requestor ) )
+            { // mark that some requestor id is invalid
+            allRequestorIdsValid = EFalse;
+            }
+               
+        User::LeaveIfError( iRequestors.Append( requestor ) );
+        CleanupStack::Pop( requestor ); // iRequestors owns now the requestor
+        }
+
+    if ( nofRequestors == 0 )
+        {
+        allRequestorIdsValid = EFalse; // zero requestors == invalid
+        }
+
+     RContactResolverSession resSession;
+     TInt err = resSession.Connect();
+    
+     // If any error in connection,dont leave.Use un-resolved requestors
+     if( KErrNone == err )
+     	{
+     	resSession.ResolveRequestorsL(iRequestors);
+     	}
+     resSession.Close();
+       
+    return allRequestorIdsValid;
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdRequestorProcessor::ResetAndDestroyRequestors
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdRequestorProcessor::ResetAndDestroyRequestors()
+    {
+    iRequestors.ResetAndDestroy();
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdRequestorProcessor::RequestorIdValid
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TBool CLpdRequestorProcessor::RequestorIdValid(
+    const CPosRequestor& aRequestor )
+    {
+    return( aRequestor.RequestorIdFormat() != CPosRequestor::EIdFormatUnknown );
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdRequestorProcessor::HandleAssertErrorL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdRequestorProcessor::HandleAssertErrorL() const
+    {
+    #ifdef _DEBUG
+        User::Panic( KPanicText, KLpdErrGeneral );
+    #else
+        User::Leave( KErrCorrupt );
+    #endif
+    }
+// end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdverifierplugin.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,552 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  Verifier plug-in which derives from CPosPrivacyNotifier.
+ *
+ */
+
+// INCLUDE FILES
+
+#include "lpdverifierplugin.h"
+
+#include "lpdrequestao.h"
+#include "lpdrequestorprocessor.h"
+#include "lpdverifierquerylauncher.h"
+#include "lpdnotifierquerylauncher.h"
+#include "locverifierdlgdebug.h"
+#include "locutilsdebug.h"
+
+#include <eiknotapi.h>
+#include <lbs/epos_rposrequestorstack.h>
+#include <epos_csuplsettingsconstants.h>
+
+// INCLUDE FILES
+#include <s32mem.h>
+
+
+
+const TInt KPrivSrvSecureId = 0x10281D45;
+// CONSTANTS
+
+// Unnamed namespace for local definitions
+
+const MEikSrvNotifierBase2::TNotifierPriority KNotifierPriority =
+        MEikSrvNotifierBase2::ENotifierPriorityHigh;
+const TUid KNotifierChannel =
+    {
+    0x100065ac
+    };
+#ifdef _DEBUG
+_LIT( KPanicText, "CLpdVerifierPlugin" );
+enum TPanicCode
+    {
+    KLpdErrGeneral = 1
+    };
+#endif
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::CLpdVerifierPlugin
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CLpdVerifierPlugin::CLpdVerifierPlugin() :
+    iCurrentRequest(KPosNullQNRequestId)
+
+    {
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::ConstructL()
+    {
+    BaseConstructL(KNotifierChannel, KNotifierPriority);
+  
+    iRtorProcessor = CLpdRequestorProcessor::NewL();
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CLpdVerifierPlugin* CLpdVerifierPlugin::NewL()
+    {
+    CLpdVerifierPlugin* self = new (ELeave) CLpdVerifierPlugin;
+
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+// Destructor
+CLpdVerifierPlugin::~CLpdVerifierPlugin()
+    {
+    // Destruction of this plugin should only occur only in shutdown
+    // or in severe problem situation.
+
+    // A very special scenario is that base class construction leaves and
+    // this destructor is called. In that case CompleteAllRequests() causes
+    // access violation (noticed this by checking source code of base class).
+    if (NotifierBase())
+        { // base class has been fully constructed, method call is safe
+        CompleteAllRequests(KErrGeneral);
+        }
+
+    // It is enough to delete queries so when don't get callbacks.
+    FreeQueryResources();
+    
+    delete iRequestActiveObject;
+    iRequestActiveObject = NULL; 
+    delete iRtorProcessor;
+    iRtorProcessor = NULL; 
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleNewRequestL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleNewRequestL(TPosQNRequestId /*aRequestId */ )
+    {
+    LOCVERIFIERDLGDEBUG( "CLpdVerifierPlugin::HandleNewRequestL" );
+    
+    // Check whether the notifier is already handling a request
+    // If yes, do nothing for now.
+    if (iRequestActiveObject)
+        {
+        return;
+        }
+    else
+        {
+        iRequestActiveObject = CLpdRequestAO::NewL(*this);
+        iRequestActiveObject->ScheduleRequest();
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleRequestCancelled
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleRequestCancelled(TPosQNRequestId aRequestId)
+    {
+    LOCVERIFIERDLGDEBUG( "CLpdVerifierPlugin::HandleRequestCancelled" );
+    // Check whether the request is coming from Uikon Server. 
+    // If not reject this request.
+    if (!CheckClientSecureId(KPrivSrvSecureId))
+        {
+        return;
+        }
+
+    
+    if (aRequestId != iCurrentRequest)
+        {
+        return;
+        }
+
+   
+    if (iCurrentRequestType == EQuery)
+        { // Verification was cancelled
+        __ASSERT_DEBUG( iVerifierQuery, HandleDebugAssertError() );
+        LOCVERIFIERDLGDEBUG( "Verification cancelled" );
+        iVerifierQuery->Cancel();
+        }
+    else
+        {
+        // It must be a notification then, this case is not probable but
+        // we can cancel the dialog if this would happen.
+        __ASSERT_DEBUG( iCurrentRequestType == ENotification,
+                HandleDebugAssertError() );
+         __ASSERT_DEBUG( iNotifier, HandleDebugAssertError() );
+        LOCVERIFIERDLGDEBUG( "Notification cancelled" );
+        iNotifier->Cancel();
+        }
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleAllRequestCancelled
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleAllRequestCancelled()
+    {
+    LOCVERIFIERDLGDEBUG( "CLpdVerifierPlugin::HandleAllRequestCancelled" );
+    if (iCurrentRequest != KPosNullQNRequestId)
+        { // current request requires some specific behavior
+        HandleRequestCancelled(iCurrentRequest);
+        }
+   
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleVerificationResultL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleVerificationResultL(TInt aResultCode)
+    {
+    iVerifyResult = aResultCode;
+
+        LOCVERIFIERDLGDEBUG1( "CLpdVerifierPlugin::HandleVerificationResultL(%d)",
+                iVerifyResult );
+
+    switch (iVerifyResult)
+        {
+        case KErrNone: // fall through
+        case KErrAccessDenied:
+            {
+            // No need for rules now in 3.0
+            break;
+            }
+        case KErrTimedOut:
+            { // UI's internal timer expired
+            break;
+            }
+        case KErrCancel:
+            {
+            return; // don't handle next req. yet
+            }
+        case KErrAbort: // This is used for emergency call support
+            {
+            CompleteAllRequests(iVerifyResult);
+            // ScheduleRequest() allows the current call chain
+            // run to completion and resources are released after that.
+            iRequestActiveObject->ScheduleRequest();
+            return;
+            }
+        default:
+            {
+            
+            break;
+            }
+        }
+
+    CompleteCurrentAndContinue(iVerifyResult); // this request was handled
+    }
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleNotificationResultL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleNotificationResultL(TInt aResultCode)
+    {
+
+   LOCVERIFIERDLGDEBUG1( "CLpdVerifierPlugin::HandleVerificationResultL(%d)",
+                aResultCode );
+    CompleteRequest(iCurrentRequest, aResultCode);
+    iCurrentRequest = KPosNullQNRequestId;
+
+    switch (aResultCode)
+        {
+        case KErrNone: // fall through
+        case KErrTimedOut: // fall through
+            {
+            break;
+            }
+        case KErrCancel:
+            {
+            break;
+            }
+        case KErrAbort: // This is used for emergency call support
+            {
+            CompleteAllRequests(aResultCode);
+            // ScheduleRequest() -> allows the current call chain
+            // run to completion and resources are released after that.
+            break;
+            }
+        default:
+            {
+            
+            break;
+            }
+        }
+
+    iRequestActiveObject->ScheduleRequest(); // handle next req.
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleLeave
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleLeave(TInt /*aError*/)
+    {
+        LOCVERIFIERDLGDEBUG1( "CLpdVerifierPlugin::HandleLeave(%d)", aError);
+    // In this case user needs feedback about the error situation:
+    
+
+    // In case of leave current request is completed with
+    // iVerifyResult, but queue handling is still continued.
+    // iVerifyResult is better completion code for request than aError.
+    CompleteCurrentAndContinue(iVerifyResult);
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleNextRequest
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleNextRequest()
+    {
+    TRAPD( err, HandleNextRequestL() );
+    if (err)
+        {
+        // In case of leave current request is completed with
+        // error code, but queue handling is still continued.
+
+        // If we couldn't start handling the request it is
+        // better not to confuse user with an error note.
+
+        CompleteCurrentAndContinue(iVerifyResult);
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleNextRequestL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleNextRequestL()
+    {
+
+    // It is better to free previous query resources here, because
+    // now all callback methods have finished (active object allowed
+    // run to completion)
+    this->FreeQueryResources();
+
+    // Read the next request:
+    RArray<TPosQNRequestId> requests;
+    CleanupClosePushL(requests);
+    GetRequestsL(requests);
+
+    if (requests.Count() == 0)
+        { // No more requests to handle
+        CleanupStack::PopAndDestroy(); // requests
+        // This is a very important step, it allows new requests
+        // to flow in ( see HandleNewRequestL() ):
+        delete iRequestActiveObject;
+        iRequestActiveObject = NULL;
+        return;
+        }
+    iCurrentRequest = requests[0];
+    CleanupStack::PopAndDestroy(); // requests
+    SetCurrentRequestL(iCurrentRequest);
+
+    // Check whether the request is coming from Uikon Server. If not reject this request.
+    if (!CheckClientSecureId(KPrivSrvSecureId))
+        {
+        CompleteCurrentAndContinue(KErrPermissionDenied);
+        return;
+        }
+   
+    // Check the request type
+    iCurrentRequestType = RequestTypeL(iCurrentRequest);
+
+    iRtorProcessor->ReadRequestorsL(*this);
+
+      
+    
+    if (iCurrentRequestType == EQuery)
+        {
+        LOCVERIFIERDLGDEBUG( "New verification request received" );
+        HandleNextVerificationL();
+        }
+    else if (iCurrentRequestType == ENotification)
+        {
+        LOCVERIFIERDLGDEBUG( "New notification request received" );
+        HandleNextNotificationL();
+        }
+    else
+        {
+        User::Leave(KErrNotSupported);
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleNextVerificationL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleNextVerificationL()
+    {
+    __ASSERT_DEBUG( iCurrentRequest != KPosNullQNRequestId,
+            HandleAssertErrorL() );
+    __ASSERT_DEBUG( !iVerifierQuery, HandleAssertErrorL() );
+    
+    CPosRequestor::TRequestType reqType;
+       if (CheckRequestTypeL() == CPosRequestor::ERequestPeriodic)
+            reqType = CPosRequestor::ERequestPeriodic;
+        else
+            reqType = CPosRequestor::ERequestSingleShot;
+    
+    TPosRequestSource source(RequestSource());
+    if (source == EPosRequestSourceNotAvailable)
+        {
+        CompleteCurrentAndContinue(KErrNone);
+        }
+    else
+        {
+        
+         TPosRequestDecision decision(QueryTimeoutStrategy());
+        
+        iRtorProcessor->iRequestType=reqType;
+        iRtorProcessor->iRequestDecision=decision;
+        iRtorProcessor->iDialogType=CLpdRequestorProcessor::EQuery;
+               
+        iVerifierQuery = CLpdVerifierQueryLauncher::NewL(*this);
+        // Ownership NOT transferred
+        iVerifierQuery->SetRequestInfoL(iRtorProcessor);
+        
+        iVerifierQuery->StartQueryL();    
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleNextNotificationL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleNextNotificationL()
+    {
+    __ASSERT_DEBUG( iCurrentRequest != KPosNullQNRequestId,
+            HandleAssertErrorL() );
+    
+    // There is no differentiation now for periodic and single shot notifications
+    HandleNextNonPeriodicNotificationL();
+    }
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleNextNonPeriodicNotificationL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleNextNonPeriodicNotificationL()
+    {
+    
+    __ASSERT_DEBUG( iCurrentRequest != KPosNullQNRequestId,
+            HandleAssertErrorL() );
+    __ASSERT_DEBUG( !iNotifier, HandleAssertErrorL() );
+
+    if (RequestSource() != EPosRequestSourceNetwork)
+        { // Notifications are supported only for network requests
+        User::Leave(KErrNotSupported);
+        }
+
+    TPosNotificationReason reason = NotificationReason();
+    TPosRequestDecision decision = LocationRequestDecision();
+    iRtorProcessor->iNotifReason=reason;
+    iRtorProcessor->iDialogType=CLpdRequestorProcessor::ENotification;
+    iRtorProcessor->iRequestDecision=decision;
+    
+    iNotifier = CLpdNotifierQueryLauncher::NewL(*this);
+    iNotifier->SetRequestInfoL(iRtorProcessor);
+    iNotifier->StartQueryL();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::CompleteCurrentAndContinue
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::CompleteCurrentAndContinue(TInt aResultCode)
+    {
+    if (iCurrentRequest != KPosNullQNRequestId)
+        {
+        CompleteRequest(iCurrentRequest, aResultCode);
+        }
+    iCurrentRequest = KPosNullQNRequestId;
+
+    __ASSERT_DEBUG( iRequestActiveObject, HandleDebugAssertError() );
+    iRequestActiveObject->ScheduleRequest(); // handle next req.
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::FreeQueryResources
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::FreeQueryResources()
+    {
+    iCurrentRequest = KPosNullQNRequestId;
+    delete iVerifierQuery;
+    iVerifierQuery = NULL;
+    iVerifyResult = KErrGeneral;
+    delete iNotifier;
+    iNotifier = NULL;
+    if (iRtorProcessor)
+        { // if already construction fails iRtorProcessor may
+        // be NULL, otherwise it points to an instance.
+        iRtorProcessor->ResetAndDestroyRequestors();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleAssertErrorL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleAssertErrorL() const
+    {
+#ifdef _DEBUG        
+    User::Panic(KPanicText, KLpdErrGeneral);
+#else
+    User::Leave( KErrCorrupt );
+#endif
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::HandleDebugAssertError
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierPlugin::HandleDebugAssertError() const
+    {
+#ifdef _DEBUG
+    User::Panic(KPanicText, KLpdErrGeneral);
+#endif
+    }
+
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierPlugin::CheckRequestTypeL
+// Checks the type of request and helps to know
+// if a given request is of SUPL periodic type
+// @param aCurrentRequest request id
+// @return TRequestType type of request enum
+// -----------------------------------------------------------------------------
+CPosRequestor::TRequestType CLpdVerifierPlugin::CheckRequestTypeL()
+    {
+    CPosRequestor::TRequestType reqType = CPosRequestor::ENetworkTypeUnknown;
+    if (RequestorCountL() > 0)
+        {
+        CPosRequestor* requestor = RequestorLC(0);
+        reqType = requestor->RequestType();
+        CleanupStack::PopAndDestroy(requestor);
+        }
+    return reqType;
+    }
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdverifierquerylauncher.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 which handles the dialog and expiration timer.
+*
+*/
+
+
+// INCLUDE FILES
+#include "lpdverifierquerylauncher.h"
+#include "lpdglobalplugindialog.h"
+#include "lpdresulthandler.h"
+
+// CONSTANTS
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierQueryLauncher::CLpdVerifierQueryLauncher
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CLpdVerifierQueryLauncher::CLpdVerifierQueryLauncher( 
+    MLpdResultHandler& aHandler ) 
+    : CLpdQueryLauncherBase( aHandler )
+    {
+    // Intentionally empty
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierQueryLauncher::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierQueryLauncher::ConstructL()
+    {
+    CLpdQueryLauncherBase::ConstructL();
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierQueryLauncher::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CLpdVerifierQueryLauncher* CLpdVerifierQueryLauncher::NewL( 
+    MLpdResultHandler& aHandler )
+    {
+    CLpdVerifierQueryLauncher* self =
+        new( ELeave ) CLpdVerifierQueryLauncher( aHandler );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+// Destructor
+CLpdVerifierQueryLauncher::~CLpdVerifierQueryLauncher()
+    {
+    // Intentionally empty
+    }
+
+
+// -----------------------------------------------------------------------------
+// CLpdVerifierQueryLauncher::ExtendedHandleDlgDismissedL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdVerifierQueryLauncher::ExtendedHandleDlgDismissedL()
+    {
+    iHandler.HandleVerificationResultL( iResult );
+    }
+
+void CLpdVerifierQueryLauncher::RequestType(TRequestType& aRequestType)
+    {
+    aRequestType = CLpdQueryLauncherBase::EVerification;
+    }
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/apilogger.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 class provides function that help in logging entry and exit of APIs of classes
+*
+*/
+
+#ifndef APILOGGER_H
+#define APILOGGER_H
+
+#include <iostream>
+#include <fstream> 
+#include <QDebug>
+#include <qfile.h>
+#include <qtextstream.h>
+
+using namespace std;
+
+
+class ApiLogger
+    {
+    public:
+    static void OpenLogFile();
+    static void CloseLogFile();
+    static void MyOutputHandler(QtMsgType type, const char *msg);
+    };
+    
+#endif // APILOGGER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/customdocumentloader.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Header file for Custom docml loader
+ *
+ */
+
+
+#ifndef CUSTOMDOCUMENTLOADER_H
+#define CUSTOMDOCUMENTLOADER_H
+#include <hbdocumentloader.h>
+
+//Forward Declarations
+
+class CustomDocumentLoader : public HbDocumentLoader
+{
+
+public:
+
+    /**
+     * Constructor.
+     */
+    CustomDocumentLoader();
+
+    /**
+     * Destructor.   
+     */
+    ~CustomDocumentLoader();
+
+public:
+
+    /**
+     * from base class
+     */
+    QObject *createObject(const QString& type, const QString &name);
+
+};
+
+#endif /* CUSTOMDOCUMENTLOADER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/posverificationcustomdialog.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,218 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Header file for Custom PosVerification dialog
+ *
+ */
+
+#ifndef POSVERIFICATIONCUSTOMDIALOG_H
+#define POSVERIFICATIONCUSTOMDIALOG_H
+
+#include <hbdialog.h>
+#include <hbdevicedialoginterface.h>
+#include <hblabel.h>
+#include <hbaction.h>
+
+
+class CustomDocumentLoader;
+
+class PosVerificationCustomDialog : public HbDialog,
+        public HbDeviceDialogInterface
+
+    {
+Q_OBJECT
+Q_PROPERTY( QString heading READ getHeading WRITE setHeading )
+Q_PROPERTY( QString queryText READ getQueryText WRITE setQueryText )
+Q_PROPERTY( QString queryText2 READ getQueryText2 WRITE setQueryText2 )
+Q_PROPERTY( QStringList requestor READ getRequestor WRITE setRequestor )
+
+public:
+
+    /*
+     * Constructor
+     */
+    PosVerificationCustomDialog();
+
+    /**
+     * Destructor
+     */
+    ~PosVerificationCustomDialog();
+
+public:
+    /**
+     * This method gets the widget from the application desginer docml file.
+     * param[in]- loader, instance of CustomDocumentLoader
+     */
+    void getWidgets(const CustomDocumentLoader &loader);
+
+    //from HbDeviceDialogInterface
+public:
+    /**
+     * Set device dialog widget parameters. This function may be called after the widget is created 
+     * to update widget parameters. parameters contains widget parameters.The structure and meaning
+     * of parameters is a contract between the plugin and a client. 
+     * @param[in] - parameters, QVariantMap, containing the key value pair for the properties
+     * @returns- bool, Returns true on success or false on failure.
+     */
+    bool setDeviceDialogParameters(const QVariantMap &parameters);
+
+    /**
+     * Returns an error last occurred. Error code ranges are defined in HbDeviceDialog.
+     * The code is passed to a client by device dialog framework
+     * @returns- int, error code 
+     */
+    int deviceDialogError() const;
+
+    /**
+     * Closes a device dialog widget gracefully. This function may called due to device dialog client
+     * calling HbDeviceDialog::cancel() or by device dialog service if it decides that a dialog needs 
+     * to be closed. Device dialog widget may also close itself without this function being called. 
+     * byClient is true if client initiated the closing. Otherwise the closing was initiated by the device
+     * dialog framework. The widget may also be deleted at any time ungracefully without closeDeviceDialog()
+     * being called.
+     */
+    void closeDeviceDialog(bool byClient);
+
+    /**
+     * Returns a pointer to a widget that implements the user interface of the device dialog.
+     * @returns-  HbPopup, pointer to the widget
+     */
+    HbPopup * deviceDialogWidget() const;
+    
+signals:
+    void deviceDialogClosed();
+    void deviceDialogData(QVariantMap data);
+
+private:
+
+    /**
+     * This method is used to set the name of requestors 
+     * requesting for position, in the verification dialog
+     * @param [in] - requestorList, list of names of the requestors
+     */
+    void setRequestor(QStringList& requestorList);
+
+    /**
+     * This method is used to gets the name of requestors 
+     * requesting for position, in the verification dialog
+     * @returns - QStringList, list of names of the requestors
+     */
+    QStringList getRequestor();
+
+    /**
+     * This method is used to set the heading for the dialog
+     * @param [in] - heading, string to be set as the heading for the dialog
+     */
+    void setHeading(QString& heading);
+
+    /**
+     * This method is used to get the heading for the dialog
+     * @returns - QString, heading for the dialog
+     */
+    QString getHeading();
+
+    /**
+     * This method is used to set the query text to be displayed, depending on the 
+     * policy.
+     * @param [in] - textQuery, string to be set as the query for the dialog
+     */
+    void setQueryText(QString& textQuery);
+
+    /**
+     * This method is used to get the query text displayed, depending on the 
+     * policy.
+     * @returns - QString, query for the dialog
+     */
+    QString getQueryText();
+
+    /**
+     * This method is used to set the query text to be displayed, depending on the 
+     * policy.
+     * @param [in] - textQuery, string to be set as the query line 2 for the dialog
+     */
+    void setQueryText2(QString& textQuery);
+
+    /**
+     * This method is used to get the query text line 2 displayed, depending on the 
+     * policy.
+     * @returns - QString, query line 2 for the dialog
+     */
+    QString getQueryText2();
+
+    /**
+     * This method sets the properties for the widget.
+     * The property value is validated before the property is set.
+     * @param[in] - parameters, QVariantMap, containing the key value pair for the properties
+     * @returns- bool, Returns true on success or false on failure.
+     */
+    bool setProperties(const QVariantMap& parameters);
+
+private slots:
+    /**
+     * This slot is called on acceting the query dialog
+     */
+    void posVerificationdlgAccepted();
+
+    /**
+     * This slot is called on rejecting the query dialog 
+     */
+    void posVerificationdlgRejected();
+
+    //member data
+private:
+    /**
+     * heading label for the device dialog
+     * Owns
+     */
+    HbLabel * mHeadingLabel;
+    
+    /**
+     * primary action (SK1) for the device dialog
+     * owns
+     */
+    HbAction * mPrimaryAction;
+
+    /**
+     * query text label
+     * owns
+     */
+    HbLabel * mQueryText;
+
+    /**
+     * query text label (line 2)
+     * Changes as per the first query text
+     * owns
+     */
+    HbLabel * mQueryText2;
+
+    /**
+     * Widget containing the list of the requestors
+     * owns
+     */
+    HbWidget * mRequestorList;
+    
+    /**
+     * list of names of the reqestors
+     * owns
+     */
+    QStringList mRequestorListItems;
+
+    /**
+     * secondry action (SK2) for the device dialog
+     * owns
+     */
+    HbAction * mSecondryAction;
+
+    };
+
+#endif // POSVERIFICATIONCUSTOMDIALOG_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/posverificationdialogplugin.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Header file for Custom PosVerification dialog
+ *
+ */
+
+#ifndef POSVERIFICATION_DIALOG_PLUGIN_H
+#define POSVERIFICATION_DIALOG_PLUGIN_H
+
+#include <hbdevicedialogplugin.h>
+#include <qtranslator.h>
+
+class PosVerificationDialogPlugin : public HbDeviceDialogPlugin
+    {
+Q_OBJECT
+
+public:
+    /**
+     * Constructor
+     */
+    PosVerificationDialogPlugin();
+
+    /**
+     * Destrcutor
+     */
+    ~PosVerificationDialogPlugin();
+    
+    /**
+     * Checks if client is allowed use the device dialog that the plugin creates. 
+     * Device dialog service calls this function before creating a device dialog or 
+     * attaching into an existing one if flag HbDeviceDialogPlugin::SecurityCheck is set. 
+     * The implementation is operating system dependent. 
+     * @returns- bool, Returns true if client is allowed to use the device dialog.
+     * @param[in] - deviceDialogType  Device dialog type.  
+     * @param[in] - parameters  Device dialog parameters.  
+     * @param[in] - securityInfo  Information for security check. Content is operating system dependent.
+     * The format is <key, value> pairs. Currently only Symbian is defined.
+     */
+
+    bool
+            accessAllowed(const QString &notificationType,
+                    const QVariantMap &parameters,
+                    const QVariantMap &securityInfo) const;
+    
+    /**
+     * Create a device dialog instance compatible with the version requested. 
+     * This could always be the latest version if it is backwards compatible with older versions. 
+     * Device dialog framework is unaware of version numbers in type strings. It performs string 
+     * comparison of the whole string when searching for a plugin
+     * @param[in] - deviceDialogType  Device dialog type.
+     * @param[in] - parameters  Device dialog parameters.  
+     * @returns - HbDeviceDialogInterface, device dialog instance
+     */
+
+    HbDeviceDialogInterface *createDeviceDialog(
+            const QString &deviceDialogType, const QVariantMap &parameters);
+    
+    /**
+     * Gets information of the device dialog created by the plugin. Device dialog manager calls 
+     * this function before creating the device dialog widget to check HbDeviceDialogPlugin::DeviceDialogGroup, 
+     * HbDeviceDialogPlugin::DeviceDialogFlag and priority. 
+     * @returns - true if device dialog information returned is valid.
+     */
+
+    bool deviceDialogInfo(const QString &deviceDialogType,
+            const QVariantMap &parameters, DeviceDialogInfo *info) const;
+    
+    /**
+     * Returns a list of device dialog types the plugin implements. A plugin may implement 
+     * several device dialog types. By convention device dialog type strings should follow 
+     * inverted domain name format
+     * @returns - list of device dialog types
+     */
+    QStringList deviceDialogTypes() const;
+
+    /**
+     * @returns - plugin flags
+     */
+    HbDeviceDialogPlugin::PluginFlags pluginFlags() const;
+    
+    /**
+     * Returns an error last occurred. Error code ranges are defined in HbDeviceDialog. The code 
+     * is passed to a client by device dialog framework
+     * @returns- errorcode
+     */
+    int error() const;
+    
+private:
+    
+    
+    /**
+     * instance of translator
+     * owns
+     */
+    QTranslator * mTranslator;
+    };
+
+#endif // POSVERIFICATION_DIALOG_PLUGIN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/posverificationdialogplugin.pro	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,48 @@
+# 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: project file for positioing settings in control panel
+TEMPLATE = lib
+TARGET = posverificationdialogplugin
+DEPENDPATH += .
+INCLUDEPATH += ../inc
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+CONFIG += hb \
+    plugin
+MOC_DIR = moc
+OBJECTS_DIR = obj
+RCC_DIR = rcc
+RESOURCES = resources/posverificationdialog.qrc
+
+#Uncomment following line to disable logging
+#DEFINES += QT_NO_DEBUG_OUTPUT
+
+# Platforms
+SYMBIAN_PLATFORMS = WINSCW \
+    ARMV5
+symbian::TARGET.UID3 = 0x2002E718
+SOURCES += src/apilogger.cpp \
+		src/posverificationdialogplugin.cpp \
+    src/customdocumentloader.cpp \
+    src/posverificationcustomdialog.cpp
+HEADERS += inc/apilogger.h \
+    inc/posverificationdialogplugin.h \
+    inc/customdocumentloader.h \
+    inc/posverificationcustomdialog.h
+symbian: { 
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    TARGET.EPOCALLOWDLLDATA = 1
+    pluginstub.sources = posverificationdialogplugin.dll
+    
+    # This is for new exporting system coming in garden
+    for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin $$deploy.path$$qtplugins.path/$$basename(qtplugin)"
+    pluginstub.path = /resource/plugins/devicedialogs
+    DEPLOYMENT += pluginstub
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/resources/posverificationcustomdialog.docml	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="1.1">
+    <object name="qtl_dialog_softkey_2_left" type="HbAction">
+        <string name="role" value="HbDialog:primaryAction"/>
+        <string locid="txt_loe_button_accept" name="text" value="Accept"/>
+    </object>
+    <object name="qtl_dialog_softkey_2_right" type="HbAction">
+        <string name="role" value="HbDialog:secondaryAction"/>
+        <string locid="txt_common_button_reject" name="text" value="Reject"/>
+    </object>
+    <widget name="PosVerificationCustomDialog" type="PosVerificationCustomDialog">
+        <sizehint height="42.38806un" type="PREFERRED" width="50.5un"/>
+        <widget name="heading" role="HbDialog:headingWidget" type="HbLabel">
+            <enums name="textWrapping" value="TextWordWrap"/>
+            <enums name="alignment" value="AlignLeft|AlignLeading"/>
+            <contentsmargins bottom="var(hb-param-margin-gene-popup)" left="var(hb-param-margin-gene-popup)" right="var(hb-param-margin-gene-popup)" top="var(hb-param-margin-gene-popup)"/>
+            <string name="plainText" value="Location request"/>
+            <fontspec name="fontSpec" role="Primary" textheight="var(hb-param-text-height-primary)"/>
+        </widget>
+        <widget name="scrollArea" role="HbDialog:contentWidget" type="HbScrollArea">
+            <widget name="containerWidget" role="HbScrollArea:contents" type="HbWidget">
+                <widget name="container_2" type="HbWidget">
+                    <widget name="queryText_1" type="HbLabel">
+                        <enums name="textWrapping" value="TextWordWrap"/>
+                        <enums name="alignment" value="AlignLeft|AlignLeading"/>
+                        <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+                        <sizehint height="14un" type="PREFERRED" width="5.67164un"/>
+                        <sizehint height="14un" type="MINIMUM"/>
+                        <contentsmargins bottom="var(hb-param-margin-gene-popup)" left="var(hb-param-margin-gene-popup)" right="0" top="0"/>
+                        <sizehint type="MAXIMUM" width="50un"/>
+                        <string name="plainText" value="Your location will be shared by default if you don't respond"/>
+                        <fontspec name="fontSpec" role="Primary" textheight="var(hb-param-text-height-primary)"/>
+                    </widget>
+                    <widget name="requestors" type="HbWidget">
+                        <real name="z" value="0"/>
+                        <sizehint height="23.8806un" type="PREFERRED" width="23.8806un"/>
+                        <layout type="stacked"/>
+                    </widget>
+                    <real name="z" value="0"/>
+                    <sizehint height="29.25373un" type="PREFERRED" width="49.85075un"/>
+                    <sizehint height="2504062.01158un" type="MAXIMUM"/>
+                    <layout orientation="Vertical" type="linear">
+                        <contentsmargins bottom="var(hb-param-margin-gene-popup)" left="var(hb-param-margin-gene-popup)" right="var(hb-param-margin-gene-popup)" top="var(hb-param-margin-gene-popup)"/>
+                        <linearitem itemname="queryText_1"/>
+                        <linearitem itemname="requestors"/>
+                    </layout>
+                </widget>
+                <real name="z" value="0"/>
+                <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+                <sizehint height="50un" type="PREFERRED" width="50un"/>
+                <sizehint height="2504062.01158un" type="MAXIMUM"/>
+                <layout type="anchor">
+                    <anchoritem dst="container_2" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                    <anchoritem dst="container_2" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
+                </layout>
+            </widget>
+            <real name="z" value="1"/>
+        </widget>
+        <ref object="qtl_dialog_softkey_2_left" role="HbWidget:addAction"/>
+        <ref object="qtl_dialog_softkey_2_right" role="HbWidget:addAction"/>
+    </widget>
+    <metadata activeUIState="Common ui state" display="NHD-3.2-inch_portrait" unit="un">
+        <uistate name="Common ui state" sections="#common"/>
+    </metadata>
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/resources/posverificationdialog.qrc	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,5 @@
+<RCC>
+    <qresource prefix="/xml" >
+        <file alias="posverificationcustomdialog.docml" >posverificationcustomdialog.docml</file>
+    </qresource>
+</RCC>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/apilogger.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies 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 class provides function that help in logging entry and exit of APIs of classes
+*
+*/
+
+
+#include "apilogger.h"
+#include <qdatetime.h>
+
+const char* debugFileName("c://logs//lbs//posverificationdlg.txt");
+ofstream logfile;
+
+void ApiLogger::OpenLogFile() 
+{   
+    logfile.open(debugFileName, ios::app);   
+}
+
+void ApiLogger::CloseLogFile() 
+{
+    logfile.flush();
+    logfile.close();
+}
+
+void ApiLogger::MyOutputHandler(QtMsgType type, const char *msg) 
+{    
+    switch (type) {
+        case QtDebugMsg:
+            logfile << QTime::currentTime().toString().toAscii().data() << " Debug: " << msg << "\n";            
+            break;
+        case QtCriticalMsg:
+            logfile << QTime::currentTime().toString().toAscii().data() << " Critical: " << msg << "\n";
+            break;
+        case QtWarningMsg:
+           logfile << QTime::currentTime().toString().toAscii().data() << " Warning: " << msg << "\n";
+            break;
+        case QtFatalMsg:
+            logfile << QTime::currentTime().toString().toAscii().data() << " Fatal: " << msg << "\n";
+        default:
+            break;
+    }
+    logfile.flush();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/customdocumentloader.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies 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 implements the custom dialog loader for posverification dialogs
+ *
+ */
+
+#include "customdocumentloader.h"
+#include "posverificationcustomdialog.h"
+
+// ---------------------------------------------------------------------------
+// CustomDocumentLoader::CustomDocumentLoader()
+// ---------------------------------------------------------------------------
+//
+CustomDocumentLoader::CustomDocumentLoader()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CustomDocumentLoader::~CustomDocumentLoader()
+// ---------------------------------------------------------------------------
+//
+CustomDocumentLoader::~CustomDocumentLoader()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CustomDocumentLoader::createObject
+// ---------------------------------------------------------------------------
+//
+QObject *CustomDocumentLoader::createObject(const QString& type,
+        const QString &name)
+    {
+    //for CustomDialog
+    if (type == PosVerificationCustomDialog::staticMetaObject.className())
+        {
+        QObject *object = new PosVerificationCustomDialog;
+        object->setObjectName(name);
+        return object;
+        }
+    //default case
+    return HbDocumentLoader::createObject(type, name);
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/posverificationcustomdialog.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,336 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies 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 implements the custom dialog for positioning verification dialogs
+ *
+ */
+
+#include "posverificationcustomdialog.h"
+#include "customdocumentloader.h"
+
+#include <QtDebug>
+#include <qgraphicsgridlayout.h>
+#include <qsizepolicy.h>
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::PosVerificationCustomDialog
+//---------------------------------------------------------------
+PosVerificationCustomDialog::PosVerificationCustomDialog() :
+    mHeadingLabel(NULL), mPrimaryAction(NULL), mQueryText(NULL), mQueryText2(
+            NULL), mRequestorList(NULL), mRequestorListItems(NULL),
+            mSecondryAction(NULL)
+    {
+    qDebug() << "PosVerificationCustomDialog::PosVerificationCustomDialog()";
+    }
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::~PosVerificationCustomDialog
+//---------------------------------------------------------------
+PosVerificationCustomDialog::~PosVerificationCustomDialog()
+    {
+    qDebug()
+            << "+PosVerificationCustomDialog::~PosVerificationCustomDialog()";
+    /*            
+     delete mHeadingLabel;
+     mHeadingLabel = NULL;
+
+     delete mPrimaryAction;
+     mPrimaryAction = NULL;
+
+     delete mQueryText;
+     mQueryText = NULL;
+
+     mRequestorListItems.clear();
+
+     delete mRequestorList;
+     mRequestorList = NULL;
+
+     delete mSecondryAction;
+     mSecondryAction = NULL;
+     */
+    delete mQueryText2;
+    mQueryText2 = NULL;
+
+    qDebug()
+            << "-PosVerificationCustomDialog::~PosVerificationCustomDialog()";
+    }
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::setProperties
+// Set properties
+//---------------------------------------------------------------
+
+bool PosVerificationCustomDialog::setProperties(const QVariantMap& parameters)
+    {
+    qDebug() << "+PosVerificationCustomDialog::setProperties()";
+    QVariantMap::const_iterator i = parameters.constBegin();
+    while (i != parameters.constEnd())
+        {
+        QByteArray key = i.key().toAscii();
+        qDebug() << "-PosVerificationCustomDialog::setProperties(): Key is "
+                << key;
+        qDebug() << "-PosVerificationCustomDialog::setProperties(): data is "
+                << key.constData();
+        //check for the validity of the data
+        if (property(key.constData()).isValid())
+            {
+            //sets the property values
+            setProperty(key.constData(), i.value());
+            }
+        else
+            {
+            qDebug()
+                    << "-PosVerificationCustomDialog::setProperties(): value - false";
+            return false;
+            }
+        ++i;
+        }
+    qDebug() << "-PosVerificationCustomDialog::setProperties()";
+    return true;
+    }
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::setDeviceDialogParameters
+//---------------------------------------------------------------
+bool PosVerificationCustomDialog::setDeviceDialogParameters(
+        const QVariantMap &parameters)
+    {
+    qDebug() << "+PosVerificationCustomDialog::setDeviceDialogParameters()";
+    setModal(true);
+    setTimeout(HbPopup::NoTimeout);
+    qDebug() << "-PosVerificationCustomDialog::setDeviceDialogParameters()";
+    return setProperties(parameters);
+    }
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::deviceDialogError
+//---------------------------------------------------------------
+int PosVerificationCustomDialog::deviceDialogError() const
+    {
+    qDebug() << "PosVerificationCustomDialog::deviceDialogError()";
+    return 0;
+    }
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::closeDeviceDialog
+//---------------------------------------------------------------
+void PosVerificationCustomDialog::closeDeviceDialog(bool byClient)
+    {
+    qDebug() << "+PosVerificationCustomDialog::closeDeviceDialog()";
+    Q_UNUSED(byClient);
+    close();
+    emit
+    deviceDialogClosed();
+    qDebug() << "-PosVerificationCustomDialog::closeDeviceDialog()";
+    }
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::deviceDialogWidget
+//---------------------------------------------------------------
+HbPopup* PosVerificationCustomDialog::deviceDialogWidget() const
+    {
+    qDebug() << "PosVerificationCustomDialog::deviceDialogWidget()";
+    return const_cast<PosVerificationCustomDialog*> (this);
+    }
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::setHeading
+//---------------------------------------------------------------
+void PosVerificationCustomDialog::setHeading(QString& heading)
+    {
+    qDebug() << "+PosVerificationCustomDialog::setHeading()" << heading;
+    mHeadingLabel->setPlainText(heading);
+    qDebug() << "-PosVerificationCustomDialog::setHeading()";
+    }
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::getHeading
+//---------------------------------------------------------------
+QString PosVerificationCustomDialog::getHeading()
+    {
+    qDebug() << "PosVerificationCustomDialog::getHeading()";
+    return mHeadingLabel->plainText();
+    }
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::setQueryText
+//---------------------------------------------------------------
+void PosVerificationCustomDialog::setQueryText(QString& textQuery)
+    {
+    qDebug() << "+PosVerificationCustomDialog::setQueryText()" << textQuery;
+    mQueryText->setPlainText(textQuery);
+    qDebug() << "-PosVerificationCustomDialog::setQueryText()";
+    }
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::getQueryText
+//---------------------------------------------------------------
+QString PosVerificationCustomDialog::getQueryText()
+    {
+    qDebug() << "PosVerificationCustomDialog::getQueryText()";
+    return mQueryText->plainText();
+    }
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::setQueryText2
+//---------------------------------------------------------------
+void PosVerificationCustomDialog::setQueryText2(QString& textQuery)
+    {
+    qDebug() << "+PosVerificationCustomDialog::setQueryText2()" << textQuery;
+    mQueryText2 = new HbLabel();
+    if (mQueryText2)
+        {
+        mQueryText2->clear();
+        mQueryText2->setPlainText(textQuery);
+        mQueryText2->setFontSpec(HbFontSpec(HbFontSpec::Primary));
+        }
+    qDebug() << "-PosVerificationCustomDialog::setQueryText2()";
+    }
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::getQueryText2
+//---------------------------------------------------------------
+QString PosVerificationCustomDialog::getQueryText2()
+    {
+    qDebug() << "PosVerificationCustomDialog::getQueryText2()";
+    if (mQueryText2)
+        {
+        return mQueryText2->plainText();
+        }
+    return "";
+    }
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::getWidgets
+//---------------------------------------------------------------
+void PosVerificationCustomDialog::getWidgets(
+        const CustomDocumentLoader &loader)
+    {
+    qDebug() << "+PosVerificationCustomDialog::getWidgets()";
+
+    mHeadingLabel = qobject_cast<HbLabel*> (loader.findWidget("heading"));
+    Q_ASSERT_X((mHeadingLabel != 0), "PosVerificationCustomDialog", "invalid DocML file");
+
+    mQueryText = qobject_cast<HbLabel*> (loader.findWidget("queryText_1"));
+    Q_ASSERT_X((mQueryText != 0), "PosVerificationCustomDialog", "invalid DocML file");
+
+    mRequestorList
+            = qobject_cast<HbWidget*> (loader.findWidget("requestors"));
+    Q_ASSERT_X((mRequestorList != 0), "PosVerificationCustomDialog", "invalid DocML file");
+
+    mPrimaryAction = qobject_cast<HbAction*> (loader.findObject(
+            "qtl_dialog_softkey_2_left"));
+    Q_ASSERT_X((mPrimaryAction != 0), "PosVerificationCustomDialog", "invalid DocML file");
+    QObject::connect(mPrimaryAction, SIGNAL(triggered()), this,
+            SLOT(posVerificationdlgAccepted()));
+
+    mSecondryAction = qobject_cast<HbAction*> (loader.findObject(
+            "qtl_dialog_softkey_2_right"));
+    Q_ASSERT_X((mSecondryAction != 0), "PosVerificationCustomDialog", "invalid DocML file");
+
+    QObject::connect(mSecondryAction, SIGNAL(triggered()), this,
+            SLOT(posVerificationdlgRejected()));
+    qDebug() << "-PosVerificationCustomDialog::getWidgets()";
+    }
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::setRequestor
+//---------------------------------------------------------------
+void PosVerificationCustomDialog::setRequestor(QStringList& requestorList)
+    {
+    qDebug() << "+PosVerificationCustomDialog::setRequestor()";
+    int rowadd = 1;
+    mRequestorListItems = requestorList;
+    QGraphicsGridLayout *layout = new QGraphicsGridLayout;
+    if (!layout)
+        {
+        qDebug() << "setRequestor(): Creating layout failed";
+        return;
+        }
+
+    qreal margin = 0;
+    qreal leftmargin = 0;
+    style()->parameter("hb-param-margin-gene-middle-vertical", margin);
+    style()->parameter("hb-param-margin-gene-popup", leftmargin);
+    QSizePolicy policy;
+    policy.setHorizontalPolicy(QSizePolicy::Preferred);
+    policy.setVerticalPolicy(QSizePolicy::Ignored);
+    if (mQueryText2)
+        {
+        mQueryText2->setSizePolicy(policy);
+        mQueryText2->setAlignment(Qt::AlignTop);
+        layout->addItem(mQueryText2, 1, 0);
+        layout->setRowSpacing(1, margin);
+        layout->setContentsMargins(leftmargin, 0, 0, 0);
+        rowadd = 2;
+        }
+
+    QStringList::const_iterator iterator;
+    for (iterator = requestorList.begin(); iterator != requestorList.end(); ++iterator)
+        {
+        int i = iterator - requestorList.begin();
+        HbLabel * requestorName = new HbLabel();
+        if (requestorName)
+            {
+            qDebug() << "setRequestor()" << *iterator;
+            requestorName->setFontSpec(HbFontSpec(HbFontSpec::Secondary));
+            requestorName->setPlainText(*iterator);
+            requestorName->setSizePolicy(policy);
+            requestorName->setAlignment(Qt::AlignTop);
+
+            layout->addItem(requestorName, i + rowadd, 0);
+            layout->setRowSpacing(i + rowadd, margin);
+            layout->setContentsMargins(leftmargin, 0, 0, 0);
+            }
+        }
+    mRequestorList->setSizePolicy(policy);
+    mRequestorList->setLayout(layout);
+    qDebug() << "-PosVerificationCustomDialog::setRequestor()";
+    }
+
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::getRequestor
+//---------------------------------------------------------------
+QStringList PosVerificationCustomDialog::getRequestor()
+    {
+    qDebug() << "PosVerificationCustomDialog::getRequestor()";
+    return mRequestorListItems;
+    }
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::posVerificationdlgAccepted
+//---------------------------------------------------------------
+void PosVerificationCustomDialog::posVerificationdlgAccepted()
+    {
+    qDebug() << "+PosVerificationCustomDialog::posVerificationdlgAccepted()";
+    emit
+    deviceDialogClosed();
+    qDebug() << "-PosVerificationCustomDialog::posVerificationdlgAccepted()";
+    }
+//---------------------------------------------------------------
+//PosVerificationCustomDialog::posVerificationdlgRejected
+//---------------------------------------------------------------
+void PosVerificationCustomDialog::posVerificationdlgRejected()
+    {
+    qDebug() << "+PosVerificationCustomDialog::posVerificationdlgRejected()";
+    QVariantMap *data = new QVariantMap();
+    QVariant value(-21);
+    if (data)
+        {
+        data->insert("errorCode", value);
+        emit
+        deviceDialogData(*data);
+        }
+    //data is currently not being used in the client side
+    emit
+    deviceDialogClosed();
+    delete data;
+    qDebug() << "-PosVerificationCustomDialog::posVerificationdlgRejected()";
+    }
+
+// End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/posverificationdialogplugin.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,242 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies 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 file implements the plugin interface for positioning verification dialogs
+ *
+ */
+#include "posverificationdialogplugin.h"
+//User Includes
+#include "customdocumentloader.h"
+#include "posverificationcustomdialog.h"
+#include "apilogger.h"
+
+#include <QDebug>
+#include <QTCore>
+
+//Carbide Application docml file
+const char *POSVERFICATIONDIALOG_DOCML =
+        ":/xml/posverificationcustomdialog.docml";
+
+// This plugin implements one custom dialog type
+enum DeviceDlgType
+    {
+    PosVerificationDialogType
+    };
+static const struct
+    {
+    const char *mTypeString;
+    DeviceDlgType mType;
+    } verdlgtypes[] =
+    {
+        {
+        "hb.posverifiction.dialog/1.0", PosVerificationDialogType
+        }
+    };
+
+//-----------------------------------------------------------------------
+// PosVerificationDialogPlugin::PosVerificationDialogPlugin()    
+// Constructor
+//-----------------------------------------------------------------------    
+PosVerificationDialogPlugin::PosVerificationDialogPlugin() :
+    mTranslator(NULL)
+    {
+    qDebug() << "+PosVerificationDialogPlugin::PosVerificationDialogPlugin()";
+    mTranslator = new QTranslator();
+
+    QString lang = QLocale::system().name();
+    QString path = "z:/resource/qt/translations/";
+    QString altpath = "c://resource/";
+    bool loaded = false;
+    loaded = mTranslator->load(path + QString("lilocationmw_") + lang);
+    if (loaded == false)
+        {
+        loaded = mTranslator->load(altpath + QString("lilocationmw_") + lang);
+        }
+    if (loaded)
+        {
+        qApp->installTranslator(mTranslator);
+        }
+    //#ifndef QT_NO_DEBUG_OUTPUT
+    //    ApiLogger::OpenLogFile();
+    //    qInstallMsgHandler(ApiLogger::MyOutputHandler);
+    //#endif
+    qDebug() << "-PosVerificationDialogPlugin::PosVerificationDialogPlugin()";
+    }
+
+//-----------------------------------------------------------------------
+// PosVerificationDialogPlugin::~PosVerificationDialogPlugin()    
+// Destructor
+//----------------------------------------------------------------------- 
+PosVerificationDialogPlugin::~PosVerificationDialogPlugin()
+    {
+    qDebug()
+            << "+PosVerificationDialogPlugin::~PosVerificationDialogPlugin()";
+    if (mTranslator)
+        {
+        if (mTranslator->isEmpty() == false)
+            qApp->removeTranslator(mTranslator);
+        delete mTranslator;
+        }
+    qDebug()
+            << "-PosVerificationDialogPlugin::~PosVerificationDialogPlugin()";
+    //#ifndef QT_NO_DEBUG_OUTPUT
+    //    ApiLogger::CloseLogFile();
+    //#endif
+    }
+
+//-----------------------------------------------------------------------
+// PosVerificationDialogPlugin::accessAllowed 
+// Check if client is allowed to use device dialog widget
+//----------------------------------------------------------------------- 
+bool PosVerificationDialogPlugin::accessAllowed(
+        const QString &deviceDialogType, const QVariantMap &parameters,
+        const QVariantMap &securityInfo) const
+    {
+    qDebug() << "+PosVerificationDialogPlugin::accessAllowed()";
+    Q_UNUSED(deviceDialogType)
+    Q_UNUSED(parameters)
+    Q_UNUSED(securityInfo)
+
+    // This plugin doesn't perform operations that may compromise security. All clients
+    // are allowed to use.
+    qDebug() << "-PosVerificationDialogPlugin::accessAllowed()";
+    return true;
+    }
+
+//-----------------------------------------------------------------------
+// PosVerificationDialogPlugin::createDeviceDialog 
+// Create device dialog widget
+//-----------------------------------------------------------------------
+HbDeviceDialogInterface * PosVerificationDialogPlugin::createDeviceDialog(
+        const QString &deviceDialogType, const QVariantMap &parameters)
+    {
+    qDebug() << "+PosVerificationDialogPlugin::createDeviceDialog(): Type"
+            << deviceDialogType;
+    int i;
+    PosVerificationCustomDialog * dialog = 0;
+    const int numTypes = sizeof(verdlgtypes) / sizeof(verdlgtypes[0]);
+    for (i = 0; i < numTypes; ++i)
+        {
+        if (verdlgtypes[i].mTypeString == deviceDialogType)
+            {
+            break;
+            }
+        }
+    if (i < numTypes)
+        {
+        switch (verdlgtypes[i].mType)
+            {
+            case PosVerificationDialogType:
+                {
+                CustomDocumentLoader loader;
+                bool ok = false;
+                loader.load(POSVERFICATIONDIALOG_DOCML, &ok);
+                Q_ASSERT_X(ok, "PosVerificationCustomDialog", "invalid DocML file");
+
+                if (ok)
+                    {
+                    dialog = qobject_cast<PosVerificationCustomDialog *> (
+                            loader.findWidget("PosVerificationCustomDialog"));
+                    if (dialog)
+                        {
+                        dialog->getWidgets(loader);
+                        dialog->setDeviceDialogParameters(parameters);
+                        qDebug() << "createDeviceDialog(): success";
+                        }
+                    else
+                        {
+                        qDebug()
+                                << "createDeviceDialog(): creation of device dialog failed";
+                        }
+                    }
+                else
+                    {
+                    qDebug() << "createDeviceDialog(): loading docml failed";
+                    }
+                break;
+                }
+            default:
+                {
+                qDebug() << "createDeviceDialog(): default case";
+                Q_ASSERT(false);
+                break;
+                }
+            }
+        }
+    else
+        {
+        qDebug()
+                << "createDeviceDialog(): Dialog type not supported by this plugin";
+        }
+    qDebug() << "-PosVerificationDialogPlugin::createDeviceDialog()";
+    return dialog;
+    }
+
+//-----------------------------------------------------------------------
+// PosVerificationDialogPlugin::deviceDialogInfo 
+// Return information of device dialog the plugin creates
+//-----------------------------------------------------------------------
+bool PosVerificationDialogPlugin::deviceDialogInfo(
+        const QString &deviceDialogType, const QVariantMap &parameters,
+        DeviceDialogInfo *info) const
+    {
+    qDebug() << "+PosVerificationDialogPlugin::deviceDialogInfo()";
+    Q_UNUSED(parameters)
+    Q_UNUSED(deviceDialogType)
+
+    info->group = GenericDeviceDialogGroup;
+    info->flags = NoDeviceDialogFlags;
+    info->priority = DefaultPriority;
+    qDebug() << "-PosVerificationDialogPlugin::deviceDialogInfo()";
+    return true;
+    }
+
+//-----------------------------------------------------------------------
+// PosVerificationDialogPlugin::deviceDialogTypes 
+// Return device dialog types this plugin implements
+//-----------------------------------------------------------------------
+QStringList PosVerificationDialogPlugin::deviceDialogTypes() const
+    {
+    qDebug() << "+PosVerificationDialogPlugin::deviceDialogTypes()";
+    QStringList types;
+    const int numTypes = sizeof(verdlgtypes) / sizeof(verdlgtypes[0]);
+    for (int i = 0; i < numTypes; i++)
+        {
+        types.append(verdlgtypes[i].mTypeString);
+        }
+    qDebug() << "-PosVerificationDialogPlugin::deviceDialogTypes()";
+    return types;
+    }
+
+//-----------------------------------------------------------------------
+// PosVerificationDialogPlugin::pluginFlags 
+// Return plugin flags
+//-----------------------------------------------------------------------
+HbDeviceDialogPlugin::PluginFlags PosVerificationDialogPlugin::pluginFlags() const
+    {
+    qDebug() << "PosVerificationDialogPlugin::pluginFlags()";
+    return NoPluginFlags;
+    }
+
+//-----------------------------------------------------------------------
+// PosVerificationDialogPlugin::error 
+// Return last error
+//-----------------------------------------------------------------------
+int PosVerificationDialogPlugin::error() const
+    {
+    qDebug() << "PosVerificationDialogPlugin::error()";
+    return 0;
+    }
+
+Q_EXPORT_PLUGIN2(posverificationdialogplugin, PosVerificationDialogPlugin)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/privacyverifiernotifierui.pro	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies 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 file for positioing settings in control panel                                                      
+#                                                                    
+
+
+TEMPLATE = subdirs
+
+SYMBIAN_PLATFORMS = WINSCW ARMV5
+
+SUBDIRS += locnotificationengine/locnotificationengine.pro
+SUBDIRS += posverificationdialogplugin/posverificationdialogplugin.pro
+
+# Build.inf rules
+BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>" \
+    "install/privacydialogs_stub.sis /epoc32/data/z/system/install/privacydialogs_stub.sis" \
+    "rom/privacydialogs.iby CORE_MW_LAYER_IBY_EXPORT_PATH(privacydialogs.iby)"
+
+symbian {
+BLD_INF_RULES.prj_mmpfiles = "./locutils/group/locutils.mmp" \
+                             "./locprivacyserver/group/locprivacyserver.mmp" \
+                             "./contactresolversession/group/contactresolversession.mmp" \
+                             "./locverifier/group/locverifierdlg.mmp"
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/privacyverifiernotifierui/rom/privacydialogs.iby	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: IBY file for server component
+*
+*/
+#ifndef __PRIVACYDIALOGS_IBY__
+#define __PRIVACYDIALOGS_IBY__
+
+#include <bldvariant.hrh>
+#if defined(__PRIVACYFRAMEWORK)
+// Client library
+file=ABI_DIR\BUILD_DIR\locnotificationclient.dll             SHARED_LIB_DIR\locnotificationclient.dll
+// Server
+file=ABI_DIR\BUILD_DIR\locnotificationserver.exe             PROGRAMS_DIR\locnotificationserver.exe
+// Engine
+file=ABI_DIR\BUILD_DIR\locnotificationengine.dll                   SHARED_LIB_DIR\locnotificationengine.dll
+// Location Utils
+file=ABI_DIR\BUILD_DIR\locutils.dll             SHARED_LIB_DIR\locutils.dll
+// Location Verifier Plug-in 
+ECOM_PLUGIN(locverifierdlg.dll,locverifierdlg.rsc)
+// Custom device dialog plugin
+file=ABI_DIR\BUILD_DIR\posverificationdialogplugin.dll		SHARED_LIB_DIR\posverificationdialogplugin.dll
+data=\epoc32\data\z\resource\plugins\devicedialogs\posverificationdialogplugin.qtplugin		\resource\plugins\devicedialogs\posverificationdialogplugin.qtplugin    
+// stub sis
+data=DATAZ_\system\install\privacydialogs_stub.sis					       system\install\privacydialogs_stub.sis  
+#endif // (__PRIVACYFRAMEWORK)
+
+#endif
--- a/locationtriggering/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/locationtriggering/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 
 PRJ_PLATFORMS  
-DEFAULT
+DEFAULT GCCE
 
 PRJ_EXPORTS
 #ifdef CORE_MW_LAYER_IBY_EXPORT_PATH
--- a/locationtriggering/ltcontainer/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/locationtriggering/ltcontainer/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -17,7 +17,7 @@
 
 
 PRJ_PLATFORMS
-DEFAULT
+DEFAULT GCCE
 
 PRJ_EXPORTS
 ../inc/lbtcontainer.h                           |../../inc/lbtcontainer.h
@@ -31,8 +31,7 @@
 ../inc/lbtsecuritypolicy.h 						|../../inc/lbtsecuritypolicy.h
 
 // Registration file for backup and restore
-../data/backup_registration.xml     /epoc32/winscw/c/private/1028312B/backup_registration.xml
-../data/backup_registration.xml     /epoc32/data/z/private/1028312B/backup_registration.xml
+../data/backup_registration.xml     z:/private/1028312B/backup_registration.xml
 
 
 PRJ_MMPFILES
--- a/locationtriggering/ltcontainer/inc/lbtcontainerutilities.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationtriggering/ltcontainer/inc/lbtcontainerutilities.h	Wed Jun 23 18:40:52 2010 +0300
@@ -116,7 +116,7 @@
 		 * 
 		 * @return ETrue if the UIDs suffices the security polity, EFalse otherwise
 		 */
-		static TBool LbtContainerUtilities::RunSecurityPolicy( TUid& aOwnerUid,
+		static TBool RunSecurityPolicy( TUid& aOwnerUid,
 															   TUid& aManagerUid,
 															   TSecureId& aStartupProcessUid,
 															   TLbtSecurityPolicy& aSecurityPolicy );
--- a/locationtriggering/rom/locationtriggering.iby	Thu May 27 13:18:17 2010 +0300
+++ b/locationtriggering/rom/locationtriggering.iby	Wed Jun 23 18:40:52 2010 +0300
@@ -51,8 +51,6 @@
 // Backup and restore registeration file
 data=DATAZ_\private\1028312B\backup_registration.xml			\private\1028312B\backup_registration.xml
 
-// Central repository file
-data=DATAZ_\private\10202be9\1028312F.txt				\private\10202be9\1028312F.txt
 
 // Location Triggering Management Library
 file=ABI_DIR\BUILD_DIR\lbtmanager.dll                  SHARED_LIB_DIR\lbtmanager.dll
--- a/locationtriggering/tsrc/lbtengine_test/Additionaltests/inc/AsynOperationAO.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationtriggering/tsrc/lbtengine_test/Additionaltests/inc/AsynOperationAO.h	Wed Jun 23 18:40:52 2010 +0300
@@ -96,7 +96,7 @@
        void ListTriggerIdsList(RLbt& aLbt, RArray < TLbtTriggerId >& aTriggerIdList,
             CActiveSchedulerWait* aWait,CLbtListTriggerOptions* aListOptions=NULL);                          
         void CreateIterator(RLbt& aLbt,CActiveSchedulerWait* aWait,CLbtListTriggerOptions* aListOptions=NULL);   
-        void CTriggerFireObserver::DeleteFilteredTriggers( RLbt& aLbt,CLbtTriggerFilterBase* aFilter,CActiveSchedulerWait* aWait ); 
+        void DeleteFilteredTriggers( RLbt& aLbt,CLbtTriggerFilterBase* aFilter,CActiveSchedulerWait* aWait ); 
         TInt GetFireCount( ) ; 
         TInt GetError( ) ; 
         
@@ -104,7 +104,7 @@
         void UpdateTriggersState(RLbt& aLbt, CLbtTriggerEntry::TLbtTriggerState aState, 
             CActiveSchedulerWait* aWait,CLbtTriggerFilterBase *  aFilter=NULL) ;
             
-        void CTriggerFireObserver::PopulateFromCurrentCell(CLbtGeoCell& cell,CActiveSchedulerWait* aWait )  ;             
+        void PopulateFromCurrentCell(CLbtGeoCell& cell,CActiveSchedulerWait* aWait )  ;             
         
         void RunL( );
         
--- a/locationtriggering/tsrc/lbtengine_test/CellbasedtriggerOperations/inc/AsynOperationAO.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationtriggering/tsrc/lbtengine_test/CellbasedtriggerOperations/inc/AsynOperationAO.h	Wed Jun 23 18:40:52 2010 +0300
@@ -84,7 +84,7 @@
        void ListTriggerIdsList(RLbt& aLbt, RArray < TLbtTriggerId >& aTriggerIdList,
             CActiveSchedulerWait* aWait,CLbtListTriggerOptions* aListOptions=NULL);                          
         void CreateIterator(RLbt& aLbt,CActiveSchedulerWait* aWait,CLbtListTriggerOptions* aListOptions=NULL);   
-        void CTriggerFireObserver::DeleteFilteredTriggers( RLbt& aLbt,CLbtTriggerFilterBase* aFilter,CActiveSchedulerWait* aWait ); 
+        void DeleteFilteredTriggers( RLbt& aLbt,CLbtTriggerFilterBase* aFilter,CActiveSchedulerWait* aWait ); 
         TInt GetFireCount( ) ; 
         TInt GetError( ) ; 
         
@@ -92,7 +92,7 @@
         void UpdateTriggersState(RLbt& aLbt, CLbtTriggerEntry::TLbtTriggerState aState, 
             CActiveSchedulerWait* aWait,CLbtTriggerFilterBase *  aFilter=NULL) ;
             
-        void CTriggerFireObserver::PopulateFromCurrentCell(CLbtGeoCell& cell,CActiveSchedulerWait* aWait )  ;             
+        void PopulateFromCurrentCell(CLbtGeoCell& cell,CActiveSchedulerWait* aWait )  ;             
         
         void RunL( );
         
--- a/locationtriggering/tsrc/lbtengine_test/TestHybridTriggers/inc/AsynOperationAO.h	Thu May 27 13:18:17 2010 +0300
+++ b/locationtriggering/tsrc/lbtengine_test/TestHybridTriggers/inc/AsynOperationAO.h	Wed Jun 23 18:40:52 2010 +0300
@@ -83,7 +83,7 @@
        void ListTriggerIdsList(RLbt& aLbt, RArray < TLbtTriggerId >& aTriggerIdList,
             CActiveSchedulerWait* aWait,CLbtListTriggerOptions* aListOptions=NULL);                          
         void CreateIterator(RLbt& aLbt,CActiveSchedulerWait* aWait,CLbtListTriggerOptions* aListOptions=NULL);   
-        void CTriggerFireObserver::DeleteFilteredTriggers( RLbt& aLbt,CLbtTriggerFilterBase* aFilter,CActiveSchedulerWait* aWait ); 
+        void DeleteFilteredTriggers( RLbt& aLbt,CLbtTriggerFilterBase* aFilter,CActiveSchedulerWait* aWait ); 
         TInt GetFireCount( ) ; 
         TInt GetError( ) ; 
         
@@ -92,7 +92,7 @@
             CActiveSchedulerWait* aWait,CLbtTriggerFilterBase *  aFilter=NULL) ;
         void UpdateTrigger(RLbt& aLbt,CLbtTriggerEntry& aTrigger,TLbtTriggerAttributeFieldsMask aFieldMask,CActiveSchedulerWait* aWait,
                     TLbtFireOnUpdate aFireOnUpdate) ;       
-        void CTriggerFireObserver::PopulateFromCurrentCell(CLbtGeoCell& cell,CActiveSchedulerWait* aWait )  ;             
+        void PopulateFromCurrentCell(CLbtGeoCell& cell,CActiveSchedulerWait* aWait )  ;             
         
         void RunL( );
         
--- a/locsrv_plat/supl_settings_api/tsrc/conf/settingsapi_test.cfg	Thu May 27 13:18:17 2010 +0300
+++ b/locsrv_plat/supl_settings_api/tsrc/conf/settingsapi_test.cfg	Wed Jun 23 18:40:52 2010 +0300
@@ -877,13 +877,6 @@
 delete foobar
 [Endtest] 
 
-[Test]
-title  CancelTriggerSession
-create settingsapi foobar
-foobar CancelTriggerSession
-delete foobar
-[Endtest]
-
 
 [Test]
 title  SetTriggerEmptySessionName
--- a/locsrv_plat/supl_settings_api/tsrc/eabi/settingsapiu.def	Thu May 27 13:18:17 2010 +0300
+++ b/locsrv_plat/supl_settings_api/tsrc/eabi/settingsapiu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -2,4 +2,6 @@
 	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
 	_ZTI28CTerminalInitiatedRunSession @ 2 NONAME ; #<TI>#
 	_ZTV28CTerminalInitiatedRunSession @ 3 NONAME ; #<VT>#
+	_ZTI16CSessionObserver @ 4 NONAME
+	_ZTV16CSessionObserver @ 5 NONAME
 
--- a/locsrv_plat/supl_settings_api/tsrc/inc/settingsapi.h	Thu May 27 13:18:17 2010 +0300
+++ b/locsrv_plat/supl_settings_api/tsrc/inc/settingsapi.h	Wed Jun 23 18:40:52 2010 +0300
@@ -188,116 +188,112 @@
         TInt RemoveServer_Invalid_negative(CStifItemParser& aItem);
         TInt RemoveServer_Id_NotExisting(CStifItemParser& aItem);
         TInt RemoveServer_Invalid_zero(CStifItemParser& aItem);
-        TInt CSettingsApi::ChangePriority_Increase(CStifItemParser& aItem);
-        TInt CSettingsApi::ChangePriority_Decrease(CStifItemParser& aItem);
-        TInt CSettingsApi::ChangePriority_invalid_positive(CStifItemParser& aItem);
-        TInt CSettingsApi::ChangePriority_priority0(CStifItemParser& aItem);
-        TInt CSettingsApi::ChangePriority_Negative(CStifItemParser& aItem);
-        TInt CSettingsApi::ChangePriority_InvalidServer(CStifItemParser& aItem);
-      	TInt CSettingsApi::ChangePriority_invalidserverpriority(CStifItemParser& aItem);
-        TInt CSettingsApi::GetDefaultServer();
-				TInt CSettingsApi::AddNewServerWithDefault(CStifItemParser& aItem);
-				TInt CSettingsApi::AddNewServerWithoutDefault(CStifItemParser& aItem);
-				TInt CSettingsApi::AddNewServer_Duplicate(CStifItemParser& aItem);
-				TInt CSettingsApi::GetSlpInfoFromId(TInt64 Slpid);
-				TInt CSettingsApi::GetSlpInfoFromId(CStifItemParser& aItem);
-				TInt CSettingsApi::GetSlpInfoFromId_invalid_positive(CStifItemParser& aItem);
-				TInt CSettingsApi::GetSlpInfoFromId_invalid_negative(CStifItemParser& aItem);
-				TInt CSettingsApi::GetSlpInfoFromId_invalid_zero(CStifItemParser& aItem);
-				TInt CSettingsApi::SetServerAddress(CStifItemParser& aItem);
-				TInt CSettingsApi::SetServerAddress_invalidpositive(CStifItemParser& aItem);
-				TInt CSettingsApi::SetServerAddress_invalidnegative(CStifItemParser& aItem);
-				TInt CSettingsApi::SetServerAddress_invalidzero(CStifItemParser& aItem);
-				TInt CSettingsApi::SetServerAddress_AddressNull(CStifItemParser& aItem);
-				TInt CSettingsApi::SetServerAddress_InvalidAddressId(CStifItemParser& aItem);
-				TInt CSettingsApi::GetServerAddress(CStifItemParser& aItem);
-				TInt CSettingsApi::GetServerAddress_invalidpositive(CStifItemParser& aItem);
-				TInt CSettingsApi::GetServerAddress_invalidnegative(CStifItemParser& aItem);
-				TInt CSettingsApi::GetServerAddress_invalidzero(CStifItemParser& aItem);
-				TInt CSettingsApi::GetServerAddress(TInt64 aSlpId1);
-				TInt CSettingsApi::SetIAPName_InvalidAddressId(CStifItemParser& aItem);
-				TInt CSettingsApi::SetIAPName_invalidzero(CStifItemParser& aItem);
-				TInt CSettingsApi::SetIAPName_invalidnegative(CStifItemParser& aItem);
-				TInt CSettingsApi::SetIAPName_invalidpositive(CStifItemParser& aItem);
-				TInt CSettingsApi::SetIAPName(CStifItemParser& aItem);
-				 TInt CSettingsApi::GetIAPName_invalidzero(CStifItemParser& aItem);
-				 TInt CSettingsApi::GetIAPName_invalidnegative(CStifItemParser& aItem);
-				 TInt CSettingsApi::GetIAPName_invalidpositive(CStifItemParser& aItem);
-				 TInt CSettingsApi::GetIAPName(CStifItemParser& aItem);
-				 TInt CSettingsApi::GetIAPName(TInt64 aSlpId1);
-				 TInt CSettingsApi::SetServerEnabledFlag_Etrue(CStifItemParser& aItem);
-				 TInt CSettingsApi::SetServerEnabledFlag_EFalse(CStifItemParser& aItem);
-				 TInt CSettingsApi::SetServerEnabledFlag_id_negative(CStifItemParser& aItem);
-				 TInt CSettingsApi::SetServerEnabledFlag_id_positive(CStifItemParser& aItem);
-				  TInt CSettingsApi::SetServerEnabledFlag_id_zero(CStifItemParser& aItem);
-				 TInt CSettingsApi::GetServerEnabledFlag_id_negative(CStifItemParser& aItem);
-				  TInt CSettingsApi::GetServerEnabledFlag_id_positive(CStifItemParser& aItem);
-				  TInt CSettingsApi::GetServerEnabledFlag_id_zero(CStifItemParser& aItem);
-				  TInt CSettingsApi::GetServerEnabledFlag_EFalse(CStifItemParser& aItem);
-				  TInt CSettingsApi::GetServerEnabledFlag_Etrue(CStifItemParser& aItem);
-				  TInt CSettingsApi::GetUsageInHomeNwFlag(TInt64 aSlpId1);
-				  TInt CSettingsApi::SetUsageInHomwNwFlag_Etrue(CStifItemParser& aItem);
-				  TInt CSettingsApi::SetUsageInHomwNwFlag_EFalse(CStifItemParser& aItem);
-				  TInt CSettingsApi::SetUsageInHomwNwFlag_id_negative(CStifItemParser& aItem);
-				  TInt CSettingsApi::SetUsageInHomwNwFlag_id_positive(CStifItemParser& aItem);
-				   TInt CSettingsApi::SetUsageInHomwNwFlag_id_zero(CStifItemParser& aItem);
-					 TInt CSettingsApi::GetUsageInHomwNwFlag_Etrue(CStifItemParser& aItem);
-				   TInt CSettingsApi::GetUsageInHomwNwFlag_EFalse(CStifItemParser& aItem);
-				   TInt CSettingsApi::GetUsageInHomwNwFlag_id_negative(CStifItemParser& aItem);
-				   TInt CSettingsApi::GetUsageInHomwNwFlag_id_positive(CStifItemParser& aItem);
-				   TInt CSettingsApi::GetUsageInHomwNwFlag_id_zero(CStifItemParser& aItem);
-				   TInt CSettingsApi::GetUsageInHomwNwFlag(TInt64 aSlpId1);
-				 TInt CSettingsApi::AddNewServer_aServerAddress_Null(CStifItemParser& aItem);
-				  TInt CSettingsApi::AddNewServer_aIapNAme_Null(CStifItemParser& aItem);
-				 TInt CSettingsApi::SetDefaultServer_aServerAddress_Null(CStifItemParser& aItem);
-	 TInt CSettingsApi::SetDefaultServerWithDefaultValues(CStifItemParser& aItem);
-				 TInt CSettingsApi::SetAllParameter_aServerAddress_Null(CStifItemParser& aItem);
-  TInt CSettingsApi::SetAllParameter_WithDefaultValues(CStifItemParser& aItem);
-				 TInt CSettingsApi::SetAllParameter_Invalid_Positive(CStifItemParser& aItem);
-				 TInt CSettingsApi::SetAllParameter_Invalid_Negative(CStifItemParser& aItem);
-				 TInt CSettingsApi::SetAllParameter_Invalid_Zero(CStifItemParser& aItem);
-				TInt CSettingsApi::GetServerEnabledFlag(TInt64 aSlpId1);
-				TInt CSettingsApi::SetEditableFlag_Etrue(CStifItemParser& aItem);
-				TInt CSettingsApi::SetEditableFlag_EFalse(CStifItemParser& aItem);
-				TInt CSettingsApi::SetEditableFlag_id_negative(CStifItemParser& aItem);
-				TInt CSettingsApi::SetEditableFlag_id_positive(CStifItemParser& aItem);
-				TInt CSettingsApi::SetEditableFlag_id_zero(CStifItemParser& aItem);
-				TBool CSettingsApi::IsSLPExists(CStifItemParser& aItem);
-				TBool CSettingsApi::IsSLPExists_invalid_negative(CStifItemParser& aItem);
-				TBool CSettingsApi::IsSLPExists_invalid_positive(CStifItemParser& aItem);
-				TBool CSettingsApi::IsSLPExists_invalid_zero(CStifItemParser& aItem);
-				TInt CSettingsApi::GetAllSlp_sync(CStifItemParser& aItem);
-				TInt CSettingsApi::GetAllSlp_async(CStifItemParser& aItem);
-				TInt CSettingsApi::SetSimChangeRemoveFlag_Etrue(CStifItemParser& aItem);
-				TInt CSettingsApi::SetSimChangeRemoveFlag_EFalse(CStifItemParser& aItem);
-				TInt CSettingsApi::SetSimChangeRemoveFlag_id_negative(CStifItemParser& aItem);
-				TInt CSettingsApi::SetSimChangeRemoveFlag_id_positive(CStifItemParser& aItem);
-				TInt CSettingsApi::SetSimChangeRemoveFlag_id_zero(CStifItemParser& aItem);
-				TInt CSettingsApi::GetSimChangeRemoveFlag_Etrue(CStifItemParser& aItem);
-				TInt CSettingsApi::GetSimChangeRemoveFlag(TInt64 aSlpId1);
-				TInt CSettingsApi::GetSimChangeRemoveFlag_EFalse(CStifItemParser& aItem);
-				TInt CSettingsApi::GetSimChangeRemoveFlag_id_negative(CStifItemParser& aItem);
-				TInt CSettingsApi::GetSimChangeRemoveFlag_id_positive(CStifItemParser& aItem);
-				TInt CSettingsApi::GetSimChangeRemoveFlag_id_zero(CStifItemParser& aItem);
-				TInt CSettingsApi::GetEditableFlag_Etrue(CStifItemParser& aItem);
-				TInt CSettingsApi::GetEditableFlag(TInt64 aSlpId1);
-				TInt CSettingsApi::GetEditableFlag_EFalse(CStifItemParser& aItem);
-				TInt CSettingsApi::GetEditableFlag_id_negative(CStifItemParser& aItem);
-				TInt CSettingsApi::GetEditableFlag_id_positive(CStifItemParser& aItem);
-				TInt CSettingsApi::GetEditableFlag_id_zero(CStifItemParser& aItem);
-				TInt CSettingsApi::SetFallBack_ETrue();
-				TInt CSettingsApi::SetFallBack_EFalse();
-				TInt CSettingsApi::GetFallBack();
-				TInt CSettingsApi::IsSLPExistsString();
-				TInt CSettingsApi::IsSLPExistsString_Null();
-				TInt CSettingsApi::IsSLPExistsString_invalid();
-				TInt CSettingsApi::SlpCount();
-				TInt CSettingsApi::GetSlpInfoFromAddress(CStifItemParser& aItem);
-				TInt CSettingsApi::GetSlpInfoFromAddress_invalid(CStifItemParser& aItem);
-				TInt CSettingsApi::ProductConfiguredServer1();
-				TInt CSettingsApi::ProductConfiguredServer2();
-				TInt CSettingsApi::ProductConfiguredServer3();
-				TInt CSettingsApi::ProductConfiguredServer4();
+        TInt ChangePriority_Increase(CStifItemParser& aItem);
+        TInt ChangePriority_Decrease(CStifItemParser& aItem);
+        TInt ChangePriority_invalid_positive(CStifItemParser& aItem);
+        TInt ChangePriority_priority0(CStifItemParser& aItem);
+        TInt ChangePriority_Negative(CStifItemParser& aItem);
+        TInt ChangePriority_InvalidServer(CStifItemParser& aItem);
+      	TInt ChangePriority_invalidserverpriority(CStifItemParser& aItem);
+        TInt GetDefaultServer();
+				TInt AddNewServerWithDefault(CStifItemParser& aItem);
+				TInt AddNewServerWithoutDefault(CStifItemParser& aItem);
+				TInt AddNewServer_Duplicate(CStifItemParser& aItem);
+				TInt GetSlpInfoFromId(TInt64 Slpid);
+				TInt GetSlpInfoFromId(CStifItemParser& aItem);
+				TInt GetSlpInfoFromId_invalid_positive(CStifItemParser& aItem);
+				TInt GetSlpInfoFromId_invalid_negative(CStifItemParser& aItem);
+				TInt GetSlpInfoFromId_invalid_zero(CStifItemParser& aItem);
+				TInt SetServerAddress(CStifItemParser& aItem);
+				TInt SetServerAddress_invalidpositive(CStifItemParser& aItem);
+				TInt SetServerAddress_invalidnegative(CStifItemParser& aItem);
+				TInt SetServerAddress_invalidzero(CStifItemParser& aItem);
+				TInt SetServerAddress_AddressNull(CStifItemParser& aItem);
+				TInt SetServerAddress_InvalidAddressId(CStifItemParser& aItem);
+				TInt GetServerAddress(CStifItemParser& aItem);
+				TInt GetServerAddress_invalidpositive(CStifItemParser& aItem);
+				TInt GetServerAddress_invalidnegative(CStifItemParser& aItem);
+				TInt GetServerAddress_invalidzero(CStifItemParser& aItem);
+				TInt GetServerAddress(TInt64 aSlpId1);
+				TInt SetIAPName_InvalidAddressId(CStifItemParser& aItem);
+				TInt SetIAPName_invalidzero(CStifItemParser& aItem);
+				TInt SetIAPName_invalidnegative(CStifItemParser& aItem);
+				TInt SetIAPName_invalidpositive(CStifItemParser& aItem);
+				TInt SetIAPName(CStifItemParser& aItem);
+				 TInt GetIAPName_invalidzero(CStifItemParser& aItem);
+				 TInt GetIAPName_invalidnegative(CStifItemParser& aItem);
+				 TInt GetIAPName_invalidpositive(CStifItemParser& aItem);
+				 TInt GetIAPName(CStifItemParser& aItem);
+				 TInt GetIAPName(TInt64 aSlpId1);
+				 TInt SetServerEnabledFlag_Etrue(CStifItemParser& aItem);
+				 TInt SetServerEnabledFlag_EFalse(CStifItemParser& aItem);
+				 TInt SetServerEnabledFlag_id_negative(CStifItemParser& aItem);
+				 TInt SetServerEnabledFlag_id_positive(CStifItemParser& aItem);
+				  TInt SetServerEnabledFlag_id_zero(CStifItemParser& aItem);
+				 TInt GetServerEnabledFlag_id_negative(CStifItemParser& aItem);
+				  TInt GetServerEnabledFlag_id_positive(CStifItemParser& aItem);
+				  TInt GetServerEnabledFlag_id_zero(CStifItemParser& aItem);
+				  TInt GetServerEnabledFlag_EFalse(CStifItemParser& aItem);
+				  TInt GetServerEnabledFlag_Etrue(CStifItemParser& aItem);
+				  TInt GetUsageInHomeNwFlag(TInt64 aSlpId1);
+				  TInt SetUsageInHomwNwFlag_Etrue(CStifItemParser& aItem);
+				  TInt SetUsageInHomwNwFlag_EFalse(CStifItemParser& aItem);
+				  TInt SetUsageInHomwNwFlag_id_negative(CStifItemParser& aItem);
+				  TInt SetUsageInHomwNwFlag_id_positive(CStifItemParser& aItem);
+				   TInt SetUsageInHomwNwFlag_id_zero(CStifItemParser& aItem);
+					 TInt GetUsageInHomwNwFlag_Etrue(CStifItemParser& aItem);
+				   TInt GetUsageInHomwNwFlag_EFalse(CStifItemParser& aItem);
+				   TInt GetUsageInHomwNwFlag_id_negative(CStifItemParser& aItem);
+				   TInt GetUsageInHomwNwFlag_id_positive(CStifItemParser& aItem);
+				   TInt GetUsageInHomwNwFlag_id_zero(CStifItemParser& aItem);
+				   TInt GetUsageInHomwNwFlag(TInt64 aSlpId1);
+				 TInt AddNewServer_aServerAddress_Null(CStifItemParser& aItem);
+				  TInt AddNewServer_aIapNAme_Null(CStifItemParser& aItem);
+				 TInt SetDefaultServer_aServerAddress_Null(CStifItemParser& aItem);
+	 TInt SetDefaultServerWithDefaultValues(CStifItemParser& aItem);
+				 TInt SetAllParameter_aServerAddress_Null(CStifItemParser& aItem);
+  TInt SetAllParameter_WithDefaultValues(CStifItemParser& aItem);
+				 TInt SetAllParameter_Invalid_Positive(CStifItemParser& aItem);
+				 TInt SetAllParameter_Invalid_Negative(CStifItemParser& aItem);
+				 TInt SetAllParameter_Invalid_Zero(CStifItemParser& aItem);
+				TInt GetServerEnabledFlag(TInt64 aSlpId1);
+				TInt SetEditableFlag_Etrue(CStifItemParser& aItem);
+				TInt SetEditableFlag_EFalse(CStifItemParser& aItem);
+				TInt SetEditableFlag_id_negative(CStifItemParser& aItem);
+				TInt SetEditableFlag_id_positive(CStifItemParser& aItem);
+				TInt SetEditableFlag_id_zero(CStifItemParser& aItem);
+				TBool IsSLPExists(CStifItemParser& aItem);
+				TBool IsSLPExists_invalid_negative(CStifItemParser& aItem);
+				TBool IsSLPExists_invalid_positive(CStifItemParser& aItem);
+				TBool IsSLPExists_invalid_zero(CStifItemParser& aItem);
+				TInt GetAllSlp_sync(CStifItemParser& aItem);
+				TInt GetAllSlp_async(CStifItemParser& aItem);
+				TInt SetSimChangeRemoveFlag_Etrue(CStifItemParser& aItem);
+				TInt SetSimChangeRemoveFlag_EFalse(CStifItemParser& aItem);
+				TInt SetSimChangeRemoveFlag_id_negative(CStifItemParser& aItem);
+				TInt SetSimChangeRemoveFlag_id_positive(CStifItemParser& aItem);
+				TInt SetSimChangeRemoveFlag_id_zero(CStifItemParser& aItem);
+				TInt GetSimChangeRemoveFlag_Etrue(CStifItemParser& aItem);
+				TInt GetSimChangeRemoveFlag(TInt64 aSlpId1);
+				TInt GetSimChangeRemoveFlag_EFalse(CStifItemParser& aItem);
+				TInt GetSimChangeRemoveFlag_id_negative(CStifItemParser& aItem);
+				TInt GetSimChangeRemoveFlag_id_positive(CStifItemParser& aItem);
+				TInt GetSimChangeRemoveFlag_id_zero(CStifItemParser& aItem);
+				TInt GetEditableFlag_Etrue(CStifItemParser& aItem);
+				TInt GetEditableFlag(TInt64 aSlpId1);
+				TInt GetEditableFlag_EFalse(CStifItemParser& aItem);
+				TInt GetEditableFlag_id_negative(CStifItemParser& aItem);
+				TInt GetEditableFlag_id_positive(CStifItemParser& aItem);
+				TInt GetEditableFlag_id_zero(CStifItemParser& aItem);
+				TInt SetFallBack_ETrue();
+				TInt SetFallBack_EFalse();
+				TInt GetFallBack();
+				TInt IsSLPExistsString();
+				TInt IsSLPExistsString_Null();
+				TInt IsSLPExistsString_invalid();
+				TInt SlpCount();
+				TInt GetSlpInfoFromAddress(CStifItemParser& aItem);
+				TInt GetSlpInfoFromAddress_invalid(CStifItemParser& aItem);
 		
 				TInt SetGetTriggerParamsL( CStifItemParser& aItem ); 
 				
@@ -321,18 +317,18 @@
         virtual TInt SetTriggerEmptySessionNameL( CStifItemParser& aItem );
         virtual TInt SetTriggerLongSessionNameL( CStifItemParser& aItem );
 
-        TInt CSettingsApi::ChangeSuplTriggerServiceStatusON();
+        TInt ChangeSuplTriggerServiceStatusON();
             
 
-        TInt CSettingsApi::ChangeSuplTriggerServiceStatusOFF();
+        TInt ChangeSuplTriggerServiceStatusOFF();
            
 
-        TInt CSettingsApi::GetSuplTriggerServiceStatusON();
+        TInt GetSuplTriggerServiceStatusON();
 
 
-        TInt CSettingsApi::GetSuplTriggerServiceStatusOFF();
+        TInt GetSuplTriggerServiceStatusOFF();
 
-        TInt CSettingsApi::SetstatusOtherThanAppropriate();
+       // TInt CSettingsApi::SetstatusOtherThanAppropriate();
     public : // from MSuplSettingsObserver
         virtual void HandleSuplTriggerStatusChangeL(
                        CSuplSettings::TSuplTriggerStatus aSuplTriggerStatus );
--- a/locsrv_plat/supl_settings_api/tsrc/src/settingsapiblocks.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/locsrv_plat/supl_settings_api/tsrc/src/settingsapiblocks.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -265,7 +265,7 @@
 				ENTRY( "ChangeSuplTriggerServiceStatusOFF", CSettingsApi::ChangeSuplTriggerServiceStatusOFF),
 				ENTRY( "GetSuplTriggerServiceStatusON", CSettingsApi::GetSuplTriggerServiceStatusON),
 				ENTRY( "GetSuplTriggerServiceStatusOFF", CSettingsApi::GetSuplTriggerServiceStatusOFF),
-				ENTRY( "SetstatusOtherThanAppropriate", CSettingsApi::SetstatusOtherThanAppropriate),
+				//ENTRY( "SetstatusOtherThanAppropriate", CSettingsApi::SetstatusOtherThanAppropriate),
 				ENTRY( "ProductConfiguredServer1", CSettingsApi::ProductConfiguredServer1),	
 				ENTRY( "ProductConfiguredServer2", CSettingsApi::ProductConfiguredServer2),	
 				ENTRY( "ProductConfiguredServer3", CSettingsApi::ProductConfiguredServer3),	
@@ -2639,7 +2639,7 @@
 aIapName.Create(256);
 aIapName.Copy(KIap);
 
-aParamValues->Set(aServerAddress,aIapName,ETrue,EFalse,ETrue,ETrue);
+aParamValues->Set(aServerAddress,aIapName,ETrue,ETrue,ETrue,ETrue);
 	
   CSuplSettings *aSettings=CSuplSettings::NewL();
   TInt ret,ret1;
@@ -3520,7 +3520,7 @@
  
  iLog->Log(_L("Is SLP Exists for valid server address"));
 	
-_LIT8(KServer, "supl1.nokia.com");
+_LIT8(KServer, "supl.nokia.com");
 
 	RBuf aServer;
 	aServer.Create(256);
@@ -4421,7 +4421,9 @@
     sessionName.Copy(_L("Session1"));
     TTime endTime1;
     endTime1 = 100;
-    TInt ret=params->Set( 5,sessionName,ETrue,ETrue,CTriggerParams::EPeriodic,CTriggerParams::ETerminalInitiated,10,10,endTime1);
+    TInt ret=params->Set( 5,sessionName,ETrue,ETrue,CTriggerParams::EPeriodic,CTriggerParams::ETerminalInitiated,10,10);
+    	params->SetTriggerEndTime(endTime1);
+    	
     if( KErrNone!=ret)
         {
         delete params;
@@ -4437,7 +4439,9 @@
     TTime endTime2;
     HBufC* name = HBufC::NewL( 256);
     ret = params->Get(sessionId,name->Des(),notificationPresent,triggerNotificationStatus,
-                                 triggerType,requestType,outstandingTrigger,interval,endTime2 );
+                                 triggerType,requestType,outstandingTrigger,interval);
+                                 
+		params->GetTriggerEndTime(endTime2 );                                 
     
     delete params;
     if( KErrNone!=ret)
@@ -4462,14 +4466,19 @@
 
 TInt CSettingsApi::SetTriggerLongSessionNameL( CStifItemParser& aItem )
     {
-    CTriggerParams* params = CTriggerParams::NewL();
+    CTriggerParams* params = CTriggerParams::NewLC();
     TBuf<300> sessionName;
     for(TInt i=0;i<290;i++)
         {
         sessionName.Append(_L("a"));
         }
-    TInt ret=params->Set( 5,sessionName,ETrue,ETrue,CTriggerParams::EPeriodic,CTriggerParams::ETerminalInitiated,10,10,0);
-    delete params;
+        
+    TInt ret=params->Set( 5,sessionName,ETrue,ETrue,CTriggerParams::EPeriodic,CTriggerParams::ETerminalInitiated,10,10);
+   
+    	
+    	
+    CleanupStack::PopAndDestroy();
+    	
     if( KErrArgument!= ret )
         {
         return KErrGeneral;
@@ -4483,7 +4492,7 @@
     CTriggerParams* params = CTriggerParams::NewL();
     TBuf<300> sessionName;
     sessionName.Zero();
-    TInt ret=params->Set( 5,sessionName,ETrue,ETrue,CTriggerParams::EPeriodic,CTriggerParams::ETerminalInitiated,10,10,0);
+    TInt ret=params->Set( 5,sessionName,ETrue,ETrue,CTriggerParams::EPeriodic,CTriggerParams::ETerminalInitiated,10,10);
     
        TInt64 sessionId;
         TBool notificationPresent;
@@ -4495,7 +4504,7 @@
         TTime endTime;
         HBufC* name = HBufC::NewL( 256);
         ret = params->Get(sessionId,name->Des(),notificationPresent,triggerNotificationStatus,
-                                     triggerType,requestType,outstandingTrigger,interval,endTime );
+                                     triggerType,requestType,outstandingTrigger,interval);
         
         delete params;
      TInt comp=name->Compare(sessionName);
@@ -4553,8 +4562,11 @@
 	CSessionObserver* obs = CSessionObserver::NewL();
 	TInt err=settings->SetSessionObserverL(*obs);
 	err=settings->SetSessionObserverL(*obs);
+			
 	CleanupStack::PopAndDestroy(1);
 	delete obs;
+	if ( err == KErrAlreadyExists)
+		return KErrNone ;
 	return err;
 	}					
 
@@ -4593,7 +4605,7 @@
     {
     CTriggerParams* params=NULL;
     CSuplSettings* settings = CSuplSettings::NewL();
-    TInt err=settings->GetTriggerParams(12,params);
+    TInt err=settings->GetTriggerParams(10,params);
     delete settings;
     if( KErrArgument!=err)
         {
@@ -4607,8 +4619,9 @@
     {
     CTriggerParams* params=CTriggerParams::NewL();
     CSuplSettings* settings = CSuplSettings::NewL();
-    TInt err=settings->GetTriggerParams(15,params);//Invalid Id
+    TInt err=settings->GetTriggerParams(11,params);//Invalid Id
     delete settings;
+    delete params;
     if( KErrNotFound!=err)
         {
         return KErrGeneral;
@@ -4631,14 +4644,12 @@
     CSuplSettings* settings = CSuplSettings::NewL() ;
     TInt ret ;
     //settings->SetObserverL(*this);
-    ret = settings->ChangeSuplTriggerServiceStatus(CSuplSettings::ESuplTriggerON);
+    ret = settings->SetSuplTriggeredServiceStatus(CSuplSettings::ESuplTriggerOn);
     iLog->Log(_L("Supltrigger ON = %d "),ret ) ;
     if(ret != KErrNone) 
         {
           iLog->Log(_L("Supltrigger service status:Error = %d"), ret); 
         }
-              
-       // CActiveScheduler::Start();
     iLog->Log(_L("ChangeSuplTriggerServiceStatus ON = %d "),ret ) ;
     delete settings;
     return ret;
@@ -4652,7 +4663,7 @@
     CSuplSettings* settings = CSuplSettings::NewL() ;
     TInt ret ;
    // settings->SetObserverL(*this);
-    ret = settings->ChangeSuplTriggerServiceStatus(CSuplSettings::ESuplTriggerOFF);
+    ret = settings->SetSuplTriggeredServiceStatus(CSuplSettings::ESuplTriggerOff);
     iLog->Log(_L("Supltrigger OFF = %d "),ret ) ;
     if(ret != KErrNone) 
         {
@@ -4676,8 +4687,8 @@
         {
          CSuplSettings::TSuplTriggerStatus status;
          CSuplSettings* settings = CSuplSettings::NewL();
-         ret = settings->GetSuplTriggerServiceStatus(status);
-         if (ret == KErrNone && status == CSuplSettings::ESuplTriggerON)
+         ret = settings->GetSuplTriggeredServiceStatus(status);
+         if (ret == KErrNone && status == CSuplSettings::ESuplTriggerOn)
             {
               iLog->Log(_L("status are matching...returned=%d" ),(TInt)status);    
             }
@@ -4705,8 +4716,8 @@
       {
        CSuplSettings::TSuplTriggerStatus status;
        CSuplSettings* settings = CSuplSettings::NewL();
-       ret = settings->GetSuplTriggerServiceStatus(status);
-       if (ret == KErrNone && status == CSuplSettings::ESuplTriggerOFF)
+       ret = settings->GetSuplTriggeredServiceStatus(status);
+       if (ret == KErrNone && status == CSuplSettings::ESuplTriggerOff)
           {
            iLog->Log(_L("status are matching...returned=%d" ),(TInt)status);    
           }
@@ -4726,64 +4737,54 @@
     return ret;         
     }
 
-// Change the status other than the appropriat
-TInt CSettingsApi::SetstatusOtherThanAppropriate()
-   {
-    CSuplSettings::TSuplTriggerStatus status = (CSuplSettings::TSuplTriggerStatus)10;
-    CSuplSettings* settings = CSuplSettings::NewL();
-    TInt ret=settings->ChangeSuplTriggerServiceStatus(status);
-    
-    if(ret != KErrArgument)
-        {
-         iLog->Log(_L("SuplTriggerServiceStatus returned=%d" ),ret);  
-        }
-    iLog->Log(_L("Expected KErrArgument =%d" ),ret); 
-    ret = KErrNone;        
-    delete settings;
-    return ret;
-}
-
-TInt CSettingsApi::ProductConfiguredServer1()
+
+ 
+ TInt CSettingsApi::ProductConfiguredServer1()
    {
-    
-    CServerParams *aParamValues= CServerParams::NewL();
-
-iLog->Log(_L("Setting CServerParams with product config parameter")); 
-_LIT8(KServer, "supl.nokia.com");
-_LIT8(KIap, "airtelgprs.com");
-	
-RBuf aServerAddress, aIapName; 	
-		
-aServerAddress.Create(128);
-aServerAddress.Copy(KServer);
-aIapName.Create(128);
-aIapName.Copy(KIap);
-
-aParamValues->Set(aServerAddress,aIapName,ETrue,EFalse,ETrue,ETrue,0,ETrue);
-
-aIapName.Close();
-aServerAddress.Close();
-
-HBufC* aServerAddress1 = HBufC::NewL(64);
-HBufC* aIapName1 = HBufC::NewL(64);
-TInt64 aSlpId;
-TBool aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable,aProductConfigured;
-
-TInt ret = aParamValues->Get(aSlpId,aServerAddress1->Des(),aIapName1->Des(),aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable,aProductConfigured);
-
-delete aParamValues;
-delete aServerAddress1;
-delete aIapName1;
-
-if(ret != KErrNone) 
-	return ret;
-	
-if (aProductConfigured)
-	return KErrNone;
-else
-	return KErrGeneral;
+						CServerParams *aParamValues= CServerParams::NewL();
+						
+						TInt64 aSlpId =10;
+						
+						iLog->Log(_L("Setting CServerParams with product config parameter")); 
+						_LIT8(KServer, "supl.nokia.com");
+						_LIT8(KIap, "airtelgprs.com");
+							
+						RBuf aServerAddress, aIapName; 	
+								
+						aServerAddress.Create(128);
+						aServerAddress.Copy(KServer);
+						aIapName.Create(128);
+						aIapName.Copy(KIap);
+						
+						aParamValues->Set(aServerAddress,aIapName,ETrue,EFalse,ETrue,ETrue,aSlpId);
+						
+						aParamValues->SetServerConfigurationType(ETrue);
+						
+						aIapName.Close();
+						aServerAddress.Close();
+						
+						HBufC* aServerAddress1 = HBufC::NewL(64);
+						HBufC* aIapName1 = HBufC::NewL(64);
+
+						TBool aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable,aProductConfigured;
+						
+						TInt ret = aParamValues->Get(aSlpId,aServerAddress1->Des(),aIapName1->Des(),aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable);
+						aParamValues->GetServerConfigurationType(aProductConfigured);
+						
+						delete aParamValues;
+						delete aServerAddress1;
+						delete aIapName1;
+						
+						if(ret != KErrNone) 
+							return ret;
+							
+						if (aProductConfigured)
+							return KErrNone;
+						else
+							return KErrGeneral;
 }
 
+
 TInt CSettingsApi::ProductConfiguredServer2()
    {
    	CServerParams *aParamValues = CServerParams::NewL();
@@ -4792,7 +4793,7 @@
   	TInt64 slp;
 
 iLog->Log(_L("Setting CServerParams with product config parameter")); 
-_LIT8(KServer, "supl111.nokia.com");
+_LIT8(KServer, "product.supl.nokia.com");
 _LIT8(KIap, "airtelgprs.com");
 	
 RBuf aServerAddress, aIapName; 	
@@ -4802,7 +4803,8 @@
 aIapName.Create(128);
 aIapName.Copy(KIap);
 
-aParamValues->Set(aServerAddress,aIapName,ETrue,EFalse,ETrue,ETrue,0,ETrue);
+			aParamValues->Set(aServerAddress,aIapName,ETrue,EFalse,ETrue,ETrue);
+			aParamValues->SetServerConfigurationType(ETrue);
 
 ret = aSettings->AddNewServer(aParamValues,slp);
 	iLog->Log(_L("Return Value=%d" ),ret);
@@ -4823,7 +4825,9 @@
 TInt64 aSlpId;
 TBool aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable,aProductConfigured;
 
-ret = aParamValues1->Get(aSlpId,aServerAddress1->Des(),aIapName1->Des(),aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable,aProductConfigured);
+ret = aParamValues1->Get(aSlpId,aServerAddress1->Des(),aIapName1->Des(),aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable);
+
+aParamValues1->GetServerConfigurationType(aProductConfigured);
 
 delete aParamValues;
 delete aParamValues1;
@@ -4848,7 +4852,7 @@
   	TInt64 slp;
 
 iLog->Log(_L("Setting CServerParams with product config parameter")); 
-_LIT8(KServer, "supl121.nokia.com");
+_LIT8(KServer, "user.supl.nokia.com");
 _LIT8(KIap, "airtelgprs.com");
 	
 RBuf aServerAddress, aIapName; 	
@@ -4858,7 +4862,8 @@
 aIapName.Create(128);
 aIapName.Copy(KIap);
 
-aParamValues->Set(aServerAddress,aIapName,ETrue,EFalse,ETrue,ETrue,0,ETrue);
+			aParamValues->Set(aServerAddress,aIapName,ETrue,EFalse,ETrue,ETrue);
+			aParamValues->SetServerConfigurationType(EFalse);
 
  ret = aSettings->AddNewServer(aParamValues,slp);
 	iLog->Log(_L("Return Value=%d" ),ret);
@@ -4868,7 +4873,7 @@
 	return ret;
 	
 	CServerParams *aParamValues1 = CServerParams::NewL();
-ret = aSettings->GetSlpInfoAddress(_L("supl121.nokia.com"),aParamValues1);
+ret = aSettings->GetSlpInfoAddress(aServerAddress,aParamValues1);
 	
 aIapName.Close();
 aServerAddress.Close();
@@ -4878,7 +4883,9 @@
 TInt64 aSlpId;
 TBool aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable,aProductConfigured;
 
-ret = aParamValues1->Get(aSlpId,aServerAddress1->Des(),aIapName1->Des(),aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable,aProductConfigured);
+ret = aParamValues1->Get(aSlpId,aServerAddress1->Des(),aIapName1->Des(),aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable);
+aParamValues1->GetServerConfigurationType(aProductConfigured);
+
 
 delete aParamValues;
 delete aParamValues1;
@@ -4889,7 +4896,7 @@
 if(ret != KErrNone) 
 	return ret;
 	
-if (aProductConfigured)
+if (!aProductConfigured)
 	return KErrNone;
 else
 	return KErrGeneral;
@@ -4903,7 +4910,7 @@
   	TInt ret,slp;
 
 iLog->Log(_L("Setting CServerParams with product config parameter")); 
-_LIT8(KServer, "supl131.nokia.com");
+_LIT8(KServer, "user.google.nokia.com");
 _LIT8(KIap, "airtelgprs.com");
 	
 RBuf aServerAddress, aIapName; 	
@@ -4913,7 +4920,9 @@
 aIapName.Create(128);
 aIapName.Copy(KIap);
 
-aParamValues->Set(aServerAddress,aIapName,ETrue,EFalse,ETrue,ETrue,0,ETrue);
+			aParamValues->Set(aServerAddress,aIapName,ETrue,EFalse,ETrue,ETrue);
+			aParamValues->SetServerConfigurationType(EFalse);
+
 
 ret = aSettings->SetDefaultServer(aParamValues);
 	iLog->Log(_L("Return Value=%d" ),ret);
@@ -4933,7 +4942,8 @@
 TInt64 aSlpId;
 TBool aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable,aProductConfigured;
 
-ret = aParamValues1->Get(aSlpId,aServerAddress1->Des(),aIapName1->Des(),aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable,aProductConfigured);
+ret = aParamValues1->Get(aSlpId,aServerAddress1->Des(),aIapName1->Des(),aServerEnabled,aSimChangeRemove,aUsageInHomeNw,aEditable);
+aParamValues1->GetServerConfigurationType(aProductConfigured);
 
 delete aParamValues;
 delete aParamValues1;
@@ -4951,6 +4961,8 @@
     
 }
 
+ 
+
 // EPOC default constructor
 void CObserverTest::ConstructL()
     {
--- a/locsrv_pub/blid_application_satellite_info_api/tsrc/bc_blid_application_satellite_info_Api/group/BCBlidTest.mmp	Thu May 27 13:18:17 2010 +0300
+++ b/locsrv_pub/blid_application_satellite_info_api/tsrc/bc_blid_application_satellite_info_Api/group/BCBlidTest.mmp	Wed Jun 23 18:40:52 2010 +0300
@@ -17,7 +17,7 @@
 
 
 #if defined(__S60_)
-        // To get the OS_LAYER_SYSTEMINCLUDE-definition
+        // To get the MW_LAYER_SYSTEMINCLUDE-definition
         #include <platform_paths.hrh>
 #endif
 
@@ -26,31 +26,23 @@
 UID             0x1000008D 0x101FB3E3
 
 CAPABILITY      ALL -TCB
-/* Remove comments and replace 0x00000000 with correct vendor id */
-// VENDORID     0x00000000
-/* Remove comments and replace 0x00000000 with correct secure id */
-// SECUREID     0x00000000
 
-//TARGETPATH      ?target_path
 DEFFILE         BCBlidTest.def
 
 SOURCEPATH      ../src
 SOURCE          BCBlidTest.cpp
 SOURCE          BCBlidTestBlocks.cpp
 
-//RESOURCE        resource_file
-//RESOURCE        resource_file2
 
 USERINCLUDE     ../inc 
 
 #if defined(__S60_)
-    OS_LAYER_SYSTEMINCLUDE
+    MW_LAYER_SYSTEMINCLUDE
 #else
     SYSTEMINCLUDE   /epoc32/include 
     SYSTEMINCLUDE   /epoc32/include/internal
 #endif
 
-SYSTEMINCLUDE   /epoc32/include 
 SYSTEMINCLUDE   /epoc32/include/applications
 
 
@@ -64,26 +56,5 @@
 
 LANG            SC
 
-/*
-START WINS      
-?wins_specific_information
-END
-
-START MARM
-?marm_specific_information
-END
-*/
-// Other possible keywords:
- 
-// DOCUMENT     ?file, that is not compiled, but added to MSVC project workspace (i.e. release notes)
-/*
-START BITMAP ?target
-TARGETPATH   ?emulated_path_on_target_machine
-HEADER
-SOURCE       ?color_depth ?source_bitmap
-END
-*/
-// DEFFILE ?filename
-// AIF ?filename
 
 // End of File
--- a/locsrv_pub/landmarks_api/tsrc/bc_landmarks_api/src/testcposlandmarkdatabase.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/locsrv_pub/landmarks_api/tsrc/bc_landmarks_api/src/testcposlandmarkdatabase.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -753,7 +753,9 @@
 	// Import landmarks to DB	
 	CPosLmOperation* operation = lmkDatabase->ImportLandmarksL( *parser, CPosLandmarkDatabase::EDefaultOptions );
 	CleanupStack::PushL( operation );
-	operation->ExecuteL();
+	
+	TRAPD(error,operation->ExecuteL());
+	
 	iLog->Log(_L("ImportLandmarks successful")); 
 	CleanupStack::PopAndDestroy( 3, lmkDatabase );
 	ReleaseLandmarkResources();
@@ -788,7 +790,7 @@
 	indexArray.AppendL( 1 );	
 	CPosLmOperation* operation = lmkDatabase->ImportLandmarksL( *parser, indexArray, CPosLandmarkDatabase::EDefaultOptions );
 	CleanupStack::PushL( operation );
-	operation->ExecuteL();
+	TRAPD(error,operation->ExecuteL());
 	iLog->Log(_L("ImportSelectedLandmarks successful")); 
 	CleanupStack::PopAndDestroy( 3, lmkDatabase );
 	ReleaseLandmarkResources();
@@ -818,7 +820,7 @@
 	// Import landmarks to DB	
 	CPosLmOperation* operation = lmkDatabase->ImportLandmarksL( *parser, CPosLandmarkDatabase::EDefaultOptions );
 	CleanupStack::PushL( operation );
-	operation->ExecuteL();
+	TRAPD(error,operation->ExecuteL());
 	// Get iterator for imported landmarks
 	CPosLmItemIterator* iterator = lmkDatabase->ImportedLandmarksIteratorL( operation );
 	CleanupStack::PushL( iterator );
--- a/locsrv_pub/landmarks_api/tsrc/group/testlandmarksapi.mmp	Thu May 27 13:18:17 2010 +0300
+++ b/locsrv_pub/landmarks_api/tsrc/group/testlandmarksapi.mmp	Wed Jun 23 18:40:52 2010 +0300
@@ -65,6 +65,10 @@
 //RESOURCE        resource_file
 //RESOURCE        resource_file2
 
+SYSTEMINCLUDE   /epoc32/include/platform
+SYSTEMINCLUDE   /epoc32/include/mw
+
+
 USERINCLUDE     ../inc 
 
 MW_LAYER_SYSTEMINCLUDE
--- a/supl/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/supl/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -23,4 +23,5 @@
 #include "../locationomasuplprotocolhandler/group/bld.inf"
 //#include "../locationomasuplpostester/group/bld.inf"
 #include "../supltiapiimplementation/group/bld.inf"
+//#include "../locationsupllocinfoconverter/group/bld.inf"
 // End of File
Binary file supl/locationomasuplprotocolhandler/conf/CI_suplsettings_productconfig.confml has changed
Binary file supl/locationomasuplprotocolhandler/conf/suplsettings_productconfig.confml has changed
--- a/supl/locationomasuplprotocolhandler/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -19,7 +19,7 @@
 #include <platform_paths.hrh>
 
 PRJ_PLATFORMS
-WINSCW ARMV5
+WINSCW ARMV5 GCCE
 
 PRJ_EXPORTS
 ../rom/omasuplprotocolhandler.iby           CORE_MW_LAYER_IBY_EXPORT_PATH(omasuplprotocolhandler.iby)
@@ -31,6 +31,7 @@
 ../conf/omasuplconfigparam.confml           MW_LAYER_CONFML(omasuplconfigparam.confml) 
 ../crml/omasuplconfigparam_102750A0.crml    MW_LAYER_CRML(omasuplconfigparam_102750A0.crml)
 ../conf/suplsettings_productconfig.confml                	MW_LAYER_CONFML(suplsettings_productconfig.confml) 
+../conf/CI_suplsettings_productconfig.confml                	MW_LAYER_CONFML(CI_suplsettings_productconfig.confml) 
 ../crml/suplsettings_productconfig_2001FCB9.crml         MW_LAYER_CRML(suplsettings_productconfig_2001FCB9.crml)
 
 //#include "../posmsgpluginapi/group/bld.inf"
--- a/supl/locationomasuplprotocolhandler/protocolhandler/bwins/eposomasuplprotocolhandleru.def	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/bwins/eposomasuplprotocolhandleru.def	Wed Jun 23 18:40:52 2010 +0300
@@ -15,24 +15,26 @@
 	??1COMASuplSettings@@UAE@XZ @ 14 NONAME ; COMASuplSettings::~COMASuplSettings(void)
 	?IsHslpNull@COMASuplSettings@@QAEHXZ @ 15 NONAME ; int COMASuplSettings::IsHslpNull(void)
 	?NotifyTriggerFiredL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@AAVTSuplTriggerFireInfo@@@Z @ 16 NONAME ; void COMASUPLProtocolManager::NotifyTriggerFiredL(class CSuplSessionBase *, class TRequestStatus &, class TSuplTriggerFireInfo &)
-	?IAPId@COMASuplSettings@@QBEHXZ @ 17 NONAME ; int COMASuplSettings::IAPId(void) const
-	?DeInitialize@COMASUPLProtocolManager@@UAEXAAVTRequestStatus@@@Z @ 18 NONAME ; void COMASUPLProtocolManager::DeInitialize(class TRequestStatus &)
-	?RunSuplTriggerSessionL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@AAVTSuplTerminalPeriodicTrigger@@ABVTDesC16@@HHH@Z @ 19 NONAME ; void COMASUPLProtocolManager::RunSuplTriggerSessionL(class CSuplSessionBase *, class TRequestStatus &, class TSuplTerminalPeriodicTrigger &, class TDesC16 const &, int, int, int)
-	?ConvertIAPNameToIdL@COMASuplSettings@@QAEHABVTDesC16@@AAK@Z @ 20 NONAME ; int COMASuplSettings::ConvertIAPNameToIdL(class TDesC16 const &, unsigned long &)
-	?CreateNewSessionL@COMASUPLProtocolManager@@UAEPAVCSuplSessionBase@@W4TSuplReqType@CSUPLProtocolManagerBase@@HW4TSuplServiceType@RSuplTerminalSubSession@@@Z @ 21 NONAME ; class CSuplSessionBase * COMASUPLProtocolManager::CreateNewSessionL(enum CSUPLProtocolManagerBase::TSuplReqType, int, enum RSuplTerminalSubSession::TSuplServiceType)
-	?SetIAPId@COMASuplSettings@@QAEXH@Z @ 22 NONAME ; void COMASuplSettings::SetIAPId(int)
-	?ReadOMASuplSettingsL@COMASuplCommonConfig@@QAEXXZ @ 23 NONAME ; void COMASuplCommonConfig::ReadOMASuplSettingsL(void)
-	?CancelRunSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 24 NONAME ; void COMASUPLProtocolManager::CancelRunSession(class CSuplSessionBase *)
-	??1COMASUPLProtocolManager@@UAE@XZ @ 25 NONAME ; COMASUPLProtocolManager::~COMASUPLProtocolManager(void)
-	?HandleSuplMessageL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@PAVHBufC8@@@Z @ 26 NONAME ; void COMASUPLProtocolManager::HandleSuplMessageL(class CSuplSessionBase *, class TRequestStatus &, class HBufC8 *)
-	?GetSUPLMessageVersionL@COMASUPLProtocolManager@@UAEHAAHABVTDesC8@@@Z @ 27 NONAME ; int COMASUPLProtocolManager::GetSUPLMessageVersionL(int &, class TDesC8 const &)
-	?ConstructL@COMASuplSettings@@AAEXXZ @ 28 NONAME ; void COMASuplSettings::ConstructL(void)
-	?NewL@COMASUPLProtocolManager@@SAPAV1@XZ @ 29 NONAME ; class COMASUPLProtocolManager * COMASUPLProtocolManager::NewL(void)
-	?HandlePacket@COMASUPLProtocolManager@@UAEXABVTDesC8@@I@Z @ 30 NONAME ; void COMASUPLProtocolManager::HandlePacket(class TDesC8 const &, unsigned int)
-	?CancelSuplTriggerSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 31 NONAME ; void COMASUPLProtocolManager::CancelSuplTriggerSession(class CSuplSessionBase *)
-	?InitializeL@COMASUPLProtocolManager@@UAEXPAVCSuplCommunicationManager@@AAVTRequestStatus@@@Z @ 32 NONAME ; void COMASUPLProtocolManager::InitializeL(class CSuplCommunicationManager *, class TRequestStatus &)
-	?NewL@COMASuplCommonConfig@@SAPAV1@XZ @ 33 NONAME ; class COMASuplCommonConfig * COMASuplCommonConfig::NewL(void)
-	?SLPAddress@COMASuplSettings@@QBEABVTDesC8@@XZ @ 34 NONAME ; class TDesC8 const & COMASuplSettings::SLPAddress(void) const
-	?HandlePacketError@COMASUPLProtocolManager@@UAEXH@Z @ 35 NONAME ; void COMASUPLProtocolManager::HandlePacketError(int)
-	?NewL@COMASuplSettings@@SAPAV1@XZ @ 36 NONAME ; class COMASuplSettings * COMASuplSettings::NewL(void)
+	?MakeLocationConversionRequestL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTGeoCellInfo@@AAVTRequestStatus@@@Z @ 17 NONAME ; void COMASUPLProtocolManager::MakeLocationConversionRequestL(class CSuplSessionBase *, class TGeoCellInfo &, class TRequestStatus &)
+	?IAPId@COMASuplSettings@@QBEHXZ @ 18 NONAME ; int COMASuplSettings::IAPId(void) const
+	?CancelLocationConversionRequest@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 19 NONAME ; void COMASUPLProtocolManager::CancelLocationConversionRequest(class CSuplSessionBase *)
+	?DeInitialize@COMASUPLProtocolManager@@UAEXAAVTRequestStatus@@@Z @ 20 NONAME ; void COMASUPLProtocolManager::DeInitialize(class TRequestStatus &)
+	?RunSuplTriggerSessionL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@AAVTSuplTerminalPeriodicTrigger@@ABVTDesC16@@HHH@Z @ 21 NONAME ; void COMASUPLProtocolManager::RunSuplTriggerSessionL(class CSuplSessionBase *, class TRequestStatus &, class TSuplTerminalPeriodicTrigger &, class TDesC16 const &, int, int, int)
+	?ConvertIAPNameToIdL@COMASuplSettings@@QAEHABVTDesC16@@AAK@Z @ 22 NONAME ; int COMASuplSettings::ConvertIAPNameToIdL(class TDesC16 const &, unsigned long &)
+	?CreateNewSessionL@COMASUPLProtocolManager@@UAEPAVCSuplSessionBase@@W4TSuplReqType@CSUPLProtocolManagerBase@@HW4TSuplServiceType@RSuplTerminalSubSession@@@Z @ 23 NONAME ; class CSuplSessionBase * COMASUPLProtocolManager::CreateNewSessionL(enum CSUPLProtocolManagerBase::TSuplReqType, int, enum RSuplTerminalSubSession::TSuplServiceType)
+	?SetIAPId@COMASuplSettings@@QAEXH@Z @ 24 NONAME ; void COMASuplSettings::SetIAPId(int)
+	?ReadOMASuplSettingsL@COMASuplCommonConfig@@QAEXXZ @ 25 NONAME ; void COMASuplCommonConfig::ReadOMASuplSettingsL(void)
+	?CancelRunSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 26 NONAME ; void COMASUPLProtocolManager::CancelRunSession(class CSuplSessionBase *)
+	??1COMASUPLProtocolManager@@UAE@XZ @ 27 NONAME ; COMASUPLProtocolManager::~COMASUPLProtocolManager(void)
+	?HandleSuplMessageL@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@AAVTRequestStatus@@PAVHBufC8@@@Z @ 28 NONAME ; void COMASUPLProtocolManager::HandleSuplMessageL(class CSuplSessionBase *, class TRequestStatus &, class HBufC8 *)
+	?GetSUPLMessageVersionL@COMASUPLProtocolManager@@UAEHAAHABVTDesC8@@@Z @ 29 NONAME ; int COMASUPLProtocolManager::GetSUPLMessageVersionL(int &, class TDesC8 const &)
+	?ConstructL@COMASuplSettings@@AAEXXZ @ 30 NONAME ; void COMASuplSettings::ConstructL(void)
+	?NewL@COMASUPLProtocolManager@@SAPAV1@XZ @ 31 NONAME ; class COMASUPLProtocolManager * COMASUPLProtocolManager::NewL(void)
+	?HandlePacket@COMASUPLProtocolManager@@UAEXABVTDesC8@@I@Z @ 32 NONAME ; void COMASUPLProtocolManager::HandlePacket(class TDesC8 const &, unsigned int)
+	?CancelSuplTriggerSession@COMASUPLProtocolManager@@UAEXPAVCSuplSessionBase@@@Z @ 33 NONAME ; void COMASUPLProtocolManager::CancelSuplTriggerSession(class CSuplSessionBase *)
+	?InitializeL@COMASUPLProtocolManager@@UAEXPAVCSuplCommunicationManager@@AAVTRequestStatus@@@Z @ 34 NONAME ; void COMASUPLProtocolManager::InitializeL(class CSuplCommunicationManager *, class TRequestStatus &)
+	?NewL@COMASuplCommonConfig@@SAPAV1@XZ @ 35 NONAME ; class COMASuplCommonConfig * COMASuplCommonConfig::NewL(void)
+	?SLPAddress@COMASuplSettings@@QBEABVTDesC8@@XZ @ 36 NONAME ; class TDesC8 const & COMASuplSettings::SLPAddress(void) const
+	?HandlePacketError@COMASUPLProtocolManager@@UAEXH@Z @ 37 NONAME ; void COMASUPLProtocolManager::HandlePacketError(int)
+	?NewL@COMASuplSettings@@SAPAV1@XZ @ 38 NONAME ; class COMASuplSettings * COMASuplSettings::NewL(void)
 
--- a/supl/locationomasuplprotocolhandler/protocolhandler/eabi/eposomasuplprotocolhandleru.def	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/eabi/eposomasuplprotocolhandleru.def	Wed Jun 23 18:40:52 2010 +0300
@@ -25,28 +25,30 @@
 	_ZN23COMASUPLProtocolManager22GetSUPLMessageVersionLERiRK6TDesC8 @ 24 NONAME
 	_ZN23COMASUPLProtocolManager22RunSuplTriggerSessionLEP16CSuplSessionBaseR14TRequestStatusR28TSuplTerminalPeriodicTriggerRK7TDesC16iii @ 25 NONAME
 	_ZN23COMASUPLProtocolManager24CancelSuplTriggerSessionEP16CSuplSessionBase @ 26 NONAME
-	_ZN23COMASUPLProtocolManager4NewLEv @ 27 NONAME
-	_ZN23COMASUPLProtocolManagerC1Ev @ 28 NONAME
-	_ZN23COMASUPLProtocolManagerC2Ev @ 29 NONAME
-	_ZN23COMASUPLProtocolManagerD0Ev @ 30 NONAME
-	_ZN23COMASUPLProtocolManagerD1Ev @ 31 NONAME
-	_ZN23COMASUPLProtocolManagerD2Ev @ 32 NONAME
-	_ZNK16COMASuplSettings10IsUIActiveEv @ 33 NONAME
-	_ZNK16COMASuplSettings10SLPAddressEv @ 34 NONAME
-	_ZNK16COMASuplSettings18SLPAddressfromImsiEv @ 35 NONAME
-	_ZNK16COMASuplSettings5IAPIdEv @ 36 NONAME
-	_ZTI13COMASuplTrace @ 37 NONAME
-	_ZTI16COMASuplSettings @ 38 NONAME
-	_ZTI20COMASuplCommonConfig @ 39 NONAME
-	_ZTI20COMASuplDeInitilizer @ 40 NONAME
-	_ZTI23COMASUPLProtocolManager @ 41 NONAME
-	_ZTI26COMASuplInitilizeRequestor @ 42 NONAME
-	_ZTV13COMASuplTrace @ 43 NONAME
-	_ZTV16COMASuplSettings @ 44 NONAME
-	_ZTV20COMASuplCommonConfig @ 45 NONAME
-	_ZTV20COMASuplDeInitilizer @ 46 NONAME
-	_ZTV23COMASUPLProtocolManager @ 47 NONAME
-	_ZTV26COMASuplInitilizeRequestor @ 48 NONAME
-	_ZThn4_N23COMASUPLProtocolManager12HandlePacketERK6TDesC8j @ 49 NONAME
-	_ZThn4_N23COMASUPLProtocolManager17HandlePacketErrorEi @ 50 NONAME
+	_ZN23COMASUPLProtocolManager30MakeLocationConversionRequestLEP16CSuplSessionBaseR12TGeoCellInfoR14TRequestStatus @ 27 NONAME
+	_ZN23COMASUPLProtocolManager31CancelLocationConversionRequestEP16CSuplSessionBase @ 28 NONAME
+	_ZN23COMASUPLProtocolManager4NewLEv @ 29 NONAME
+	_ZN23COMASUPLProtocolManagerC1Ev @ 30 NONAME
+	_ZN23COMASUPLProtocolManagerC2Ev @ 31 NONAME
+	_ZN23COMASUPLProtocolManagerD0Ev @ 32 NONAME
+	_ZN23COMASUPLProtocolManagerD1Ev @ 33 NONAME
+	_ZN23COMASUPLProtocolManagerD2Ev @ 34 NONAME
+	_ZNK16COMASuplSettings10IsUIActiveEv @ 35 NONAME
+	_ZNK16COMASuplSettings10SLPAddressEv @ 36 NONAME
+	_ZNK16COMASuplSettings18SLPAddressfromImsiEv @ 37 NONAME
+	_ZNK16COMASuplSettings5IAPIdEv @ 38 NONAME
+	_ZTI13COMASuplTrace @ 39 NONAME
+	_ZTI16COMASuplSettings @ 40 NONAME
+	_ZTI20COMASuplCommonConfig @ 41 NONAME
+	_ZTI20COMASuplDeInitilizer @ 42 NONAME
+	_ZTI23COMASUPLProtocolManager @ 43 NONAME
+	_ZTI26COMASuplInitilizeRequestor @ 44 NONAME
+	_ZTV13COMASuplTrace @ 45 NONAME
+	_ZTV16COMASuplSettings @ 46 NONAME
+	_ZTV20COMASuplCommonConfig @ 47 NONAME
+	_ZTV20COMASuplDeInitilizer @ 48 NONAME
+	_ZTV23COMASUPLProtocolManager @ 49 NONAME
+	_ZTV26COMASuplInitilizeRequestor @ 50 NONAME
+	_ZThn4_N23COMASUPLProtocolManager12HandlePacketERK6TDesC8j @ 51 NONAME
+	_ZThn4_N23COMASUPLProtocolManager17HandlePacketErrorEi @ 52 NONAME
 
--- a/supl/locationomasuplprotocolhandler/protocolhandler/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -18,7 +18,7 @@
 
 
 PRJ_PLATFORMS
-DEFAULT
+DEFAULT GCCE
 
 PRJ_EXPORTS
 ../inc/epos_comasuplprotocolmanager.h 		|../../inc/epos_comasuplprotocolmanager.h
--- a/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplprotocolmanager.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/inc/epos_comasuplprotocolmanager.h	Wed Jun 23 18:40:52 2010 +0300
@@ -253,6 +253,11 @@
      *
      */
 	IMPORT_C virtual TInt GetSUPLMessageVersionL(TInt& aMajorVersion, const TDesC8& aReceivedMessage);
+	IMPORT_C  void CancelLocationConversionRequest(CSuplSessionBase* aSuplSession);
+	    
+	    IMPORT_C  void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
+	                                                  TGeoCellInfo& aCellInfo,
+	                                                  TRequestStatus& aStatus );
 	
 protected: // Construction
 	/**
--- a/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplinitilizerequestor.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplinitilizerequestor.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -223,7 +223,7 @@
         		            SetActive();
         		            break;
     		        		}
-                iObserver.InitilizationCompletedL( iStatus.Int() );
+                        iObserver.InitilizationCompletedL( iStatus.Int() );
     		    }
     }
 
--- a/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -795,7 +795,24 @@
 	{
 	return GetSuplVersion(aMajorVersion,aReceivedMessage);
 	}
-
+EXPORT_C void COMASUPLProtocolManager::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,TGeoCellInfo& aCellInfo,TRequestStatus& aStatus )
+    {
+     iTrace->Trace(_L("COMASUPLProtocolManager::MakeLocationConversionRequestL"), KTraceFileName, __LINE__);
+     if(iOMASuplProtocolHandler1)
+        {
+         iTrace->Trace(_L("COMASUPLProtocolManager::MakeLocationConversionRequestL if condition true"), KTraceFileName, __LINE__);
+        COMASUPLProtocolManager* ph1= (COMASUPLProtocolManager*) (iOMASuplProtocolHandler1);
+        ph1->MakeLocationConversionRequestL(aSuplSessn,aCellInfo,aStatus);
+        };
+    }
+EXPORT_C void COMASUPLProtocolManager::CancelLocationConversionRequest(CSuplSessionBase* aSuplSession)
+    {
+     if(iOMASuplProtocolHandler1)
+        {
+        COMASUPLProtocolManager* ph1= (COMASUPLProtocolManager*) (iOMASuplProtocolHandler1);
+        ph1->CancelLocationConversionRequest(aSuplSession);
+        };
+    }
 
 // -----------------------------------------------------------------------------
 // COMASUPLProtocolManager::DeInitilizationCompletedL
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/group/omasuplprotocolhandler1.mmp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/group/omasuplprotocolhandler1.mmp	Wed Jun 23 18:40:52 2010 +0300
@@ -90,7 +90,7 @@
 LIBRARY efsrv.lib 
 LIBRARY aknnotify.lib 
 LIBRARY commonengine.lib 
-LIBRARY agentdialog.lib
+//LIBRARY agentdialog.lib
 
 LIBRARY epossuplprotocolhandlerplugin.lib
 LIBRARY epos_comasuplasnplugin.lib
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplconnrequestor.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplconnrequestor.h	Wed Jun 23 18:40:52 2010 +0300
@@ -33,6 +33,7 @@
 class COMASuplFallBackHandler;
 class COMASUPLProtocolManager1;
 class COMASuplDialogTimer;
+class CRepository;
 /**
  *  Class for doing asynchronous service  i.e. used for Sending Packet to Socket.	
  *
@@ -92,6 +93,18 @@
 		 */ 
 		void CreateConnectionL(TInt aDialogTimeOutDelay);
 		
+		
+		/**
+		* CreateConnection Method Overload. Creates the Socket required to
+		* communicate with the SLP. Called in case of NI case.
+		* @since 
+		* @param aPrompt used to show connection dialog using OCC Api's.
+		* @param aWlanOnly used to connect server using wlan only.
+		* @return None
+		* Added CreateConnectionL with aPrompt and aWLANOnly for OCC.
+		*/ 
+		void CreateConnectionL(TBool aPrompt,TBool aWlanOnly);
+		
 		/**
 		* SendPacket Method.
 		* @since Series 60 3.1
@@ -271,6 +284,8 @@
 			//SUPLSettings
 			CSuplSettingsInternal *iSuplSettings;
 			
+			CRepository*            iRepository;
+			
 			//Trace Utility
 			COMASuplTrace* iTrace;
 			TBool iIsHSLPGenerated;
@@ -283,6 +298,11 @@
             TBool iIsSettingInitilized;
             
             TInt64 iCurrentSLPId;
+            TBool iPrompt;
+            
+            TBool iWlanOnly;
+            
+            TBool iIsStaleLocIdPresent;
 
 };
 
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplprotocolmanager1.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplprotocolmanager1.h	Wed Jun 23 18:40:52 2010 +0300
@@ -510,6 +510,28 @@
 public:  // COMASUPLProtocolManager
     void SetCommonConfig(COMASuplCommonConfig*& aCommmonConfig);
 
+public:
+    /*
+     * Method used to make conversion request for retrieving position of a location id.
+     * 
+     * @since S60 v5.2
+     * @param aSuplSessn session object on which processing will start
+     * @param aCellInfo contains cell id information and cell id type
+     * @param aStatus On return, the status of the request
+     * 
+     */
+    void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
+                                                      TGeoCellInfo& aCellInfo,               
+                                                      TRequestStatus& aStatus );
+    /*
+     * Method used to make cancel a conversion request for retrieving position of a location id.
+     * 
+     * @since S60 v5.2
+     * @param aSuplSessn session object which is to be cancelled
+     * 
+     */
+    void CancelLocationConversionRequest(CSuplSessionBase* aSuplSession);
+	
 public : // from MSuplSettingsObserver
     virtual void HandleSuplTriggerStatusChangeL(
                    CSuplSettings::TSuplTriggerStatus aSuplTriggerStatus );
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsession.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsession.h	Wed Jun 23 18:40:52 2010 +0300
@@ -257,10 +257,14 @@
 			* @param aAllowedCapabilities, Capabilities of SET
 			* @param aSessionIdSeed, seed value of session
 			* @param aRequestID, Request Identification number.
+			* @param aIsStaleCellId, indicates if this session is for a stale cell id conversion
+			* @param aLocationId , contains cell id parameters for which position is to be retrieved
+			* @param aPrompt indicates if the user is to be prompted when making location requests
+			* @param aWlanOnly ,request to connect server using wlan connection only using OCC Api's
 			* @return None
 			*/
 			virtual void RunSuplSessionL(TRequestStatus& aStatus, TBool aFirstReq, const TDesC& aHslpAddress, TBool aFallBack, TInt aAllowedCapabilities, 
-										 TInt aSessionIdSeed, TInt aRequestID = 0);
+										 TInt aSessionIdSeed, TInt aRequestID = 0,TBool aIsStaleCellId = EFalse,COMASuplLocationId* aLocationId = NULL,TBool aPrompt = EFalse,TBool aWlanOnly = EFalse);
 										 
 			/**
 			* RunSessionL, Starts the SUPL Sesssion for Terminal Initiated Location Request
@@ -1142,8 +1146,18 @@
             COMASuplAsnHandlerBase* iOMASuplAsnHandlerBaseImpl; 
             
             CPosNetworkPrivacy* iNetworkPrivacy;
+            //Stale cell id which for which position is to be retrieved
+            COMASuplLocationId* iStaleLocationId;
+			//indicates if this session is for a stale cell id conversion
+            TBool   iIsStaleLocIdPresent;
+			//indicates if the user needs to be prompted when making a location request
+            TBool   iStaleLocIdPrompt;
+            TBool iIhaveLaunchedUsagedialog;
 
             TUint iPortNum;
+            
+            //To indicate WLAN connection for OCC
+            TBool iWlanOnly; 
     };
 
 #endif      // C_COMASUPLSESSION_H
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsettingslauncher.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsettingslauncher.h	Wed Jun 23 18:40:52 2010 +0300
@@ -22,7 +22,7 @@
 
 // INCLUDES
 #include <e32std.h>
-#include <agentdialog.h>    // for RGenConAgentDialogServer
+//#include <agentdialog.h>    // for RGenConAgentDialogServer
 
 const TUid KNotifier1Uid = { 0x10009C00 };
 const TUid KNotifier2Uid = { 0x10009C01 };
@@ -155,7 +155,7 @@
 		/**
 		* IAP Selector Handle
 		*/
-	    RGenConAgentDialogServer    	iIapSelector;
+	 //   RGenConAgentDialogServer    	iIapSelector;
 	    
 		/**
 		* Selected IAP ID
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstartstate.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstartstate.h	Wed Jun 23 18:40:52 2010 +0300
@@ -108,6 +108,16 @@
 			* @return None
 			*/
 			void SetQop(TSuplTerminalQop& aQop);
+			
+			/*
+             * SetStaleCellIdToUse Method is used to set the Stale Cell id to use in case of
+             *                     retrieving position for an already retrieved cell id.
+             *                     For example : in case of Geo Tagged Images 
+             * @since S60 v5.2
+             * @param aLocationId This is the locatiod id parameter containing the stale cell id
+             * @return None                     
+             */
+			void SetStaleCellIdToUse(COMASuplLocationId* aLocationId);
 	
 	public: //MOMASuplETelObserver
 	
@@ -284,6 +294,9 @@
 			TOMASuplECellInfo iMmCellInfo;
 			
 			COMASuplAsnHandlerBase* iOMASuplAsnHandlerBase;
+			
+			//Indicates whether we need to create start message with Stale Cell Id
+			TBool iIsStaleCellId;
 
 };
 
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -16,6 +16,7 @@
  */
 
 
+#include <centralrepository.h>
 
 #include "epos_comasuplprotocolmanager1.h"
 #include "epos_csuplcommunicationmanager.h"
@@ -26,6 +27,8 @@
 #include "epos_momasuplconnobserver.h"
 #include "epos_comasupltrace.h"
 #include "epos_comasuplfallbackhandler.h"
+#include "epos_csuplsettingsinternalcrkeys.h"
+
 
 #include "epos_comasupldialogtimer.h"
 _LIT(KTraceFileName,"SUPL_OMA_SESSION::epos_comasuplconnrequestor.cpp");
@@ -47,7 +50,7 @@
         iCommMgr(aCommMgr), 
         iProtocolManager(aProtoMgr),
         iPort(aPort),
-        iObserver( aObserver)
+        iObserver( aObserver),iPrompt(EFalse),iWlanOnly(EFalse),iIsStaleLocIdPresent(EFalse)
         {
 
         }
@@ -69,7 +72,7 @@
     iHslpAddrFromImsiUsed = EFalse;
 
     iFallBackHandler = COMASuplFallBackHandler::NewL(*iSuplSettings);
-
+    iRepository = CRepository::NewL(KCRUidSuplSettings);
     iLastConnectionError = KErrNone;
 
     iCurrentSLPId = KErrNotFound;
@@ -107,6 +110,8 @@
     delete iSuplSettings;
     delete iTrace;
     delete iFallBackHandler;
+    delete iRepository;
+        iRepository = NULL;
     }
 
 // -----------------------------------------------------------------------------
@@ -156,7 +161,41 @@
         iHostAddress.Zero();
         iObserver.OperationCompleteL(errorCode);
         }
+		}
     }
+    
+ 
+ // -----------------------------------------------------------------------------
+// COMASuplConnRequestor::CreateConnection for OCC
+// -----------------------------------------------------------------------------
+//    
+void COMASuplConnRequestor::CreateConnectionL(TBool aPrompt,TBool aWlanOnly)
+    {
+        TBuf<30> GeoTagServerName;
+        TBuf<128> buffer;
+        iState = EConnecting;  
+       
+        iPrompt = aPrompt;
+        iWlanOnly = aWlanOnly;
+        iIsStaleLocIdPresent = ETrue;
+        //iIsTimeoutDialogTimerStarted = EFalse;
+        //iDialogTimer->Cancel();
+        
+        TInt err;
+        err = iRepository->Get(KSuplGeoInfoConvServerName, GeoTagServerName);
+        User::LeaveIfError(err);
+        buffer.Copy(_L("Connecting to"));
+        buffer.Append(GeoTagServerName);
+        iTrace->Trace(buffer,KTraceFileName, __LINE__);                 
+        iTls = ETrue;
+        iPskTls = EFalse;
+        iIAPId = 0;
+        
+        
+        iConnection = iCommMgr.CreateConnectionL(GeoTagServerName,iTls,iPskTls,iPort,iIAPId);
+       
+        OpenConnection();
+        
     }
 
 // -----------------------------------------------------------------------------
@@ -208,8 +247,17 @@
         if(iConnection)
             {
             iState = EConnecting;
-            iConnection->Connect(iStatus);
-            SetActive();
+            if(iIsStaleLocIdPresent)
+                {
+                iTrace->Trace(_L("OpenConnection OCC"),KTraceFileName, __LINE__);
+                iConnection->Connect(iStatus,iPrompt,iWlanOnly);
+                }
+            else
+                {
+                iConnection->Connect(iStatus);
+                }
+           SetActive();
+           
             }
         }
     else
@@ -278,7 +326,17 @@
                 {
                 iHostAddress.Zero();
                 CloseConnection();
-                CreateConnectionL();
+                if(iIsStaleLocIdPresent)
+                    {
+                    iTrace->Trace(_L("Request completed with error..."), KTraceFileName, __LINE__);       
+                    iObserver.OperationCompleteL(iLastConnectionError);
+                    }
+                else
+                    {
+                    iTrace->Trace(_L("Setting API Initilizing Completed..."), KTraceFileName, __LINE__);       
+                    CreateConnectionL();
+                    }
+                
                 }
             else
                 {
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplposinitstate.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplposinitstate.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -443,7 +443,7 @@
 		}
 	// Get the information from POS
 	if(iPosRequestor)
-	    User::LeaveIfError(iPosRequestor->GetSuplInfoL());
+	User::LeaveIfError(iPosRequestor->GetSuplInfoL());
 	
 	}
 // -----------------------------------------------------------------------------
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -46,6 +46,9 @@
 #include "epos_comasupltimeouttimer.h"
 #include "epos_omasuplconstants.h"
 #include "epos_comasuplcommonconfig.h"
+#include "epos_suplgeocellinfo.h"
+
+#include "epos_comasupllocationid.h"
 
 _LIT(KTraceFileName,"SUPL_OMA_PH::EPos_COMASUPLProtocolManager1.cpp");
 
@@ -2073,9 +2076,102 @@
     iSuplInitTimeOut = aCommmonConfig->iSuplInitTimeOut;
     iPersistFailTimer = aCommmonConfig->iPersistFailTimer;
     }
-void COMASUPLProtocolManager1::HandleSuplTriggerStatusChangeL(
-               CSuplSettings::TSuplTriggerStatus /*aSuplTriggerStatus*/ ) 
+void COMASUPLProtocolManager1::HandleSuplTriggerStatusChangeL(CSuplSettings::TSuplTriggerStatus /*aSuplTriggerStatus*/ ) 
+{
+
+}
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::MakeLocationConversionRequestL
+// 
+// To make conversion request to retrieve position for a given cell id
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager1::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
+        TGeoCellInfo& aCellInfo,
+        TRequestStatus& aStatus )
     {
-    
+    iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL"), KTraceFileName, __LINE__);
+    TBuf<64> tempBuf;
+
+    if ( iSuplSessions.Find(aSuplSessn) == KErrNotFound )
+        {
+        TRequestStatus *status = &aStatus; 
+        User::RequestComplete(status,KErrNotFound ); 
+        return;
+        }
+
+    CheckForSessionCount();
+    iRunningSessionCount++;
+
+    COMASuplLocationId* locationId =   COMASuplLocationId::NewL();
+    CleanupStack::PushL(locationId);
+    COMASuplLocationId::TOMASuplStatus status = COMASuplLocationId::EStale;
+    switch(aCellInfo.iGeoCellType)
+        {
+        case EGeoGsmCell:
+            {
+            iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting GSM Cell Info"), KTraceFileName, __LINE__);
+            COMASuplGSMCellInfo* cellInfo = COMASuplGSMCellInfo::NewL();
+            cellInfo->SetSuplGSMCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid,aCellInfo.iLac);
+            locationId->SetSuplLocationId(cellInfo,status);
+            }
+            break;
+        case EGeoWcdmaCell:
+            {
+            iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting WCDMA Cell Info"), KTraceFileName, __LINE__);
+            COMASuplCellInfo* cellInfo = COMASuplCellInfo::NewL();
+            cellInfo->SetSuplCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid);
+            locationId->SetSuplLocationId(cellInfo,status);
+            }
+            break;
+        }
+    CleanupStack::Pop(locationId); 
+    tempBuf.Copy(_L("MCC = "));
+    tempBuf.AppendNum(aCellInfo.iMCC);
+    iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
+    tempBuf.Copy(_L("MNC = "));
+    tempBuf.AppendNum(aCellInfo.iMNC);
+    iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
+    tempBuf.Copy(_L("LAC = "));
+    tempBuf.AppendNum(aCellInfo.iLac);
+    iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
+    tempBuf.Copy(_L("CId = "));
+    tempBuf.AppendNum(aCellInfo.iCid);
+    iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
+    tempBuf.Copy(_L("Prompt = "));
+    tempBuf.AppendNum(aCellInfo.iConnectionPrompt);
+    iTrace->Trace(tempBuf, KTraceFileName, __LINE__);
+
+    TInt allowedCapabilities = KECID|KCID;
+    TInt requestID = 1000; 
+    COMASuplSession* OMASession =  static_cast<COMASuplSession*>(aSuplSessn);
+    OMASession->SetConfigurationParameters(iUT1_StartTimer,iUT2_PosInitTimer, iUT3_PosTimer,iPrivacyTimer,iSETMode,
+            iSuplUsage, iPersistFailTimer,iSuplInitTimeOut);
+    OMASession->RunSuplSessionL(aStatus,ETrue, KNullDesC,EFalse, allowedCapabilities,iRunningSessionCount,requestID,ETrue,locationId,aCellInfo.iConnectionPrompt,aCellInfo.iWlanOnly);
+
+    }
+
+// -----------------------------------------------------------------------------
+// COMASUPLProtocolManager1::CancelLocationConversionRequest
+// 
+// Cancel an ongoing conversion request 
+// -----------------------------------------------------------------------------
+//
+void COMASUPLProtocolManager1::CancelLocationConversionRequest(CSuplSessionBase* aSuplSession)
+    {
+    // Log
+    iTrace->Trace(_L("COMASUPLProtocolManager1::CancelLocationConversionRequest"), KTraceFileName, __LINE__);
+
+    // Check if the Session is valid
+    TInt index = iSuplSessions.Find(aSuplSession);
+
+    if(KErrNotFound == index)
+        {
+        iTrace->Trace(_L("Cannot find Supl session."), KTraceFileName, __LINE__);
+        return;
+        }
+    aSuplSession->CancelRunSession();   
+    return ;
     }
 // end of file
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -128,7 +128,7 @@
 																iEtelRoamingCheck(EFalse),
 																iIapDialogShown(EFalse),
 																iIapDlgTimerExpired(EFalse),
-																iOMASuplAsnHandlerBaseImpl(aOMASuplAsnHandlerBase)
+																iOMASuplAsnHandlerBaseImpl(aOMASuplAsnHandlerBase),iWlanOnly(EFalse)
 																
     { 
     }
@@ -435,7 +435,7 @@
 //
  void COMASuplSession::RunSuplSessionL(TRequestStatus& aStatus, TBool aFirstReq, const TDesC& aHslpAddress, 
                                        TBool aFallBack, TInt aAllowedCapabilities,
- 									  TInt aSessionIdSeed,TInt aRequestID)
+ 									  TInt aSessionIdSeed,TInt aRequestID,TBool aIsStaleCellId,COMASuplLocationId* aLocationId,TBool aPrompt,TBool aWlanOnly)
     {
     	
     		iSessionStartTime1.HomeTime();
@@ -448,7 +448,32 @@
         iRequestID = aRequestID;
 
     	iTrace->Trace(_L("Start COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__); 
-    	
+
+    	if(aIsStaleCellId)
+    	    {
+    	    iTrace->Trace(_L("Start COMASuplSession::RunSuplSession for Stale Cell Id"), KTraceFileName, __LINE__); 
+    	    iIsStaleLocIdPresent = ETrue;
+
+     	    
+    	    if(iStaleLocationId)
+    	        {
+    	        delete iStaleLocationId;
+    	        iStaleLocationId = NULL;
+    	        }   	        
+
+    	    iStaleLocationId = aLocationId;
+    	    iStaleLocIdPrompt = aPrompt;
+    	    iWlanOnly = aWlanOnly; //OCC
+    	    
+    	    iTrace->Trace(_L("Deleting pos requestor as session is for Stale Cell Id"), KTraceFileName, __LINE__); 
+            delete iOMASuplPOSRequestor;
+             iOMASuplPOSRequestor = NULL;
+             
+    	    // Delete the POS Session
+    	     delete iPOSSession;
+    	     iPOSSession = NULL;    	     
+
+    	    }
     	// Log Session Id
     	TBuf<64> id;
     	id.Append(_L("Session  Id is "));
@@ -461,23 +486,27 @@
     	iTrace->Trace(id,KTraceFileName, __LINE__); 
     	
     	iSETSessionUniqueId = aSessionIdSeed;
-
+    	
+		iIhaveLaunchedUsagedialog = EFalse;
 		
 		TInt networkMode = 1;
 		networkMode = GetNetworkModeL();
 		
-		if ( networkMode == ECoreAppUIsNetworkConnectionNotAllowed )
-			{
-				id.Copy(_L("The device is in OFFLINE mode."));
-				iTrace->Trace(id,KTraceFileName, __LINE__); 
-				iSessionObserver.TerminateSession(this, KErrGeneral);
-				return;
-			}
-		else
-			{
-				id.Copy(_L("The device is in ON LINE mode."));
-				iTrace->Trace(id,KTraceFileName, __LINE__); 
-			}
+	 if(!iWlanOnly)	//OCC	
+            {
+            if ( networkMode == ECoreAppUIsNetworkConnectionNotAllowed )
+                {
+                    id.Copy(_L("The device is in OFFLINE mode."));
+                    iTrace->Trace(id,KTraceFileName, __LINE__); 
+                    iSessionObserver.TerminateSession(this, KErrGeneral);
+                    return;
+                }
+            else
+                {
+                    id.Copy(_L("The device is in ON LINE mode."));
+                    iTrace->Trace(id,KTraceFileName, __LINE__); 
+                }
+            } //OCC
 
     	if(aAllowedCapabilities == 0)
     		{
@@ -492,11 +521,35 @@
 		iSuplSessionId->SetSLPSessionID(NULL); 	
 		
 		iConnRequestor->SetDefaultParametersL(aHslpAddress,aFallBack);
-
-        if (aFirstReq)
-            CheckForSuplUsageL();
-        else
-            CheckForPreviousResultL();        
+		
+		 id.Copy(_L("aFallBack value is "));
+		 id.AppendNum(aFallBack);
+		 iTrace->Trace(id,KTraceFileName, __LINE__);
+
+       if(!iWlanOnly) //OCC
+		    {
+            iTrace->Trace(_L("iWLANOnly false COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__);
+           
+            id.Copy(_L("aFirstReq value is "));
+            id.AppendNum(aFirstReq);
+            iTrace->Trace(id,KTraceFileName, __LINE__);
+            
+            if (aFirstReq)
+                {
+                iTrace->Trace(_L("start CheckForSuplUsageL COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__);
+                CheckForSuplUsageL();
+                }
+            else
+                {
+                iTrace->Trace(_L("start CheckForPreviousResultL COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__);
+                CheckForPreviousResultL();  
+                }
+            }
+		else
+		    {
+		    iTrace->Trace(_L("iWLANOnly true COMASuplSession::RunSuplSession"), KTraceFileName, __LINE__); 
+            InitializeL(iRequestID);
+		    } //OCC     
 
 	    
 		// Clear  Position....
@@ -669,7 +722,13 @@
 				COMASuplStartState* startSuplState =  static_cast <COMASuplPosInitState *>(iSuplState);
 				startSuplState->SetQop(iClientQop);
 			}
-		//SMP Changes
+		if(iIsStaleLocIdPresent)
+		    {
+		    iTrace->Trace(_L("GenerateSuplStartL setting stale location id in supl start"), KTraceFileName, __LINE__);
+		    COMASuplStartState* startSuplState =  static_cast <COMASuplPosInitState *>(iSuplState);
+		    startSuplState->SetStaleCellIdToUse(iStaleLocationId->CloneL());
+		    }
+        iSuplSessionState = ESUPL_GENERATE;
 		iSuplMsgType = ESUPL_START;
 		SetPOSMsgPluginState(COMASuplPosSessionBase::EOMASuplCreating); 	
 		TInt err = iSuplState->GenerateMessageL();
@@ -716,6 +775,12 @@
 			iTrace->Trace(msg, KTraceFileName, __LINE__);
 			iSuplState = COMASuplPosInitState::NewL(iSETCapabilities, iMobilePhone, iUT2_PosInitTimer,
  						 iOMASuplPOSRequestor,iAllowedCapabilities,iRequestType, iPosMethod,iOMASuplAsnHandlerBaseImpl);
+			if(iIsStaleLocIdPresent)
+			    {
+			    iTrace->Trace(_L("COMASuplSession::GenerateSuplPosInitL() Setting Stale Location Id "), KTraceFileName, __LINE__);
+			    COMASuplPosInitState* posInitSuplState =  static_cast <COMASuplPosInitState *>(iSuplState);
+			    posInitSuplState->SetStaleCellIdToUse(iStaleLocationId->CloneL());
+			    }
 		
 		}
 		iSuplState->SetMsgStateObserver(this);
@@ -861,6 +926,7 @@
 //
 void COMASuplSession::OperationCompleteL(TInt aErrorCode)
 	{
+	iTrace->Trace(_L("COMASuplSession::OperationCompleteL"), KTraceFileName, __LINE__); 
 	TBuf<256> msg;
 	if(KErrNone != aErrorCode)
 		{
@@ -873,6 +939,10 @@
 			HandleSuplErrorL(aErrorCode);
 			return;
 		}
+	
+	msg.Copy(_L("iSuplSessionState : "));
+	msg.AppendNum(iSuplSessionState);
+	iTrace->Trace(msg, KTraceFileName, __LINE__); 
 		
 	TInt err = KErrNone;
 	
@@ -934,7 +1004,15 @@
 				 }
 		     else //terminal initiated case
 		         {
-            	TRAP( err, iConnRequestor->CreateConnectionL() );
+                 iTrace->Trace(_L("Connection block."), KTraceFileName, __LINE__);
+            	if(iIsStaleLocIdPresent)
+                     {
+                     TRAP( err, iConnRequestor->CreateConnectionL(iStaleLocIdPrompt,iWlanOnly) );
+                     }
+                 else
+                     {
+                     TRAP( err, iConnRequestor->CreateConnectionL() );
+                     }
 		         }
 			        if(KErrNone != err)
 				        {
@@ -1762,7 +1840,7 @@
 			TInt err = PosEstimate.GetConfidence(confidence);
 			altitude = 0;
 			if (altErr == KErrNone)
-			    AltitudeInfo.GetAltitudeInfo(AltitudeDirection,altitude,AltitudeUncertainty);
+			AltitudeInfo.GetAltitudeInfo(AltitudeDirection,altitude,AltitudeUncertainty);
 			PosEstimate.GetUncertainty(Uncertainty);
             Uncertainty.GetUncertainty(UncertaintySemiMajor,UncertaintySemiMinor,
             							OrientationMajorAxis);
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -149,9 +149,24 @@
 //
 TInt COMASuplStartState::GenerateMessageL() 
 	{
-		iTrace->Trace(_L("Start of COMASuplStartState::GenerateMessage"), KTraceFileName, __LINE__); 					
-		iLocationIDRequestor->GetLocationID();
-		return KErrNone;
+    
+    iTrace->Trace(_L("Start of COMASuplStartState::GenerateMessage"), KTraceFileName, __LINE__);
+          //if no cell stale cell id is available, retrieve current cell id
+          if(!iIsStaleCellId)
+              {
+              iTrace->Trace(_L("COMASuplStartState::GenerateMessage stale cell id false"), KTraceFileName, __LINE__);
+              iLocationIDRequestor->GetLocationID();
+              iTrace->Trace(_L("COMASuplStartState::GenerateMessage called get location id"), KTraceFileName, __LINE__);
+              }
+          else // dont retrieve current cell id as cell id was already provided
+              {
+              iGenerationStatus = EFalse;
+              iECId = EFalse;
+              iTrace->Trace(_L("COMASuplStartState::GenerateMessage stale cell id true"), KTraceFileName, __LINE__);
+              GetAssistceDataFromPluginL(KErrNone);
+              }
+          
+          return KErrNone;
 	}
 	
 // -----------------------------------------------------------------------------
@@ -996,4 +1011,15 @@
 	aCurrentCellId.iMCC = lRefMCC;
 	aCurrentCellId.iLac = lRefLAC;
 	}
-}	//  End of File
+}
+void COMASuplStartState::SetStaleCellIdToUse(COMASuplLocationId* aLocationId)
+    {
+    if(iLocationId)
+        {
+        delete iLocationId;
+        iLocationId = NULL;
+        }
+    iLocationId = aLocationId;
+    iIsStaleCellId = ETrue;
+    }
+//  End of File
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -18,7 +18,7 @@
 
 
 PRJ_PLATFORMS
-DEFAULT
+DEFAULT GCCE
 
 PRJ_EXPORTS
 
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/group/omasuplprotocolhandler2.mmp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/group/omasuplprotocolhandler2.mmp	Wed Jun 23 18:40:52 2010 +0300
@@ -95,7 +95,7 @@
 LIBRARY efsrv.lib 
 LIBRARY aknnotify.lib 
 LIBRARY commonengine.lib 
-LIBRARY agentdialog.lib
+//LIBRARY agentdialog.lib
 
 LIBRARY epossuplprotocolhandlerplugin.lib
 LIBRARY epos_comasuplasnplugin.lib
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettings.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettings.h	Wed Jun 23 18:40:52 2010 +0300
@@ -40,7 +40,7 @@
 	* @param None.
 	* @return Instance of COMASuplSettings
 	*/
-	static COMASuplSettings* COMASuplSettings::NewL();
+	static COMASuplSettings* NewL();
 	
 	/**
 	* ~COMASuplSettings Method, Destructor
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettingslauncher.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettingslauncher.h	Wed Jun 23 18:40:52 2010 +0300
@@ -22,7 +22,7 @@
 
 // INCLUDES
 #include <e32std.h>
-#include <agentdialog.h>    // for RGenConAgentDialogServer
+//#include <agentdialog.h>    // for RGenConAgentDialogServer
 
 const TUid KNotifier1Uid = { 0x10009C00 };
 const TUid KNotifier2Uid = { 0x10009C01 };
@@ -155,7 +155,7 @@
 		/**
 		* IAP Selector Handle
 		*/
-	    RGenConAgentDialogServer    	iIapSelector;
+	   // RGenConAgentDialogServer    	iIapSelector;
 	    
 		/**
 		* Selected IAP ID
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplposinitstate.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplposinitstate.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -800,6 +800,8 @@
         }
     //if the current Cell id is the same as the Cell id when we made the request for assistance data then use the assistance data
     //and we have not already repeated a request before
+    //Comment to ignore coverity forward NULL error
+    //coverity[FORWARD_NULL   :FALSE]
     if(!iRepeatedPosDataFetch && iLocationId->GetCellId() == aLocationId->GetCellId()) 
         {
         iTrace->Trace(_L("COMASuplPosInitState::ComparisionLocationIDRequestCompletedL Cell Id not changed since making last request, so continuing"), KTraceFileName, __LINE__); 
--- a/supl/locationomasuplprotocolhandler/provisioninghandler/src/epos_comasuplsettings.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/provisioninghandler/src/epos_comasuplsettings.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -20,7 +20,7 @@
 
 #include <CWPParameter.h>
 #include <WPAdapterUtil.h>
-#include <ApUtils.h>
+//#include <ApUtils.h>
 
 #include "epos_comasupltrace.h"
 #include "epos_comasuplsettings.h"
--- a/supl/locationomasuplprotocolhandler/supllistener/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/supllistener/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -19,12 +19,11 @@
 
 
 PRJ_PLATFORMS
-WINSCW ARMV5
+WINSCW ARMV5 GCCE
 
 PRJ_MMPFILES
 ./epos_omasupllistener.mmp
 // for backup restore 
 PRJ_EXPORTS
-../data/backup_registration.xml     /epoc32/release/winscw/udeb/z/private/1027509E/backup_registration.xml
-../data/backup_registration.xml     /epoc32/data/z/private/1027509E/backup_registration.xml
+../data/backup_registration.xml     z:/private/1027509E/backup_registration.xml
 ../inc/epos_comasuplproductconfigcrkeys.h  |../../../inc/epos_comasuplproductconfigcrkeys.h
\ No newline at end of file
--- a/supl/locationomasuplprotocolhandler/supllistener/inc/epos_comasuplsmslistenerbase.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/supllistener/inc/epos_comasuplsmslistenerbase.h	Wed Jun 23 18:40:52 2010 +0300
@@ -112,7 +112,7 @@
 	 *
 	 * @since S60 v3.1
 	 */
-    void COMASuplSmsListenerBase::SendL( const TPtr8& aMessage );
+    void SendL( const TPtr8& aMessage );
 
     // from base class CActive    
     /**
Binary file supl/locationsuplfw/conf/suplsettings.confml has changed
Binary file supl/locationsuplfw/conf/suplsettings_102073D6.crml has changed
--- a/supl/locationsuplfw/gateway/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/gateway/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -23,13 +23,8 @@
 WINSCW ARMV5
 
 PRJ_EXPORTS
-/****
-../Data/102073D2.txt      /epoc32/RELEASE/winscw/UDEB/Z/private/10202be9/102073D2.txt
-../Data/102073D2.txt      /epoc32/data/Z/private/10202be9/102073D2.txt
-*/
 
-../data/backup_registration.xml     /epoc32/RELEASE/winscw/udeb/z/private/102073ca/backup_registration.xml
-../data/backup_registration.xml     /epoc32/data/z/private/102073ca/backup_registration.xml
+../data/backup_registration.xml    z:/private/102073ca/backup_registration.xml
 
 PRJ_MMPFILES
 epos_csuplserver.mmp
--- a/supl/locationsuplfw/gateway/inc/epos_csuplipcsubsession.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/gateway/inc/epos_csuplipcsubsession.h	Wed Jun 23 18:40:52 2010 +0300
@@ -126,6 +126,11 @@
 		void HandlePeriodicTriggerSessionWithServernameL(const RMessage2& aMessage);		
 		void HandleStopTriggerringSessionL(const RMessage2& aMessage);		
 		void HandleNotifyTriggerFiredL(const RMessage2& aMessage);
+		/*
+		         * For Periodic Trigger Seesion
+		         */
+		        void HandleLocationConversionL(const RMessage2& aMessage);
+		        void HandleCancelLocationConversionL(const RMessage2& aMessage);
 
     private:    // Data
     	CSuplSessionBase*		iSuplSession;
--- a/supl/locationsuplfw/gateway/inc/epos_csuplsessionmanager.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/gateway/inc/epos_csuplsessionmanager.h	Wed Jun 23 18:40:52 2010 +0300
@@ -25,6 +25,7 @@
 #include <lbspositioninfo.h>
 #include <epos_suplterminal.h>
 #include <epos_suplterminaltrigger.h>
+#include <epos_suplgeocellinfo.h>
 #include "epos_csuplecomeventwatcher.h"
 
 // FORWARD DECLARATIONS
@@ -32,6 +33,7 @@
 class CSuplSessionBase;
 class CSuplCommunicationManager;
 
+
 // CLASS DECLARATION
 
 /**
@@ -87,6 +89,14 @@
 		
 		TInt GetSUPLMessageVersionL(TInt& aMajorVersion, const TDesC8& aReceivedMessage);
 		
+		
+		void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
+		                                             TGeoCellInfo& aCellInfo,
+		                                             TRequestStatus& aStatus
+		                                           );	                                           
+		                                           
+		void CancelLocationConversionRequest(CSuplSessionBase *aSessn);
+		
     private:
 
         /**
--- a/supl/locationsuplfw/gateway/inc/epos_csuplsessionrequest.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/gateway/inc/epos_csuplsessionrequest.h	Wed Jun 23 18:40:52 2010 +0300
@@ -27,7 +27,7 @@
 #include <lbspositioninfo.h>
 #include <epos_suplterminalqop.h>
 #include <epos_suplterminaltrigger.h>
-
+#include "epos_suplgeocellinfo.h"
 // CONSTANT DECLARATIONS
 
 // FORWARD DECLARATIONS
@@ -99,6 +99,9 @@
 		void CancelTriggerringRequest();
 		
 		void ProtocolHUnloaded();
+		void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,TGeoCellInfo& aCellInfo );
+		        
+		void CancelLocationConversionRequest();
 		
     protected:  // From CActive
 
@@ -129,7 +132,9 @@
             ESuplForwardMessage,
             ESuplStartTriggerRequest,            
             ESuplStopTriggerRequest,
-            ESuplTriggerFiredNotifyRequest
+            ESuplTriggerFiredNotifyRequest,
+            ESuplLocationConversionRequest,
+            ESuplCancelLocationConversionRequest
             };
      
 	 TSuplRequestStage           iRequestPhase;
--- a/supl/locationsuplfw/gateway/src/epos_csuplipcsubsession.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/gateway/src/epos_csuplipcsubsession.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -226,6 +226,19 @@
         	HandleNotifyTriggerFiredL(aMessage);
         	break;
         	}
+        case ESuplTerminalSubssnLocationConversion:
+                    {
+                    iMessage=aMessage;
+                    iReqType = ESuplTerminalSubssnLocationConversion;
+                    HandleLocationConversionL(aMessage);
+                    break;
+                    }
+                            
+                case ESuplTerminalSubssnCancelLocationConversion:
+                    {
+                    HandleCancelLocationConversionL(aMessage);
+                    break;
+                    }  
 		default:
 			User::Leave(KErrNotSupported);
         }
@@ -734,5 +747,51 @@
 						
 	CleanupStack::Pop(fireInfoBuf);	    		
 	}
-	
+// ---------------------------------------------------------
+// CSuplIPCSubSession::HandleLocationConversionL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//  
+void CSuplIPCSubSession::HandleLocationConversionL(const RMessage2& aMessage)
+    {
+    DEBUG_TRACE("CSuplIPCSubSession::HandleLocationConversionL", __LINE__)
+
+    if (iSuplSessnReq->IsActive())
+        {
+        SuplGlobal::RequestComplete(aMessage, KErrAlreadyExists);
+        }
+
+    if(iReqType==ESuplTerminalSubssnLocationConversion)
+        {
+        HBufC8* cellBuf = SuplGlobal::CopyClientBuffer8LC(aMessage,0);
+                
+        TGeoCellInfo& cellInfo = reinterpret_cast
+        <TGeoCellInfo&>(const_cast<TUint8&>(*cellBuf->Ptr()));
+                            
+        iSuplSessnReq->MakeLocationConversionRequestL( iSuplSession,cellInfo );
+        
+        CleanupStack::PopAndDestroy(cellBuf);        
+        }
+         
+    }
+
+// ---------------------------------------------------------
+// CSuplIPCSubSession::HandleCancelLocationConversionL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//  
+void CSuplIPCSubSession::HandleCancelLocationConversionL(const RMessage2& aMessage)
+    {
+    DEBUG_TRACE("CSuplIPCSubSession::HandleCancelLocationConversionL", __LINE__)
+
+    if (!iSuplSessnReq->IsActive()||(iReqType!=ESuplTerminalSubssnLocationConversion))
+        {
+        User::Leave(KErrNotFound);
+        }
+    iSuplSessnReq->CancelLocationConversionRequest();
+    SuplGlobal::RequestComplete(aMessage, KErrNone);
+    CompleteRunSession(KErrCancel);            
+    }	
 // End of File
--- a/supl/locationsuplfw/gateway/src/epos_csuplserver.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/gateway/src/epos_csuplserver.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -264,7 +264,7 @@
         }
 
     //if secure id is not equal to KSuplWapSecureId or KSuplWapSecureId, then perform capability check
-    if ((aMessage.SecureId() != KSuplWapSecureId && aMessage.SecureId() != KNetworkGatewaySID))
+    if ((aMessage.SecureId() != KSuplWapSecureId && aMessage.SecureId() != KNetworkGatewaySID && aMessage.SecureId() != 0x102869DF))
     	{
         if (!aMessage.HasCapability(ECapabilityCommDD))
             {
@@ -322,8 +322,11 @@
     static _LIT_SECURITY_POLICY_S0(allowSuplWapPolicy, KSuplWapSecureId);
     TBool isSuplWap = allowSuplWapPolicy().CheckPolicy(aMessage); 
     
-    //Check if the request was made by one of the allowed processes else check for required capability
-    if (!isNetworkGateway && !isSuplWap )
+    static _LIT_SECURITY_POLICY_S0(allowlocationserverPolicy, 0x102869DF);
+       TBool islocationserver = allowlocationserverPolicy().CheckPolicy(aMessage); 
+       
+       //Check if the request was made by one of the allowed processes else check for required capability
+       if (!isNetworkGateway && !isSuplWap && !islocationserver)
         {
         if (!aMessage.HasCapability(ECapabilityCommDD))
             {
--- a/supl/locationsuplfw/gateway/src/epos_csuplsessionmanager.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/gateway/src/epos_csuplsessionmanager.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -465,5 +465,49 @@
 		User::RequestComplete(status,KErrNotReady);
 		}	
 	}
+// ---------------------------------------------------------
+// CSuplSessionManager::MakeLocationConversionRequestL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//      
+void CSuplSessionManager::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
+                                                          TGeoCellInfo& aCellInfo,
+                                                          TRequestStatus& aStatus
+                                                        )
+    {
+    DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL", __LINE__)
+    TInt err = KErrNone;
+    if(iProtocolMgr && aSuplSessn)
+        {
+        DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL if condition true", __LINE__)
+        TRAP(err,iProtocolMgr->MakeLocationConversionRequestL(aSuplSessn,aCellInfo,aStatus));   
+        DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL err", __LINE__)
+        if(err!=KErrNone)
+            {
+            DEBUG_TRACE("CSuplSessionManager::MakeLocationConversionRequestL err not KErrNone", __LINE__)
+            TRequestStatus *status = &aStatus;
+            User::RequestComplete(status,KErrNotReady); 
+            }
+        }
+    else
+        {
+        TRequestStatus *status = &aStatus;
+        User::RequestComplete(status,KErrNotReady);
+        }
+    }
+
+// ---------------------------------------------------------
+// CSuplSessionManager::CancelLocationConversionRequest
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CSuplSessionManager::CancelLocationConversionRequest(CSuplSessionBase *aSessn)
+    {
+    DEBUG_TRACE("CSuplSessionManager::CancelLocationConversionRequest", __LINE__)
+    if(iProtocolMgr && aSessn)
+     iProtocolMgr->CancelLocationConversionRequest(aSessn);
+    }
     
 // End of File
--- a/supl/locationsuplfw/gateway/src/epos_csuplsessionrequest.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/gateway/src/epos_csuplsessionrequest.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -245,7 +245,13 @@
         	iNetObserver->CompleteForwardMessageL(iHandle);
         	break;
         	}
-
+        case ESuplLocationConversionRequest:
+        case ESuplCancelLocationConversionRequest:
+            {
+            iRequestPhase = ESuplReqInactive;
+            iObserver->CompleteRunSession(err);
+            break;
+            }
         default :
             DebugPanic(EPosSuplServerPanicRequestInconsistency);
         }
@@ -390,5 +396,33 @@
     iSessnMgr.CancelTriggerringSession(iSuplSessn);	
 	//SetActive();
     }
-    
+// ---------------------------------------------------------
+// CSuplSessionRequest::MakeLocationConversionRequestL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CSuplSessionRequest::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
+                                                          TGeoCellInfo& aCellInfo )
+    {
+    DEBUG_TRACE("CSuplSessionRequest::MakeLocationConversionRequestL", __LINE__)
+    iRequestPhase = ESuplLocationConversionRequest;
+    iStatus = KRequestPending;
+    iSessnMgr.MakeLocationConversionRequestL(aSuplSessn,aCellInfo,iStatus );
+    SetActive();       
+    }
+
+        
+// ---------------------------------------------------------
+// CSuplSessionRequest::CancelLocationConversionRequest
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CSuplSessionRequest::CancelLocationConversionRequest()
+    {
+    DEBUG_TRACE("CSuplSessionRequest::CancelLocationConversionRequest", __LINE__)
+    iRequestPhase = ESuplCancelLocationConversionRequest;
+    iSessnMgr.CancelLocationConversionRequest(iSuplSessn); 
+    }  
 //  End of File
--- a/supl/locationsuplfw/protocolhandlerapi/bwins/epossuplprotocolhandlerpluginu.def	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/bwins/epossuplprotocolhandlerpluginu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -1,26 +1,27 @@
 EXPORTS
-	?ConstructL@CSUPLProtocolManagerBase@@UAEXABVTUid@@@Z @ 1 NONAME ; void CSUPLProtocolManagerBase::ConstructL(class TUid const &)
-	??0CSUPLProtocolManagerBase@@QAE@XZ @ 2 NONAME ; CSUPLProtocolManagerBase::CSUPLProtocolManagerBase(void)
-	?CancelListenToMessages@CSuplConnection@@QAEXXZ @ 3 NONAME ; void CSuplConnection::CancelListenToMessages(void)
-	?ImplementationUid@CSUPLProtocolManagerBase@@QBE?AVTUid@@XZ @ 4 NONAME ; class TUid CSUPLProtocolManagerBase::ImplementationUid(void) const
-	?CancelSend@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 5 NONAME ; void CSuplConnection::CancelSend(class TRequestStatus &)
-	?ListenToMessages@CSuplConnection@@QAEHXZ @ 6 NONAME ; int CSuplConnection::ListenToMessages(void)
-	?GetSUPLMessageVersionL@CSUPLProtocolManagerBase@@UAEHAAHABVTDesC8@@@Z @ 7 NONAME ; int CSUPLProtocolManagerBase::GetSUPLMessageVersionL(int &, class TDesC8 const &)
-	?Version@CSUPLProtocolManagerBase@@QBEHXZ @ 8 NONAME ; int CSUPLProtocolManagerBase::Version(void) const
-	??1CSuplCommunicationManager@@UAE@XZ @ 9 NONAME ; CSuplCommunicationManager::~CSuplCommunicationManager(void)
-	?Connect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 10 NONAME ; void CSuplConnection::Connect(class TRequestStatus &)
-	?GetPortNumberUsed@CSuplConnection@@QAEHXZ @ 11 NONAME ; int CSuplConnection::GetPortNumberUsed(void)
-	?Initialize@CSuplCommunicationManager@@QAEHXZ @ 12 NONAME ; int CSuplCommunicationManager::Initialize(void)
-	?GetLocalIPAddress@CSuplConnection@@QAEHAAVTInetAddr@@@Z @ 13 NONAME ; int CSuplConnection::GetLocalIPAddress(class TInetAddr &)
-	?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTDesC8@@@Z @ 14 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TDesC8 const &)
-	?NewL@CSuplCommunicationManager@@SAPAV1@XZ @ 15 NONAME ; class CSuplCommunicationManager * CSuplCommunicationManager::NewL(void)
-	?Send@CSuplConnection@@QAEXABVTDesC8@@AAVTRequestStatus@@@Z @ 16 NONAME ; void CSuplConnection::Send(class TDesC8 const &, class TRequestStatus &)
-	?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@HHIH@Z @ 17 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, int, int, unsigned int, int)
-	?CloseConnection@CSuplConnection@@QAEXXZ @ 18 NONAME ; void CSuplConnection::CloseConnection(void)
-	?CancelConnect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 19 NONAME ; void CSuplConnection::CancelConnect(class TRequestStatus &)
-	?DestroyConnection@CSuplCommunicationManager@@QAEHPAVCSuplConnection@@@Z @ 20 NONAME ; int CSuplCommunicationManager::DestroyConnection(class CSuplConnection *)
-	?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTUid@@@Z @ 21 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TUid const &)
-	?SetPacketReceiver@CSuplCommunicationManager@@QAEXPAVMSuplPacketReceiver@@@Z @ 22 NONAME ; void CSuplCommunicationManager::SetPacketReceiver(class MSuplPacketReceiver *)
-	??1CSUPLProtocolManagerBase@@UAE@XZ @ 23 NONAME ; CSUPLProtocolManagerBase::~CSUPLProtocolManagerBase(void)
-	?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@IH@Z @ 24 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, unsigned int, int)
+	?Connect@CSuplConnection@@QAEXAAVTRequestStatus@@HH@Z @ 1 NONAME ; void CSuplConnection::Connect(class TRequestStatus &, int, int)
+	?ConstructL@CSUPLProtocolManagerBase@@UAEXABVTUid@@@Z @ 2 NONAME ; void CSUPLProtocolManagerBase::ConstructL(class TUid const &)
+	??0CSUPLProtocolManagerBase@@QAE@XZ @ 3 NONAME ; CSUPLProtocolManagerBase::CSUPLProtocolManagerBase(void)
+	?CancelListenToMessages@CSuplConnection@@QAEXXZ @ 4 NONAME ; void CSuplConnection::CancelListenToMessages(void)
+	?ImplementationUid@CSUPLProtocolManagerBase@@QBE?AVTUid@@XZ @ 5 NONAME ; class TUid CSUPLProtocolManagerBase::ImplementationUid(void) const
+	?CancelSend@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 6 NONAME ; void CSuplConnection::CancelSend(class TRequestStatus &)
+	?ListenToMessages@CSuplConnection@@QAEHXZ @ 7 NONAME ; int CSuplConnection::ListenToMessages(void)
+	?GetSUPLMessageVersionL@CSUPLProtocolManagerBase@@UAEHAAHABVTDesC8@@@Z @ 8 NONAME ; int CSUPLProtocolManagerBase::GetSUPLMessageVersionL(int &, class TDesC8 const &)
+	?Version@CSUPLProtocolManagerBase@@QBEHXZ @ 9 NONAME ; int CSUPLProtocolManagerBase::Version(void) const
+	??1CSuplCommunicationManager@@UAE@XZ @ 10 NONAME ; CSuplCommunicationManager::~CSuplCommunicationManager(void)
+	?Connect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 11 NONAME ; void CSuplConnection::Connect(class TRequestStatus &)
+	?GetPortNumberUsed@CSuplConnection@@QAEHXZ @ 12 NONAME ; int CSuplConnection::GetPortNumberUsed(void)
+	?Initialize@CSuplCommunicationManager@@QAEHXZ @ 13 NONAME ; int CSuplCommunicationManager::Initialize(void)
+	?GetLocalIPAddress@CSuplConnection@@QAEHAAVTInetAddr@@@Z @ 14 NONAME ; int CSuplConnection::GetLocalIPAddress(class TInetAddr &)
+	?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTDesC8@@@Z @ 15 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TDesC8 const &)
+	?NewL@CSuplCommunicationManager@@SAPAV1@XZ @ 16 NONAME ; class CSuplCommunicationManager * CSuplCommunicationManager::NewL(void)
+	?Send@CSuplConnection@@QAEXABVTDesC8@@AAVTRequestStatus@@@Z @ 17 NONAME ; void CSuplConnection::Send(class TDesC8 const &, class TRequestStatus &)
+	?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@HHIH@Z @ 18 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, int, int, unsigned int, int)
+	?CloseConnection@CSuplConnection@@QAEXXZ @ 19 NONAME ; void CSuplConnection::CloseConnection(void)
+	?CancelConnect@CSuplConnection@@QAEXAAVTRequestStatus@@@Z @ 20 NONAME ; void CSuplConnection::CancelConnect(class TRequestStatus &)
+	?DestroyConnection@CSuplCommunicationManager@@QAEHPAVCSuplConnection@@@Z @ 21 NONAME ; int CSuplCommunicationManager::DestroyConnection(class CSuplConnection *)
+	?NewL@CSUPLProtocolManagerBase@@SAPAV1@ABVTUid@@@Z @ 22 NONAME ; class CSUPLProtocolManagerBase * CSUPLProtocolManagerBase::NewL(class TUid const &)
+	?SetPacketReceiver@CSuplCommunicationManager@@QAEXPAVMSuplPacketReceiver@@@Z @ 23 NONAME ; void CSuplCommunicationManager::SetPacketReceiver(class MSuplPacketReceiver *)
+	??1CSUPLProtocolManagerBase@@UAE@XZ @ 24 NONAME ; CSUPLProtocolManagerBase::~CSUPLProtocolManagerBase(void)
+	?CreateConnectionL@CSuplCommunicationManager@@QAEPAVCSuplConnection@@ABVTDesC16@@IH@Z @ 25 NONAME ; class CSuplConnection * CSuplCommunicationManager::CreateConnectionL(class TDesC16 const &, unsigned int, int)
 
--- a/supl/locationsuplfw/protocolhandlerapi/eabi/epossuplprotocolhandlerpluginu.def	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/eabi/epossuplprotocolhandlerpluginu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -8,31 +8,32 @@
 	_ZN15CSuplConnection22CancelListenToMessagesEv @ 7 NONAME
 	_ZN15CSuplConnection4SendERK6TDesC8R14TRequestStatus @ 8 NONAME
 	_ZN15CSuplConnection7ConnectER14TRequestStatus @ 9 NONAME
-	_ZN24CSUPLProtocolManagerBase10ConstructLERK4TUid @ 10 NONAME
-	_ZN24CSUPLProtocolManagerBase22GetSUPLMessageVersionLERiRK6TDesC8 @ 11 NONAME
-	_ZN24CSUPLProtocolManagerBase4NewLERK4TUid @ 12 NONAME
-	_ZN24CSUPLProtocolManagerBase4NewLERK6TDesC8 @ 13 NONAME
-	_ZN24CSUPLProtocolManagerBaseC2Ev @ 14 NONAME
-	_ZN24CSUPLProtocolManagerBaseD0Ev @ 15 NONAME
-	_ZN24CSUPLProtocolManagerBaseD1Ev @ 16 NONAME
-	_ZN24CSUPLProtocolManagerBaseD2Ev @ 17 NONAME
-	_ZN25CSuplCommunicationManager10InitializeEv @ 18 NONAME
-	_ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16iiji @ 19 NONAME
-	_ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16ji @ 20 NONAME
-	_ZN25CSuplCommunicationManager17DestroyConnectionEP15CSuplConnection @ 21 NONAME
-	_ZN25CSuplCommunicationManager17SetPacketReceiverEP19MSuplPacketReceiver @ 22 NONAME
-	_ZN25CSuplCommunicationManager4NewLEv @ 23 NONAME
-	_ZN25CSuplCommunicationManagerD0Ev @ 24 NONAME
-	_ZN25CSuplCommunicationManagerD1Ev @ 25 NONAME
-	_ZN25CSuplCommunicationManagerD2Ev @ 26 NONAME
-	_ZNK24CSUPLProtocolManagerBase17ImplementationUidEv @ 27 NONAME
-	_ZNK24CSUPLProtocolManagerBase7VersionEv @ 28 NONAME
-	_ZTI15CSuplConnection @ 29 NONAME
-	_ZTI17CSuplSocketReader @ 30 NONAME
-	_ZTI24CSUPLProtocolManagerBase @ 31 NONAME
-	_ZTI25CSuplCommunicationManager @ 32 NONAME
-	_ZTV15CSuplConnection @ 33 NONAME
-	_ZTV17CSuplSocketReader @ 34 NONAME
-	_ZTV24CSUPLProtocolManagerBase @ 35 NONAME
-	_ZTV25CSuplCommunicationManager @ 36 NONAME
+	_ZN15CSuplConnection7ConnectER14TRequestStatusii @ 10 NONAME
+	_ZN24CSUPLProtocolManagerBase10ConstructLERK4TUid @ 11 NONAME
+	_ZN24CSUPLProtocolManagerBase22GetSUPLMessageVersionLERiRK6TDesC8 @ 12 NONAME
+	_ZN24CSUPLProtocolManagerBase4NewLERK4TUid @ 13 NONAME
+	_ZN24CSUPLProtocolManagerBase4NewLERK6TDesC8 @ 14 NONAME
+	_ZN24CSUPLProtocolManagerBaseC2Ev @ 15 NONAME
+	_ZN24CSUPLProtocolManagerBaseD0Ev @ 16 NONAME
+	_ZN24CSUPLProtocolManagerBaseD1Ev @ 17 NONAME
+	_ZN24CSUPLProtocolManagerBaseD2Ev @ 18 NONAME
+	_ZN25CSuplCommunicationManager10InitializeEv @ 19 NONAME
+	_ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16iiji @ 20 NONAME
+	_ZN25CSuplCommunicationManager17CreateConnectionLERK7TDesC16ji @ 21 NONAME
+	_ZN25CSuplCommunicationManager17DestroyConnectionEP15CSuplConnection @ 22 NONAME
+	_ZN25CSuplCommunicationManager17SetPacketReceiverEP19MSuplPacketReceiver @ 23 NONAME
+	_ZN25CSuplCommunicationManager4NewLEv @ 24 NONAME
+	_ZN25CSuplCommunicationManagerD0Ev @ 25 NONAME
+	_ZN25CSuplCommunicationManagerD1Ev @ 26 NONAME
+	_ZN25CSuplCommunicationManagerD2Ev @ 27 NONAME
+	_ZNK24CSUPLProtocolManagerBase17ImplementationUidEv @ 28 NONAME
+	_ZNK24CSUPLProtocolManagerBase7VersionEv @ 29 NONAME
+	_ZTI15CSuplConnection @ 30 NONAME
+	_ZTI17CSuplSocketReader @ 31 NONAME
+	_ZTI24CSUPLProtocolManagerBase @ 32 NONAME
+	_ZTI25CSuplCommunicationManager @ 33 NONAME
+	_ZTV15CSuplConnection @ 34 NONAME
+	_ZTV17CSuplSocketReader @ 35 NONAME
+	_ZTV24CSUPLProtocolManagerBase @ 36 NONAME
+	_ZTV25CSuplCommunicationManager @ 37 NONAME
 
--- a/supl/locationsuplfw/protocolhandlerapi/group/epos_suplprotocolhandlerplugin.mmp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/group/epos_suplprotocolhandlerplugin.mmp	Wed Jun 23 18:40:52 2010 +0300
@@ -55,5 +55,5 @@
 LIBRARY flogger.lib
 /* LIBRARY         gba.lib */
 
-exportunfrozen 
+//exportunfrozen 
 epocallowdlldata
--- a/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplconnection.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplconnection.h	Wed Jun 23 18:40:52 2010 +0300
@@ -88,6 +88,17 @@
         * @return void *
         */
         IMPORT_C void Connect(TRequestStatus &aStatus);
+        
+       /**
+        * A method that makes Socket Connection.
+        * @since Series 60 3.1 
+        * @return None
+        * @param aPrompt used to show connection prompt using OCC Api's.
+        * @param aWlanOnly used to differentiate connection for GPRS and WLAN using OCC Api's
+        */
+        IMPORT_C void Connect(TRequestStatus &aStatus,TBool aPrompt,TBool aWlanOnly);
+            
+        
 
         IMPORT_C void CloseConnection();
 
@@ -395,6 +406,10 @@
         // Number of client connected
         TInt iConnectClients;
         
+        TBool iPrompt;
+        
+        TBool iWlanOnly;
+        
     };
 
 #endif      // C_CSUPLCONNECTION_H 
--- a/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplprotocolmanagerbase.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplprotocolmanagerbase.h	Wed Jun 23 18:40:52 2010 +0300
@@ -29,7 +29,7 @@
 //Forword Declarations
 class CSuplSessionBase;
 class CSuplCommunicationManager;
-
+class TGeoCellInfo;
 
 /**
  * Constant:    KProtocolManagerInterfaceDefinitionUid
@@ -374,7 +374,35 @@
      */
     virtual TInt GetSUPLMessageVersionL(TInt& aMajorVersion, const TDesC8& aReceivedMessage);
     
-    
+    /**
+        * Function:     MakeLocationConversionRequestL
+        *
+        * @Description: Makes Location conversion request
+        *
+        * @Param:       aSuplSessn,session object on which processing will start
+        *
+        * @Param:       aCellInfo,cell information which needs to be converted to geo-coordinates
+        *
+        * @Param:       aStatus, On return, the status of the request
+        * @Returns:     returns None
+        */
+        
+        virtual void MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn,
+                                                     TGeoCellInfo& aCellInfo,
+                                                     TRequestStatus& aStatus ) = 0;
+           
+       
+        /**
+         * Function:     CancelLocationConversionRequest
+         *
+         * @Description: Cancels the conversion Request
+         *
+         * @Param:       Session Object
+         *
+         * @Returns:     None
+         */
+         
+         virtual void CancelLocationConversionRequest(CSuplSessionBase* aSuplSession) = 0;
 
 				 
 public: // from MSuplPacketReceiver
--- a/supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -139,7 +139,9 @@
     iConnectStarted(EFalse),
     iSendInProgress(EFalse),
     iFirstPkt(EFalse),
-    iListenCount(0)
+    iListenCount(0),
+    iPrompt(EFalse),
+    iWlanOnly(EFalse)
     {
     iHostAddress.Zero();
     CActiveScheduler::Add(this);
@@ -992,6 +994,106 @@
     iTrace->Trace(_L("CSuplConnection::Connect:Exit"), KTraceFileName, __LINE__);
     }
 
+
+// -----------------------------------------------------------------------------
+// CSuplConnection::Connect
+// Makes a secure connection to Network
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+
+EXPORT_C void CSuplConnection::Connect(TRequestStatus &aStatus,TBool aPrompt,TBool aWlanOnly)
+    {
+    
+        // Log
+        iTrace->Trace(_L("CSuplConnection::Connect"), KTraceFileName, __LINE__);
+        iPrompt = aPrompt;
+        iWlanOnly = aWlanOnly;
+        
+        if (iState == EConnected)
+            {
+            aStatus = KRequestPending;
+            TRequestStatus *reqStatus = &aStatus;
+            User::RequestComplete(reqStatus, KErrNone); 
+            iConnectClients++;
+            return;
+            }                
+
+        // Check if Connect() is started.  If started, add status to Q
+        //if (iConnectStarted)
+          //  {
+            aStatus = KRequestPending;
+            TRequestStatus *reqStatus = &aStatus;
+            iConnArray.Append(reqStatus);
+           // }                
+        
+        if (!iConnectStarted)
+            {                
+            iTrace->Trace(_L("CSuplConnection::Connect : Connection not started"), KTraceFileName, __LINE__);
+        // Connect only if not already connected
+        if(iState == ENotConnected || iState == EFailure)
+        {   
+            iTrace->Trace(_L("CSuplConnection::Connect : ENotConnected"), KTraceFileName, __LINE__);
+            iConnectStarted = ETrue;
+
+#ifndef __WINS__
+            
+            iTrace->Trace(_L("CSuplConnection::Connect ExtendedConnPref"), KTraceFileName, __LINE__);
+            
+            TExtendedConnPref OCCPrefs;
+            TConnPrefList prefList;
+
+                if(iWlanOnly)
+                    {
+                    iTrace->Trace(_L("CSuplConnection::Connect : iWLANOnly used"), KTraceFileName, __LINE__);
+                    OCCPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerWLAN);
+                    OCCPrefs.SetSnapPurpose(CMManager::ESnapPurposeInternet);
+                    }
+                else
+                    {
+                    iTrace->Trace(_L("CSuplConnection::Connect using OCC"), KTraceFileName, __LINE__);   
+                    iTrace->Trace(_L("CSuplConnection::Connect OCC GPRS Connection.."), KTraceFileName, __LINE__);
+                    OCCPrefs.SetBearerSet(TExtendedConnPref::EExtendedConnBearerCellular);
+                    OCCPrefs.SetSnapPurpose(CMManager::ESnapPurposeInternet);
+                   }
+                
+                if(!iPrompt)
+                   {
+                    iTrace->Trace(_L("CSuplConnection::Connect : silent connection"), KTraceFileName, __LINE__);
+                    OCCPrefs.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourConnSilent);
+                   }
+                else
+                    {
+                    iTrace->Trace(_L("CSuplConnection::Connect : Dialog prompt"), KTraceFileName, __LINE__);
+                    OCCPrefs.SetNoteBehaviour(TExtendedConnPref::ENoteBehaviourDefault);
+                    }
+                
+              
+            
+            TRAP_IGNORE(prefList.AppendL(&OCCPrefs));
+            
+            
+            TInt ret = iConnection.Open(iSocketServ);
+            // Start an Outgoing Connection with overrides
+            iConnection.Start(prefList,iStatus);
+            // Set state to ERetriveIAP
+            iState = ERetriveIAP;   
+            SetActive();     
+            
+            
+            
+#else
+            ConnectIAP();
+#endif
+        }
+            }
+        else
+            iTrace->Trace(_L("CSuplConnection::Connect : Conn in progress, request queued"), KTraceFileName, __LINE__);
+    // Log
+    iTrace->Trace(_L("CSuplConnection::Connect:Exit"), KTraceFileName, __LINE__);
+    }
+    
+
 // -----------------------------------------------------------------------------
 // CSuplConnection::CompleteConnectStatus
 // Completes the request to cancel connection 
--- a/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternalcrkeys.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternalcrkeys.h	Wed Jun 23 18:40:52 2010 +0300
@@ -33,5 +33,6 @@
 const TUint32 KSuplSessionDBEvent = 0x00000009;
 const TUint32 KSuplSessionDBChangedSessionId = 0x0000000A;
 const TUint32 KSuplSettingsTriggerServiceStatus = 0x0000000B;
+const TUint32 KSuplGeoInfoConvServerName = 0x0000000C;
 
 #endif //SUPLSETTINGSINTERNALCRKEYS_H
--- a/supl/locationsuplfw/terminalinitiationapi/bwins/epos_suplterminitiationu.def	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/bwins/epos_suplterminitiationu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -53,4 +53,7 @@
 	?GetPosition@RSuplTerminalSubSession@@QAEHAAVTPositionInfoBase@@@Z @ 52 NONAME ; int RSuplTerminalSubSession::GetPosition(class TPositionInfoBase &)
 	?ConstructL@CSuplSubSessnPtrHolder@@IAEXHH@Z @ 53 NONAME ; void CSuplSubSessnPtrHolder::ConstructL(int, int)
 	?NewL@CSuplSubSessnPtrHolder@@SAPAV1@HH@Z @ 54 NONAME ; class CSuplSubSessnPtrHolder * CSuplSubSessnPtrHolder::NewL(int, int)
+	?CancelLocationConversion@RSuplTerminalInternal@@QAEXXZ @ 55 NONAME ; void RSuplTerminalInternal::CancelLocationConversion(void)
+	??0RSuplTerminalInternal@@QAE@XZ @ 56 NONAME ; RSuplTerminalInternal::RSuplTerminalInternal(void)
+	?ConvertAreaInfoToCoordinates@RSuplTerminalInternal@@QAEXAAVTRequestStatus@@AAUTGeoCellInfo@@@Z @ 57 NONAME ; void RSuplTerminalInternal::ConvertAreaInfoToCoordinates(class TRequestStatus &, struct TGeoCellInfo &)
 
--- a/supl/locationsuplfw/terminalinitiationapi/eabi/epos_suplterminitiationu.def	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/eabi/epos_suplterminitiationu.def	Wed Jun 23 18:40:52 2010 +0300
@@ -68,4 +68,8 @@
 	_ZTV19CSuplTerminalParams @ 67 NONAME
 	_ZTV22CSuplSubSessnPtrHolder @ 68 NONAME
 	_ZTV23RSuplTerminalSubSession @ 69 NONAME
+	_ZN21RSuplTerminalInternal24CancelLocationConversionEv @ 70 NONAME
+	_ZN21RSuplTerminalInternal28ConvertAreaInfoToCoordinatesER14TRequestStatusR12TGeoCellInfo @ 71 NONAME
+	_ZN21RSuplTerminalInternalC1Ev @ 72 NONAME
+	_ZN21RSuplTerminalInternalC2Ev @ 73 NONAME
 
--- a/supl/locationsuplfw/terminalinitiationapi/group/bld.inf	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/group/bld.inf	Wed Jun 23 18:40:52 2010 +0300
@@ -23,6 +23,9 @@
 PRJ_EXPORTS
 
 ../inc/epos_suplparameters.h MW_LAYER_PLATFORM_EXPORT_PATH(epos_suplparameters.h)
+../inc/epos_suplterminalinternal.h	  |../../../inc/epos_suplterminalinternal.h
+../inc/epos_suplgeocellinfo.h	  |../../../inc/epos_suplgeocellinfo.h
+
 PRJ_MMPFILES
 epos_suplterminalapi.mmp
 
--- a/supl/locationsuplfw/terminalinitiationapi/group/epos_suplterminalapi.mmp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/group/epos_suplterminalapi.mmp	Wed Jun 23 18:40:52 2010 +0300
@@ -33,6 +33,7 @@
 SOURCE			epos_suplterminalqop.cpp 
 SOURCE			epos_suplterminalparams.cpp
 SOURCE 			epos_suplterminalperiodictrigger.cpp
+SOURCE 			epos_suplterminalinternal.cpp
 
 USERINCLUDE     ../inc
 USERINCLUDE     ../../../inc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplgeocellinfo.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Data structure to hold cell information for geo tagging purposes.
+*
+*/
+
+/*! \file epos_suplgeocellinfo.h
+    \brief Triggering classes 
+*/
+
+#ifndef __EPOS_SUPLGEOCELLINFO_H__
+#define __EPOS_SUPLGEOCELLINFO_H__
+
+// ==========================================
+
+/**
+ * Cell types
+ */
+enum TGeoCellType
+	{
+	/** GSM Cell. */
+	EGeoGsmCell = 0,
+	/** WCDMA cell. */
+	EGeoWcdmaCell = 1
+	};
+
+/**
+ * Class defines detailed information for gsm/wcdma cell.
+ *
+ * @since S60 5.2
+ */
+struct TGeoCellInfo
+    {
+    TInt iMNC;
+    TInt iMCC;
+    TInt iCid;
+    TInt iLac;
+    TBool iConnectionPrompt;
+    TBool iWlanOnly;
+    TGeoCellType iGeoCellType;
+    };
+
+#endif //__EPOS_SUPLGEOCELLINFO_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalinternal.h	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,82 @@
+/*
+* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  SUPL Terminal Initiation internal class
+*
+*/
+
+
+#ifndef __EPOS_SUPLTERMINALINTERNAL_H__
+#define __EPOS_SUPLTERMINALINTERNAL_H__
+
+
+#include <epos_suplterminal.h>
+
+#include "epos_suplgeocellinfo.h"
+
+
+// Forward declarations
+
+/**
+ * This class is used to make request to convert area information to geo-coordinates. 
+ */
+class RSuplTerminalInternal : public RSuplTerminalSubSession
+	{
+	
+   
+public:
+    /**
+     * Constructor for RSuplTerminalInternal
+     *
+     */
+	IMPORT_C RSuplTerminalInternal(); 
+	
+	/**
+     * This is an asynchronous request to SUPL Server to determine position 
+     * information corresponding to given area information.
+     * Client can have only one outstanding asynchronous request per sub-session.  
+     * @param [OUT] aStatus to return result code 
+     * @param[IN] aGeoCellInfo Cell information
+     * @return aStatus will have 
+     *         - KErrNone if request is completed sucessfully.  
+     *         - KErrCancel if the request was successfully cancelled
+     *         - KErrNotReady if SUPL server is not ready to determine position information, 
+     *         			 client can retry after sometime.
+     *         - KErrAlreadyExists if there is already an ongoing request on sub-session.
+     *         - KErrServerTerminated if server got terminated due to some error
+     *         - KErrNotSupported if function is called when Session is NOT Opened with SUPL_1_0 service
+     *         - KErrGeneral for all other errors
+     *
+     */                    
+    
+    IMPORT_C void ConvertAreaInfoToCoordinates(
+					TRequestStatus& aStatus, 
+					TGeoCellInfo& aGeoCellInfo );
+                    
+    /**
+     * Cancels an outstanding asynchronous conversion request issued via ConvertAreaInfoToCoordinates 
+     *  Canceling requests is typically attempted when an client 
+     * is closing down.
+     *
+     */
+    IMPORT_C void CancelLocationConversion();
+ 
+private:
+    //Cell Information
+	TGeoCellInfo iGeoCellInfo;
+	
+	//To check if conversion request has issued or not
+	TBool iConversionRequestIssued;
+	};
+
+#endif // __EPOS_SUPLTERMINALINTERNAL_H__
--- a/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalipc.h	Thu May 27 13:18:17 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalipc.h	Wed Jun 23 18:40:52 2010 +0300
@@ -61,7 +61,8 @@
 	ESuplTerminalSubssnStartPeriodicTriggerWithServer,	
 	ESuplTerminalSubssnNotifyTriggerFired,
 	ESuplTerminalSubssnStopTriggerSession,
-	
+	ESuplTerminalSubssnLocationConversion,
+	ESuplTerminalSubssnCancelLocationConversion,
     ESuplSubssnCustomCodesBegin         = ESuplCustomIpcOffset,
     };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalinternal.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Client-Server communication
+*
+*/
+#include <s32mem.h>
+#include <e32std.h>
+
+#include "epos_suplterminalinternal.h"
+#include "epos_suplterminalipc.h"
+#include "epos_suplterminalerrors.h"
+#include "epos_suplterminalptrholder.h"
+
+//-----------------------------------------------------------------------------
+// RSuplTerminalInternal
+//-----------------------------------------------------------------------------
+
+// -----------------------------------------------------------------------------
+// RSuplTerminalInternal::RSuplTerminalInternal()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C RSuplTerminalInternal::RSuplTerminalInternal()
+  : iConversionRequestIssued( EFalse )
+   	{
+	}
+
+// ---------------------------------------------------------
+// RSuplTerminalInternal::ConvertAreaInfoToCoordinates
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+EXPORT_C void RSuplTerminalInternal::ConvertAreaInfoToCoordinates( TRequestStatus& aStatus, 
+                                                                   TGeoCellInfo& aGeoCellInfo )
+    {  
+    __ASSERT_ALWAYS(SubSessionHandle(), 
+                    User::Panic(KSuplClientFault, ESuplServerBadHandle));
+    
+    // Currently only SUPL 1.0 supports cell to geo-coordinates conversion.
+    if( iSuplService != ESUPL_1_0 )
+        {
+        TRequestStatus *status = &aStatus; 
+        User::RequestComplete(status,KErrNotSupported); 
+        return;
+        }
+        
+    // Fill the values of data member
+    iGeoCellInfo.iMNC = aGeoCellInfo.iMNC;
+    iGeoCellInfo.iMCC = aGeoCellInfo.iMCC;
+    iGeoCellInfo.iCid = aGeoCellInfo.iCid;
+    iGeoCellInfo.iLac = aGeoCellInfo.iLac;
+    iGeoCellInfo.iConnectionPrompt = aGeoCellInfo.iConnectionPrompt;
+    iGeoCellInfo.iWlanOnly = aGeoCellInfo.iWlanOnly; //OCC
+    iGeoCellInfo.iGeoCellType = aGeoCellInfo.iGeoCellType;
+   
+    iPtrHolder->Ptr(0).Set(
+        reinterpret_cast<TUint8*>(&iGeoCellInfo),
+        sizeof(iGeoCellInfo),sizeof(iGeoCellInfo));
+
+    TIpcArgs args;
+
+    args.Set(0,&iPtrHolder->Ptr(0));
+    iConversionRequestIssued = ETrue;
+    SendReceive(ESuplTerminalSubssnLocationConversion, args, aStatus);  
+    }
+
+// ---------------------------------------------------------
+// RSuplTerminalInternal::CancelLocationConversion
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+EXPORT_C void RSuplTerminalInternal::CancelLocationConversion()
+    {  
+    __ASSERT_ALWAYS(SubSessionHandle(), 
+            User::Panic(KSuplClientFault, ESuplServerBadHandle));   
+    if( iConversionRequestIssued )
+        {
+        iConversionRequestIssued = EFalse; 
+        SendReceive(ESuplTerminalSubssnCancelLocationConversion); 
+        }    
+    }
+// end of file
--- a/supl/supltiapiimplementation/src/lbssupltirequestmanager.cpp	Thu May 27 13:18:17 2010 +0300
+++ b/supl/supltiapiimplementation/src/lbssupltirequestmanager.cpp	Wed Jun 23 18:40:52 2010 +0300
@@ -165,10 +165,12 @@
 //
 void CCLbsSuplTiRequestManager::CloseSession()
     {
-    iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() start"), KTraceFileName, __LINE__);
+    if(iTrace)
+        iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() start"), KTraceFileName, __LINE__);
     iRequestorCollection.ResetAndDestroy(); //cancels all active requests
     iServer.Close();
-    iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() end"), KTraceFileName, __LINE__);
+    if(iTrace)
+        iTrace->Trace(_L("CCLbsSuplTiRequestManager::CloseSession() end"), KTraceFileName, __LINE__);
     }
 // -----------------------------------------------------------------------------
 // CCLbsSuplTiRequestManager::FindSessionId