# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1277307652 -10800 # Node ID b12ea03c50a3d03c3fc9523046e38bb31bdbe478 # Parent 73f6c2762ffe57cad564a74ccd6bcc8ddaa21182 Revision: 201023 Kit: 2010125 diff -r 73f6c2762ffe -r b12ea03c50a3 genericpositioningplugins/group/bld.inf --- 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 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) diff -r 73f6c2762ffe -r b12ea03c50a3 genericpositioningplugins/locationnpppsy/group/bld.inf --- 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 PRJ_PLATFORMS -DEFAULT +DEFAULT GCCE PRJ_EXPORTS ../rom/nla_npppsy.iby CORE_MW_LAYER_IBY_EXPORT_PATH(nla_npppsy.iby) diff -r 73f6c2762ffe -r b12ea03c50a3 genericpositioningplugins/locationnpppsy/inc/npppsysingletonhandler.h --- 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 ); /** diff -r 73f6c2762ffe -r b12ea03c50a3 group/bld.inf --- 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" diff -r 73f6c2762ffe -r b12ea03c50a3 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" diff -r 73f6c2762ffe -r b12ea03c50a3 landmarks/locationlandmarks/dbmanclientlib/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 PRJ_PLATFORMS -DEFAULT +DEFAULT GCCE PRJ_EXPORTS diff -r 73f6c2762ffe -r b12ea03c50a3 landmarks/locationlandmarks/dbmanclientlib/src/EPos_HPosLmDatabaseInfo.cpp --- 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 + } diff -r 73f6c2762ffe -r b12ea03c50a3 landmarks/locationlandmarks/internalservices/group/bld.inf --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 landmarks/locationlandmarks/localaccess/inc/epos_cposlmlocaldatabase.h --- 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 ); diff -r 73f6c2762ffe -r b12ea03c50a3 landmarks/locationlandmarks/server/group/bld.inf --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 layers.sysdef.xml --- 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" /> + + + &) - ?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 &) - ??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 - diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/eabi/possettingsengineu.def --- 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 - diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/inc/possettingsadvinterface.h --- 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 +#include diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/inc/possettingsadvop.h --- 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 +#include #include #include #include diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/inc/possettingsview.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 +#include #include // Forward declaration diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/poslocationservices/inc/locationservicescustomviewitem.h --- 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 #include -#include +#include //dataItemType for Location services custom widget diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/poslocationservices/inc/poslocationservicesengine.h --- 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 +#include diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/posmethodsplugin/inc/pospsysettingsengineprivate.h --- 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 #include -#include +#include /** * The class defines the interface for receiving position diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/posmethodsplugin/src/pospsysettingsengineprivate.cpp --- 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 -#include -#include -#include +#include +#include +#include // constants const TInt KNameLength = 50; diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/posmethodsplugin/src/possettingssignalmapper.cpp --- 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" //--------------------------------------------------------------------- diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettings_stub.sis Binary file locationsystemui/locationsysui/possettings/possettings_stub.sis has changed diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettingsengine/bwins/possettingsengineu.def --- /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 &) + ?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 &) + ??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 + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettingsengine/eabi/possettingsengineu.def --- /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 + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsadvview.h --- 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 +#include #include //class PosSettingsAdvancedDataForm; diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsengine.h --- 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 +#include #include /** diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingsengineprivate.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 +#include #include #include diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettingsengine/inc/possettingspluginsloader.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 +#include #include class PosSettingsPluginsLoader diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettingsengine/src/possettingsengineprivate.cpp --- 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 -#include +#include #include -#include -#include -#include +#include +#include +#include //--------------------------------------------------------------------- // PosSettingsEnginePrivate::PosSettingsEnginePrivate() diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettingsplugin/possettingsplugin.pro --- 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 \ diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettingsplugin/src/possettingsplugin.cpp --- 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 +#include #include #include #include diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/possettings/possettingsplugin/src/possettingspluginhelper_p.cpp --- 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 +#include #include #include diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/bwins/locnotificationclientu.def --- /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 &) + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/eabi/locnotificationclientu.def --- /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 + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/group/contactresolversession.mmp --- /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 +#include // 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/inc/contactresolversession.h --- /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 + +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& 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/contactresolversession/src/contactresolversession.cpp --- /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 +#include +#include +#include +#include + + +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 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(); + } diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/inc/contactresolversession.h --- /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 + +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& 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/inc/locprivacycommon.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 + +// CONSTANTS +_LIT(KLocPrivacyServerName, "!locnotificationserver"); + +const TUint KLocPrivacyServerMajorVersionNumber = 0; +const TUint KLocPrivacyServerMinorVersionNumber = 0; +const TUint KLocPrivacyServerBuildVersionNumber = 0; + +#endif // PRIVACYCOMMON_H + +// End of File diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/inc/locprivacyinternal.h --- /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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/inc/locutilsdebug.h --- /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 + + +// 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 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/inc/locutilsdebugconfig.hrh --- /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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/install/privacydialogs_stub.pkg --- /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" diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/install/privacydialogs_stub.sis Binary file locationsystemui/locationsysui/privacyverifiernotifierui/install/privacydialogs_stub.sis has changed diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/bwins/locnotificationengineu.def --- /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 &) + ?NewL@CLocRequestorUtilsResolver@@SAPAV1@XZ @ 2 NONAME ; class CLocRequestorUtilsResolver * CLocRequestorUtilsResolver::NewL(void) + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/eabi/locnotificationengineu.def --- /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 + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/inc/locrequestorutilsresolver.h --- /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 + +//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& 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/inc/qlocnotificationengine.h --- /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 + +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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/locnotificationengine.pro --- /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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/src/locrequestorutilsresolver.cpp --- /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 +#include + + +#include +#include +#include + + + + +// ============= 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& 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(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 + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locnotificationengine/src/qlocnotificationengine.cpp --- /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 +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + + + +//--------------------------------------------------------------------- +// 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 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. diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/group/locprivacyserver.mmp --- /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 + +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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacycommon.h --- /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 + +// CONSTANTS +_LIT(KLocPrivacyServerName, "!locnotificationserver"); + +const TUint KLocPrivacyServerMajorVersionNumber = 0; +const TUint KLocPrivacyServerMinorVersionNumber = 0; +const TUint KLocPrivacyServerBuildVersionNumber = 0; + +#endif // PRIVACYCOMMON_H + +// End of File diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyinternal.h --- /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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserver.h --- /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 +#include + +// 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 + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserverdebugpanic.h --- /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 + +_LIT(KLocPrivSrvDebugPanicCategory, "Loc Priv debug"); + +enum TLocPrivSrvDebugPanic + { + // Unknown request recieved from client. + ELocPrivSrvPanicUnknownActivity = 0 + }; + +#endif // LOCPRIVACYSERVERDEBUGPANIC_H + +// End of File diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserversession.h --- /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 +#include + +// 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/inc/locprivacyserverstartup.h --- /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 + +// 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 + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/src/locprivacyserver.cpp --- /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(*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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/src/locprivacyserversession.cpp --- /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 +#include +#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 (const_cast (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 (&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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locprivacyserver/src/locprivacyserverstartup.cpp --- /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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locutils/bwins/locutils_32u.def --- /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, ...) + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locutils/eabi/locutils_32u.def --- /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 + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locutils/group/locutils.mmp --- /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 +#include +#include // 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 + + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locutils/inc/locutilsdebug.h --- /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 + + +// 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 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locutils/inc/locutilsdebugconfig.hrh --- /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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locutils/inc/locutilsuid.hrh --- /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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locutils/src/locutilsdebug.cpp --- /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 +#include +// 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 aText, ... ) + { + VA_LIST args; + VA_START( args, aText ); + + TBuf 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 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locutils/src/locutilsdebugdummy.cpp --- /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 /*aText*/, ... ) + { + } + +// End of File diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/group/locverifierdlg.mmp --- /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 +#include + +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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/locverifierdlgdebug.h --- /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 + + +// 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 */ diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/locverifieruid.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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpddlgobserver.h --- /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 + + +// 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdglobalplugindialog.h --- /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 +#include +#include + + +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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdnotifierquerylauncher.h --- /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 +#include + +// 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdquerylauncherbase.h --- /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 +#include +#include + +#include + + +// 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdrequestao.h --- /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 +#include + + +// 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdrequestorprocessor.h --- /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 +#include +#include +#include +// 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& 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 iRequestors; + CPosRequestor::TRequestType iRequestType; + TPosRequestDecision iRequestDecision; + TDialogType iDialogType; + TPosNotificationReason iNotifReason; + + }; + +#endif // CLPDREQUESTORPROCESSOR_H + +// End of File diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdresulthandler.h --- /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 + +// 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdverifierplugin.h --- /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 +#include +#include +// SYSTEM INCLUDE +#include // 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/inc/lpdverifierquerylauncher.h --- /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 +#include + + +// 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/rss/101f84fc.rss --- /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 + +#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; + } + }; + } + }; +} diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpddllmain.cpp --- /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 +#include +#include + +// ============================= LOCAL FUNCTIONS =============================== + +LOCAL_C void CreateNotifiersL( + CArrayPtrFlat* 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* NotifierArray() + { + CArrayPtrFlat* notifiers = + new CArrayPtrFlat( 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdglobalplugindialog.cpp --- /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 +#include +#include +#include +#include +#include +#include + +_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 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& 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 (array); + CHbSymbianVariant* requestors = CHbSymbianVariant::NewL(marray, + CHbSymbianVariant::EDesArray); + mSymbianVariantMap->Add(KRequestorKey, requestors); + } + +// End of file + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdnotifierquerylauncher.cpp --- /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 + +// 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdquerylauncherbase.cpp --- /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 + +// ============================ 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdrequestao.cpp --- /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 +#include + +// ================= 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdrequestorprocessor.cpp --- /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 +#include +#include +#include + + +// 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdverifierplugin.cpp --- /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 +#include +#include + +// INCLUDE FILES +#include + + + +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 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/locverifier/src/lpdverifierquerylauncher.cpp --- /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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/apilogger.h --- /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 +#include +#include +#include +#include + +using namespace std; + + +class ApiLogger + { + public: + static void OpenLogFile(); + static void CloseLogFile(); + static void MyOutputHandler(QtMsgType type, const char *msg); + }; + +#endif // APILOGGER_H diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/customdocumentloader.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 + +//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 */ diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/posverificationcustomdialog.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 +#include +#include +#include + + +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 ¶meters); + + /** + * 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/inc/posverificationdialogplugin.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 +#include + +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 pairs. Currently only Symbian is defined. + */ + + bool + accessAllowed(const QString ¬ificationType, + const QVariantMap ¶meters, + 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 ¶meters); + + /** + * 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 ¶meters, 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/posverificationdialogplugin.pro --- /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 +} + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/resources/posverificationcustomdialog.docml --- /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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/resources/posverificationdialog.qrc --- /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 @@ + + + posverificationcustomdialog.docml + + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/apilogger.cpp --- /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 + +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(); +} diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/customdocumentloader.cpp --- /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); + } diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/posverificationcustomdialog.cpp --- /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 +#include +#include + +//--------------------------------------------------------------- +//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 ¶meters) + { + 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 (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 (loader.findWidget("heading")); + Q_ASSERT_X((mHeadingLabel != 0), "PosVerificationCustomDialog", "invalid DocML file"); + + mQueryText = qobject_cast (loader.findWidget("queryText_1")); + Q_ASSERT_X((mQueryText != 0), "PosVerificationCustomDialog", "invalid DocML file"); + + mRequestorList + = qobject_cast (loader.findWidget("requestors")); + Q_ASSERT_X((mRequestorList != 0), "PosVerificationCustomDialog", "invalid DocML file"); + + mPrimaryAction = qobject_cast (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 (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 + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/posverificationdialogplugin/src/posverificationdialogplugin.cpp --- /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 +#include + +//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 ¶meters, + 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 ¶meters) + { + 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 ( + 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 ¶meters, + 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) + diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/privacyverifiernotifierui.pro --- /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 " \ + "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" +} diff -r 73f6c2762ffe -r b12ea03c50a3 locationsystemui/locationsysui/privacyverifiernotifierui/rom/privacydialogs.iby --- /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 +#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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationtriggering/group/bld.inf --- 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 PRJ_PLATFORMS -DEFAULT +DEFAULT GCCE PRJ_EXPORTS #ifdef CORE_MW_LAYER_IBY_EXPORT_PATH diff -r 73f6c2762ffe -r b12ea03c50a3 locationtriggering/ltcontainer/group/bld.inf --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationtriggering/ltcontainer/inc/lbtcontainerutilities.h --- 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 ); diff -r 73f6c2762ffe -r b12ea03c50a3 locationtriggering/rom/locationtriggering.iby --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locationtriggering/tsrc/lbtengine_test/Additionaltests/inc/AsynOperationAO.h --- 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( ); diff -r 73f6c2762ffe -r b12ea03c50a3 locationtriggering/tsrc/lbtengine_test/CellbasedtriggerOperations/inc/AsynOperationAO.h --- 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( ); diff -r 73f6c2762ffe -r b12ea03c50a3 locationtriggering/tsrc/lbtengine_test/TestHybridTriggers/inc/AsynOperationAO.h --- 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( ); diff -r 73f6c2762ffe -r b12ea03c50a3 locsrv_plat/supl_settings_api/tsrc/conf/settingsapi_test.cfg --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 locsrv_plat/supl_settings_api/tsrc/eabi/settingsapiu.def --- 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 ; ## _ZTV28CTerminalInitiatedRunSession @ 3 NONAME ; ## + _ZTI16CSessionObserver @ 4 NONAME + _ZTV16CSessionObserver @ 5 NONAME diff -r 73f6c2762ffe -r b12ea03c50a3 locsrv_plat/supl_settings_api/tsrc/inc/settingsapi.h --- 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 ); diff -r 73f6c2762ffe -r b12ea03c50a3 locsrv_plat/supl_settings_api/tsrc/src/settingsapiblocks.cpp --- 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() { diff -r 73f6c2762ffe -r b12ea03c50a3 locsrv_pub/blid_application_satellite_info_api/tsrc/bc_blid_application_satellite_info_Api/group/BCBlidTest.mmp --- 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 #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 diff -r 73f6c2762ffe -r b12ea03c50a3 locsrv_pub/landmarks_api/tsrc/bc_landmarks_api/src/testcposlandmarkdatabase.cpp --- 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 ); diff -r 73f6c2762ffe -r b12ea03c50a3 locsrv_pub/landmarks_api/tsrc/group/testlandmarksapi.mmp --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/group/bld.inf --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/conf/CI_suplsettings_productconfig.confml Binary file supl/locationomasuplprotocolhandler/conf/CI_suplsettings_productconfig.confml has changed diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/conf/suplsettings_productconfig.confml Binary file supl/locationomasuplprotocolhandler/conf/suplsettings_productconfig.confml has changed diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/group/bld.inf --- 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 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" diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandler/bwins/eposomasuplprotocolhandleru.def --- 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) diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandler/eabi/eposomasuplprotocolhandleru.def --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandler/group/bld.inf --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandler/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 /** diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplinitilizerequestor.cpp --- 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() ); } } diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/group/omasuplprotocolhandler1.mmp --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplconnrequestor.h --- 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; }; diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplprotocolmanager1.h --- 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 ); diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsession.h --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplsettingslauncher.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 -#include // for RGenConAgentDialogServer +//#include // for RGenConAgentDialogServer const TUid KNotifier1Uid = { 0x10009C00 }; const TUid KNotifier2Uid = { 0x10009C01 }; @@ -155,7 +155,7 @@ /** * IAP Selector Handle */ - RGenConAgentDialogServer iIapSelector; + // RGenConAgentDialogServer iIapSelector; /** * Selected IAP ID diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/inc/epos_comasuplstartstate.h --- 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; }; diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp --- 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 #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 { diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplposinitstate.cpp --- 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()); } // ----------------------------------------------------------------------------- diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp --- 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(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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp --- 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 (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 (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 (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); diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplstartstate.cpp --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver2/group/bld.inf --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver2/group/omasuplprotocolhandler2.mmp --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettings.h --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver2/inc/epos_comasuplsettingslauncher.h --- 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 -#include // for RGenConAgentDialogServer +//#include // for RGenConAgentDialogServer const TUid KNotifier1Uid = { 0x10009C00 }; const TUid KNotifier2Uid = { 0x10009C01 }; @@ -155,7 +155,7 @@ /** * IAP Selector Handle */ - RGenConAgentDialogServer iIapSelector; + // RGenConAgentDialogServer iIapSelector; /** * Selected IAP ID diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplposinitstate.cpp --- 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__); diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/provisioninghandler/src/epos_comasuplsettings.cpp --- 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 #include -#include +//#include #include "epos_comasupltrace.h" #include "epos_comasuplsettings.h" diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/supllistener/group/bld.inf --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationomasuplprotocolhandler/supllistener/inc/epos_comasuplsmslistenerbase.h --- 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 /** diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/conf/suplsettings.confml Binary file supl/locationsuplfw/conf/suplsettings.confml has changed diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/conf/suplsettings_102073D6.crml Binary file supl/locationsuplfw/conf/suplsettings_102073D6.crml has changed diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/gateway/group/bld.inf --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/gateway/inc/epos_csuplipcsubsession.h --- 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; diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/gateway/inc/epos_csuplsessionmanager.h --- 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 #include #include +#include #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: /** diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/gateway/inc/epos_csuplsessionrequest.h --- 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 #include #include - +#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; diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/gateway/src/epos_csuplipcsubsession.cpp --- 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 + (const_cast(*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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/gateway/src/epos_csuplserver.cpp --- 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)) { diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/gateway/src/epos_csuplsessionmanager.cpp --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/gateway/src/epos_csuplsessionrequest.cpp --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/protocolhandlerapi/bwins/epossuplprotocolhandlerpluginu.def --- 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) diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/protocolhandlerapi/eabi/epossuplprotocolhandlerpluginu.def --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/protocolhandlerapi/group/epos_suplprotocolhandlerplugin.mmp --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplconnection.h --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/protocolhandlerapi/inc/epos_csuplprotocolmanagerbase.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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/settingsapi/inc/epos_csuplsettingsinternalcrkeys.h --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/terminalinitiationapi/bwins/epos_suplterminitiationu.def --- 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 &) diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/terminalinitiationapi/eabi/epos_suplterminitiationu.def --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/terminalinitiationapi/group/bld.inf --- 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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/terminalinitiationapi/group/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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/terminalinitiationapi/inc/epos_suplgeocellinfo.h --- /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__ diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalinternal.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 + +#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__ diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/terminalinitiationapi/inc/epos_suplterminalipc.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, }; diff -r 73f6c2762ffe -r b12ea03c50a3 supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalinternal.cpp --- /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 +#include + +#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(&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 diff -r 73f6c2762ffe -r b12ea03c50a3 supl/supltiapiimplementation/src/lbssupltirequestmanager.cpp --- 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