# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1272375053 -10800 # Node ID 4721bd00d3dacd171c4e2e74eb6d18235fc5a994 # Parent 3a25f69541ff9ac9c9f22b417b82fe390fcdeaaf Revision: 201015 Kit: 201017 diff -r 3a25f69541ff -r 4721bd00d3da basiclocationinfodisplay/blid/rom/blid.iby --- a/basiclocationinfodisplay/blid/rom/blid.iby Wed Apr 14 15:50:30 2010 +0300 +++ b/basiclocationinfodisplay/blid/rom/blid.iby Tue Apr 27 16:30:53 2010 +0300 @@ -48,9 +48,6 @@ file=ABI_DIR\BUILD_DIR\SatInfoStub.dll SHARED_LIB_DIR\SatInfo.dll #endif // __LOCATIONFRAMEWORKCORE -// export blid lc registration file -data=ZPRIVATE\10283138\import\blid_lc_registration.xml \private\10283138\import\blid_lc_registration.xml - // backup-restore registration file to take backup data=DATAZ_\private\101F85A0\backup_registration.xml private\101F85A0\backup_registration.xml diff -r 3a25f69541ff -r 4721bd00d3da basiclocationinfodisplay/blid/ui/data/blid_lc_registration.xml --- a/basiclocationinfodisplay/blid/ui/data/blid_lc_registration.xml Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ - - - - Navigation - - - - - - \ No newline at end of file diff -r 3a25f69541ff -r 4721bd00d3da basiclocationinfodisplay/blid/ui/data/blid_reg.rss --- a/basiclocationinfodisplay/blid/ui/data/blid_reg.rss Wed Apr 14 15:50:30 2010 +0300 +++ b/basiclocationinfodisplay/blid/ui/data/blid_reg.rss Tue Apr 27 16:30:53 2010 +0300 @@ -26,7 +26,6 @@ RESOURCE APP_REGISTRATION_INFO { app_file = "Blid"; - hidden = KAppIsHidden; localisable_resource_file = APP_RESOURCE_DIR"\\Blid"; localisable_resource_id = R_BLID_LOCALISABLE_APP_INFO; } diff -r 3a25f69541ff -r 4721bd00d3da basiclocationinfodisplay/blid/ui/group/bld.inf --- a/basiclocationinfodisplay/blid/ui/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ b/basiclocationinfodisplay/blid/ui/group/bld.inf Tue Apr 27 16:30:53 2010 +0300 @@ -28,10 +28,6 @@ ../inc/Blid.hrh |../../../inc/Blid.hrh ../inc/BlidSettingsCrkeys.h |../../../inc/BlidSettingsCrkeys.h -// Export the lc registration file -../data/blid_lc_registration.xml /epoc32/release/winscw/udeb/z/private/10283138/import/blid_lc_registration.xml -../data/blid_lc_registration.xml /epoc32/data/z/private/10283138/import/blid_lc_registration.xml - // Export blidstub.sis file ../data/blidstub.sis /epoc32/data/z/system/install/blidstub.sis diff -r 3a25f69541ff -r 4721bd00d3da eventsui/eventsmgmtui/data/evtmgmtui_reg.rss --- a/eventsui/eventsmgmtui/data/evtmgmtui_reg.rss Wed Apr 14 15:50:30 2010 +0300 +++ b/eventsui/eventsmgmtui/data/evtmgmtui_reg.rss Tue Apr 27 16:30:53 2010 +0300 @@ -40,7 +40,6 @@ RESOURCE APP_REGISTRATION_INFO { app_file = "evtmgmtui"; - hidden = KAppIsHidden; embeddability = KAppEmbeddable; localisable_resource_file = EVTMGMTUI_RESOURCE_FILE_NAME; localisable_resource_id = R_EVTMGMTUI_LOCALISABLE_APP_INFO; diff -r 3a25f69541ff -r 4721bd00d3da eventsui/eventsmgmtui/data/evtmgmtui_reg.xml --- a/eventsui/eventsmgmtui/data/evtmgmtui_reg.xml Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ - - - - LocationEvents - - - - - - \ No newline at end of file diff -r 3a25f69541ff -r 4721bd00d3da eventsui/eventsmgmtui/group/bld.inf --- a/eventsui/eventsmgmtui/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ b/eventsui/eventsmgmtui/group/bld.inf Tue Apr 27 16:30:53 2010 +0300 @@ -20,8 +20,6 @@ DEFAULT PRJ_EXPORTS -../data/evtmgmtui_reg.xml /epoc32/data/z/private/10283138/import/evtmgmtui_reg.xml -../data/evtmgmtui_reg.xml /epoc32/release/winscw/udeb/z/private/10283138/import/evtmgmtui_reg.xml ../data/eventsuistub.sis /epoc32/data/z/system/install/eventsuistub.sis PRJ_MMPFILES diff -r 3a25f69541ff -r 4721bd00d3da eventsui/rom/eventsui.iby --- a/eventsui/rom/eventsui.iby Wed Apr 14 15:50:30 2010 +0300 +++ b/eventsui/rom/eventsui.iby Tue Apr 27 16:30:53 2010 +0300 @@ -64,10 +64,6 @@ // Other Icons SCALABLE_IMAGE( APP_BITMAP_DIR, APP_BITMAP_DIR, evthandlerapp ) -// Location Centre Registration file -data=ZPRIVATE\10283138\import\evtmgmtui_reg.xml \private\10283138\import\evtmgmtui_reg.xml - - // Notifier ECOM_PLUGIN(evtnotifierplugin.dll,evtnotifierplugin.rsc) file=ABI_DIR\BUILD_DIR\evtinfonote.dll SHARED_LIB_DIR\evtinfonote.dll diff -r 3a25f69541ff -r 4721bd00d3da group/bld.inf --- a/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ b/group/bld.inf Tue Apr 27 16:30:53 2010 +0300 @@ -26,7 +26,6 @@ #include "../locationsatviewrefapp/group/bld.inf" #include "../simpsyconfigurator/group/bld.inf" #include "../mapnavproviderrefapp/group/bld.inf" -#include "../locationcentre/group/bld.inf" #include "../loc_pub/group/bld.inf" #include "../loc_plat/group/bld.inf" diff -r 3a25f69541ff -r 4721bd00d3da landmarksui/app/data/Landmarks_reg.rss --- a/landmarksui/app/data/Landmarks_reg.rss Wed Apr 14 15:50:30 2010 +0300 +++ b/landmarksui/app/data/Landmarks_reg.rss Tue Apr 27 16:30:53 2010 +0300 @@ -34,8 +34,7 @@ { app_file = "Landmarks"; embeddability = KAppEmbeddable; - hidden = KAppIsHidden; - localisable_resource_file = APP_RESOURCE_DIR"\\landmarks"; + localisable_resource_file = APP_RESOURCE_DIR"\\landmarks"; localisable_resource_id = R_LANDMARKS_LOCALISABLE_APP_INFO; } diff -r 3a25f69541ff -r 4721bd00d3da landmarksui/app/data/landmarksui_lc_registration.xml --- a/landmarksui/app/data/landmarksui_lc_registration.xml Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ - - - - PersonalData - - - - - - \ No newline at end of file diff -r 3a25f69541ff -r 4721bd00d3da landmarksui/app/group/bld.inf --- a/landmarksui/app/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ b/landmarksui/app/group/bld.inf Tue Apr 27 16:30:53 2010 +0300 @@ -30,8 +30,6 @@ DEFAULT PRJ_EXPORTS -../data/landmarksui_lc_registration.xml /epoc32/release/winscw/udeb/z/private/10283138/import/landmarksui_lc_registration.xml -../data/landmarksui_lc_registration.xml /epoc32/data/z/private/10283138/import/landmarksui_lc_registration.xml // Export landmarksstub.sis file ../data/landmarksstub.sis /epoc32/data/z/system/install/landmarksstub.sis diff -r 3a25f69541ff -r 4721bd00d3da landmarksui/rom/LocationLandmarksUi.iby --- a/landmarksui/rom/LocationLandmarksUi.iby Wed Apr 14 15:50:30 2010 +0300 +++ b/landmarksui/rom/LocationLandmarksUi.iby Tue Apr 27 16:30:53 2010 +0300 @@ -49,7 +49,7 @@ data=ZRESOURCE\apps\LmkUi.mif APP_RESOURCE_DIR\LmkUi.mif -#if defined(__LANDMARKS) +#if defined(FF_LANDMARKS_UI) // Landmarks UI application Icons and Resources @@ -62,7 +62,7 @@ -#endif // __LANDMARKS +#endif // FF_LANDMARKS_UI #ifdef __LANDMARKS_CONVERTER @@ -77,7 +77,6 @@ #endif // __LANDMARKSCONVERTER -data=ZPRIVATE\10283138\import\landmarksui_lc_registration.xml \private\10283138\import\landmarksui_lc_registration.xml #endif // __LandmarksUI_IBY__ diff -r 3a25f69541ff -r 4721bd00d3da landmarksui/uicontrols/data/LmkEditor.rss --- a/landmarksui/uicontrols/data/LmkEditor.rss Wed Apr 14 15:50:30 2010 +0300 +++ b/landmarksui/uicontrols/data/LmkEditor.rss Tue Apr 27 16:30:53 2010 +0300 @@ -876,15 +876,29 @@ } //---------------------------------------------------- // -// r_lmk_unit_editor -// Avkon's distance editor +// r_lmk_unit_editor_metric +// Avkon's distance editor using metric units // //---------------------------------------------------- // -RESOURCE AVKON_UNIT_EDITOR r_lmk_unit_editor +RESOURCE AVKON_UNIT_EDITOR r_lmk_unit_editor_metric { min = 0; - max = 99999; + max = 20000; // KMaxAccuracy + maxfractionaldigits = 2; + flags = EAknUnitEditorAllowUninitialized; + } +//---------------------------------------------------- +// +// r_lmk_unit_editor_imperial +// Avkon's distance editor using imperial units +// +//---------------------------------------------------- +// +RESOURCE AVKON_UNIT_EDITOR r_lmk_unit_editor_imperial + { + min = 0; + max = 6099; // KMaxAccuracy/KMetreToFoot maxfractionaldigits = 2; flags = EAknUnitEditorAllowUninitialized; } diff -r 3a25f69541ff -r 4721bd00d3da landmarksui/uicontrols/src/CLmkEditorNumberField.cpp --- a/landmarksui/uicontrols/src/CLmkEditorNumberField.cpp Wed Apr 14 15:50:30 2010 +0300 +++ b/landmarksui/uicontrols/src/CLmkEditorNumberField.cpp Tue Apr 27 16:30:53 2010 +0300 @@ -204,24 +204,35 @@ // void CLmkEditorNumberField::CreateAvkonUnitEditorL() { - // Create Distance editor using AVKON's unit editor - // and insert a line in the dialog - iControl = static_cast( iUiBuilder.CreateLineL( + // Create Distance editor using AVKON's unit editor + // and insert a line in the dialog + iControl = static_cast( iUiBuilder.CreateLineL( FieldLabel(), LandmarkItemField().UniqueFieldIdentity(), EAknCtUnitEditor ) ); - //read control from resource file. - TResourceReader reader; - iEnv->CreateResourceReaderLC(reader, R_LMK_UNIT_EDITOR); - iControl->ConstructFromResourceL(reader); - CleanupStack::PopAndDestroy();// reader - ResolveUnitL(); + + // Obtain the current system of measurement TInt sysOfMeasurement = EAknUnitEditorMeter; if( !IsSystemUnitMetric()) { sysOfMeasurement = EAknUnitEditorFoot; } + + //read control from resource file. + TResourceReader reader; + if( sysOfMeasurement == EAknUnitEditorMeter) + { + iEnv->CreateResourceReaderLC(reader, R_LMK_UNIT_EDITOR_METRIC); + } + else + { + iEnv->CreateResourceReaderLC(reader, R_LMK_UNIT_EDITOR_IMPERIAL); + } + + iControl->ConstructFromResourceL(reader); + CleanupStack::PopAndDestroy(); //reader + ResolveUnitL(); /* if ( LandmarkItemField().FieldType() == EPositionAccuracy || diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/group/bld.inf --- a/loc_plat/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ b/loc_plat/group/bld.inf Tue Apr 27 16:30:53 2010 +0300 @@ -15,7 +15,3 @@ * export files. * */ - - - -#include "../location_centre_api/group/bld.inf" \ No newline at end of file diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/group/bld.inf --- a/loc_plat/location_centre_api/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: File that exports the files belonging to -: Location Centre API -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/lcnativeapps.hrh APP_LAYER_PLATFORM_EXPORT_PATH(lcnativeapps.hrh) -../inc/lcappexitobserver.h APP_LAYER_PLATFORM_EXPORT_PATH(lcappexitobserver.h) -../inc/lclocationappinfo.h APP_LAYER_PLATFORM_EXPORT_PATH(lclocationappinfo.h) -../inc/lclocationappfilter.h APP_LAYER_PLATFORM_EXPORT_PATH(lclocationappfilter.h) -../inc/lcservice.h APP_LAYER_PLATFORM_EXPORT_PATH(lcservice.h) -../inc/lcnotification.h APP_LAYER_PLATFORM_EXPORT_PATH(lcnotification.h) -../inc/lcerrors.h APP_LAYER_PLATFORM_EXPORT_PATH(lcerrors.h) diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/inc/lcappexitobserver.h --- a/loc_plat/location_centre_api/inc/lcappexitobserver.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Observer class defintion to notify the termination of -* Chained Location Applications. -* -*/ -#ifndef M_LCAPPEXITOBSERVER_H -#define M_LCAPPEXITOBSERVER_H - -/** - * @file lcappexitobserver.h - * - * This file provides the definitions for the observer class which is used - * by Location Centre to notify the termination of a Chained Location based - * Application. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ - -// SYSTEM INCLUDES -#include - -/** - * @class MLcAppExitObserver - * Observer class to notify the termination of a launched Location based - * Application. - * - * This observer will provide the notification only when the Location based - * Application is launched as a Chained application. This client - * application needs to pass an instance of this class when calling - * @ref CLcService::LaunchLocationApplicationL if it wants to be notified - * of a Location Application exit event incase the Location based - * Application is launched as a Chained application. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -class MLcAppExitObserver - { -public: - /** - * Notification for the termination of the chained Location based - * Application. - * - * @since S60 v5.0 - * @param[in] aReason The reason that the Location based Application exited. - * This will either be an error code, or the command - * id that caused the Location based Application to exit. - */ - virtual void HandleChainedLocationAppExitL( TInt aReason ) = 0; - }; - -#endif // M_LCAPPEXITOBSERVER_H diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/inc/lcerrors.h --- a/loc_plat/location_centre_api/inc/lcerrors.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Error and Panic defintions for Location Centre API -* -*/ - -#ifndef LCERRORS_H -#define LCERRORS_H - -/** - * @file lcerrors.h - * - * This file provides the defintions for Error and Panics which are - * used in Location Centre. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ - -// CONSTANT DEFINTIONS -#include - -/** - * Location Centre Panic Category - */ -_LIT( KLcPanicCategory, "LocationCentre"); - -/** - * @enum TLCPanicCodes - * Panic Codes for Location Centre - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -enum TLcPanicCodes - { - /** - * Code with which Location Centre panics when an attempt is made - * to access an element of @ref CLcLocationAppInfoArray from an index - * which does not exist. - */ - ELcInvalidIndex = 0 - }; - -#endif // LCERRORS_H diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/inc/lclocationappfilter.h --- a/loc_plat/location_centre_api/inc/lclocationappfilter.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,292 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Application Filters -* -*/ - -#ifndef T_LCLOCATIONAPPFILTER_H -#define T_LCLOCATIONAPPFILTER_H - -/** - * @file lclocationappfilter.h - * - * This file provides the filters which can be used to customize the list - * of Location based Application which can be retrieved from Location Centre - * or which can be displayed in Location Centre. - * - * @note The components which can register with Location Centre are of - * two types - * - Applications - * - Location based services / contents. - * - * These Client Applications or Services/Contents which register with Location - * Centre will be called Location based Application henceforth. - * - * @lib lcservice.lib - * @since S60 5.0 - */ - -// SYSTEM INCLUDES -#include - -/** - * @class TLcLocationAppFilter - * Location Application Filter. - * - * This class allows the client application to configure the list of Location - * based Applications that the client intends to obtain from Location Centre - * or the list of Location based Application that the client application wants - * Location Centre to show. - * The filtering is based on characteristics exhibited by the Location based - * Applications. These characteristics can be of two types - * - System Characteristics defined by - * @ref CLcLocationAppInfo::TLcSystemCharacteristics and - * - Application Characteristics defined by - * @ref CLcLocationAppInfo::TLcApplicationCharacteristics. - * - * The default state of the filter class for various property is - * - System Characteristics is @ref TLcSystemCharacteristics::ESysCharNone - * - System Characteristic filter configuration is @ref EFilterStrict - * - Application Characteristic is @ref TLcApplicationCharacteristics::EAppCharNone - * - Application Characteristic filter configuration is @ref EFilterStrict - * - * This class is expected to be is passed as an input argument to the - * @p GetLocationApplicationsL, @p GetLocationApplications and - * @p LaunchLocationCentreL functions of @ref CLcService class. - * - * @see CLcService::GetLocationApplicationsL - * @see CLcService::GetLocationApplications - * @see CLcService::LaunchLocationCentreL - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -class TLcLocationAppFilter - { -public: - /** - * @enum TLcFilterConfig - * The mode in which the application filtering should be done. - * This enumeration is used by the client application to specify the way - * in which filtering of applications should be done. - */ - enum TLcFilterConfig - { - /** - * Location based Application that exhibit only the characteristics - * specified by the client applications must be used. If the - * System / Application characteristics stored in this object - * contains a bitmask of more than one characteristic, then only - * those Location based Application which satisfy all the mentioned - * characteristics will be considered for filtering. - * These characteristics are specified by the enumerations - * @ref CLcLocationAppInfo::TLcSystemCharacteristics and - * @ref CLcLocationAppInfo::TLcApplicationCharacteristics - */ - EFilterStrict = 0, - - /** - * Applications that exhibit only the characteristics specified by - * the client application alone or other characteristics in-addition - * to the specified ones will be used for processing. If the - * System / Application characteristics stored in this object - * contains a bitmask of more than one characteristic, then - * only those Location based Applications which satisfy all the - * mentioned characteristics in addtion to optionally satisfying - * other characteristics will be considered for filetering. - * These characteristics are specified by the enumerations - * @ref CLcLocationAppInfo::TLcSystemCharacteristics and - * @ref CLcLocationAppInfo::TLcApplicationCharacteristics - */ - EFilterInclusive = 1, - - /** - * Location based Application that exhibit characteristics other than - * those specified by the client application must be used. If the - * System / Application characteristics stored in this object - * contains a bitmask of more than one characteristic, then only - * Location based Application which do not satisfy any of the - * mentioned characteristics will be considered for filtering. - * These characteristics are specified by the enumerations - * @ref CLcLocationAppInfo::TLcSystemCharacteristics and - * @ref CLcLocationAppInfo::TLcApplicationCharacteristics - */ - EFilterExclusive = 2 - }; - -public: // Exported Member Functions - /** - * Default Constructor - */ - IMPORT_C TLcLocationAppFilter(); - - /** - * Accessor function which returns the currently configured System - * characteristics which will be used for filtering. All the system - * characteristics would be combined to form an integer bit-mask and - * this function retrieves the current bit-mask. The individual system - * characteristics are defined by - * @ref CLcLocationAppInfo::TLcSystemCharacteristics enumeration. - * - * @note If the current configuration of the system characteristics is - * the default value @ref CLcLocationAppInfo::ESysCharNone, - * then it should not be treated as a bit-mask but as an independent - * value alone. - * - * @since S60 5.0 - * @return Bit-mask holding the currently enabled System characteristics. - */ - IMPORT_C TUint32 SystemCharacteristics() const; - - /** - * Sets the requested system characteristic to the filter. - * - * All the system characteristics which the Client application intends - * to be used for filtering must be combined to form a bit-mask - * and this value is set to the filter. - * The individual system characteristics are defined by - * @ref CLcLocationAppInfo::TLcSystemCharacteristics enumeration. - * - * @since S60 5.0 - * @param[in] aSystemChar System Characteristic bit-mask value. - * @return KErrArgument If the value of the input parameter is - * if its not a valid mask. - */ - IMPORT_C TInt SetSystemCharacteristic( TUint32 aSystemChar ); - - /** - * Retrieves the current value of the System characteristics filter option. - * The value of the filter is defined by the @ref TLcFilterConfig - * enumeration. - * - * @since S60 5.0 - * @return Current System characteristics filter configuration. - */ - IMPORT_C TLcFilterConfig SysCharFilterConfiguration() const; - - /** - * Sets the filter configuration option for system characteristics. - * Location centre can be configured to treat the System - * characteristics value based upon this flag. - * - * @since S60 5.0 - * @param[in] aFilterConfig The mode in which the System characteristics - * value must be treated. The values which this - * variable can assume is defined by the - * @ref TLcFilterConfig enumeration. - */ - IMPORT_C void SetSysCharFilterConfiguration( - TLcFilterConfig aFilterConfig ); - - - /** - * Accessor function which returns the currently configured Application - * characteristics which will be used for filtering. All the application - * characteristics would be combined to form an integer bit-mask and - * this function retrieves the current bit-mask. The individual application - * characteristics are defined by - * @ref CLcLocationAppInfo::TLcApplicationCharacteristics enumeration. - * - * @note If the current configuration of the application characteristics - * is the default value @ref EAppCharNone, then it should not be - * treated as a bit-mask but as an independent value alone. - * - * @since S60 5.0 - * @return Bit-mask holding the currently enabled System - * characteristics. - */ - IMPORT_C TUint32 ApplicationCharacteristics() const; - - /** - * Sets the requested Application characteristic to the filter. - * - * All the Application characteristics which the Client application - * intends to be used for filtering must be combined to form a bit-mask - * and this value is set to the filter. - * The individual system characteristics are defined by - * @ref CLcLocationAppInfo::TLcApplicationCharacteristics enumeration. - * - * @since S60 5.0 - * @param[in] aAppChar Application Characteristic bit-mask value. - * @return KErrArgument If the value of the input parameter is - * if its not a valid mask. - */ - IMPORT_C TInt SetApplicationCharacteristics( TUint32 aAppChar ); - - /** - * Retrieves the current value of the Application characteristics - * filter option. The value of the filter is defined by the - * @ref TLcFilterConfig enumeration. - * - * @return Current Application characteristics filter configuration. - */ - IMPORT_C TLcFilterConfig AppCharFilterConfiguration() const; - - /** - * Sets the filter configuration option for application characteristics. - * Location centre can be configured to treat the Application - * characteristics value based upon this flag. - * - * @since S60 5.0 - * @param[in] aFilterConfig The mode in which the Application - * characteristics value must be treated. The - * values which this variable can assume is - * defined by the @ref TLcFilterConfig - * enumeration. - */ - IMPORT_C void SetAppCharFilterConfiguration( - TLcFilterConfig aFilterConfig ); - -private: // Data - /** - * System characteristics which must be used for Filtering Location - * applications. This variable contains a Bitmask of the enumeration - * CLcLocationAppInfo::TLcSystemCharacteristics. - * If the Client application decides to set the default value or - * doesn't explicitly initialize this variable then the value used - * would be ESysCharNone. - */ - TUint32 iSystemChar; - - /** - * Filtering option for System Characteristics. - * If the client application decides to use the default value for this - * filter then then value used would be EFilterStrict. - */ - TLcFilterConfig iSysFilterConfig; - - /** - * Application characteristics which must be used for Filtering Location - * applications. This variable contains a Bitmask of the enumeration - * CLcLocationAppInfo::TLcApplicationCharacteristics. - * If the Client application decides to set the default value or - * doesn't explicitly initialize this variable then the value used - * would be EAppCharNone. - */ - TUint32 iApplicationChar; - - /** - * Filtering option for Application Characteristics. - * If the client application decides to use the default value for this - * filter then then value used would be EFilterStrict. - */ - TLcFilterConfig iAppFilterConfig; - - /** - * Reserved for future use. - */ - TUint8 iReserved[8]; - }; - -#endif // T_LCLOCATIONAPPFILTER_H diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/inc/lclocationappinfo.h --- a/loc_plat/location_centre_api/inc/lclocationappinfo.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,669 +0,0 @@ -/* -* ============================================================================ -* Name : lclocationappinfo.h -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Application Information structures. -* -*/ - -/** - * @file lclocationappinfo.h - * - * This file provides the information about the components registered with - * Location Centre. - * - * @note The components which can register with Location Centre are of - * two types - * - Applications - * - Location based services / contents. - * - * These Client Applications or Services/Contents which register with Location - * Centre will be called Location based Applications henceforth. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ - -#ifndef C_LCLOCATIONAPPINFO_H -#define C_LCLOCATIONAPPINFO_H - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lclocationappfilter.h" - -// FORWARD DECLARATIONS -class CGulIcon; - -/** - * @class CLcLocationAppInfo - * Location Application information. - * - * The class defines the information pertaining to an application registered - * with Location Centre. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -class CLcLocationAppInfo : public CBase - { -public: - /** - * @enum TLcSystemCharacteristics - * System Characteristics for the applications registered with Location - * Centre. - * - * These characteristics can be combined and used to form a bit-mask - * which can then be used while retrieving/displaying registered - * applications from Location Centre. - * The system characteristics are defined by Location Centre when an - * application registers with it. - */ - enum TLcSystemCharacteristics - { - /** - * This characteristic can be used to retrieve/display all Location - * Applications regardless of their System arrtibutes. This - * characteristic cannot be combined with any other value. - * This will be used as the default System characteristic. - */ - ESysCharNone = 0, - - /** - * This characteristic is associated with Location based Applications that - * are installed on the ROM. - */ - ESysCharRomBased = 1 - }; - - /** - * @enum TLcApplicationCharacteristics - * Application Characteristics for the applications registered with - * Location Centre. - * - * The application characteristics are defined by the Location based Applications - * when they register with Location Centre. A Location Application can - * define one or more characteristics when they register. These - * characteristics can be combined and used to form a bit-mask which can - * then be used while retrieving/displaying registered applications from - * Location Centre. - */ - enum TLcApplicationCharacteristics - { - /** - * This characteristics is used for Location based Applications which do - * not wish to publish any characteristics. These Location based Applications - * would get displayed in Location Centre only when Location Centre is - * launched from the application shell or when the user of the Location - * Centre API does not specify any other Application characteristics in - * filtering. This characteristic cannot be combined with any other value. - * This will be used as the default Application characteristic. - */ - EAppCharNone = 0, - - /** - * This characteristic is used for Location based Applications which have - * Settings related functionality. These Location based Applications are - * used to configure the user's terminal or the remote server for - * all Location related features. - */ - EAppCharSettings = 1, - - /** - * This characteristic is used for Location based Applications which have - * Personal Data Management related functionality. These Location - * based Applications enable the user to manage his personal information. - */ - EAppCharPersonalDataManagement = 2, - - /** - * This characteristic is used for Location based Applications which have - * Navigation related functionality. These Location based Applications - * help the terminal user to navigate from one location to another. - */ - EAppCharNavigation = 4, - - /** - * This characteristic is used for Location based Applications which are - * related to Location based events. These Location based Applications are - * generally based to trigger certain events based on the terminal's - * current Location. - */ - EAppCharLocationBasedEvents = 8, - - /** - * This characteristic is used for Location based Applications which have - * Remote positioning related functionality. These Location - * based Applications are generally involved in determining the current - * location of other terminals or objects. - */ - EAppCharRemotePositioning = 16, - - /** - * This characteristic is used for Location based Applications which are - * related to Network services. These Location based Applications are - * generally involved in the exchange of Location related information - * and Location related services over the network. - */ - EAppCharNetworkService = 32, - - /** - * This characteristic is used for Location based Applications which are - * used to send Location enhanced messages. - */ - EAppCharLocationEnhancedMessages = 64, - - /** - * This characteristic is used for Location based Applications which - * provide Location based content which is stored on the terminal. - */ - EAppCharOnDeviceLocationBasedContent = 128, - - /** - * This characteristic is used for Location based Applications which - * provide Location based content that is stored remotely and needs - * to be accessed from the remote server. These Location based Applications - * would need connection to the network to access the Location based - * content. - */ - EAppCharRemoteLocationBasedContent = 256, - - /** - * This characteristic is used for Location based Applications which - * position a particular geographic location of a map. - */ - EAppCharMaps = 512 - }; - - /** - * @enum TLcLaunchMode - * The mode in which Location Centre needs to launch the application - * contained in the Location Application information object. - */ - enum TLcLaunchMode - { - /** - * The corresponding application would be launched in the mode - * specified by it during registration with Location Centre. - */ - EDefaultMode = 0, - - /** - * The corresponding application would be launched as a stand - * alone application. - */ - EStandAloneMode = 1, - - /** - * The corresponding application would be launched as a - * chained application. - */ - EChainedMode = 2 - }; - -public: // Exported Functions - /** - * Constructs a new instance of Location Application information object. - * - * @return The new instance of Location Application information object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcLocationAppInfo* NewL(); - - /** - * Constructs a new instance of Location Application information object. - * Leaves the created instance on the cleanup stack. - * - * @return The new instance of Location Application information object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcLocationAppInfo* NewLC(); - - /** - * Constructs a new instance of Location Application information object. - * - * @param[in] aLocAppInfo Location Application Information from which the - * object should be constructed. - * @return The new instance of Location Application information object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcLocationAppInfo* NewL( - const CLcLocationAppInfo& aLocAppInfo ); - - /** - * Constructs a new instance of Location Application information object. - * Leaves the created instance on the cleanup stack. - * - * @param[in] aLocAppInfo Location Application Information from which the - * object should be constructed. - * @return The new instance of Location Application information object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcLocationAppInfo* NewLC( - const CLcLocationAppInfo& aLocAppInfo ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Application - * information object. - */ - virtual ~CLcLocationAppInfo(); - - /** - * Gets the Unique identifier identifying the Location Application. - * This identifier is defined by the Location Application on registration - * with Location Centre. - * This is the identifier that must be used by the client of this API for - * any operation on the particular Location Application. - * A reference to the object's internal string is returned. - * - * @since S60 v5.0 - * @return Unique identifier identifying the Location Application. If the - * value of the identifier has not been set then a NULL string - * is returned. - */ - IMPORT_C TPtrC Id() const; - - /** - * Gets the Logical name for the Location Application. - * The name is defined by the Location Centre on registration with - * Location Centre. This is the name which would be displayed by - * Location Centre for this application. - * A reference to the object's internal string is returned. - * - * @since S60 v5.0 - * @return Logical name for the Location Application. If the name - * has not been set for the Location Application, then a NULL - * string is returned. - */ - IMPORT_C TPtrC Name() const; - - /** - * Gets the Icon for the Location Application. - * This is the icon that would be displayed in Location Centre for this - * application. If no icon is defined then a default icon would be used. - * - * The ownership of the icon would be transferred back to the caller - * function. - * - * @since S60 v5.0 - * @return - Icon for the Location Application. - * - NULL, If the Icon has not been set for the Location - * based Application - * @leave System wide error codes if the icon allocation or copying - * fails. - */ - IMPORT_C CGulIcon* IconL() const; - - /** - * Mode in which the Location Application would be launched. - * If the mode defined is EDefaultMode, then the default mode specified - * by the application when registering with Location Centre is used. - * - * @since S60 v5.0 - * @return Mode in which the Location Application would be launched. - */ - IMPORT_C TLcLaunchMode LaunchMode() const; - - /** - * Returns the System characteristics for the Location Application - * - * @since S60 v5.0 - * @return - System Characteristics for the Location - * Application. All the system characteristics for the - * Location Application would be combined to form an integer - * bit-mask and this function returns the bit-mask. The - * individual System characteristics are defined by - * @ref TLcSystemCharacteristics enumeration. - */ - IMPORT_C TUint32 SystemCharacteristics() const; - - /** - * Returns the Application characteristics for the Location Application - * - * @since S60 v5.0 - * @return - Application Characteristics for the Location - * Application. All the application characteristics for the - * would be combined to form an integer bit-mask and this - * function returns the current bit-mask. The individual - * Application characteristics are defined by - * @ref TLcApplicationCharacteristics enumeration. - */ - IMPORT_C TUint32 ApplicationCharacteristics() const; - - -public: // Non exported methods - - /** - * @internal - * Set the Unique identifier identifying the Location Application. The - * identifer is copied. - * - * @since S60 v5.0 - * @param[in] aId Unique identifier identifying the Location Application. - * @leave KErrNoMemory If there is not enough memory to copy the string. - * @leave KErrAlreadyExists If the value of the Location applicaton UID - * has already been set. - */ - void SetIdL( const TDesC& aId ); - - /** - * @internal - * Set the Logical name for the Location Application. The name is - * copied. - * - * @since S60 v5.0 - * @param[in] aName Logical name for the Location Application. - * The logical string is copied. - * @leave KErrNoMemory If there is not enough memory to copy the string. - * @leave KErrAlreadyExists If the value of the Location applicaton name. - * has already been set. - */ - void SetNameL( const TDesC& aName ); - - /** - * @internal - * Set the Icon for the Location Application. - * - * @since S60 v5.0 - * @param[in] aIconType The type of the file which contains the Icon. - * @param[in] aIconData Opaque data field which contains the actual data information. - * @param[in] aIconId Id of the Icon in the Icon file. - * @leave KErrAlreadyExists If the value of the Location applicaton Icon - * has already been set. - */ - void SetIconL( TInt aIconType, - const TDesC& aIconData, - TInt aIconId = 0 ); - - /** - * @internal - * Sets the Mode in which the Location Application would be launched. - * - * @since S60 v5.0 - * @param[in] aLaunchMode Mode in which the Location Application would be - * launched. - */ - void SetLaunchMode( TLcLaunchMode aLaunchMode ); - - /** - * @internal - * Sets the system characteristics for the Location Application. - * - * @since S60 v5.0 - * @param[in] aSysCharacteristics System Characteristics for the Location - * Application. - */ - void SetSystemCharacteristics( TUint32 aSysCharacteristics); - - /** - * @internal - * Sets the Application characteristics for the Location Application. - * - * @since S60 v5.0 - * @param[in] aAppCharacteristics Application Characteristics for the Location - * Application. - */ - void SetApplicationCharacteristics( TUint32 aAppCharacteristics); - -private: - /** - * Default C++ Constructor. - */ - CLcLocationAppInfo(); - - /** - * Overloaded Copy Constructor. - * - * @param[in] aLCAppInfo Location Application information object from which - * the new object should be constructred. - */ - CLcLocationAppInfo( - const CLcLocationAppInfo& aLCAppInfo ); - - /** - * Overloaded Assignment operator. By default, prohibit assignment - * operator - * - * @param[in] aLCAppInfo Location Application information object from which - * the new value needs to be assigned. - * @return The Location Application information object after assigment. - */ - CLcLocationAppInfo& operator= ( - const CLcLocationAppInfo& aLCAppInfo ); - - /** - * Second phase of the two phase constructor. - */ - void ConstructL(); - - /** - * Second phase overloaded constructor - */ - void ConstructL( const CLcLocationAppInfo& aLCAppInfo ); - -private: // Data - /** - * System wide unique identifier identifying the Location Application. This - * identifier is defined by the Location Application on registration with - * Location Centre. - * - * Owns - */ - HBufC* iId; - - /** - * Application Name. - * Logical name for the Location Application. The name is defined by the - * Location Centre on registration with Location Centre. This is the name - * which would be displayed by Location Centre for this application. - * - * Owns - */ - HBufC* iApplicationName; - - /** - * Application Icon Data. - * Icon for the Location Application. This is the icon that would be displayed - * in Location Centre for this application. If no icon is defined then a - * default icon would be used. - * - * Owns - */ - HBufC* iApplicationIconData; - - /** - * Application Icon Type. - */ - TInt iApplicationIconType; - - /** - * Application Icon Id. - */ - TInt iIconId; - - /** - * Mode in which the Location Application would be launched. If the mode - * defined is EDefaultMode, then the default mode specified by the - * application when registering with Location Centre is used. - */ - TLcLaunchMode iLaunchMode; - - /** - * Bit-mask containing the System characteristics for the corresponding - * Location application - */ - TUint32 iSystemCharacteristics; - - /** - * Bit-mask containing the Application characteristics for the corresponding - * Location application - */ - TUint32 iAppCharacteristics; - - /** - * Reserved for future use. - */ - TAny* iReserved; - }; - -/** - * @class CLcLocationAppInfoArray - * Array of CLocationAppInfo objects. - * - * Place holder for the information about the applications registered with - * Location Centre. The class contains a list of individual Location Application - * information items. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -class CLcLocationAppInfoArray : public CBase - { -public: - /** - * Constructs a new instance of Location Application information array. - * - * @return The new instance of Location Application information array. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcLocationAppInfoArray* NewL(); - - /** - * Constructs a new instance of Location Application information array. - * Leaves the created instance on the cleanup stack. - * - * @return The new instance of Location Application information array. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcLocationAppInfoArray* NewLC(); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Application - * information array. This includes all the Location Application - * information objects that it owns. - */ - IMPORT_C virtual ~CLcLocationAppInfoArray(); - - /** - * Returns the number of Location Application information objects in the - * array. - * - * @since S60 v5.0 - * @return The number of objects. - */ - IMPORT_C TInt Count() const; - - /** - * Appends a Location Application information object to the array. - * The ownership of the inserted object is transferred. - * - * @since S60 v5.0 - * @param[in] aLCAppInfo Location Application information object which is - * to be inserted. - * @leave System wide error code if the operation fails. - */ - IMPORT_C void AppendL( CLcLocationAppInfo* aLCAppInfo ); - - /** - * Removes a Location Application information object corresponding to the - * specified array position from the array. - * The function does not delete the object which is removed but transfers - * it back to the caller. The ownership of the returned object is also - * transferred to the caller. - * - * @since S60 v5.0 - * @param[in] aIndex Index of the requested object in the array. The - * position is relative to zero, i.e. zero implies - * the object pointer at the beginning of the array. - * @return Pointer to the requested object. - * @panic @ref TLCPanicCodes::ELcArrayOutofBounds, if there is no object - * corresponding to the index. - */ - IMPORT_C CLcLocationAppInfo* Remove( TInt aIndex ); - - /** - * Resets the Location Application Info Array. It also deletes all the - * Location Application Information objects present in the array. - * - * @since S60 v5.0 - */ - IMPORT_C void Reset(); - - /** - * Returns a Location Application information object corresponding to the - * specified array position. - * Only a reference to the internal object is returned, the ownership is - * not transferred. - * - * @since S60 v5.0 - * @param[in] aIndex Index of the requested object in the array. The - * position is relative to zero, i.e. zero implies - * the object pointer at the beginning of the array. - * @return Reference to the requested object. - * @panic @ref TLcPanicCodes::ELcArrayOutofBounds, if there is no object - * corresponding to the index. - */ - IMPORT_C CLcLocationAppInfo& operator[]( TInt aIndex ) const; - -private: - /** - * Default C++ Constructor. - */ - CLcLocationAppInfoArray(); - - /** - * Overloaded Copy Constructor. By default, prohibit copy constructor - * - * @param[in] aLCAppInfoArray Location Application information array from which - * the new object should be constructred. - */ - CLcLocationAppInfoArray( - const CLcLocationAppInfoArray& aLCAppInfoArray ); - - /** - * Overloaded Assignment operator. By default, prohibit assignment - * operator - * - * @param[in] aLCAppInfoArray Location Application information array from which - * the new value needs to be assigned. - * @return The Location Application information array after - * assigment - */ - CLcLocationAppInfoArray& operator=( - const CLcLocationAppInfoArray& aLCAppInfoArray ); - - /** - * Second phase of the two phase constructor. - */ - void ConstructL(); - -private: // Data - /** - * Array of Location Centre application information objects. - * - * Owns - */ - RPointerArray iAppInfoArray; - - /** - * Reserved for future use. - */ - TAny* iReserved; - }; - -#endif // C_LCLOCATIONAPPINFO_H diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/inc/lcnativeapps.hrh --- a/loc_plat/location_centre_api/inc/lcnativeapps.hrh Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Unique Identifiers for Native Location Applications. -* -*/ - - -#ifndef LCNATIVEAPPS_HRH_ -#define LCNATIVEAPPS_HRH_ - -/** - * @file locationcentrenativeapps.hrh - * - * This file provides the System Wide unique identifiers for native Location - * based applications. These applications include - * - GPS Data - * - Landmarks - * - Positioning Settings - * - * These applications MUST use the same value for identifiers when registering - * with Location Centre and the Client application ( user of the Location - * Centre API ) can use these values to customize the list of applications - * displayed in Location Centre. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ - -/** - * System wide unique identifer for GPS Data application. GPS Data application - * must use this identifier while registering with Location Centre. - * - * The Client application can use this value while filtering Location - * Applications to be displayed in Location Centre while using the - * @ref CLcService::LaunchLocationCentreL functions. - */ -_LIT( KGpsDataIdentifier, "0x101F85A0" ); - -/** - * System wide unique identifer for Landmarks application. Landmarks application - * must use this identifier while registering with Location Centre. - * - * The Client application can use this value while filtering Location - * Applications to be displayed in Location Centre while using the - * @ref CLcService::LaunchLocationCentreL functions. - */ -_LIT( KLandmarksIdentifier, "0x101F85A2" ); - -/** - * System wide unique identifer for Positioning Settings application. - * Positioning Settings application must use this identifier while - * registering with Location Centre. - * - * The Client application can use this value while filtering Location - * Applications to be displayed in Location Centre while using the - * @ref CLcService::LaunchLocationCentreL functions. - */ -_LIT( KPositioningSettingsIdentifer, "0x102831B" ); - -#endif // LCNATIVEAPPS_HRH_ diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/inc/lcnotification.h --- a/loc_plat/location_centre_api/inc/lcnotification.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Observer class defintion to notify any changes to the -* state of Location Applications. -* -*/ - -#ifndef M_LCNOTIFICATION_H -#define M_LCNOTIFICATION_H - -/** - * @file lcnotification.h - * - * This file provides the definitions for the observer class which enables - * the client application to listen to notifications from Location Centre. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ - -// SYSTEM INCLUDES -#include - -/** - * @class MLcNotification - * Observer class to notify the changes to the applications registered with - * Location Centre. - * - * This client application needs to pass an instance of this class when calling - * @ref CLcService::StartNotificationL - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -class MLcNotification - { -public: - /** - * Notification for the termination of the chained Location based Application. - * - * The notification can occur under the following conditions - * - When a new Location based Application registers into Location - * Centre. In this case, the Location based Application would be - * immediately available for all Location Centre operations. - * - When an already registered Location based Application de-registers. - * In this case, the Location based Application will be removed from - * Location Centre. Hence, it would not be available for any further Location - * Centre operations. - * - When a Location based Application is present on a removable media (like - * Memory card)and the media is removed. In this case, for all practical - * purposes the Location based Application behaves as in the previous context. - * The difference being that the application does not get removed from - * Location Centre but is marked as an Absent application. When the - * removable media is re-inserted, the application immediately becomes - * available for all Location Centre operations. - * - When an removable media containing an Absent Location based Application - * is re-inserted. In this case, the Location based Application would be - * immediately available for all Location Centre operations. - * - When the Location Centre server terminates pre-maturely. In this case, no - * further notifications would be given to the Client application and all - * further requests to the Location Centre server would fail with - * @p KErrServerTerminated. - * - * @since S60 v5.0 - * @param[in] aErrorCode Error code for the notification completion. - * The following are the values which the variable - * can assume on completion of the request. - * - KErrNone If there is an new Location based - * Application registered to Location Centre, when - * an existing Location based Application is removed - * from Location Centre or when an Location based - * Application becomes absent or present. - * - KErrCancel If an outstanding request is Cancelled. - * - KErrServerTerminated If the Location Centre server - * is pre-maturely terminated. - * - System wide error codes in other error conditions. - */ - virtual void LcStatusChangedL( TInt aErrorCode ) = 0; - }; - -#endif // M_LCNOTIFICATION_H diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/inc/lcservice.h --- a/loc_plat/location_centre_api/inc/lcservice.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,841 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre API interface. -* -*/ -/** - * @file lcservice.h - * - * This file provides the interface class to Location Centre. Using this interface - * the client application can operate upon components which have registered with - * Location Centre. - * The components which can register with Location Centre are of two types - * - Applications - * - Location based services / contents. - * - * These Client Applications or Services/Contents which register with Location - * Centre will be called Location based Application henceforth. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ - -#ifndef C_LCSERVICE_H -#define C_LCSERVICE_H - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lclocationappinfo.h" - -// FORWARD DECLARATIONS -class CLcServiceImpl; -class MLcAppExitObserver; -class MLcNotification; -class TLcLocationAppFilter; - -/** - * @class CLcService - * Interface to Location Centre. - * - * This class allows the Client application to incorporate Location Centre - * and Location Centre related functionalities into their application. - * The following are the functionalities exposed by this API. - * - * - Get the list of Location based Applications registered with Location Centre. - * - * - Launch Location Centre with a customized set of Location based Application. - * - * - Launch a particular Location based Application. - * - * - Register for notification of changes to the state of the Location - * based Applications. - * - * In additon to the above functions, the user can also customize the list - * of Location based Applications using the @ref TLcLocationAppFilter filter. - * - * Since, this class acts as a Client side interface to the Location Centre - * server, it is recommended that the Client application creates the - * instance of this class during its construction and delete it only on - * Exit. - * @lib lcservice.lib - * @since S60 v5.0 - */ -class CLcService : public CBase - { -public: - /** - * @class CLcLaunchParam - * Contains additional parameters for customized Location Centre - * launching. It specifies the Location based Application that needs to be - * displayed in Location Centre and the mode of launching for each of - * these Location based Application when a User selects any of them. This - * array of these structures is to be passed as an input to the - * overloaded @ref LaunchLocationCentreL function - */ - class CLcLaunchParam : public CBase - { - public: - /** - * Constructs a new instance of Launch parameter object. - * - * @since S60 v5.0 - * @param[in] aAppId Identifier for the Location based Application. - * The identifier string is copied. - * @param[in] aLaunchMode Launch mode when the terminal user selects - * this Location based Application. The values - * which this parameter can assume is defined - * by the @ref CLcLocationAppInfo::TLcLaunchMode - * enumeration. - * If the user doesn't define a value for this - * parameter then @ref CLcLocationAppInfo::EDefaultMode - * is assumed. - * @return The new instance of Launch parameter object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcLaunchParam* NewL - ( const TDesC& aAppId, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode = - CLcLocationAppInfo::EDefaultMode ); - - /** - * Constructs a new instance of Launch parameters object. - * Leaves the created instance on the cleanup stack. - * - * @since S60 v5.0 - * @param[in] aAppId Identifier for the Location based Application. - * The identifier string is copied. - * @param[in] aLaunchMode Launch mode when the terminal user selects - * this Location based Application. The values - * which this parameter can assume is defined - * by the @ref CLcLocationAppInfo::TLcLaunchMode - * enumeration. - * If the user doesn't define a value for this - * parameter then @ref CLcLocationAppInfo::EDefaultMode - * is assumed. - * @return The new instance of Launch parameter object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcLaunchParam* NewLC - ( const TDesC& aAppId, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode = - CLcLocationAppInfo::EDefaultMode ); - - /** - * Virtual Destructor - */ - virtual ~CLcLaunchParam(); - - public: // Non Exported Methods - /** - * @internal - * Gets the Unique identifier identifying the Location Application. - * This identifier is defined by the Location Application on registration - * with Location Centre. - * This is the identifier that must be used by the client of this API for - * any operation on the particular Location Application. - * A reference to the object's internal string is returned. - * - * @since S60 v5.0 - * @return Unique identifier identifying the Location Application. If the - * value of the identifier has not been set then a NULL string - * is returned. - */ - TPtrC Id() const; - - /** - * @internal - * Mode in which the Location Application would be launched. - * If the mode defined is @ref CLcLocationAppInfo::EDefaultMode, then - * the default mode specified by the application when registering with - * Location Centre is used. - * - * @since S60 v5.0 - * @return Mode in which the Location Application would be launched. - */ - CLcLocationAppInfo::TLcLaunchMode LaunchMode() const; - - private: - /** - * C++ Default Constructor - */ - CLcLaunchParam( CLcLocationAppInfo::TLcLaunchMode aLaunchMode ); - - /** - * Second phase of the Symbian two phase construction. - */ - void ConstructL( const TDesC& aAppId ); - - private: - /** - * System wide unique identifier identifying the Location based - * Application. This identifier is defined by the Location based - * Application on registration with Location Centre. - * Owns - */ - HBufC* iId; - - /** - * Mode in which the Location based Application would be launched. If - * the mode defined is @ref CLcLocationAppInfo::EDefaultMode, then - * the mode specified by the Location based Application when - * registering with Location Centre is used. - * If no value is specified for this paramter then it takes - * @ref CLcLocationAppInfo::EDefaultMode as its value. - */ - CLcLocationAppInfo::TLcLaunchMode iLaunchMode; - - }; - -public: // Exported Functions - /** - * Constructs a new instance of Location Centre interface. - * - * @return The new instance of Location Centre interface object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcService* NewL(); - - /** - * Constructs a new instance of Location Centre interface. - * Leaves the created instance on the cleanup stack. - * - * @return The new instance of Location Centre interface object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcService* NewLC(); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * interface. - */ - virtual ~CLcService(); - - /** - * Launches Location Centre as a pop-up dialog with a list of - * Location based Application. - * - * All Location based Applications which can be launched in the - * specified mode are displayed in the Location Centre pop-up - * dialog. The user can select any of the Location based - * Applications displayed in the pop-up list and the - * corresponding Location based Application would be launched - * in the specified launching mode. - * - * @since S60 v5.0 - * @param [in] aLaunchMode Mode in which the the Location based - * Applications displayed in the pop-up - * must be launched. The default mode for - * launching is the mode in which the - * corresponding Location based Application - * has registered with Location Centre. - * @param[in] aChainedAppExitObserver Observer for notifications of - * chained application termination - * incase, the user launches any - * Location based Application from the - * pop-up in the chained mode. If - * the user doesn't specify any value - * for the observer then no callback - * would be given on chained - * application termination. - * @leave KErrInUse - If there is an outstanding request present on Location Centre. - * @leave KErrNotFound - If no Location based Applications were found - * with the required configuration. - * @leave KErrNotSupported - If Location Centre cannot be launched. This - * generally occurs when the Client application - * does not have a UI context. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future - * requests to Location Centre would also - * fail with the same error code. - * @leave System wide error code if the operation fails due to some other - * reason. - */ - IMPORT_C void LaunchLocationCentreL( - CLcLocationAppInfo::TLcLaunchMode aLaunchMode = CLcLocationAppInfo::EDefaultMode, - MLcAppExitObserver* aChainedAppExitObserver = NULL ); - - /** - * Launches Location Centre as a pop-up dialog with a filtered list of - * Location based Application. - * - * The Client application can configure Location Centre to display - * only a subset of Location based Applications. This can be achieved - * by passing an object of type @ref TLcLocationAppFilter as the - * parameter to this function. Only those Location based Applications - * which satisfy the filter conditions and can be launched in the - * specified mode are displayed in Location Centre. - * The user can select any of the Location based Applications displayed - * in the pop-up list and the Location based Application would be - * launched in the specified launching mode. - * - * The ownership of the filter is not transferred to Location Centre. - * - * @since S60 v5.0 - * @param[in] aLocationAppFilter Filter that needs to be applied - * to customize the list of Location - * based Applications to be displayed in - * Location Centre. - * @param [in] aLaunchMode Mode in which the the Location based - * Applications displayed in the pop-up - * must be launched. The default mode for - * launching is the mode in which the - * corresponding Location based application has - * registered with Location Centre. - * @param[in] aChainedAppExitObserver Observer for notifications of - * chained application termination - * incase, the user launches any - * Location based Application from the - * pop-up in the chained mode. Incase, - * the user doesn't specify any value - * for the observer then no callback - * would be given on ahained - * application termination. - * @leave KErrInUse - If there is an outstanding request present on Location Centre. - * @leave KErrNotFound - If no Location based Applications were found - * with the required configuration. - * @leave KErrNotSupported - If Location Centre cannot be launched. This - * generally occurs when the Client application - * does not have a UI context. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future - * requests to Location Centre would also - * fail with the same error code. - * @leave System wide error code if the operation fails due to some other - * reason. - */ - IMPORT_C void LaunchLocationCentreL( - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode = CLcLocationAppInfo::EDefaultMode, - MLcAppExitObserver* aChainedAppExitObserver = NULL ); - - /** - * Launches Location Centre with the specified array of Location - * based Applications in a pop-up dialog. - * - * The items of the array are first validated for their registration - * with Location Centre and only those Location based Applications which are - * registered with Location Centre and which can be launched in the - * specified launch mode are displayed. - * The user can select any of the Location based Application displayed in the - * pop-up list and the corresponding Location based Application would be opened - * the mode defined in the corresponding @ref TLcLaunchParam - * object. - * - * The ownership of the specified array is not tranferred to Location - * Centre. - * - * @since S60 v5.0 - * @param[in] aIncludeAppArray Array of Location based Applications which - * are to be displayed in Location Centre. - * @param[in] aChainedAppExitObserver Observer for notifications of - * chained application termination - * incase, the user launches any - * Location based Application from the - * pop-up in the chained mode. Incase, - * the user doesn't specify any value - * for the observer then no callback - * would be given on chained - * application termination. - * @leave KErrInUse - If there is an outstanding request present on Location Centre. - * @leave KErrNotFound - If none of the specified Location based - * Applications were found registered with - * Location Centre. - * @leave KErrNotSupported - If Location Centre cannot be launched. This - * generally occurs when the Client application - * does not have a UI context. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future - * requests to Location Centre would also - * fail with the same error code. - * @leave System wide error code if the operation fails due to some other - * reason. - */ - IMPORT_C void LaunchLocationCentreL( - const RPointerArray& aIncludeAppArray, - MLcAppExitObserver* aChainedAppExitObserver = NULL ); - - /** - * Launches Location Centre without the specified array of - * Location based Applications in a pop-up dialog. - * - * Only those Location based Applications which are not a part of the - * specified array and which can be launched in the specified mode - * are displayed in Location Centre. - * The user can select any of the Location based Application displayed in the - * pop-up list and the corresponding Location based Application would be opened - * the mode defined in the specified mode. - * - * The ownership of the specified array is not tranferred to Location - * Centre. - * - * @since S60 v5.0 - * @param[in] aExcludeAppArray Array of identifiers of Location based - * Application which are not to be displayed - * in Location Centre. - * These identifiers are to be defined by the - * Location based Application on registration with - * Location Centre. - * @param [in] aLaunchMode Mode in which the all the Location - * applications displayed in the pop-up - * must be launched. The default mode for - * launching is the mode in which the - * corresponding application has registered - * with Location Centre. - * @param[in] aChainedAppExitObserver Observer for notifications of - * chained application termination - * incase, the user launches any - * Location based Application from the - * pop-up in the chained mode. Incase, - * the user doesn't specify any value - * for the observer then no callback - * would be given on chained - * application termination. - * @leave KErrInUse - If there is an outstanding request present on Location Centre. - * @leave KErrNotFound - If no Location based Applications were found - * with the required configuration. - * @leave KErrNotSupported - If Location Centre cannot be launched. This - * generally occurs when the Client application - * does not have a UI context. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future - * requests to Location Centre would also - * fail with the same error code. - * @leave System wide error code if the operation fails due to some other - * reason. - */ - IMPORT_C void LaunchLocationCentreL( - const RArray& aExcludeAppArray, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode = CLcLocationAppInfo::EDefaultMode, - MLcAppExitObserver* aChainedAppExitObserver = NULL ); - - /** - * Launches Location Centre as a pop-up dialog with a list of - * Location based Applications and the user can select a Location - * based Application from the pop-up list displayed. - * - * @since S60 v5.0 - * @return If the terminal User has selected a Location based Application, - * Unique identifier identifying the Location based Application - * which was selected. - * NULL string incase the terminal User cancelled the pop-up dialog. - * The string returned is a reference to this object's internal string. Hence, - * the Client Application must copy the string if it expects to retain - * it. - * @leave KErrInUse - If there is an outstanding request present on Location Centre. - * @leave KErrNotFound - If no Location based Applications were found. - * @leave KErrNotSupported - If Location Centre cannot be launched. This - * generally occurs when the Client application - * does not have a UI context. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future - * requests to Location Centre would also - * fail with the same error code. - * @leave System wide error code if the operation fails due to some other - * reason. - */ - IMPORT_C TPtrC SelectLocationApplicationL(); - - /** - * Launches Location Centre as a pop-up dialog with a filtered list of - * Location based Applications and the user can select a Location - * based Application from the pop-up list displayed. - * - * The Client application can configure Location Centre to display - * only a subset of Location based Applications. This can be achieved - * by passing an object of type @ref TLcLocationAppFilter as the - * parameter to this function. Only those Location based Applications - * which satisfy the filter conditions are displayed in Location Centre. - * The user can select any of the Location based Applications displayed - * in the pop-up list and the identifier corresponding to the selected - * Location based Application would be returned back to the user. - * - * The ownership of the filter is not transferred to Location Centre. - * - * @since S60 v5.0 - * @param[in] aLocationAppFilter Filter that needs to be applied - * to customize the list of Location - * based Applications to be displayed in - * Location Centre. - * @return If the terminal User has selected a Location based Application, - * Unique identifier identifying the Location based Application - * which was selected. - * NULL string incase the terminal User cancelled the pop-up dialog. - * The string returned is a reference to this object's internal string. Hence, - * the Client Application must copy the string if it expects to retain - * it. - * @leave KErrInUse - If there is an outstanding request present on Location Centre. - * @leave KErrNotFound - If no Location based Applications were found. - * @leave KErrNotSupported - If Location Centre cannot be launched. This - * generally occurs when the Client application - * does not have a UI context. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future requests - * to Location Centre would also fail with - * the same error code. - * @leave System wide error code if the operation fails due to some other - * reason. - */ - IMPORT_C TPtrC SelectLocationApplicationL( - const TLcLocationAppFilter& aLocationAppFilter ); - - /** - * Launches Location Centre with based Applications in a pop-up - * dialog and the user can select a Location based Application - * from the pop-up list displayed. - * - * The Client application can configure Location Centre to either - * display only those Location based Applications specified in - * the array or to display all Location based Applications other - * than those specified in the array. - * The user can select any of the Location based Application displayed - * in the pop-up list and the identifier corresponding to the selected - * Location based Application would be returned back to the user. - * - * The ownership of the specified array is not tranferred to Location - * Centre. - * - * @since S60 v5.0 - * @param[in] aArray Array of Location based Applications which - * are to be displayed in Location Centre. - * @param[in] aIncludeFlag If the flag value is - * - ETrue, then only those Location based - * Applications specified in the array would - * be displayed in Location Centre. - * - EFalse, then all Location based Applications - * other than those specified in the array - * would be displayed in Location Centre. - * @return If the terminal User has selected a Location based Application, - * Unique identifier identifying the Location based Application - * which was selected. - * The string returned is a reference to this object's internal string. Hence, - * the Client Application must copy the string if it expects to retain - * it. - * NULL string incase the terminal User cancelled the pop-up dialog. - * @leave KErrInUse - If there is an outstanding request present on Location Centre. - * @leave KErrNotFound - If none of the specified Location based - * Applications were found registered with - * Location Centre. - * @leave KErrNotSupported - If Location Centre cannot be launched. This - * generally occurs when the Client application - * does not have a UI context. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future - * requests to Location Centre would also - * fail with the same error code. - * @leave System wide error code if the operation fails due to some other - * reason. - */ - IMPORT_C TPtrC SelectLocationApplicationL( - const RArray& aAppArray, - TBool aIncludeFlag ); - - /** - * Gets a list of all Location based Applications. - * - * This function returns a list of all Location based Applications - * to the caller. - * - * The ownership of the list of Location based Applications is - * transferred to the caller. - * - * @since S60 v5.0 - * @param[in] aLocationAppFilter Filter that needs to be applied - * to customize the list of Location - * Applications to be retrieved from - * Location Centre. - * @return CLcLocationAppInfoArray object containing a list - * of applications registered with Location Centre. - * @leave KErrNotFound, If there are no Location based Applications - * available. - * @leave KErrInUse - If there is an outstanding request present on Location Centre. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future - * requests to Location Centre would also - * fail with the same error code. - * @leave System wide error code if the array retrieval fails for - * any other reason. - */ - IMPORT_C CLcLocationAppInfoArray* GetLocationApplicationsL(); - - /** - * Gets a list of all Location based Applications. - * - * This is an asynchronous version and at any instant of time there - * can be only one such request outstanding. - * - * The ownership of the list of Location based Applications is - * transferred to the caller. - * - * @since S60 v5.0 - * @param[out] aStatus Status variable on which the completion of the - * request would be communicated. The following - * are the values which the variable can assume - * on completion of the request. - * Since, the CLcService class will use its internal - * Active object for interacting with the Location - * Centre server and not this aStatus directly, the - * Client application must not use User::WaitforRequest - * on this status variable. - * - KErrNone, If the list of applications was - * successfully retrieved. - * - KErrInUse, If there is an outstanding - * request present on Location Centre. - * - KErrNotFound, If there are no Location - * based Applications available. - * - KErrCancel, If an outstanding request is - * Cancelled. - * - KErrServerTerminated - If the Location Centre - * server terminates prematurely. In this - * case, all future requests to Location - * Centre would also fail with the same - * error code. - * - System wide error code if the array retrieval - * fails for any other reason. - * @param[out] aAppInfoArray Reference to the pointer of Application - * information array. This pointer would be - * updated with the @ref CLcLocationAppInfoArray - * object containing a list of applications - * registered with Location Centre on the - * asynchronous completion of this function. - */ - IMPORT_C void GetLocationApplications( - TRequestStatus& aStatus, - CLcLocationAppInfoArray*& aAppInfoArray ); - - /** - * Gets a filtered list of Location based Applications. - * - * The Client application can configure the list of Location based - * Applications returned. This can be achieved by passing an object - * of type @ref TLcLocationAppFilter as the parameter to this function. - * - * The ownership of the filter is not transferred to Location Centre. - * - * The ownership of the list of Location based Applications is - * transferred to the caller. - * - * @since S60 v5.0 - * @param[in] aLocationAppFilter Filter that needs to be applied - * to customize the list of Location - * Applications to be retrieved from - * Location Centre. - * @return CLcLocationAppInfoArray object containing a list - * of applications registered with Location Centre. - * @leave KErrNotFound If there are no Location based Applications - * corresponding to the filter paramter. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future - * requests to Location Centre would also - * fail with the same error code. - * @leave System wide error code if the array retrieval fails for - * any other reason. - */ - IMPORT_C CLcLocationAppInfoArray* GetLocationApplicationsL( - const TLcLocationAppFilter& aLocationAppFilter ); - - /** - * Gets a filted list of Location based Applications. - * - * The Client application can configure the list of Location based - * Applications returned. This can be achieved by passing an object - * of type @ref TLcLocationAppFilter as the parameter to this function. - * This is an asynchronous version and at any instant of time there - * can be only one such request outstanding. - * - * The ownership of the filter is not transferred to Location Centre. - * - * The ownership of the list of Location based Applications is - * transferred to the caller. - * - * @since S60 v5.0 - * @param[out] aStatus Status variable on which the completion of the - * request would be communicated. The following - * are the values which the variable can assume - * on completion of the request. - * Since, the CLcService class will use its internal - * Active object for interacting with the Location - * Centre server and not this aStatus directly, the - * Client application must not use User::WaitforRequest - * on this status variable. - * - KErrNone, If the list of applications was - * successfully retrieved. - * - KErrInUse, If there is an outstanding - * request present. - * - KErrCancel, If an outstanding request is - * Cancelled. - * - KErrServerTerminated - If the Location Centre - * server terminates prematurely. In - * this case, all future requests to - * Location Centre would also fail with - * the same error code. - * - System wide error code if the array retrieval - * fails for any other reason. - * @param[in] aLocationAppFilter Filter that needs to be applied - * to customize the list of Location - * Applications to be retrieved from - * Location Centre. - * @param[out] aAppInfoArray Reference to the pointer of Application - * information array. This pointer would be - * updated with the @ref CLcLocationAppInfoArray - * object containing a list of applications - * registered with Location Centre on the - * asynchronous completion of this function. - */ - IMPORT_C void GetLocationApplications( - TRequestStatus& aStatus, - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfoArray*& aAppInfoArray ); - - /** - * Cancels an outstanding @ref GetLocationApplications request. - */ - IMPORT_C void CancelGetLocationApplications(); - - /** - * Launches a Location based Application in the desired mode. - * - * The identifier passed to te function is first validated for - * existence and registration with Location Centre. Incase, the - * Location based Application exists and its has already registered with - * Location Centre, then the function launches the Location - * Application in the desired mode. - * - * @since S60 v5.0 - * @param[in] aAppIdentifier Unique identifier identifying the - * Location based Application. - * @param [in] aLaunchMode Mode in which the all the Location based - * Applications displayed in the pop-up - * must be launched. The default mode for - * launching is the mode in which the - * corresponding Location based Application - * has registered with Location Centre. - * @param[in] aChainedAppExitObserver Observer for notifications of - * chained application termination - * incase, the user launches any - * Location based Application from the - * pop-up in the chained mode. Incase, - * the user doesn't specify any value - * for the observer then no callback - * would be given on chained - * application termination. If a value - * is specified for the observer for - * Stand alone lauunching then the - * Observer value would be ignored. - * @leave KErrNotFound, If there is no Location based Application - * corresponding to the identifer or if the Location - * based Application cannot be launched in the - * specified mode. - * @leave KErrInUse - If there is an outstanding request present on Location - * Centre. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future - * requests to Location Centre would also fail - * with the same error code. - * @leave System wide error code if the operation fails for any other - * reason. - */ - IMPORT_C void LaunchLocationApplicationL( - const TDesC& aAppIdentifier, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode = CLcLocationAppInfo::EDefaultMode, - MLcAppExitObserver* aChainedAppExitObserver = NULL ); - - /** - * Sets an observer for notifying changes to the Location Centre server. - * - * The notification can occur under the following conditions - * - When a new Location based Application registers into Location Centre. - * In this case, the Location based Application would be immediately available - * for all Location Centre operations. - * - When an already registered Location based Application de-registers. - * In this case, the Location based Application will be removed from Location - * Centre. Hence, it would not be available for any further Location Centre - * operations. - * - When a Location based Application is present on a removable media - * (like Memory card) and the media is removed. In this case, for all practical - * purposes the Location based Application behaves as in the previous context. - * The difference being that the Location based Application does not get removed - * from Location Centre but is marked as an Absent application. When the - * removable media is re-inserted, the Location based Application immediately - * becomes available for all Location Centre operations. - * - When an removable media containing an Absent Application is re-inserted. In - * this case, the Location based Application would be immediately available for - * all Location Centre operations. - * - When the Location Centre server terminates pre-maturely. In this case, no - * further notifications would be given to the Client application and all - * further requests to the Location Centre server would fail with - * @p KErrServerTerminated. - * - * @since S60 v5.0 - * @param[in] aObserver Observer to which notification would be issued. - * @leave KErrAlreadyExists If the observer has already been set. - * @leave KErrServerTerminated - If the Location Centre server terminates - * prematurely. In this case, all future requests to - * Location Centre would also fail with the same - * error code. - */ - IMPORT_C void SetObserverL( MLcNotification& aObserver ); - - /** - * Removes the observer that has already been set using the @ref SetObserverL method. - * - * @since S60 v5.0 - * @return KErrNone, If the observer removal was successful. - * KErrNotFound, If no observer was set previously. - */ - IMPORT_C TInt RemoveObserver(); - -private: - /** - * Default C++ Constructor. - */ - CLcService(); - - /** - * Overloaded Copy Constructor. By default, prohibit copy constructor - * - * @param[in] aLocationCentre Location Centre interface object from which the new - * object should be constructed. - */ - CLcService( const CLcService& aLocationCentre ); - - /** - * Overloaded Assignment operator. By default, prohibit assignment - * operator - * - * @param[in] aLocationCentre Location Centre interface object from which the new - * object should be assigned. - * @return the Location Centre interface object after assigment. - */ - CLcService& operator= ( - const CLcService& aLCAppInfo ); - - /** - * Second phase of the two phase constructor. - */ - void ConstructL(); - -private: // Data - /** - * Location Centre Implementation. Hides the actual implementation - * of the Location Centre API. - * - * Owns - */ - CLcServiceImpl* iImplementation; - }; - -#endif // C_LCSERVICE_H diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/location_centre_api.metaxml --- a/loc_plat/location_centre_api/location_centre_api.metaxml Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ - - - Location Centre API - Provides the interface for the client applications to use the services provided by Location Centre, like launching the Location Centre (in pop-up form), querying and listing registered applications, launching registered applications etc. Client applications can also provide characteristics based filters while listing or querying for registered applications or while launching Location Centre Pop-up. - c++ - locationcentre - - - - - - - - no - no - - diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/bmarm/testlcu.def --- a/loc_plat/location_centre_api/tsrc/bmarm/testlcu.def Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - LibEntryL__FR13CTestModuleIf @ 1 NONAME R3UNUSED ; LibEntryL(CTestModuleIf &) - diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/bwins/testlcu.def --- a/loc_plat/location_centre_api/tsrc/bwins/testlcu.def Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - ?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &) - diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/conf/testlc.cfg --- a/loc_plat/location_centre_api/tsrc/conf/testlc.cfg Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,270 +0,0 @@ -[Define] - -KWithObserver 1 -KWithOutObserver 0 - -KErrNotFound -1 -KErrCancel -3 -KErrNotSupported -5 - -[Enddefine] - -[Test] -title TCLC000 -create testlc Obj -Obj CheckTLcLocationAppFilter -print CheckTLcLocationAppFilter... -delete Obj -[Endtest] - -[Test] -title TCLC001 -create testlc Obj -Obj CheckFilterSystemCharacteristics 0 -print CheckFilterSystemCharacteristics... -delete Obj -[Endtest] - -[Test] -title TCLC002 -create testlc Obj -Obj CheckFilterApplicationCharacteristics 0 -print CheckFilterApplicationCharacteristics... -delete Obj -[Endtest] - -[Test] -title TCLC003 -create testlc Obj -Obj CheckSysCharFilterConfiguration 0 -print CheckSysCharFilterConfiguration... -delete Obj -[Endtest] - -[Test] -title TCLC004 -create testlc Obj -Obj CheckAppCharFilterConfiguration 0 -print CheckAppCharFilterConfiguration... -delete Obj -[Endtest] - -[Test] -title TCLC005 -create testlc Obj -Obj CheckArrayNewL -print CheckArrayNewL... -delete Obj -[Endtest] - -[Test] -title TCLC006 -create testlc Obj -Obj CheckArrayNewLC -print CheckArrayNewLC... -delete Obj -[Endtest] - -[Test] -title TCLC007 -create testlc Obj -Obj CheckCount -print CheckCount... -delete Obj -[Endtest] - -[Test] -title TCLC008 -create testlc Obj -Obj CheckAppendL -print CheckAppendL... -delete Obj -[Endtest] - -[Test] -title TCLC009 -create testlc Obj -Obj CheckRemoveL -print CheckRemoveL... -delete Obj -[Endtest] - -[Test] -title TCLC010 -create testlc Obj -Obj CheckResetL -print CheckResetL... -delete Obj -[Endtest] - - -[Test] -title TCLC011 -create testlc Obj -Obj CheckOperatorL -print CheckOperatorL... -delete Obj -[Endtest] - -[Test] -title TCLC012 -create testlc Obj -Obj CheckNewL -print CheckNewL... -delete Obj -[Endtest] - -[Test] -title TCLC013 -create testlc Obj -Obj CheckNewLC -print CheckNewLC... -delete Obj -[Endtest] - -[Test] -title TCLC014 -create testlc Obj -Obj CheckCopyNewL -print CheckCopyNewL... -delete Obj -[Endtest] - -[Test] -title TCLC015 -create testlc Obj -Obj CheckCopyNewLC -print CheckCopyNewLC... -delete Obj -[Endtest] - - -[Test] -title TCLC016 -create testlc Obj -Obj CheckId -print CheckId... -delete Obj -[Endtest] - -[Test] -title TCLC017 -create testlc Obj -Obj CheckName -print CheckName... -delete Obj -[Endtest] - -[Test] -title TCLC018 -create testlc Obj -Obj CheckLaunchMode -print CheckLaunchMode... -delete Obj -[Endtest] - -[Test] -title TCLC019 -create testlc Obj -Obj CheckSystemCharacteristics -print CheckSystemCharacteristics... -delete Obj -[Endtest] - -[Test] -title TCLC020 -create testlc Obj -Obj CheckApplicationCharacteristics -print CheckApplicationCharacteristics... -delete Obj -[Endtest] - -[Test] -title TCLC021 -create testlc Obj -Obj CheckServiceNewL -print CheckServiceNewL... -delete Obj -[Endtest] - -[Test] -title TCLC022 -create testlc Obj -Obj CheckServiceNewLC -print CheckServiceNewLC... -delete Obj -[Endtest] - -[Test] -title TCLC023 -create testlc Obj -Obj TestGetLocationApplicationsL -print TestGetLocationApplicationsL... -delete Obj -[Endtest] - -[Test] -title TCLC024 -create testlc Obj -Obj TestGetLocationApplicationsAsynL -print TestGetLocationApplicationsAsynL... -delete Obj -[Endtest] - -[Test] -title TCLC025 -create testlc Obj -Obj TestGetLocationApplicationsFilterL -print TestGetLocationApplicationsFilterL... -delete Obj -[Endtest] - -[Test] -title TCLC026 -create testlc Obj -Obj TestGetLocationApplicationsFilterAsynL -print TestGetLocationApplicationsFilterAsynL... -delete Obj -[Endtest] - -[Test] -title TCLC027 -create testlc Obj -Obj TestSetRemoveObserverL KWithObserver -print TestSetRemoveObserverL... -delete Obj -[Endtest] - -[Test] -title TCLC028 -create testlc Obj -allownextresult KErrNotFound -Obj TestSetRemoveObserverL KWithOutObserver -print TestSetRemoveObserverL... -delete Obj -[Endtest] - -[Test] -title TCLC029 -create testlc Obj -allownextresult KErrCancel -Obj TestCancelGetLocationApplications -print TestCancelGetLocationApplications... -delete Obj -[Endtest] - -[Test] -title TCLC030 -create testlc Obj -Obj TestCLcLaunchParamNewL -print TestCLcLaunchParamNewL... -delete Obj -[Endtest] - -[Test] -title TCLC031 -create testlc Obj -Obj TestCLcLaunchParamNewL -print TestCLcLaunchParamNewL... -delete Obj -[Endtest] diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/eabi/testlcu.def --- a/loc_plat/location_centre_api/tsrc/eabi/testlcu.def Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - _Z9LibEntryLR13CTestModuleIf @ 1 NONAME - diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/group/bld.inf --- a/loc_plat/location_centre_api/tsrc/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Module DLL to Location Centre API -* -*/ - - - -PRJ_PLATFORMS -// specify the platforms your component needs to be built for here -// defaults to WINS MARM so you can ignore this if you just build these -DEFAULT - -PRJ_TESTEXPORTS -// NOTE: If using ARS requirements all export operations should be done under this. -// 'abld test export' - -PRJ_EXPORTS -// Specify the source file followed by its destination here -// copy will be used to copy the source file to its destination -// If there's no destination then the source file will be copied -// to the same name in /epoc32/include -// Example: -/* -/agnmodel/inc/AGMCOMON.H -*/ - -PRJ_TESTMMPFILES -// NOTE: If using ARS requirements .mmp file operation should be done under this. -// 'abld test build' -testlc.mmp - -PRJ_MMPFILES -// Specify the .mmp files required for building the important component -// releasables. -// -// Specify "tidy" if the component you need to build doesn't need to be -// released. Specify "ignore" if the MMP file exists but should be -// ignored. -// Example: -/* -/agnmodel/group/agnmodel.mmp -#if defined(MARM) -/agnmodel/group/agsvexe.mmp -#endif -*/ - -// End of File \ No newline at end of file diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/group/testlc.mmp --- a/loc_plat/location_centre_api/tsrc/group/testlc.mmp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Module DLL to Location Centre API -* -*/ - - -#include - -TARGET testlc.dll -TARGETTYPE dll -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 -DEFFILE testlc.def - -SOURCEPATH ../src -SOURCE testlc.cpp -SOURCE testlcBlocks.cpp -SOURCE testlcservice.cpp -SOURCE testlocationappinfo.cpp -SOURCE testlocationappinfoarray.cpp -SOURCE testlocationappfilter.cpp - -USERINCLUDE ../inc - -APP_LAYER_SYSTEMINCLUDE - - -LIBRARY euser.lib -LIBRARY stiftestinterface.lib -LIBRARY stiftestengine.lib -LIBRARY lcservice.lib - -LANG SC - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/group/testlc.pkg --- a/loc_plat/location_centre_api/tsrc/group/testlc.pkg Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -; -; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -; All rights reserved. -; This component and the accompanying materials are made available -; under the terms of "Eclipse Public License v1.0" -; which accompanies this distribution, and is available -; at the URL "http://www.eclipse.org/legal/epl-v10.html". -; -; Initial Contributors: -; Nokia Corporation - initial contribution. -; -; Contributors: -; -; Description: -; -; -; Installation file for Location Centre API Test module -; -;Languages -&EN -; -; UID is the app's UID -; -#{"Location_centre_test"},(0x101FB3E3),3,0,0,TYPE=SA -; -; Localised Vendor name -%{"Nokia-EN"} - -; Unique Vendor name -:"Nokia" - -;Supports Series 60 v 3.0 -;This line indicates that this installation is for the Series 60 platform v3.0 -;This line must appear _exactly_ as shown below in the sis file -;If this line is missing or incorrect, the sis file will not be able -;to be installed on Series 60 v3.0 platforms -[0x101F6F88], 0, 0, 0, {"Series60ProductID"} -; -; - -; File to install - - -"\epoc32\release\armv5\urel\testlc.dll"-"C:\sys\bin\testlc.dll" -"..\conf\testlc.cfg"-"C:\testframework\testlc.cfg" -"..\init\testframework.ini"-"C:\testframework\testframework.ini" - diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/inc/testlc.h --- a/loc_plat/location_centre_api/tsrc/inc/testlc.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,370 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases -* -*/ - - - -#ifndef TESTLC_H -#define TESTLC_H - -// INCLUDES -#include -#include -#include - - -// CONSTANTS -// Logging path -_LIT( KtestlcLogPath, "\\logs\\testframework\\testlc\\" ); -// Log file -_LIT( KtestlcLogFile, "testlc.txt" ); -_LIT( KtestlcLogFileWithTitle, "testlc_[%S].txt" ); - -// FORWARD DECLARATIONS -class CTestLc; - -// CLASS DECLARATION - -/** -* CTestLc test class for STIF Test Framework TestScripter. -* This is the testclass for Location Centre API -* -* @lib testlbslocacquisition.lib -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS(CTestLc) : public CScriptBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CTestLc* NewL( CTestModuleIf& aTestModuleIf ); - - /** - * Destructor. - */ - virtual ~CTestLc(); - - public: // Functions from base classes - - /** - * From CScriptBase Runs a script line. - * @since S60 v5.0 - * @param aItem Script line containing method name and parameters - * @return Symbian OS error code - */ - virtual TInt RunMethodL( CStifItemParser& aItem ); - - private: - - /** - * C++ default constructor. - */ - CTestLc( CTestModuleIf& aTestModuleIf ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Frees all resources allocated from test methods. - * @since S60 v5.0 - */ - void Delete(); - - /** - * Test Case for Creating the new instance of CLcService - * This will test for Successful Creation on NewL - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckServiceNewL( CStifItemParser& aItem ); - - /** - * Test Case for Creating the new instance of CLcService - * This will test for Successful Creation on NewLC - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckServiceNewLC( CStifItemParser& aItem ); - - /** - * Test Case for Getting all the Location Applications - * This will test for Successful Get. - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestGetLocationApplicationsL( CStifItemParser& aItem ); - - /** - * Test Case for Getting all the Location Applications Asynchronously. - * This will test for Successful Get. - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestGetLocationApplicationsAsynL( CStifItemParser& aItem ); - - /** - * Test Case for Getting all the Location Applications using Filter. - * This will test for Successful Get - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestGetLocationApplicationsFilterL( CStifItemParser& aItem ); - - /** - * Test Case for Getting all the Location Applications using Filter. - * This will test for Successful Get - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestGetLocationApplicationsFilterAsynL( CStifItemParser& aItem ); - - /** - * Test Case for Setting and Removing the Observer. - * This will test for Successful Set and Remove. - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestSetRemoveObserverL( CStifItemParser& aItem ); - - /** - * Test Case for Cancelling the GetLocationApplications request. - * This will test for Successful Cancel - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestCancelGetLocationApplications( CStifItemParser& aItem ); - - /** - * Test Case for Creating new instance of CLcLaunchParam - * This will test for Successful Create. - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestCLcLaunchParamNewL( CStifItemParser& aItem ); - - /** - * Test Case for Creating new instance of CLcLaunchParam - * This will test for Successful Create. - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestCLcLaunchParamNewLC( CStifItemParser& aItem ); -//---------- appinfo - /** - * Method to Check the LocationApp Info NewL - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckNewL( CStifItemParser& aItem ); - - /** - * Method to Check the LocationApp Info NewLC - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckNewLC( CStifItemParser& aItem ); - - /** - * Method to Check the LocationApp Info NewLC - * Copy Constructor - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckCopyNewL( CStifItemParser& aItem ); - - /** - * Method to Check the LocationApp Info NewLC - * Copy Constructor - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckCopyNewLC( CStifItemParser& aItem ); - - /** - * Method to Check Id - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckId( CStifItemParser& aItem ); - - /** - * Method to Check Name - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckName( CStifItemParser& aItem ); - - /** - * Method to Check Launch Mode - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckLaunchMode( CStifItemParser& aItem ); - - /** - * Method to Check System Characteristics - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckSystemCharacteristics( CStifItemParser& aItem ); - - /** - * Method to Check Application Characteristics - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckApplicationCharacteristics( CStifItemParser& aItem ); - -//-----------Array - /** - * Method to Check the Creation of AppInfo Array using NewL - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckArrayNewL( CStifItemParser& aItem ); - - /** - * Method to Check the Creation of AppInfo Array using NewLC - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckArrayNewLC( CStifItemParser& aItem ); - - /** - * Method to Check the Count of AppInfo Array - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckCount( CStifItemParser& aItem ); - - /** - * Method to Check the append to AppInfo Array - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckAppendL( CStifItemParser& aItem ); - - /** - * Method to Check the Remove from AppInfo Array - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckRemoveL( CStifItemParser& aItem ); - - /** - * Method to Check the Reset of AppInfo Array - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckResetL( CStifItemParser& aItem ); - - /** - * Method to Check the [] Operator of AppInfo Array - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckOperatorL( CStifItemParser& aItem ); - -// ----- Filter - /** - * Method to Check Creation of TLcLocationAppFilter - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckTLcLocationAppFilter( CStifItemParser& aItem ); - - /** - * Method to Check set of FilterSystemCharacteristics - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckFilterSystemCharacteristics( CStifItemParser& aItem ); - - /** - * Method to Check set of FilterApplicationCharacteristics - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckFilterApplicationCharacteristics( CStifItemParser& aItem ); - - - /** - * Method to Check set of SysCharFilterConfiguration - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckSysCharFilterConfiguration( CStifItemParser& aItem ); - - /** - * Method to Check set of AppCharFilterConfiguration - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckAppCharFilterConfiguration( CStifItemParser& aItem ); - - private: // Data Members - - - }; - -#endif // TESTLC_H - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/inc/testlcservice.h --- a/loc_plat/location_centre_api/tsrc/inc/testlcservice.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,190 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases for CLcService -* -*/ - - -#ifndef CTESTLCSERVICE_H -#define CTESTLCSERVICE_H - -// System Includes -#include -#include -#include -#include -#include -#include - - -//Forward Declarations -class CLcService; - -// Constants - -// CLASS DECLARATION -/** - * Test Class to invoke the CLcService methods - * - * This class is a helper class. The status variable of this active obect is - * used to provide the asynchronous method Calls. - * - * @lib testlc.lib - * @since S60 v5.0 - */ - -class CTestLcService :public CActive, public MLcNotification, public MLcAppExitObserver - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - CTestLcService(CStifLogger* aLog); - - /** - * Destructor. - */ - ~CTestLcService(); - - public: - - //From CActive - void RunL(); - void DoCancel(); - TInt RunError(TInt aError); - - // From MLcNotification - void LcStatusChangedL( TInt aErrorCode ); - - // From MLcAppExitObserver - void HandleChainedLocationAppExitL( TInt aReason ); - - /** - * Test Case for Creating the new instance of CLcService - * This will test for Successful Creation on NewL - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckServiceNewL(); - - /** - * Test Case for Creating the new instance of CLcService - * This will test for Successful Creation on NewLC - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckServiceNewLC(); - - /** - * Test Case for Getting all the Location Applications - * This will test for Successful Get. - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestGetLocationApplicationsL(); - - /** - * Test Case for Getting all the Location Applications Asynchronously. - * This will test for Successful Get. - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestGetLocationApplicationsAsynL(); - - /** - * Test Case for Getting all the Location Applications using Filter. - * This will test for Successful Get - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestGetLocationApplicationsFilterL(); - - /** - * Test Case for Getting all the Location Applications using Filter. - * This will test for Successful Get - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestGetLocationApplicationsFilterAsynL(); - - /** - * Test Case for Setting and Removing the Observer. - * This will test for Successful Set and Remove. - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestSetRemoveObserverL(TInt aObserverState); - - /** - * Test Case for Cancelling the GetLocationApplications request. - * This will test for Successful Cancel - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestCancelGetLocationApplications(); - - /** - * Test Case for Creating new instance of CLcLaunchParam - * This will test for Successful Create. - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestCLcLaunchParamNewL(); - - /** - * Test Case for Creating new instance of CLcLaunchParam - * This will test for Successful Create. - * - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt TestCLcLaunchParamNewLC(); - - - private: //data - /** - * CLcService Instance - */ - CLcService* iLcService; - - /** - * Pointer to Stif Logger - Does not Own - */ - CStifLogger* iLog; - - }; - -#endif // CTESTLCSERVICE_H - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/inc/testlocationappfilter.h --- a/loc_plat/location_centre_api/tsrc/inc/testlocationappfilter.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases for TLcLocationAppFilter -* -*/ - - -#ifndef CTESTLOCATIONAPPFILTER_H -#define CTESTLOCATIONAPPFILTER_H - -// System Includes -#include -#include -#include -#include -#include -#include -#include - -// Constants - -// CLASS DECLARATION -/** - * Test Class For TLcLocationAppFilter - * - * This has TLcLocationAppFilter object which invokes TLcLocationAppFilter methods - * - * @lib testlc.lib - * @since S60 v5.0 - */ - -class CTestLocationAppFilter : public CBase - { - public: - - // Constructors and destructor - /** - * C++ default constructor. - */ - CTestLocationAppFilter(CStifLogger* aLog); - - /** - * Destructor. - */ - ~CTestLocationAppFilter(); - - public: - - // New functions - /** - * Method to Check Creation of TLcLocationAppFilter - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckTLcLocationAppFilter( ); - - /** - * Method to Check set of FilterSystemCharacteristics - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckFilterSystemCharacteristics( TInt aChoice ); - - /** - * Method to Check set of FilterApplicationCharacteristics - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckFilterApplicationCharacteristics( TInt aChoice ); - - /** - * Method to Check set of SysCharFilterConfiguration - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckSysCharFilterConfiguration( TInt aChoice ); - - /** - * Method to Check set of AppCharFilterConfiguration - * @since S60 v5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckAppCharFilterConfiguration( TInt aChoice ); - - private: //data - - /** - * Pointer to Stif Logger - Does not Own - */ - CStifLogger* iLog; - - }; - -#endif // CTESTLOCATIONAPPFILTER_H - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/inc/testlocationappinfo.h --- a/loc_plat/location_centre_api/tsrc/inc/testlocationappinfo.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases for CLcLocationAppInfo -* -*/ - - -#ifndef CTESTLOCATIONAPPINFO_H -#define CTESTLOCATIONAPPINFO_H - -// System Includes -#include -#include -#include -#include -#include -#include -#include - -//Forward Declarations -class CLcLocationAppInfo; - -// Constants - -// CLASS DECLARATION -/** - * Test Class For CLcLocationAppInfo - * - * This has CLcLocationAppInfo object which invokes CLcLocationAppInfo methods - * - * @lib testlc.lib - * @since S60 v5.0 - */ - -class CTestLocationAppInfo : public CBase - { - public: - - // Constructors and destructor - /** - * C++ default constructor. - */ - CTestLocationAppInfo(CStifLogger* aLog); - - /** - * Destructor. - */ - ~CTestLocationAppInfo(); - - public: - - // New functions - /** - * Method to Check the LocationApp Info NewL - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckNewL( ); - - /** - * Method to Check the LocationApp Info NewLC - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckNewLC( ); - - /** - * Method to Check the LocationApp Info NewLC - * Copy Constructor - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckCopyNewL( ); - - /** - * Method to Check the LocationApp Info NewLC - * Copy Constructor - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckCopyNewLC( ); - - /** - * Method to Check Id - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckId( ); - - /** - * Method to Check Name - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckName( ); - - /** - * Method to Check Launch Mode - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckLaunchMode( ); - - /** - * Method to Check System Characteristics - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckSystemCharacteristics( ); - - /** - * Method to Check Application Characteristics - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckApplicationCharacteristics( ); - - private: //data - /** - * CLcLocationAppInfo Instance - */ - CLcLocationAppInfo* iLcLocationAppInfo; - - /** - * Pointer to Stif Logger - Does not Own - */ - CStifLogger* iLog; - - }; - -#endif // CTESTLOCATIONAPPINFO_H - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/inc/testlocationappinfoarray.h --- a/loc_plat/location_centre_api/tsrc/inc/testlocationappinfoarray.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases for CLcLocationAppInfo -* -*/ - - -#ifndef CTestLocationAppInfoArray_H -#define CTestLocationAppInfoArray_H - -// System Includes -#include -#include -#include -#include -#include -#include -#include - -//Forward Declarations -class CLcLocationAppInfoArray; - -// Constants - -// CLASS DECLARATION -/** - * Test Class For CLcLocationAppInfo - * - * This has CLcLocationAppInfo object which invokes CLcLocationAppInfo methods - * - * @lib testlc.lib - * @since S60 v5.0 - */ - -class CTestLocationAppInfoArray : public CBase - { - public: - - // Constructors and destructor - /** - * C++ default constructor. - */ - CTestLocationAppInfoArray(CStifLogger* aLog); - - /** - * Destructor. - */ - ~CTestLocationAppInfoArray(); - - public: - - // New functions - /** - * Method to Check the Creation of AppInfo Array using NewL - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckArrayNewL( ); - - /** - * Method to Check the Creation of AppInfo Array using NewLC - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckArrayNewLC( ); - - /** - * Method to Check the Count of AppInfo Array - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckCount( ); - - /** - * Method to Check the append to AppInfo Array - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckAppendL( ); - - /** - * Method to Check the Remove from AppInfo Array - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckRemoveL( ); - - /** - * Method to Check the Reset of AppInfo Array - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckResetL( ); - - /** - * Method to Check the [] Operator of AppInfo Array - * @since S60 5.0 - * Returns KErrNone if successful. - * - */ - TInt CheckOperatorL( ); - - private: //data - /** - * CLcLocationAppInfo Instance - */ - CLcLocationAppInfoArray* iLcLocationAppInfoArray; - - /** - * Pointer to Stif Logger - Does not Own - */ - CStifLogger* iLog; - - }; - -#endif // CTestLocationAppInfoArray_H - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/init/testframework.ini --- a/loc_plat/location_centre_api/tsrc/init/testframework.ini Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,182 +0,0 @@ -# -# This is STIFTestFramework initialization file -# Comment lines start with '#'-character. -# See STIF TestFramework users guide.doc for instructions - -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -# Set following test engine settings: -# - Set Test Reporting mode. TestReportMode's possible values are: -# + 'Summary': Summary of the tested test cases. -# + 'Environment': Hardware and software info. -# + 'TestCases': Test case report. -# + 'FullReport': Set of all above ones. -# + Example 'TestReportMode= Summary TestCases' -# -# - CreateTestReport setting controls report creation mode -# + YES, Test report will created. -# + NO, No Test report. -# -# - File path indicates the base path of the test report. -# - File name indicates the name of the test report. -# -# - File format indicates the type of the test report. -# + TXT, Test report file will be txt type, for example 'TestReport.txt'. -# + HTML, Test report will be html type, for example 'TestReport.html'. -# -# - File output indicates output source of the test report. -# + FILE, Test report logging to file. -# + RDEBUG, Test report logging to using rdebug. -# -# - File Creation Mode indicates test report overwriting if file exist. -# + OVERWRITE, Overwrites if the Test report file exist. -# + APPEND, Continue logging after the old Test report information if -# report exist. -# - Sets a device reset module's dll name(Reboot). -# + If Nokia specific reset module is not available or it is not correct one -# StifHWResetStub module may use as a template for user specific reset -# module. - -[Engine_Defaults] - -TestReportMode= FullReport # Possible values are: 'Empty', 'Summary', 'Environment', - 'TestCases' or 'FullReport' - -CreateTestReport= YES # Possible values: YES or NO - -TestReportFilePath= C:\LOGS\TestFramework\ -TestReportFileName= TestReport - -TestReportFormat= TXT # Possible values: TXT or HTML -TestReportOutput= FILE # Possible values: FILE or RDEBUG -TestReportFileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND - -DeviceResetDllName= StifResetForNokia.dll # e.g. 'StifHWResetStub.dll' for user specific reseting - -[End_Defaults] -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - - -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -# Module configurations start -# Modules are added between module tags -# tags. Module name is specified after ModuleName= tag, like -# ModuleName= XXXXXXXXX -# Modules might have initialisation file, specified as -# IniFile= c:\testframework\YYYYYY -# Modules might have several configuration files, like -# TestCaseFile= c:\testframework\NormalCases.txt -# TestCaseFile= c:\testframework\SmokeCases.txt -# TestCaseFile= c:\testframework\ManualCases.txt - -# (TestCaseFile is synonym for old term ConfigFile) - -# Following case specifies demo module settings. Demo module -# does not read any settings from file, so tags -# IniFile and TestCaseFile are not used. -# In the simplest case it is enough to specify only the -# name of the test module when adding new test module - -#[New_Module] -#ModuleName= demomodule -#[End_Module] - -[New_Module] -ModuleName= TestScripter -TestCaseFile= C:\Testframework\testlc.cfg -[End_Module] - -# Load testmoduleXXX, optionally with initialization file and/or test case files -#[New_Module] -#ModuleName= testmodulexxx - -#TestModuleXXX used initialization file -#IniFile= c:\testframework\init.txt - -#TestModuleXXX used configuration file(s) -#TestCaseFile= c:\testframework\testcases1.cfg -#TestCaseFile= c:\testframework\testcases2.cfg -#TestCaseFile= c:\testframework\manualtestcases.cfg - -#[End_Module] -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - - -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -# Set STIFTestFramework logging overwrite parameters for Logger. -# Hardware and emulator environment logging path and styles can -# be configured from here to overwrite the Logger's implemented values. -# -# Settings description: -# - Indicates option for creation log directory/directories. If log directory/directories -# is/are not created by user they will make by software. -# + YES, Create log directory/directories if not allready exist. -# + NO, Log directory/directories not created. Only created one is used. -# -# - Overwrite emulator path setting. -# + Example: If 'EmulatorBasePath= C:\LOGS\TestFramework\' and in code is defined -# Logger's path 'D:\\LOGS\\Module\\' with those definition the path -# will be 'C:\LOGS\TestFramework\LOGS\Module\' -# -# - Overwrite emulator's logging format. -# + TXT, Log file(s) will be txt type(s), for example 'Module.txt'. -# + HTML, Log file(s) will be html type(s), for example 'Module.html'. -# -# - Overwrited emulator logging output source. -# + FILE, Logging to file(s). -# + RDEBUG, Logging to using rdebug(s). -# -# - Overwrite hardware path setting (Same description as above in emulator path). -# - Overwrite hardware's logging format(Same description as above in emulator format). -# - Overwrite hardware's logging output source(Same description as above in emulator output). -# -# - File Creation Mode indicates file overwriting if file exist. -# + OVERWRITE, Overwrites if file(s) exist. -# + APPEND, Continue logging after the old logging information if file(s) exist. -# -# - Will thread id include to the log filename. -# + YES, Thread id to log file(s) name, Example filename 'Module_b9.txt'. -# + NO, No thread id to log file(s), Example filename 'Module.txt'. -# -# - Will time stamps include the to log file. -# + YES, Time stamp added to each line in log file(s). Time stamp is -# for example'12.Nov.2003 115958 LOGGING INFO' -# + NO, No time stamp(s). -# -# - Will line breaks include to the log file. -# + YES, Each logging event includes line break and next log event is in own line. -# + NO, No line break(s). -# -# - Will event ranking include to the log file. -# + YES, Event ranking number added to each line in log file(s). Ranking number -# depends on environment's tics, for example(includes time stamp also) -# '012 12.Nov.2003 115958 LOGGING INFO' -# + NO, No event ranking. -# - -[Logger_Defaults] - -#NOTE: If you want to set Logger using next setting(s) remove comment(s)'#' - -#CreateLogDirectories= YES # Possible values: YES or NO - -#EmulatorBasePath= C:\LOGS\TestFramework\ -#EmulatorFormat= HTML # Possible values: TXT or HTML -#EmulatorOutput= FILE # Possible values: FILE or RDEBUG - -#HardwareBasePath= D:\LOGS\TestFramework\ -#HardwareFormat= HTML # Possible values: TXT or HTML -#HardwareOutput= FILE # Possible values: FILE or RDEBUG - -#FileCreationMode= OVERWRITE # Possible values: OVERWRITE or APPEND - -#ThreadIdToLogFile= YES # Possible values: YES or NO -#WithTimeStamp= YES # Possible values: YES or NO -#WithLineBreak= YES # Possible values: YES or NO -#WithEventRanking= YES # Possible values: YES or NO - -[End_Logger_Defaults] -# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - -# End of file diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/src/testlc.cpp --- a/loc_plat/location_centre_api/tsrc/src/testlc.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases -* -*/ - - - -// INCLUDE FILES -#include -#include "testlc.h" -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CTestLc::CTestLc -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CTestLc::CTestLc( - CTestModuleIf& aTestModuleIf ): - CScriptBase( aTestModuleIf ) - { - } - -// ----------------------------------------------------------------------------- -// CTestLc::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CTestLc::ConstructL() - { - //Read logger settings to check whether test case name is to be - //appended to log file name. - RSettingServer settingServer; - TInt ret = settingServer.Connect(); - if(ret != KErrNone) - { - User::Leave(ret); - } - // Struct to StifLogger settigs. - TLoggerSettings loggerSettings; - // Parse StifLogger defaults from STIF initialization file. - ret = settingServer.GetLoggerSettings(loggerSettings); - if(ret != KErrNone) - { - User::Leave(ret); - } - // Close Setting server session - settingServer.Close(); - - TFileName logFileName; - - if(loggerSettings.iAddTestCaseTitle) - { - TName title; - TestModuleIf().GetTestCaseTitleL(title); - logFileName.Format(KtestlcLogFileWithTitle, &title); - } - else - { - logFileName.Copy(KtestlcLogFile); - } - - iLog = CStifLogger::NewL( KtestlcLogPath, - logFileName, - CStifLogger::ETxt, - CStifLogger::EFile, - EFalse ); - - } - -// ----------------------------------------------------------------------------- -// CTestLc::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CTestLc* CTestLc::NewL( - CTestModuleIf& aTestModuleIf ) - { - CTestLc* self = new (ELeave) CTestLc( aTestModuleIf ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - - } - -// Destructor -CTestLc::~CTestLc() - { - - // Delete resources allocated from test methods - Delete(); - - // Delete logger - delete iLog; - - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// LibEntryL is a polymorphic Dll entry point. -// Returns: CScriptBase: New CScriptBase derived object -// ----------------------------------------------------------------------------- -// -EXPORT_C CScriptBase* LibEntryL( - CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework - { - - return ( CScriptBase* ) CTestLc::NewL( aTestModuleIf ); - - } - - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/src/testlcblocks.cpp --- a/loc_plat/location_centre_api/tsrc/src/testlcblocks.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,589 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases -* -*/ - - - -// INCLUDE FILES -#include -#include -#include - -#include "testlc.h" -#include "testlcservice.h" -#include "testlocationappinfo.h" -#include "testlocationappfilter.h" -#include "testlocationappinfoarray.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CTestLc::Delete -// Delete here all resources allocated and opened from test methods. -// Called from destructor. -// ----------------------------------------------------------------------------- -// -void CTestLc::Delete() - { - - } - -// ----------------------------------------------------------------------------- -// CTestLc::RunMethodL -// Run specified method. Contains also table of test mothods and their names. -// ----------------------------------------------------------------------------- -// -TInt CTestLc::RunMethodL( - CStifItemParser& aItem ) - { - - static TStifFunctionInfo const KFunctions[] = - { - ENTRY( "CheckServiceNewL", CTestLc::CheckServiceNewL ), - ENTRY( "CheckServiceNewLC", CTestLc::CheckServiceNewLC ), - ENTRY( "TestGetLocationApplicationsL", CTestLc::TestGetLocationApplicationsL ), - ENTRY( "TestGetLocationApplicationsAsynL", CTestLc::TestGetLocationApplicationsAsynL ), - ENTRY( "TestGetLocationApplicationsFilterL", CTestLc::TestGetLocationApplicationsFilterL ), - ENTRY( "TestGetLocationApplicationsFilterAsynL", CTestLc::TestGetLocationApplicationsFilterAsynL ), - ENTRY( "TestSetRemoveObserverL", CTestLc::TestSetRemoveObserverL ), - ENTRY( "TestCancelGetLocationApplications", CTestLc::TestCancelGetLocationApplications ), - ENTRY( "TestCLcLaunchParamNewL", CTestLc::TestCLcLaunchParamNewL ), - ENTRY( "TestCLcLaunchParamNewLC", CTestLc::TestCLcLaunchParamNewLC ), - - ENTRY( "CheckNewL", CTestLc::CheckNewL ), - ENTRY( "CheckNewLC", CTestLc::CheckNewLC ), - ENTRY( "CheckCopyNewL", CTestLc::CheckCopyNewL ), - ENTRY( "CheckCopyNewLC", CTestLc::CheckCopyNewLC ), - ENTRY( "CheckId", CTestLc::CheckId ), - ENTRY( "CheckName", CTestLc::CheckName ), - ENTRY( "CheckLaunchMode", CTestLc::CheckLaunchMode ), - ENTRY( "CheckSystemCharacteristics", CTestLc::CheckSystemCharacteristics ), - ENTRY( "CheckApplicationCharacteristics", CTestLc::CheckApplicationCharacteristics ), - - ENTRY( "CheckArrayNewL", CTestLc::CheckArrayNewL ), - ENTRY( "CheckArrayNewLC", CTestLc::CheckArrayNewLC ), - ENTRY( "CheckCount", CTestLc::CheckCount ), - ENTRY( "CheckAppendL", CTestLc::CheckAppendL ), - ENTRY( "CheckRemoveL", CTestLc::CheckRemoveL ), - ENTRY( "CheckResetL", CTestLc::CheckResetL ), - ENTRY( "CheckOperatorL", CTestLc::CheckOperatorL ), - - ENTRY( "CheckTLcLocationAppFilter", CTestLc::CheckTLcLocationAppFilter ), - ENTRY( "CheckFilterSystemCharacteristics", CTestLc::CheckFilterSystemCharacteristics ), - ENTRY( "CheckFilterApplicationCharacteristics", CTestLc::CheckFilterApplicationCharacteristics ), - ENTRY( "CheckSysCharFilterConfiguration", CTestLc::CheckSysCharFilterConfiguration ), - ENTRY( "CheckAppCharFilterConfiguration", CTestLc::CheckAppCharFilterConfiguration ), - - - //ADD NEW ENTRY HERE - - }; - - const TInt count = sizeof( KFunctions ) / - sizeof( TStifFunctionInfo ); - - return RunInternalL( KFunctions, count, aItem ); - - } - -// --------------------------------------------------------- -// CTestLc::CheckServiceNewL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckServiceNewL( CStifItemParser& /*aItem*/ ) - { - CTestLcService* testLcService = new(ELeave) - CTestLcService(iLog); - TInt err = testLcService->CheckServiceNewL(); - delete testLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckServiceNewLC -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckServiceNewLC( CStifItemParser& /*aItem*/ ) - { - CTestLcService* testLcService = new(ELeave) - CTestLcService(iLog); - TInt err = testLcService->CheckServiceNewLC(); - delete testLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestGetLocationApplicationsL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::TestGetLocationApplicationsL( CStifItemParser& /*aItem*/ ) - { - CTestLcService* testLcService = new(ELeave) - CTestLcService(iLog); - TInt err = testLcService->TestGetLocationApplicationsL(); - delete testLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestGetLocationApplicationsAsynL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::TestGetLocationApplicationsAsynL( CStifItemParser& /*aItem*/ ) - { - CTestLcService* testLcService = new(ELeave) - CTestLcService(iLog); - TInt err = testLcService->TestGetLocationApplicationsAsynL(); - delete testLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestGetLocationApplicationsFilterL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::TestGetLocationApplicationsFilterL( CStifItemParser& /*aItem*/ ) - { - CTestLcService* testLcService = new(ELeave) - CTestLcService(iLog); - TInt err = testLcService->TestGetLocationApplicationsFilterL(); - delete testLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestGetLocationApplicationsFilterAsynL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::TestGetLocationApplicationsFilterAsynL( CStifItemParser& /*aItem*/ ) - { - CTestLcService* testLcService = new(ELeave) - CTestLcService(iLog); - TInt err = testLcService->TestGetLocationApplicationsFilterAsynL(); - delete testLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestSetRemoveObserverL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::TestSetRemoveObserverL( CStifItemParser& aItem ) - { - TInt choice; - User::LeaveIfError(aItem.GetNextInt(choice)); - - CTestLcService* testLcService = new(ELeave) - CTestLcService(iLog); - TInt err = testLcService->TestSetRemoveObserverL(choice); - delete testLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestCancelGetLocationApplications -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::TestCancelGetLocationApplications( CStifItemParser& /*aItem*/ ) - { - CTestLcService* testLcService = new(ELeave) - CTestLcService(iLog); - TInt err = testLcService->TestCancelGetLocationApplications(); - delete testLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestCLcLaunchParamNewL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::TestCLcLaunchParamNewL( CStifItemParser& /*aItem*/ ) - { - CTestLcService* testLcService = new(ELeave) - CTestLcService(iLog); - TInt err = testLcService->TestCLcLaunchParamNewL(); - delete testLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestCLcLaunchParamNewLC -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::TestCLcLaunchParamNewLC( CStifItemParser& /*aItem*/ ) - { - CTestLcService* testLcService = new(ELeave) - CTestLcService(iLog); - TInt err = testLcService->TestCLcLaunchParamNewLC(); - delete testLcService; - return err; - } - -//-------------------Info - -// --------------------------------------------------------- -// CTestLc::CheckNewL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckNewL( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfo* testLocationAppInfo = new(ELeave) - CTestLocationAppInfo(iLog); - TInt err = testLocationAppInfo->CheckNewL(); - delete testLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckNewLC -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckNewLC( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfo* testLocationAppInfo = new(ELeave) - CTestLocationAppInfo(iLog); - TInt err = testLocationAppInfo->CheckNewLC(); - delete testLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckCopyNewL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckCopyNewL( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfo* testLocationAppInfo = new(ELeave) - CTestLocationAppInfo(iLog); - TInt err = testLocationAppInfo->CheckCopyNewL(); - delete testLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckCopyNewLC -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckCopyNewLC( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfo* testLocationAppInfo = new(ELeave) - CTestLocationAppInfo(iLog); - TInt err = testLocationAppInfo->CheckCopyNewLC(); - delete testLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckId -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckId( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfo* testLocationAppInfo = new(ELeave) - CTestLocationAppInfo(iLog); - TInt err = testLocationAppInfo->CheckId(); - delete testLocationAppInfo; - return err; - } - - -// --------------------------------------------------------- -// CTestLc::CheckName -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckName( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfo* testLocationAppInfo = new(ELeave) - CTestLocationAppInfo(iLog); - TInt err = testLocationAppInfo->CheckName(); - delete testLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckLaunchMode -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckLaunchMode( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfo* testLocationAppInfo = new(ELeave) - CTestLocationAppInfo(iLog); - TInt err = testLocationAppInfo->CheckLaunchMode(); - delete testLocationAppInfo; - return err; - } - - -// --------------------------------------------------------- -// CTestLc::CheckSystemCharacteristics -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckSystemCharacteristics( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfo* testLocationAppInfo = new(ELeave) - CTestLocationAppInfo(iLog); - TInt err = testLocationAppInfo->CheckSystemCharacteristics(); - delete testLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckApplicationCharacteristics -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckApplicationCharacteristics( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfo* testLocationAppInfo = new(ELeave) - CTestLocationAppInfo(iLog); - TInt err = testLocationAppInfo->CheckApplicationCharacteristics(); - delete testLocationAppInfo; - return err; - } - -//-------------------Array - -// --------------------------------------------------------- -// CTestLc::CheckArrayNewL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckArrayNewL( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfoArray* testLocationAppInfoArray = new(ELeave) - CTestLocationAppInfoArray(iLog); - TInt err = testLocationAppInfoArray->CheckArrayNewL(); - delete testLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckArrayNewLC -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckArrayNewLC( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfoArray* testLocationAppInfoArray = new(ELeave) - CTestLocationAppInfoArray(iLog); - TInt err = testLocationAppInfoArray->CheckArrayNewLC(); - delete testLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckCount -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckCount( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfoArray* testLocationAppInfoArray = new(ELeave) - CTestLocationAppInfoArray(iLog); - TInt err = testLocationAppInfoArray->CheckCount(); - delete testLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckAppendL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckAppendL( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfoArray* testLocationAppInfoArray = new(ELeave) - CTestLocationAppInfoArray(iLog); - TInt err = testLocationAppInfoArray->CheckAppendL(); - delete testLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckRemoveL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckRemoveL( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfoArray* testLocationAppInfoArray = new(ELeave) - CTestLocationAppInfoArray(iLog); - TInt err = testLocationAppInfoArray->CheckRemoveL(); - delete testLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckResetL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckResetL( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfoArray* testLocationAppInfoArray = new(ELeave) - CTestLocationAppInfoArray(iLog); - TInt err = testLocationAppInfoArray->CheckResetL(); - delete testLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckOperatorL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckOperatorL( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppInfoArray* testLocationAppInfoArray = new(ELeave) - CTestLocationAppInfoArray(iLog); - TInt err = testLocationAppInfoArray->CheckOperatorL(); - delete testLocationAppInfoArray; - return err; - } - -//-----------Filter -// --------------------------------------------------------- -// CTestLc::CheckTLcLocationAppFilter -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckTLcLocationAppFilter( CStifItemParser& /*aItem*/ ) - { - CTestLocationAppFilter* testLocationAppFilter = new(ELeave) - CTestLocationAppFilter(iLog); - TInt err = testLocationAppFilter->CheckTLcLocationAppFilter( ); - delete testLocationAppFilter; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckFilterSystemCharacteristics -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckFilterSystemCharacteristics( CStifItemParser& aItem ) - { - TInt choice; - User::LeaveIfError(aItem.GetNextInt(choice)); - - CTestLocationAppFilter* testLocationAppFilter = new(ELeave) - CTestLocationAppFilter(iLog); - TInt err = testLocationAppFilter->CheckFilterSystemCharacteristics( choice ); - delete testLocationAppFilter; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckFilterApplicationCharacteristics -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckFilterApplicationCharacteristics( CStifItemParser& aItem ) - { - TInt choice; - User::LeaveIfError(aItem.GetNextInt(choice)); - - CTestLocationAppFilter* testLocationAppFilter = new(ELeave) - CTestLocationAppFilter(iLog); - TInt err = testLocationAppFilter->CheckFilterApplicationCharacteristics( choice ); - delete testLocationAppFilter; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckSysCharFilterConfiguration -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckSysCharFilterConfiguration( CStifItemParser& aItem ) - { - TInt choice; - User::LeaveIfError(aItem.GetNextInt(choice)); - - CTestLocationAppFilter* testLocationAppFilter = new(ELeave) - CTestLocationAppFilter(iLog); - TInt err = testLocationAppFilter->CheckSysCharFilterConfiguration( choice ); - delete testLocationAppFilter; - return err; - } - -// --------------------------------------------------------- -// CTestLc::CheckAppCharFilterConfiguration -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLc::CheckAppCharFilterConfiguration( CStifItemParser& aItem ) - { - TInt choice; - User::LeaveIfError(aItem.GetNextInt(choice)); - - CTestLocationAppFilter* testLocationAppFilter = new(ELeave) - CTestLocationAppFilter(iLog); - TInt err = testLocationAppFilter->CheckAppCharFilterConfiguration( choice ); - delete testLocationAppFilter; - return err; - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/src/testlcservice.cpp --- a/loc_plat/location_centre_api/tsrc/src/testlcservice.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,400 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases for CLcService -* -*/ - - -// System Includes -#include - -// User Includes -#include "testlcservice.h" - - -// Constant Declarations - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// C++ Default Constructor -// --------------------------------------------------------------------------- -// -CTestLcService::CTestLcService(CStifLogger* aLog) - :CActive(0),iLog(aLog) - { - CActiveScheduler::Add(this); - } - -// --------------------------------------------------------------------------- -// C++ Destructor -// --------------------------------------------------------------------------- -// -CTestLcService::~CTestLcService() - { - if( IsActive() ) - { - Cancel(); - } - } - -// --------------------------------------------------------- -// CTestLcService::RunL -// -// RunL to Handle Completed Request -// --------------------------------------------------------- -// -void CTestLcService::RunL() - { - if(iStatus != KErrCancel) - { - iLog->Log(_L("RunL %d"),iStatus.Int()); - CActiveScheduler::Stop(); - } - } - -// --------------------------------------------------------- -// CTestLcService::DoCancel -// -// To Handle Cancel Request -// --------------------------------------------------------- -// -void CTestLcService::DoCancel() - { - iLcService->CancelGetLocationApplications(); - iLog->Log(_L("CancelL Done")); - - } - -// --------------------------------------------------------- -// CTestLcService::RunError -// -// To Handle Error in RunL -// --------------------------------------------------------- -// -TInt CTestLcService::RunError(TInt aError) - { - iLog->Log(_L("Leave in RunError %d"),aError); - CActiveScheduler::Stop(); - return KErrNone; - } - -// --------------------------------------------------------- -// CTestLcService::LcStatusChangedL -// -// --------------------------------------------------------- -// -void CTestLcService::LcStatusChangedL( TInt /*aErrorCode*/ ) - { - // No implementation - } - -// --------------------------------------------------------- -// CTestLcService::HandleChainedLocationAppExitL -// -// --------------------------------------------------------- -// -void CTestLcService::HandleChainedLocationAppExitL( TInt aReason ) - { - iLog->Log(_L("In HandleChainedLocationAppExitL returned with : %d"), aReason); - } - -// --------------------------------------------------------- -// CTestLcService::CheckServiceNewL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLcService::CheckServiceNewL() - { - TInt err = KErrNone; - TRAP(err, iLcService = CLcService::NewL()); - iLog->Log(_L("CheckServiceNewL return - %d"),err); - delete iLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::CheckServiceNewLC -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLcService::CheckServiceNewLC() - { - TInt err = KErrNone; - TRAP(err, iLcService = CLcService::NewLC(); - CleanupStack::Pop(iLcService)); - iLog->Log(_L("CheckServiceNewLC return - %d"),err); - delete iLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestGetLocationApplicationsL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLcService::TestGetLocationApplicationsL() - { - TInt err = KErrNone; - iLcService = CLcService::NewL(); - CLcLocationAppInfoArray* array = iLcService->GetLocationApplicationsL( ); - TInt countItems = array->Count( ); - CLcLocationAppInfo& info1 =(*array)[countItems - 1]; - - TPtrC name1 = info1.Name( ); - TPtrC id1 = info1.Id( ); - - if( 0 == name1.Compare(_L("Positioning settings")) && - 0 == id1.Compare(_L("1028313B")) && - CLcLocationAppInfo::EChainedMode == info1.LaunchMode() && - CLcLocationAppInfo::ESysCharRomBased == info1.SystemCharacteristics() && - CLcLocationAppInfo::EAppCharSettings == info1.ApplicationCharacteristics() ) - { - iLog->Log(_L("TestGetLocationApplicationsL Passed")); - } - else - { - err = KErrGeneral; - iLog->Log(_L("TestGetLocationApplicationsL Failed")); - } - - array->Remove(countItems - 1); - array->Reset(); - - delete array; - delete iLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestGetLocationApplicationsAsynL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLcService::TestGetLocationApplicationsAsynL() - { - TInt err = KErrNone; - iLcService = CLcService::NewL(); - CLcLocationAppInfoArray* array; - iLcService->GetLocationApplications( iStatus, array ); - SetActive(); - CActiveScheduler::Start(); - - TInt countItems = array->Count( ); - CLcLocationAppInfo& info1 =(*array)[countItems - 1]; - - TPtrC name1 = info1.Name( ); - TPtrC id1 = info1.Id( ); - - if( 0 == name1.Compare(_L("Positioning settings")) && - 0 == id1.Compare(_L("1028313B")) && - CLcLocationAppInfo::EChainedMode == info1.LaunchMode() && - CLcLocationAppInfo::ESysCharRomBased == info1.SystemCharacteristics() && - CLcLocationAppInfo::EAppCharSettings == info1.ApplicationCharacteristics() ) - { - iLog->Log(_L("TestGetLocationApplicationsL Passed")); - } - else - { - err = KErrGeneral; - iLog->Log(_L("TestGetLocationApplicationsL Failed")); - } - - delete array; - delete iLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestGetLocationApplicationsFilterL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLcService::TestGetLocationApplicationsFilterL() - { - TInt err = KErrNone; - iLcService = CLcService::NewL(); - TLcLocationAppFilter filter; - filter.SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharSettings ); - filter.SetSystemCharacteristic( CLcLocationAppInfo::ESysCharRomBased ); - filter.SetAppCharFilterConfiguration( TLcLocationAppFilter::EFilterStrict ); - filter.SetSysCharFilterConfiguration( TLcLocationAppFilter::EFilterStrict ); - - CLcLocationAppInfoArray* array=iLcService->GetLocationApplicationsL(filter); - - TInt countItems = array->Count( ); - CLcLocationAppInfo& info1 =(*array)[countItems - 1]; - - TPtrC name1 = info1.Name( ); - TPtrC id1 = info1.Id( ); - - if( 0 == name1.Compare(_L("Positioning settings")) && - 0 == id1.Compare(_L("1028313B")) ) - { - iLog->Log(_L("TestGetLocationApplicationsFilterL Passed")); - } - else - { - err = KErrGeneral; - iLog->Log(_L("TestGetLocationApplicationsFilterL Failed")); - } - - delete array; - delete iLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestGetLocationApplicationsFilterAsynL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLcService::TestGetLocationApplicationsFilterAsynL() - { - TInt err = KErrNone; - iLcService = CLcService::NewL(); - TLcLocationAppFilter filter; - filter.SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharSettings ); - filter.SetSystemCharacteristic( CLcLocationAppInfo::ESysCharRomBased ); - filter.SetAppCharFilterConfiguration( TLcLocationAppFilter::EFilterStrict ); - filter.SetSysCharFilterConfiguration( TLcLocationAppFilter::EFilterStrict ); - - CLcLocationAppInfoArray* array; - iLcService->GetLocationApplications(iStatus, filter, array); - - SetActive(); - CActiveScheduler::Start(); - - TInt countItems = array->Count( ); - CLcLocationAppInfo& info1 =(*array)[countItems - 1]; - - TPtrC name1 = info1.Name( ); - TPtrC id1 = info1.Id( ); - - iLog->Log(_L("countItems = %d"), countItems); - - if( 0 == name1.Compare(_L("Positioning settings")) && - 0 == id1.Compare(_L("1028313B")) ) - { - iLog->Log(_L("TestGetLocationApplicationsFilterL Passed")); - } - else - { - err = KErrGeneral; - iLog->Log(_L("TestGetLocationApplicationsFilterL Failed")); - } - - delete array; - delete iLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestSetRemoveObserverL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLcService::TestSetRemoveObserverL(TInt aObserverState) - { - TInt err = KErrNone; - iLcService = CLcService::NewL(); - - if( 1 == aObserverState ) - iLcService->SetObserverL(*this); - - err = iLcService->RemoveObserver(); - - if( KErrNone == err ) - { - iLog->Log(_L("TestSetRemoveObserverL Passed with %d"), err); - } - else - { - iLog->Log(_L("TestSetRemoveObserverL Failed with %d"), err); - } - - delete iLcService; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestCancelGetLocationApplications -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLcService::TestCancelGetLocationApplications() - { - iLcService = CLcService::NewL(); - CLcLocationAppInfoArray* array; - iLcService->GetLocationApplications( iStatus, array ); - SetActive(); - - Cancel(); - - iLog->Log(_L("In TestCancelGetLocationApplications: returned with : %d"), iStatus.Int()); - - delete iLcService; - return iStatus.Int(); - } - -// --------------------------------------------------------- -// CTestLcService::TestCLcLaunchParamNewL -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLcService::TestCLcLaunchParamNewL() - { - TInt err = KErrNone; - CLcService::CLcLaunchParam* lcLaunchParam; - TBuf<128> buf; - - TRAP(err, lcLaunchParam = CLcService::CLcLaunchParam::NewL(buf)); - - iLog->Log(_L("CheckNewL return with %d"), err); - - delete lcLaunchParam; - return err; - } - -// --------------------------------------------------------- -// CTestLcService::TestCLcLaunchParamNewLC -// -// (other items are commented in a header). -// --------------------------------------------------------- -// -TInt CTestLcService::TestCLcLaunchParamNewLC() - { - TInt err = KErrNone; - CLcService::CLcLaunchParam* lcLaunchParam; - TBuf<128> buf; - - TRAP(err, lcLaunchParam = CLcService::CLcLaunchParam::NewLC(buf); - CleanupStack::Pop(lcLaunchParam)); - - iLog->Log(_L("CheckNewLC return with %d"), err); - - delete lcLaunchParam; - return err; - } - diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/src/testlocationappfilter.cpp --- a/loc_plat/location_centre_api/tsrc/src/testlocationappfilter.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases for TLcLocationAppFilter -* -*/ - - -// System Includes -#include -#include - -// User Includes -#include "testlocationappfilter.h" - - -// Constant Declarations - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// C++ Default Constructor -// --------------------------------------------------------------------------- -// -CTestLocationAppFilter::CTestLocationAppFilter(CStifLogger* aLog) - : iLog(aLog) - { - - } - -// --------------------------------------------------------------------------- -// C++ Destructor -// --------------------------------------------------------------------------- -// -CTestLocationAppFilter::~CTestLocationAppFilter() - { - - } - -// --------------------------------------------------------- -// CTestLocationAppFilter::CheckTLcLocationAppFilter -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppFilter::CheckTLcLocationAppFilter( ) - { - TInt err = KErrNone; - TLcLocationAppFilter lcLocationAppFilter; - - if( CLcLocationAppInfo::ESysCharNone == lcLocationAppFilter.SystemCharacteristics() && - CLcLocationAppInfo::EAppCharNone == lcLocationAppFilter.ApplicationCharacteristics() && - TLcLocationAppFilter::EFilterStrict == lcLocationAppFilter.SysCharFilterConfiguration() && - TLcLocationAppFilter::EFilterStrict == lcLocationAppFilter.AppCharFilterConfiguration() ) - { - iLog->Log(_L("TestGetLocationApplicationsL Passed")); - } - else - { - err = KErrGeneral; - iLog->Log(_L("TestGetLocationApplicationsL Failed")); - } - - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppFilter::CheckFilterSystemCharacteristics -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppFilter::CheckFilterSystemCharacteristics( TInt aChoice ) - { - TInt err = KErrNone; - TLcLocationAppFilter lcLocationAppFilter; - - switch(static_cast(aChoice)) - { - case CLcLocationAppInfo::ESysCharNone: - if( (KErrNone != (err=lcLocationAppFilter.SetSystemCharacteristic(CLcLocationAppInfo::ESysCharNone))) && - (CLcLocationAppInfo::ESysCharNone != lcLocationAppFilter.SystemCharacteristics()) ) - err = KErrArgument; - break; - default: - if( (KErrNone != (err=lcLocationAppFilter.SetSystemCharacteristic(CLcLocationAppInfo::ESysCharRomBased))) && - (CLcLocationAppInfo::ESysCharRomBased != lcLocationAppFilter.SystemCharacteristics()) ) - err = KErrArgument; - } - - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppFilter::CheckFilterApplicationCharacteristics -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppFilter::CheckFilterApplicationCharacteristics( TInt aChoice ) - { - TInt err = KErrNone; - TLcLocationAppFilter lcLocationAppFilter; - - switch(static_cast(aChoice)) - { - case CLcLocationAppInfo::EAppCharNone: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharNone))) && - (CLcLocationAppInfo::EAppCharNone != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - break; - case CLcLocationAppInfo::EAppCharSettings: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharSettings))) && - (CLcLocationAppInfo::EAppCharSettings != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - break; - case CLcLocationAppInfo::EAppCharPersonalDataManagement: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharPersonalDataManagement))) || - (CLcLocationAppInfo::EAppCharPersonalDataManagement != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - break; - case CLcLocationAppInfo::EAppCharNavigation: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharNavigation))) || - (CLcLocationAppInfo::EAppCharNavigation != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - break; - case CLcLocationAppInfo::EAppCharLocationBasedEvents: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharLocationBasedEvents))) || - (CLcLocationAppInfo::EAppCharLocationBasedEvents != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - break; - case CLcLocationAppInfo::EAppCharRemotePositioning: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharRemotePositioning))) || - (CLcLocationAppInfo::EAppCharRemotePositioning != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - break; - case CLcLocationAppInfo::EAppCharNetworkService: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharNetworkService))) || - (CLcLocationAppInfo::EAppCharNetworkService != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - break; - case CLcLocationAppInfo::EAppCharLocationEnhancedMessages: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharLocationEnhancedMessages))) || - (CLcLocationAppInfo::EAppCharLocationEnhancedMessages != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - break; - case CLcLocationAppInfo::EAppCharOnDeviceLocationBasedContent: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharOnDeviceLocationBasedContent))) || - (CLcLocationAppInfo::EAppCharOnDeviceLocationBasedContent != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - break; - case CLcLocationAppInfo::EAppCharRemoteLocationBasedContent: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharRemoteLocationBasedContent))) || - (CLcLocationAppInfo::EAppCharRemoteLocationBasedContent != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - break; - default: - if( (KErrNone != (err=lcLocationAppFilter.SetApplicationCharacteristics(CLcLocationAppInfo::EAppCharMaps))) || - (CLcLocationAppInfo::EAppCharMaps != lcLocationAppFilter.ApplicationCharacteristics()) ) - err = KErrArgument; - } - - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppFilter::CheckSysCharFilterConfiguration -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppFilter::CheckSysCharFilterConfiguration( TInt aChoice ) - { - TInt err = KErrNone; - TLcLocationAppFilter lcLocationAppFilter; - - switch(static_cast(aChoice)) - { - case TLcLocationAppFilter::EFilterStrict: - lcLocationAppFilter.SetSysCharFilterConfiguration(TLcLocationAppFilter::EFilterStrict); - if( (TLcLocationAppFilter::EFilterStrict != lcLocationAppFilter.SysCharFilterConfiguration()) ) - err = KErrArgument; - break; - case TLcLocationAppFilter::EFilterInclusive: - lcLocationAppFilter.SetSysCharFilterConfiguration(TLcLocationAppFilter::EFilterInclusive); - if( (TLcLocationAppFilter::EFilterInclusive != lcLocationAppFilter.SysCharFilterConfiguration()) ) - err = KErrArgument; - break; - default: - lcLocationAppFilter.SetSysCharFilterConfiguration(TLcLocationAppFilter::EFilterExclusive); - if( (TLcLocationAppFilter::EFilterExclusive != lcLocationAppFilter.SysCharFilterConfiguration()) ) - err = KErrArgument; - } - - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppFilter::CheckAppCharFilterConfiguration -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppFilter::CheckAppCharFilterConfiguration( TInt aChoice ) - { - TInt err = KErrNone; - TLcLocationAppFilter lcLocationAppFilter; - - switch(static_cast(aChoice)) - { - case TLcLocationAppFilter::EFilterStrict: - lcLocationAppFilter.SetAppCharFilterConfiguration(TLcLocationAppFilter::EFilterStrict); - if( (TLcLocationAppFilter::EFilterStrict != lcLocationAppFilter.AppCharFilterConfiguration()) ) - err = KErrArgument; - break; - case TLcLocationAppFilter::EFilterInclusive: - lcLocationAppFilter.SetAppCharFilterConfiguration(TLcLocationAppFilter::EFilterInclusive); - if( (TLcLocationAppFilter::EFilterInclusive != lcLocationAppFilter.AppCharFilterConfiguration()) ) - err = KErrArgument; - break; - default: - lcLocationAppFilter.SetAppCharFilterConfiguration(TLcLocationAppFilter::EFilterExclusive); - if( (TLcLocationAppFilter::EFilterExclusive != lcLocationAppFilter.AppCharFilterConfiguration()) ) - err = KErrArgument; - } - - return err; - } diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/src/testlocationappinfo.cpp --- a/loc_plat/location_centre_api/tsrc/src/testlocationappinfo.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,235 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases for CLcLocationAppInfo -* -*/ - - - -// System Includes -#include - -// User Includes -#include "testlocationappinfo.h" - - -// Constant Declarations - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// C++ Default Constructor -// --------------------------------------------------------------------------- -// -CTestLocationAppInfo::CTestLocationAppInfo(CStifLogger* aLog) - : iLcLocationAppInfo(NULL),iLog(aLog) - { - - } - -// --------------------------------------------------------------------------- -// C++ Destructor -// --------------------------------------------------------------------------- -// -CTestLocationAppInfo::~CTestLocationAppInfo() - { - - } - -// --------------------------------------------------------- -// CTestLocationAppInfo::CheckNewL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfo::CheckNewL() - { - TInt err = KErrNone; - - TRAP(err, iLcLocationAppInfo = CLcLocationAppInfo::NewL()); - - iLog->Log(_L("CheckNewL return with %d"), err); - - delete iLcLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfo::CheckNewLC -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfo::CheckNewLC() - { - TInt err = KErrNone; - - TRAP(err, iLcLocationAppInfo = CLcLocationAppInfo::NewLC(); - CleanupStack::Pop(iLcLocationAppInfo)); - - iLog->Log(_L("CheckNewLC return with %d"), err); - - delete iLcLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfo::CheckCopyNewL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfo::CheckCopyNewL() - { - TInt err = KErrNone; - - CLcLocationAppInfo* lcLocationAppInfo = CLcLocationAppInfo::NewL(); - - TRAP(err, iLcLocationAppInfo = CLcLocationAppInfo::NewL(*lcLocationAppInfo)); - - iLog->Log(_L("CheckCopyNewL return with %d"), err); - - delete lcLocationAppInfo; - delete iLcLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfo::CheckCopyNewLC -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfo::CheckCopyNewLC() - { - TInt err = KErrNone; - - CLcLocationAppInfo* lcLocationAppInfo = CLcLocationAppInfo::NewLC(); - - TRAP(err, iLcLocationAppInfo = CLcLocationAppInfo::NewLC(*lcLocationAppInfo); - CleanupStack::Pop(iLcLocationAppInfo)); - - iLog->Log(_L("CheckCopyNewLC return with %d"), err); - - CleanupStack::PopAndDestroy(lcLocationAppInfo); - - delete iLcLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfo::CheckId -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfo::CheckId() - { - TInt err = KErrNone; - - iLcLocationAppInfo = CLcLocationAppInfo::NewL(); - - if(0 != (iLcLocationAppInfo->Id()).Compare(_L("")) ) - err = KErrGeneral; - - iLog->Log(_L("CheckId return with %d"), err); - - delete iLcLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfo::CheckName -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfo::CheckName() - { - TInt err = KErrNone; - - iLcLocationAppInfo = CLcLocationAppInfo::NewL(); - - if(0 != (iLcLocationAppInfo->Name()).Compare(_L("")) ) - err = KErrGeneral; - - iLog->Log(_L("CheckName return with %d"), err); - - delete iLcLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfo::CheckLaunchMode -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfo::CheckLaunchMode() - { - TInt err = KErrNone; - - iLcLocationAppInfo = CLcLocationAppInfo::NewL(); - - if(CLcLocationAppInfo::EDefaultMode != iLcLocationAppInfo->LaunchMode()) - err = KErrGeneral; - - iLog->Log(_L("LaunchMode return with %d"), err); - - delete iLcLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfo::CheckSystemCharacteristics -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfo::CheckSystemCharacteristics() - { - TInt err = KErrNone; - - iLcLocationAppInfo = CLcLocationAppInfo::NewL(); - - if(CLcLocationAppInfo::ESysCharNone != iLcLocationAppInfo->SystemCharacteristics()) - err = KErrGeneral; - - iLog->Log(_L("CheckSystemCharacteristics return with %d"), err); - - delete iLcLocationAppInfo; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfo::CheckApplicationCharacteristics -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfo::CheckApplicationCharacteristics() - { - TInt err = KErrNone; - - iLcLocationAppInfo = CLcLocationAppInfo::NewL(); - - if(CLcLocationAppInfo::EAppCharNone != iLcLocationAppInfo->ApplicationCharacteristics()) - err = KErrGeneral; - - iLog->Log(_L("CheckApplicationCharacteristics return with %d"), err); - - delete iLcLocationAppInfo; - return err; - } diff -r 3a25f69541ff -r 4721bd00d3da loc_plat/location_centre_api/tsrc/src/testlocationappinfoarray.cpp --- a/loc_plat/location_centre_api/tsrc/src/testlocationappinfoarray.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,206 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Test Class which has the list of test cases for CLcLocationAppInfo -* -*/ - - - -// System Includes -#include - -// User Includes -#include "testlocationappinfoarray.h" - - -// Constant Declarations - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// C++ Default Constructor -// --------------------------------------------------------------------------- -// -CTestLocationAppInfoArray::CTestLocationAppInfoArray(CStifLogger* aLog) - : iLcLocationAppInfoArray(NULL),iLog(aLog) - { - - } - -// --------------------------------------------------------------------------- -// C++ Destructor -// --------------------------------------------------------------------------- -// -CTestLocationAppInfoArray::~CTestLocationAppInfoArray() - { - } - -// --------------------------------------------------------- -// CTestLocationAppInfoArray::CheckArrayNewL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfoArray::CheckArrayNewL( ) - { - TInt err = KErrNone; - - TRAP(err, iLcLocationAppInfoArray = CLcLocationAppInfoArray::NewL()); - - iLog->Log(_L("CheckArrayNewL return with %d"), err); - - delete iLcLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfoArray::CheckArrayNewLC -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfoArray::CheckArrayNewLC( ) - { - TInt err = KErrNone; - - TRAP(err, iLcLocationAppInfoArray = CLcLocationAppInfoArray::NewLC(); - CleanupStack::Pop(iLcLocationAppInfoArray)); - - iLog->Log(_L("CheckArrayNewLC return with %d"), err); - - delete iLcLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfoArray::CheckCount -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfoArray::CheckCount( ) - { - TInt err = KErrNone; - - iLcLocationAppInfoArray = CLcLocationAppInfoArray::NewL(); - - if( 0 != iLcLocationAppInfoArray->Count() ) - err = KErrGeneral; - - iLog->Log(_L("CheckCount return with %d"), err); - - delete iLcLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfoArray::CheckAppendL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfoArray::CheckAppendL( ) - { - TInt err = KErrNone; - - iLcLocationAppInfoArray = CLcLocationAppInfoArray::NewL(); - CLcLocationAppInfo* lcLocationAppInfo = CLcLocationAppInfo::NewL(); - - iLcLocationAppInfoArray->AppendL(lcLocationAppInfo); - - if( 1 != iLcLocationAppInfoArray->Count() ) - err = KErrGeneral; - - iLog->Log(_L("CheckCount return with %d"), err); - - iLcLocationAppInfoArray->Reset(); - delete iLcLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfoArray::CheckRemoveL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfoArray::CheckRemoveL( ) - { - TInt err = KErrNone; - - iLcLocationAppInfoArray = CLcLocationAppInfoArray::NewL(); - CLcLocationAppInfo* lcLocationAppInfo = CLcLocationAppInfo::NewL(); - - iLcLocationAppInfoArray->AppendL(lcLocationAppInfo); - - if( NULL == iLcLocationAppInfoArray->Remove( 0 ) ) - err = KErrGeneral; - - iLog->Log(_L("CheckCount return with %d"), err); - - delete lcLocationAppInfo; - delete iLcLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfoArray::CheckResetL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfoArray::CheckResetL( ) - { - TInt err = KErrNone; - - iLcLocationAppInfoArray = CLcLocationAppInfoArray::NewL(); - CLcLocationAppInfo* lcLocationAppInfo = CLcLocationAppInfo::NewL(); - - iLcLocationAppInfoArray->AppendL(lcLocationAppInfo); - - if( 1 != iLcLocationAppInfoArray->Count() ) - err = KErrGeneral; - - iLog->Log(_L("CheckCount return with %d"), err); - - iLcLocationAppInfoArray->Reset(); - delete iLcLocationAppInfoArray; - return err; - } - -// --------------------------------------------------------- -// CTestLocationAppInfoArray::CheckOperatorL -// -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CTestLocationAppInfoArray::CheckOperatorL( ) - { - TInt err = KErrNone; - - iLcLocationAppInfoArray = CLcLocationAppInfoArray::NewL(); - CLcLocationAppInfo* lcLocationAppInfo = CLcLocationAppInfo::NewL(); - - iLcLocationAppInfoArray->AppendL(lcLocationAppInfo); - - CLcLocationAppInfo& lcLocationAppInfo1 = (*iLcLocationAppInfoArray)[0]; - - iLog->Log(_L("CheckCount return with %d"), err); - - iLcLocationAppInfoArray->Reset(); - delete iLcLocationAppInfoArray; - return err; - } - diff -r 3a25f69541ff -r 4721bd00d3da loc_pub/location_centre_registration_api/location_centre_registration_api.metaxml --- a/loc_pub/location_centre_registration_api/location_centre_registration_api.metaxml Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ - - - Location Centre Registration API - Provides the interface for the client applications to register to Location Centre - file - locationsystemui - - - - - - - - no - no - - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/cenrep/keys_locationcentre.xls Binary file locationcentre/cenrep/keys_locationcentre.xls has changed diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/conf/locationcentre.confml Binary file locationcentre/conf/locationcentre.confml has changed diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/conf/locationcentre_10283137.crml Binary file locationcentre/conf/locationcentre_10283137.crml has changed diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/data/locationcentrestub.sis Binary file locationcentre/data/locationcentrestub.sis has changed diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/group/bld.inf --- a/locationcentre/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: This file provides the information required for building the -* Location Centre sub-system -* -* -*/ - - -PRJ_EXPORTS -// Export Localization files -../loc/lc.loc APP_LAYER_LOC_EXPORT_PATH(lc.loc) - -// Export SIS File -../data/locationcentrestub.sis /epoc32/data/z/system/install/locationcentrestub.sis - -// Export IBY Files -// Core IBY Files -../rom/lc.iby CORE_APP_LAYER_IBY_EXPORT_PATH(lc.iby) - -// Language IBY Files -../rom/lc_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(lc_resources.iby) - -// Stub IBY Files -../rom/lcstub.iby CORE_APP_LAYER_IBY_EXPORT_PATH(lcstub.iby) - -// Export Configuration Markup language and Central Repository Mark up language files -../conf/locationcentre.confml APP_LAYER_CONFML(locationcentre.confml) -../conf/locationcentre_10283137.crml APP_LAYER_CRML(locationcentre_10283137.crml) - - -// Include Bld.infs - -// Location Centre Utilities -#include "../lcutils/group/bld.inf" - -// Location Centre Service Project -#include "../lcservice/group/bld.inf" - -// Location Centre Server Project -#include "../lcserver/group/bld.inf" - -// Location Centre Application -#include "../lcapp/group/bld.inf" - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/install/locationcentre.pkg --- a/locationcentre/install/locationcentre.pkg Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -; -; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -; All rights reserved. -; This component and the accompanying materials are made available -; under the terms of "Eclipse Public License v1.0" -; which accompanies this distribution, and is available -; at the URL "http://www.eclipse.org/legal/epl-v10.html". -; -; Initial Contributors: -; Nokia Corporation - initial contribution. -; -; Contributors: -; -; Description: Package file for Location Centre -; -; -; Installation file for Location Centre Application, Client, Server and Utils -; -;Languages -&EN -; -; UID is the app's UID -; -#{"Location Centre"},(0x10283138),1,0,0,TYPE=PU -; -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Supports Series 60 v 3.0 -;This line indicates that this installation is for the Series 60 platform v0.9 -;This line must appear _exactly_ as shown below in the sis file -;If this line is missing or incorrect, the sis file will not be able -;to be installed on Series 60 v3.0 platforms -[0x101F7961], 0, 0, 0, {"Series60ProductID"} -; -; - -; Location Centre Utils -"\epoc32\release\armv5\urel\lcutils.dll" - "!:\sys\bin\lcutils.dll" - -; Location Centre Client Library -"\epoc32\release\armv5\urel\lcservice.dll" - "!:\sys\bin\lcservice.dll" - -; Location Centre Server -"\epoc32\release\armv5\urel\lcserver.exe" - "!:\sys\bin\lcserver.exe" - -; Location Centre Application -"\epoc32\release\armv5\urel\lcapp.exe" - "!:\sys\bin\lcapp.exe" -"\epoc32\data\z\resource\apps\lcapp_aif.mif" - "!:\resource\apps\lcapp_aif.mif" -"\epoc32\data\z\resource\apps\lcapp.rsc" - "!:\resource\apps\lcapp.rsc" -"\epoc32\data\Z\private\10003a3f\apps\lcapp_reg.rsc" - "!:\private\10003a3f\import\apps\lcapp_reg.rsc" diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/install/locationcentrestub.pkg --- a/locationcentre/install/locationcentrestub.pkg Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -; -; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -; All rights reserved. -; This component and the accompanying materials are made available -; under the terms of "Eclipse Public License v1.0" -; which accompanies this distribution, and is available -; at the URL "http://www.eclipse.org/legal/epl-v10.html". -; -; Initial Contributors: -; Nokia Corporation - initial contribution. -; -; Contributors: -; -; Description: Package file for Location Centre Stub -; -; -; Installation file for Location Centre Application, Client, Server and Utils -; -;Languages -&EN -; -; UID is the app's UID -; -#{"Location Centre"},(0x10283138),1,0,0,TYPE=SA -; -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Supports Series 60 v 3.0 -;This line indicates that this installation is for the Series 60 platform v0.9 -;This line must appear _exactly_ as shown below in the sis file -;If this line is missing or incorrect, the sis file will not be able -;to be installed on Series 60 v3.0 platforms -;(0x101F7961), 0, 0, 0, {"Series60ProductID"} -; -; - -; Location Centre Utils -"" - "Z:\sys\bin\lcutils.dll" - -; Location Centre Client Library -"" - "Z:\sys\bin\lcservice.dll" - -; Location Centre Server -"" - "Z:\sys\bin\lcserver.exe" - -; Location Centre Application -"" - "Z:\sys\bin\lcapp.exe" -"" - "Z:\resource\apps\lcapp_aif.mif" -"" - "Z:\resource\apps\lcapp.rsc" -"" - "Z:\private\10003a3f\import\apps\lcapp_reg.rsc" diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/data/lcapp.rss --- a/locationcentre/lcapp/data/lcapp.rss Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,180 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Resource file defintion for project Location Centre Application -* -*/ - - -// RESOURCE IDENTIFIER -NAME LCAP // 4 letter ID - -// SYSTEM INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// USER INCLUDES -#include -#include "lcapp.hrh" - -// CONSTANT DEFINTIONS -#define LC_ICON_FILE_NAME APP_RESOURCE_DIR"\\lcapp_aif.mif" - -// RESOURCE DEFINITIONS - -// --------------------------------------------------------------------------- -// RESOURCE RSS_SIGNATURE -// --------------------------------------------------------------------------- -// -RESOURCE RSS_SIGNATURE - { - } - -// --------------------------------------------------------------------------- -// RESOURCE RSS_SIGNATURE -// --------------------------------------------------------------------------- -// -RESOURCE TBUF - { - buf="lcapp"; - } - -// --------------------------------------------------------------------------- -// RESOURCE RSS_SIGNATURE -// --------------------------------------------------------------------------- -// -RESOURCE EIK_APP_INFO - { - } - - -RESOURCE LOCALISABLE_APP_INFO r_lcapp_localisable_app_info - { - short_caption = qtn_apps_location_grid; - caption_and_icon = CAPTION_AND_ICON_INFO - { - caption = qtn_apps_location_list; - number_of_icons = 1; - icon_file = LC_ICON_FILE_NAME; - }; - } - -RESOURCE AVKON_VIEW r_lc_view - { - menubar = r_lc_menubar; - cba = r_lc_cba; - } - -RESOURCE MENU_BAR r_lc_menubar - { - titles= - { - MENU_TITLE - { - menu_pane = r_lc_menu; - txt = ""; - } - }; - } - -RESOURCE MENU_PANE r_lc_menu - { - items= - { - MENU_ITEM - { - command = ELcOpen; - txt = qtn_options_open; - flags = EEikMenuItemAction; - }, - MENU_ITEM - { - command = EAknCmdHelp; - txt = qtn_options_help; - }, - MENU_ITEM - { - command = EAknCmdExit; - txt = qtn_options_exit; - } - }; - } - -RESOURCE CBA r_lc_cba - { - flags = 0; - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - CBA_BUTTON - { - id = EAknSoftkeyExit; - txt = text_softkey_exit; - }, - CBA_BUTTON - { - id = ELcOpen; - txt = qtn_msk_open; - } - }; - } - -RESOURCE CBA r_lc_cba_empty - { - flags = 0; - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyOptions; - txt = text_softkey_option; - }, - CBA_BUTTON - { - id = EAknSoftkeyExit; - txt = text_softkey_exit; - }, - CBA_BUTTON - { - id = ELcCommandNone; - } - }; - } - -RESOURCE HOTKEYS r_lcapp_hotkeys - { - control= - { - }; - } - -RESOURCE LISTBOX r_lc_listbox - { - flags = EAknListBoxSelectionList; - } - -RESOURCE TBUF r_loc_title_centre - { - buf = qtn_loc_title_centre; - } diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/data/lcapp_reg.rss --- a/locationcentre/lcapp/data/lcapp_reg.rss Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Application registration information file for Location Centre -* Registration API test application. -* -*/ - - -// SYSTEM INCLUDES -#include -#include -#include - -// USER INCLUDES -#include "../inc/lcappuid.hrh" - -#define LC_RESOURCE_FILE_NAME APP_RESOURCE_DIR"\\lcapp" - -// --------------------------------------------------------------------------- -// UID Defintions -// --------------------------------------------------------------------------- -// -UID2 KUidAppRegistrationResourceFile -UID3 KLcAppUid - -// --------------------------------------------------------------------------- -// Application Information registration resource -// --------------------------------------------------------------------------- -// -RESOURCE APP_REGISTRATION_INFO - { - app_file = "lcapp"; - localisable_resource_file = LC_RESOURCE_FILE_NAME; - localisable_resource_id = R_LCAPP_LOCALISABLE_APP_INFO; - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/group/bld.inf --- a/locationcentre/lcapp/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Build information file for project Location Centre Application -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -// Location Centre Application Project defintion file. -lcapp.mmp - -PRJ_TESTMMPFILES - -PRJ_EXTENSIONS -START EXTENSION s60/mifconv -OPTION TARGETFILE lcapp_aif.mif -OPTION SOURCES -c32 qgn_menu_location.svg -END - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/group/lcapp.mmp --- a/locationcentre/lcapp/group/lcapp.mmp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Project definition file for project Location Centre Application -* -*/ - - -// SYSTEM INCLUDES -#include // For the MW_LAYER_SYSTEMINCLUDE -#include - -// USER INCLUDES -#include "../inc/lcappuid.hrh" - -TARGET lcapp.exe -TARGETTYPE exe -UID 0x100039ce KLcAppUid - -VERSION 1.0 - -VENDORID VID_DEFAULT -CAPABILITY CAP_APPLICATION - -SOURCEPATH ../src -SOURCE lcapp.cpp -SOURCE lcdocument.cpp -SOURCE lcappui.cpp -SOURCE lccontainer.cpp -SOURCE lcview.cpp -SOURCE lclistboxmodel.cpp - -SOURCEPATH ../data -START RESOURCE lcapp.rss -HEADER -TARGETPATH APP_RESOURCE_DIR -LANGUAGE_IDS -END - -START RESOURCE lcapp_reg.rss -DEPENDS lcapp.rsg -TARGETPATH /private/10003a3f/apps -END - -USERINCLUDE ../inc -USERINCLUDE ../../inc -USERINCLUDE ../../../inc -USERINCLUDE ../../../../inc - -APP_LAYER_SYSTEMINCLUDE - -LIBRARY featmgr.lib -LIBRARY euser.lib -LIBRARY apparc.lib -LIBRARY cone.lib -LIBRARY eikcore.lib -LIBRARY avkon.lib -LIBRARY bafl.lib -LIBRARY eikcoctl.lib -LIBRARY efsrv.lib -LIBRARY lcservice.lib -LIBRARY eikctl.lib -LIBRARY egul.lib -LIBRARY fbscli.lib -LIBRARY estor.lib -LIBRARY commonengine.lib -LIBRARY aknskins.lib -LIBRARY aknskinsrv.lib -LIBRARY aknswallpaperutils.lib -LIBRARY hlplch.lib -LIBRARY aknicon.lib - - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/inc/lcapp.h --- a/locationcentre/lcapp/inc/lcapp.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Application class for Location Centre Application. -* -*/ - - -#ifndef C_LCAPP_H -#define C_LCAPP_H - -// SYSTEM INCLUDES -#include - -/** - * Location Centre Application's App class. This class extents the CAknApplication - * class for Location Centre. - * - * @lib lcapp.exe - * @since S60 v5.0 - */ -class CLcApp : public CAknApplication - { -private: // Inherited from Base classes - /** - * Inherited from CAknApplication - */ - CApaDocument* CreateDocumentL(); - - /** - * Inherited from CAknApplication - */ - TUid AppDllUid() const; - }; - -#endif // C_LCAPP_H - -// End of File - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/inc/lcapp.hrh --- a/locationcentre/lcapp/inc/lcapp.hrh Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Eumeration commands Location Centre Application. -* -*/ - - -/** - * Location Centre Command for opening the currently selected element - */ -enum TLcCommands - { - ELcCommandNone = 0x6000, - ELcOpen - }; - - - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/inc/lcappui.h --- a/locationcentre/lcapp/inc/lcappui.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Application class for Location Centre Application UI. -* -*/ - - -#ifndef C_LCAPPUI_H -#define C_LCAPPUI_H - -// SYSTEM INCLUDES -#include -#include -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class CLcView; -class CLcService; -class CLcListBoxModel; - -/** - * Location Centre Application Event Handler. - * - * @since v5.0 - */ -class MLcEventHandler - { -public: - /** - * Abstract function which is implemented by the Location Centre Event handler. - * The implmentation must handle the event specified by the Event type. - * - * @param[in] aEvent, Event Type. - */ - virtual void HandleEventL( TInt aEvent ) = 0; - }; - -/** - * Location Centre Application's App UI class. This class extents the CAknAppUi - * class for Location Centre. - * - * @since S60 v5.0 - */ -class CLcAppUi : public CAknViewAppUi, - public MLcNotification, - public MLcEventHandler - { -public: - /** - * Second phase of the two phase constructor - * - * Called by the Application framework - */ - void ConstructL(); - - /** - * Virtual destructor - */ - virtual ~CLcAppUi(); - -public: // Inherited from Base classes - - /** - * Inherited from CAknViewAppUi - */ - void HandleCommandL(TInt aCommand); - - /** - * Inherited from MLcNotification - */ - void LcStatusChangedL( TInt aErrorCode ); - - /** - * Inherited from MLcEventHandler - */ - void HandleEventL( TInt aEvent ); - -private: // Inherited from Base classes - - /** - * Inherited from CAknViewAppUi - */ - virtual TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ); - -private: - /** - * Location Centre Application's view class - */ - CLcView* iLcView; - - /** - * Location Centre API interface object - * - * Owns - */ - CLcService* iLcService; - - /** - * Location Centre list box model - * - * Owns - */ - CLcListBoxModel* iListBoxModel; - }; - -#endif // C_LCAPPUI_H - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/inc/lcappuid.hrh --- a/locationcentre/lcapp/inc/lcappuid.hrh Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: UID Defintions for Location Centre Application. -* -*/ - - -#ifndef LCAPPUID_HRH -#define LCAPPUID_HRH - -/** - * Application UID Definitions for Location Centre Application - */ -#define KLcAppUid 0x10283139 - -#endif //LCAPPUID_HRH diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/inc/lccontainer.h --- a/locationcentre/lcapp/inc/lccontainer.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Container class for Location Centre Application UI. -* -*/ - - -#ifndef C_LCCONTAINER_H -#define C_LCCONTAINER_H - -// SYSTEM INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class CLcAppUi; -class CLcListBoxModel; -class CAknSingleLargeStyleListBox; -class MLcEventHandler; - -/** - * Location Centre Application's Container class. This class is the chief - * windowing component of Location Centre which displays the List of - * Location based Applications and Contents/Services - * - * @lib lcapp.exe - * @since S60 v5.0 - */ -class CLcContainer : public CCoeControl, - public MEikListBoxObserver - { -public: - /** - * Static Two phase constructor - * - * @param[in] aRect, Client Rectangle for this window owning control. - * @param[in] aEventHandler, Location Centre Event Handle. - * @param[in] aListBoxModel, List box model. - */ - static CLcContainer* NewL( const TRect& aRect, - MLcEventHandler& aEventHandler, - CLcListBoxModel& aListBoxModel ); - - /** - * Virtual destructor - */ - ~CLcContainer(); - - /** - * Returns the help context - * - * @param aContext The help context that has to be determined - */ - void GetHelpContext( TCoeHelpContext& aContext ) const; - - /** - * Returns the Selected List box item - * - * @return TInt Index corresponding selected List box item. - */ - TInt GetFocussedItem(); - - /** - * Updates the Container object with a new list of Location based Applications - * and Contents/Services. - * - * @param[in] aListBoxModel, New List box model object. - */ - void UpdateL( CLcListBoxModel& aListBoxModel ); - - /** - * Updates the listbox icons for Location Centre List Box. - */ - void UpdateIconsL(); - -protected: // Inherited from Base classes - - /** - * Inherited from CCoeControl - */ - void SizeChanged(); - - /** - * Inherited from CCoeControl - */ - TInt CountComponentControls() const; - - /** - * Inherited from CCoeControl - */ - CCoeControl* ComponentControl( TInt aIndex ) const; - - /** - * Inherited from CCoeControl - */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ); - - /** - * Inherited from CCoeControl - */ - void HandleResourceChange( TInt aType ); - - /** - * Inherited from MEikListBoxObserver - */ - void HandleListBoxEventL( CEikListBox* aListBox, - TListBoxEvent aEventType ); - - /** - * Handles Focus Change to list - */ - void FocusChanged( TDrawNow aDrawNow ); - -private: - - /** - * C++ Default constructor - */ - CLcContainer( MLcEventHandler& aEventHandler, - CLcListBoxModel& aListBoxModel ); - - /** - * Second phase of the two phase constructor - */ - void ConstructL( const TRect& aRect ); - - /** - * Sets the Title text - * @param aResourceText Resource to create title - */ - void MakeTitleL( TInt aResourceText ); - - /** - * Creates the List box and List box model. - */ - void CreateListboxL(); - -public: - /** - * List box - * Owns - */ - CAknSingleLargeStyleListBox* iListBox; - - /** - * Help context - */ - TCoeContextName iContextName; - - /** - * Location Centre Event handler - */ - MLcEventHandler& iEventHandler; - - /** - * Location Centre list box model - */ - CLcListBoxModel* iListBoxModel; - }; - -#endif // C_LCCONTAINER_H - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/inc/lcdocument.h --- a/locationcentre/lcapp/inc/lcdocument.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Document class for Location Centre Application UI. -* -*/ - - -#ifndef C_LCDOCUMENT_H -#define C_LCDOCUMENT_H - -// SYSTEM INCLUDES -#include - -// FORWARD DECLARATIONS -class CEikAppUi; - -/** - * Location Centre Application's document class. - * - * @lib lcapp.exe - * @since S60 v5.0 - */ -class CLcDocument : public CAknDocument - { -public: - /** - * Static Two phase constructor - */ - static CLcDocument* NewL( CEikApplication& aApp ); - - /** - * Virtual destructor - */ - virtual ~CLcDocument(); - -private: - /** - * C++ Default constructor - */ - CLcDocument( CEikApplication& aApp ); - - /** - * Second phase of the two phase constructor - */ - void ConstructL(); - -private: // Inherited from Base class - - /** - * Inherited from CAknDocument - */ - CEikAppUi* CreateAppUiL(); - }; - -#endif // C_LCDOCUMENT_H - -// End of File - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/inc/lclistbox.h --- a/locationcentre/lcapp/inc/lclistbox.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 box defintion for Location System UI -* -*/ - - -#ifndef C_LCLISTBOX_H -#define C_LCLISTBOX_H - -// SYSTEM INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class CLcLocationAppInfoArray; -class CLcListBoxModel; - -/** - * List box for Location Centre - * - * This class specializes the CAknSingleLargeStyleListBox class for Location - * Centre. This class takes the ownership of the listbox model and exposes - * functions for updation of the list. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -class CLcListBox : public CAknSingleLargeStyleListBox - { -public: - /** - * Constructs a new instance of Location Centre list box. - * - * @param[in] aAppArray Array of Location based Applicaions and Contents/Services - * The ownership of the array is transferred. - * @param[in] aParent Parent Window. - * @return The new instance of Location Centre listbox object. - * @leave System wide error code if the object creation fails. - */ - static CLcListBox* NewL( - CLcLocationAppInfoArray* aAppArray, - const CCoeControl* aParent, - MEikListBoxObserver* aObserver ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre listbox object. - */ - virtual ~CLcListBox(); - - /** - * Updates the list box contents. This function deletes the previous instance - * of the Location based Applications and Contents/Services application - * information and replaces it with this new list. - * - * @param[in] aAppArray Array of Location based Applicaions and Contents/Services - * The ownership of the array is transferred. - */ - void UpdateListBoxContentsL( CLcLocationAppInfoArray* aAppArray ); - -private: - /** - * Overloaded constructor - */ - CLcListBox(); - - /** - * Second phase of the two phase constructor - */ - void ConstructL( CLcLocationAppInfoArray* aAppArray, - const CCoeControl* aParent, - MEikListBoxObserver* aObserver ); - - /** - * Updates the Location Centre List-box's Icons array to point to the - * latest set of icons. - */ - void UpdateIconsL(); - -private: // data - /** - * Listbox model - * - * Owns - */ - CLcListBoxModel* iListBoxModel; - }; - -#endif // C_LCLISTBOX_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/inc/lclistboxmodel.h --- a/locationcentre/lcapp/inc/lclistboxmodel.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 box model for the list-box used to display the Location -* Centre pop-up and the list in Location Centre Application. -* -*/ - - -#ifndef C_LCLISTBOXMODEL_H -#define C_LCLISTBOXMODEL_H - -// SYSTEM INCLUDES -#include -#include // MDesCArray - -// FORWARD DECLARATIONS -class CLcLocationAppInfoArray; -class CLcListBoxModel; - -/** - * List box model for Location Centre - * - * This class provides the implementation of the list-box model for Location - * Centre lists. Currently this is used in both the Location Centre pop-up - * and in Location Centre Application. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -class CLcListBoxModel : public CBase, - public MDesCArray - { -public: - /** - * Constructs a new instance of Location Centre list box model. - * - * @param[in] aAppArray Array of Location based Applicaions and Contents/Services - * The ownership of the array is transferred. - * @return The new instance of Location Centre model object. - * @leave System wide error code if the object creation fails. - */ - static CLcListBoxModel* NewL( CLcLocationAppInfoArray* aAppArray ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * model object. - */ - virtual ~CLcListBoxModel(); - - /** - * Updates the Listbox model with a new Array of Location based Applications - * and Contents/Services. - * - * @param[in] aAppArray Array of Location based Applicaions and Contents/Services - * The ownership of the array is transferred. - */ - void UpdateModel( CLcLocationAppInfoArray* aAppArray ); - - /** - * Accessor method for retrieving the Application Information array. - * - * @return CLcLocationAppInfoArray, Reference to the existing Application - * Information array. - */ - CLcLocationAppInfoArray& AppArray(); - - /** - * Returns the Application's Identifer corresponding to the index passed. - * - * @param[in] aIndex, Index of the Location Application whose Identifier - * is requested. - */ - TPtrC AppInfoId( TInt aIndex ) const; - -public: // Inherited from Base classes - /** - * Inherited from MDesCArray - */ - virtual TInt MdcaCount() const; - - /** - * Inherited from MDesCArray - */ - virtual TPtrC16 MdcaPoint( TInt aIndex ) const; - -private: - /** - * Overloaded constructor - */ - CLcListBoxModel( CLcLocationAppInfoArray* aAppArray ); - - /** - * Second phase of the two phase constructor - */ - void ConstructL(); - -private: // data - - /** - * Buffer for packing the MdcaPoint - * - * Owns - */ - HBufC16* iBuffer; - - /** - * Application Information Array - */ - CLcLocationAppInfoArray* iAppArray; - }; - -#endif // C_LCLISTBOXMODEL_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/inc/lcview.h --- a/locationcentre/lcapp/inc/lcview.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: View class for Location Centre Application UI. -* -*/ - - -#ifndef C_LCAPPVIEW_H_ -#define C_LCAPPVIEW_H_ - -// SYSTEM INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class CLcContainer; -class MLcEventHandler; -class CLcListBoxModel; - -/** - * Location Centre Application's View class. - * - * @lib lcapp.exe - * @since S60 v5.0 - */ -class CLcView : public CAknView - { -public: - /** - * Static Two phase constructor - * - * @param[in] aEventHandler, Location Centre Event Handle. - * @param[in] aListBoxModel, List box model. - * @return CLcView*, Pointer to the newly created object. - */ - static CLcView* NewL( MLcEventHandler& aEventHandler, - CLcListBoxModel& aListBoxModel ); - - /** - * Static Two phase constructor. - * Leaves the created instance on the Cleanup Stack. - * - * @param[in] aEventHandler, Location Centre Event Handle. - * @param[in] aListBoxModel, List box model. - * @return CLcView*, Pointer to the newly created object. - */ - static CLcView* NewLC( MLcEventHandler& aEventHandler, - CLcListBoxModel& aListBoxModel ); - - /** - * C++ Destructor. - */ - virtual ~CLcView (); - - /** - * Handles the event generated when the Screen size is changed when - * this View is being displayed. - */ - void ScreenSizeChanged(); - - /** - * Updates the View object with a new list of Location based Applications - * and Contents/Services. - * - * @param[in] aListBoxModel, New List box model object. - */ - void UpdateL( CLcListBoxModel& aListBoxModel ); - - /** - * Updates the listbox icons for Location Centre List Box. - */ - void UpdateIconsL(); - - /** - * Returns the Selected List box item - * - * @return TInt Index corresponding selected List box item. - */ - TInt GetFocussedItem(); - -public: // Inherited from Base classes - - /** - * Inherited from CAknView - */ - void DoActivateL( const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage ); - - /** - * Inherited from CAknView - */ - void DoDeactivate(); - - /** - * Inherited from CAknView - */ - TUid Id() const; - - /** - * Inherited from CAknView - */ - void HandleCommandL(TInt aCommand); - - /** - * Inherited from CAknView - */ - void DynInitMenuPaneL( TInt aResourceId, - CEikMenuPane* aMenuPane ); - -private: - /** - * Overloaded C++ Contructor. - */ - CLcView( MLcEventHandler& aEventHandler, - CLcListBoxModel& aListBoxModel ); - - /** - * Second phase of the two phase constructor. - */ - void ConstructL(); - - /** - * Handles the visbility of the S60 Help feature. - * - * @param aMenuPane, Menu pane object on which the Help feature must - * be evaluated. - */ - void HandleHelpFeature( CEikMenuPane& aMenuPane ) const; - -private: - /** - * Location Centre Container. - * Owns. - */ - CLcContainer* iContainer; - - /** - * Location Centre Event Handler. - * Reference. - */ - MLcEventHandler& iEventHandler; - - /** - * Location Centre Listbox model. - * Reference. - */ - CLcListBoxModel* iListBoxModel; - - }; - -#endif // C_LCAPPVIEW_H_ - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/src/lcapp.cpp --- a/locationcentre/lcapp/src/lcapp.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: App class for Location Centre Application UI. -* -*/ - - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcapp.h" -#include "lcdocument.h" -#include "lcappuid.hrh" - -// ------------------------ Local Functions ---------------------------------- - -// --------------------------------------------------------------------------- -// CApaApplication* NewApplication -// --------------------------------------------------------------------------- -// -LOCAL_C CApaApplication* NewApplication() - { - return new CLcApp; - } - -// ----------------- Member funtions for CLcApp ------------------------------ - -// --------------------------------------------------------------------------- -// TUid CLcApp::AppDllUid -// --------------------------------------------------------------------------- -// -TUid CLcApp::AppDllUid() const - { - return TUid::Uid( KLcAppUid ); - } - -// --------------------------------------------------------------------------- -// CApaDocument* CLcApp::CreateDocumentL -// --------------------------------------------------------------------------- -// -CApaDocument* CLcApp::CreateDocumentL() - { - return CLcDocument::NewL( *this ); - } - -// ------------------------ Global Functions ---------------------------------- - -// --------------------------------------------------------------------------- -// TInt E32Main -// --------------------------------------------------------------------------- -// -GLDEF_C TInt E32Main() - { - return EikStart::RunApplication( NewApplication ); - } - -// End of File - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/src/lcappui.cpp --- a/locationcentre/lcapp/src/lcappui.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,186 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Application class for Location Centre Application UI. -* -*/ - - -// SYSTEM FILES -#include -#include -#include -#include -#include -#include -#include - -// USER INCLUDES -#include "lcappui.h" -#include "lcapp.hrh" -#include "lcview.h" -#include "lclistboxmodel.h" - -// ----------------- Member funtions for CLcApp ------------------------------ - -// --------------------------------------------------------------------------- -// void CLcAppUi::ConstructL -// --------------------------------------------------------------------------- -// -void CLcAppUi::ConstructL() - { - BaseConstructL( EAknEnableSkin | EAknEnableMSK |EAknSingleClickCompatible ); - - // Create the Service class - iLcService = CLcService::NewL(); - iLcService->SetObserverL( *this ); - - // Handle condition where the function leaves with KErrNotFound - // Create the Listbox Model - - CLcLocationAppInfoArray* appInfoArray = NULL; - TRAPD( error, appInfoArray = iLcService->GetLocationApplicationsL()); - if ( KErrNotFound == error || KErrNone == error ) - { - CleanupStack::PushL( appInfoArray ); - // The ownership of the array is transferred. - iListBoxModel = CLcListBoxModel::NewL( appInfoArray ); - CleanupStack::Pop( appInfoArray ); - } - else - { - // Not handling other error conditions. So better let others handle it. - User::Leave( error ); - } - - // Create the View object and add it to the View stack - CLcView* lcView = CLcView::NewL( *this, *iListBoxModel ); - CleanupStack::PushL( lcView ); - AddViewL( lcView ); - CleanupStack::Pop( lcView ); - iLcView = lcView; - } - -// --------------------------------------------------------------------------- -// CLcAppUi::~CLcAppUi -// --------------------------------------------------------------------------- -// -CLcAppUi::~CLcAppUi() - { - // Delete the Service class - delete iLcService; - - // Delete the Model - delete iListBoxModel; - } - -// --------------------------------------------------------------------------- -// TKeyResponse CLcAppUi::HandleKeyEventL -// --------------------------------------------------------------------------- -// -TKeyResponse CLcAppUi::HandleKeyEventL( const TKeyEvent& /*aKeyEvent*/, - TEventCode /*aType*/ ) - { - return EKeyWasNotConsumed; - } - -// --------------------------------------------------------------------------- -// void CLcAppUi::HandleCommandL -// --------------------------------------------------------------------------- -// -void CLcAppUi::HandleCommandL( TInt aCommand ) - { - switch ( aCommand ) - { - case EAknSoftkeyExit: - case EEikCmdExit: - { - Exit(); - break; - } - case ELcOpen: - { - HandleEventL( ELcOpen ); - break; - } - default: - { - break; - } - } - } - -// --------------------------------------------------------------------------- -// void CLcAppUi::LcStatusChangedL -// --------------------------------------------------------------------------- -// -void CLcAppUi::LcStatusChangedL( TInt aErrorCode ) - { - // Update the listbox only if its a valid update. - if ( KErrNone == aErrorCode ) - { - // There has been a change in Location Centre's registry. We have to - // update the list of Applications - - CLcLocationAppInfoArray* appInfoArray = NULL; - TRAPD( error, appInfoArray = iLcService->GetLocationApplicationsL()); - if ( KErrNotFound == error || KErrNone == error ) - { - // The ownership of the new array is transferred. - iListBoxModel->UpdateModel( appInfoArray ); - iLcView->UpdateL( *iListBoxModel ); - } - else - { - // Not handling other error conditions. So better let others handle it. - User::Leave( error ); - } - } - } - -// --------------------------------------------------------------------------- -// void CLcAppUi::HandleEventL -// --------------------------------------------------------------------------- -// -void CLcAppUi::HandleEventL( TInt aEvent ) - { - switch( aEvent ) - { - case KEikDynamicLayoutVariantSwitch: - { - // Request the Client container to change its rect to a new Rect - iLcView->ScreenSizeChanged(); - break; - } - case KAknsMessageSkinChange: - { - iLcView->UpdateIconsL(); - break; - } - case ELcOpen: - { - // Obtain the Identifier corresponding to the Selected Item - TInt selectedItem = iLcView->GetFocussedItem(); - if ( selectedItem >= 0 && selectedItem < iListBoxModel->MdcaCount()) - { - TRAP_IGNORE( iLcService-> - LaunchLocationApplicationL( iListBoxModel->AppInfoId( selectedItem ))); - } - break; - } - default: - break; - } - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/src/lccontainer.cpp --- a/locationcentre/lcapp/src/lccontainer.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,379 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Container class for Location Centre Application UI. -* -*/ - - -// SYSTEM INCLUDES -#include -#include -#include -#include -#include // Icon Array -#include // Column Listbox -#include // Gul Icon -#include // TResourceReader -#include -#include -#include -#include // Status pane -#include // CAknTitlePane -#include - -// USER INCLUDES -#include "lccontainer.h" -#include "lcappui.h" -#include "lclistboxmodel.h" -#include "lcappuid.hrh" -#include "lcapp.hrh" - -// CONSTANT DEFINITIONS -const TInt KLcNoOfElements = 1; -const TInt KMinSelectedItemNumber = 0; -const TInt KViewListboxGranularity = 3; // The number of default Applications - -// ----------------- Member funtions for CLcContainer class ------------------ - -// --------------------------------------------------------------------------- -// CLcContainer::CLcContainer -// --------------------------------------------------------------------------- -// -CLcContainer::CLcContainer( MLcEventHandler& aEventHandler, - CLcListBoxModel& aListBoxModel ) - :iEventHandler( aEventHandler ), - iListBoxModel( &aListBoxModel ) - { - } - - -// --------------------------------------------------------------------------- -// CLcContainer::~CLcContainer -// --------------------------------------------------------------------------- -// -CLcContainer::~CLcContainer() - { - // Delete the List box - delete iListBox; - } - -// --------------------------------------------------------------------------- -// CLcContainer::NewL -// --------------------------------------------------------------------------- -// -CLcContainer* CLcContainer::NewL( const TRect& aRect, - MLcEventHandler& aEventHandler, - CLcListBoxModel& aListBoxModel ) - { - CLcContainer* self = new (ELeave) CLcContainer( aEventHandler, aListBoxModel ); - CleanupStack::PushL( self ); - self->ConstructL( aRect ); - CleanupStack::Pop(); - - return self; - } - -// --------------------------------------------------------------------------- -// CLcContainer::CLcContainer -// --------------------------------------------------------------------------- -// -void CLcContainer::ConstructL( const TRect& aRect ) - { - // This is the cheif control for this application. This has to be made a - // Window owning control - CreateWindowL(); - - // Create a New Title for the View - MakeTitleL( R_LOC_TITLE_CENTRE ); - - // Create the List box - CreateListboxL(); - - // Get the Help context - iContextName = KLOC_HLP_LOC_CENTRE(); - - SetRect(aRect); - ActivateL(); - } - -// --------------------------------------------------------------------------- -// void CLcContainer::GetHelpContext -// --------------------------------------------------------------------------- -// -void CLcContainer::GetHelpContext( TCoeHelpContext& aContext ) const - { - aContext.iContext = iContextName; - aContext.iMajor = TUid::Uid( KLcAppUid ); - } - -// --------------------------------------------------------------------------- -// TInt CLcContainer::GetFocussedItem -// --------------------------------------------------------------------------- -// -TInt CLcContainer::GetFocussedItem() - { - // No need to check for the List box. - return iListBox->CurrentItemIndex(); - } - -// --------------------------------------------------------------------------- -// void CLcContainer::UpdateL -// --------------------------------------------------------------------------- -// -void CLcContainer::UpdateL( CLcListBoxModel& aListBoxModel ) - { - TBool itemRemoved = EFalse; - - if ( aListBoxModel.MdcaCount() < iListBoxModel->MdcaCount() ) - { - itemRemoved = ETrue; - } - - // Assign the latest list box model - iListBoxModel = &aListBoxModel; - - // If there is a list box update it. - if ( iListBox ) - { - // First we have to update the Icons Array - UpdateIconsL(); - - if ( itemRemoved ) - { - iListBox->HandleItemRemovalL(); - } - else - { - iListBox->HandleItemAdditionL(); - } - - // Set the last element as the Selected element if the element has been - // removed. - TInt currentItem = iListBox->CurrentItemIndex(); - MDesCArray* array = iListBox->Model()->ItemTextArray(); - if( KErrNotFound == currentItem || currentItem >= array->MdcaCount() ) - { - TInt newSelected = array->MdcaCount() - 1; - if( newSelected >= KMinSelectedItemNumber ) - { - iListBox->SetCurrentItemIndex( newSelected ); - } - } - } - - // Update the List box. - DrawDeferred(); - } - -// --------------------------------------------------------------------------- -// void CLcContainer::UpdateIconsL -// --------------------------------------------------------------------------- -// -void CLcContainer::UpdateIconsL() - { - // Update the Icons only if there are any elements the List box - if ( iListBoxModel->MdcaCount()) - { - // Create a new Icons Array - CAknIconArray* icons = new( ELeave ) CAknIconArray( KViewListboxGranularity ); - CleanupStack::PushL( icons ); - - CLcLocationAppInfoArray& appArray( iListBoxModel->AppArray()); - TInt count = appArray.Count(); - // Add All the icons to the Icons array - for ( TInt i = 0; i < count; i++ ) - { - icons->AppendL( appArray[i].IconL() ); - } - - // Get old icons and delete those. This is done because SetIconArray will - // not do it. - CAknIconArray* oldIcons = - static_cast( iListBox->ItemDrawer()->ColumnData()->IconArray()); - - delete oldIcons; - - //Set New Icons to array - iListBox->ItemDrawer()->ColumnData()->SetIconArray( icons ); - CleanupStack::Pop(icons); - } - } - -// --------------------------------------------------------------------------- -// void CLcContainer::SizeChanged -// --------------------------------------------------------------------------- -// -void CLcContainer::SizeChanged() - { - if ( iListBox ) - { - iListBox->SetRect( Rect()); - } - } - -// --------------------------------------------------------------------------- -// TInt CLcContainer::CountComponentControls -// --------------------------------------------------------------------------- -// -TInt CLcContainer::CountComponentControls() const - { - return KLcNoOfElements; - } - -// --------------------------------------------------------------------------- -// CCoeControl* CLcContainer::CLcContainer -// --------------------------------------------------------------------------- -// -CCoeControl* CLcContainer::ComponentControl(TInt /* aIndex*/ ) const - { - return iListBox; - } - -// --------------------------------------------------------------------------- -// TKeyResponse CLcContainer::OfferKeyEventL -// --------------------------------------------------------------------------- -// -TKeyResponse CLcContainer::OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - switch ( aKeyEvent.iCode ) - { - case EKeyLeftArrow: - case EKeyRightArrow: - { - // No action in this application for the Right arrow and left - // arrow. - return EKeyWasNotConsumed; - } - default: - { - break; - } - } - // Now it's List box's job to process the key event - return iListBox->OfferKeyEventL( aKeyEvent, aType ); - } - -// --------------------------------------------------------------------------- -// void CLcContainer::HandleResourceChange -// --------------------------------------------------------------------------- -// -void CLcContainer::HandleResourceChange( TInt aType ) - { - // Pass the event to the base class - CCoeControl::HandleResourceChange( aType ); - - switch( aType ) - { - // Dynamic Layout switch and Skin Change - case KEikDynamicLayoutVariantSwitch: - case KAknsMessageSkinChange: - { - // The Command Handler needs to handle this event. TRAP_IGNORE - // the error incase it occurs - TRAP_IGNORE( iEventHandler.HandleEventL( aType )); - break; - } - default: - { - break; - } - } - } - -// --------------------------------------------------------------------------- -// void CLcContainer::HandleListBoxEventL -// --------------------------------------------------------------------------- -// -void CLcContainer::HandleListBoxEventL( CEikListBox* /* aListBox */, - TListBoxEvent aEventType ) - { - switch (aEventType) - { - // List box Item Selection - case EEventEnterKeyPressed: - case EEventItemSingleClicked: - { - // A Location based Application or Content/Service has been - // selected. This element has to be returned back to the Command - // Hanlder inorder to enable it to take appropriate action. - iEventHandler.HandleEventL( ELcOpen ); - break; - } - default: - break; - } - } - -// --------------------------------------------------------------------------- -// void CLcContainer::FocusChanged -// --------------------------------------------------------------------------- -// -void CLcContainer::FocusChanged( TDrawNow aDrawNow ) - { - CCoeControl::FocusChanged( aDrawNow ); - - // The focus event has to be explicitly handed over to all the compound - // controls since CCoeControl does not do that implicitly - iListBox->SetFocus( IsFocused(), aDrawNow ); - } - -// --------------------------------------------------------------------------- -// void CLcContainer::MakeTitleL -// Sets the Title text -// -// @param aResourceText Resource to create title -// --------------------------------------------------------------------------- -// -void CLcContainer::MakeTitleL( TInt aResourceText ) - { - CEikStatusPane* statusPane = - static_cast( iEikonEnv->AppUiFactory()->StatusPane()); - // Obtain the title from the Status Pane - CAknTitlePane* title = static_cast( statusPane-> - ControlL( TUid::Uid( EEikStatusPaneUidTitle ))); - - // Set the Title's buffer - HBufC* buf = StringLoader::LoadL( aResourceText ); - title->SetText( buf ); // Takes ownership of buf - } - -// --------------------------------------------------------------------------- -// void CLcContainer::CreateListboxL -// --------------------------------------------------------------------------- -// -void CLcContainer::CreateListboxL() - { - // Create the List box - iListBox = new ( ELeave ) CAknSingleLargeStyleListBox; - iListBox->ConstructL( this, EAknListBoxSelectionList ); - iListBox->SetContainerWindowL( *this ); - iListBox->SetListBoxObserver( this ); - iListBox->CreateScrollBarFrameL(ETrue); - iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto ); - - UpdateIconsL(); - - // The ownership of the List box model is retained with the Container. - // This is needed because the model is used to return the identifier of the - // Location based Application or Content/Service when its selected. - iListBox->Model()->SetItemTextArray( iListBoxModel ); - iListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue ); - - iListBox->ActivateL(); - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/src/lcdocument.cpp --- a/locationcentre/lcapp/src/lcdocument.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Document class for Location Centre Application UI. -* -*/ - - -// INCLUDE FILES -#include "lcdocument.h" -#include "lcappui.h" - -// ----------------- Member funtions for CLcDocument class ------------------ - -// --------------------------------------------------------------------------- -// CLcDocument::CLcDocument -// --------------------------------------------------------------------------- -// -CLcDocument::CLcDocument( CEikApplication& aApp ) - :CAknDocument( aApp ) - { - } - -// --------------------------------------------------------------------------- -// CLcDocument::~CLcDocument -// --------------------------------------------------------------------------- -// -CLcDocument::~CLcDocument() - { - } - -// --------------------------------------------------------------------------- -// CLcDocument* CLcDocument::NewL -// --------------------------------------------------------------------------- -// -CLcDocument* CLcDocument::NewL( CEikApplication& aApp ) - { - CLcDocument* self = new (ELeave) CLcDocument( aApp ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - -// --------------------------------------------------------------------------- -// CLcDocument::ConstructL -// --------------------------------------------------------------------------- -// -void CLcDocument::ConstructL() - { - } - -// --------------------------------------------------------------------------- -// CLcDocument::CLcDocument -// --------------------------------------------------------------------------- -// -CEikAppUi* CLcDocument::CreateAppUiL() - { - return new (ELeave) CLcAppUi; - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/src/lclistbox.cpp --- a/locationcentre/lcapp/src/lclistbox.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,165 +0,0 @@ -/* -* Copyright (c) Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 box defintion for Location System UI -* -*/ - - -// SYSTEM INCLUDES -#include -#include -#include - -// USER INCLUDES -#include "lclistbox.h" -#include "lclistboxmodel.h" -#include "lclocationappinfo.h" - -// CONSTANT DEFINTION -const TInt KLcViewListboxGranularity = 2; - - -// ========================= MEMBER FUNCTIONS ================================ - -// --------------------------------------------------------------------------- -// CLcListBox::CLcListBox -// --------------------------------------------------------------------------- -// -CLcListBox::CLcListBox() - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcListBox::~CLcListBox -// --------------------------------------------------------------------------- -// -CLcListBox::~CLcListBox() - { - // C++ Destructor. Free all resources associated with this class. - - // Delete the listbox model - delete iListBoxModel; - } - -// --------------------------------------------------------------------------- -// void CLcListBox::ConstructL -// --------------------------------------------------------------------------- -// -void CLcListBox::ConstructL( CLcLocationAppInfoArray* aAppArray, - const CCoeControl* aParent, - MEikListBoxObserver* aObserver ) - { - // Create the List box model using the Application Info array - iListBoxModel = CLcListBoxModel::NewL( aAppArray ); - - // Call the base class constructor - CAknSingleLargeStyleListBox::ConstructL( aParent, EAknListBoxSelectionList ); - - // If the parent window has been set, the set it as the Container window - if ( aParent ) - { - SetContainerWindowL( *aParent ); - } - // If the list box observer has been set then set ot to the list box - if ( aObserver ) - { - SetListBoxObserver( aObserver ); - } - CreateScrollBarFrameL( ETrue ); - - ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto ); - - // The ownership of the list box model is retained with the Container. - // This is because the model contains the additional functionality of - // changing the settings values in addition to retreiving it. - Model()->SetItemTextArray( iListBoxModel ); - Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - - UpdateIconsL(); - // ItemDrawer()->ColumnData()->SetIconArray( NULL ); - ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue ); - - } - -// --------------------------------------------------------------------------- -// CLcListBox* CLcListBox::NewL -// --------------------------------------------------------------------------- -// -CLcListBox* CLcListBox::NewL( - CLcLocationAppInfoArray* aAppArray, - const CCoeControl* aParent, - MEikListBoxObserver* aObserver ) - { - CLcListBox* self = new ( ELeave ) CLcListBox; - CleanupStack::PushL( self ); - self->ConstructL( aAppArray, aParent, aObserver ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcListBox::UpdateListBoxContents -// --------------------------------------------------------------------------- -// -void CLcListBox::UpdateListBoxContentsL( - CLcLocationAppInfoArray* aAppArray ) - { - // This function transfers the ownership of the Application information - // array. So first we have to delete the existing array and then we can - iListBoxModel->UpdateListBoxContents( aAppArray ); - - UpdateIconsL(); - } - -// ----------------------------------------------------------------------------- -// CLocPsySettingsContainer::UpdateIconsL -// ----------------------------------------------------------------------------- -void CLcListBox::UpdateIconsL() - { - CLcLocationAppInfoArray& iconArray( iListBoxModel->AppInfoArray()); - - CAknIconArray* icons = new( ELeave ) CAknIconArray( KLcViewListboxGranularity ); - CleanupStack::PushL( icons ); - - // Append each of the Icon elements to this array. - for ( TInt i = 0; i < iconArray.Count(); i++ ) - { - TRAPD( error, icons->AppendL( iconArray[i].IconL())); - if ( error ) - { - User::Leave( error ); - } - } - - // Destroy the old icons because SetIconArray() does not destroy them. - CArrayPtr* oldIcons = ItemDrawer()->ColumnData()->IconArray(); - if( oldIcons ) - { - oldIcons->ResetAndDestroy(); - delete oldIcons; - } - - // Transfer ownership of icon array to the lbx. - // SetIconArray() Does not delete the Old icon array - ItemDrawer()->ColumnData()->SetIconArray( icons ); - CleanupStack::Pop( icons ); - - // Draws listbox again - HandleItemAdditionL(); - HandleItemRemovalL(); - } - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/src/lclistboxmodel.cpp --- a/locationcentre/lcapp/src/lclistboxmodel.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,184 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 box model for the list-box used to display the Location -* Centre Application -* -*/ - - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lclistboxmodel.h" -#include "lclocationappinfo.h" -#include "lcerrors.h" - -// CONSTANT DEFINTION -const TInt KLcBufferSize = 128; - -// ========================= MEMBER FUNCTIONS ================================ - -// --------------------------------------------------------------------------- -// CLcListBoxModel::CLcListBoxModel -// --------------------------------------------------------------------------- -// -CLcListBoxModel::CLcListBoxModel( CLcLocationAppInfoArray* aAppArray ) - :iAppArray( aAppArray ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcListBoxModel::~CLcListBoxModel -// --------------------------------------------------------------------------- -// -CLcListBoxModel::~CLcListBoxModel() - { - // C++ Destructor. Free all resources associated with this class. - - // Delete the MdcaPoint buffer - delete iBuffer; - - // Delete the Application information array - delete iAppArray; - } - -// --------------------------------------------------------------------------- -// void CLcListBoxModel::ConstructL -// --------------------------------------------------------------------------- -// -void CLcListBoxModel::ConstructL() - { - // Create the Buffer for packing the MdcaPoint - iBuffer = HBufC16::NewL( KLcBufferSize ); - } - -// --------------------------------------------------------------------------- -// CLcListBoxModel* CLcListBoxModel::NewL -// --------------------------------------------------------------------------- -// -CLcListBoxModel* CLcListBoxModel::NewL( CLcLocationAppInfoArray* aAppArray ) - { - CLcListBoxModel* self = new ( ELeave ) CLcListBoxModel( aAppArray ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcListBoxModel::UpdateModel -// --------------------------------------------------------------------------- -// -void CLcListBoxModel::UpdateModel( CLcLocationAppInfoArray* aAppArray ) - { - // The model contents have changed. We have to remove the old App array - // and assign the new one. - - delete iAppArray; - - // Now assign the new one - iAppArray = aAppArray; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray& CLcListBoxModel::AppArray -// --------------------------------------------------------------------------- -// -CLcLocationAppInfoArray& CLcListBoxModel::AppArray() - { - // If the Array is not set then there is a programming error from which - // we cannot recover. So Panic the Application - if( !iAppArray ) - { - User::Panic( KLcPanicCategory, ELcInvalidIndex ); - } - return *iAppArray; - } - -// --------------------------------------------------------------------------- -// TInt CLcListBoxModel::AppInfoId -// --------------------------------------------------------------------------- -// -TPtrC CLcListBoxModel::AppInfoId( TInt aIndex ) const - { - // Check if the element requested is out of array bounds - if( aIndex < 0 || aIndex >= iAppArray->Count()) - { - User::Panic( KLcPanicCategory, ELcInvalidIndex ); - } - - return (*iAppArray)[ aIndex ].Id(); - } - -// --------------------------------------------------------------------------- -// TInt CLcListBoxModel::MdcaCount -// --------------------------------------------------------------------------- -// -TInt CLcListBoxModel::MdcaCount() const - { - if ( iAppArray ) - { - return iAppArray->Count(); - } - else - { - return 0; - } - } - -// --------------------------------------------------------------------------- -// TPtrC16 CLcListBoxModel::MdcaPoint -// --------------------------------------------------------------------------- -// -TPtrC16 CLcListBoxModel::MdcaPoint( TInt aIndex ) const - { - // If the Array is not set then there is a programming error from which - // we cannot recover. So Panic the Application - if( !iAppArray ) - { - User::Panic( KLcPanicCategory, ELcInvalidIndex ); - } - - // Pack the contents into the Buffer. We dont have to re-allocate the buffer - // everytime because the length of the name field is restricted in the - // Location Centre Registration API - - // Tabulator Defintion - _LIT( KTab, "\t" ); - - // Create formatted item string. - // list_single_large_pane: - // list item string format: "1\tTextLabel\t0\t0" - // where 0 is an index to icon array - TPtr16 buf( iBuffer->Des()); - buf.Zero(); - - // Append the Icon Index - buf.AppendNum( aIndex ); - - // Append the Tab Key - buf.Append( KTab ); - - // Append the Application Information - buf.Append( (*iAppArray)[aIndex].Name()); - - // Append the Tab Key - buf.Append( KTab ); - - // Append the Tab Key - buf.Append( KTab ); - return buf; - } diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcapp/src/lcview.cpp --- a/locationcentre/lcapp/src/lcview.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,293 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: View class for Location Centre Application UI. -* -*/ - - -// SYSTEM INCLUDES -#include -#include -#include -#include -#include - -// USER INCLUDES -#include "lcview.h" -#include "lccontainer.h" -#include "lcappui.h" -#include "lclistboxmodel.h" -#include "lcapp.hrh" - -// CONSTANT DEFINTIONS -const TUid KLcViewId = TUid::Uid( 1 ); - -// ----------------- Member funtions for CLcView class ----------------------- - -// --------------------------------------------------------------------------- -// CLcView::CLcView -// --------------------------------------------------------------------------- -// -CLcView::CLcView( MLcEventHandler& aEventHandler, - CLcListBoxModel& aListBoxModel ) - :iEventHandler( aEventHandler ), - iListBoxModel( &aListBoxModel ) - { - } - -// --------------------------------------------------------------------------- -// CLcView::~CLcView -// --------------------------------------------------------------------------- -// -CLcView::~CLcView() - { - if ( iContainer ) - { - AppUi()->RemoveFromViewStack( *this, iContainer ); - } - - delete iContainer; - - FeatureManager::UnInitializeLib(); - } - -// --------------------------------------------------------------------------- -// CLcView* CLcView::NewL -// --------------------------------------------------------------------------- -// -CLcView* CLcView::NewL( MLcEventHandler& aEventHandler, - CLcListBoxModel& aListBoxModel ) - { - CLcView* self = CLcView::NewLC( aEventHandler, aListBoxModel ); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------------------------- -// CLcView* CLcView::NewLC -// --------------------------------------------------------------------------- -// -CLcView* CLcView::NewLC( MLcEventHandler& aEventHandler, - CLcListBoxModel& aListBoxModel ) - { - CLcView* self = new ( ELeave ) CLcView( aEventHandler, aListBoxModel ); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcView::ConstructL -// --------------------------------------------------------------------------- -// -void CLcView::ConstructL() - { - BaseConstructL( R_LC_VIEW ); - - // Feature manager required for Help feature check - FeatureManager::InitializeLibL(); - - } - -// --------------------------------------------------------------------------- -// void CLcView::ScreenSizeChanged -// --------------------------------------------------------------------------- -// -void CLcView::ScreenSizeChanged() - { - // Request the Client container to change its rect to a new Rect - if( iContainer ) - { - iContainer->SetRect( ClientRect()); - } - } - -// --------------------------------------------------------------------------- -// void CLcView::UpdateL -// --------------------------------------------------------------------------- -// -void CLcView::UpdateL( CLcListBoxModel& aListBoxModel ) - { - // Set the new List box model. - iListBoxModel = &aListBoxModel; - - // Now update the contaier. - if (iContainer) - { - iContainer->UpdateL(*iListBoxModel); - } - - if (iListBoxModel->MdcaCount()) - { - if (Cba()) - { - Cba()->SetCommandSetL(R_LC_CBA); - } - } - else - { - if (Cba()) - { - Cba()->SetCommandSetL(R_LC_CBA_EMPTY); - } - } - } - -// --------------------------------------------------------------------------- -// void CLcView::UpdateIconsL -// --------------------------------------------------------------------------- -// -void CLcView::UpdateIconsL() - { - if ( iContainer ) - { - iContainer->UpdateIconsL(); - } - iContainer->DrawDeferred(); - } - -// --------------------------------------------------------------------------- -// TInt CLcView::GetFocussedItem -// --------------------------------------------------------------------------- -// -TInt CLcView::GetFocussedItem() - { - if ( iContainer ) - { - return iContainer->GetFocussedItem(); - } - else - { - return KErrNotFound; - } - } - -// --------------------------------------------------------------------------- -// void CLcView::DoActivateL -// --------------------------------------------------------------------------- -// -void CLcView::DoActivateL( const TVwsViewId& /* PrevViewId*/, - TUid /* aCustomMessageId*/, - const TDesC8& /* aCustomMessage */) - { - // Destroy the existing container if it exists - if( iContainer ) - { - AppUi()->RemoveFromViewStack( *this, iContainer ); - delete iContainer; - iContainer=NULL; - } - - // Create new Container - iContainer = CLcContainer::NewL( ClientRect(), iEventHandler, *iListBoxModel ); - iContainer->SetMopParent( this ); - AppUi()->AddToViewStackL( *this, iContainer ); - - if( iListBoxModel->MdcaCount()) - { - Cba()->SetCommandSetL( R_LC_CBA ); - } - else - { - Cba()->SetCommandSetL( R_LC_CBA_EMPTY ); - } - } - -// --------------------------------------------------------------------------- -// void CLcView::DoDeactivate -// --------------------------------------------------------------------------- -// -void CLcView::DoDeactivate() - { - // Destroy Container - if ( iContainer ) - { - AppUi()->RemoveFromViewStack( *this, iContainer ); - delete iContainer; - iContainer = NULL; - } - } - -// --------------------------------------------------------------------------- -// TUid CLcView::Id -// --------------------------------------------------------------------------- -// -TUid CLcView::Id() const - { - return KLcViewId; - } - -// --------------------------------------------------------------------------- -// void CLcView::HandleCommandL -// --------------------------------------------------------------------------- -// -void CLcView::HandleCommandL( TInt aCommand ) - { - // This Class only handles the Help feature. All the other events are handled - // by the App UI class. - switch( aCommand ) - { - case EAknCmdHelp: - { - HlpLauncher::LaunchHelpApplicationL( iCoeEnv->WsSession(), - AppUi()->AppHelpContextL()); - break; - } - default: - { - AppUi()->HandleCommandL( aCommand ); - break; - } - } - } - -// --------------------------------------------------------------------------- -// void CLcView::DynInitMenuPaneL -// --------------------------------------------------------------------------- -// -void CLcView::DynInitMenuPaneL( TInt aResourceId, - CEikMenuPane* aMenuPane ) - { - if ( aResourceId == R_LC_MENU ) - { - HandleHelpFeature( *aMenuPane ); - - if( iListBoxModel->MdcaCount()) - { - aMenuPane->SetItemDimmed( ELcOpen, EFalse ); - } - else - { - aMenuPane->SetItemDimmed( ELcOpen, ETrue ); - } - } - } - -// --------------------------------------------------------------------------- -// void CLcView::HandleHelpFeature -// --------------------------------------------------------------------------- -// -void CLcView::HandleHelpFeature( CEikMenuPane& aMenuPane ) const - { - // The Help menu item must be displayed only if the Feature is supported. - // If not, the Help item must be dimmed in the Options menu. - if ( FeatureManager::FeatureSupported( KFeatureIdHelp )) - { - aMenuPane.SetItemDimmed( EAknCmdHelp, EFalse ); - } - else - { - aMenuPane.SetItemDimmed( EAknCmdHelp, ETrue ); - } - } diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/group/bld.inf --- a/locationcentre/lcserver/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: This file provides the information required for building the -* Location Centre Server. -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -// Location Centre Server Private Interface headers -../inc/lcserverinterface.h |../../../../inc/lcserverinterface.h - -PRJ_MMPFILES -// Location Centre Server project definition -lcserver.mmp - -PRJ_TESTMMPFILES - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/group/lcserver.mmp --- a/locationcentre/lcserver/group/lcserver.mmp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Project Definition file for building Location Centre Server. -* version : %version: 2 % -* -*/ - - -// SYSTEM INCLUDE -#include -#include - -// DEFINES -#define KLocationCentreServerUid3 0x10283138 - -TARGET lcserver.exe -TARGETTYPE exe -UID 0x0 KLocationCentreServerUid3 - -VERSION 1.0 - -CAPABILITY CAP_SERVER ProtServ -VENDORID VID_DEFAULT - -EPOCSTACKSIZE 0x8000 - - -SOURCEPATH ../src -SOURCE lcserverstartup.cpp -SOURCE lcserver.cpp -SOURCE lcserversession.cpp -SOURCE lcservershutdowntimer.cpp -SOURCE lcserverengine.cpp -SOURCE lcregistry.cpp -SOURCE lcregistryupdate.cpp -SOURCE lcregistrationparser.cpp -SOURCE lcregapporder.cpp -SOURCE lcregxmltaginfo.cpp -SOURCE lcregxmlparserutils.cpp -SOURCE lcregappinfo.cpp -SOURCE lcregappstore.cpp - -USERINCLUDE ../inc -USERINCLUDE ../../inc -USERINCLUDE ../../../inc -USERINCLUDE ../../../../inc - -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY bafl.lib -LIBRARY lcutils.lib -LIBRARY estor.lib -LIBRARY lcservice.lib -LIBRARY apgrfx.lib -LIBRARY PlatformEnv.lib -LIBRARY xmlframework.lib -LIBRARY centralrepository.lib -LIBRARY apparc.lib -LIBRARY charconv.lib -LIBRARY CommonUI.lib -LIBRARY apmime.lib -LIBRARY edbms.lib -LIBRARY javaregistryclient.lib -LIBRARY flogger.lib - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcprivatecrkeys.h --- a/locationcentre/lcserver/inc/lcprivatecrkeys.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Central Repository Key defintion for ordering of Location -* based Applications and Content/Services in Location Centre. -* -*/ - - -#ifndef LCPRIVATECRKEYS_H_ -#define LCPRIVATECRKEYS_H_ - -// System Includes -#include - -/** - * The category UID for the keys in this header file. - * UID of the Location Centre Central Repository Key. This key defines the - * position of the Location based Applications and Contents/Services in - * Location Centre and the value for Location Centre Server Shutdown timer value. - */ -const TUid KCRUidLocationCentre = { 0x10283137 }; - - -/** - * Enumeration list of values for the @p KCRUidLocationCentreOrder key. - * - * Location Centre displays the list of Location based Application and - * Services/Contents registered with it. Each Location based Application or - * Content/Service can be present in either the Top, Middle or Bottom portion of - * the list. The exact location and order of display of these Applications - * and Services/Contents depends upon whether they are pre-installed in the - * phone image or whether they are dynamically installed. Those Applications and - * Contents/Services which come with the phone image can occur only in the Top - * or Bottom portion of the list while those Applications and Contents/Services - * which are dynamically installed are shown in the Middle portion of the list. - * - * The enumeration @p TLcOrderValues defines the values and format of Top, Middle - * and Bottom keys. - */ -enum TLcOrderValues - { - /** - * Top Key for list of Location based Applications and Contents/Services which - * are shown at the top of Location Centre list. - * This key is a Read only key and the default values for the Keys is configured - * by the device manufacturer while flashing the device. They cannot be dynamically - * configured. The keys contains a UNICODE ( UCS -2 ) string which contains a - * list of Unique Identifers for Location based Application and Contents/Services - * in the order in which the device manufacturer wants these Applications and - * Contents/Services to be displayed. - * - * The format of this Key is defined as - * | Count | Length(1) | UID(1) | Length(2) | UID(2) | ... | Length( Count ) | UID( Count ) | - * where, - * Count - ( 4 bytes ) - The number of Location based Applications or Contents / Services - * which are predefined to be displayed at the top of - * Location Centre. - * Length(n) - ( 4 bytes ) - Length of the UID for the Location based Application or - * Content/Service encoded as as a string in the UNICODE ( UCS -2) - * format. - * String(n) - ( Length(n) * 2 bytes ) - UID of the Location based Application or Content/Service - * encoded as a string in the UNICODE ( UCS-2 ) format. Here each character - * of the UID takes 2 bytes. Hence, over all the length of the UID string - * is 2 * Length(n). - */ - ELcTop = 0x00000001, - - /** - * Middle Key for list of Location based Applications and Contents/Services which - * are shown in the middle of Location Centre list. - * - * This key takes a Boolean value indicating whether there are any Location based - * Applications or Contents/Services which have been dynamically installed or not. - * The values which this key can take are - * ETrue, If there are certain Location based Applications or Contents/Service - * which have been dynamically installed on the terminal. - * EFalse, If there are no Location based Applications or Contents/Service - * which have been dynamically installed on the terminal. - * The default value for this Key is EFalse. - * - * Incase there are any dynamically installed Applications or Contents/Services then - * these components would be displayed in the middle of Location Centre in the order - * of their registration. - */ - ELcMiddle = 0x00000002, - - /** - * Bottom Key for list of Location based Applications and Contents/Services which - * are shown at the bottom of Location Centre list. - * This key is a Read only key and the default values for the Keys is configured - * by the device manufacturer while flashing the device. They cannot be dynamically - * configured. The keys contains a UNICODE ( UCS -2 ) string which contains a - * list of Unique Identifers for Location based Application and Contents/Services - * in the order in which the device manufacturer wants these Applications and - * Contents/Services to be displayed. - * - * The format of this Key is defined as - * | Count | Length(1) | UID(1) | Length(2) | UID(2) | ... | Length( Count ) | UID( Count ) | - * where, - * Count - ( 4 bytes ) - The number of Location based Applications or Contents / Services - * which are predefined to be displayed at the bottom of - * Location Centre. - * Length(n) - ( 4 bytes ) - Length of the UID for the Location based Application or - * Content/Service encoded as as a string in the UNICODE ( UCS -2) - * format. - * String(n) - ( Length(n) * 2 bytes ) - UID of the Location based Application or Content/Service - * encoded as a string in the UNICODE ( UCS-2 ) format. Here each character - * of the UID takes 2 bytes. Hence, over all the length of the UID string - * is 2 * Length(n). - */ - ELcBottom = 0x00000003 - }; - -/** - * Value for Location Centre shutdown timer in milliseconds. - */ -const TInt KLcShutdownTimerValue = 0x00000004; - -#endif // LCPRIVATECRKEYS_H_ - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregappinfo.h --- a/locationcentre/lcserver/inc/lcregappinfo.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,201 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Registration information for a Location based Application. -* -*/ - - -#ifndef C_LCREGAPPINFO_H -#define C_LCREGAPPINFO_H - -// SYSTEM INCLUDES -#include - -// USER INCLUDE -#include "lcipcparams.h" - -// FORWARD DECLARATIONS - -/** - * Location Centre registration info. - * - * This class along with base class CLcAppInfo stores all the - * details of a registerd service with Location centre. - * - * @since S60 v5.0 - */ - -class CLcRegAppInfo: public CLcAppInfo - { -public: - /** - * Constructs a new instance of Location centre registration object. - * - * @return The new instance of Location centre registration object. - * @leave System wide error code if the object creation fails. - */ - static CLcRegAppInfo* NewL(); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * server - */ - ~CLcRegAppInfo(); - -public: - /** - * This function returns the corresponding file name of a - * registered service(application/document/web url) with full path name - * - * @since S60 v5.0 - * @param None. - * @return TFileName Returns the file name with full path. - */ - TFileName FileName(); - - /** - * This function set the file name for registered - * service(application/document/web url) with full path name - * It leaves with KErrBadName if the filename length is greater then - * 256 character. - * - * @since S60 v5.0 - * @param[ in ] aFile Filename with full path. - */ - void SetFileNameL( const TDesC& aFile ); - - /** - * This function says if the registered service - * is present or absent at terminal - * - * @since S60 v5.0 - * @param None. - * @return TBool ETrue if present or EFalse. - */ - TBool IsAppPresent( ); - - /** - * This function set's the service present or absent - * status to true or false - * - * @since S60 v5.0 - * @param[ in ] aPresenceStatus ETrue if present or EFalse - */ - void SetFilePresenceStatus( TBool aPresenceStatus ); - - /** - * If the registered service present in removable media - * then the current MMC id of the terminal is set through - * this function for it. - * - * @since S60 v5.0 - * @param[ in ] aUid Contains the MMC id - */ - void SetMmcId( TUint aUid ); - - /** - * Return Mmc id associated with a registered service - * - * @since S60 v5.0 - * @param None - * @return TUint Mmc id set for this appinfo - */ - TUint MmcId(); - - /** - * This function stores all the language specific id provided through - * the registration file for a service in a array. - * - * @since S60 v5.0 - * @param[ in ] aNameLang contains the language code - * @return Return KErrNotFound if the Id is not valid one. - */ - TInt SetNameLanguage( const TDesC& aNameLang ); - - /** - * This function stores all the language specific name - * provided through the registration file for a service - * in a RpointerArray. - * - * @since S60 v5.0 - * @param[ in ] aName Contains the language - * name - */ - void SetAppNameL( const TDesC& aName ); - - /** - * This function check the current language code - * with present language code with this registered service - * and set the name accordingly. - * - * @since S60 v5.0 - * @param aFs Contains the file server session reference - */ - void SetAppLangSpecificNameL( RFs& aFs ); - - /** - * Stores the index order of the app info - * - * @since S60 v5.0 - * @param [ in ] aIndex - */ - void SetArrayIndex( TInt aIndex ); - - /** - * - * @since S60 v5.0 - * @param None. - * @return Order index of the app info - */ - TInt Index(); - - /** - * This function checks the count of the app name array - * and return ETrue if count is greater than zero or EFalse - * - * @since S60 v5.0 - * @param None. - * @return Etrue if the count of language name - * array count is greater than zero or EFalse - */ - TBool IsAppNamePresent(); - -private: - /** - * C++ Default constructor - */ - CLcRegAppInfo(); - -private: - // stores the file name for a reg app info - TFileName iFileName; - - // stores the registered service presence status - TBool iFilePresenceStatus; - - // stores the MMC id of a lc reg app info - TUint iMmcId; - - // contains all the different language specific name - RPointerArray iAppNameArray; - - // contains all the different language id for a registered file - RArray iAppLangArray; - - // sets the order index of app info - TInt iIndex; - }; - -#endif // C_LCREGAPPINFO_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregappnamelangid.h --- a/locationcentre/lcserver/inc/lcregappnamelangid.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Registration information for a Location based Application. -* -*/ - - -#ifndef T_LCREGAPPNAMELANGID_H -#define T_LCREGAPPNAMELANGID_H - -// SYSTEM INCLUDES -#include - -// USER INCLUDE - -// FORWARD DECLARATIONS - -// CONSTANT DEFINATION -//Language code _LIT defination -_LIT( KLangEn, "en" ); -_LIT( KLangFr, "fr" ); -_LIT( KLangGe, "ge" ); -_LIT( KLangSp, "sp" ); -_LIT( KLangIt, "it" ); -_LIT( KLangSw, "sw" ); -_LIT( KLangDa, "da" ); -_LIT( KLangNo, "no" ); -_LIT( KLangFi, "fi" ); -_LIT( KLangAm, "am" ); -_LIT( KLangSf, "sf" ); -_LIT( KLangSg, "sg" ); -_LIT( KLangPo, "po" ); -_LIT( KLangTu, "tu" ); -_LIT( KLangIc, "ic" ); -_LIT( KLangRu, "ru" ); -_LIT( KLangHu, "hu" ); -_LIT( KLangDu, "du" ); -_LIT( KLangBl, "bl" ); -_LIT( KLangAu, "au" ); -_LIT( KLangBf, "bf" ); -_LIT( KLangAs, "as" ); -_LIT( KLangNz, "nz" ); -_LIT( KLangIf, "if" ); -_LIT( KLangCs, "cs" ); -_LIT( KLangSk, "sk" ); -_LIT( KLangPl, "pl" ); -_LIT( KLangSl, "sl" ); -_LIT( KLangTc, "tc" ); -_LIT( KLangHk, "hk" ); -_LIT( KLangZh, "zh" ); -_LIT( KLangJa, "ja" ); -_LIT( KLangTh, "th" ); -_LIT( KLangAf, "af" ); -_LIT( KLangSq, "sq" ); -_LIT( KLangAh, "ah" ); -_LIT( KLangAr, "ar" ); -_LIT( KLangHy, "hy" ); -_LIT( KLangTl, "tl" ); -_LIT( KLangBe, "be" ); -_LIT( KLangBn, "bn" ); -_LIT( KLangBg, "bg" ); -_LIT( KLangMy, "my" ); -_LIT( KLangCa, "ca" ); -_LIT( KLangHr, "hr" ); -_LIT( KLangCe, "ce" ); -_LIT( KLangIe, "ie" ); -_LIT( KLangSa, "sa" ); -_LIT( KLangEt, "et" ); -_LIT( KLangFa, "fa" ); -_LIT( KLangCf, "cf" ); -_LIT( KLangGd, "gd" ); -_LIT( KLangKa, "ka" ); -_LIT( KLangEl, "el" ); -_LIT( KLangCg, "cg" ); -_LIT( KLangGu, "gu" ); -_LIT( KLangHe, "he" ); -_LIT( KLangHi, "hi" ); -_LIT( KLangIn, "in" ); -_LIT( KLangGa, "ga" ); -_LIT( KLangSz, "sz" ); -_LIT( KLangKn, "kn" ); -_LIT( KLangKk, "kk" ); -_LIT( KLangKm, "km" ); -_LIT( KLangKo, "ko" ); -_LIT( KLangLo, "lo" ); -_LIT( KLangLv, "lv" ); -_LIT( KLangLt, "lt" ); -_LIT( KLangMk, "mk" ); -_LIT( KLangMs, "ms" ); -_LIT( KLangMl, "ml" ); -_LIT( KLangMr, "mr" ); -_LIT( KLangMo, "mo" ); -_LIT( KLangMn, "mn" ); -_LIT( KLangNn, "nn" ); -_LIT( KLangBp, "bp" ); -_LIT( KLangPa, "pa" ); -_LIT( KLangRo, "ro" ); -_LIT( KLangSr, "sr" ); -_LIT( KLangSi, "si" ); -_LIT( KLangSo, "so" ); -_LIT( KLangOs, "os" ); -_LIT( KLangLs, "ls" ); -_LIT( KLangSh, "sh" ); -_LIT( KLangFs, "fs" ); -_LIT( KLangReserv1, "Reserved1" ); -_LIT( KLangTa, "ta" ); -_LIT( KLangTe, "te" ); -_LIT( KLangBo, "bo" ); -_LIT( KLangTi, "ti" ); -_LIT( KLangCt, "ct" ); -_LIT( KLangTk, "tk" ); -_LIT( KLangUk, "uk" ); -_LIT( KLangUr, "ur" ); -_LIT( KLangReserv2, "Reserved2" ); -_LIT( KLangVi, "vi" ); -_LIT( KLangCy, "cy" ); -_LIT( KLangZu, "zu" ); - - -/** - * Structure of Language name table. - * - * This structure stores the - * language name and the language id for a service. - * - * @since S60 v5.0 - */ -struct TNameTable - { - const TDesC& iName; - TLanguage iNumber; - }; - -/** - * - * This array contains all the - * double character standard language code. - * - * @since S60 v5.0 - */ -const TNameTable KLangOptions[] = - { - {KLangEn, ELangEnglish}, - {KLangFr, ELangFrench}, - {KLangGe, ELangGerman}, - {KLangSp, ELangSpanish}, - {KLangIt, ELangItalian}, - {KLangSw, ELangSwedish}, - {KLangDa, ELangDanish}, - {KLangNo, ELangNorwegian}, - {KLangFi, ELangFinnish}, - {KLangAm, ELangAmerican}, - {KLangSf, ELangSwissFrench}, - {KLangSg, ELangSwissGerman}, - {KLangPo, ELangPortuguese}, - {KLangTu, ELangTurkish}, - {KLangIc, ELangIcelandic}, - {KLangRu, ELangRussian}, - {KLangHu, ELangHungarian}, - {KLangDu, ELangDutch}, - {KLangBl, ELangBelgianFlemish}, - {KLangAu, ELangAustralian}, - {KLangBf, ELangBelgianFrench}, - {KLangAs, ELangAustrian}, - {KLangNz, ELangNewZealand}, - {KLangIf, ELangInternationalFrench}, - {KLangCs, ELangCzech}, - {KLangSk, ELangSlovak}, - {KLangPl, ELangPolish}, - {KLangSl, ELangSlovenian}, - {KLangTc, ELangTaiwanChinese}, - {KLangHk, ELangHongKongChinese}, - {KLangZh, ELangPrcChinese}, - {KLangJa, ELangJapanese}, - {KLangTh, ELangThai}, - {KLangAf, ELangAfrikaans }, - {KLangSq, ELangAlbanian }, - {KLangAh, ELangAmharic }, - {KLangAr, ELangArabic }, - {KLangHy, ELangArmenian }, - {KLangTl, ELangTagalog }, - {KLangBe, ELangBelarussian }, - {KLangBn, ELangBengali }, - {KLangBg, ELangBulgarian }, - {KLangMy, ELangBurmese }, - {KLangCa, ELangCatalan }, - {KLangHr, ELangCroatian }, - {KLangCe, ELangCanadianEnglish }, - {KLangIe, ELangInternationalEnglish }, - {KLangSa, ELangSouthAfricanEnglish }, - {KLangEt, ELangEstonian }, - {KLangFa, ELangFarsi }, - {KLangCf, ELangCanadianFrench }, - {KLangGd, ELangScotsGaelic }, - {KLangKa, ELangGeorgian }, - {KLangEl, ELangGreek }, - {KLangCg, ELangCyprusGreek }, - {KLangGu, ELangGujarati }, - {KLangHe, ELangHebrew }, - {KLangHi, ELangHindi }, - {KLangIn, ELangIndonesian }, - {KLangGa, ELangIrish }, - {KLangSz, ELangSwissItalian }, - {KLangKn, ELangKannada }, - {KLangKk, ELangKazakh }, - {KLangKm, ELangKhmer }, - {KLangKo, ELangKorean }, - {KLangLo, ELangLao }, - {KLangLv, ELangLatvian }, - {KLangLt, ELangLithuanian }, - {KLangMk, ELangMacedonian }, - {KLangMs, ELangMalay }, - {KLangMl, ELangMalayalam }, - {KLangMr, ELangMarathi }, - {KLangMo, ELangMoldavian }, - {KLangMn, ELangMongolian }, - {KLangNn, ELangNorwegianNynorsk }, - {KLangBp, ELangBrazilianPortuguese }, - {KLangPa, ELangPunjabi }, - {KLangRo, ELangRomanian }, - {KLangSr, ELangSerbian }, - {KLangSi, ELangSinhalese }, - {KLangSo, ELangSomali }, - {KLangOs, ELangInternationalSpanish }, - {KLangLs, ELangLatinAmericanSpanish }, - {KLangSh, ELangSwahili }, - {KLangFs, ELangFinlandSwedish }, - {KLangReserv1, ELangReserved1 }, - {KLangTa, ELangTamil }, - {KLangTe, ELangTelugu }, - {KLangBo, ELangTibetan }, - {KLangTi, ELangTigrinya }, - {KLangCt, ELangCyprusTurkish }, - {KLangTk, ELangTurkmen }, - {KLangUk, ELangUkrainian }, - {KLangUr, ELangUrdu }, - {KLangReserv2, ELangReserved2 }, - {KLangVi, ELangVietnamese }, - {KLangCy, ELangWelsh }, - {KLangZu, ELangZulu } - }; - -#define NUMLANGOPTIONS (sizeof(KLangOptions)/sizeof(TNameTable)) - -#endif // T_LCREGAPPNAMELANGID_H \ No newline at end of file diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregapporder.h --- a/locationcentre/lcserver/inc/lcregapporder.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -#ifndef C_LCREGAPPORDER_H -#define C_LCREGAPPORDER_H - - -// SYSTEM INCLUDES -#include -#include -#include - -// USER INCLUDDE -#include "lcipcparams.h" - -// FORWARD DECLARATIONS -class CLcRegAppStore; - -//DATA TYPE - -/** - * Location Centre registered application content/service display order. - * - * This class is inherited from CBase. Extracts the registration - * order from the central repository key - * and externalize/internalize of those from/to TDesC key value. - * - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( CLcRegAppOrder ) : public CBase - { -public: - /** - * Constructs a new instance of CLcRegAppOrder. - * - * @return The new instance of CLcRegAppOrder object. - * @leave System wide error code if the object creation fails. - */ - static CLcRegAppOrder* NewL( CLcRegAppStore& aLcRegAppStore); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * server registry handler - */ - ~CLcRegAppOrder(); - -public: - /** - * Extracts the application registered order according to place - * like top,middle,and bottom in the list from central repository key - * buffer output. - * - * @since S60 v5.0 - * @param [in]aUuid UUID of the registered app/service - * @param [out]aRowPos returns the position of app/service - * - * @return TInt If successfull the return KErrNone. - */ - TInt GetRegisteredAppOrder( const TDesC& aUuid, - TInt& aRowPos); - - /** - * Remove the deregistered application from the array - * depends upon the UUID's sent through the function. - * - * @since S60 v5.0 - * @param aUuid UUID of the registered app/service - * - * @return TInt If successfull the return KErrNone. - */ - void RemoveArrayL(const TDesC& aUuid); - - /** - * Append the registered application to the array - * depends upon the UUID's sent through the function. - * - * @since S60 v5.0 - * @param aUuid UUID of the registered app/service - * - * @return TInt Index. - */ - TInt AppendArrayL(const TDesC& aUuid); - -private: // new private method - /** - * - * - * @since S60 v5.0 - * @param aArray[ out ] - * @param aArray[ in ] - * - */ - void ParseCenRepKeyL( RPointerArray< HBufC >& aArray, - const TDesC& aKey ); - - /** - * - * @since S60 v5.0 - * @param aBuffer - * - * @return TUint32 - */ - TUint32 ParseInteger( const TDesC& aBuffer ); - -private: - /** - * C++ Default constructor - */ - CLcRegAppOrder( CLcRegAppStore& aLcRegAppStore ); - - /** - * Second phase of the two phase constructor - */ - void ConstructL(); - -private: //data member - //own: Central repository instance. - CRepository* iRepository; - - //own: array of top portion's UUID's - RPointerArray< HBufC > iTopArray; - - //own: array of bottom portion's UUID's - RPointerArray< HBufC > iBottomArray; - - // array of middle portion's UUID's - RLcIpcAppIdArray iMiddleArray; - - //reference to appstore object comming through lc registry - CLcRegAppStore* iLcRegAppStore; - }; - -#endif // C_LCREGAPPORDER_H - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregappstore.h --- a/locationcentre/lcserver/inc/lcregappstore.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -#ifndef C_LCREGAPPSTORE_H -#define C_LCREGAPPSTORE_H - -// SYSTEM INCLUDES -#include -#include -#include // RDbStoreDatabase - -// USER INCLUDES - - -// FORWARD DECLARATIONS -class CFileStore; - -/** - * Implementation of Location Centre private storage info class. - * - * This class provides the implementation of private - * storage of Location Centre Registration info(services) using - * symbian DBMS API. - */ -NONSHARABLE_CLASS( CLcRegAppStore ) : public CBase - { -public: - /** - * Enum to detect wheather Db is created or not - */ - enum TLcDbStatus - { - // Db is successfully created - ELcDbCreate = 0, - // Db is successfully opened - ELcDbOpen - }; - - /** - * Constructs a new instance of CLcRegAppStore. - * - * @return The new instance of CLcRegAppStore object. - * @leave System wide error code if the object creation fails. - */ - static CLcRegAppStore* NewL( RFs& aFs ); - - /** - * Constructs a new instance of CLcRegAppStore. - * Leaves the created instance on the cleanup stack. - * - * @return The new instance of CLcRegAppStore object. - * @leave System wide error code if the object creation fails. - */ - static CLcRegAppStore* NewLC( RFs& aFs ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * server private file handler - */ - virtual ~CLcRegAppStore(); - - -public: - /** - * This function return the first column and first row - * value which is Uuid.After externalize this we extract - * all the seperate Uuid's of dynamically registered services - * - * @since S60 v5.0 - * @param aUuid[ out ] contains the packed Uuid value. - */ - void GetUuidValueL( TDes8& aUuid ); - - /** - * This function insert this packed Uuid value at first column - * and first row of the app info database for first time and then do Update - * - * @since S60 v5.0 - * @param aAppUid[ in ] Packed Uuid value. - * @return - */ - void AddDataToTableL( const TDesC8& aAppUid ); - -private: - /** - * C++ Default constructor - */ - CLcRegAppStore( RFs& aFs ); - - /** - * Second phase of the two phase constructor - */ - void ConstructL(); - -private: // private API for database operations - /** - * Open existing app info database in exclusive - * (non-shared) mode. - * - * @since S60 v5.0 - * @param aRegAppInfoFile is full path to app info - * database file. - */ - void OpenDbL( const TFileName& aRegAppInfoFile ); - - /** - * Creates and opens a new app info database. Creates a - * database file, table structure and an index. The database - * will be open in exclusive (non-shareable) mode. The - * database must be closed, when not used any more. If the - * database exists, it is replaced. - * - * @since S60 v5.0 - * @param aRegAppInfoFile is full path to app info - * database file. - */ - void CreateDbL( const TFileName& aRegAppInfoFile ); - - /** - * Closes the database opened with either OpenDbL or - * CreateDbL. It is safe to close the database even if it - * is closed. - * - * @since S60 v5.0 - * @param None - * @return None. - */ - void Close(); - - /** - * This function creates the app info table. - * - * @since S60 v5.0 - * @param None - */ - void CreateAppInfoTableL(); - - -private: // Member data - // File server reference comming from the lcregistry - // used for iFileStore - RFs& iFsSession; - - // For database operations - RDbStoreDatabase iRegAppInfoDb; - - //own: For creating and opening database files - CFileStore* iFileStore; - - // holds the database file name - TFileName iLcRegdbFile; - - // holds the db creation status - TLcDbStatus iDbStatus; - }; - -#endif // C_LCREGAPPSTORE_H \ No newline at end of file diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregistrationparser.h --- a/locationcentre/lcserver/inc/lcregistrationparser.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,323 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -#ifndef C_LCREGISTRATIONPARSER_H -#define C_LCREGISTRATIONPARSER_H - -// SYSTEM INCLUDES -#include -#include -#include -#include - -//USER INCLUDE -#include "lcregxmltagtype.h" - - -// DATA TYPES -enum TXmlParserElementState - { - EXmlParserOnStartElement, - EXmlParserOnEndElement - }; - -// FORWARD DECLARATIONS -class CLcRegAppInfo; - -/** - * class CLcRegistrationParser. - * - * This class is inherited from CBase. This - * class is used as a parser for parsing the Location Centre Registration file. - * @since S60 v5.0 - */ -class CLcRegistrationParser : public CBase, public Xml::MContentHandler - { -public: - /** - * Constructs a new instance of CLcRegistrationParser. - * - * @return The new instance of CLcRegistrationParser object. - * @leave System wide error code if the object creation fails. - */ - static CLcRegistrationParser* NewL( RFs& aFs ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * server registry handler - */ - ~CLcRegistrationParser(); - -public: // New functions - /** - * create and initialize the parser. - * - * @param aFile Filename to be parsed - * index. - * @return returns a CLcRegAppInfo* object. - */ - CLcRegAppInfo* ParseFileL( const TDesC& aFile ); - -public: // Functions from base class MContentHandler - - /** - * From From Xml::MContentHandler. - * - * @param aDocParam Document parameters. - * @param aErrorCode A error code. - */ - void OnStartDocumentL( - /* IN */ const Xml::RDocumentParameters& aDocParam, - /* IN */ TInt aErrorCode - ); - - /** - * From From Xml::MContentHandler. - * - * @param aErrorCode A error code. - */ - void OnEndDocumentL(TInt aErrorCode); - - /** - * From From Xml::MContentHandler. - * - * @param aElement Tag information. - * @param aAttributes Attributes. - * @param aErrorCode A error code. - */ - void OnStartElementL( - /* IN */ const Xml::RTagInfo& aElement, - /* IN */ const Xml::RAttributeArray& aAttributes, - /* IN */ TInt aErrorCode - ); - - /** - * From From Xml::MContentHandler. - * - * @param aElement Tag information. - * @param aErrorCode A error code. - */ - void OnEndElementL( - /* IN */ const Xml::RTagInfo& aElement, - /* IN */ TInt aErrorCode - ); - - /** - * From From Xml::MContentHandler. - * - * @param aBytes Tag content. - * @param aErrorCode A error code. - */ - void OnContentL( - /* IN */ const TDesC8& aBytes, - /* IN */ TInt aErrorCode - ); - - /** - * From From Xml::MContentHandler. - * - * @param aPrefix A prefix. - * @param aUri A Uri. - * @param aErrorCode A error code. - */ - void OnStartPrefixMappingL( - /* IN */ const RString& aPrefix, - /* IN */ const RString& aUri, - /* IN */ TInt aErrorCode - ); - - /** - * From From Xml::MContentHandler. - * - * @param aPrefix A prefix. - * @param aErrorCode A error code. - */ - void OnEndPrefixMappingL( - /* IN */ const RString& aPrefix, - /* IN */ TInt aErrorCode - ); - - /** - * From From Xml::MContentHandler. - * - * @param aBytes A bytes. - * @param aErrorCode A error code. - */ - void OnIgnorableWhiteSpaceL( - /* IN */ const TDesC8& aBytes, - /* IN */ TInt aErrorCode - ); - - /** - * From From Xml::MContentHandler. - * - * @param aName A skipped entity. - * @param aErrorCode A error code. - */ - void OnSkippedEntityL( - /* IN */ const RString& aName, - /* IN */ TInt aErrorCode - ); - - /** - * From From Xml::MContentHandler. - * - * @param aTarget A target. - * @param aData A data. - * @param aErrorCode A error code. - */ - void OnProcessingInstructionL( - /* IN */ const TDesC8& aTarget, - /* IN */ const TDesC8& aData, - /* IN */ TInt aErrorCode - ); - - /** - * From From Xml::MContentHandler. - * - */ - void OnOutOfData(); - - /** - * From From Xml::MContentHandler. - * - * @param aErrorCode A error code. - */ - void OnError(/* IN */ TInt aErrorCode); - - /** - * From From Xml::MContentHandler. - * - * @param aUid A Uid of extended interface. - */ - TAny* GetExtendedInterface(/* IN */ const TInt32 aUid); - -private: - /** - * C++ Default constructor - */ - CLcRegistrationParser( RFs& aFs ); - - -private: - /** - * Reads the attribute value for related elements. - * - * @param aElement Tag information. - * @param aAttributes Attributes. - */ - void CollectAttributeValueL( - const Xml::RTagInfo& aElement, - const Xml::RAttributeArray& aAttributes); - - /** - * Sets read content. - * - * @param aTag Tag to set content for. - * @param aContent Content to set. - */ - void SetContentL( - TLcRegXmlTagType aTag, - const TDesC& aContent - ); - - /** - * Set a parsed tag. - * - * @param aTag Tag to set parsed state for. - */ - void SetParserTagL(TLcRegXmlTagType aTag); - - /** - * Check that sequence order is correct. - * - * @param aTag Tag to check it is in right order. - */ - void CheckSequenceOrderL(TLcRegXmlTagType aTag); - - /** - * Check mandatory tag are correct. - * - * @param aXmlState This contains wheather - * parser state is in OnStartelement / OnEndElement - * @param aTag Tag to check it is in right order. - */ - void CheckMandatoryTagsL( - TXmlParserElementState aXmlState, - TLcRegXmlTagType aTag - ); - - /** - * This function takes the Java midletname as input - * parameter and returns the application Uid by which - * this can be validate through app shell. - * - * @param aMidletName Contains the Java application midletname. - * @return It returns the corresponding application uid - * assigned to this midletname. - */ - TUint32 JavaAppUidL( const TDesC& aMidletName ); - - /** - * This function checks the attribute name - * associated with the corresponding element - * and if it is not valid one leaves with KErrNotSupported. - * Also checks no of attributs should be present with the element. - * - * @param aElement Contain the element name. - * @param aAttributes Holds the attribute array - * - * @return It returns the valid attribute type - */ - TLcRegXmlTagType CheckAndReturnValidAttrL( - TLcRegXmlTagType aElement, - const Xml::RAttributeArray& aAttributes ); - - - // By default, prohibit copy constructor - CLcRegistrationParser( const CLcRegistrationParser& ); - // Prohibit assigment operator - CLcRegistrationParser& operator= ( const CLcRegistrationParser& ); - -private: //data member - //own: Application registration info - CLcRegAppInfo* iRegAppInfo; - - // File server reference from registry - RFs& iFs; - - // Parser stuff - HBufC8* iReadContent; - - // Input stuff - TUint32 iParsedTag; - TUint32 iParsingTag; - RArray iParserTreeTags; - - //Own: used to copy all the attribute value of an element - HBufC* iAttributeBuf; - - // Holds the registration file full path name - TFileName iFileName; - - // Holds the parser framework error status - TInt iParserError; - }; - -#endif // C_LCREGISTRATIONPARSER_H \ No newline at end of file diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregistrationupdatenotifier.h --- a/locationcentre/lcserver/inc/lcregistrationupdatenotifier.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -#ifndef M_LCREGISTRATIONUPDATENOTIFIER_H -#define M_LCREGISTRATIONUPDATENOTIFIER_H - -/** - * @file lcregistrationupdatenotifier.h - * - * This file provides the definitions for the observer class which enables - * the lcregistryhandler to listen to notifications from file server. - * - * @since S60 v5.0 - */ - - -// SYSTEM INCLUDES -#include - -/** - * @class MLcRegistryUpdateNotifier - * Observer class to notify to server wheather any changes happen to file server - * due to applications/services registered with Location Centre. - * - * @since S60 v5.0 - */ - -class MLcRegistryUpdateNotifier - { -public: - /** - * This function notify lc registry - * for any dunamic changes happen to the Location - * centre's private directory. - * - * @since S60 v5.0 - * @param None. - */ - virtual void HandleDynamicRegistrationL() = 0; - }; - -#endif // M_LCREGISTRATIONUPDATENOTIFIER_H - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregistry.h --- a/locationcentre/lcserver/inc/lcregistry.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,344 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -#ifndef C_LCREGISTRY_H -#define C_LCREGISTRY_H - - -// SYSTEM INCLUDES -#include -#include - -//USER INCLUDE -#include "lcregistrationupdatenotifier.h" -#include "lcipcparams.h" - -// FORWARD DECLARATIONS -class MLcRegistryObserver; -class CLcRegistrationParser; -class CLcRegistryUpdate; -class CLcRegAppOrder; -class CLcRegAppInfo; -class CLcRegAppStore; -class RApaLsSession; - -/** - * Location Centre server's registration handler. - * - * This class is inherited from CActive and MLcRegistryUpdateNotifier. This - * class handles all the basic logic(dynamic and static registration handling). - * - * @since S60 v5.0 - */ -class CLcRegistry : public CActive, - public MLcRegistryUpdateNotifier - { -public: - /** - * Constructs a new instance of CLcRegistry. - * - * @return The new instance of CLcRegistry object. - * @leave System wide error code if the object creation fails. - */ - static CLcRegistry* NewL( MLcRegistryObserver& aRegistryObserver ); - - /** - * Constructs a new instance of CLcRegistry. - * Leaves the created instance on the cleanup stack. - * - * @return The new instance of CLcRegistry object. - * @leave System wide error code if the object creation fails. - */ - static CLcRegistry* NewLC( MLcRegistryObserver& aRegistryObserver ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * server registry handler - */ - virtual ~CLcRegistry(); - - -public: //interface method from MLcRegistryUpdateNotifier - /** - * - */ - void HandleDynamicRegistrationL( ); - - -public: //interface to be called by other class - /** - * This function retuns all the present registered service - * like application/document/webservice to le server engine - * - * @since S60 v5.0 - * @param appInfoArray[ out ] contains array of registration app info pointer - * @return If no application is registered return KErrNotFound. - */ - TInt GetAllRegisteredAppsList( RPointerArray& appInfoArray); - - /** - * This function find the corresponding app info - * with respect to incomming application Uuid. - * - * @since S60 v5.0 - * @param aAppSid[ in ] - * @param aLcRegAppInfo[ out ] - * @return If the app info related to this Uuid is not found return KErrNotFound - */ - TInt GetApplicationInfo( const TDesC& aAppUid, - CLcBasicAppInfo*& aLcRegAppInfo ); - - -private: - /** - * C++ Default constructor - */ - CLcRegistry( MLcRegistryObserver& aRegistryObserver ); - - /** - * Second phase of the two phase constructor - */ - void ConstructL(); - - -private: // From CActive - /** - * Inherited from CActive - */ - void RunL(); - - /** - * Inherited from CActive - */ - void DoCancel(); - - /** - * Inherited from CActive - */ - TInt RunError( TInt aError ); - -private: - /** - * This function checks wheather any update is needed - * to already stored registered appinfo list.If it is then - * start the system drive scan and update registered app info accordingly - * - * @since S60 v5.0 - * @param None. - * @return None. - */ - void CheckForUpdationL(); - - /** - * This function scan all the system drives which are - * mounted at present in the system and collects all - * the registered file names present in the location centre's private - * directory. - * - * @since S60 v5.0 - * @param None. - * @return None. - */ - void ScanDrivesAndGetFileNameL(); - - /** - * Validate Application/Document through appshell/doc handler. - * - * @since S60 v5.0 - * @param aLcRegAppInfo [ in ] Pointer to regappinfo. - * @return None - */ - void ValidateRegisteredServiceL(CLcRegAppInfo& aApplicationInfo ); - - /** - * This function notifies registration server engine that - * processing of all the registration file has been done successfully. - * - * @since S60 v5.0 - * @param None. - * @return None. - */ - void FinalRegistrationUpdateL(); - - /** - * Issue a request to Active scheduler. - * - * @since S60 v5.0 - * @param None. - * @return None. - */ - void IssueRequest(); - - /** - * Get the current MMC Id for the device. - * - * @since S60 v5.0 - * @param aUid [out] It holds current MMC id of the terminal. - * @return Return system error if not executed successfully - * else return KErrNone. - */ - TInt GetMmcId( TUint& aUid ); - - /** - * This function parse a registration file and return the - * CLcRegAppInfo* and then it validates the application - * or document and fetch the order and finally append this - * CLcRegAppInfo to appinfo array. - * - * @since S60 v5.0 - * @param aLcRegAppInfo Pointer reference to regappinfo. - * @return KErrBadName if the regappinfo file name is not correct one. - */ - CLcRegAppInfo* CreateAppRegInfoL( TFileName& aFileName ); - - /** - * This function insert single registration info into - * app info array in specific order.Order is fetched for - * preinstalled application from central repository and for - * post installation as registration/deregistration order. - * - * @since S60 v5.0 - * @param aLcRegAppInfo [ in ] Pointer to regappinfo. - * @return None - */ - void InsertAppRegInfoL( CLcRegAppInfo* aAppInfo ); - - /** - * This function checks wheather certain registration file - * is present in the removable media like MMC. - * - * @since S60 v5.0 - * @param aFileName[ in ] Name of the file to check if in MMC. - * @return If file is in MMC then return ETrue else EFalse. - */ - TBool IsInMMc( TFileName& aFileName ); - - /** - * This function checks presence for a certain registration file - * in the stored app info array and return the corresponding app info - * - * @since S60 v5.0 - * @param aFileName[ in ] Name of the file to check if - * present in old list. - * @param alcRegAppInfoPtr[ out ] filled the appropriate reg app - * info to this pointer. - * @return On successfull - * execution return ETrue else EFalse. - */ - TBool DoesApplicationExists( TFileName& aFileName, - CLcRegAppInfo*& alcRegAppInfoPtr ); - - /** - * Find the content type from file useing content recognizer - * - * @since S60 v5.0 - * @param aDownload[ in ] The actual download. - * @param aContentType[ out ] The mime type - * @param aApplicationInfo[ in ] The application info ptr. - */ - void FindContentTypeFromFileL( RApaLsSession apaSession, - TUint8*& aContentTypeString, - CLcRegAppInfo* aApplicationInfo ); - - /** - * Checks wheather same UUID based service is already - * present in the current registered app info array. - * - * @since S60 v5.0 - * @param aLcRegAppInfo The application info ptr. - */ - TBool DoesSameUuidPresent( CLcRegAppInfo* aLcRegAppInfo ); - - /** - * This function compare time stamp between two registration - * info and return ETrue if same or EFalse. - * - * @since S60 v5.0 - * @param aFileName[ in ] Name of the current file to compare. - * @return ETrue else EFalse. - */ - TBool IsAppUpgraded( TFileName& aFileName ); - - /** - * This function sets name for certains application name - * if it is not provided with the registration file - * - * @since S60 v5.0 - * @param appInfo[ in ] Pointer to registration info - * needs to fetch application caption name. - */ - void SetAbsentAppNameL( CLcRegAppInfo* aAppInfo ); - - /** - * This function checks registered service type - * like application/service/webservice.If it is an application - * then the function fetches it's exe's full path and if it - * is document takes it's application data and if it is weburl - * then takes it's regiatration file and according to presence of - * above mentioned fles presence in ROM or else where set the system - * characteristics. - * - * @since S60 v5.0 - * @param alsSession[ in ] Reference to RApaLsSession. - * @param aAppInfo[ in ] Reference to application info. - */ - void SetAppSysCharacteristicsL( RApaLsSession& alsSession, - CLcRegAppInfo& aAppInfo ); - - -private: // Data members - /** - * Array of current Location Centre application information objects. - * Owns - */ - RPointerArray iAppInfoArray; - - /** - * Array of intermediate Location Centre application information objects. - * Owns - */ - RPointerArray iAppInfoNewArray; - - //Own:File server reference. - RFs iFs; - - //Reference to observer class. - MLcRegistryObserver& iRegistryObserver; - - //contains the list of registered file names - RArray iFileNameArry; - - //own:pointer to registry update - CLcRegistryUpdate* iLcRegUpdate; - - //own:pointer to registry app order settings class - CLcRegAppOrder* iLcRegAppOrder; - - // Private srorage pointer - CLcRegAppStore* iRegAppStore; - - // mentain the number of file count - TInt iregFileCount; - - // boolean variable to decide registry updation start. - TBool iRegistryHasToUpdate; - }; - -#endif // C_LCREGISTRY_H - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregistryobserver.h --- a/locationcentre/lcserver/inc/lcregistryobserver.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -#ifndef M_LCREGISTRYOBSERVER_H -#define M_LCREGISTRYOBSERVER_H - -/** - * @file mlcregistryobserver.h - * - * This file provides the definitions for the observer class which enables - * the lcregistry engine class to listen to dynamic behaviour of lcregistry. - * - * @since S60 v5.0 - */ - - -// SYSTEM INCLUDES -#include - -/** - * @class MLcRegistryObserver - * Observer class to notify to server engine wheather any dynamic changes happen to lcregistry - * due to applications/services installation/uninstallation/upgradation etc.. - * - * @since S60 v5.0 - */ - -class MLcRegistryObserver - { -public: - /** - * This function notify LC server engine - * that registry is undergoing for dynamic updation - * - * @since S60 v5.0 - * @param None. - */ - virtual void RegistryUnderUpdation( ) = 0; - - /** - * This function notify LC server engine - * that registry has completed it's dynamic updation process - * - * @since S60 v5.0 - * @param None. - */ - virtual void RegistryUpdated() = 0; - }; - -#endif // M_LCREGISTRYOBSERVER_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregistryupdate.h --- a/locationcentre/lcserver/inc/lcregistryupdate.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -#ifndef C_LCREGISTRYUPDATE_H -#define C_LCREGISTRYUPDATE_H - -/** - * @file lcregistryupdate.h - * - * This file provides the definitions for the file server notifier class which enables - * lc server to listen to notifications(like new registration file addition/removal also for MMC removal/addition) - * from file server. - * - * @since S60 v5.0 - */ - -// SYSTEM INCLUDES -#include -#include - -//USER INCLUDE - - -//FORWARD DECLARATION -class MLcRegistryUpdateNotifier; - -/** - * @class CLcRegistryUpdate - * - * This class provides all the interface for the file server notifications - * (like new registration file addition/removal etc) from file server. - * - * @since S60 v5.0 - */ - -NONSHARABLE_CLASS( CLcRegistryUpdate ) : public CActive - { -public: - /** - * Constructs a new instance of CLcRegistryUpdate. - * - * @return The new instance of CLcRegistryUpdate object. - * @leave System wide error code if the object creation fails. - */ - static CLcRegistryUpdate* NewL(MLcRegistryUpdateNotifier& aFileNotifier, - RFs& aFs); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * server registry handler - */ - virtual ~CLcRegistryUpdate(); - -private: - /** - * C++ Default constructor - */ - CLcRegistryUpdate( MLcRegistryUpdateNotifier& aFileNotifier, RFs& aFs ); - - /** - * Private Second phase constructor - */ - void ConstructL(); - -public: - void StartFileNotifation(); - -private: // From CActive - /** - * Inherited from CActive - */ - void RunL(); - - /** - * Inherited from CActive - */ - void DoCancel(); - - /** - * Inherited from CActive - */ - TInt RunError( TInt aError ); - -private: //data member - MLcRegistryUpdateNotifier& iFileNotifier; - RFs& iFs; - RTimer iTimer; - TBool iFileNotifyPending; - }; - -#endif // C_LCREGISTRYUPDATE_H - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregxmlparserutils.h --- a/locationcentre/lcserver/inc/lcregxmlparserutils.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* See class description below -* -*/ - - - -#ifndef LCREGXMLPARSERUTILS_H -#define LCREGXMLPARSERUTILS_H - -// INCLUDES -#include -#include - - -// CLASS DECLARATION - -/** -* Helper class for using strings etc. -*/ -class LcRegXmlParserUtils - { -public: // New functions - /** - * Converts a string from UTF-8 to Unicode. - * - * @param aUtf8 A string in UTF-8 format. - * @param aUnicode A unicode string. - * @return System wide error code. - */ - static void Utf8ToUnicodeL( - /* IN */ const TDesC8& aUtf8, - /* IN */ TDes16& aUnicode - ); - - /** - * Checks if a string only contains whitespaces or not. - * - * @param aStr The string to check. - * @return ETrue if string only contain whitespaces, otherwise EFalse. - */ - static TBool OnlyWhiteSpaces( - /* IN */ const TDesC8& aStr - ); - }; - -#endif // LCREGXMLPARSERUTILS_H - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregxmltaginfo.h --- a/locationcentre/lcserver/inc/lcregxmltaginfo.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -/* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* See class description below -* -*/ - - - -#ifndef T_LCREGXMLTAGINFO_H -#define T_LCREGXMLTAGINFO_H - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lcregxmltagtype.h" - -// CLASS DECLARATION - -/** -* Helper class for converting from/to xml markup data. -* -*/ -class TLcRegXmlTagInfo - { -public: // Constructors and destructor - - /** - * C++ default constructor. - */ - TLcRegXmlTagInfo(); - -public: // New functions - /** - * Get tag type for the specified tag name. - * - * @param aTagName A tag name defining the current tag. - * @return Tag type for tag name. - */ - static TLcRegXmlTagType TagTypeL( - const TDesC8& aTagName ); - - /** - * Get tag attribute type for the specified tag name. - * - * @param aTagName A tag name defining the current tag. - * @return Tag type for tag attribute. - */ - static TLcRegXmlTagType TagAttrTypeL(TLcRegXmlTagType aTagType, - const TDesC8& aAttrName ); - -private: - static TBool EqualsTagL( - const TDesC8& aTag, - const TDesC& aDefinedTag - ); - }; - -#endif // T_LCREGXMLTAGINFO_H - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcregxmltagtype.h --- a/locationcentre/lcserver/inc/lcregxmltagtype.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - - -#ifndef T_LCREGXMLTAGTYPE_H -#define T_LCREGXMLTAGTYPE_H - -// INCLUDES -#include -#include - -// DATA TYPES - -enum TLcRegXmlTagType - { - /* - * All parent elements - */ - ELcXmlNothing = 0, - ELcXmlLocationCentreRegistration, - ELcXmlFeature, - ELcXmlApplication, - ELcXmlApplicationParams, - ELcXmlService, - - - //childs - ELcXmlRegFileName, - ELcXmlFileIcon, - ELcXmlRunMode, - ELcXmlWebService, - ELcXmlDocument, - ELcXmlApplicationNative, - ELcXmlApplicationJava, - - - /* - * Attributes for different elements - */ - ELcXmlServiceAttrUuid, - ELcXmlRegFileNameAttrLang, - ELcXmlFileIconAttrfile, - ELcXmlFileIconAttrFrame, - ELcXmlRunModeAttrDefault, - ELcXmlApplicationNativeAttrSid, - ELcXmlApplicationJavaAttrName, - ELcXmlWebServiceAttrUrl, - ELcXmlDocumentAttrFile, - ELcXmlUnknown - }; - - -// CONSTANTS - -_LIT(KLcXmlVersionNum, "1.0"); -_LIT(KLcXmlEncNameUTF8, "UTF-8"); -_LIT(KLcXmlEncNameUTT16, "UTF-16"); - -_LIT(KLcXmlLocationCentreRegistration, "location_centre_registration"); -_LIT(KLcXmlService, "service"); -_LIT(KLcXmlServiceAttrUuid, "uuid"); -_LIT(KLcXmlRegFileName, "name"); -_LIT(KLcXmlRegFileNameAttrLang, "lang"); -_LIT(KLcXmlFileIcon, "icon"); -_LIT8(KLcXmlFileIconAttrfile, "file"); -_LIT8(KLcXmlFileIconAttrFrame, "frame"); -_LIT(KLcXmlIconAttrfile, "file"); -_LIT(KLcXmlIconAttrFrame, "frame"); -_LIT(KLcXmlFeature, "feature"); -_LIT(KLcXmlRunMode, "runmode"); -_LIT(KLcXmlRunModeAttrDefault, "default"); -_LIT(KLcXmlApplication, "application"); -_LIT(KLcXmlApplicationNative, "native"); -_LIT(KLcXmlApplicationNativeAttrSid, "sid"); -_LIT(KLcXmlApplicationJava, "java"); -_LIT(KELcXmlApplicationJavaAttrName, "name"); -_LIT(KLcXmlApplicationParams, "params"); -_LIT(KLcXmlWebService, "webService"); -_LIT(KLcXmlWebServiceAttrUrl, "url"); -_LIT(KLcXmlDocument, "document"); -_LIT(KLcXmlDocumentAttrFile, "file"); - -//default run mode -_LIT(KLcAppRunModeStandalone, "standalone"); -_LIT(KLcAppRunModeChild, "child"); - - -//application character -_LIT(KLcAppCharSettings, "Settings"); -_LIT(KLcAppCharPersonalData, "PersonalData"); -_LIT(KLcAppCharNavigation, "Navigation"); -_LIT(KLcAppCharMaps, "Maps"); -_LIT(KLcAppCharLocationEvents, "LocationEvents"); -_LIT(KLcAppCharRemotePositioning, "RemotePositioning"); -_LIT(KLcAppCharNetworkService, "NetworkService"); -_LIT(KLcAppCharLocationMessaging, "LocationMessaging"); -_LIT(KLcAppCharLocalContent, "LocalContent"); -_LIT(KLcAppCharRemoteContent, "RemoteContent"); - -#endif // T_LCREGXMLTAGTYPE_H - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcserver.h --- a/locationcentre/lcserver/inc/lcserver.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -#ifndef C_LCSERVER_H -#define C_LCSERVER_H - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcserverengineobserver.h" - -// FORWARD DECLARATIONS -class CLcServerShutDownTimer; -class CLcServerEngine; - -/** - * Location Centre server. - * - * This class is inherited from CServer2 and not CPolicyServer. This is - * because there is no capability checking required for accessing the - * services offered by this server. - * - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( CLcServer ): public CServer2, - public MLcServerEngineObserver - { -public: - /** - * Constructs a new instance of Location Centre server. - * - * @return The new instance of Location Centre server object. - * @leave System wide error code if the object creation fails. - */ - static CLcServer* NewL(); - - /** - * Constructs a new instance of Location Centre server. - * Leaves the created instance on the cleanup stack. - * - * @return The new instance of Location Centre server object. - * @leave System wide error code if the object creation fails. - */ - static CLcServer* NewLC(); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * server - */ - virtual ~CLcServer(); - - /** - * Increments the number of Location centre sessions that are open. - * - * This is generally done by the session objects once they have - * successfully completed their session initialization. - */ - void IncrementSessions(); - - /** - * Decrements the number of Location centre sessions that are open. - * - * This is generally done by the session objects in their - * destrutors. - */ - void DecrementSessions(); - - -public: // Inherited from the base classes - /** - * Inherited from CServer2 - * - * @param aVersion The version number for the Location Centre server. - * @param aMessage The connect message from the client. - * @return Reference to the new session object. - */ - CSession2* NewSessionL( const TVersion& aVersion, - const RMessage2& aMessage ) const; - - /** - * Inherited from MLcServerEngineObserver - */ - void LcRegistryUpdated(); - -private: - /** - * C++ Default constructor - */ - CLcServer(); - - /** - * Second phase of the two phase constructor - */ - void ConstructL(); - -private: - /** - * Shutdown timer. - * - * Used to shutdown the server if there are no outstanding connections - * for a specified period of time. - * Owns. - */ - CLcServerShutDownTimer* iShutDownTimer; - - /** - * Number of Location centre server sessions. - */ - TInt iNumberofSessions; - - /** - * Location Centre Server Engine. - * - * Owns - */ - CLcServerEngine* iEngine; - }; - -#endif // C_LCSERVERSTARTUP_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcserverengine.h --- a/locationcentre/lcserver/inc/lcserverengine.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,219 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server Engine Object. -* -*/ - - -#ifndef C_LCSERVERENGINE_H -#define C_LCSERVERENGINE_H - -// SYSTEM INCLUDES -#include -#include - -// USER INCLUDES -#include "lcipcparams.h" -#include "lcregistryobserver.h" - -// FORWARD DECLARATIONS -class CLcRegistry; -class MLcServerEngineObserver; - -/** - * Location Centre server engine. - * - * This class handles all the requests for the Location Centre Server. The - * requests from the Server session objects are transferred to this object - * which then handles the requests. There is only one instance of this - * class for the entire Server Engine. This class also contains the Location - * Centre registry and observes for anychanges to the Registry. - * - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( CLcServerEngine ): public CBase, - public MLcRegistryObserver - { -public: - /** - * Constructs a new instance of Location Centre server engine. - * - - * @param[in] aObserver Observer to the Location Centre Server - * Engine. - * @return The new instance of Location Centre server engine object. - * @leave System wide error code if the object creation fails. - */ - static CLcServerEngine* NewL( - MLcServerEngineObserver& aObserver ); - - /** - * Constructs a new instance of Location Centre server engine. - * Leaves the created instance on the cleanup stack. - * - * @param[in] aObserver Observer to the Location Centre Server - * Engine. - * @return The new instance of Location Centre server engine object. - * @leave System wide error code if the object creation fails. - */ - static CLcServerEngine* NewLC( - MLcServerEngineObserver& aObserver ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * server engine - */ - virtual ~CLcServerEngine(); - - /** - * Services the Client Request. The Engine provides a one place - * destination for servicing all Client request. If the registry - * is under updation, then the request is queued and the request - * is served after the updation is completed. - * - * @param[in] aMessage The Message requets which needs to be served. - */ - void DoServiceL( const RMessage2& aMessage ); - -public: // Inherited from MLcRegistryObserver - void RegistryUnderUpdation(); - - void RegistryUpdated(); - -private: - /** - * C++ Default constructor - */ - CLcServerEngine( MLcServerEngineObserver& aObserver ); - - /** - * Second phase of the two phase constructor - */ - void ConstructL(); - - /** - * Services all the Requets which are outstanding. The implementation - * of the Engine class ensures that all this function is called - * only when the Engine is in a consistent state. - */ - void ServiceRequests(); - - /** - * Services a client request which is outstanding. - * - * @param[in] aMessage Request message which is outstanding - */ - void ServiceRequestL( RMessage2& aMessage ); - - /** - * Filters the List of Location based Application based on the - * System Characteristics and Application Characteristics. - * - * @param[in] aAppFilter Filter properties that need to be applied - * on the list of Location based Applications. - * @param[out] aFilteredAppArray Array of Location based Applications after - * filtering. - */ - void GetFilteredAppsL( - TLcLocationAppFilter& aAppFilter, - RLcIpcAppInfoArray& aFilteredAppArray ); - - /** - * Obtains a specified set of Location based Applications. - * - * @param[in] aSpecifedApps List of Specified Applications whose - * description is sought. - * @param[out] aFilteredAppArray Array of specified Location based - * Applications. - */ - void GetSpecifiedAppsL( - RLcIpcAppIdArray& aSpecifedApps, - RLcIpcAppInfoArray& aSpecifiedAppArray ); - /** - * Obtains a list of Location based Application without a specified set - * of Location based Applications. - * - * @param[in] aSpecifedApps List of Specified Applications whose - * description is sought. - * @param[out] aFilteredAppArray Array of Location based Applications - * without the specified list. - */ - void GetWithoutSpecifiedAppsL( - RLcIpcAppIdArray& aSpecifedApps, - RLcIpcAppInfoArray& aSpecifiedAppArray ); - - /** - * Compares a filter value under specifed configurations. - * In the usage of this function, the Engine passes the filter requested by - * the Client application as the first parameter and compares it with - * the filter of the Location based Application to determine whether the - * application satisfies the required filter configuration. - * - * @param[in] aFilter New filter parameter. - * @param[in] aFiltertoCompare Filter to which the filter passed in the first - * argument must be compared with. - * @param[in] aFilterConfig Filter configuration which should be used for - * comparison. - */ - TBool Compare( TUint32 aFilter, - TUint32 aFiltertoCompare, - TInt aFilterConfig ); - - /** - * Compares the SID of the application being processed currently with that of - * the message which is handled. This is needed to ensure that the application - * which requested for the list of Location based Applications does not - * figure in the list requested. - * - * @param[in] aAppSid SID of the application. - * @return TBool, ETrue if the SID matches - * EFalse if the SID doesnt match - */ - TBool IsSameSID( const TDesC& aAppSid ); - -private: - /** - * Location Centre Registry object. - * - * Owns. - */ - CLcRegistry* iRegistry; - - /** - * Array of messages which need to be serviced. This class doesn't - * own these message objects but just holds a reference to them. - */ - RPointerArray< RMessage2 > iMessageArray; - - /** - * Observer to the Location Centre Server Engine class. - */ - MLcServerEngineObserver& iObserver; - - /** - * Boolean value to indicate whether the Location Centre Registry - * is currently under updation. This is required because we - * cannot fetch the Registry values when its under updation. - */ - TBool iRegistryUnderUpdate; - - /** - * SID of the process which has initiated the current request - */ - TUint32 iCurrentRequestorSid; - - }; - -#endif // C_LCSERVERENGINE_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcserverengineobserver.h --- a/locationcentre/lcserver/inc/lcserverengineobserver.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Observer class defintion to notify the Location Centre Server -* to any updations in the Location Centre Engine. -* -*/ - - -#ifndef M_LCSERVERENGINEOBSERVER_H -#define M_LCSERVERENGINEOBSERVER_H - -// SYSTEM INCLUDES -#include - -/** - * @class MLcServerEngineObserver - * Observer class to notify updations to the Location Centre Server Engine. - * - * This observer will provide the notification when there is an updation to - * the Location Centre Server Engine due to updations in the underlying - * Location Centre Registry. The Server classes is expected to communicate - * the information to all the Clients instances which have registered for - * such notifcations. - * - * @since S60 v5.0 - */ -class MLcServerEngineObserver - { -public: - /** - * Notification to notify the updation of Location Centre Registry. - * - * @since S60 v5.0 - */ - virtual void LcRegistryUpdated() = 0; - }; - -#endif // M_LCSERVERENGINEOBSERVER_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcserverinterface.h --- a/locationcentre/lcserver/inc/lcserverinterface.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,166 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Private Interface to the Location Centre Server. -* -*/ - - -#ifndef LCSERVERINTERFACE_H -#define LCSERVERINTERFACE_H - -// SYSTEM INCLUDES -#include - -/** - * Location Centre Server Name. - * - * The name begins with a ! to ensure that this server is protected. This - * prevents faking of this server by any other malicious application. - */ - _LIT( KLocationCentreServerName, "!LocationCentreServer" ); - -/** - * Executable name of the server. This is required to be exposed because - * the server is a transient server and not a permanent server and hence - * has to be started by the Client. - */ - _LIT( KLocationCentreServerExe, "lcserver" ); - -/** - * Location Centre server Version numbers - */ -const TUint KLcServerMajorVersionNumber = 1; -const TUint KLcServerMinorVersionNumber = 0; -const TUint KLcServerBuildVersionNumber = 0; - -/** - * IPC Message Types - */ - enum TLcServerMsgType - { - /** - * This message is used to get the length of the buffer that needs to - * be passed to the Location Centre Server inorder to retieve information - * about Location based Applications registered with Location Centre. - * The Client also needs to specify the filtering that needs to be - * applied to the set. - * This message is to be used as a precurssor to the next message - * ELcFilteredApps. This message can be used either in the synchronous or - * the asynchronous variant. - * - * IPC Parameter Description - * Arg1 - Package buffer Containing the Filter arguments - * Arg2 - TDes, pointing to the buffer which would be filled with the - * Length of the Application information structure. - */ - ELcFilteredAppsBufferLength = 1, - - /** - * Retrives information regarding Location based Applications - * registered with Location Centre. The Client also needs to specify - * the filtering that needs to be applied to the set.This function can - * be used either in the synchronous or the asynchronous variant. - * The function takes a buffer which would be filled with the filtered - * set of Location Based Application structures. - * - * IPC Parameter Description - * Arg1 - Package buffer Containing the Filter arguments - * Arg2 - TDes, pointing to the buffer which would be filled with the - * Application information structure. - */ - ELcFilteredApps = 2, - - /** - * Cancels an outstanding request for obtaining a filtered set of - * Location based Applications and Contents/Services. - */ - ELcCancelFilteredApps = 3, - - - /** - * This message is used to get the length of the buffer that needs to - * be passed to the Location Centre Server inorder to retieve information - * about Location based Applications registered with Location Centre. - * The Client also needs to specify the set of Location based Applications - * which would be used for filtering. - * This message is to be used as a precurssor to the next message - * ELcSpecifiedApps. This message can be used either in the synchronous or - * the asynchronous variant. - * - * IPC Parameter Description - * Arg1 - Package buffer Containing the array of Location based Applications - * which would be used for filtering. - * Arg2 - TBool, Boolean value specifying whether the list of applications - * should be included or excluded. - * Arg3 - TDes, pointing to the buffer which would be filled with the - * Length of the Application information structure. - */ - ELcSpecifiedAppsBufferLength = 4, - - /** - * Retrives information regarding Location based Applications - * registered with Location Centre. The Client also needs to specify the - * set of Location based Applications which would be used for filtering. - * This function can be used either in the synchronous or the asynchronous - * variant. The function takes a buffer which would be filled with the - * filtered set of Location Based Application structures. - * - * IPC Parameter Description - * Arg1 - Package buffer Containing the array of Location based Applications - * which would be used for filtering. - * Arg2 - TBool, Boolean value specifying whether the list of applications - * should be included or excluded. - * Arg2 - TDes, pointing to the buffer which would be filled with the - * Application information structure. - */ - ELcSpecifiedApps = 5, - - /** - * Gets the Location Application information structure's length - * - * IPC Parameter Description - * Arg1 - Package buffer containing the Location based Application - * Identifier. - * Arg2 - TDes, pointing to the buffer which would be filled with the - * Length of the Application information structure. - */ - ELcAppInfoLength = 6, - - /** - * Gets the Location Application information structure - * - * IPC Parameter Description - * Arg1 - Package buffer containing the Location based Application - * Identifier. - * Arg2 - TDes, pointing to the buffer which would be filled with the - * Application information structure. - */ - ELcAppInfo = 7, - - /** - * Registers an Observer which notifies any changes to the Location - * Centre Registry. The Client Application will be notified incase - * any changes occur before the Observer is removed using the - * ELcRemoveObserver message. - */ - ERegisterObserver = 8, - - /** - * Removes an Observer which is set using the ELcRegisterObserver - * message. - */ - ERemoveObserver = 9 - }; - -#endif // LCSERVERINTERFACE_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcserversession.h --- a/locationcentre/lcserver/inc/lcserversession.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server side session object. -* -*/ - - -#ifndef C_LCSERVERSESSION_H -#define C_LCSERVERSESSION_H - -// SYSTEM INCLUDES -#include - -// FORWARD DECLARATIONS -class CLcServer; -class CLcServerEngine; - -/** - * Location Centre server side session object. - * - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( CLcServerSession ): public CSession2 - { -public: - /** - * Constructs a new instance of Location Centre server side session object. - * - * @param[in] aLcServer Reference to the server side object. - * @param[in] aLcServerEngine Reference to the Location Centre Server Engine. - * @return The new instance of Location Centre server side session object. - * @leave System wide error code if the object creation fails. - */ - static CLcServerSession* NewL( CLcServer& aLcServer, - CLcServerEngine& aLcServerEngine ); - - /** - * Constructs a new instance of Location Centre server side session object. - * Leaves the created instance on the cleanup stack. - * - * @param[in] aLcServer Reference to the server side object. - * @param[in] aLcServerEngine Reference to the Location Centre Server Engine. - * @return The new instance of Location Centre server side session object. - * @leave System wide error code if the object creation fails. - */ - static CLcServerSession* NewLC( CLcServer& aLcServer, - CLcServerEngine& aLcServerEngine ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * server side session object. - */ - virtual ~CLcServerSession(); - - /** - * Notifies the Server session class that the Location Centre Registry has - * been updated. This enables the session to notify the corresponding - * Location Centre Client which is observing for these changes. - */ - void RegistryUpdated(); - -public: // Inherited from the base classes - /** - * Inherited from the CSession2 class - * - * Service handler for all messages that are directed to this session. - */ - void ServiceL( const RMessage2& aMessage ); - - /** - * From CSession2 - * - * Error function invoked when the ServiceL message leaves. - */ - void ServiceError( const RMessage2& aMessage, - TInt aError ); - -private: - /** - * C++ Default constructor - * - * @param aLcServer Reference to the server side object. - */ - CLcServerSession( CLcServer& aLcServer, - CLcServerEngine& aLcServerEngine ); - - /** - * Second phase of the two phase constructor - */ - void ConstructL(); - -private: - /** - * Reference to the Server side object. - * - * Required to notify the creation and destruction of a session - * This is necessary to ensure that the server shut down when there - * are no sessions outstanding. - */ - CLcServer& iLcServer; - - /** - * Boolean flag to indicate that this class has incremented the - * number of sessions in the server. Hence, the need to decrement - * the count on termination. - */ - TBool iDecrementSession; - - /** - * Reference to the Location Centre Server Engine. - */ - CLcServerEngine& iEngine; - - /** - * Boolean value to indicate that a notification request is - * outstanding. - */ - TBool iNotificationOutStanding; - - TBool iNotifyPending; - - /** - * RMessage2 object to notify the changes in Location Centre - * registry. - */ - RMessage2 iObserverMessage; - - }; - -#endif // C_LCSERVERSESSION_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcservershutdowntimer.h --- a/locationcentre/lcserver/inc/lcservershutdowntimer.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Shutdown timer for Location Centre server. -* -*/ - - -#ifndef C_LCSERVERSHUTDOWNTIMER_H -#define C_LCSERVERSHUTDOWNTIMER_H - -// SYSTEM INCLUDES -#include - -/** - * Shutdown timer for Location Centre Server. - * - * This class is used to ensure that Location Centre server does not run - * unnecessarily when there are no outstanding connections. The server object - * uses this class to initiate a timer when there are no connections. If the - * timer is not cancelled before it fires, then this class shuts down the - * Active scheduler hence termination the Location Centre server. - * - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( CLcServerShutDownTimer ): public CTimer - { -public: - /** - * Constructs a new instance of Location Centre server shut down timer. - * - * @return The new instance of Location Centre server shut down timer. - * @leave System wide error code if the object creation fails. - */ - static CLcServerShutDownTimer* NewL(); - - /** - * Constructs a new instance of Location Centre server shut down timer. - * Leaves the created instance on the cleanup stack. - * - * @return The new instance of Location Centre server shut down timer. - * @leave System wide error code if the object creation fails. - */ - static CLcServerShutDownTimer* NewLC(); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * server shutdown timer. - */ - virtual ~CLcServerShutDownTimer(); - - /** - * Starts the shutdown timer. The funtion doesn't do anything if the - * timer is already running. - */ - void StartTimer(); - - /** - * Stops an outstanding timer request. - */ - void StopTimer(); - -public: // Inherited from base classes. - - /** - * Inherited from CActive - */ - void RunL(); - - /** - * Inherited from CActive - */ - TInt RunError( TInt aError ); - -private: - /** - * C++ Default constructor. - */ - CLcServerShutDownTimer(); - - /** - * Second phase of the two phase constructor. - */ - void ConstructL(); - -private: - /** - * Location Centre Shutdown timer value in MicroSeconds - */ - TInt iShutDownTimerValue; - - }; - -#endif // C_LCSERVERSHUTDOWNTIMER_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/inc/lcserverstartup.h --- a/locationcentre/lcserver/inc/lcserverstartup.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server start up. -* -*/ - - -#ifndef C_LCSERVERSTARTUP_H -#define C_LCSERVERSTARTUP_H - -// SYSTEM INCLUDES -#include - -/** - * Location Centre server start up routines. - * - * It contains static funtions which start up the Location Centre server. - * - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( LcServerStartup ) - { -public: - /** - * Starts the Location Centre server. - * - * @since S60 v5.0 - * @return KErrNone, If the server has been started successfully. - * System wide error codes incase the startup fails. - */ - static TInt StartLocationCentreServer(); - -private: - /** - * Starts the Location Centre server. - * - * @since S60 v5.0 - * @leave System wide error codes incase the startup fails. - */ - static void StartLocationCentreServerL(); - }; - -#endif // C_LCSERVERSTARTUP_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcregappinfo.cpp --- a/locationcentre/lcserver/src/lcregappinfo.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,245 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Registration information for a Location based Application. -* -*/ - - - -// SYSTEM INCLUDES -#include -#include - -// USER INCLUDES -#include "lcregappinfo.h" -#include "lcregappnamelangid.h" -// CONST DEFINATION - - -// CLASS DEFINATION -/** - * Maximum length of a service name can be - */ -const TInt KAppNameMaxLength = 50; - -// ----- Member funtions for CLcRegAppInfo --------------------------------- - -// --------------------------------------------------------------------------- -// CLcRegAppInfo::CLcRegAppInfo -// --------------------------------------------------------------------------- -// -CLcRegAppInfo::CLcRegAppInfo( ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here.Initiallize all the variable here - iFilePresenceStatus = ETrue; - } - -// --------------------------------------------------------------------------- -// CLcRegAppInfo::~CLcRegAppInfo -// --------------------------------------------------------------------------- -// -CLcRegAppInfo::~CLcRegAppInfo() - { - // C++ Destructor. Free all resources associated with this class. - iAppNameArray.ResetAndDestroy(); - iAppNameArray.Close(); - iAppLangArray.Reset(); - iAppLangArray.Close(); - iFileName.Delete( 0,iFileName.Length() ); - } - -// --------------------------------------------------------------------------- -// CLcRegAppInfo* CLcRegAppInfo::NewL -// --------------------------------------------------------------------------- -// -CLcRegAppInfo* CLcRegAppInfo::NewL() - { - CLcRegAppInfo* self = new ( ELeave )CLcRegAppInfo(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppInfo::SetAppNameL -// --------------------------------------------------------------------------- -// -void CLcRegAppInfo::SetAppNameL( const TDesC& aName ) - { - HBufC* nameBuf = NULL; - if( aName.Length() > KAppNameMaxLength ) - { - nameBuf = HBufC::NewL( KAppNameMaxLength ); - nameBuf->Des().Copy( aName.Left( KAppNameMaxLength )); - } - else - { - nameBuf = HBufC::NewL( aName.Length() ); - nameBuf->Des().Copy( aName ); - } - User::LeaveIfError( iAppNameArray.Append( nameBuf ) ); - } - -// --------------------------------------------------------------------------- -// TInt CLcRegAppInfo::SetNameLanguage -// --------------------------------------------------------------------------- -// -TInt CLcRegAppInfo::SetNameLanguage( const TDesC& aNameLang ) - { - for (TInt i=0; i< NUMLANGOPTIONS; i++) - { - if ( !KLangOptions[i].iName.Compare( aNameLang ) ) - { - return iAppLangArray.Append( ( TUint32 )KLangOptions[i].iNumber ); - } - } - return KErrNotFound; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppInfo::SetAppLangSpecificNameL -// --------------------------------------------------------------------------- -// -void CLcRegAppInfo::SetAppLangSpecificNameL( RFs& aFs ) - { - TLanguage langcode = User::Language(); //current language - TInt index = iAppLangArray.Find( ( TUint32 )langcode ); - if( index != KErrNotFound ) - { - if( index < iAppNameArray.Count() ) - { - SetNameL( *iAppNameArray[index] ); - } - } - else - { - RArray langs; - CleanupClosePushL( langs ); - BaflUtils::GetDowngradePathL( aFs,langcode,langs ); - for(TInt i = 0; i < iAppLangArray.Count(); ++i) - { - index = langs.Find( ( TLanguage )iAppLangArray[i] ); - if( index != KErrNotFound ) - { - break; - } - } - if( index == KErrNotFound ) - { - index = langs.Count() - 1; - } - if( index >= 0 && index < iAppNameArray.Count() ) - { - SetNameL( *iAppNameArray[index] ); - } - CleanupStack::PopAndDestroy( &langs ); - } - iAppNameArray.ResetAndDestroy(); - iAppNameArray.Close(); - iAppLangArray.Reset(); - iAppLangArray.Close(); - } - -// --------------------------------------------------------------------------- -// void CLcRegAppInfo::SetFileNameL -// --------------------------------------------------------------------------- -// -void CLcRegAppInfo::SetFileNameL( const TDesC& aFile ) - { - if( aFile.Length() <= KMaxFileName ) - { - iFileName.Copy( aFile ); - } - else - { - User::Leave( KErrBadName ); - } - } - -// --------------------------------------------------------------------------- -// TFileName CLcRegAppInfo::FileName -// --------------------------------------------------------------------------- -// -TFileName CLcRegAppInfo::FileName() - { - return iFileName; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppInfo::IsAppPresent -// --------------------------------------------------------------------------- -// -TBool CLcRegAppInfo::IsAppPresent( ) - { - return iFilePresenceStatus; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppInfo::SetFilePresenceStatus -// --------------------------------------------------------------------------- -// -void CLcRegAppInfo::SetFilePresenceStatus( TBool aPresenceStatus ) - { - iFilePresenceStatus = aPresenceStatus; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppInfo::SetMmcId -// --------------------------------------------------------------------------- -// -void CLcRegAppInfo::SetMmcId( TUint aUid ) - { - iMmcId = aUid; - } - -// --------------------------------------------------------------------------- -// TFileName CLcRegAppInfo::MmcId -// --------------------------------------------------------------------------- -// -TUint CLcRegAppInfo::MmcId() - { - return iMmcId; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppInfo::SetArrayIndex -// --------------------------------------------------------------------------- -// -void CLcRegAppInfo::SetArrayIndex( TInt aIndex ) - { - iIndex = aIndex; - } - -// --------------------------------------------------------------------------- -// TFileName CLcRegAppInfo::Index -// --------------------------------------------------------------------------- -// -TInt CLcRegAppInfo::Index() - { - return iIndex; - } - -// --------------------------------------------------------------------------- -// TBool CLcRegAppInfo::IsAppNamePresent -// --------------------------------------------------------------------------- -// -TBool CLcRegAppInfo::IsAppNamePresent() - { - if( iAppNameArray.Count() == 0 && - iAppLangArray.Count() == 0 ) - { - return EFalse; - } - return ETrue; - } -//End of file diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcregapporder.cpp --- a/locationcentre/lcserver/src/lcregapporder.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,320 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcregapporder.h" -#include "lcprivatecrkeys.h" -#include "lcregappstore.h" - -// CONSTANT DEFINTIONS -const TInt KLcNoofDigitsInInteger = 4; -const TInt KLcMaxBufLength = 1024; - -// ----- Member funtions for CLcRegAppOrder --------------------------------- - -// --------------------------------------------------------------------------- -// CLcRegAppOrder::CLcRegAppOrder -// --------------------------------------------------------------------------- -// -CLcRegAppOrder::CLcRegAppOrder( CLcRegAppStore& aLcRegAppStore ) - :iLcRegAppStore( &aLcRegAppStore ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here.Initiallize all the variable here - } - -// --------------------------------------------------------------------------- -// CLcRegAppOrder::~CLcRegAppOrder -// --------------------------------------------------------------------------- -// -CLcRegAppOrder::~CLcRegAppOrder() - { - // C++ Destructor. Free all resources associated with this class. - delete iRepository; - iRepository = NULL; - // clear the top key value. - iTopArray.ResetAndDestroy(); - iTopArray.Close(); - // clear the bottom key value - iBottomArray.ResetAndDestroy(); - iBottomArray.Close(); - // clear middle uuid array - iMiddleArray.ResetAndDestroy(); - iMiddleArray.Close(); - } - -// --------------------------------------------------------------------------- -// CLcRegAppOrder* CLcRegAppOrder::NewL -// --------------------------------------------------------------------------- -// -CLcRegAppOrder* CLcRegAppOrder::NewL( CLcRegAppStore& aLcRegAppStore ) - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcRegAppOrder* self = new ( ELeave )CLcRegAppOrder( aLcRegAppStore ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppOrder::ConstructL -// --------------------------------------------------------------------------- -// -void CLcRegAppOrder::ConstructL() - { - // Create the Central repository object for manipulating Avkon Central - // repository for application order key - iRepository = CRepository::NewL( KCRUidLocationCentre ); - HBufC* buffer = HBufC::NewLC( NCentralRepositoryConstants::KMaxUnicodeStringLength ); - TPtr bufferPtr( buffer->Des() ); - // get the top order services - User::LeaveIfError( iRepository->Get( ELcTop, bufferPtr ) ); - ParseCenRepKeyL( iTopArray, bufferPtr ); - // get the middle order services - User::LeaveIfError( iRepository->Get( ELcBottom, bufferPtr ) ); - ParseCenRepKeyL( iBottomArray, bufferPtr ); - // get the bottom order services if any - TBool isMidleKeySet = EFalse; - User::LeaveIfError( iRepository->Get( ELcMiddle, isMidleKeySet ) ); - - if( isMidleKeySet ) - { - // Allocate the id Array buffer - CBufFlat* idArrayBuf = CBufFlat::NewL( KLcMaxBufLength ); - CleanupStack::PushL( idArrayBuf ); - idArrayBuf->ResizeL( KLcMaxBufLength ); - - TPtr8 idArrayPtr( idArrayBuf->Ptr(0)); - - iLcRegAppStore->GetUuidValueL( idArrayPtr ); - - if( idArrayPtr.Length() > 0 ) - { - // Create a Read buffer stream to read the App Ids - RBufReadStream appReadStream( *idArrayBuf, 0 ); - CleanupClosePushL( appReadStream ); - - iMiddleArray.ResetAndDestroy(); - - // Internalize the structure to obtain the Actual list of Ids - iMiddleArray.InternalizeL( appReadStream ); - CleanupStack::PopAndDestroy(); // appReadStream - } - CleanupStack::PopAndDestroy( idArrayBuf ); - } - else - { - // Deep RFS handling - iLcRegAppStore->AddDataToTableL( KNullDesC8 ); - } - - CleanupStack::PopAndDestroy( buffer ); - } - -// --------------------------------------------------------------------------- -// void CLcRegAppOrder::ParseCenRepKey -// --------------------------------------------------------------------------- -// -void CLcRegAppOrder::ParseCenRepKeyL( RPointerArray< HBufC >& aArray, - const TDesC& aKey ) - { - // If the length of the buffer is less than 4 digits, then terminate - // the function. - if( aKey.Length() < KLcNoofDigitsInInteger ) - { - return; - } - TUint count = ParseInteger( aKey ); - TInt currentlength = KLcNoofDigitsInInteger; - - for ( TInt i = 0; i < count; i ++ ) - { - // If the length of the buffer is less than 4 digits, then terminate - // the function. - if( aKey.Right( aKey.Length() - currentlength ).Length() < KLcNoofDigitsInInteger ) - { - return; - } - - TUint32 len = ParseInteger( aKey.Right( aKey.Length() - currentlength )); - currentlength += KLcNoofDigitsInInteger; - - TPtrC buffer( aKey.Right( aKey.Length() - currentlength )); - - // If the length of the buffer is less than the length obtained from the - // previous operation then terminate the function. - if( buffer.Length() < len ) - { - return; - } - HBufC* identifier = HBufC::NewLC( currentlength ); - identifier->Des().Copy( buffer.Ptr(), len ); - - TInt error = aArray.Append( identifier ); - if( error ) - { - CleanupStack::PopAndDestroy( identifier ); - } - else - { - CleanupStack::Pop( identifier ); - } - currentlength += len; - } - } - -// --------------------------------------------------------------------------- -// void CLcRegAppOrder::ParseInteger -// --------------------------------------------------------------------------- -// -TUint32 CLcRegAppOrder::ParseInteger( const TDesC& aBuffer ) - { - TPtrC buffer( aBuffer.Ptr(), KLcNoofDigitsInInteger ); - - TBuf8< KLcNoofDigitsInInteger > integerBuf; - integerBuf.Copy( buffer ); - - TUint8* currentPtr = const_cast< TUint8 *>( integerBuf.Ptr()); - TUint32 integer = 0; - for( TInt i = 0; i < KLcNoofDigitsInInteger; i++ ) - { - integer += ( integer * 10 ) + ( currentPtr[i] - '0' ); - } - return integer; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppOrder::GetRegisteredAppOrder -// --------------------------------------------------------------------------- -// -TInt CLcRegAppOrder::GetRegisteredAppOrder(const TDesC& aUuid, - TInt& aRowPos ) - { - // search the identifier in the top array. - for(TInt i = 0; i Des().Compare( aUuid ) ) - { - aRowPos = i; - return KErrNone; - } - } - - // search the identifier in the middle array. - for(TInt i = 0; i Des().Compare( aUuid ) ) - { - aRowPos = iTopArray.Count() + i; - return KErrNone; - } - } - - // search the identifier in the top array. - for(TInt i = 0; i Des().Compare( aUuid ) ) - { - aRowPos = iTopArray.Count() + iMiddleArray.Count() + i; - return KErrNone; - } - } - return KErrNotFound; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppOrder::RemoveArray -// --------------------------------------------------------------------------- -// -void CLcRegAppOrder::RemoveArrayL(const TDesC& aUuid ) - { - // search the identifier in the middle array. - for(TInt i = 0; i Des().Compare( aUuid ) ) - { - iMiddleArray.Remove(i); - // now delete the identifier - delete identifier; - identifier = NULL; - break; - } - } - - // Create the buffer for packing the Application Information - // structure and pack the contents into this buffer - CBufFlat* buffer = CBufFlat::NewL( iMiddleArray.BufferLength()); - CleanupStack::PushL( buffer ); - - RBufWriteStream writeStream( *buffer, 0 ); - CleanupClosePushL( writeStream ); - iMiddleArray.ExternalizeL( writeStream ); - CleanupStack::PopAndDestroy(); // writeStream - iLcRegAppStore->AddDataToTableL( buffer->Ptr(0)); - CleanupStack::PopAndDestroy( buffer ); - // Now get the id index. - if( iMiddleArray.Count() == 0 ) - { - User::LeaveIfError( iRepository->Set( ELcMiddle, 0 )); - } - } - -// --------------------------------------------------------------------------- -// void CLcRegAppOrder::AppendArray -// --------------------------------------------------------------------------- -// -TInt CLcRegAppOrder::AppendArrayL(const TDesC& aUuid ) - { - HBufC* identifier = HBufC::NewL( aUuid.Length() ); - identifier->Des().Copy( aUuid ); - User::LeaveIfError( iMiddleArray.Append( identifier )); - // Create the buffer for packing the Application Information - // structure and pack the contents into this buffer - CBufFlat* buffer = CBufFlat::NewL( iMiddleArray.BufferLength()); - CleanupStack::PushL( buffer ); - - RBufWriteStream writeStream( *buffer, 0 ); - CleanupClosePushL( writeStream ); - iMiddleArray.ExternalizeL( writeStream ); - CleanupStack::PopAndDestroy(); // writeStream - - iLcRegAppStore->AddDataToTableL( buffer->Ptr(0)); - - CleanupStack::PopAndDestroy( buffer ); - - TInt index; - if ( GetRegisteredAppOrder(aUuid, index ) == KErrNotFound ) - { - User::Leave( KErrNotFound ); - } - User::LeaveIfError( iRepository->Set( ELcMiddle, 1 )); - return index; - } - -//End of file - - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcregappstore.cpp --- a/locationcentre/lcserver/src/lcregappstore.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,287 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -// SYSTEM INCLUDES -#include // CDesCArrayFlat -#include // CFileStore & CPermanentFileStore -#include // file helpers - -// USER INCLUDES -#include "lcregappstore.h" - -// CONSTANT DEFINTION -_LIT(KLcPrivateDbName,"lcregappinfo.db"); // Name of the Database file for storing registered app info. -_LIT(KAppInfoTable, "AppInfo"); // Name of the one table -_LIT(KAppUUIdCol, "UUID"); // First column - -const TInt KMaxColumnLength = 32*1024; - -// ----- Member funtions for CLcRegAppStore --------------------------------- - -// --------------------------------------------------------------------------- -// CLcRegAppStore::CLcRegAppStore -// --------------------------------------------------------------------------- -// -CLcRegAppStore::CLcRegAppStore( RFs& aFs ) - :iFsSession( aFs ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here.Initiallize all the variable here - } - -// --------------------------------------------------------------------------- -// CLcRegAppStore::~CLcRegAppStore -// --------------------------------------------------------------------------- -// -CLcRegAppStore::~CLcRegAppStore() - { - // C++ Destructor. Free all resources associated with this class. - Close(); - } - -// --------------------------------------------------------------------------- -// CLcRegAppStore* CLcRegAppStore::NewL -// --------------------------------------------------------------------------- -// -CLcRegAppStore* CLcRegAppStore::NewL( RFs& aFs ) - { - CLcRegAppStore* self = NewLC( aFs ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcRegAppStore* CLcRegAppStore::NewLC -// --------------------------------------------------------------------------- -// -CLcRegAppStore* CLcRegAppStore::NewLC( RFs& aFs ) - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcRegAppStore* self = new ( ELeave )CLcRegAppStore( aFs ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppStore::ConstructL -// --------------------------------------------------------------------------- -// -void CLcRegAppStore::ConstructL() - { - // Obtain the Db file path - User::LeaveIfError( iFsSession.SessionPath( iLcRegdbFile ) ); - - // Create the Database Directory ie the private directory of the process - if( !BaflUtils::PathExists( iFsSession, iLcRegdbFile ) ) - { - User::LeaveIfError( iFsSession.MkDirAll( iLcRegdbFile ) ); - } - - // Generate the Db file - iLcRegdbFile.Append( KLcPrivateDbName ); - - // Check if the db file is exists or not. - if( BaflUtils::FileExists( iFsSession, iLcRegdbFile ) ) - { - OpenDbL( iLcRegdbFile ); - } - else - { - CreateDbL( iLcRegdbFile ); - } - } - -// --------------------------------------------------------------------------- -// void CLcRegAppStore::OpenDbL -// --------------------------------------------------------------------------- -// -void CLcRegAppStore::OpenDbL( const TFileName& aRegAppInfoFile ) - { - // if it is already open then close it. - Close(); - // Check if the db file is exists or not. - if( BaflUtils::FileExists( iFsSession, aRegAppInfoFile ) ) - { - TRAPD(error, - iFileStore = CPermanentFileStore::OpenL( iFsSession, aRegAppInfoFile, - EFileRead|EFileWrite ); - //Set file store type - iFileStore->SetTypeL( iFileStore->Layout() ); - iRegAppInfoDb.OpenL( iFileStore,iFileStore->Root() ) - ); - - if( !error ) - { - iDbStatus = ELcDbOpen; - } - else - { - User::Leave( error ); - } - } - } - -// --------------------------------------------------------------------------- -// void CLcRegAppStore::CreateDbL() -// -// Create a new database. The database will be in exclusive access mode. -// --------------------------------------------------------------------------- -void CLcRegAppStore::CreateDbL( const TFileName& aRegAppInfoFile ) - { - // if it is already open then close it. - Close(); - - // Create empty database file. - TRAPD(error, - iFileStore = CPermanentFileStore::ReplaceL(iFsSession, aRegAppInfoFile, - EFileRead|EFileWrite); - iFileStore->SetTypeL( iFileStore->Layout() );// Set file store type - TStreamId id = iRegAppInfoDb.CreateL( iFileStore );// Create stream object - iFileStore->SetRootL( id );// Keep database id as root of store - iFileStore->CommitL();// Complete creation by commiting - // Create appinfo tables - CreateAppInfoTableL(); - ); - - if( !error ) - { - iDbStatus = ELcDbCreate; - } - else - { - User::Leave( error ); - } - } - -// --------------------------------------------------------------------------- -// void CLcRegAppStore::Close() -// -// Close the database. -// --------------------------------------------------------------------------- -void CLcRegAppStore::Close() - { - iRegAppInfoDb.Close(); - delete iFileStore; - iFileStore = NULL; - } - -// --------------------------------------------------------------------------- -// void CLcRegAppStore::CreateAppInfoTableL() -// -// Creates Appinfo table. Leaves, if the table cannot be created. -// --------------------------------------------------------------------------- -void CLcRegAppStore::CreateAppInfoTableL() - { - // Specify columns for appinfo table - TDbCol uuidCol( KAppUUIdCol, EDbColLongText8,KMaxColumnLength ); // Using default length - - // Add the columns to column set - CDbColSet* appInfoColSet = CDbColSet::NewLC(); - appInfoColSet->AddL( uuidCol ); - - // Create the appinfo table - User::LeaveIfError( iRegAppInfoDb.CreateTable(KAppInfoTable, - *appInfoColSet) ); - CleanupStack::PopAndDestroy( appInfoColSet ); - } - -// --------------------------------------------------------------------------- -// void CLcRegAppStore::AddDataToTable() -// -// Add item to database using RDbTable API -// --------------------------------------------------------------------------- -void CLcRegAppStore::AddDataToTableL( const TDesC8& aAppUid ) - { - // Create an updateable database table object - RDbTable table; - CleanupClosePushL( table ); - - User::LeaveIfError( table.Open( iRegAppInfoDb, KAppInfoTable, table.EUpdatable )); - - CDbColSet* dbColSet = table.ColSetL(); - CleanupStack::PushL( dbColSet ); - - //table.Reset(); - TBool lRowPos = table.FirstL(); - - TDbColNo colNo = dbColSet->ColNo(KAppUUIdCol); - - // Do first time insert and then do Update - if( iDbStatus == ELcDbOpen && lRowPos ) - { - table.UpdateL(); - table.SetColL( colNo, aAppUid ); // col = 1 - } - else - { - table.InsertL(); - table.SetColL( colNo, aAppUid ); // col = 1 - iDbStatus = ELcDbOpen; - } - - table.PutL(); // Complete changes (the insertion) - - CleanupStack::PopAndDestroy( dbColSet ); - CleanupStack::PopAndDestroy(); - } - -// --------------------------------------------------------------------------- -// void CLcRegAppStore::GetUuidValueL() -// -// Get packed Uuid from database according to column name -// --------------------------------------------------------------------------- -void CLcRegAppStore::GetUuidValueL(TDes8& aUuid) - { - aUuid.Zero(); - if(!BaflUtils::FileExists( iFsSession, iLcRegdbFile ) ) - { - return; - } - - _LIT(KSelectAll,"SELECT * FROM AppInfo" ); - - // Create a view on the database - RDbView view; - CleanupClosePushL( view ); - TInt lResult = view.Prepare( iRegAppInfoDb, TDbQuery( KSelectAll ), view.EReadOnly ); - if( lResult == KErrNone ) - { - lResult = view.EvaluateAll(); - - CDbColSet* colSet = view.ColSetL(); - CleanupStack::PushL( colSet ); - - // Append each result row - if ( view.FirstL() ) - { - view.GetL(); - TDbColNo colNo = colSet->ColNo( KAppUUIdCol ); - RDbColReadStream readStream; // A stream object for long columns - readStream.OpenLC( view, colNo ); - readStream.ReadL( aUuid, view.ColLength( colNo ) ); - CleanupStack::Pop(); //readStream - readStream.Close(); - } - CleanupStack::PopAndDestroy( colSet ); - } - CleanupStack::PopAndDestroy( &view ); - } -// End of file - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcregistrationparser.cpp --- a/locationcentre/lcserver/src/lcregistrationparser.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,970 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include - -// USER INCLUDE -#include "lcregistrationparser.h" -#include "lcregxmltaginfo.h" -#include "lcregxmlparserutils.h" -#include "lcregxmltagtype.h" -#include "lcregappinfo.h" - -#include "lcdebug.h" - -// CONSTANTS -/** - * Maximum length of UUID of a service can be - */ -const TInt KUUIDMaxLength = 1028; -const TInt KMaxLangCodeLen = 2; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::CLcRegistrationParser -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CLcRegistrationParser::CLcRegistrationParser( RFs& aFs ): - iFs( aFs ) - { - iParserError = KErrNone; - } - -// ----------------------------------------------------------------------------- -// CPosLmXmlEncoder::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CLcRegistrationParser* CLcRegistrationParser::NewL( RFs& aFs ) - { - CLcRegistrationParser* self = new( ELeave ) CLcRegistrationParser( aFs ); - return self; - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::~CLcRegistrationParser() -// Destructor. -// ----------------------------------------------------------------------------- -// -CLcRegistrationParser::~CLcRegistrationParser() - { - delete iReadContent; - - iParserTreeTags.Reset(); - iParserTreeTags.Close(); - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::ParseFileL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CLcRegAppInfo* CLcRegistrationParser::ParseFileL( const TDesC& aFile ) - { - DEBUG("+ CLcRegistrationParser::ParseFileL" ) - CLcRegAppInfo* regAppInfo = CLcRegAppInfo::NewL(); - CleanupStack::PushL( regAppInfo ); - - HBufC* attributeBuf = HBufC::NewLC( KUUIDMaxLength ); - - iRegAppInfo = regAppInfo; - iAttributeBuf = attributeBuf; - // Check the file name here. - if( aFile.Length() <= KMaxFileName ) - { - iFileName.Copy( aFile ); - } - else - { - DEBUG("Error : Bad file name") - User::Leave( KErrBadName ); - } - - iParserTreeTags.Reset(); - iParsingTag = ELcXmlNothing; - iParsedTag = ELcXmlNothing; - - _LIT8(KXmlMimeType, "text/xml"); - - // Create Symbian XML parser - // Create parser - - Xml::CParser* iRegParser = Xml::CParser::NewLC( KXmlMimeType, *this ); - - iRegParser->ParseBeginL(); - // check the error code return from the parser - - Xml::ParseL( *iRegParser, iFs, aFile ); - // Leave here if Parser framework found some error - User::LeaveIfError( iParserError ); - - CleanupStack::PopAndDestroy( 2, attributeBuf ); - CleanupStack::Pop( regAppInfo ); - DEBUG("- CLcRegistrationParser::ParseFileL" ) - return regAppInfo; - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnStartDocumentL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnStartDocumentL( - const Xml::RDocumentParameters& /*aDocParam*/, - TInt /*aErrorCode*/) - { - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnEndDocumentL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnEndDocumentL(TInt /*aErrorCode*/) - { - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnStartElementL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnStartElementL( - const Xml::RTagInfo& aElement, - const Xml::RAttributeArray& aAttributes, - TInt /*aErrorCode*/ ) - { - DEBUG("+ CLcRegistrationParser::OnStartElementL" ) - delete iReadContent; - iReadContent = NULL; - // get the tag name and validate it - TLcRegXmlTagType startTag = - TLcRegXmlTagInfo::TagTypeL( aElement.LocalName().DesC() ); - - if( startTag == ELcXmlUnknown ) - { - User::Leave( KErrNotSupported ); - } - - SetParserTagL( startTag ); - - // Check parser status - CheckMandatoryTagsL( EXmlParserOnStartElement, startTag ); - - //Collect attribute value for element - CollectAttributeValueL( aElement, aAttributes ); - - DEBUG("- CLcRegistrationParser::OnStartElementL" ) - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::SetParserTagL -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::SetParserTagL( TLcRegXmlTagType aTag ) - { - DEBUG("+ CLcRegistrationParser::SetParserTagL" ) - - if( !iParserTreeTags.Count() ) - { - if( aTag == ELcXmlLocationCentreRegistration ) - { - iParserTreeTags.Append( aTag ); - } - else - { - DEBUG("CLcRegistrationParser::SetParserTagL Not Supported" ) - - User::Leave( KErrNotSupported ); - } - } - else - { - if( iParserTreeTags.Find( aTag ) == KErrNotFound ) - { - User::LeaveIfError( iParserTreeTags.Append( aTag ) ); - CheckSequenceOrderL( aTag ); - } - else - { - User::Leave( EXmlRecursiveEntity ); - } - } - DEBUG("- CLcRegistrationParser::SetParserTagL" ) - } - - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::CheckSequenceOrderL -// -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::CheckSequenceOrderL( TLcRegXmlTagType aTag ) - { - DEBUG("+ CLcRegistrationParser::CheckSequenceOrderL" ) - - switch ( aTag ) - { - case ELcXmlLocationCentreRegistration: - { - if( iParserTreeTags.Count() > 1 ) - { - User::Leave( KErrNotSupported ); - } - break; - } - case ELcXmlService: - { - if( iParserTreeTags.Count() != 1 && - iParserTreeTags.Find( ELcXmlLocationCentreRegistration ) == KErrNotFound ) - { - User::Leave( KErrNotSupported ); - } - break; - } - case ELcXmlRegFileName: - case ELcXmlFileIcon: - case ELcXmlFeature: - case ELcXmlRunMode: - case ELcXmlWebService: - case ELcXmlDocument: - case ELcXmlApplication: - { - if( iParserTreeTags[1] != ELcXmlService ) - { - User::Leave( KErrNotSupported ); - } - break; - } - case ELcXmlApplicationNative: - case ELcXmlApplicationJava: - case ELcXmlApplicationParams: - { - if( iParserTreeTags.Find( ELcXmlApplication ) == KErrNotFound || - iParserTreeTags[1] != ELcXmlService - ) - { - User::Leave( KErrNotSupported ); - } - break; - } - default: - break; - } - - DEBUG("- CLcRegistrationParser::CheckSequenceOrderL" ) - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::CheckMandatoryTagsL -// -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::CheckMandatoryTagsL( - TXmlParserElementState aXmlState, - TLcRegXmlTagType aTag ) - { - DEBUG("+ CLcRegistrationParser::CheckMandatoryTagsL" ) - - if ( aXmlState == EXmlParserOnStartElement ) - { - switch ( aTag ) - { - case ELcXmlApplication: - { - if( iParsedTag != ELcXmlRunMode ) - { - User::Leave( KErrNotSupported ); - } - iParsingTag = ELcXmlApplication; - } - break; - case ELcXmlWebService: - case ELcXmlDocument: - { - if( iParsedTag != ELcXmlRunMode ) - { - User::Leave( KErrNotSupported ); - } - } - break; - case ELcXmlApplicationNative: - case ELcXmlApplicationJava: - case ELcXmlApplicationParams: - { - if( iParsingTag != ELcXmlApplication ) - { - User::Leave( KErrNotSupported ); - } - break; - } - default: - break; - } - } - else - { - // aXmlState == EXmlParserOnEndElement - TInt count = iParserTreeTags.Count(); - if( count > 0 ) - { - switch ( aTag ) - { - case ELcXmlLocationCentreRegistration: - { - if( iParsedTag != ELcXmlService ) - { - User::Leave( KErrNotSupported ); - } - break; - } - case ELcXmlService: - { - if( iParsedTag != ELcXmlApplication ) - { - if( iParsedTag != ELcXmlDocument ) - { - if( iParsedTag != ELcXmlWebService ) - { - User::Leave( KErrNotSupported ); - } - } - } - iParsedTag = ELcXmlService; - break; - } - case ELcXmlRunMode: - { - iParsedTag = ELcXmlRunMode; - break; - } - case ELcXmlWebService: - { - iParsedTag = ELcXmlWebService; - break; - } - case ELcXmlDocument: - { - iParsedTag = ELcXmlDocument; - break; - } - case ELcXmlApplication: - { - iParsedTag = ELcXmlApplication; - break; - } - default: - break; - } - iParserTreeTags.Remove( count-1 ); - } - } - DEBUG("- CLcRegistrationParser::CheckMandatoryTagsL" ) - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::CheckAndReturnValidAttrL -// ----------------------------------------------------------------------------- -// -TLcRegXmlTagType CLcRegistrationParser::CheckAndReturnValidAttrL( - TLcRegXmlTagType aElement, - const Xml::RAttributeArray& aAttributes ) - { - DEBUG("+ CLcRegistrationParser::CheckAndReturnValidAttrL" ) - - TInt count( aAttributes.Count() ); - switch( aElement ) - { - case ELcXmlLocationCentreRegistration: - case ELcXmlFeature: - case ELcXmlApplication: - case ELcXmlApplicationParams: - { - if( count != 0 ) - { - User::Leave( KErrNotSupported ); - } - break; - } - case ELcXmlService: - case ELcXmlRegFileName: - case ELcXmlRunMode: - case ELcXmlWebService: - case ELcXmlDocument: - case ELcXmlApplicationNative: - case ELcXmlApplicationJava: - { - // If all the above element's doesn't have any attribute - // invalid registration file. - if( count == 0 || - count > 1 ) - { - User::Leave( KErrNotSupported ); - } - break; - } - case ELcXmlFileIcon: - { - // If all the above element's doesn't have any attribute - // invalid registration file. - if( count != 2 ) - { - User::Leave( KErrNotSupported ); - } - break; - } - default: - break; - } - - // Checking attribute name validity - TLcRegXmlTagType tagAttr = ELcXmlUnknown; - // validate the attribute name. - for( TInt i = 0; i < count; i++ ) - { - tagAttr = - TLcRegXmlTagInfo::TagAttrTypeL( aElement, - aAttributes[i].Attribute().LocalName().DesC() ); - - // Check the tag attribute value - // if it is not according to XML schema then it's a invalid registration file - if( aElement > ELcXmlApplicationParams && tagAttr == ELcXmlUnknown ) - { - User::Leave( KErrNotSupported ); - } - } - DEBUG("- CLcRegistrationParser::CheckAndReturnValidAttrL" ) - - return tagAttr; - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::CollectAttributeValueL -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::CollectAttributeValueL( - const Xml::RTagInfo& aElement, - const Xml::RAttributeArray& aAttributes ) - { - DEBUG("+ CLcRegistrationParser::CollectAttributeValueL") - - TInt count( aAttributes.Count() ); - TParse parse; - TBuf fileName( iFileName ); - - TLcRegXmlTagType tag = - TLcRegXmlTagInfo::TagTypeL( aElement.LocalName().DesC() ); - - // Check if the element's defiened in XML registration API - // schema have any valid attribute if no attribute and attribute - // is not valid one then don't registered. - TLcRegXmlTagType tagAttr = CheckAndReturnValidAttrL( tag, aAttributes ); - - DEBUG1(" Tag : %d", tagAttr) - - // If validity done then collect attributa value - switch ( tagAttr ) - { - case ELcXmlServiceAttrUuid: - { - TPtrC8 uidValue( aAttributes[0].Value().DesC() ); - if( uidValue.Length() > KUUIDMaxLength || - uidValue.Length() <= 0 ) - { - User::Leave( KErrNotSupported ); - } - iAttributeBuf->Des().Copy( uidValue ); - iRegAppInfo->SetIdL( *iAttributeBuf ); - } - break; - case ELcXmlRegFileNameAttrLang: - { - TPtrC8 langValue( aAttributes[0].Value().DesC() ); - if( langValue.Length() > KMaxLangCodeLen ) - { - User::Leave( KErrNotSupported ); - } - iAttributeBuf->Des().Copy( langValue ); - User::LeaveIfError( iRegAppInfo->SetNameLanguage( *iAttributeBuf ) ); - } - break; - case ELcXmlFileIconAttrfile: - case ELcXmlFileIconAttrFrame: - { - // Set the file name and type - for (TInt i = 0; i< count; i++ ) - { - if( !aAttributes[i].Attribute().LocalName().DesC().Compare( KLcXmlFileIconAttrfile ) ) - { - TPtrC8 iconfile( aAttributes[i].Value().DesC() ); - if( iconfile.Length() > KMaxFileName ) - { - User::Leave( KErrNotSupported ); - } - iAttributeBuf->Des().Copy( iconfile ); - // Check the drive letter of the document name - // if no drive letter then append drive letter of registration file name - parse.Set( *iAttributeBuf,NULL,NULL ); - if( parse.Drive().Length() == 0 ) - { - parse.Set(fileName,NULL,NULL); - fileName.Zero(); - fileName.Append( parse.Drive() ); - fileName.Append( *iAttributeBuf ); - iAttributeBuf->Des().Copy( fileName ); - } - iRegAppInfo->SetIconFileL( *iAttributeBuf ); - iRegAppInfo->SetIconFileType( CLcAppInfo::EMifFile ); - } - else if( !aAttributes[i].Attribute().LocalName().DesC().Compare( KLcXmlFileIconAttrFrame ) ) - { - // Set the frame no. - TPtrC8 iconFrame( aAttributes[i].Value().DesC() ); - if( iconFrame.Length() > sizeof( TUint32 ) ) - { - User::Leave( KErrNotSupported ); - } - iAttributeBuf->Des().Copy( iconFrame ); - TLex lexer( *iAttributeBuf ); - TUint32 frameNo = 0; - TUint limit = 0xFFFFFFFF; - User::LeaveIfError( lexer.BoundedVal( frameNo, EHex, limit ) ); - iRegAppInfo->SetFrameNo( frameNo ); - } - else - { - User::Leave( KErrNotSupported ); - } - } - } - break; - case ELcXmlRunModeAttrDefault: - { - TPtrC8 runMode( aAttributes[0].Value().DesC() ); - if( runMode.Length() > KLcAppRunModeStandalone.iTypeLength ) - { - User::Leave( KErrNotSupported ); - } - iAttributeBuf->Des().Copy( runMode ); - if( !iAttributeBuf->Des().Compare( KLcAppRunModeStandalone ) ) - { - iRegAppInfo->SetLaunchMode( CLcLocationAppInfo::EStandAloneMode ); - } - else if( !iAttributeBuf->Des().Compare(KLcAppRunModeChild) ) - { - iRegAppInfo->SetLaunchMode( CLcLocationAppInfo::EChainedMode ); - } - else - { - User::Leave( KErrNotSupported ); - } - } - break; - case ELcXmlApplicationNativeAttrSid: - { - TPtrC8 appSid( aAttributes[0].Value().DesC() ); - // length must be greater than zero - if( appSid.Length() <= 0 ) - { - User::Leave( KErrNotSupported ); - } - // Check if the SID is in [SID] format. - // If it is then remove the '[' and ']' from it. - if( appSid[0] == '[' && - appSid[appSid.Length() - 1 ] == ']' ) - { - // Check SID length.If it is zero or - // greater then 10(because sid is 8 and then - // two angle brackets equals to 10) dont't registered - if( appSid.Length() > 10 ) - { - User::Leave( KErrNotSupported ); - } - iAttributeBuf->Des().Zero(); - for(TInt i = 0; i < appSid.Length() - 2; i++ ) - { - iAttributeBuf->Des().Append( appSid[i+1] ); - } - } - else - { - User::Leave( KErrNotSupported ); - } - iRegAppInfo->SetApplicationDataL( *iAttributeBuf ); - iRegAppInfo->SetApplicationType( ELcNativeApplication ); - } - break; - case ELcXmlApplicationJavaAttrName: - { - - - // Obtain the UID corresponding to the Java Application - // Midlet name. - TPtrC8 javaName( aAttributes[0].Value().DesC() ); - if( javaName.Length() > KUUIDMaxLength ) - { - User::Leave( KErrNotSupported ); - } - iAttributeBuf->Des().Copy(javaName); - iAttributeBuf->Des().Format(_L("%x"), JavaAppUidL( *iAttributeBuf ) ); - - iRegAppInfo->SetApplicationDataL( *iAttributeBuf ); - iRegAppInfo->SetApplicationType(ELcNativeApplication); - - - } - break; - case ELcXmlWebServiceAttrUrl: - { - TPtrC8 webUri( aAttributes[0].Value().DesC() ); - if( webUri.Length() > KUUIDMaxLength ) - { - User::Leave( KErrNotSupported ); - } - iAttributeBuf->Des().Copy( webUri ); - iRegAppInfo->SetApplicationDataL( *iAttributeBuf ); - iRegAppInfo->SetApplicationType( ELcWebUrl ); - } - break; - case ELcXmlDocumentAttrFile: - { - TPtrC8 docFile( aAttributes[0].Value().DesC() ); - if( docFile.Length() > KMaxFileName ) - { - User::Leave( KErrNotSupported ); - } - iAttributeBuf->Des().Copy( docFile ); - // Check the drive letter of the document name - // if no drive letter then append drive letter of registration file name - parse.Set( *iAttributeBuf,NULL,NULL ); - if( parse.Drive().Length() == 0 ) - { - parse.Set(fileName,NULL,NULL); - fileName.Zero(); - fileName.Append( parse.Drive() ); - fileName.Append( *iAttributeBuf ); - iAttributeBuf->Des().Copy( fileName ); - } - iRegAppInfo->SetApplicationDataL( *iAttributeBuf ); - iRegAppInfo->SetApplicationType( ELcDocument ); - } - break; - default: - break; - } - - DEBUG("- CLcRegistrationParser::CollectAttributeValueL") - } - -// --------------------------------------------------------------------------- -// void CLcRegistrationParser::JavaAppUidL -// --------------------------------------------------------------------------- -// -TUint32 CLcRegistrationParser::JavaAppUidL( const TDesC& aMidletName ) - { - TUint32 uidValue = 0; - DEBUG("+ CLcRegistrationParser::JavaAppUidL") - - // Create a new Registry class - Java::CJavaRegistry* registry = Java::CJavaRegistry::NewLC(); - - // Obtain all the UIDs and check if the required UID corresponding - // to the Midlet name exists - RArray uidArray; - CleanupClosePushL( uidArray ); - registry->GetRegistryEntryUidsL( uidArray ); - - for( TInt i = 0; i < uidArray.Count(); i++ ) - { - // Obtain the Registry entry corresponding to the current UID - Java::CJavaRegistryEntry* registryEntry = registry->RegistryEntryL( uidArray[i]); - if( registryEntry ) - { - if ( !aMidletName.Compare( registryEntry->Name() ) ) - { - uidValue = ( registryEntry->Uid().iUid ); - delete registryEntry; - break; - } - } - delete registryEntry; - } - - CleanupStack::PopAndDestroy( 2, registry ); // uidArray - DEBUG1("UID %d", uidValue) - DEBUG("- CLcRegistrationParser::JavaAppUidL") - return uidValue; - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnEndElementL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnEndElementL( - const Xml::RTagInfo& aElement, - TInt /*aErrorCode*/ ) - { - DEBUG("+ CLcRegistrationParser::OnEndElementL" ) - - // End element - TLcRegXmlTagType endTag = - TLcRegXmlTagInfo::TagTypeL( aElement.LocalName().DesC() ); - - if( endTag == ELcXmlUnknown ) - { - User::Leave( KErrNotSupported ); - } - // Check parser status - CheckMandatoryTagsL( EXmlParserOnEndElement, endTag ); - - // Read property/content for end element - if (iReadContent) - { - HBufC* content = HBufC::NewLC( iReadContent->Length() ); - TPtr16 ptr = content->Des(); - - // Convert property/content - LcRegXmlParserUtils::Utf8ToUnicodeL( *iReadContent, ptr ); - - // Set content on appinfo related objects and parser status - SetContentL( endTag, *content ); - - // Reset/delete read/converted content - CleanupStack::PopAndDestroy( content ); - - delete iReadContent; - iReadContent = NULL; - } - - DEBUG("- CLcRegistrationParser::OnEndElementL" ) - } -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::SetContentL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::SetContentL( - TLcRegXmlTagType aTag, - const TDesC& aContent ) - { - DEBUG("+ CLcRegistrationParser::SetContentL" ) - - switch( aTag ) - { - case ELcXmlRegFileName: - { - iRegAppInfo->SetAppNameL( aContent ); - break; - } - case ELcXmlFeature: - { - if( !aContent.Compare( KLcAppCharSettings ) ) - { - iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharSettings ); - } - else if( !aContent.Compare( KLcAppCharPersonalData ) ) - { - iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharPersonalDataManagement ); - } - else if( !aContent.Compare( KLcAppCharNavigation ) ) - { - iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharNavigation ); - } - else if( !aContent.Compare( KLcAppCharMaps ) ) - { - iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharMaps ); - } - else if( !aContent.Compare( KLcAppCharLocationEvents ) ) - { - iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharLocationBasedEvents ); - } - else if( !aContent.Compare( KLcAppCharRemotePositioning ) ) - { - iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharRemotePositioning ); - } - else if( !aContent.Compare( KLcAppCharNetworkService ) ) - { - iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharNetworkService ); - } - else if( !aContent.Compare( KLcAppCharLocationMessaging ) ) - { - iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharLocationEnhancedMessages ); - } - else if( !aContent.Compare( KLcAppCharLocalContent ) ) - { - iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharOnDeviceLocationBasedContent ); - } - else if( !aContent.Compare( KLcAppCharRemoteContent ) ) - { - iRegAppInfo->SetApplicationCharacteristics( CLcLocationAppInfo::EAppCharRemoteLocationBasedContent ); - } - else - { - User::Leave( KErrNotSupported ); - } - break; - } - case ELcXmlApplicationParams: - { - iRegAppInfo->SetCommandLineParametersL( aContent ); - break; - } - default: - break; - } - - DEBUG("- CLcRegistrationParser::SetContentL" ) - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnContentL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnContentL( - const TDesC8& aBytes, TInt /*aErrorCode*/ ) - { - DEBUG("+ CLcRegistrationParser::OnContentL") - // If there are content from a previous parsing - // then we need to concatenate data/strings. - if (iReadContent) - { - HBufC8* prevContent = iReadContent; - CleanupStack::PushL( prevContent ); - iReadContent = NULL; - - iReadContent = HBufC8::NewL( prevContent->Length() + aBytes.Length() ); - iReadContent->Des().Append( *prevContent ); - iReadContent->Des().Append( aBytes ); - CleanupStack::PopAndDestroy( prevContent ); - } - else - { - iReadContent = aBytes.AllocL(); - } - DEBUG("- CLcRegistrationParser::OnContentL") - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnStartPrefixMappingL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnStartPrefixMappingL( - const RString& /*aPrefix*/, - const RString& /*aUri*/, - TInt /*aErrorCode*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnEndPrefixMappingL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnEndPrefixMappingL( - const RString& /*aPrefix*/, TInt /*aErrorCode*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnIgnorableWhiteSpaceL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnIgnorableWhiteSpaceL( - const TDesC8& /*aBytes*/, TInt /*aErrorCode*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnSkippedEntityL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnSkippedEntityL( - const RString& /*aName*/, TInt /*aErrorCode*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnProcessingInstructionL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnProcessingInstructionL( - const TDesC8& /*aTarget*/, const TDesC8& /*aData*/, - TInt /*aErrorCode*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnOutOfData -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnOutOfData() - { - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::OnError -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLcRegistrationParser::OnError( TInt aErrorCode ) - { - iParserError = aErrorCode; - } - -// ----------------------------------------------------------------------------- -// CLcRegistrationParser::GetExtendedInterface -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TAny* CLcRegistrationParser::GetExtendedInterface( const TInt32 /*aUid*/ ) - { - return NULL; - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcregistry.cpp --- a/locationcentre/lcserver/src/lcregistry.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,988 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -// SYSTEM INCLUDES -#include -#include -#include // CDocumentHandler -#include - -// USER INCLUDES -#include "lcregistry.h" -#include "lcregistrationparser.h" -#include "lcregistryupdate.h" -#include "lcregistrationupdatenotifier.h" -#include "lcregapporder.h" -#include "lcregistryobserver.h" -#include "lcregappinfo.h" -#include "lcregappstore.h" -#include "lcdebug.h" - -// CONSTANT DEFINTIONS -//Forward declaration. Function for sorted ordering of appinfo array -static TInt PositionDescOrdering( const CLcRegAppInfo& aAppInfo1, - const CLcRegAppInfo& aAppInfo2 ); - - - -// ----- Member funtions for CLcRegistry --------------------------------- - -// --------------------------------------------------------------------------- -// CLcRegistry::CLcRegistry -// --------------------------------------------------------------------------- -// -CLcRegistry::CLcRegistry( MLcRegistryObserver& aRegistryObserver ) - :CActive(EPriorityStandard), - iRegistryObserver( aRegistryObserver ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here.Initiallize all the variable here - } - -// --------------------------------------------------------------------------- -// CLcRegistry::~CLcRegistry -// --------------------------------------------------------------------------- -// -CLcRegistry::~CLcRegistry() - { - Cancel(); - - // C++ Destructor. Free all resources associated with this class. - delete iLcRegUpdate; - delete iRegAppStore; - delete iLcRegAppOrder; - - //close the file server session. - iFs.Close(); - // free filename array memory - iFileNameArry.Reset(); - iFileNameArry.Close(); - - //delete all items from the appinfo array. - iAppInfoArray.ResetAndDestroy(); - iAppInfoArray.Close(); - - iAppInfoNewArray.ResetAndDestroy(); - iAppInfoNewArray.Close(); - } - -// --------------------------------------------------------------------------- -// CLcRegistry* CLcRegistry::NewL -// --------------------------------------------------------------------------- -// -CLcRegistry* CLcRegistry::NewL( MLcRegistryObserver& aRegistryObserver ) - { - CLcRegistry* self = NewLC( aRegistryObserver ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcRegistry* CLcRegistry::NewLC -// --------------------------------------------------------------------------- -// -CLcRegistry* CLcRegistry::NewLC( MLcRegistryObserver& aRegistryObserver ) - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcRegistry* self = new ( ELeave )CLcRegistry( aRegistryObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcRegistry::ConstructL -// --------------------------------------------------------------------------- -// -void CLcRegistry::ConstructL() - { - // connect to file server - // and pass this session to all the class required. - User::LeaveIfError(iFs.Connect()); - - // creation of dynamic registration notifier object - iLcRegUpdate = CLcRegistryUpdate::NewL( *this, iFs); - - // creation of private info object - iRegAppStore = CLcRegAppStore::NewL(iFs); - - // creation of application order settings object - iLcRegAppOrder = CLcRegAppOrder::NewL( *iRegAppStore ); - - // reset the new applist array count here - iAppInfoNewArray.Reset(); - /* Now Check if any update needed to that list. - * To do that start all the system drive scan and collect - * all the registered file names - */ - iRegistryHasToUpdate = EFalse; - - // registered for notification in private directory from file server - iLcRegUpdate->StartFileNotifation(); - // Add it to Active scheduler - CActiveScheduler::Add( this ); - // issue the request to active scheduker - CheckForUpdationL(); - } - -// --------------------------------------------------------------------------- -// void CLcRegistry::CheckForUpdationL() -// --------------------------------------------------------------------------- -// -void CLcRegistry::CheckForUpdationL() - { - // inform registry engine that registration process is under updation - iRegistryObserver.RegistryUnderUpdation(); - // set the file count to zero - iregFileCount = 0; - - // Scan all the drives and get all the registered file names - ScanDrivesAndGetFileNameL(); - - DEBUG3("Updated File list : %d", iFileNameArry.Count(), 0, 0 ); - - // issue a request to active scheduler - IssueRequest(); - } - - -// --------------------------------------------------------------------------- -// void CLcRegistry::IssueRequest -// --------------------------------------------------------------------------- -// -void CLcRegistry::IssueRequest() - { - if(!IsActive()) - { - SetActive(); - TRequestStatus *status = &iStatus; - User::RequestComplete(status,KErrNone); - } - } - -// --------------------------------------------------------------------------- -// TInt CLcRegistry::GetAllRegisteredAppsList -// --------------------------------------------------------------------------- -// -TInt CLcRegistry::GetAllRegisteredAppsList( RPointerArray& appInfoArray ) - { - //DEBUG( "+ CLcRegistry::GetAllRegisteredAppsList"); - - TInt error = KErrNone; - if( iAppInfoArray.Count() <= 0 ) - { - error = KErrNotFound; - } - else - { - for(TInt i = 0; i < iAppInfoArray.Count(); i++) - { - // check wheather application is present - // append only present application - if( iAppInfoArray[i]->IsAppPresent() ) - { - error = appInfoArray.Append( iAppInfoArray[i] ); - if ( error ) - { - break; - } - } - } - } - DEBUG3("Get Registered Apps : %d", appInfoArray.Count(), 0, 0 ); - //DEBUG( "- CLcRegistry::GetAllRegisteredAppsList"); - return error; - } - -// --------------------------------------------------------------------------- -// TInt CLcRegistry::GetApplicationInfo -// --------------------------------------------------------------------------- -// -TInt CLcRegistry::GetApplicationInfo( const TDesC& aAppUid, - CLcBasicAppInfo*& aLcRegAppInfo ) - { - //DEBUG( "+ CLcRegistry::GetApplicationInfo"); - - for(TInt i = 0; i< iAppInfoArray.Count(); i++) - { - if( !aAppUid.Compare( iAppInfoArray[i]->Id()) && - iAppInfoArray[i]->IsAppPresent()) - { - aLcRegAppInfo = iAppInfoArray[i]; - return KErrNone; - } - } - - //DEBUG( "- CLcRegistry::GetApplicationInfo"); - - return KErrNotFound; - } - -// --------------------------------------------------------------------------- -// void CLcRegistry::HandleDynamicRegistrationL -// --------------------------------------------------------------------------- -// -void CLcRegistry::HandleDynamicRegistrationL() - { - DEBUG("+CLcRegistry::HandleDynamicRegistrationL"); - iRegistryHasToUpdate = ETrue; - CheckForUpdationL(); - } - -// --------------------------------------------------------------------------- -// void CLcService::ScanDrivesAndGetFileNameL -// --------------------------------------------------------------------------- -// -void CLcRegistry::ScanDrivesAndGetFileNameL() - { - DEBUG( "+ CLcRegistry::ScanDrivesAndGetFileNameL"); - - iFileNameArry.Reset(); - //declare the directory to be scan through - _LIT(KPriDirName, ":\\private\\10283138\\import\\" ); - TFileName srcDirName( KPriDirName ); - TDriveList dirList; - - if(iFs.DriveList( dirList ) != KErrNone) - { - return; - } - - TBuf rootDir; - //creating the CDirscan object - CDirScan* scanner = CDirScan::NewLC(iFs); - TChar driveLetter = '?'; - TDriveInfo info; - TInt error; - - //Scan for all drives in the system - TInt driveListSize = dirList.Length(); - for(TInt dir(0); dir < driveListSize; dir++) - { - error = iFs.Drive(info, dir); - if ((error == KErrNone) && - (dirList[dir] && info.iType != EMediaNotPresent)) - { - RFs::DriveToChar(dir, driveLetter); - rootDir.Zero();//Clear the previous contents - rootDir.Append(driveLetter); - rootDir.Append( srcDirName ); - - CDir *currentDir = NULL; - // Go through the files only - scanner->SetScanDataL( rootDir, KEntryAttNormal, ESortNone ); - - TRAP( error, scanner->NextL( currentDir )); - if( error ) - { - continue; - } - TInt entryCount = currentDir->Count(); - while(entryCount--) - { - TBuf lookup; - TEntry entry=( *currentDir )[entryCount]; - //Clear the previous values - lookup.Zero(); - //Append next one - lookup.Append(scanner->FullPath()); - lookup.Append(entry.iName); - //Store it in for future reference - iFileNameArry.Append(lookup); - } - delete currentDir; - } - } - CleanupStack::PopAndDestroy( scanner ); - - DEBUG( "- CLcRegistry::ScanDrivesAndGetFileNameL"); - } - -// ---------------------------------------------------------------------------- -// CLcRegistry::RunL -// ---------------------------------------------------------------------------- -// -void CLcRegistry::RunL() - { - TUint mmcId = 0; - // This check is for if some update events come - // during registration updation going on. - if( iRegistryHasToUpdate ) - { - DEBUG( "Dynamic notification recived"); - // Add all the appinfo to current list from new created list - for( TInt i = 0; i < iAppInfoNewArray.Count(); i++ ) - { - User::LeaveIfError( iAppInfoArray.Append( iAppInfoNewArray[i] )); - } - iAppInfoNewArray.Reset(); - // end of loop set the flag as EFalse - iRegistryHasToUpdate = EFalse; - DEBUG( "Notify execute"); - IssueRequest(); - } - else - { - CLcRegAppInfo* regAppInfo = NULL; - if( iregFileCount < iFileNameArry.Count() ) - { - // Check wheather registration file name is present in the - // old registered list.If not then add as a new registration service - TBool lResult = DoesApplicationExists( iFileNameArry[ iregFileCount ], - regAppInfo ); - if ( lResult ) - { - // Check if the Application suffered an Upgrade. If its an upgrade - // then its equivalent to a new installation. - TFileName fileName = regAppInfo->FileName(); - if ( IsAppUpgraded(fileName) ) - { - // Remove the element from the Old array - TInt index = iAppInfoArray.Find( regAppInfo ); - CLcRegAppInfo* info = iAppInfoArray[index]; - iAppInfoArray.Remove( index ); - delete info; - - // Parse new registration info validate and append it to list - TRAPD( err, regAppInfo = - CreateAppRegInfoL(iFileNameArry[ iregFileCount ])); - if( !err ) - { - CleanupStack::PushL( regAppInfo ); - InsertAppRegInfoL( regAppInfo ); - CleanupStack::Pop( regAppInfo ); - } - iregFileCount++; - IssueRequest(); - } - else - { - // Check and Set the Present status of the Application - if( !regAppInfo->IsAppPresent() && - !GetMmcId( mmcId ) && - !mmcId == regAppInfo->MmcId()) - { - // This condition is only when the Application was registered - // prior to this and was on an MMC which was not mounted - regAppInfo->SetFilePresenceStatus(ETrue); - } - - // Remove the element from the Old array - TInt index = iAppInfoArray.Find( regAppInfo ); - iAppInfoArray.Remove( index ); - // push the object to cleanup stack before calling - // InsertAppRegInfoL. - CleanupStack::PushL( regAppInfo ); - InsertAppRegInfoL( regAppInfo ); - CleanupStack::Pop( regAppInfo ); - - iregFileCount++; - IssueRequest(); - } - } - else - { - // Parse new registration info validate and append it to list - TRAPD( err, regAppInfo = - CreateAppRegInfoL( iFileNameArry[ iregFileCount ] )); - if( !err ) - { - CleanupStack::PushL( regAppInfo ); - InsertAppRegInfoL( regAppInfo ); - CleanupStack::Pop( regAppInfo ); - } - iregFileCount++; - IssueRequest(); - } - } - else - { - // After completing if part if there is any application present - // in the old array then check those application for absent or removal case. - if( iAppInfoArray.Count() > 0 ) - { - //Get current MMC id. - if( GetMmcId( mmcId ) ) - { - // Check for all Absent applications - while( iAppInfoArray.Count()) - { - regAppInfo = iAppInfoArray[0]; - iAppInfoArray.Remove( 0 ); - - if( regAppInfo->MmcId() != mmcId ) - { - regAppInfo->SetFilePresenceStatus(EFalse); - CleanupStack::PushL( regAppInfo ); - InsertAppRegInfoL( regAppInfo ); - CleanupStack::Pop( regAppInfo ); - } - else - { - iLcRegAppOrder->RemoveArrayL( regAppInfo->Id() ); - delete regAppInfo; - } - } - } - - // Check for all de-registered applications - while( iAppInfoArray.Count()) - { - regAppInfo = iAppInfoArray[0]; - iAppInfoArray.Remove( 0 ); - iLcRegAppOrder->RemoveArrayL( regAppInfo->Id() ); - delete regAppInfo; - } - } - iAppInfoArray.ResetAndDestroy(); - FinalRegistrationUpdateL(); - } - } - } - -// --------------------------------------------------------------------------- -// CLcServerShutDownTimer::RunError -// --------------------------------------------------------------------------- -// -TInt CLcRegistry::RunError( TInt aError ) - { - // Dont leave. Continue with the next operation - return aError; - } - - -// --------------------------------------------------------------------------- -// void CLcRegistry::FinalRegistrationUpdateL -// --------------------------------------------------------------------------- -// -void CLcRegistry::FinalRegistrationUpdateL() - { - // Resync all the existing applications. Their order could have been - // changed because of the possible changes in the index ordering - - // Temporary array to assist copying of all content from one place - // to another - RPointerArray tempArray; - while ( iAppInfoArray.Count()) - { - CLcRegAppInfo* info = iAppInfoArray[0]; - iAppInfoArray.Remove( 0 ); - tempArray.Append( info ); - } - - // Insert back all temporary elements back into the Info Array - TInt appcount = tempArray.Count(); - for( TInt i = 0; i < appcount; i++ ) - { - User::LeaveIfError( iAppInfoArray.Append( tempArray[i] )); - } - - // Now destroy all the elements back in the temporary array. - tempArray.ResetAndDestroy(); - tempArray.Close(); - - // Add all the appinfo to current list from new created list - appcount = iAppInfoNewArray.Count(); - for( TInt i = 0; i < appcount; i++ ) - { - User::LeaveIfError(iAppInfoArray.Append( iAppInfoNewArray[i] )); - } - iAppInfoNewArray.Reset(); - - DEBUG1("New List Count : %d", iAppInfoArray.Count()) - - // Send a notification to registry engine that updation completed - iRegistryObserver.RegistryUpdated(); - } - -// ---------------------------------------------------------------------------- -// CLcRegistry::IsInMMc -// ---------------------------------------------------------------------------- -// -TBool CLcRegistry::IsInMMc( TFileName& aFileName ) - { - TBool lResult = EFalse; - TParse parse; - parse.Set(aFileName,NULL,NULL); - TPtrC lDrive = parse.Drive(); - TInt err,mmcDrive,fileDrive; - err = RFs::CharToDrive( PathInfo::MemoryCardRootPath()[0], mmcDrive ); - if (err == KErrNone) - { - err = RFs::CharToDrive( lDrive[0], fileDrive ); - if( err == KErrNone ) - { - if( mmcDrive == fileDrive ) - { - lResult = ETrue; - } - } - } - return lResult; - } - -// ---------------------------------------------------------------------------- -// CLcRegistry::DoesApplicationExists -// ---------------------------------------------------------------------------- -// -TBool CLcRegistry::DoesApplicationExists( TFileName& aFileName, - CLcRegAppInfo*& alcRegAppInfoPtr ) - { - // This function checks wheather registration info with same file name - // is present in the old list. If present then return ETrue or else EFalse. - TInt count = iAppInfoArray.Count(); - for( TInt i = 0; i < count; i++ ) - { - alcRegAppInfoPtr = iAppInfoArray[i]; - if( alcRegAppInfoPtr ) - { - if( aFileName.Compare( alcRegAppInfoPtr->FileName()) == 0 ) - { - return ETrue; - } - } - } - return EFalse; - } - -// ---------------------------------------------------------------------------- -// CLcRegistry::CreateAppRegInfoL -// ---------------------------------------------------------------------------- -// -CLcRegAppInfo* CLcRegistry::CreateAppRegInfoL( TFileName& aFileName ) - { - DEBUG( "+ CLcRegistry::CreateAppRegInfoL" ); - - CLcRegistrationParser* regParser = CLcRegistrationParser::NewL( iFs ); - CleanupStack::PushL( regParser ); - - //Parse the file content and get all the registration info. - CLcRegAppInfo* info = regParser->ParseFileL( aFileName ); - - CleanupStack::PopAndDestroy( regParser ); - - CleanupStack::PushL( info ); - - //Check that same UUID based appinfo is already registered or not. - if( DoesSameUuidPresent( info )) - { - User::Leave( KErrAlreadyExists ); - } - - //validate the application or document - if ( info->ApplicationType() == ELcNativeApplication || - info->ApplicationType() == ELcDocument ) - { - //DEBUG("+ Validate") - ValidateRegisteredServiceL( *info ); - //DEBUG("- Validate") - } - - // Set the language specific name for the service - if( info->IsAppNamePresent()) - { - info->SetAppLangSpecificNameL(iFs); - } - else - { - SetAbsentAppNameL( info ); - } - - - // Set the file name for future reference. - info->SetFileNameL( aFileName ); - - TUint mmcId; - - //Get current MMC id. - if( !GetMmcId( mmcId ) && IsInMMc( aFileName )) - { - info->SetMmcId(mmcId); - } - - CleanupStack::Pop( info ); - - DEBUG( "- CLcRegistry::CreateAppRegInfoL" ); - return info; - } - -// ---------------------------------------------------------------------------- -// CLcRegistry::InsertAppRegInfoL -// ---------------------------------------------------------------------------- -// -void CLcRegistry::InsertAppRegInfoL( CLcRegAppInfo* aAppInfo ) - { - TInt index = 0; - - // Get the required order of the - // service from the central repository - //Add the appinfo to array - if( iLcRegAppOrder->GetRegisteredAppOrder( aAppInfo->Id(), - index )) - { - - // this is for new regapp info addition - // to db and get the final order - index = iLcRegAppOrder->AppendArrayL( aAppInfo->Id()); - - for ( TInt i = 0; i < iAppInfoArray.Count(); i++ ) - { - // Get the new order for the respective elements and set the correct values. - CLcRegAppInfo* info = iAppInfoArray[i]; - TInt currentIndex = 0; - iLcRegAppOrder->GetRegisteredAppOrder( info->Id(), - currentIndex ); - // Set the new Index - info->SetArrayIndex( currentIndex ); - } - - // Set the index of all elements in the new array - for ( TInt i = 0; i < iAppInfoNewArray.Count(); i++ ) - { - // Get the new order for the respective elements and set the correct values. - CLcRegAppInfo* info = iAppInfoNewArray[i]; - TInt currentIndex = 0; - iLcRegAppOrder->GetRegisteredAppOrder( info->Id(), - currentIndex ); - // Set the new Index - info->SetArrayIndex( currentIndex ); - } - } - - // Set the array index - aAppInfo->SetArrayIndex( index ); - - User::LeaveIfError( - iAppInfoNewArray.InsertInOrder( aAppInfo, - PositionDescOrdering )); - } - -// ---------------------------------------------------------------------------- -// CLcRegistry::DoesSameUuidPresent -// ---------------------------------------------------------------------------- -// -TBool CLcRegistry::DoesSameUuidPresent( CLcRegAppInfo* aLcRegAppInfo ) - { - // Check in the Old array - for( TInt i = 0; i < iAppInfoArray.Count(); i++ ) - { - CLcRegAppInfo* lcRegAppInfoPtr = iAppInfoArray[i]; - if( lcRegAppInfoPtr ) - { - if( !aLcRegAppInfo->Id().Compare( lcRegAppInfoPtr->Id())) - { - return ETrue; - } - } - } - - // Now check in the new array - for( TInt i = 0; i < iAppInfoNewArray.Count(); i++ ) - { - CLcRegAppInfo* lcRegAppInfoPtr = iAppInfoNewArray[i]; - if( lcRegAppInfoPtr ) - { - if( !aLcRegAppInfo->Id().Compare( lcRegAppInfoPtr->Id())) - { - return ETrue; - } - } - } - - // No match found - return EFalse; - } - -// ---------------------------------------------------------------------------- -// CLcRegistry::DoCancel -// ---------------------------------------------------------------------------- -// -void CLcRegistry::DoCancel() - { - Cancel(); - } - -// --------------------------------------------------------------------------- -// void CLcService::ValidateRegisteredAppL -// --------------------------------------------------------------------------- -// -void CLcRegistry::ValidateRegisteredServiceL( CLcRegAppInfo& aApplicationInfo ) - { - DEBUG( "+ CLcRegistry::ValidateRegisteredServiceL" ) - - RApaLsSession lsSession; - User::LeaveIfError( lsSession.Connect() ); - CleanupClosePushL( lsSession ); - - //Check the application type.If Application then validate it - if( aApplicationInfo.ApplicationType() == ELcNativeApplication ) - { - DEBUG("+ App Validation") - TLex lexer(aApplicationInfo.ApplicationData()); - TUint32 lAppSid = 0; - TUint limit = 0xFFFFFFFF; - User::LeaveIfError( lexer.BoundedVal(lAppSid, EHex, limit) ); - TApaAppInfo appInfo; - User::LeaveIfError( lsSession.GetAppInfo( appInfo, TUid::Uid( lAppSid ))); - DEBUG("- App Validation") - } - else if( aApplicationInfo.ApplicationType() == ELcDocument ) - { - DEBUG("+ Document Validation") - //Validate document - CDocumentHandler* documentHandler = CDocumentHandler::NewL(); - CleanupStack::PushL( documentHandler ); - // empty datatype for automatic recognization - TUint8* contentTypeString = NULL; - FindContentTypeFromFileL( lsSession, - contentTypeString, - &aApplicationInfo ); - User::LeaveIfNull( contentTypeString ); - - CleanupStack::PushL( contentTypeString ); - documentHandler->CanOpenL( TDataType( TPtrC8( contentTypeString ))); - CleanupStack::PopAndDestroy( 2, documentHandler ); - DEBUG("- Document Validation") - } - - // Now set the system characteristics for application / document / weburl - SetAppSysCharacteristicsL( lsSession, aApplicationInfo ); - - CleanupStack::PopAndDestroy(); //lsSession - - DEBUG( "- CLcRegistry::ValidateRegisteredServiceL" ) - } - - -// --------------------------------------------------------------------------- -// void CLcRegistry::FindContentTypeFromFileL -// --------------------------------------------------------------------------- -// -void CLcRegistry::FindContentTypeFromFileL( RApaLsSession apaSession, - TUint8*& aContentTypeString, - CLcRegAppInfo* aApplicationInfo ) - { - TDataRecognitionResult dataType; - TInt ret; - - // Create a buffer to hold data from the file - TInt bufferSize = 0; - TInt seekPosition = 0; - apaSession.GetMaxDataBufSize(bufferSize); - HBufC8* buffer = HBufC8::NewLC(bufferSize); - TPtr8 buf = buffer->Des(); - - RFile file; - HBufC* fileName = HBufC::NewLC( KMaxPath ); - fileName->Des().Copy(aApplicationInfo->ApplicationData()); - - ret = file.Open( iFs, - *fileName, - EFileShareAny | EFileRead ); - if( !ret ) - { - // Find current file pointer position - file.Seek(ESeekStart, seekPosition); - // Read from file - file.Read(buf); - // return file pointer to original position - file.Seek(ESeekStart, seekPosition); - // Ask the application architecture to find the file type - ret = apaSession.RecognizeData(*fileName, buf, dataType); - - if (ret == KErrNone && - (dataType.iConfidence == CApaDataRecognizerType::ECertain) || - (dataType.iConfidence == CApaDataRecognizerType::EProbable)) - { - // If the file type was found, try to match it to a known file type - TPtrC8 mimeTypePtr = dataType.iDataType.Des8(); - TInt len = mimeTypePtr.Length() + 1; - aContentTypeString = new(ELeave) TUint8 [len]; - - TPtr8 contentTypeStringPtr(aContentTypeString, len); - contentTypeStringPtr.Copy(mimeTypePtr); - contentTypeStringPtr.ZeroTerminate(); - } - file.Close(); - } - CleanupStack::PopAndDestroy(fileName); //fileName - CleanupStack::PopAndDestroy(buffer); //buffer - } - -// ----------------------------------------------------------------------------- -// CLcRegistry::MmcIdL -// Get the id of the MMC card. -// ----------------------------------------------------------------------------- -// -TInt CLcRegistry::GetMmcId( TUint& aUid ) - { - TDriveInfo info; - info.iType = EMediaNotPresent; - TInt mmcDrive; - TInt err; - TChar cha = '?'; - err = RFs::CharToDrive( PathInfo::MemoryCardRootPath()[0], mmcDrive ); - if (err == KErrNone) - { - err = iFs.Drive( info, mmcDrive ); - } - if( err != KErrNone || - info.iType == EMediaNotPresent ) - { - // MMC locked or not installed - err = KErrNotFound; - } - else - { - TVolumeInfo volumeInfo; - err = iFs.Volume( volumeInfo, mmcDrive ); - if( err == KErrNone ) - { - aUid = volumeInfo.iUniqueID; - } - } - return err; - } - - -// ---------------------------------------------------------------------------- -// CLcRegistry::SetAppSysCharacteristicsL -// ---------------------------------------------------------------------------- -// -void CLcRegistry::SetAppSysCharacteristicsL( RApaLsSession& alsSession, - CLcRegAppInfo& aRegAppInfo ) - { - TFileName fileName; - if( aRegAppInfo.ApplicationType() == ELcNativeApplication ) - { - // for application we should check - // where the binary is present - TLex lexer(aRegAppInfo.ApplicationData()); - TUint32 lAppSid = 0; - TUint limit = 0xFFFFFFFF; - User::LeaveIfError( lexer.BoundedVal(lAppSid, EHex, limit) ); - TApaAppInfo appInfo; - User::LeaveIfError( alsSession.GetAppInfo( appInfo, TUid::Uid( lAppSid ))); - // check if the dll file is in ROM or not - fileName.Copy( appInfo.iFullName ); - } - else if( aRegAppInfo.ApplicationType() == ELcDocument ) - { - // for document we should check for the document file name - fileName.Copy( aRegAppInfo.ApplicationData() ); - } - else if( aRegAppInfo.ApplicationType() == ELcWebUrl ) - { - // for web url it will be registration filename - fileName.Copy( iFileNameArry[ iregFileCount ] ); - } - - if( fileName.Length() > 0 ) - { - // parse the file name and check the drive letter - TParse parse; - parse.Set( fileName, NULL, NULL ); - TPtrC drive = parse.Drive(); - if( drive[0] == PathInfo::RomRootPath()[0] ) - { - aRegAppInfo.SetSystemCharacteristics( CLcLocationAppInfo::ESysCharRomBased); - } - else - { - aRegAppInfo.SetSystemCharacteristics( CLcLocationAppInfo::ESysCharNone); - } - } - } - -// ----------------------------------------------------------------------------- -// CLcRegistry::IsAppUpgraded -// ----------------------------------------------------------------------------- -// -TBool CLcRegistry::IsAppUpgraded( TFileName& aFileName ) - { - DEBUG( "+ CLcRegistry::CheckforAppUpgrade("); - - // If filename is already there in the old list and presence - // flag also true then check the time stamp between current file and old file - TEntry oldEntry,newEntry; - TFileName newFileName = iFileNameArry[ iregFileCount ]; - iFs.Entry( aFileName, oldEntry ); - iFs.Entry( newFileName, newEntry ); - - if( oldEntry.iModified == newEntry.iModified ) - { - return EFalse; - } - else - { - return ETrue; - } - } - -// ----------------------------------------------------------------------------- -// CLcRegistry::SetAbsentAppNameL -// ----------------------------------------------------------------------------- -// -void CLcRegistry::SetAbsentAppNameL( CLcRegAppInfo* aAppInfo ) - { - RApaLsSession lsSession; - User::LeaveIfError( lsSession.Connect() ); - CleanupClosePushL( lsSession ); - //Check the application type.If Application then validate it - if( aAppInfo->ApplicationType() == ELcNativeApplication ) - { - TLex lexer(aAppInfo->ApplicationData()); - TUint32 lAppSid = 0; - TUint limit = 0xFFFFFFFF; - User::LeaveIfError( lexer.BoundedVal(lAppSid, EHex, limit) ); - TApaAppInfo appNameInfo; - User::LeaveIfError( lsSession.GetAppInfo( appNameInfo, TUid::Uid( lAppSid ))); - aAppInfo->SetNameL(appNameInfo.iCaption); - } - else - { - aAppInfo->SetNameL( aAppInfo->ApplicationData() ); - } - CleanupStack::PopAndDestroy(); //lsSession - } - - -// --------------------------------------------------------------------------- -// static TInt PositionDescOrdering -// Ordering function for inserting the elements into the applist array. -// The ordering is done first based on the previous index. -// -// @param CLcRegAppInfo& First appinfo Element -// @param CLcRegAppInfo& Second appinfo Element -// @return 1. zero, if the two objects are equal. -// -// 2. a negative value, if the first object is less than the second. -// -// 3. a positive value, if the first object is greater than the second. -// -// --------------------------------------------------------------------------- -TInt PositionDescOrdering( const CLcRegAppInfo& aAppInfo1, - const CLcRegAppInfo& aAppInfo2 ) - { - CLcRegAppInfo* appInfo1 = const_cast< CLcRegAppInfo*>(&aAppInfo1); - CLcRegAppInfo* appInfo2 = const_cast< CLcRegAppInfo*>(&aAppInfo2); - return ( appInfo1->Index() - appInfo2->Index()); - } -//End of file - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcregistryupdate.cpp --- a/locationcentre/lcserver/src/lcregistryupdate.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lcregistryupdate.h" -#include "lcregistrationupdatenotifier.h" -#include "lcdebug.h" - -// CONSTANT DEFINTIONS -_LIT(KFileName,"?:\\private\\10283138\\import\\"); - -const TInt KLCUpdateDelay = 2000000; - - -// ============================ MEMBER FUNCTIONS ============================== -// ---------------------------------------------------------------------------- -// CLcRegistryUpdate::CLcRegistryUpdate -// C++ default constructor can NOT contain any code, that -// might leave. -// ---------------------------------------------------------------------------- -// -CLcRegistryUpdate::CLcRegistryUpdate(MLcRegistryUpdateNotifier& aFileNotifier, - RFs& aFs) - :CActive(EPriorityStandard), - iFileNotifier( aFileNotifier ), - iFs( aFs ) - { - TInt err = iTimer.CreateLocal(); - CActiveScheduler::Add( this ); - } - -// ---------------------------------------------------------------------------- -// CLcRegistryUpdate::NewL -// Two-phased constructor. -// ---------------------------------------------------------------------------- -// -CLcRegistryUpdate* CLcRegistryUpdate::NewL(MLcRegistryUpdateNotifier& aFileNotifier, - RFs& aFs) - { - CLcRegistryUpdate* self = new( ELeave ) CLcRegistryUpdate( aFileNotifier, aFs ); - return self; - } - - -// ---------------------------------------------------------------------------- -// CLcRegistryUpdate::~CLcRegistryUpdate -// ---------------------------------------------------------------------------- -// -CLcRegistryUpdate::~CLcRegistryUpdate() - { - Cancel(); - } - -// ---------------------------------------------------------------------------- -// CLcRegistryUpdate::ConstructL -// ---------------------------------------------------------------------------- -// -void CLcRegistryUpdate::ConstructL() - { - } - -// ---------------------------------------------------------------------------- -// CLcRegistryUpdate::RunL -// ---------------------------------------------------------------------------- -// -void CLcRegistryUpdate::RunL() - { - if ( iFileNotifyPending ) - { - StartFileNotifation(); - iFileNotifier.HandleDynamicRegistrationL(); - iFileNotifyPending = EFalse; - } - else - { - iTimer.After( iStatus, KLCUpdateDelay ); - SetActive(); - iFileNotifyPending = ETrue; - } - } - - -// ---------------------------------------------------------------------------- -// CLcRegistryUpdate::DoCancel -// ---------------------------------------------------------------------------- -// -void CLcRegistryUpdate::DoCancel() - { - iTimer.Cancel(); - iFs.NotifyChangeCancel(); - } - -// --------------------------------------------------------------------------- -// CLcRegistryUpdate::RunError -// --------------------------------------------------------------------------- -// -TInt CLcRegistryUpdate::RunError( TInt aError ) - { - return aError; - } - - -// ---------------------------------------------------------------------------- -// CLcRegistryUpdate::StartFileNotifation -// ---------------------------------------------------------------------------- -// -void CLcRegistryUpdate::StartFileNotifation() - { - SetActive(); - iFs.NotifyChange(ENotifyEntry,iStatus,KFileName); - } - -//End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcregxmlparserutils.cpp --- a/locationcentre/lcserver/src/lcregxmlparserutils.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcregxmlparserutils.h" -#include "lcregxmltagtype.h" - -// CONSTANTS -const TInt KBufLength = 30; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// LcRegXmlParserUtils::Utf8ToUnicodeL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void LcRegXmlParserUtils::Utf8ToUnicodeL( - const TDesC8& aUtf8, - TDes16& aUnicode) - { - // Create a small output buffer - TBuf16 output; - // Create a buffer for the unconverted text - TPtrC8 remUtf8(aUtf8); - - TBool convertingReady = EFalse; - while (!convertingReady) // conversion loop - { - // Start conversion. When the output buffer is full, return the - // number of characters that were not converted - const TInt err = CnvUtfConverter::ConvertToUnicodeFromUtf8( - output, remUtf8); - - // check to see that the descriptor isn't corrupt - leave if it is - if (err == CnvUtfConverter::EErrorIllFormedInput) - { - User::Leave(KErrCorrupt); - } - else if (err < 0) // future-proof against "TError" expanding - { - User::Leave(KErrGeneral); - } - - // Do something here to store the contents of the output buffer. - if (aUnicode.Length() + output.Length() > aUnicode.MaxLength()) - { - User::Leave(KErrNoMemory); - } - aUnicode.Append(output); - - // Finish conversion if there are no unconverted characters in the - // remainder buffer - if (err == 0) - { - convertingReady = ETrue; - } - else - { - // Remove the converted source text from the remainder buffer. - // The remainder buffer is then fed back into loop - remUtf8.Set(remUtf8.Right(err)); - } - } - } - -// ----------------------------------------------------------------------------- -// LcRegXmlParserUtils::OnlyWhiteSpaces -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool LcRegXmlParserUtils::OnlyWhiteSpaces( - const TDesC8& aStr) - { - for (TInt i=0; i - -// USER INCLUDES -#include "lcregxmltagtype.h" -#include "lcregxmltaginfo.h" -#include "lcregxmlparserutils.h" - -// CONSTANTS - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TLcRegXmlTagInfo::TLcRegXmlTagInfo -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -TLcRegXmlTagInfo::TLcRegXmlTagInfo() - { - } - -// ----------------------------------------------------------------------------- -// TLcRegXmlTagInfo::TagTypeL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TLcRegXmlTagType TLcRegXmlTagInfo::TagTypeL( - const TDesC8& aTagName) - { - TLcRegXmlTagType toReturn = ELcXmlUnknown; - - if (EqualsTagL(aTagName, KLcXmlLocationCentreRegistration)) - { - toReturn = ELcXmlLocationCentreRegistration; - } - else if (EqualsTagL(aTagName, KLcXmlService)) - { - toReturn = ELcXmlService; - } - else if (EqualsTagL(aTagName, KLcXmlRegFileName)) - { - toReturn = ELcXmlRegFileName; - } - else if (EqualsTagL(aTagName, KLcXmlFileIcon)) - { - toReturn = ELcXmlFileIcon; - } - else if (EqualsTagL(aTagName, KLcXmlFeature)) - { - toReturn = ELcXmlFeature; - } - else if (EqualsTagL(aTagName, KLcXmlRunMode)) - { - toReturn = ELcXmlRunMode; - } - else if (EqualsTagL(aTagName, KLcXmlApplication)) - { - toReturn = ELcXmlApplication; - } - else if (EqualsTagL(aTagName, KLcXmlWebService)) - { - toReturn = ELcXmlWebService; - } - else if (EqualsTagL(aTagName, KLcXmlDocument)) - { - toReturn = ELcXmlDocument; - } - else if (EqualsTagL(aTagName, KLcXmlApplicationNative)) - { - toReturn = ELcXmlApplicationNative; - } - else if (EqualsTagL(aTagName, KLcXmlApplicationJava)) - { - toReturn = ELcXmlApplicationJava; - } - else if (EqualsTagL(aTagName, KLcXmlApplicationParams)) - { - toReturn = ELcXmlApplicationParams; - } - return toReturn; - } - -// ----------------------------------------------------------------------------- -// TLcRegXmlTagInfo::TagAttrTypeL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TLcRegXmlTagType TLcRegXmlTagInfo::TagAttrTypeL(TLcRegXmlTagType aTagType, - const TDesC8& aAttrName ) - { - TLcRegXmlTagType toReturn = ELcXmlUnknown; - - if (EqualsTagL(aAttrName, KLcXmlServiceAttrUuid)) - { - toReturn = ELcXmlServiceAttrUuid; - } - else if( EqualsTagL(aAttrName, KLcXmlRegFileNameAttrLang) ) - { - toReturn = ELcXmlRegFileNameAttrLang; - } - else if( EqualsTagL(aAttrName, KLcXmlIconAttrfile) ) - { - if( aTagType == ELcXmlDocument ) - { - toReturn = ELcXmlDocumentAttrFile; - } - else - { - toReturn = ELcXmlFileIconAttrfile; - } - } - else if( EqualsTagL(aAttrName, KLcXmlIconAttrFrame) ) - { - toReturn = ELcXmlFileIconAttrFrame; - } - else if( EqualsTagL(aAttrName, KLcXmlRunModeAttrDefault) ) - { - toReturn = ELcXmlRunModeAttrDefault; - } - else if( EqualsTagL(aAttrName, KLcXmlApplicationNativeAttrSid) ) - { - toReturn = ELcXmlApplicationNativeAttrSid; - } - else if( EqualsTagL(aAttrName, KELcXmlApplicationJavaAttrName) ) - { - toReturn = ELcXmlApplicationJavaAttrName; - } - else if( EqualsTagL(aAttrName, KLcXmlWebServiceAttrUrl) ) - { - toReturn = ELcXmlWebServiceAttrUrl; - } - else if( EqualsTagL(aAttrName, KLcXmlDocumentAttrFile) ) - { - toReturn = ELcXmlDocumentAttrFile; - } - return toReturn; - } - -// ----------------------------------------------------------------------------- -// TLcRegXmlTagInfo::EqualsTagL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool TLcRegXmlTagInfo::EqualsTagL( - const TDesC8& aTag, - const TDesC& aDefinedTag) - { - HBufC* tag = HBufC::NewLC(aTag.Length()); - TPtr16 tagptr = tag->Des(); - - LcRegXmlParserUtils::Utf8ToUnicodeL(aTag, tagptr); - - TBool answer = (tag->CompareF(aDefinedTag) == 0); - CleanupStack::PopAndDestroy(tag); - return answer; - } -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcserver.cpp --- a/locationcentre/lcserver/src/lcserver.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server object. -* -*/ - - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lcserver.h" -#include "lcserverinterface.h" -#include "lcserversession.h" -#include "lcservershutdowntimer.h" -#include "lcserverengine.h" - -// CONSTANT DEFINTIONS - -// ----- Member funtions for CLcServer --------------------------------- - -// --------------------------------------------------------------------------- -// CLcServer::CLcServer -// --------------------------------------------------------------------------- -// -CLcServer::CLcServer() - :CServer2( CActive::EPriorityStandard ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcServer::~CLcServer -// --------------------------------------------------------------------------- -// -CLcServer::~CLcServer() - { - // C++ Destructor. Free all resources associated with this class. - - // Delete the Server Engine. - delete iEngine; - - // Delete the shutdown timer. - delete iShutDownTimer; - - } - -// --------------------------------------------------------------------------- -// CLcServer* CLcServer::NewL -// --------------------------------------------------------------------------- -// -CLcServer* CLcServer::NewL() - { - CLcServer* self = NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcServer* CLcServer::NewLC -// --------------------------------------------------------------------------- -// -CLcServer* CLcServer::NewLC() - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcServer* self = new ( ELeave )CLcServer(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcService::ConstructL -// --------------------------------------------------------------------------- -// -void CLcServer::ConstructL() - { - // Start the Location Centre Server - StartL( KLocationCentreServerName ); - - // Create the shutdown timer - iShutDownTimer = CLcServerShutDownTimer::NewL(); - - // Create the Location Centre Server Engine. - iEngine = CLcServerEngine::NewL( *this ); - } - -// --------------------------------------------------------------------------- -// CSession2* CLcServer::NewSessionL -// --------------------------------------------------------------------------- -// -CSession2* CLcServer::NewSessionL( const TVersion& aVersion, - const RMessage2& /* aMessage */ ) const - { - // Check the version number. We dont support any other version numbers - // greater than ( 1, 0, 0 ). Hence, if the version number passed to this - // function is greater than the supported number leave with KErrNotSupported. - TVersion version( KLcServerMajorVersionNumber, - KLcServerMinorVersionNumber, - KLcServerBuildVersionNumber ); - if ( !User::QueryVersionSupported( version, aVersion )) - { - User::Leave( KErrNotSupported ); - } - - // Make new session - CSession2* newSession = - CLcServerSession::NewL( *( const_cast< CLcServer* >( this )), - *iEngine ); - - return newSession; - } - -// --------------------------------------------------------------------------- -// void CLcServer::IncrementSessions -// --------------------------------------------------------------------------- -// -void CLcServer::IncrementSessions() - { - // Increment the number of sessions - iNumberofSessions++; - - // Stop the Shutdown timer. This function does nothing if the timer - // is not already running. - iShutDownTimer->StopTimer(); - } - -// --------------------------------------------------------------------------- -// void CLcServer::DecrementSessions -// --------------------------------------------------------------------------- -// -void CLcServer::DecrementSessions() - { - - // If the number of sessions is equal to zero then start the shutdown - // timer. - if ( --iNumberofSessions == 0 ) - { - iShutDownTimer->StartTimer(); - } - } - -// --------------------------------------------------------------------------- -// void CLcServer::LcRegistryUpdated -// --------------------------------------------------------------------------- -// -void CLcServer::LcRegistryUpdated() - { - // Inform all the Sessions contained here that there is an update to the - // registry so that they can inform any clients which have registered - // for notification - iSessionIter.SetToFirst(); - - while ( iSessionIter ) - { - // Obtain the element at the current position and notify the corresponding - // session object. - CLcServerSession& session = static_cast ( *iSessionIter ); - session.RegistryUpdated(); - - // Increment the Session object to point to the next session instance - iSessionIter++; - } - } -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcserverengine.cpp --- a/locationcentre/lcserver/src/lcserverengine.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,704 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server Engine Object. -* -*/ - - -// SYSTEM INCLUDES -#include -#include - -// USER INCLUDES -#include "lcserverengine.h" -#include "lcregistry.h" -#include "lcserverengineobserver.h" -#include "lcserverinterface.h" -#include "lcdebug.h" - -// CONSTANT DEFINTIONS -const TUint32 KUidMaxValue = 0xFFFFFFFF; - -// ----- Member funtions for CLcServerEngine --------------------------------- - -// --------------------------------------------------------------------------- -// CLcServerEngine::CLcServerEngine -// --------------------------------------------------------------------------- -// -CLcServerEngine::CLcServerEngine( MLcServerEngineObserver& aObserver ) - :iObserver( aObserver ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcServerEngine::~CLcServerEngine -// --------------------------------------------------------------------------- -// -CLcServerEngine::~CLcServerEngine() - { - // C++ Destructor. Free all resources associated with this class. - - // Complete any outstanding messages if they exist and free all the - // associated resources - while ( iMessageArray.Count()) - { - // Extract the IPC message handle from the Array - RMessage2* message = iMessageArray[0]; - iMessageArray.Remove( 0 ); - - // Service the Request. - message->Complete( KErrServerTerminated ); - - // Free the message structure - delete message; - } - iMessageArray.ResetAndDestroy(); - iMessageArray.Close(); - - // Delete the Location Centre Registry - delete iRegistry; - } - -// --------------------------------------------------------------------------- -// CLcServerEngine* CLcServerEngine::NewL -// --------------------------------------------------------------------------- -// -CLcServerEngine* CLcServerEngine::NewL( MLcServerEngineObserver& aObserver ) - { - CLcServerEngine* self = NewLC( aObserver ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcServerEngine* CLcServerEngine::NewLC -// --------------------------------------------------------------------------- -// -CLcServerEngine* CLcServerEngine::NewLC( MLcServerEngineObserver& aObserver ) - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcServerEngine* self = new ( ELeave )CLcServerEngine( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcServerEngine::ConstructL -// --------------------------------------------------------------------------- -// -void CLcServerEngine::ConstructL() - { - // Create the Location Centre Registry - iRegistry = CLcRegistry::NewL( *this ); - - } - -// --------------------------------------------------------------------------- -// void CLcServerEngine::ConstructL -// --------------------------------------------------------------------------- -// -void CLcServerEngine::DoServiceL( const RMessage2& aMessage ) - { - // We cannot store the reference to the RMessage2 object passed but - // need to create a new instance and copy the contents for all - // furture purposes - RMessage2* message = new RMessage2; - *message = aMessage; - - // Append the message to the Queue. All messages will be serviced later - // in a generic manner. - User::LeaveIfError( iMessageArray.Append( message )); - - if ( !iRegistryUnderUpdate ) - { - // The registry is consistent. So the message can be handled immediately. - ServiceRequests(); - } - } - -// --------------------------------------------------------------------------- -// void CLcServerEngine::RegistryUnderUpdation -// --------------------------------------------------------------------------- -// -void CLcServerEngine::RegistryUnderUpdation() - { - DEBUG( "+ CLcServerEngine::RegistryUnderUpdation") - - // Set the Registry update flag. This would prevent the Engine from - // performing any operation until the updation completes. - iRegistryUnderUpdate = ETrue; - - DEBUG( "- CLcServerEngine::RegistryUnderUpdation") - } - -// --------------------------------------------------------------------------- -// void CLcServerEngine::RegistryUpdated -// --------------------------------------------------------------------------- -// -void CLcServerEngine::RegistryUpdated() - { - DEBUG( "+ CLcServerEngine::RegistryUpdated") - - // Reset the Registry Update flag. Now the Registry is consistent and - // the Engine can service any requestsy - iRegistryUnderUpdate = EFalse; - - // Serve all the outstanding Location Requests. - ServiceRequests(); - - // Notify the Engine Observer about the changes to the Registry. - iObserver.LcRegistryUpdated(); - - DEBUG( "- CLcServerEngine::RegistryUpdated") - } - -// --------------------------------------------------------------------------- -// void CLcServerEngine::ServiceRequests -// --------------------------------------------------------------------------- -// -void CLcServerEngine::ServiceRequests() - { - // Service all outstanding LC requests. - while ( iMessageArray.Count()) - { - // Extract the IPC message handle from the Array - RMessage2* message = iMessageArray[0]; - iMessageArray.Remove( 0 ); - - // Service the Request. - TRAPD( error, ServiceRequestL(*message)); - - DEBUG1( "ServiceRequest Error %d", error ) - - // Complete the request with the error code. - message->Complete( error ); - - // Free the message structure - delete message; - } - } - -// --------------------------------------------------------------------------- -// void CLcServerEngine::ServiceRequestL -// --------------------------------------------------------------------------- -// -void CLcServerEngine::ServiceRequestL( RMessage2& aMessage ) - { - // Set the Current requestor's SID - iCurrentRequestorSid = aMessage.SecureId(); - - switch( aMessage.Function()) - { - case ELcFilteredAppsBufferLength: - case ELcFilteredApps: - { - // Getting the Application buffer length and Getting the list of applications - // have similar functionality. Only the last portion of the code changes. - // Hence, both the requests will be handled similarly with the necessary - // differentiation at the end. - - // Create the package buffer for obtaining the filter conditions - TPckgBuf< TLcLocationAppFilter > filterBuf; - - // Read the filter contents - User::LeaveIfError( aMessage.Read( 0, filterBuf )); - - RLcIpcAppInfoArray appArray; - CleanupClosePushL( appArray ); - - // Filter Location based Applications based on the Filter - // conditions - GetFilteredAppsL( filterBuf(), appArray ); - - // Now for the differentiation - if ( aMessage.Function() == ELcFilteredAppsBufferLength ) - { - // Write the Length Value into a buffer - CBufFlat* lengthBuffer = CBufFlat::NewL( sizeof( TUint32 )); - CleanupStack::PushL( lengthBuffer ); - RBufWriteStream lengthWrite( *lengthBuffer, 0 ); - CleanupClosePushL( lengthWrite ); - lengthWrite.WriteInt32L( appArray.BufferLength()); - CleanupStack::PopAndDestroy(); // lengthWrite - - // Write the Buffer back to the IPC message - TPtr8 ptr( lengthBuffer->Ptr(0)); - User::LeaveIfError( aMessage.Write( 1, ptr )); - - // Pop and destroy the length buffer - CleanupStack::PopAndDestroy( lengthBuffer ); - } - else - { - // Create the buffer for packing the Application Information - // structures and pack the contents into this buffer - CBufFlat* buffer = CBufFlat::NewL( appArray.BufferLength() ); - CleanupStack::PushL( buffer ); - RBufWriteStream writeStream( *buffer, 0 ); - CleanupClosePushL( writeStream ); - appArray.ExternalizeL( writeStream ); - CleanupStack::PopAndDestroy(); // writeStream - - // Write the buffer back to the IPC message. - TPtr8 ptr( buffer->Ptr(0)); - User::LeaveIfError( aMessage.Write( 1, ptr )); - - // Pop and destroy the app buffer - CleanupStack::PopAndDestroy( buffer ); - } - - // Reset and Destroy the Contents of the Application info - // array - CleanupStack::PopAndDestroy( &appArray ); - break; - } - case ELcSpecifiedAppsBufferLength: - case ELcSpecifiedApps: - { - // Getting the Application buffer length and Getting the list of applications - // have similar functionality. Only the last portion of the code changes. - // Hence, both the requets will be handled similarly with the necessary - // differentiation at the end. - - // Obtain the array of Applications which need to be used for - // filtering. - - // Read the Descriptor from the IPC arguments - TInt desLength = aMessage.GetDesLength( 0 ); - // Allocate the id Array buffer - CBufFlat* idArrayBuf = CBufFlat::NewL( desLength ); - CleanupStack::PushL( idArrayBuf ); - idArrayBuf->ResizeL( desLength ); - - TPtr8 idArrayPtr( idArrayBuf->Ptr(0)); - - // Now read the descriptor finally - User::LeaveIfError( aMessage.Read( 0, idArrayPtr )); - - // Create a Read buffer stream to read the App Ids - RBufReadStream appReadStream( *idArrayBuf, 0 ); - CleanupClosePushL( appReadStream ); - - RLcIpcAppIdArray idArray; - CleanupStack::PushL( TCleanupItem( RLcIpcAppIdArray::ResetAndDestroyIdArray, &idArray )); - - // Internalize the structure to obtain the Actual list of Ids - idArray.InternalizeL( appReadStream ); - - - RLcIpcAppInfoArray appArray; - CleanupClosePushL( appArray ); - - // Read the second paramte to determine whether the list specified needs to be - // included or excluded - TBool includeFlag = aMessage.Int1(); - if ( includeFlag ) - { - GetSpecifiedAppsL( idArray, appArray ); - } - else - { - GetWithoutSpecifiedAppsL( idArray, appArray ); - } - - if ( aMessage.Function() == ELcSpecifiedAppsBufferLength ) - { - // Write the Length Value into a buffer - CBufFlat* lengthBuffer = CBufFlat::NewL( sizeof( TUint32 )); - CleanupStack::PushL( lengthBuffer ); - - RBufWriteStream lengthWrite( *lengthBuffer, 0 ); - CleanupClosePushL( lengthWrite ); - lengthWrite.WriteInt32L( appArray.BufferLength()); - CleanupStack::PopAndDestroy(); // lengthWrite - - // Write the Buffer back to the IPC message - TPtr8 ptr( lengthBuffer->Ptr(0)); - User::Leave( aMessage.Write( 2, ptr )); - - // Pop and destroy the Length buffer - CleanupStack::PopAndDestroy( lengthBuffer ); - } - else - { - // Create the buffer for packing the Application Information - // structures and pack the contents into this buffer - CBufFlat* buffer = CBufFlat::NewL( appArray.BufferLength() ); - CleanupStack::PushL( buffer ); - - RBufWriteStream writeStream( *buffer, 0 ); - CleanupClosePushL( writeStream ); - appArray.ExternalizeL( writeStream ); - CleanupStack::PopAndDestroy(); // writeStream - - // Write the buffer back to the IPC message. - TPtr8 ptr( buffer->Ptr(0)); - User::Leave( aMessage.Write( 2, ptr )); - - // Pop and destroy the app buffer - CleanupStack::PopAndDestroy( buffer ); - } - - // We can also destroy the App id array buffer and Read streams - CleanupStack::PopAndDestroy( 4, idArrayBuf ); - - break; - } - case ELcAppInfoLength: - { - DEBUG( "+ CLcServerEngine::ServiceRequestL, ELcAppInfoLength ") - - // Read the Descriptor from the IPC arguments - TInt desLength = aMessage.GetDesLength( 0 ); - - // Obtain the Application Identifier - HBufC* identifier = HBufC::NewLC( desLength ); - TPtr des(identifier->Des()); - aMessage.Read( 0, des ); - - // Obtain the Location based Application for this identifer - CLcBasicAppInfo* appInfo = NULL; - User::LeaveIfError( iRegistry->GetApplicationInfo( *identifier, appInfo )); - - // Pack the Length field into the Second argument - CBufFlat* lengthBuffer = CBufFlat::NewL( sizeof( TUint32 )); - CleanupStack::PushL( lengthBuffer ); - - RBufWriteStream lengthWrite( *lengthBuffer, 0 ); - CleanupClosePushL( lengthWrite ); - lengthWrite.WriteInt32L( appInfo->BufferLength()); - CleanupStack::PopAndDestroy(); // lengthWrite - - // Write the Buffer back to the IPC message - TPtr8 ptr( lengthBuffer->Ptr(0)); - User::LeaveIfError( aMessage.Write( 1, ptr )); - - // Pop and destroy the Length buffer - CleanupStack::PopAndDestroy( 2, identifier ); - - DEBUG( "- CLcServerEngine::ServiceRequestL, ELcAppInfoLength ") - - break; - } - case ELcAppInfo: - { - DEBUG( "+ CLcServerEngine::ServiceRequestL, ELcAppInfo ") - - // Read the Descriptor from the IPC arguments - TInt desLength = aMessage.GetDesLength( 0 ); - - // Obtain the Application Identifier - HBufC* identifier = HBufC::NewLC( desLength ); - TPtr des(identifier->Des()); - aMessage.Read(0, des); - - // Obtain the Location based Application for this identifer - CLcBasicAppInfo* appInfo = NULL; - User::LeaveIfError( iRegistry->GetApplicationInfo( *identifier, appInfo )); - - // Create the buffer for packing the Application Information - // structure and pack the contents into this buffer - CBufFlat* buffer = CBufFlat::NewL( appInfo->BufferLength()); - CleanupStack::PushL( buffer ); - - RBufWriteStream writeStream( *buffer, 0 ); - CleanupClosePushL( writeStream ); - appInfo->ExternalizeL( writeStream ); - CleanupStack::PopAndDestroy(); // writeStream - - // Write the buffer back to the IPC message. - TPtr8 ptr( buffer->Ptr(0)); - User::LeaveIfError( aMessage.Write( 1, ptr )); - - // Pop and destroy the App info buffer - CleanupStack::PopAndDestroy( 2, identifier ); - - DEBUG( "- CLcServerEngine::ServiceRequestL, ELcAppInfo ") - - break; - } - default: - { - DEBUG( "CLcServerEngine::ServiceRequestL, KErrNotSupported ") - User::Leave( KErrNotSupported ); - break; - } - } - } - -// --------------------------------------------------------------------------- -// void CLcServerEngine::GetFilteredApps -// --------------------------------------------------------------------------- -// -void CLcServerEngine::GetFilteredAppsL( - TLcLocationAppFilter& aAppFilter, - RLcIpcAppInfoArray& aFilteredAppArray ) - { - DEBUG( "+ CLcServerEngine::GetFilteredAppsL") - - // Obtain the current list of Location based Applications from the - // Location Centre registry. Incase, the application satisfies the - // filter conditions, then the application is appended to the list. - - RPointerArray appInfoArray; - User::LeaveIfError( iRegistry->GetAllRegisteredAppsList( appInfoArray )); - - TInt count = appInfoArray.Count(); - - // Parse through the array list for each item - for ( TInt i = 0; i < count; i++ ) - { - // Obtain the element at the position 'i' - CLcAppInfo* element = appInfoArray[i]; - - if ( element->ApplicationType() == ELcNativeApplication && - IsSameSID( element->ApplicationData())) - { - continue; - } - - // Check for the filtering conditions. Here we can check for the System - // filters and Application filters simultaneously. The code seems - // pretty lengthy owing to many accessor methods but retained it here - // instead of using too many local variables. - if ( Compare( aAppFilter.SystemCharacteristics(), - element->SystemCharacteristics(), - aAppFilter.SysCharFilterConfiguration()) && - Compare( aAppFilter.ApplicationCharacteristics(), - element->ApplicationCharacteristics(), - aAppFilter.AppCharFilterConfiguration())) - { - // The filter characteristics have matched. So append the element - // to the Array - - // Ignoring the Append error. Incase there is an error then the - // element would not be appened. - User::LeaveIfError( aFilteredAppArray.Append( element )); - } - } - appInfoArray.Reset(); - appInfoArray.Close(); - - DEBUG1( "App Count : %d", aFilteredAppArray.Count()) - DEBUG( "- CLcServerEngine::GetFilteredAppsL") - } - -// --------------------------------------------------------------------------- -// void CLcServerEngine::GetSpecifiedAppsL -// --------------------------------------------------------------------------- -// -void CLcServerEngine::GetSpecifiedAppsL( - RLcIpcAppIdArray& aSpecifedApps, - RLcIpcAppInfoArray& aSpecifiedAppArray ) - { - // Obtain the current list of Location based Applications from the - // Location Centre registry. Incase, the application satisfies the - // filter conditions, then the application is appended to the list. - RPointerArray appInfoArray; - User::LeaveIfError( iRegistry->GetAllRegisteredAppsList( appInfoArray )); - TInt count = appInfoArray.Count(); - - // Parse through the array list for each item - for ( TInt i = 0; i < count; i++ ) - { - // Obtain the element at the position 'i' - CLcAppInfo* element = appInfoArray[i]; - - if ( element->ApplicationType() == ELcNativeApplication && - IsSameSID( element->ApplicationData())) - { - continue; - } - - // Check for the filtering conditions - for ( TInt j = 0; j < aSpecifedApps.Count(); j++ ) - { - // Obtain the current identifier - HBufC* identifier = aSpecifedApps[j]; - - // Check if the current App info's id is the same as this identifer - // If Yes, then append it and go to the next element. - if ( !identifier->Des().Compare( element->Id())) - { - // Ignoring the Append error. Incase there is an error then the - // element would not be appened. - User::LeaveIfError( aSpecifiedAppArray.Append( element )); - } - } - // Small optimization check to see if the number of elements that have - // been added are equal to the the number of elements in the App id - // array. If yes, we can stop the checking. - if ( aSpecifiedAppArray.Count() == aSpecifedApps.Count() ) - { - break; - } - } - appInfoArray.Reset(); - appInfoArray.Close(); - } - -// --------------------------------------------------------------------------- -// void CLcServerEngine::GetWithoutSpecifiedAppsL -// --------------------------------------------------------------------------- -// -void CLcServerEngine::GetWithoutSpecifiedAppsL( - RLcIpcAppIdArray& aSpecifedApps, - RLcIpcAppInfoArray& aSpecifiedAppArray ) - { - // Obtain the current list of Location based Applications from the - // Location Centre registry. Incase, the application satisfies the - // filter conditions, then the application is appended to the list. - - RPointerArray appInfoArray; - User::LeaveIfError( iRegistry->GetAllRegisteredAppsList( appInfoArray )); - TInt count = appInfoArray.Count(); - - // Parse through the array list for each item - for ( TInt i = 0; i < appInfoArray.Count(); i++ ) - { - // Obtain the element at the position 'i' - CLcAppInfo* element = appInfoArray[i]; - - if ( element->ApplicationType() == ELcNativeApplication && - IsSameSID( element->ApplicationData())) - { - continue; - } - - // Boolean flag to check whether an element exists or not. - TBool append = ETrue; - - // Check for the filtering conditions - for ( TInt j = 0; j < aSpecifedApps.Count(); j++ ) - { - // Obtain the current identifier - HBufC* identifier = aSpecifedApps[j]; - - // Check if the current App info's id is the same as this identifer - // If Yes, then append it and go to the next element. - if ( !identifier->Des().Compare( element->Id())) - { - // Incase, the element being compared in the list is requested - // then set the flag and break the switch - append = EFalse; - break; - } - } - - if ( append ) - { - // Ignoring the Append error. Incase there is an error then the - // element would not be appened. - User::LeaveIfError( aSpecifiedAppArray.Append( element )); - } - } - appInfoArray.Reset(); - appInfoArray.Close(); - } - -// --------------------------------------------------------------------------- -// void CLcServerEngine::Compare -// --------------------------------------------------------------------------- -// -TBool CLcServerEngine::Compare( TUint32 aFilter, - TUint32 aFiltertoCompare, - TInt aFilterConfig ) - { - // Here, - // aFilter - Filter passed by the Client Application - // aFiltertoCompare - Filter of the Location based Application - - // If no filter configurations are set then there will be no need to - // proceed with checking. The Locaiton based Application must always be - // included. Hence, return True. - if ( !aFilter ) - { - return ETrue; - } - - // Proceed for the Actual checking. - - // Set the default value to EFalse to enable pessimistic match. - TBool ret = EFalse; - - switch( aFilterConfig ) - { - case TLcLocationAppFilter::EFilterStrict: - { - // Strict Filtering needs to be applied. So here we just have to - // compare the values and then return True only if there is an - // exact match - if ( aFilter == aFiltertoCompare ) - { - ret = ETrue; - } - break; - } - case TLcLocationAppFilter::EFilterInclusive: - { - // The Location based Application must have all the characteristics - // passed by the Client application. It can have any additonal - // characteristic too. - if (( aFilter & aFiltertoCompare ) == aFilter ) - { - ret = ETrue; - } - break; - } - case TLcLocationAppFilter::EFilterExclusive: - { - // The filtering should be such that there should be no match - // between the requested character set and the one specified for the - // Location based Application. - if ( !( aFilter & aFiltertoCompare )) - { - ret = ETrue; - } - break; - } - default: - { - break; - } - } - return ret; - } - -// --------------------------------------------------------------------------- -// TBool CLcServerEngine::IsSameSID -// --------------------------------------------------------------------------- -// -TBool CLcServerEngine::IsSameSID( const TDesC& aAppSid ) - { - // Since the request is for a Native S60 application, the Identifer - // contains an UID. Obtain it using Lexer - TLex lexer( aAppSid ); - TUint32 uidValue; - - if ( lexer.BoundedVal( uidValue, EHex, KUidMaxValue ) || - uidValue != iCurrentRequestorSid ) - { - return EFalse; - } - else - { - return ETrue; - } - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcserversession.cpp --- a/locationcentre/lcserver/src/lcserversession.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,240 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server side session object. -* -*/ - - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcserversession.h" -#include "lcserver.h" -#include "lcipcparams.h" -#include "lcserverinterface.h" -#include "lcserverengine.h" -#include "lcdebug.h" - -// ----- Member funtions for CLcServerSession --------------------------------- - -// --------------------------------------------------------------------------- -// CLcServerSession::CLcServerSession -// --------------------------------------------------------------------------- -// -CLcServerSession::CLcServerSession( CLcServer& aLcServer, - CLcServerEngine& aLcServerEngine ) - :iLcServer( aLcServer ), - iEngine( aLcServerEngine ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcServerSession::~CLcServerSession -// --------------------------------------------------------------------------- -// -CLcServerSession::~CLcServerSession() - { - // C++ Destructor. Free all resources associated with this class. - - // Complete the Observer method with KErrServerTerminated if it exists - if ( iNotificationOutStanding ) - { - iObserverMessage.Complete( KErrServerTerminated ); - } - - // Decrement the count only if it has been incremented in the Construction - if( iDecrementSession ) - { - iLcServer.DecrementSessions(); - } - } - -// --------------------------------------------------------------------------- -// CLcServerSession* CLcServerSession::NewL -// --------------------------------------------------------------------------- -// -CLcServerSession* CLcServerSession::NewL( CLcServer& aLcServer, - CLcServerEngine& aLcServerEngine ) - { - CLcServerSession* self = NewLC( aLcServer, aLcServerEngine ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcServerSession* CLcServerSession::NewLC -// --------------------------------------------------------------------------- -// -CLcServerSession* CLcServerSession::NewLC( CLcServer& aLcServer, - CLcServerEngine& aLcServerEngine ) - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcServerSession* self = - new ( ELeave )CLcServerSession( aLcServer, - aLcServerEngine ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcService::ConstructL -// --------------------------------------------------------------------------- -// -void CLcServerSession::ConstructL() - { - - // Increment the server's increment session routine. - iLcServer.IncrementSessions(); - - // Set the flag to mark that the number of sessions have been incremented. - // This flag is set at the end of the contruction process to ensure that - // we dont decrement the count in the destructor unless we have actually - // incremented it. This is necessary because there is a possibility that - // the ConstructL leaves before incrementing the count. - iDecrementSession = ETrue; - } - -// --------------------------------------------------------------------------- -// void CLcServerSession::RegistryUpdated -// --------------------------------------------------------------------------- -// -void CLcServerSession::RegistryUpdated() - { - DEBUG( "+ CLcServerSession::RegistryUpdated") - - // If the Observer has been set, then complete the Observer - // request with KErrNone. - if ( iNotificationOutStanding ) - { - DEBUG3("Notify Client", 0, 0, 0 ); - - iObserverMessage.Complete( KErrNone ); - } - else - { - DEBUG3("Notify Lost", 0, 0, 0 ); - iNotifyPending = ETrue; - } - iNotificationOutStanding = EFalse; - - DEBUG( "- CLcServerSession::RegistryUpdated") - } - -// --------------------------------------------------------------------------- -// void CLcServerSession::ServiceL -// --------------------------------------------------------------------------- -// -void CLcServerSession::ServiceL( const RMessage2& aMessage ) - { - DEBUG( "+ CLcServerSession::ServiceL") - - switch( aMessage.Function()) - { - case ERegisterObserver: - { - DEBUG( "Message : ERegisterObserver") - - // If an Observer message exists then this is a Duplicate request - // which is not accepted. - if ( iNotificationOutStanding ) - { - DEBUG3("Notify Already there", 0, 0, 0 ); - aMessage.Complete( KErrAlreadyExists ); - } - else if ( iNotifyPending ) - { - DEBUG3("Notify Immediately", 0, 0, 0 ); - aMessage.Complete( KErrNone ); - iNotifyPending = EFalse; - } - else - { - DEBUG3("Notify Later", 0, 0, 0 ); - // The Client application has requested for an Observer to - // notify about any changes to the Location Centre Registry. - // Store the message object. - iObserverMessage = aMessage; - iNotificationOutStanding = ETrue; - } - break; - } - case ERemoveObserver: - { - DEBUG( "Message : ERemoveObserver") - - // If the Observer has been set, then complete the Observer - // request with KErrCancel. - if ( iNotificationOutStanding ) - { - iObserverMessage.Complete( KErrCancel ); - } - iNotificationOutStanding = EFalse; - - // Complete the current request with KErrNone - aMessage.Complete( KErrNone ); - - break; - } - case ELcFilteredAppsBufferLength: - case ELcFilteredApps: - case ELcSpecifiedAppsBufferLength: - case ELcSpecifiedApps: - case ELcAppInfoLength: - case ELcAppInfo: - { - TInt desLength = aMessage.GetDesLength( 0 ); - if ( desLength < KErrNone ) - { - User::Leave( desLength ); - } - - if ( desLength >= KMaxTInt/2 ) - { - User::Leave( KErrArgument ); - } - - // These messages are not handled here but only in the Engine - // class. Hence, pass it onto the Engine class for handling. - iEngine.DoServiceL( aMessage ); - break; - } - default: - { - aMessage.Complete( KErrNotSupported ); - } - } - - DEBUG( "- CLcServerSession::ServiceL") - } - -// --------------------------------------------------------------------------- -// void CLcServerSession::ServiceError -// --------------------------------------------------------------------------- -// -void CLcServerSession::ServiceError( const RMessage2& aMessage, - TInt aError ) - { - DEBUG( "+ CLcServerSession::ServiceError") - - aMessage.Complete( aError ); - - DEBUG( "- CLcServerSession::ServiceError") - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcservershutdowntimer.cpp --- a/locationcentre/lcserver/src/lcservershutdowntimer.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Shutdown timer for Location Centre server. -* -*/ - - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcservershutdowntimer.h" -#include "lcprivatecrkeys.h" - -// CONSTANT DEFINTIONS -TInt KMilliSectoMicroConversion = 1000; - -// ----- Member funtions for CLcServerShutDownTimerShutDownTimer ------------- - -// --------------------------------------------------------------------------- -// CLcServerShutDownTimer::CLcServerShutDownTimer -// --------------------------------------------------------------------------- -// -CLcServerShutDownTimer::CLcServerShutDownTimer() - :CTimer( CActive::EPriorityLow ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - - // The timer needs to be added to the Active scheduler explicitly. So - // adding it here - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// CLcServerShutDownTimer::~CLcServerShutDownTimer -// --------------------------------------------------------------------------- -// -CLcServerShutDownTimer::~CLcServerShutDownTimer() - { - // C++ Destructor. Free all resources associated with this class. - Cancel(); - } - -// --------------------------------------------------------------------------- -// CLcServerShutDownTimer* CLcServerShutDownTimer::NewL -// --------------------------------------------------------------------------- -// -CLcServerShutDownTimer* CLcServerShutDownTimer::NewL() - { - CLcServerShutDownTimer* self = NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcServerShutDownTimer* CLcServerShutDownTimer::NewLC -// --------------------------------------------------------------------------- -// -CLcServerShutDownTimer* CLcServerShutDownTimer::NewLC() - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcServerShutDownTimer* self = new ( ELeave )CLcServerShutDownTimer(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcServerShutDownTimer::ConstructL -// --------------------------------------------------------------------------- -// -void CLcServerShutDownTimer::ConstructL() - { - // Read the shutdown timer value from the Location Centre Central - // repository - CRepository* repository = CRepository::NewLC( KCRUidLocationCentre ); - repository->Get( KLcShutdownTimerValue, iShutDownTimerValue ); - CleanupStack::PopAndDestroy( repository ); - - // Convert the Shutdown timer value into microseconds - iShutDownTimerValue *= KMilliSectoMicroConversion; - - // Call the base class ConstructL - CTimer::ConstructL(); - } - -// --------------------------------------------------------------------------- -// void CLcServerShutDownTimer::ConstructL -// --------------------------------------------------------------------------- -// -void CLcServerShutDownTimer::StartTimer() - { - // Check if there is a request outstanding. Incase, a request is - // outstanding then do nothing. If not start a new timer request - - if ( !IsActive()) - { - CTimer::After( iShutDownTimerValue ); - } - } - -// --------------------------------------------------------------------------- -// void CLcServerShutDownTimer::ConstructL -// --------------------------------------------------------------------------- -// -void CLcServerShutDownTimer::StopTimer() - { - Cancel(); - } - -// --------------------------------------------------------------------------- -// CLcServerShutDownTimer::RunL -// --------------------------------------------------------------------------- -// -void CLcServerShutDownTimer::RunL() - { - // Timer is not cancelled by the server. Hence, we can assume tha there - // are no new connection requests to the server. Its safe to shutdown - // the server - CActiveScheduler::Stop(); - } - -// --------------------------------------------------------------------------- -// CLcServerShutDownTimer::RunError -// --------------------------------------------------------------------------- -// -TInt CLcServerShutDownTimer::RunError( TInt aError ) - { - return aError; - } -// End of File - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcserver/src/lcserverstartup.cpp --- a/locationcentre/lcserver/src/lcserverstartup.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Server start up. -* -*/ - - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lcserverstartup.h" -#include "lcserverinterface.h" -#include "lcserver.h" - -// ----- Member funtions for LcServerStartup --------------------------------- - -// --------------------------------------------------------------------------- -// TInt LcServerStartup::StartLocationCentreServer -// --------------------------------------------------------------------------- -// -TInt LcServerStartup::StartLocationCentreServer() - { - __UHEAP_MARK; - - CTrapCleanup* cleanupStack = CTrapCleanup::New(); - - TInt ret = KErrNoMemory; - if ( cleanupStack ) - { - TRAP(ret, StartLocationCentreServerL()); - delete cleanupStack; - } - - __UHEAP_MARKEND; - - return ret; - } - -// --------------------------------------------------------------------------- -// void LcServerStartup::StartLocationCentreServer -// --------------------------------------------------------------------------- -// -void LcServerStartup::StartLocationCentreServerL() - { - // Rename thread to aid debugging - User::LeaveIfError( User::RenameThread( KLocationCentreServerName )); - - // Start Active scheduler and Server - CActiveScheduler* scheduler = new( ELeave ) CActiveScheduler; - CleanupStack::PushL( scheduler ); - CActiveScheduler::Install( scheduler ); - - CLcServer* server = CLcServer::NewL(); - CleanupStack::PushL( server ); - - CleanupStack::Pop(2, scheduler); // server - - RProcess::Rendezvous( KErrNone ); - - CActiveScheduler::Start(); - - delete server; - delete scheduler; - } - -// ----------------------------------------------------------------------------- -// TInt E32Main -// Server process entry-point -// ----------------------------------------------------------------------------- -// -TInt E32Main() - { - return LcServerStartup::StartLocationCentreServer(); - } - -// End of File - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/bwins/lcserviceu.def --- a/locationcentre/lcservice/bwins/lcserviceu.def Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -EXPORTS - ??0TLcLocationAppFilter@@QAE@XZ @ 1 NONAME ; TLcLocationAppFilter::TLcLocationAppFilter(void) - ??1CLcLocationAppInfo@@UAE@XZ @ 2 NONAME ; CLcLocationAppInfo::~CLcLocationAppInfo(void) - ??1CLcLocationAppInfoArray@@UAE@XZ @ 3 NONAME ; CLcLocationAppInfoArray::~CLcLocationAppInfoArray(void) - ??ACLcLocationAppInfoArray@@QBEAAVCLcLocationAppInfo@@H@Z @ 4 NONAME ; class CLcLocationAppInfo & CLcLocationAppInfoArray::operator[](int) const - ?AppCharFilterConfiguration@TLcLocationAppFilter@@QBE?AW4TLcFilterConfig@1@XZ @ 5 NONAME ; enum TLcLocationAppFilter::TLcFilterConfig TLcLocationAppFilter::AppCharFilterConfiguration(void) const - ?AppendL@CLcLocationAppInfoArray@@QAEXPAVCLcLocationAppInfo@@@Z @ 6 NONAME ; void CLcLocationAppInfoArray::AppendL(class CLcLocationAppInfo *) - ?ApplicationCharacteristics@CLcLocationAppInfo@@QBEKXZ @ 7 NONAME ; unsigned long CLcLocationAppInfo::ApplicationCharacteristics(void) const - ?ApplicationCharacteristics@TLcLocationAppFilter@@QBEKXZ @ 8 NONAME ; unsigned long TLcLocationAppFilter::ApplicationCharacteristics(void) const - ?CancelGetLocationApplications@CLcService@@QAEXXZ @ 9 NONAME ; void CLcService::CancelGetLocationApplications(void) - ?Count@CLcLocationAppInfoArray@@QBEHXZ @ 10 NONAME ; int CLcLocationAppInfoArray::Count(void) const - ?GetLocationApplications@CLcService@@QAEXAAVTRequestStatus@@AAPAVCLcLocationAppInfoArray@@@Z @ 11 NONAME ; void CLcService::GetLocationApplications(class TRequestStatus &, class CLcLocationAppInfoArray * &) - ?GetLocationApplications@CLcService@@QAEXAAVTRequestStatus@@ABVTLcLocationAppFilter@@AAPAVCLcLocationAppInfoArray@@@Z @ 12 NONAME ; void CLcService::GetLocationApplications(class TRequestStatus &, class TLcLocationAppFilter const &, class CLcLocationAppInfoArray * &) - ?GetLocationApplicationsL@CLcService@@QAEPAVCLcLocationAppInfoArray@@ABVTLcLocationAppFilter@@@Z @ 13 NONAME ; class CLcLocationAppInfoArray * CLcService::GetLocationApplicationsL(class TLcLocationAppFilter const &) - ?GetLocationApplicationsL@CLcService@@QAEPAVCLcLocationAppInfoArray@@XZ @ 14 NONAME ; class CLcLocationAppInfoArray * CLcService::GetLocationApplicationsL(void) - ?IconL@CLcLocationAppInfo@@QBEPAVCGulIcon@@XZ @ 15 NONAME ; class CGulIcon * CLcLocationAppInfo::IconL(void) const - ?Id@CLcLocationAppInfo@@QBE?AVTPtrC16@@XZ @ 16 NONAME ; class TPtrC16 CLcLocationAppInfo::Id(void) const - ?LaunchLocationApplicationL@CLcService@@QAEXABVTDesC16@@W4TLcLaunchMode@CLcLocationAppInfo@@PAVMLcAppExitObserver@@@Z @ 17 NONAME ; void CLcService::LaunchLocationApplicationL(class TDesC16 const &, enum CLcLocationAppInfo::TLcLaunchMode, class MLcAppExitObserver *) - ?LaunchLocationCentreL@CLcService@@QAEXABV?$RArray@VTPtrC16@@@@W4TLcLaunchMode@CLcLocationAppInfo@@PAVMLcAppExitObserver@@@Z @ 18 NONAME ; void CLcService::LaunchLocationCentreL(class RArray const &, enum CLcLocationAppInfo::TLcLaunchMode, class MLcAppExitObserver *) - ?LaunchLocationCentreL@CLcService@@QAEXABV?$RPointerArray@VCLcLaunchParam@CLcService@@@@PAVMLcAppExitObserver@@@Z @ 19 NONAME ; void CLcService::LaunchLocationCentreL(class RPointerArray const &, class MLcAppExitObserver *) - ?LaunchLocationCentreL@CLcService@@QAEXABVTLcLocationAppFilter@@W4TLcLaunchMode@CLcLocationAppInfo@@PAVMLcAppExitObserver@@@Z @ 20 NONAME ; void CLcService::LaunchLocationCentreL(class TLcLocationAppFilter const &, enum CLcLocationAppInfo::TLcLaunchMode, class MLcAppExitObserver *) - ?LaunchLocationCentreL@CLcService@@QAEXW4TLcLaunchMode@CLcLocationAppInfo@@PAVMLcAppExitObserver@@@Z @ 21 NONAME ; void CLcService::LaunchLocationCentreL(enum CLcLocationAppInfo::TLcLaunchMode, class MLcAppExitObserver *) - ?LaunchMode@CLcLocationAppInfo@@QBE?AW4TLcLaunchMode@1@XZ @ 22 NONAME ; enum CLcLocationAppInfo::TLcLaunchMode CLcLocationAppInfo::LaunchMode(void) const - ?Name@CLcLocationAppInfo@@QBE?AVTPtrC16@@XZ @ 23 NONAME ; class TPtrC16 CLcLocationAppInfo::Name(void) const - ?NewL@CLcLaunchParam@CLcService@@SAPAV12@ABVTDesC16@@W4TLcLaunchMode@CLcLocationAppInfo@@@Z @ 24 NONAME ; class CLcService::CLcLaunchParam * CLcService::CLcLaunchParam::NewL(class TDesC16 const &, enum CLcLocationAppInfo::TLcLaunchMode) - ?NewL@CLcLocationAppInfo@@SAPAV1@ABV1@@Z @ 25 NONAME ; class CLcLocationAppInfo * CLcLocationAppInfo::NewL(class CLcLocationAppInfo const &) - ?NewL@CLcLocationAppInfo@@SAPAV1@XZ @ 26 NONAME ; class CLcLocationAppInfo * CLcLocationAppInfo::NewL(void) - ?NewL@CLcLocationAppInfoArray@@SAPAV1@XZ @ 27 NONAME ; class CLcLocationAppInfoArray * CLcLocationAppInfoArray::NewL(void) - ?NewL@CLcService@@SAPAV1@XZ @ 28 NONAME ; class CLcService * CLcService::NewL(void) - ?NewLC@CLcLaunchParam@CLcService@@SAPAV12@ABVTDesC16@@W4TLcLaunchMode@CLcLocationAppInfo@@@Z @ 29 NONAME ; class CLcService::CLcLaunchParam * CLcService::CLcLaunchParam::NewLC(class TDesC16 const &, enum CLcLocationAppInfo::TLcLaunchMode) - ?NewLC@CLcLocationAppInfo@@SAPAV1@ABV1@@Z @ 30 NONAME ; class CLcLocationAppInfo * CLcLocationAppInfo::NewLC(class CLcLocationAppInfo const &) - ?NewLC@CLcLocationAppInfo@@SAPAV1@XZ @ 31 NONAME ; class CLcLocationAppInfo * CLcLocationAppInfo::NewLC(void) - ?NewLC@CLcLocationAppInfoArray@@SAPAV1@XZ @ 32 NONAME ; class CLcLocationAppInfoArray * CLcLocationAppInfoArray::NewLC(void) - ?NewLC@CLcService@@SAPAV1@XZ @ 33 NONAME ; class CLcService * CLcService::NewLC(void) - ?Remove@CLcLocationAppInfoArray@@QAEPAVCLcLocationAppInfo@@H@Z @ 34 NONAME ; class CLcLocationAppInfo * CLcLocationAppInfoArray::Remove(int) - ?RemoveObserver@CLcService@@QAEHXZ @ 35 NONAME ; int CLcService::RemoveObserver(void) - ?SelectLocationApplicationL@CLcService@@QAE?AVTPtrC16@@ABV?$RArray@VTPtrC16@@@@H@Z @ 36 NONAME ; class TPtrC16 CLcService::SelectLocationApplicationL(class RArray const &, int) - ?SelectLocationApplicationL@CLcService@@QAE?AVTPtrC16@@ABVTLcLocationAppFilter@@@Z @ 37 NONAME ; class TPtrC16 CLcService::SelectLocationApplicationL(class TLcLocationAppFilter const &) - ?SelectLocationApplicationL@CLcService@@QAE?AVTPtrC16@@XZ @ 38 NONAME ; class TPtrC16 CLcService::SelectLocationApplicationL(void) - ?SetAppCharFilterConfiguration@TLcLocationAppFilter@@QAEXW4TLcFilterConfig@1@@Z @ 39 NONAME ; void TLcLocationAppFilter::SetAppCharFilterConfiguration(enum TLcLocationAppFilter::TLcFilterConfig) - ?SetApplicationCharacteristics@TLcLocationAppFilter@@QAEHK@Z @ 40 NONAME ; int TLcLocationAppFilter::SetApplicationCharacteristics(unsigned long) - ?SetObserverL@CLcService@@QAEXAAVMLcNotification@@@Z @ 41 NONAME ; void CLcService::SetObserverL(class MLcNotification &) - ?SetSysCharFilterConfiguration@TLcLocationAppFilter@@QAEXW4TLcFilterConfig@1@@Z @ 42 NONAME ; void TLcLocationAppFilter::SetSysCharFilterConfiguration(enum TLcLocationAppFilter::TLcFilterConfig) - ?SetSystemCharacteristic@TLcLocationAppFilter@@QAEHK@Z @ 43 NONAME ; int TLcLocationAppFilter::SetSystemCharacteristic(unsigned long) - ?SysCharFilterConfiguration@TLcLocationAppFilter@@QBE?AW4TLcFilterConfig@1@XZ @ 44 NONAME ; enum TLcLocationAppFilter::TLcFilterConfig TLcLocationAppFilter::SysCharFilterConfiguration(void) const - ?SystemCharacteristics@CLcLocationAppInfo@@QBEKXZ @ 45 NONAME ; unsigned long CLcLocationAppInfo::SystemCharacteristics(void) const - ?SystemCharacteristics@TLcLocationAppFilter@@QBEKXZ @ 46 NONAME ; unsigned long TLcLocationAppFilter::SystemCharacteristics(void) const - ?Reset@CLcLocationAppInfoArray@@QAEXXZ @ 47 NONAME ; void CLcLocationAppInfoArray::Reset(void) - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/eabi/lcserviceu.def --- a/locationcentre/lcservice/eabi/lcserviceu.def Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -EXPORTS - _ZN10CLcService12SetObserverLER15MLcNotification @ 1 NONAME - _ZN10CLcService14CLcLaunchParam4NewLERK7TDesC16N18CLcLocationAppInfo13TLcLaunchModeE @ 2 NONAME - _ZN10CLcService14CLcLaunchParam5NewLCERK7TDesC16N18CLcLocationAppInfo13TLcLaunchModeE @ 3 NONAME - _ZN10CLcService14RemoveObserverEv @ 4 NONAME - _ZN10CLcService21LaunchLocationCentreLEN18CLcLocationAppInfo13TLcLaunchModeEP18MLcAppExitObserver @ 5 NONAME - _ZN10CLcService21LaunchLocationCentreLERK13RPointerArrayINS_14CLcLaunchParamEEP18MLcAppExitObserver @ 6 NONAME - _ZN10CLcService21LaunchLocationCentreLERK20TLcLocationAppFilterN18CLcLocationAppInfo13TLcLaunchModeEP18MLcAppExitObserver @ 7 NONAME - _ZN10CLcService21LaunchLocationCentreLERK6RArrayI7TPtrC16EN18CLcLocationAppInfo13TLcLaunchModeEP18MLcAppExitObserver @ 8 NONAME - _ZN10CLcService23GetLocationApplicationsER14TRequestStatusRK20TLcLocationAppFilterRP23CLcLocationAppInfoArray @ 9 NONAME - _ZN10CLcService23GetLocationApplicationsER14TRequestStatusRP23CLcLocationAppInfoArray @ 10 NONAME - _ZN10CLcService24GetLocationApplicationsLERK20TLcLocationAppFilter @ 11 NONAME - _ZN10CLcService24GetLocationApplicationsLEv @ 12 NONAME - _ZN10CLcService26LaunchLocationApplicationLERK7TDesC16N18CLcLocationAppInfo13TLcLaunchModeEP18MLcAppExitObserver @ 13 NONAME - _ZN10CLcService26SelectLocationApplicationLERK20TLcLocationAppFilter @ 14 NONAME - _ZN10CLcService26SelectLocationApplicationLERK6RArrayI7TPtrC16Ei @ 15 NONAME - _ZN10CLcService26SelectLocationApplicationLEv @ 16 NONAME - _ZN10CLcService29CancelGetLocationApplicationsEv @ 17 NONAME - _ZN10CLcService4NewLEv @ 18 NONAME - _ZN10CLcService5NewLCEv @ 19 NONAME - _ZN18CLcLocationAppInfo4NewLERKS_ @ 20 NONAME - _ZN18CLcLocationAppInfo4NewLEv @ 21 NONAME - _ZN18CLcLocationAppInfo5NewLCERKS_ @ 22 NONAME - _ZN18CLcLocationAppInfo5NewLCEv @ 23 NONAME - _ZN18CLcLocationAppInfoD0Ev @ 24 NONAME - _ZN18CLcLocationAppInfoD1Ev @ 25 NONAME - _ZN18CLcLocationAppInfoD2Ev @ 26 NONAME - _ZN20TLcLocationAppFilter23SetSystemCharacteristicEm @ 27 NONAME - _ZN20TLcLocationAppFilter29SetAppCharFilterConfigurationENS_15TLcFilterConfigE @ 28 NONAME - _ZN20TLcLocationAppFilter29SetApplicationCharacteristicsEm @ 29 NONAME - _ZN20TLcLocationAppFilter29SetSysCharFilterConfigurationENS_15TLcFilterConfigE @ 30 NONAME - _ZN20TLcLocationAppFilterC1Ev @ 31 NONAME - _ZN20TLcLocationAppFilterC2Ev @ 32 NONAME - _ZN23CLcLocationAppInfoArray4NewLEv @ 33 NONAME - _ZN23CLcLocationAppInfoArray5NewLCEv @ 34 NONAME - _ZN23CLcLocationAppInfoArray6RemoveEi @ 35 NONAME - _ZN23CLcLocationAppInfoArray7AppendLEP18CLcLocationAppInfo @ 36 NONAME - _ZN23CLcLocationAppInfoArrayD0Ev @ 37 NONAME - _ZN23CLcLocationAppInfoArrayD1Ev @ 38 NONAME - _ZN23CLcLocationAppInfoArrayD2Ev @ 39 NONAME - _ZNK18CLcLocationAppInfo10LaunchModeEv @ 40 NONAME - _ZNK18CLcLocationAppInfo21SystemCharacteristicsEv @ 41 NONAME - _ZNK18CLcLocationAppInfo26ApplicationCharacteristicsEv @ 42 NONAME - _ZNK18CLcLocationAppInfo2IdEv @ 43 NONAME - _ZNK18CLcLocationAppInfo4NameEv @ 44 NONAME - _ZNK18CLcLocationAppInfo5IconLEv @ 45 NONAME - _ZNK20TLcLocationAppFilter21SystemCharacteristicsEv @ 46 NONAME - _ZNK20TLcLocationAppFilter26AppCharFilterConfigurationEv @ 47 NONAME - _ZNK20TLcLocationAppFilter26ApplicationCharacteristicsEv @ 48 NONAME - _ZNK20TLcLocationAppFilter26SysCharFilterConfigurationEv @ 49 NONAME - _ZNK23CLcLocationAppInfoArray5CountEv @ 50 NONAME - _ZNK23CLcLocationAppInfoArrayixEi @ 51 NONAME - _ZTI10CLcService @ 52 NONAME ; ## - _ZTI18CLcLocationAppInfo @ 53 NONAME ; ## - _ZTI23CLcLocationAppInfoArray @ 54 NONAME ; ## - _ZTIN10CLcService14CLcLaunchParamE @ 55 NONAME ; ## - _ZTV10CLcService @ 56 NONAME ; ## - _ZTV18CLcLocationAppInfo @ 57 NONAME ; ## - _ZTV23CLcLocationAppInfoArray @ 58 NONAME ; ## - _ZTVN10CLcService14CLcLaunchParamE @ 59 NONAME ; ## - _ZN23CLcLocationAppInfoArray5ResetEv @ 60 NONAME - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/group/bld.inf --- a/locationcentre/lcservice/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Build information file for project Location Centre API -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -// Location Centre API Headers - -PRJ_MMPFILES -// Location Centre API Project defintion file. -lcservice.mmp - -PRJ_TESTMMPFILES - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/group/lcservice.mmp --- a/locationcentre/lcservice/group/lcservice.mmp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Project definition file for project Location Centre API -* -*/ - - -// DEFINES -#define KLocationCentreApiUID3 0x10283138 - -// SYSTEM INCLUDE -#include -#include - -TARGET lcservice.dll -TARGETTYPE DLL -UID 0x0 KLocationCentreApiUID3 - -VERSION 1.0 - -CAPABILITY CAP_GENERAL_DLL -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE lcservice.cpp -SOURCE lclocationappinfo.cpp -SOURCE lclocationappfilter.cpp -SOURCE lcserviceimpl.cpp -SOURCE lcclientsession.cpp -SOURCE lcnotificationao.cpp -SOURCE lcsyncoperation.cpp -SOURCE lcasyncoperation.cpp -SOURCE lcpopuplistbox.cpp -SOURCE lcpopuplistboxmodel.cpp - -USERINCLUDE ../inc -USERINCLUDE ../../inc -USERINCLUDE ../../../inc -USERINCLUDE ../../../../inc - -APP_LAYER_SYSTEMINCLUDE - - -LIBRARY euser.lib -LIBRARY cone.lib -LIBRARY eikcore.lib -LIBRARY eikcoctl.lib -LIBRARY eikctl.lib -LIBRARY avkon.lib -LIBRARY egul.lib -LIBRARY fbscli.lib -LIBRARY estor.lib -LIBRARY commonengine.lib -LIBRARY lcutils.lib -LIBRARY efsrv.lib -LIBRARY aknskins.lib -LIBRARY aknskinsrv.lib -LIBRARY aknswallpaperutils.lib -LIBRARY flogger.lib - -DEFFILE lcservice.def - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/inc/lcasyncoperation.h --- a/locationcentre/lcservice/inc/lcasyncoperation.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,213 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Handles all the Asynchronous operations with the Location -* Centre Client Session -* -*/ - - -#ifndef C_LCASYNCOPERATION_H -#define C_LCASYNCOPERATION_H - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lclocationappfilter.h" - -// FORWARD DECLARATIONS -class RLcClientSession; -class CLcBasicAppInfo; -class CLcLocationAppInfoArray; -class TLcLocationAppFilter; -class RLcClientSession; -class CBufFlat; - -/** - * Observer class to notify the completion of the Asynchronous operation - * @lib lcservice.lib - * @since v5.0 - */ -class MLcAsynOperationObserver - { -public: - /** - * Notification for the Completion of the Asynchronous operation. - * - * @param[in] aError Error code for the completion of the Asynchronous - * Operation. - */ - virtual void OperationComplete( TInt aError ) =0; - }; - -/** - * Handles all the Asynchronous operations to the Location Centre Server. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( CLcAsyncOperation ) : public CActive - { -public: - /** - * Constructs a new instance of Location Centre interface. - * - * @param[in] aSession Reference to the Location Centre Client Session. - * @param[in] aObserver Observer to notify the Completion of the Asynchronous - * Operation. - * @return The new instance of Location Centre interface object. - * @leave System wide error code if the object creation fails. - */ - static CLcAsyncOperation* NewL( RLcClientSession& aSession, - MLcAsynOperationObserver& aObserver ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * interface. - */ - virtual ~CLcAsyncOperation(); - - /** - * Gets a filtered list of Location based Applications. - * - * @param[in] aLocationAppFilter Filtering parameters. - * @param[in] CLcLocationAppInfoArray* Array of Location based Applications and - * Contents/Services. - */ - void GetLocationApplicationsL( - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfoArray*& aAppInfoArray ); - /** - * Cancels an outstanding @ref GetLocationApplications request. - */ - void CancelGetLocationApplications(); - -private: - /** - * Default Constructor - */ - CLcAsyncOperation( RLcClientSession& aSession, - MLcAsynOperationObserver& aObserver ); - - void ConstructL(); - - /** - * Issues a self request to this Active Object. - */ - void GetLengthL(); - - /** - * Re-issues a request to the Location Centre Server. The request which will be re-issued - * will be the last request which was issued. - */ - void ReIssueRequestL(); - -private: // Inherited from Base classes - /** - * Inherited from CActive - */ - void RunL(); - - /** - * Inherited from CActive - */ - void DoCancel(); - - /** - * Inherited from CActive - */ - TInt RunError( TInt aError ); - -private: // Member Variables - /** - * Class declaration for holding the Location Application Information - * array. - */ - class TLcAppInfoContainer - { - public: - /** - * Overloaded constructor which takes the reference of the - * Application Information array. - */ - TLcAppInfoContainer( CLcLocationAppInfoArray*& aAppInfoArray ); - - public: - /** - * Reference to the Application Information array. - */ - CLcLocationAppInfoArray*& iAppInfoArray; - }; - - /** - * Enumeration for the State of Asynchronous operation - */ - enum TASyncOperation - { - ELcNoOperation, - ELcGetAppLength, - ELcGetApp - }; - - /** - * Reference to the Client session to the Location Centre Server. - */ - RLcClientSession& iClientSession; - - /** - * Observer to notify the completion of the Asynchronous request. - */ - MLcAsynOperationObserver& iObserver; - - /** - * Current State of operation - */ - TASyncOperation iOperation; - - /** - * Location Application filter for this Application. - */ - TLcLocationAppFilter iAppFilter; - - /** - * Buffer for exchanging information with the Location Centre Server. - * - * Owns - */ - CBufFlat* iBuffer; - - /** - * Pointer to the above buffer - */ - TPtr8 iBufferPtr; - - /** - * Place holder for the Location Centre Application Information - * Array. - */ - TLcAppInfoContainer* iAppInfoArrayContainer; - - /** - * IPC arguments - */ - TIpcArgs iIpcArgs; - - /** - * Package buffer containing the Application Filter options. - */ - TPckg< TLcLocationAppFilter >* iFilterBuffer; - }; - -#endif // C_LCASYNCOPERATION_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/inc/lcclientsession.h --- a/locationcentre/lcservice/inc/lcclientsession.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Client side session to the Location Centre server. -* -*/ - - -#ifndef R_LCCLIENTSESSION_H -#define R_LCCLIENTSESSION_H - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcserverinterface.h" - -// FORWARD DECLARATIONS - -/** - * Client side session handle to the Location Centre server session. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( RLcClientSession ) : public RSessionBase - { -public: - /** - * C++ Default Constructor - * - * @lib lcservice.lib - * @since S60 v5.0 - */ - RLcClientSession(); - - /** - * C++ Destructor. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ - virtual ~RLcClientSession(); - - /** - * Creates the Client side session handle to the Location Centre - * server. - * - * This function starts the Location Centre server (if its not already - * running) and then creates a session to it. - * - * @since S60 v5.0 - * @leave System wide error code if the operation fails. - */ - TInt CreateSession(); - - /** - * Closes the Client side session handle to the Location Centre - * server. - * - * @since S60 v5.0 - */ - void Close(); - - /** - * Send an asynchronous request to the Location Centre server. - * - * @since S60 v5.0 - * @param aMsgType Operation that is requested from the Location - * Centre server. - * @param aArgs Message argument. - * @param aStatus The request status object on which the completion - * of the request is communicated. - */ - void SendReceive( TLcServerMsgType aMsgType, - const TIpcArgs& aArgs, - TRequestStatus& aStatus ) const; - - /** - * Send an synchronous request to the Location Centre server. - * - * @since S60 v5.0 - * @param aMsgType Operation that is requested from the Location - * Centre server. - * @param aArgs Message argument. - * @return KErrNone, If the request is completed successfully. - * System wide error codes in the request fails. - */ - TInt SendReceive( TLcServerMsgType aMsgType, - const TIpcArgs& aArgs ) const; - - /** - * Send an asynchronous request to the Location Centre server. - * - * @since S60 v5.0 - * @param aMsgType Operation that is requested from the Location - * Centre server. - * @param aStatus The request status object on which the completion - * of the request is communicated. - */ - void SendReceive( TLcServerMsgType aMsgType, - TRequestStatus& aStatus ) const; - - /** - * Send an synchronous request to the Location Centre server. - * - * @since S60 v5.0 - * @param aMsgType Operation that is requested from the Location - * Centre server. - * @return KErrNone, If the request is completed successfully. - * System wide error codes in the request fails. - */ - TInt SendReceive( TLcServerMsgType aMsgType ) const; - -private: - /** - * Starts a new server instance - * - * @return KErrNone, If the server is successfully launched - * System wide error codes incase the Start fails - */ - TInt StartServer(); - }; - -#endif // R_LCCLIENTSESSION_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/inc/lcnotificationao.h --- a/locationcentre/lcservice/inc/lcnotificationao.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Notification Active Object. -* -*/ - - -#ifndef C_LCNOTIFICATIONAO_H -#define C_LCNOTIFICATIONAO_H - -// SYSTEM INCLUDES -#include - -// USER INCLUDES - -// FORWARD DECLARATIONS -class MLcNotification; -class RLcClientSession; - -/** - * Location Centre Notification Active Object. - * - * This class is used to handle Asynchronous Notification requests. - * - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( CLcNotificationAO ): public CActive - { -public: - /** - * Constructs a new instance of Location Centre Notification - * Active Object. - * - * @param[in] aObserver Notification Observer. - * @return The new instance of Location Centre Notification - * Active Object. - * @leave System wide error code if the object creation fails. - */ - static CLcNotificationAO* NewL( - MLcNotification& aObserver, - RLcClientSession& aClientSession ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * Notification Active Object. - */ - virtual ~CLcNotificationAO(); - - /** - * Issue a notification request to the Location Centre server. This - * is a recurring request which keeps providing notifications - * through the MLcNotification observer until a CancelRequest() - * is called. - */ - void IssueRequest(); - - /** - * Cancels the outstanding notification request issued through the - * IssueRequest() call. - */ - void CancelRequest(); - -protected: // Inherited from Base classes - - /** - * Inherited from CActive - */ - void RunL(); - - /** - * Inherited from CActive - */ - void DoCancel(); - -private: - /** - * C++ Default constructor - */ - CLcNotificationAO( MLcNotification& aObserver, - RLcClientSession& aClientSession ); - -private: - /** - * Observer to communicate the notification requests. - */ - MLcNotification& iObserver; - - RLcClientSession& iClientSession; - }; - -#endif // C_LCNOTIFICATIONAO_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/inc/lcpopuplistbox.h --- a/locationcentre/lcservice/inc/lcpopuplistbox.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 box used to display the Location Centre pop-up. -* -*/ - - -#ifndef C_LCPOPUPLISTBOX_H -#define C_LCPOPUPLISTBOX_H - -// SYSTEM INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class CLcPopupListBoxModel; -class CLcLocationAppInfoArray; - -/** - * List box for Location Centre pop-up dialog. - * - * This class provides the extension of Single Large style list box which is - * used to display Location Centre pop-up. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( CLcPopupListBox ) : public CAknSingleGraphicPopupMenuStyleListBox - { -public: - /** - * Overloaded constructor - */ - CLcPopupListBox( CLcLocationAppInfoArray* aAppArray ); - - /** - * Second phase of the two phase constructor - */ - void ConstructL( CCoeControl* aParent ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * listbox object. - */ - virtual ~CLcPopupListBox(); - - /** - * Updates the Listbox model with a new Array of Location based Applications - * and Contents/Services. - * - * @param[in] aAppArray Array of Location based Applicaions and Contents/Services - * The ownership of the array is transferred. - */ - void UpdateListBoxL( CLcLocationAppInfoArray* aAppArray ); - - /** - * Updates the listbox icons. - */ - void UpdateIconsL(); - - /** - * Returns the Application's Identifer corresponding to the selected - * item - */ - TPtrC AppInfoId() const; - -private: // Inherited from Base classes. - /** - * Imherited from CCoeControl. - */ - void HandleResourceChange( TInt aType ); - -private: // data - /** - * Application Information array - * - * Owns. - */ - CLcLocationAppInfoArray* iAppArray; - - /** - * Pop-up List box model. - */ - CLcPopupListBoxModel* iListBoxModel; - }; - -#endif // C_LCPOPUPLISTBOX_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/inc/lcpopuplistboxmodel.h --- a/locationcentre/lcservice/inc/lcpopuplistboxmodel.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 box model for the list-box used to display the Location -* Centre pop-up. -* -*/ - - -#ifndef C_LCPOPUPLISTBOXMODEL_H -#define C_LCPOPUPLISTBOXMODEL_H - -// SYSTEM INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class CLcLocationAppInfoArray; - -/** - * List box model for Location Centre pop-up dialog. - * - * This class provides the implementation of the list-box model for Location - * Centre lists. - * @lib lcservice.lib - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( CLcPopupListBoxModel ) : public MDesCArray - { -public: - /** - * Constructs a new instance of Location Centre pop-up list box model. - * - * @param[in] aAppArray Array of Location based Applicaions and Contents/Services - * The ownership of the array is transferred. - * @return The new instance of Location Centre model object. - * @leave System wide error code if the object creation fails. - */ - static CLcPopupListBoxModel* NewL( CLcLocationAppInfoArray& aAppArray ); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * model object. - */ - virtual ~CLcPopupListBoxModel(); - - /** - * Updates the Listbox model with a new Array of Location based Applications - * and Contents/Services. - * - * @param[in] aAppArray Array of Location based Applicaions and Contents/Services - * The ownership of the array is transferred. - */ - void UpdateModel( CLcLocationAppInfoArray& aAppArray ); - -public: // Inherited from Base classes - /** - * Inherited from MDesCArray - */ - virtual TInt MdcaCount() const; - - /** - * Inherited from MDesCArray - */ - virtual TPtrC16 MdcaPoint( TInt aIndex ) const; - -private: - /** - * Overloaded constructor - */ - CLcPopupListBoxModel( CLcLocationAppInfoArray& aAppArray ); - - /** - * Second phase of the two phase constructor - */ - void ConstructL(); - -private: // data - - /** - * Buffer for packing the MdcaPoint - * - * Owns - */ - HBufC16* iBuffer; - - /** - * Application Information Array - */ - CLcLocationAppInfoArray* iAppArray; - }; - -#endif // C_LCPOPUPLISTBOXMODEL_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/inc/lcserviceimpl.h --- a/locationcentre/lcservice/inc/lcserviceimpl.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,324 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre API implementation. -* -*/ - - -#ifndef C_LCSERVICEIMPL_H -#define C_LCSERVICEIMPL_H - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcservice.h" -#include "lclocationappinfo.h" -#include "lcclientsession.h" -#include "lcnotification.h" -#include "lcasyncoperation.h" - -// FORWARD DECLARATIONS -class MLcAppExitObserver; -class TLcLocationAppFilter; -class CLcAppLauncher; -class CBufFlat; -class CLcAppInfo; -class CLcNotificationAO; -class CLcBasicAppInfo; -class CLcLocationAppInfoArray; -class CAknPopupList; -class CLcPopupListBox; - -/** - * Implementation of Location Centre Interface class CLcService. - * - * This class provides the implementation of Location Centre API. - * This is needed to ensure that the implementation details of Location - * Centre API is completely abstracted from CLcService. - */ -NONSHARABLE_CLASS( CLcServiceImpl ) : public CBase, - public MLcNotification, - public MLcAsynOperationObserver - { -public: // Exported Functions - /** - * Constructs a new instance of Location Centre interface. - * - * @return The new instance of Location Centre interface object. - * @leave System wide error code if the object creation fails. - */ - static CLcServiceImpl* NewL(); - - /** - * Constructs a new instance of Location Centre interface. - * Leaves the created instance on the cleanup stack. - * - * @return The new instance of Location Centre interface object. - * @leave System wide error code if the object creation fails. - */ - static CLcServiceImpl* NewLC(); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * interface. - */ - virtual ~CLcServiceImpl(); - - /** - * Launches Location Centre as a pop-up dialog with a list of - * Location based Application. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - void LaunchLocationCentreL( - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode = CLcLocationAppInfo::EDefaultMode, - MLcAppExitObserver* aChainedAppExitObserver = NULL ); - - /** - * Launches Location Centre with the specified array of Location - * based Applications in a pop-up dialog. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - void LaunchLocationCentreL( - const RPointerArray& aIncludeAppArray, - MLcAppExitObserver* aChainedAppExitObserver = NULL ); - - /** - * Launches Location Centre without the specified array of - * Location based Applications in a pop-up dialog. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - void LaunchLocationCentreL( - const RArray& aExcludeAppArray, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode = CLcLocationAppInfo::EDefaultMode, - MLcAppExitObserver* aChainedAppExitObserver = NULL ); - - /** - * Launches Location Centre as a pop-up dialog with a filtered list of - * Location based Applications and the user can select a Location - * based Application from the pop-up list displayed. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - TPtrC SelectLocationApplicationL( - const TLcLocationAppFilter& aLocationAppFilter ); - - /** - * Launches Location Centre with based Applications in a pop-up - * dialog and the user can select a Location based Application - * from the pop-up list displayed. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - TPtrC SelectLocationApplicationL( const RArray& aAppArray, - TBool aIncludeFlag ); - - /** - * Gets a filtered list of Location based Applications. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - CLcLocationAppInfoArray* GetLocationApplicationsL( - const TLcLocationAppFilter& aLocationAppFilter ); - - /** - * Gets a filted list of Location based Applications. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - void GetLocationApplications( - TRequestStatus& aStatus, - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfoArray*& aAppInfoArray ); - - /** - * Cancels an outstanding @ref GetLocationApplications request. - */ - void CancelGetLocationApplications(); - - /** - * Launches a Location based Application in the desired mode. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - void LaunchLocationApplicationL( - const TDesC& aAppIdentifier, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode = CLcLocationAppInfo::EDefaultMode, - MLcAppExitObserver* aChainedAppExitObserver = NULL ); - - /** - * Sets an observer for notifying changes to the Location Centre server. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - void SetObserverL( MLcNotification& aObserver ); - - /** - * Removes the observer that has already been set using the @ref SetObserverL method. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - TInt RemoveObserver(); - -public: // Inherited from the base classes - /** - * Inherited from MLcNotification - */ - void LcStatusChangedL( TInt aErrorCode ); - - /** - * Inherited from MLcAsynOperationObserver - */ - void OperationComplete( TInt aError ); - -private: - /** - * Default C++ Constructor. - */ - CLcServiceImpl(); - - /** - * Second phase of the two phase constructor. - */ - void ConstructL(); - - /** - * Leaving form of GetLocationApplications. This is needed because the API - * does not leave whereas we need certain leaving operations to be performed - * in the GetLocationApplications asynchronous version. - */ - void GetLocationApplicationsL( - TRequestStatus& aStatus, - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfoArray*& aAppInfoArray ); - - /** - * Launches Location Centre with the supplied Applications in a pop-up - * dialog and the user can select a Location based Application from the pop-up - * list displayed. - * - * @param[in] aAppInfoArray Application Information array. The ownership of this - * array is transferred to the pop-up. - * @return TPtrC, Identifier corresponding to the element that has been selected. - */ - TPtrC SelectLocationApplicationL( CLcLocationAppInfoArray* aAppInfoArray ); - -private: - /** - * Enumeration for the outstanding Pop-up operation. - */ - enum TLcPopUpOutStanding - { - /** - * Filtered based Applications - */ - ELcPopupWithFiltering, - ELcPopupWithSpecifiedApps, - ELcPopupWithoutSpecifedApps - }; - -private: // Data - /** - * Location Centre server client side session handle - */ - RLcClientSession iSession; - - /** - * Location based Application's launcher. - * This object can be used to launch all Location based Applications, - * contents and services in the standalone mode or in the chained mode. - * Owns - */ - CLcAppLauncher* iAppLauncher; - - /** - * Observer for notifications - */ - MLcNotification* iObserver; - - /** - * Active Object for notification requests - * - * Owns - */ - CLcNotificationAO* iNotificationAO; - - /** - * Request Status on which the Asynchronous request would be completed. - */ - TRequestStatus* iStatus; - - /** - * Location Centre Asynchronous operation handler. - * - * Owns - */ - CLcAsyncOperation* iAsyncOperation; - - /** - * Location Centre pop-up. - * - * Owns. - */ - CAknPopupList* iPopUp; - - /** - * Location Centre pop-up list box. - * - * Owns. - */ - CLcPopupListBox* iPopUpListBox; - - /** - * Idenfier of the Selected Application. - */ - HBufC* iSelectedAppId; - - /** - * Pop-up Operation outstanding - */ - TLcPopUpOutStanding iPopupOutStanding; - - /** - * Filter conditions. - * Owns. - */ - TLcLocationAppFilter* iFilter; - - /** - * Array of applications which need to be included/excluded in the filtering - * operation. - * - * Owns. - */ - RArray iAppArray; - }; - - -#endif // C_LCSERVICEIMPL_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/inc/lcsyncoperation.h --- a/locationcentre/lcservice/inc/lcsyncoperation.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Handles all the Synchronous operations with the Location -* Centre Client Session -* -*/ - - -#ifndef LCSYNCOPERATION_H -#define LCSYNCOPERATION_H - -// SYSTEM INCLUDES -#include - -// USER INCLUDES - -// FORWARD DECLARATIONS -class RLcClientSession; -class CLcBasicAppInfo; -class CLcLocationAppInfoArray; -class TLcLocationAppFilter; - -/** - * Handles all the Synchronous operations to the Location Centre Server. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( LcSyncOperation ) - { -public: - /** - * Gets a filtered list of Location based Applications. - * - * @param[in] aSession Reference to the Location Centre Client Session. - * @param[in] aLocationAppFilter Filtering parameters. - * @return CLcLocationAppInfoArray* Array of Location based Applications and - * Contents/Services. - */ - static CLcLocationAppInfoArray* GetLocationApplicationsL( - RLcClientSession& aSession, - const TLcLocationAppFilter& aLocationAppFilter ); - - /** - * Gets a filtered list of Location based Applications. - * - * The Client application can configure the list of Location based - * Applications returned. This can be achieved by passing the list of Location - * based Applications which the Client wants to be included/excluded in the - * list. - * - * The ownership of the array of identifiers is not transferred. - * - * @param[in] aSession Reference to the Location Centre Client Session. - * @param[in] aAppArray Array of Location based Applications and Contents - * or Services which need to be included or excluded. - * @param[in] aIncludeFlag Boolean flag which defines whether the set of - * Location based Applications should be included or - * excluded. - * @return CLcLocationAppInfoArray object containing a list - * of applications registered with Location Centre. - */ - static CLcLocationAppInfoArray* GetLocationApplicationsL( - RLcClientSession& aSession, - const RArray& aAppArray, - TBool aIncludeFlag ); - - /** - * Gets the Location Application Information corresponding to the Location - * based Application or Content/Service based on the Identifer name. - * - * @param[in] aSession Reference to the Location Centre Client Session. - * @param[in] aIdentifier Name of the Location based Identifier whose - * information is requested. - */ - static CLcBasicAppInfo* GetLocationAppInfoL( - RLcClientSession& aSession, - const TDesC& aIdentifier ); - - /** - * Parses the Location Application information present in the Read stream. - * - * Other documentation present in the corresponding function for - * CLcService class. - */ - static CLcLocationAppInfoArray* ParseLocAppBufferL( RReadStream& aReadStream ); - }; - -#endif // LCSYNCOPERATION_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/src/lcasyncoperation.cpp --- a/locationcentre/lcservice/src/lcasyncoperation.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,346 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Handles all the Asynchronous operations with the Location -* Centre Client Session -* -*/ - - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcasyncoperation.h" -#include "lcclientsession.h" -#include "lcipcparams.h" -#include "lcsyncoperation.h" - -// CONSTANT DEFINTIONS -const TInt KLcLengthofInteger = 4; - -// ----- Member functions for TLcAppInfoContainer ---------------------------- - -CLcAsyncOperation::TLcAppInfoContainer::TLcAppInfoContainer( - CLcLocationAppInfoArray*& aAppInfoArray ) - :iAppInfoArray( aAppInfoArray ) - { - } - -// ----- Member funtions for LcSyncOperation --------------------------------- - -// --------------------------------------------------------------------------- -// CLcAsyncOperation::CLcAsyncOperation -// --------------------------------------------------------------------------- -// -CLcAsyncOperation::CLcAsyncOperation( RLcClientSession& aSession, - MLcAsynOperationObserver& aObserver ) - :CActive( EPriorityStandard ), - iClientSession( aSession ), - iObserver( aObserver ), - iBufferPtr( NULL, 0 ) - { - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// CLcAsyncOperation::~CLcAsyncOperation -// --------------------------------------------------------------------------- -// -CLcAsyncOperation::~CLcAsyncOperation() - { - // Cancel any outstanding request. - Cancel(); - - // Delete the filter - delete iFilterBuffer; - - // Delete the Buffer pointer - delete iBuffer; - - // Delete the App Info array container - delete iAppInfoArrayContainer; - } - -// --------------------------------------------------------------------------- -// CLcAsyncOperation* CLcAsyncOperation::NewL -// --------------------------------------------------------------------------- -// -CLcAsyncOperation* CLcAsyncOperation::NewL( RLcClientSession& aSession, - MLcAsynOperationObserver& aObserver ) - { - CLcAsyncOperation* self = new ( ELeave ) CLcAsyncOperation( aSession, aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcAsyncOperation::ConstructL -// --------------------------------------------------------------------------- -// -void CLcAsyncOperation::ConstructL() - { - // Construct the Buffer structure used for exchanging information with the - // Location Centre Server. - iBuffer = CBufFlat::NewL( KLcLengthofInteger ); - } - -// --------------------------------------------------------------------------- -// void CLcAsyncOperation::GetLocationApplicationsL -// --------------------------------------------------------------------------- -// -void CLcAsyncOperation::GetLocationApplicationsL( - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfoArray*& aAppInfoArray ) - { - // Check if there was any request outstanding. Incase, there was any - // request then the request will leave with KErrInUse. - if ( IsActive()) - { - User::Leave( KErrInUse ); - } - // Copy the Filter parameters to the Filter member variable. - iAppFilter = aLocationAppFilter; - - iFilterBuffer = new ( ELeave ) TPckg< TLcLocationAppFilter >( iAppFilter ); - - // Hold the Array pointer - iAppInfoArrayContainer = new ( ELeave )TLcAppInfoContainer( aAppInfoArray ); - - // Set the Operation to the Initial state and issue a new request. - GetLengthL(); - } - -// --------------------------------------------------------------------------- -// void CLcAsyncOperation::CancelGetLocationApplications -// --------------------------------------------------------------------------- -// -void CLcAsyncOperation::CancelGetLocationApplications() - { - Cancel(); - } - -// --------------------------------------------------------------------------- -// void CLcAsyncOperation::ReIssueRequestL -// --------------------------------------------------------------------------- -// -void CLcAsyncOperation::ReIssueRequestL() - { - // Check if there are any operation outstanding. This request will be valid - // only when there are no requests outstanding. - if ( ELcNoOperation != iOperation ) - { - // Rest the State to the initial state and Issue a new request - GetLengthL(); - } - } - -// --------------------------------------------------------------------------- -// void CLcAsyncOperation::GetLengthL -// --------------------------------------------------------------------------- -// -void CLcAsyncOperation::GetLengthL() - { - if ( !IsActive()) - { - - // Set the size of this buffer to 4. This is required because we dont - // actually fill this buffer but expect the server to fill it. In that case - // if we dont set the expected length, the server would fail with - // KrrBadDescriptor. - iBuffer->ResizeL( KLcLengthofInteger ); - - // Fill the IPC argument structure with the Length buffer, the server - // will write the data onto this buffer. - - // By the IPC exchange parameter defintion, this must be the first - // argument to the IPC message. - iIpcArgs.Set( 0, iFilterBuffer ); - - // Set the buffer pointer to the start of the Length buffer - iBufferPtr.Set( const_cast< TUint8 *>( iBuffer->Ptr( 0 ).Ptr()), - KLcLengthofInteger, - KLcLengthofInteger ); - - // This will be the second argument passed to this IPC message. - iIpcArgs.Set( 1, &iBufferPtr); - - // Send an asynchronous message to the server to obtain the length. On return the - // server is expected to pack the length of the Application information - // arrays in the LengthBuffer pointer. - iClientSession.SendReceive( ELcFilteredAppsBufferLength, - iIpcArgs, - iStatus ); - iOperation = ELcGetAppLength; - SetActive(); - } - } - -// --------------------------------------------------------------------------- -// void CLcAsyncOperation::RunL -// --------------------------------------------------------------------------- -// -void CLcAsyncOperation::RunL() - { - if( !iStatus.Int()) - { - switch ( iOperation ) - { - case ELcGetAppLength: - { - // The Server has passed the Length of the buffer that is needed to pack - // the Location Applications. - - // If the server has not set the buffer then leave with KErrNotFound - if ( !iBufferPtr.Length()) - { - User::Leave( KErrNotFound ); - } - - // Obtain the length from the Length buffer; - RBufReadStream readStream( *iBuffer, 0 ); - CleanupClosePushL( readStream ); - TUint length = readStream.ReadInt32L(); - CleanupStack::PopAndDestroy(); // readStream - - // If the server has returned a length of 0, then there are no applications - // registered with Location Centre. - if ( !length ) - { - User::Leave( KErrNotFound ); - } - - // Set the actual size to 'length' obtained in the previous IPC. This is required - // because we dont actually fill this buffer but expect the server to fill it. - // In that case if we dont set the expected length, the server would fail with - // KrrBadDescriptor. - iBuffer->ResizeL( length ); - - // Fill the IPC argument structure with the Application info buffer, the server - // will write the data onto this buffer. - TIpcArgs args; - - // Pass the filter parameters to the Location Centre Server - // By the IPC exchange parameter defintion, this must be the first - // argument to the IPC message. - args.Set( 0, iFilterBuffer ); - - // Set the buffer pointer to the start of the Length buffer - iBufferPtr.Set( const_cast< TUint8 *>( iBuffer->Ptr( 0 ).Ptr()), - length, - length ); - - // This will be the second argument passed to this IPC message. - args.Set( 1, &iBufferPtr); - - // Send an Asynchrnous message to the server to obtain the array of Applications. - iClientSession.SendReceive( ELcFilteredApps, - args, - iStatus ); - - iOperation = ELcGetApp; - SetActive(); - - break; - } - case ELcGetApp: - { - // The server has successfully returned the Location based Applications - - // If the server has not set the buffer then leave with KErrNotFound - if ( !iBufferPtr.Length()) - { - User::Leave( KErrNotFound ); - } - - // Parse the Application information array to obtain the array - RBufReadStream appReadStream( *iBuffer, 0 ); - CleanupClosePushL( appReadStream ); - - iAppInfoArrayContainer->iAppInfoArray = - LcSyncOperation::ParseLocAppBufferL( appReadStream ); - - // The App Info array container has been used. We can now free the - // memory for the same. - delete iAppInfoArrayContainer; - iAppInfoArrayContainer = NULL; - - CleanupStack::PopAndDestroy(); // appReadStream - - // The request has been successfully processed. - iObserver.OperationComplete( KErrNone ); - - break; - } - default: - { - // This condition should never occur - break; - } - } - } - else - { - // If the Retrieval function completes with KErrOverflow then there has been - // an update to the registry since the time we obtained the length. We need - // to re-issue the request to obtain the Length from the application - if( iOperation == ELcGetApp && KErrOverflow == iStatus.Int()) - { - ReIssueRequestL(); - } - else - { - // All other condtions terminate - - // There is nothing to be done to the App Info buffer. Delete it - delete iAppInfoArrayContainer; - iAppInfoArrayContainer = NULL; - - // There is an error from the Server side. Hence, complete the request - // to the Client Side. - iObserver.OperationComplete( iStatus.Int()); - } - } - } - -// --------------------------------------------------------------------------- -// void CLcAsyncOperation::DoCancel -// --------------------------------------------------------------------------- -// -void CLcAsyncOperation::DoCancel() - { - iClientSession.SendReceive( ELcCancelFilteredApps ); - - // Clear the App Info array container - delete iAppInfoArrayContainer; - iAppInfoArrayContainer = NULL; - } - -// --------------------------------------------------------------------------- -// TInt CLcAsyncOperation::RunError -// --------------------------------------------------------------------------- -// -TInt CLcAsyncOperation::RunError( TInt aError ) - { - // Clear the App Info array container - delete iAppInfoArrayContainer; - iAppInfoArrayContainer = NULL; - - // The RunL has left with an Error, Notify the Client of the same - iObserver.OperationComplete( aError ); - return KErrNone; - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/src/lcclientsession.cpp --- a/locationcentre/lcservice/src/lcclientsession.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 session to the Location Centre server. -* -*/ - - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lcclientsession.h" - -// CONSTANT DEFINTIONS -const TInt KNumofConnectAttempts = 200; - -// ----- Member funtions for RLcClientSession --------------------------------- - -// --------------------------------------------------------------------------- -// RLcClientSession::RLcClientSession -// --------------------------------------------------------------------------- -// -RLcClientSession::RLcClientSession() - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// RLcClientSession::~RLcClientSession -// --------------------------------------------------------------------------- -// -RLcClientSession::~RLcClientSession() - { - // C++ Destructor. Free all resources associated with this class. - } - -// --------------------------------------------------------------------------- -// RLcClientSession::~RLcClientSession -// --------------------------------------------------------------------------- -// -TInt RLcClientSession::CreateSession() - { - TInt error = KErrNone; - - // Attempt KNumofConnectAttempts to make a connection to the server - for ( TInt i = 0; i <= KNumofConnectAttempts; i++ ) - { - error = RSessionBase::CreateSession( - KLocationCentreServerName, - TVersion( KLcServerMajorVersionNumber, - KLcServerMinorVersionNumber, - KLcServerBuildVersionNumber ), - 8); - if ( error != KErrNotFound && error != KErrServerTerminated ) - { - // If the Create session returns an error code other than - // KErrNotFound or KErrServerTerminated, then the request - // is terminated immediately with the error code. - // If it is any of these error codes then the server is - // not running. In this case, try to start the server - return error; - } - - error = StartServer(); - if ( error != KErrAlreadyExists && error != KErrNone) - { - // Server returned error code other than KErrAlreadyExists - // or KErrNone. The request is terminated with this - // error code. - // If the error code is one of these then the server is - // up and running. Now try to establish the connection. - return error; - } - } - return error; - } - -// --------------------------------------------------------------------------- -// RLcClientSession::~RLcClientSession -// --------------------------------------------------------------------------- -// -void RLcClientSession::Close() - { - RHandleBase::Close(); - } - -// --------------------------------------------------------------------------- -// RLcClientSession::SendReceive -// --------------------------------------------------------------------------- -// -void RLcClientSession::SendReceive( TLcServerMsgType aMsgType, - const TIpcArgs& aArgs, - TRequestStatus& aStatus ) const - { - return RSessionBase::SendReceive( aMsgType, - aArgs, - aStatus ); - } - -// --------------------------------------------------------------------------- -// RLcClientSession::SendReceive -// --------------------------------------------------------------------------- -// -TInt RLcClientSession::SendReceive( TLcServerMsgType aMsgType, - const TIpcArgs& aArgs ) const - { - return RSessionBase::SendReceive( aMsgType, - aArgs ); - } - -// --------------------------------------------------------------------------- -// RLcClientSession::SendReceive -// --------------------------------------------------------------------------- -// -void RLcClientSession::SendReceive( TLcServerMsgType aMsgType, - TRequestStatus& aStatus ) const - { - return RSessionBase::SendReceive( aMsgType, aStatus ); - } - -// --------------------------------------------------------------------------- -// RLcClientSession::SendReceive -// --------------------------------------------------------------------------- -// -TInt RLcClientSession::SendReceive( TLcServerMsgType aMsgType ) const - { - return RSessionBase::SendReceive( aMsgType ); - } - -// --------------------------------------------------------------------------- -// RLcClientSession::StartServer -// --------------------------------------------------------------------------- -// -TInt RLcClientSession::StartServer() - { - // Create a new server process. - // If the server is already running then the function fails with - // KErrAlreadyExists - RProcess server; - TInt error = server.Create( KLocationCentreServerExe, - KNullDesC ); - if ( !error ) - { - TRequestStatus died; - server.Rendezvous( died ); - if ( died != KRequestPending ) - { - // Logon failed - Server is not yet running, so cannot have terminated - User::WaitForRequest( died ); // Eat signal - server.Kill( 0 ); // Abort startup - } - else - { - server.Resume(); - User::WaitForRequest( died ); // Wait for start or death - } - - // We can't use the 'exit reason' if the server panicked as this - // is the panic 'reason' and may be '0' which cannot be distinguished - // from KErrNone - error = ( server.ExitType() == EExitPanic ) ? KErrGeneral : died.Int(); - server.Close(); - } - return error; - } -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/src/lclocationappfilter.cpp --- a/locationcentre/lcservice/src/lclocationappfilter.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Application Filters -* -*/ - - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lclocationappfilter.h" - -// CONSTANT DEFINITIONS - -// This value is obtained by ORing all the System characteristics -// available -const TUint32 KMaxSystemCharValue = 1; - -// This value is obtained by ORing all the Application characteristics -// available -const TUint32 KMaxAppCharValue = 1023; - - -// ----- Member funtions for TLcLocationAppFilter ------------------ - -// --------------------------------------------------------------------------- -// TUint32 TLcLocationAppFilter::TLcLocationAppFilter -// --------------------------------------------------------------------------- -// -EXPORT_C TLcLocationAppFilter::TLcLocationAppFilter() - :iSystemChar(0), - iSysFilterConfig( TLcLocationAppFilter::EFilterStrict ), - iApplicationChar(0), - iAppFilterConfig( TLcLocationAppFilter::EFilterStrict ) - { - } - -// --------------------------------------------------------------------------- -// TUint32 TLcLocationAppFilter::GetSystemCharacteristics -// --------------------------------------------------------------------------- -// -EXPORT_C TUint32 TLcLocationAppFilter::SystemCharacteristics() const - { - return iSystemChar; - } - -// --------------------------------------------------------------------------- -// TInt TLcLocationAppFilter::AddSystemCharacteristic -// --------------------------------------------------------------------------- -// -EXPORT_C TInt TLcLocationAppFilter::SetSystemCharacteristic( - TUint32 aSystemChar ) - { - // Check if the System characteristics value is a valid bit-mask. - if( aSystemChar > KMaxSystemCharValue ) - { - return KErrArgument; - } - - iSystemChar = aSystemChar; - return KErrNone; - } - -// --------------------------------------------------------------------------- -// TLcLocationAppFilter::TLocationAppFilterConfig TLcLocationAppFilter:: -// SysCharFilterConfiguration -// --------------------------------------------------------------------------- -// -EXPORT_C TLcLocationAppFilter::TLcFilterConfig - TLcLocationAppFilter::SysCharFilterConfiguration() const - { - return iSysFilterConfig; - } - -// --------------------------------------------------------------------------- -// void TLcLocationAppFilter::SetSysCharacFilterConfig -// --------------------------------------------------------------------------- -// -EXPORT_C void TLcLocationAppFilter::SetSysCharFilterConfiguration( - TLcLocationAppFilter::TLcFilterConfig aFilterConfig ) - { - iSysFilterConfig = aFilterConfig; - } - -// --------------------------------------------------------------------------- -// TUint32 TLcLocationAppFilter::GetApplicationCharacteristics -// --------------------------------------------------------------------------- -// -EXPORT_C TUint32 TLcLocationAppFilter::ApplicationCharacteristics() const - { - return iApplicationChar; - } - -// --------------------------------------------------------------------------- -// TInt TLcLocationAppFilter::SetApplicationCharacteristics -// --------------------------------------------------------------------------- -// -EXPORT_C TInt TLcLocationAppFilter::SetApplicationCharacteristics( - TUint32 aAppChar ) - { - // Check if the Application characteristics value is a valid bit-mask. - if( aAppChar > KMaxAppCharValue ) - { - return KErrArgument; - } - - iApplicationChar = aAppChar; - return KErrNone; - } - -// --------------------------------------------------------------------------- -// TLcLocationAppFilter::TLcFilterConfig AppCharFilterConfiguration -// --------------------------------------------------------------------------- -// -EXPORT_C TLcLocationAppFilter::TLcFilterConfig - TLcLocationAppFilter::AppCharFilterConfiguration() const - { - return iAppFilterConfig; - } - -// --------------------------------------------------------------------------- -// void TLcLocationAppFilter::SetAppCharFilterConfiguration -// --------------------------------------------------------------------------- -// -EXPORT_C void TLcLocationAppFilter::SetAppCharFilterConfiguration( - TLcLocationAppFilter::TLcFilterConfig aFilterConfig ) - { - iAppFilterConfig = aFilterConfig; - } - -// End of File - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/src/lclocationappinfo.cpp --- a/locationcentre/lcservice/src/lclocationappinfo.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,514 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Application Information structures. -* -*/ - - -// SYSTEM INCLUDES -#include // Gul Icon -#include // Bitmap - -// USER INCLUDES -#include "lclocationappinfo.h" -#include "lcnativeapps.hrh" -#include "lcerrors.h" -#include "lciconloader.h" -#include "lcipcparams.h" - -// CONSTANT DEFINTIONS -// Maximum value that the UID field can take in S60 -const TUint32 KUidMaxValue = 0xFFFFFFFF; - -// ----- Member funtions for CLcLocationAppInfo ------------------ - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo::CLcLocationAppInfo -// --------------------------------------------------------------------------- -// -CLcLocationAppInfo::CLcLocationAppInfo( - const CLcLocationAppInfo& aLCAppInfo ) - { - // C++ Copy constructor. No allocations or functions which can Leave - // should be called from here. - - // Set only those parameters which dont require memory allocation. - iLaunchMode = aLCAppInfo.iLaunchMode; - iSystemCharacteristics = aLCAppInfo.iSystemCharacteristics; - iAppCharacteristics = aLCAppInfo.iAppCharacteristics; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo::CLcLocationAppInfo -// --------------------------------------------------------------------------- -// -CLcLocationAppInfo::CLcLocationAppInfo() - :iLaunchMode( EDefaultMode ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo::~CLcLocationAppInfo -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfo::~CLcLocationAppInfo() - { - // C++ Destructor. Free all resources associated with this class. - - // Delete the buffer containing the Identifier - delete iId; - - // Delete the buffer containing the name of the Location application - delete iApplicationName; - - // Delete the Application Icon - delete iApplicationIconData; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo* CLcLocationAppInfo::NewL -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfo* CLcLocationAppInfo::NewL() - { - CLcLocationAppInfo* self = NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo* CLcLocationAppInfo::NewLC -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfo* CLcLocationAppInfo::NewLC() - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcLocationAppInfo* self = - new ( ELeave )CLcLocationAppInfo(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo* CLcLocationAppInfo::NewL -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfo* CLcLocationAppInfo::NewL( - const CLcLocationAppInfo& aLocAppInfo ) - { - CLcLocationAppInfo* self = NewLC( aLocAppInfo ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo* CLcLocationAppInfo::NewLC -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfo* CLcLocationAppInfo::NewLC( - const CLcLocationAppInfo& aLocAppInfo ) - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcLocationAppInfo* self = - new ( ELeave )CLcLocationAppInfo( aLocAppInfo ); - CleanupStack::PushL( self ); - self->ConstructL( aLocAppInfo ); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcLocationAppInfo::ConstructL -// --------------------------------------------------------------------------- -// -void CLcLocationAppInfo::ConstructL() - { - } - -// --------------------------------------------------------------------------- -// void CLcLocationAppInfo::ConstructL -// --------------------------------------------------------------------------- -// -void CLcLocationAppInfo::ConstructL( const CLcLocationAppInfo& aLCAppInfo ) - { - // Copy the Identifier from the Argument Location Application App info. - iId = aLCAppInfo.Id().AllocL(); - - // Copy the Name from the Argument Location Application App info. - iApplicationName = aLCAppInfo.Name().AllocL(); - - // Create the Icon related objects. - if ( aLCAppInfo.iApplicationIconData ) - { - iApplicationIconData = aLCAppInfo.iApplicationIconData->Des().Alloc(); - } - iApplicationIconType = aLCAppInfo.iApplicationIconType; - iIconId = aLCAppInfo.iIconId; - } - -// --------------------------------------------------------------------------- -// TUint32 CLcLocationAppInfo::IdL -// --------------------------------------------------------------------------- -// -EXPORT_C TPtrC CLcLocationAppInfo::Id() const - { - // Check whether the UID exists, incase it doesnt exist then return a - // NULL string. - if( !iId ) - { - return TPtrC(); - } - - // Return the UID. - return *iId; - } - -// --------------------------------------------------------------------------- -// TDesC& CLcLocationAppInfo::NameL -// --------------------------------------------------------------------------- -// -EXPORT_C TPtrC CLcLocationAppInfo::Name() const - { - // Check whether the application name exists, incase it doesnt exist then - // return a NULL string. - if( !iApplicationName ) - { - return TPtrC(); - } - // Return the Application Name. - return *iApplicationName; - } - -// --------------------------------------------------------------------------- -// CGulIcon& CLcLocationAppInfo::IconL -// --------------------------------------------------------------------------- -// -EXPORT_C CGulIcon* CLcLocationAppInfo::IconL() const - { - CGulIcon* icon = NULL; - // If there is no Icon file present, then we have to load the default - // Icon for the Application - if ( iApplicationIconData ) - { - switch( iApplicationIconType ) - { - case CLcAppInfo::EIconfromApp: - { - // Since the request is for a Native S60 application, the Identifer - // contains an UID. Obtain it using Lexer - TLex lexer( iApplicationIconData->Des()); - TUint32 uidValue; - User::LeaveIfError( lexer.BoundedVal( uidValue, EHex, KUidMaxValue )); - - // Obtain the Location Icon. - icon = LcIconLoader::LoadApplicationIconL( TUid::Uid( uidValue )); - - break; - } - case CLcAppInfo::EMifFile: - { - icon = LcIconLoader::LoadMifFileIconL( iApplicationIconData->Des(), - iIconId ); - break; - } - default: - { - icon = LcIconLoader::LoadDefaultIconL(); - break; - } - } - } - else - { - icon = LcIconLoader::LoadDefaultIconL(); - } - return icon; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo::TLcLaunchMode -// CLcLocationAppInfo::LocationApplicationIconL -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfo::TLcLaunchMode CLcLocationAppInfo::LaunchMode() const - { - return iLaunchMode; - } - -// --------------------------------------------------------------------------- -// TUint32 CLcLocationAppInfo::SystemCharacteristics -// --------------------------------------------------------------------------- -// -EXPORT_C TUint32 CLcLocationAppInfo::SystemCharacteristics() const - { - return iSystemCharacteristics; - } - -// --------------------------------------------------------------------------- -// TUint32 CLcLocationAppInfo::ApplicationCharacteristics -// --------------------------------------------------------------------------- -// -EXPORT_C TUint32 CLcLocationAppInfo::ApplicationCharacteristics() const - { - return iAppCharacteristics; - } - -// --------------------------------------------------------------------------- -// TUint32 CLcLocationAppInfo::SetIdL -// --------------------------------------------------------------------------- -// -void CLcLocationAppInfo::SetIdL( const TDesC& aId ) - { - // Incase, the UID already exists then Leave with KErrAlreadyExists - if( iId ) - { - User::Leave( KErrAlreadyExists ); - } - - // Copy the Identifier from the Argument Location Application App info. - iId = aId.AllocL(); - - } - -// --------------------------------------------------------------------------- -// void CLcLocationAppInfo::SetNameL -// --------------------------------------------------------------------------- -// -void CLcLocationAppInfo::SetNameL( const TDesC& aName ) - { - // Incase, the application name exists then Leave with KErrAlreadyExists. - if( iApplicationName ) - { - User::Leave( KErrAlreadyExists ); - } - - // Copy the Name from the Argument Location Application App info. - iApplicationName = aName.AllocL(); - } - -// --------------------------------------------------------------------------- -// void CLcLocationAppInfo::SetIconL -// --------------------------------------------------------------------------- -// -void CLcLocationAppInfo::SetIconL( TInt aIconType, - const TDesC& aIconData, - TInt aIconId ) - { - // Incase, the application icon exists then Leave with KErrAlreadyExists. - if( iApplicationIconData ) - { - User::Leave( KErrAlreadyExists ); - } - - if( !aIconData.Length()) - { - User::Leave( KErrArgument ); - } - - // Create the Icon related objects. - iApplicationIconData = aIconData.Alloc(); - iApplicationIconType = aIconType; - iIconId = aIconId; - } - -// --------------------------------------------------------------------------- -// void CLcLocationAppInfo::SetLocationApplicationLaunchMode -// --------------------------------------------------------------------------- -// -void CLcLocationAppInfo::SetLaunchMode( - CLcLocationAppInfo::TLcLaunchMode aLaunchMode ) - { - iLaunchMode = aLaunchMode; - } - - -// --------------------------------------------------------------------------- -// void CLcLocationAppInfo::SetSystemCharacteristics -// --------------------------------------------------------------------------- -// -void CLcLocationAppInfo::SetSystemCharacteristics( - TUint32 aSysCharacteristics ) - { - iSystemCharacteristics = aSysCharacteristics; - } - -// --------------------------------------------------------------------------- -// void CLcLocationAppInfo::SetApplicationCharacteristics -// --------------------------------------------------------------------------- -// -void CLcLocationAppInfo::SetApplicationCharacteristics( - TUint32 aAppCharacteristics ) - { - iAppCharacteristics = aAppCharacteristics; - } - -// ----- Member funtions for CLcLocationAppInfoArray ------------- - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray::CLcLocationAppInfoArray -// --------------------------------------------------------------------------- -// -CLcLocationAppInfoArray::CLcLocationAppInfoArray() - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray::~CLcLocationAppInfoArray -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfoArray::~CLcLocationAppInfoArray() - { - // C++ Destructor. Free all resources associated with this class. - - // Delete all the the associated Location application information objects. - while ( iAppInfoArray.Count() > 0 ) - { - // Remove the first item - CLcLocationAppInfo* item = iAppInfoArray[0]; - iAppInfoArray.Remove( 0 ); - - // Delete the element - delete item; - item = NULL; - } - iAppInfoArray.Reset(); - iAppInfoArray.Close(); - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray* -// CLcLocationAppInfoArray::NewL -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfoArray* - CLcLocationAppInfoArray::NewL() - { - CLcLocationAppInfoArray* self = NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray* -// CLcLocationAppInfoArray::NewLC -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfoArray* - CLcLocationAppInfoArray::NewLC() - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcLocationAppInfoArray* self = - new ( ELeave )CLcLocationAppInfoArray(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcLocationAppInfoArray::ConstructL -// --------------------------------------------------------------------------- -// -void CLcLocationAppInfoArray::ConstructL() - { - // Second phase of the two phase constructor. - } - -// --------------------------------------------------------------------------- -// void CLcLocationAppInfoArray::Count -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CLcLocationAppInfoArray::Count() const - { - // Return the number of elements in the Application information array. - return iAppInfoArray.Count(); - } - -// --------------------------------------------------------------------------- -// void CLcLocationAppInfoArray::AppendL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcLocationAppInfoArray::AppendL( - CLcLocationAppInfo* aLCAppInfo ) - { - // Check if the element passed as an argument is NULL. If its NULL, then - // Leave with KErrArgument - // Not using User::LeaveIfNull because in that case, the leave would happen - // with KErrNoMemory which conveys the wrong behaviour. - if( !aLCAppInfo ) - { - User::Leave( KErrArgument ); - } - - // Append the new element into the array; - iAppInfoArray.AppendL( aLCAppInfo ); - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo* CLcLocationAppInfoArray::RemoveL -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfo* CLcLocationAppInfoArray::Remove( TInt aIndex ) - { - // Check if the element requested is out of array bounds - if( aIndex < 0 || aIndex >= iAppInfoArray.Count()) - { - User::Panic( KLcPanicCategory, ELcInvalidIndex ); - } - - // Since, the remove method is expected to return back the reference - // of the element removed, first store the element at the aIndex - // position and return it back - CLcLocationAppInfo* item = iAppInfoArray[ aIndex ]; - iAppInfoArray.Remove( aIndex ); - return item; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo* CLcLocationAppInfoArray::Reset -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcLocationAppInfoArray::Reset() - { - // Reset the entire array so that its ok for resuse. - iAppInfoArray.ResetAndDestroy(); - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo& CLcLocationAppInfoArray:: -// operator[] -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfo& CLcLocationAppInfoArray:: - operator[]( TInt aIndex ) const - { - // Check if the element requested is out of array bounds - if( aIndex < 0 || aIndex >= iAppInfoArray.Count()) - { - User::Panic( KLcPanicCategory, ELcInvalidIndex ); - } - - // Return only a reference of the object. The ownership is not be - // transferred. - return *(iAppInfoArray[ aIndex ]); - } - -// End of File - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/src/lcnotificationao.cpp --- a/locationcentre/lcservice/src/lcnotificationao.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre Notification Active Object. -* -*/ - - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lcnotificationao.h" -#include "lcnotification.h" -#include "lcclientsession.h" - -// CONSTANT DEFINTIONS - -// ----- Member funtions for CLcNotificationAO --------------------------------- - -// --------------------------------------------------------------------------- -// CLcNotificationAO::CLcNotificationAO -// --------------------------------------------------------------------------- -// -CLcNotificationAO::CLcNotificationAO( MLcNotification& aObserver, - RLcClientSession& aClientSession ) - :CActive( EPriorityStandard ), - iObserver( aObserver ), - iClientSession( aClientSession ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// CLcNotificationAO::~CLcNotificationAO -// --------------------------------------------------------------------------- -// -CLcNotificationAO::~CLcNotificationAO() - { - // C++ Destructor. Free all resources associated with this class. - Cancel(); - } - -// --------------------------------------------------------------------------- -// CLcNotificationAO* CLcNotificationAO::NewL -// --------------------------------------------------------------------------- -// -CLcNotificationAO* CLcNotificationAO::NewL( MLcNotification& aObserver, - RLcClientSession& aClientSession ) - { - CLcNotificationAO* self = new ( ELeave )CLcNotificationAO( aObserver, - aClientSession ); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcNotificationAO::IssueRequest -// --------------------------------------------------------------------------- -// -void CLcNotificationAO::IssueRequest() - { - // The request is issued only if there is no outstanding request. If there - // any request outstanding then don't do anything. Server the previous - // request. - if ( !IsActive()) - { - // Location Centre Server is the ASP. Send a notification request to - // the same. - iClientSession.SendReceive( ERegisterObserver, iStatus ); - SetActive(); - } - } - -// --------------------------------------------------------------------------- -// void CLcNotificationAO::CancelRequest -// --------------------------------------------------------------------------- -// -void CLcNotificationAO::CancelRequest() - { - Cancel(); - } - -// --------------------------------------------------------------------------- -// void CLcNotificationAO::RunL -// --------------------------------------------------------------------------- -// -void CLcNotificationAO::RunL() - { - // Communicate the Success/Failure of the Notification request to the - // Location Centre Client. - iObserver.LcStatusChangedL( iStatus.Int()); - - // Issue the Observer request unless the server has been terminated. - if ( iStatus.Int() != KErrServerTerminated ) - { - IssueRequest(); - } - } - -// --------------------------------------------------------------------------- -// void CLcNotificationAO::DeCancel -// --------------------------------------------------------------------------- -// -void CLcNotificationAO::DoCancel() - { - iClientSession.SendReceive( ERemoveObserver ); - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/src/lcpopuplistbox.cpp --- a/locationcentre/lcservice/src/lcpopuplistbox.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 box used to display the Location Centre pop-up. -* -*/ - - -// SYSTEM INCLUDES -#include // Icon Array -#include // Column Listbox - -// USER INCLUDES -#include "lcpopuplistbox.h" -#include "lcpopuplistboxmodel.h" -#include "lclocationappinfo.h" - -// CONSTANT DEFINTION -const TInt KLcPopupListboxGranularity = 4; - -// ========================= MEMBER FUNCTIONS ================================ - -// --------------------------------------------------------------------------- -// CLcPopupListBox::CLcPopupListBox -// --------------------------------------------------------------------------- -// -CLcPopupListBox::CLcPopupListBox( CLcLocationAppInfoArray* aAppArray ) - :iAppArray( aAppArray ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcPopupListBox::~CLcPopupListBox -// --------------------------------------------------------------------------- -// -CLcPopupListBox::~CLcPopupListBox() - { - // C++ Destructor. Free all resources associated with this class. - - // Delete the List box model. - delete iListBoxModel; - - // Delete the Application Info array - delete iAppArray; - } - -// --------------------------------------------------------------------------- -// void CLcPopupListBox::ConstructL -// --------------------------------------------------------------------------- -// -void CLcPopupListBox::ConstructL( CCoeControl* aParent ) - { - // Create the list box model - iListBoxModel = CLcPopupListBoxModel::NewL( *iAppArray ); - - CAknSingleGraphicPopupMenuStyleListBox::ConstructL( aParent, EAknListBoxMenuList ); - CreateScrollBarFrameL(ETrue); - ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto ); - - UpdateIconsL(); - - // The ownership of the List box model is retained with the Container. - // This is needed because the model is used to return the identifier of the - // Location based Application or Content/Service when its selected. - Model()->SetItemTextArray( iListBoxModel ); - Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - - ActivateL(); - } - -// --------------------------------------------------------------------------- -// void CLcPopupListBox::UpdateModel -// --------------------------------------------------------------------------- -// -void CLcPopupListBox::UpdateListBoxL( CLcLocationAppInfoArray* aAppArray ) - { - // Delete the existing contents and set the new Application info array - // to the listbox model. - delete iAppArray; - iAppArray = aAppArray; - - iListBoxModel->UpdateModel( *iAppArray ); - - UpdateIconsL(); - - HandleItemAdditionL(); - HandleItemRemovalL(); - - DrawDeferred(); - } - -// --------------------------------------------------------------------------- -// void CLcPopupListBox::UpdateIconsL -// --------------------------------------------------------------------------- -// -void CLcPopupListBox::UpdateIconsL() - { - TInt count = iAppArray->Count(); - // Update the Icons only if there are any elements the List box - if ( count ) - { - // Create a new Icons Array - CAknIconArray* icons = new( ELeave ) CAknIconArray( KLcPopupListboxGranularity ); - CleanupStack::PushL( icons ); - - // Add All the icons to the Icons array - for ( TInt i = 0; i < count; i++ ) - { - icons->AppendL(( *iAppArray )[i].IconL() ); - } - - // Get old icons and delete those. This is done because SetIconArray will - // not do it. - CAknIconArray* oldIcons = - static_cast( ItemDrawer()->ColumnData()->IconArray()); - - delete oldIcons; - - //Set New Icons to array - ItemDrawer()->ColumnData()->SetIconArray( icons ); - CleanupStack::Pop(icons); - } - ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue ); - - DrawDeferred(); - } - -// --------------------------------------------------------------------------- -// TInt CLcPopupListBox::AppInfoId -// --------------------------------------------------------------------------- -// -TPtrC CLcPopupListBox::AppInfoId() const - { - return ( *iAppArray )[ CurrentItemIndex() ].Id(); - } - -// --------------------------------------------------------------------------- -// void CLcPopupListBox::HandleResourceChange -// --------------------------------------------------------------------------- -// -void CLcPopupListBox::HandleResourceChange( TInt aType ) - { - // Pass the event to the base class - CCoeControl::HandleResourceChange( aType ); - switch( aType ) - { - // Dynamic Layout switch and Skin Change - case KEikDynamicLayoutVariantSwitch: - { - SetRect( Rect()); - break; - } - case KAknsMessageSkinChange: - { - TRAP_IGNORE( UpdateIconsL()); - break; - } - default: - { - break; - } - } - DrawDeferred(); - } diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/src/lcpopuplistboxmodel.cpp --- a/locationcentre/lcservice/src/lcpopuplistboxmodel.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies 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 box model for the list-box used to display the Location -* Centre pop-up. -* -*/ - - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lcpopuplistboxmodel.h" -#include "lclocationappinfo.h" -#include "lcerrors.h" - -// CONSTANT DEFINTION -const TInt KLcBufferSize = 128; - -// ========================= MEMBER FUNCTIONS ================================ - -// --------------------------------------------------------------------------- -// CLcPopupListBoxModel::CLcPopupListBoxModel -// --------------------------------------------------------------------------- -// -CLcPopupListBoxModel::CLcPopupListBoxModel( CLcLocationAppInfoArray& aAppArray ) - :iAppArray( &aAppArray ) - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcPopupListBoxModel::~CLcPopupListBoxModel -// --------------------------------------------------------------------------- -// -CLcPopupListBoxModel::~CLcPopupListBoxModel() - { - // C++ Destructor. Free all resources associated with this class. - - // Delete the MdcaPoint buffer - delete iBuffer; - } - -// --------------------------------------------------------------------------- -// void CLcPopupListBoxModel::ConstructL -// --------------------------------------------------------------------------- -// -void CLcPopupListBoxModel::ConstructL() - { - // Create the Buffer for packing the MdcaPoint - iBuffer = HBufC16::NewL( KLcBufferSize ); - } - -// --------------------------------------------------------------------------- -// CLcPopupListBoxModel* CLcPopupListBoxModel::NewL -// --------------------------------------------------------------------------- -// -CLcPopupListBoxModel* CLcPopupListBoxModel::NewL( CLcLocationAppInfoArray& aAppArray ) - { - CLcPopupListBoxModel* self = new ( ELeave ) CLcPopupListBoxModel( aAppArray ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcPopupListBoxModel::UpdateModel -// --------------------------------------------------------------------------- -// -void CLcPopupListBoxModel::UpdateModel( CLcLocationAppInfoArray& aAppArray ) - { - // Now assign the new one - iAppArray = &aAppArray; - } - -// --------------------------------------------------------------------------- -// TInt CLcPopupListBoxModel::MdcaCount -// --------------------------------------------------------------------------- -// -TInt CLcPopupListBoxModel::MdcaCount() const - { - return iAppArray->Count(); - } - -// --------------------------------------------------------------------------- -// TPtrC16 CLcPopupListBoxModel::MdcaPoint -// --------------------------------------------------------------------------- -// -TPtrC16 CLcPopupListBoxModel::MdcaPoint( TInt aIndex ) const - { - // Pack the contents into the Buffer. We dont have to re-allocate the buffer - // everytime because the length of the name field is restricted in the - // Location Centre Registration API - - // Tabulator Defintion - _LIT( KTab, "\t" ); - - // Create formatted item string. - // list_single_large_pane: - // list item string format: "0\tTextLabel" - // where 0 is an index to icon array - TPtr16 buf( iBuffer->Des()); - buf.Zero(); - - // Append the Icon Index - buf.AppendNum( aIndex ); - - // Append the Tab Key - buf.Append( KTab ); - - // Append the Application Information - buf.Append(( *iAppArray )[aIndex].Name()); - - return buf; - } diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/src/lcservice.cpp --- a/locationcentre/lcservice/src/lcservice.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,360 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre API interface. -* -*/ - - -// SYSTEM INCLUDES - -// USER INCLUDES -#include "lcservice.h" -#include "lcserviceimpl.h" -#include "lclocationappfilter.h" -#include "lcappexitobserver.h" -#include "lcnotification.h" - -// ---------- Member funtions for CLcService::CLcLaunchParam ----------------- - -// --------------------------------------------------------------------------- -// CLcService::CLcLaunchParam::CLcLaunchParam -// --------------------------------------------------------------------------- -// -CLcService::CLcLaunchParam::CLcLaunchParam( - CLcLocationAppInfo::TLcLaunchMode aLaunchMode) - :iLaunchMode( aLaunchMode ) - { - } - -// --------------------------------------------------------------------------- -// CLcService::CLcLaunchParam::~CLcLaunchParam -// --------------------------------------------------------------------------- -// -CLcService::CLcLaunchParam::~CLcLaunchParam() - { - delete iId; - } - -// --------------------------------------------------------------------------- -// CLcService::CLcLaunchParam::NewL -// --------------------------------------------------------------------------- -// -EXPORT_C CLcService::CLcLaunchParam* CLcService::CLcLaunchParam::NewL( - const TDesC& aAppId, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode ) - { - CLcService::CLcLaunchParam* self = NewLC( aAppId, aLaunchMode ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcService::CLcLaunchParam::NewLC -// --------------------------------------------------------------------------- -// -EXPORT_C CLcService::CLcLaunchParam* CLcService::CLcLaunchParam::NewLC( - const TDesC& aAppId, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode ) - { - CLcService::CLcLaunchParam* self = new ( ELeave )CLcService::CLcLaunchParam( aLaunchMode ); - CleanupStack::PushL( self ); - self->ConstructL( aAppId ); - return self; - } - -// --------------------------------------------------------------------------- -// TPtrC CLcService::CLcLaunchParam::Id -// --------------------------------------------------------------------------- -// -TPtrC CLcService::CLcLaunchParam::Id() const - { - // Check whether the application id exists, incase it doesnt exist then - // return a NULL string. - if( !iId ) - { - return TPtrC(); - } - // Return the Application Id. - return *iId; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfo::TLcLaunchMode CLcLaunchParam::LaunchMode -// --------------------------------------------------------------------------- -// -CLcLocationAppInfo::TLcLaunchMode CLcService::CLcLaunchParam::LaunchMode() const - { - return iLaunchMode; - } - -// --------------------------------------------------------------------------- -// void CLcService::CLcLaunchParam::ConstructL -// --------------------------------------------------------------------------- -// -void CLcService::CLcLaunchParam::ConstructL( const TDesC& aAppId ) - { - iId = aAppId.AllocL(); - } - -// ---------- Member funtions for CLcService --------------------------------- - -// --------------------------------------------------------------------------- -// CLcService::CLcService -// --------------------------------------------------------------------------- -// -CLcService::CLcService() - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcService::~CLcService -// --------------------------------------------------------------------------- -// -CLcService::~CLcService() - { - // C++ Destructor. Free all resources associated with this class. - - delete iImplementation; - } - -// --------------------------------------------------------------------------- -// CLcService* CLcService::NewL -// --------------------------------------------------------------------------- -// -EXPORT_C CLcService* CLcService::NewL() - { - CLcService* self = NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcService* CLcService::NewLC -// --------------------------------------------------------------------------- -// -EXPORT_C CLcService* CLcService::NewLC() - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcService* self = - new ( ELeave )CLcService(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcService::ConstructL -// --------------------------------------------------------------------------- -// -void CLcService::ConstructL() - { - // Second phase of the two phase constructor. - - // Create the Location Centre API implementation - iImplementation = CLcServiceImpl::NewL(); - } - -// --------------------------------------------------------------------------- -// void CLcService::LaunchLocationCentreL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcService::LaunchLocationCentreL( - CLcLocationAppInfo::TLcLaunchMode aLaunchMode, - MLcAppExitObserver* aChainedAppExitObserver ) - { - // The Filter construction without any arguments will act as no filtering - // applied on the list of Location based Applications and Contents/Services. - TLcLocationAppFilter filter; - - iImplementation->LaunchLocationCentreL( filter, - aLaunchMode, - aChainedAppExitObserver ); - } - -// --------------------------------------------------------------------------- -// void CLcService::LaunchLocationCentreL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcService::LaunchLocationCentreL( - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode, - MLcAppExitObserver* aChainedAppExitObserver ) - { - iImplementation->LaunchLocationCentreL( aLocationAppFilter, - aLaunchMode, - aChainedAppExitObserver ); - } - -// --------------------------------------------------------------------------- -// void CLcService::LaunchLocationCentreL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcService::LaunchLocationCentreL( - const RPointerArray& aIncludeAppArray, - MLcAppExitObserver* aChainedAppExitObserver ) - { - iImplementation->LaunchLocationCentreL( aIncludeAppArray, - aChainedAppExitObserver ); - } - -// --------------------------------------------------------------------------- -// void CLcService::LaunchLocationCentreL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcService::LaunchLocationCentreL( - const RArray& aExcludeAppArray, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode, - MLcAppExitObserver* aChainedAppExitObserver ) - { - iImplementation->LaunchLocationCentreL( aExcludeAppArray, - aLaunchMode, - aChainedAppExitObserver ); - } - -// --------------------------------------------------------------------------- -// void CLcService::SelectLocationApplicationL -// --------------------------------------------------------------------------- -// -EXPORT_C TPtrC CLcService::SelectLocationApplicationL() - { - // The Filter construction without any arguments will act as no filtering - // applied on the list of Location based Applications and Contents/Services. - // coverity[var_decl : FALSE] - TLcLocationAppFilter filter; - // coverity[uninit_use_in_call : FALSE] - return iImplementation->SelectLocationApplicationL( filter ); - } - -// --------------------------------------------------------------------------- -// void CLcService::SelectLocationApplicationL -// --------------------------------------------------------------------------- -// -EXPORT_C TPtrC CLcService::SelectLocationApplicationL( - const TLcLocationAppFilter& aLocationAppFilter ) - { - return iImplementation->SelectLocationApplicationL( aLocationAppFilter ); - } - -// --------------------------------------------------------------------------- -// void CLcService::SelectLocationApplicationL -// --------------------------------------------------------------------------- -// -EXPORT_C TPtrC CLcService::SelectLocationApplicationL( - const RArray& aAppArray, - TBool aIncludeFlag ) - { - return iImplementation->SelectLocationApplicationL( aAppArray, - aIncludeFlag ); - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray* CLcService::GetLocationApplicationsL -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfoArray* CLcService::GetLocationApplicationsL() - { - // The Get Location Applications call is implemented as a Get Location - // based Applications function which doesn't have any filtering. So, we - // need to create an empty filter and pass it to this function. - - // The Filter construction without any arguments will act as no filtering - // applied on the list of Location based Applications and Contents/Services. - TLcLocationAppFilter filter; - return iImplementation->GetLocationApplicationsL( filter ); - } - -// --------------------------------------------------------------------------- -// void CLcService::GetLocationApplications -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcService::GetLocationApplications( - TRequestStatus& aStatus, - CLcLocationAppInfoArray*& aAppInfoArray ) - { - TLcLocationAppFilter filter; - iImplementation->GetLocationApplications( aStatus, - filter, - aAppInfoArray ); - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray* CLcService::GetLocationApplicationsL -// --------------------------------------------------------------------------- -// -EXPORT_C CLcLocationAppInfoArray* CLcService::GetLocationApplicationsL( - const TLcLocationAppFilter& aLocationAppFilter ) - { - return iImplementation->GetLocationApplicationsL( aLocationAppFilter ); - } - -// --------------------------------------------------------------------------- -// void CLcService::GetLocationApplicationsL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcService::GetLocationApplications( - TRequestStatus& aStatus, - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfoArray*& aAppInfoArray ) - { - iImplementation->GetLocationApplications( aStatus, - aLocationAppFilter, - aAppInfoArray ); - } - -// --------------------------------------------------------------------------- -// void CLcService::CancelGetLocationApplications -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcService::CancelGetLocationApplications() - { - iImplementation->CancelGetLocationApplications(); - } - -// --------------------------------------------------------------------------- -// void CLcService::LaunchLocationApplicationL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcService::LaunchLocationApplicationL( - const TDesC& aAppIdentifier, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode, - MLcAppExitObserver* aChainedAppExitObserver ) - { - iImplementation->LaunchLocationApplicationL( aAppIdentifier, - aLaunchMode, - aChainedAppExitObserver ); - } - -// --------------------------------------------------------------------------- -// void CLcService::SetObserverL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcService::SetObserverL( MLcNotification& aObserver ) - { - iImplementation->SetObserverL( aObserver ); - } - -// --------------------------------------------------------------------------- -// TInt CLcService::RemoveObserver -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CLcService::RemoveObserver() - { - return iImplementation->RemoveObserver(); - } - -// End of File - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/src/lcserviceimpl.cpp --- a/locationcentre/lcservice/src/lcserviceimpl.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,647 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Location Centre API interface. -* -*/ - - -// SYSTEM INCLUDES -#include -#include -#include -#include -#include -#include - -// USER INCLUDES -#include "lcserviceimpl.h" -#include "lclocationappfilter.h" -#include "lcappexitobserver.h" -#include "lcnotification.h" -#include "lcapplauncher.h" -#include "lcipcparams.h" -#include "lcnotificationao.h" -#include "lciconloader.h" -#include "lcsyncoperation.h" -#include "lcpopuplistbox.h" -#include "lcdebug.h" - -// ----- Member funtions for CLcServiceImpl --------------------------------- - -// --------------------------------------------------------------------------- -// CLcServiceImpl::CLcServiceImpl -// --------------------------------------------------------------------------- -// -CLcServiceImpl::CLcServiceImpl() - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcServiceImpl::~CLcServiceImpl -// --------------------------------------------------------------------------- -// -CLcServiceImpl::~CLcServiceImpl() - { - // C++ Destructor. Free all resources associated with this class. - if ( iPopUp ) - { - iPopUp->CancelPopup(); - } - - // Delele the Pop-up list - delete iPopUpListBox; - - // Delete the Selected ID buffer - delete iSelectedAppId; - - // Delete filter parameters - delete iFilter; - - // Delete the Application information array - iAppArray.Reset(); - iAppArray.Close(); - - // Delete the Notification Active object - delete iNotificationAO; - - // Delete the Application launcher - delete iAppLauncher; - - // If there is an outstanding request then complete the same with KErrCancel. - if ( iAsyncOperation ) - { - iAsyncOperation->CancelGetLocationApplications(); - User::RequestComplete( iStatus, KErrCompletion ); - - // We can now delete the asynchronous operation - delete iAsyncOperation; - iAsyncOperation = NULL; - } - - // Close the session handle. The session handle is active throughout the - // lifetime of this class - iSession.Close(); - - } - -// --------------------------------------------------------------------------- -// CLcServiceImpl* CLcServiceImpl::NewL -// --------------------------------------------------------------------------- -// -CLcServiceImpl* CLcServiceImpl::NewL() - { - CLcServiceImpl* self = NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcServiceImpl* CLcServiceImpl::NewLC -// --------------------------------------------------------------------------- -// -CLcServiceImpl* CLcServiceImpl::NewLC() - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcServiceImpl* self = - new ( ELeave )CLcServiceImpl(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::ConstructL -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::ConstructL() - { - // Second phase of the two phase constructor. - - // Open a connection to the Location Centre Server - // The connection is opened at the class construction and Closed at the - // class deletion. This is done inorder to avoid delays during every - // operation - User::LeaveIfError( iSession.CreateSession()); - - // Create the Location application launcher. - iAppLauncher = CLcAppLauncher::NewL(); - - // Create the Notification AO - iNotificationAO = CLcNotificationAO::NewL( *this, iSession ); - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::LaunchLocationCentreL -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::LaunchLocationCentreL( - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode, - MLcAppExitObserver* aChainedAppExitObserver ) - { - DEBUG("+ CLcServiceImpl::LaunchLocationCentreL") - // First select a Location based Application from the list - TPtrC identifier = SelectLocationApplicationL( aLocationAppFilter ); - if ( !identifier.Length()) - { - return; - } - - // Launch the corresponding application. - LaunchLocationApplicationL( identifier, aLaunchMode, aChainedAppExitObserver ); - DEBUG("- CLcServiceImpl::LaunchLocationCentreL") - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::LaunchLocationCentreL -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::LaunchLocationCentreL( - const RPointerArray& aIncludeAppArray, - MLcAppExitObserver* aChainedAppExitObserver ) - { - // Form an array of applications identifiers which can be passed to the - // selection function - RArray appArray; - CleanupClosePushL( appArray ); - - TInt count = aIncludeAppArray.Count(); - for( TInt i = 0; i < count; i++ ) - { - User::LeaveIfError( appArray.Append( aIncludeAppArray[i]->Id())); - } - - // First select a Location based Application from the list - TPtrC identifier = SelectLocationApplicationL( appArray, ETrue ); - if ( !identifier.Length()) - { - return; - } - - CLcLocationAppInfo::TLcLaunchMode launchmode = CLcLocationAppInfo::EDefaultMode; - // Obtain the launch mode for that application - for ( TInt i = 0; i < count; i++ ) - { - if ( !appArray[i].Compare( identifier )) - { - launchmode = aIncludeAppArray[i]->LaunchMode(); - break; - } - } - - // Launch the corresponding application. - LaunchLocationApplicationL( identifier, launchmode, aChainedAppExitObserver ); - - // Pop and Destroy the application array - CleanupStack::PopAndDestroy(); - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::LaunchLocationCentreL -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::LaunchLocationCentreL( - const RArray& aExcludeAppArray, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode, - MLcAppExitObserver* aChainedAppExitObserver ) - { - // First select a Location based Application from the list - TPtrC identifier = SelectLocationApplicationL( aExcludeAppArray, EFalse ); - if ( !identifier.Length()) - { - return; - } - - // Launch the corresponding application. - LaunchLocationApplicationL( identifier, aLaunchMode, aChainedAppExitObserver ); - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::SelectLocationApplicationL -// --------------------------------------------------------------------------- -// -TPtrC CLcServiceImpl::SelectLocationApplicationL( - const TLcLocationAppFilter& aLocationAppFilter ) - { - // If the pop-up dialog is currently being displayed then cannot proceed with - // the request. - if ( iPopUp ) - { - User::Leave( KErrInUse ); - } - - iPopupOutStanding = ELcPopupWithFiltering; - - // Delete any existing filter. This condition should never occur. Just a safe - // check. - delete iFilter; - iFilter = NULL; - - // Copy the filter contents - iFilter = new ( ELeave ) TLcLocationAppFilter( aLocationAppFilter ); - - // Obtain the list of applications from the Location Centre Server and - // launch the Location Centre pop-up with that list. - CLcLocationAppInfoArray* array = GetLocationApplicationsL( aLocationAppFilter ); - - // The ownership of the array is transferred. - TPtrC appId(KNullDesC()); - TRAPD( error, appId.Set( SelectLocationApplicationL( array ))); - - // Delete the filter before any operation on the result - delete iFilter; - iFilter = NULL; - - // Handle Error - if ( error ) - { - if ( iPopUp ) - { - iPopUp->CancelPopup(); - } - iPopUp = NULL; - - delete iPopUpListBox; - iPopUpListBox = NULL; - - User::Leave( error ); - } - return appId; - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::SelectLocationApplicationL -// --------------------------------------------------------------------------- -// -TPtrC CLcServiceImpl::SelectLocationApplicationL( - const RArray& aAppArray, - TBool aIncludeFlag ) - { - // If the pop-up dialog is currently being displayed then cannot proceed with - // the request. - if ( iPopUp ) - { - User::Leave( KErrInUse ); - } - - // Reset and Destroy the existing array. - iAppArray.Reset(); - - if ( aIncludeFlag ) - { - iPopupOutStanding = ELcPopupWithSpecifiedApps; - } - else - { - iPopupOutStanding = ELcPopupWithoutSpecifedApps; - } - - // Create the array with the new elements - TInt count = aAppArray.Count(); - for ( TInt i = 0; i < count; i++ ) - { - User::LeaveIfError( iAppArray.Append( aAppArray[i] )); - } - - // Obtain the list of applications from the Location Centre Server and - // launch the Location Centre pop-up with that list. - CLcLocationAppInfoArray* array = - LcSyncOperation::GetLocationApplicationsL( iSession, - aAppArray, - aIncludeFlag ); - - // The ownership of the array is transferred. - TPtrC appId(KNullDesC()); - TRAPD( error, appId.Set( SelectLocationApplicationL( array ))); - - // Reset and destroy the array - iAppArray.Reset(); - - // Handle Error - if ( error ) - { - if ( iPopUp ) - { - iPopUp->CancelPopup(); - } - iPopUp = NULL; - - delete iPopUpListBox; - iPopUpListBox = NULL; - - User::Leave( error ); - } - return appId; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray* CLcServiceImpl::GetLocationApplicationsL -// --------------------------------------------------------------------------- -// -CLcLocationAppInfoArray* CLcServiceImpl::GetLocationApplicationsL( - const TLcLocationAppFilter& aLocationAppFilter ) - { - return LcSyncOperation::GetLocationApplicationsL( iSession, - aLocationAppFilter ); - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::GetLocationApplicationsL -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::GetLocationApplications( - TRequestStatus& aStatus, - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfoArray*& aAppInfoArray) - { - TRAPD( error, GetLocationApplicationsL( aStatus, - aLocationAppFilter, - aAppInfoArray )); - if ( error ) - { - TRequestStatus* status = &aStatus; - User::RequestComplete( status , error ); - } - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::CancelGetLocationApplications -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::CancelGetLocationApplications() - { - // If there is an outstanding request then complete the same with KErrCancel. - if ( iAsyncOperation ) - { - iAsyncOperation->CancelGetLocationApplications(); - User::RequestComplete( iStatus, KErrCancel ); - - // We can now delete the asynchronous operation - delete iAsyncOperation; - iAsyncOperation = NULL; - } - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::LaunchLocationApplicationL -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::LaunchLocationApplicationL( - const TDesC& aAppIdentifier, - CLcLocationAppInfo::TLcLaunchMode aLaunchMode, - MLcAppExitObserver* aChainedAppExitObserver ) - { - DEBUG("+ CLcServiceImpl::LaunchLocationApplicationL" ) - - // Obtain the Location Application Information from Location Centre Server. - CLcBasicAppInfo* appInfo = - LcSyncOperation::GetLocationAppInfoL( iSession, aAppIdentifier ); - CleanupStack::PushL( appInfo ); - - // Resolve the model in which the Application must be launched. - if ( aLaunchMode == CLcLocationAppInfo::EDefaultMode ) - { - // Since this is a Local copy we can use the same for handling - // Launch mode changes. - aLaunchMode = - static_cast( appInfo->LaunchMode()); - } - - // Now Launch the Location based Application or Content/Service - iAppLauncher->LaunchLocationApplicationL( - appInfo->ApplicationType(), - appInfo->ApplicationData(), - ( aLaunchMode == CLcLocationAppInfo::EStandAloneMode ) ? ETrue : EFalse, - appInfo->CommandLineParamters(), - aChainedAppExitObserver ); - - CleanupStack::PopAndDestroy( appInfo ); - - DEBUG("- CLcServiceImpl::LaunchLocationApplicationL" ) - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::SetObserverL -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::SetObserverL( MLcNotification& aObserver ) - { - if ( iObserver ) - { - User::Leave( KErrAlreadyExists ); - } - - iObserver = &aObserver; - - iNotificationAO->IssueRequest(); - } - -// --------------------------------------------------------------------------- -// TInt CLcServiceImpl::RemoveObserver -// --------------------------------------------------------------------------- -// -TInt CLcServiceImpl::RemoveObserver() - { - if ( !iObserver ) - { - return KErrNotFound; - } - - iObserver = NULL; - - // If there is a popup outstanding then do nothing. If not remove the - // notification - if ( !iPopUp ) - { - iNotificationAO->CancelRequest(); - } - - return KErrNone; - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::LcStatusChangedL -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::LcStatusChangedL( TInt aErrorCode ) - { - // If we are displaying the pop-up then we need to transfer the changes - // to the pop-up first - if ( iPopUp ) - { - // Obtain the new list of applications from the Location Centre Server and - // update the Location Centre pop-up with that list. - CLcLocationAppInfoArray* array = NULL; - TInt error = KErrNone; - - switch( iPopupOutStanding ) - { - case ELcPopupWithFiltering: - { - // Incase we face any errors in retrival then we can Ignore the - // updations - TRAP( error, array = GetLocationApplicationsL( *iFilter )); - break; - } - case ELcPopupWithSpecifiedApps: - case ELcPopupWithoutSpecifedApps: - { - TBool includeflag = EFalse; - if ( iPopupOutStanding == ELcPopupWithSpecifiedApps ) - { - includeflag = ETrue; - } - - // Incase we face any errors in retrival then we can Ignore the - // updations - TRAP( error, array = LcSyncOperation::GetLocationApplicationsL( - iSession, iAppArray, includeflag )); - break; - } - default: - { - break; - } - } - - if ( !error && array ) - { - // The ownership of the array is transferred to the list box. - TRAP_IGNORE( CleanupStack::PushL( array ); - iPopUpListBox->UpdateListBoxL( array ); - CleanupStack::Pop( array ); - ); - } - else if ( KErrNotFound == error ) - { - if ( iPopUp ) - { - iPopUp->CancelPopup(); - } - iPopUp = NULL; - - delete iPopUpListBox; - iPopUpListBox = NULL; - } - } - - // Notify the client regarding the changes to Location Centre Registry - if ( iObserver ) - { - iObserver->LcStatusChangedL( aErrorCode ); - } - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::OperationComplete -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::OperationComplete( TInt aError ) - { - User::RequestComplete( iStatus, aError ); - - // We can now delete the asynchronous operation - delete iAsyncOperation; - iAsyncOperation = NULL; - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::GetLocationApplicationsL -// --------------------------------------------------------------------------- -// -void CLcServiceImpl::GetLocationApplicationsL( - TRequestStatus& aStatus, - const TLcLocationAppFilter& aLocationAppFilter, - CLcLocationAppInfoArray*& aAppInfoArray ) - { - aStatus = KRequestPending; - - // If there is an asynchronous operation then leave with KErrInUse - if ( iAsyncOperation ) - { - User::Leave( KErrInUse ); - } - - // Create the Asynchronous Operations class - iAsyncOperation = CLcAsyncOperation::NewL( iSession, *this ); - - // Set the status to KRequestPending - aStatus = KRequestPending; - iStatus = &aStatus; - - // Issue the request to the ASP - iAsyncOperation->GetLocationApplicationsL( aLocationAppFilter, - aAppInfoArray ); - } - -// --------------------------------------------------------------------------- -// void CLcServiceImpl::SelectLocationApplicationL -// --------------------------------------------------------------------------- -// -TPtrC CLcServiceImpl::SelectLocationApplicationL( - CLcLocationAppInfoArray* aAppInfoArray ) - { - // The App Info arrays ownership is tranferred to the List. So push it - // to the Cleanup stack until the ownership is completely transferred. - CleanupStack::PushL( aAppInfoArray ); - - iPopUpListBox = new ( ELeave ) CLcPopupListBox( aAppInfoArray ); - CleanupStack::Pop( aAppInfoArray ); - - // Construct the popup with the list - iPopUp = CAknPopupList::NewL( iPopUpListBox, - R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT, - AknPopupLayouts::EMenuGraphicWindow ); - iPopUpListBox->ConstructL( iPopUp ); - // iPopUp->SetBorder( AknBorderId::EAknBorderMenuPopup ); - - // Set up notification events - iNotificationAO->IssueRequest(); - - // Display the pop-up and let user selection. - TInt popupOk = iPopUp->ExecuteLD(); - iPopUp = NULL; - - // Only we are observing for notifications. We dont need it anymore - // Cancel it - if ( !iObserver ) - { - iNotificationAO->CancelRequest(); - } - - if ( popupOk ) - { - delete iSelectedAppId; - iSelectedAppId = NULL; - - iSelectedAppId = iPopUpListBox->AppInfoId().AllocL(); - - delete iPopUpListBox; - iPopUpListBox = NULL; - - return *iSelectedAppId; - } - else - { - delete iPopUpListBox; - iPopUpListBox = NULL; - - return TPtrC(); - } - } - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcservice/src/lcsyncoperation.cpp --- a/locationcentre/lcservice/src/lcsyncoperation.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,544 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Handles all the Synchronous operations with the Location -* Centre Client Session -* -*/ - - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcsyncoperation.h" -#include "lcclientsession.h" -#include "lcipcparams.h" -#include "lcdebug.h" - -// CONSTANT DEFINTIONS -const TInt KLcLengthofInteger = 4; - -// ----- Member funtions for LcSyncOperation --------------------------------- - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray* CLcServiceImpl::GetLocationApplicationsL -// --------------------------------------------------------------------------- -// -CLcLocationAppInfoArray* LcSyncOperation::GetLocationApplicationsL( - RLcClientSession& aSession, - const TLcLocationAppFilter& aLocationAppFilter ) - { - DEBUG("+ LcSyncOperation::GetLocationApplicationsL") - DEBUG("Filtering") - - // This function needs to obtain a list of all applications. This would - // first require to obtain the length of the buffer that needs to be - // passed from the client to the server to pack the array. - CBufFlat* lengthBuf = CBufFlat::NewL( KLcLengthofInteger ); - CleanupStack::PushL( lengthBuf ); - - // Set the size of this buffer to 4. This is required because we dont - // actually fill this buffer but expect the server to fill it. In that case - // if we dont set the expected length, the server would fail with - // KrrBadDescriptor. - lengthBuf->ResizeL( KLcLengthofInteger ); - - // Fill the IPC argument structure with the Length buffer, the server - // will write the data onto this buffer. - TIpcArgs args; - - // Pass the filter parameters to the Location Centre Server - TPckg< TLcLocationAppFilter > filterBuffer( aLocationAppFilter ); - - // By the IPC exchange parameter defintion, this must be the first - // argument to the IPC message. - args.Set( 0, &filterBuffer ); - - // Set the buffer pointer to the start of the Length buffer - TPtr8 bufPtr( const_cast< TUint8 *>( lengthBuf->Ptr( 0 ).Ptr()), - 0, - KLcLengthofInteger ); - - // This will be the second argument passed to this IPC message. - args.Set( 1, &bufPtr); - - // Send a synchrnous message to the server to obtain the length. On return the - // server is expected to pack the length of the Application information - // arrays in the LengthBuffer pointer. - User::LeaveIfError( aSession.SendReceive( ELcFilteredAppsBufferLength, args )); - - // If the server has not set the buffer then leave with KErrNotFound - if ( !bufPtr.Length()) - { - User::Leave( KErrNotFound ); - } - - // Obtain the length from the Length buffer; - RBufReadStream readStream( *lengthBuf, 0 ); - CleanupClosePushL( readStream ); - TUint length = readStream.ReadInt32L(); - CleanupStack::PopAndDestroy( 2, lengthBuf ); // readStream - - // If the server has returned a length of 0, then there are no applications - // registered with Location Centre. - if ( !length ) - { - User::Leave( KErrNotFound ); - } - - // Now that the length has been obtained. Allocate the descriptor - // of suitable length and send it across to the server. - CBufFlat* appInfoBuf = CBufFlat::NewL( length ); - CleanupStack::PushL( appInfoBuf ); - - // Set the actual size to 'length' obtained in the previous IPC. This is required - // because we dont actually fill this buffer but expect the server to fill it. - // In that case if we dont set the expected length, the server would fail with - // KrrBadDescriptor. - appInfoBuf->ResizeL( length ); - - // Fill the IPC argument structure with the Application info buffer, the server - // will write the data onto this buffer. - - // Pass the filter parameters to the Location Centre Server - // By the IPC exchange parameter defintion, this must be the first - // argument to the IPC message. - args.Set( 0, &filterBuffer ); - - // Set the buffer pointer to the start of the Length buffer - bufPtr.Set( const_cast< TUint8 *>( appInfoBuf->Ptr( 0 ).Ptr()), - 0, - length ); - - // This will be the second argument passed to this IPC message. - args.Set( 1, &bufPtr); - - // Send a synchrnous message to the server to obtain the length. On return the - // server is expected to pack the length of the Application information - // arrays in the LengthBuffer pointer. - TInt error = aSession.SendReceive( ELcFilteredApps, args ); - - // If the Retrieval function completes with KErrOverflow then there has been - // an update to the registry since the time we obtained the length. - if ( KErrOverflow == error ) - { - // Cleanup the current state and Re-issue the same request again - CleanupStack::PopAndDestroy( appInfoBuf ); - return GetLocationApplicationsL( aSession, aLocationAppFilter ); - } - else if( error ) - { - User::Leave( error ); - } - - // If the server has not set the buffer then leave with KErrNotFound - if ( !bufPtr.Length()) - { - User::Leave( KErrNotFound ); - } - - // Parse the Application information array to obtain the array - RBufReadStream appReadStream( *appInfoBuf, 0 ); - CleanupClosePushL( appReadStream ); - - CLcLocationAppInfoArray* array = ParseLocAppBufferL( appReadStream ); - - CleanupStack::PopAndDestroy( 2, appInfoBuf ); // appReadStream - - DEBUG("- LcSyncOperation::GetLocationApplicationsL") - - return array; - - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray* LcSyncOperation::GetLocationApplicationsL -// --------------------------------------------------------------------------- -// -CLcLocationAppInfoArray* LcSyncOperation::GetLocationApplicationsL( - RLcClientSession& aSession, - const RArray& aAppArray, - TBool aIncludeFlag ) - { - - // Obtain the array of Application Identifiers in a buffer - RLcIpcAppIdArray idArray; - CleanupStack::PushL( TCleanupItem( RLcIpcAppIdArray::ResetAndDestroyIdArray, &idArray )); - - // Append all the identifiers to the Array - for ( TInt i = 0; i < aAppArray.Count(); i++ ) - { - // Create a new element - HBufC* newElement = HBufC::NewLC( aAppArray[i].Length()); - - // Copy the contents to the buffer and append it to the array - newElement->Des().Copy( aAppArray[i] ); - User::LeaveIfError( idArray.Append( newElement )); - - // Now that the ownership is transferred, the content can be removed from - // the Cleanup stack - CleanupStack::Pop(); - } - - // Create the buffer for packing the Application Information - // structure and pack the contents into this buffer - CBufFlat* buffer = CBufFlat::NewL( idArray.BufferLength()); - CleanupStack::PushL( buffer ); - - RBufWriteStream writeStream( *buffer, 0 ); - CleanupClosePushL( writeStream ); - idArray.ExternalizeL( writeStream ); - CleanupStack::PopAndDestroy(); // writeStream - - // This needs to be popped inorder to Close the idArray; - CleanupStack::Pop( 2 ); // buffer, idArray - idArray.ResetAndDestroy(); - idArray.Close(); - - // Now reinsert the App buffer back into the Cleanupstack - CleanupStack::PushL( buffer ); - - // This function needs to obtain a list of all applications. This would - // first require to obtain the length of the buffer that needs to be - // passed from the client to the server to pack the array. - - TIpcArgs args; - - // First pack the application id array to the IPC args - // By the IPC exchange parameter defintion, this must be the first - // argument to the IPC message. - TPtr8 appArrayPtr( buffer->Ptr(0)); - - args.Set( 0, &appArrayPtr ); - - // The second argument is the Include flag - args.Set( 1, aIncludeFlag ); - - CBufFlat* lengthBuf = CBufFlat::NewL( KLcLengthofInteger ); - CleanupStack::PushL( lengthBuf ); - - // Set the size of this buffer to 4. This is required because we dont - // actually fill this buffer but expect the server to fill it. In that case - // if we dont set the expected length, the server would fail with - // KrrBadDescriptor. - lengthBuf->ResizeL( KLcLengthofInteger ); - - // Set the buffer pointer to the start of the Length buffer - TPtr8 bufPtr( const_cast< TUint8 *>( lengthBuf->Ptr( 0 ).Ptr()), - 0, - KLcLengthofInteger ); - - // This will be the third argument passed to this IPC message. - args.Set( 2, &bufPtr); - - // Send a synchrnous message to the server to obtain the length. On return the - // server is expected to pack the length of the Application information - // arrays in the LengthBuffer pointer. - User::LeaveIfError( aSession.SendReceive( ELcSpecifiedAppsBufferLength, args )); - - // If the server has not set the buffer then leave with KErrNotFound - if ( !bufPtr.Length()) - { - User::Leave( KErrNotFound ); - } - - // Obtain the length from the Length buffer; - RBufReadStream readStream( *lengthBuf, 0 ); - CleanupClosePushL( readStream ); - TUint length = readStream.ReadInt32L(); - CleanupStack::PopAndDestroy( 2, lengthBuf ); // readStream - - // If the server has returned a length of 0, then there are no applications - // registered with Location Centre. - if ( !length ) - { - User::Leave( KErrNotFound ); - } - - // Now that the length has been obtained. Allocate the descriptor - // of suitable length and send it across to the server. - CBufFlat* appInfoBuf = CBufFlat::NewL( length ); - CleanupStack::PushL( appInfoBuf ); - - // Set the actual size to 'length' obtained in the previous IPC. This is required - // because we dont actually fill this buffer but expect the server to fill it. - // In that case if we dont set the expected length, the server would fail with - // KrrBadDescriptor. - appInfoBuf->ResizeL( length ); - - // Fill the IPC argument structure with the Application info buffer, the server - // will write the data onto this buffer. - - // Pass the Application ids to the Location Centre Server - // By the IPC exchange parameter defintion, this must be the first - // argument to the IPC message. - args.Set( 0, &appArrayPtr ); - - // The second argument is the Include flag - args.Set( 1, aIncludeFlag ); - - // Set the buffer pointer to the start of the Length buffer - bufPtr.Set( const_cast< TUint8 *>( appInfoBuf->Ptr( 0 ).Ptr()), - 0, - length ); - - // This will be the third argument passed to this IPC message. - args.Set( 2, &bufPtr); - - // Send a synchrnous message to the server to obtain the length. On return the - // server is expected to pack the length of the Application information - // arrays in the LengthBuffer pointer. - TInt error = aSession.SendReceive( ELcSpecifiedApps, args ); - - // If the Retrieval function completes with KErrOverflow then there has been - // an update to the registry since the time we obtained the length. - if ( KErrOverflow == error ) - { - // Cleanup the current state and Re-issue the same request again - CleanupStack::PopAndDestroy( 2, buffer ); - return GetLocationApplicationsL( aSession, aAppArray, aIncludeFlag ); - } - else if( error ) - { - User::Leave( error ); - } - - - // If the server has not set the buffer then leave with KErrNotFound - if ( !bufPtr.Length()) - { - User::Leave( KErrNotFound ); - } - - // Parse the Application information array to obtain the array - RBufReadStream appReadStream( *appInfoBuf, 0 ); - CleanupClosePushL( appReadStream ); - - CLcLocationAppInfoArray* array = LcSyncOperation::ParseLocAppBufferL( appReadStream ); - - CleanupStack::PopAndDestroy( 3, buffer ); // idArray, appInfoBuf and buffer - - return array; - } - -// --------------------------------------------------------------------------- -// CLcBasicAppInfo* LcSyncOperation::GetLocationAppInfoL -// --------------------------------------------------------------------------- -// -CLcBasicAppInfo* LcSyncOperation::GetLocationAppInfoL( - RLcClientSession& aSession, - const TDesC& aIdentifier ) - { - // This function needs to obtain the Length of the buffer which needs to be - // passed to the Server to pack the Location Application Information. - CBufFlat* lengthBuf = CBufFlat::NewL( KLcLengthofInteger ); - CleanupStack::PushL( lengthBuf ); - - // Set the size of this buffer to 4. This is required because we dont - // actually fill this buffer but expect the server to fill it. In that case - // if we dont set the expected length, the server would fail with - // KrrBadDescriptor. - lengthBuf->ResizeL( KLcLengthofInteger ); - - // Fill the IPC argument structure with the Length buffer, the server - // will write the data onto this buffer. - TIpcArgs args; - - // By the IPC exchange parameter defintion, the first argument must the - // Identifier name - args.Set( 0, &aIdentifier ); - - // Set the buffer pointer to the start of the Length buffer - TPtr8 bufPtr( const_cast< TUint8 *>( lengthBuf->Ptr( 0 ).Ptr()), - 0, - KLcLengthofInteger ); - - // This will be the second argument passed to this IPC message. - args.Set( 1, &bufPtr); - - // Send a synchrnous message to the server to obtain the length. On return the - // server is expected to pack the length of the Application information - // arrays in the LengthBuffer pointer. - User::LeaveIfError( aSession.SendReceive( ELcAppInfoLength, args )); - - // If the server has not set the buffer then leave with KErrNotFound - if ( !bufPtr.Length()) - { - User::Leave( KErrNotFound ); - } - - // Obtain the length from the Length buffer; - RBufReadStream readStream( *lengthBuf, 0 ); - CleanupClosePushL( readStream ); - TUint length = readStream.ReadInt32L(); - CleanupStack::PopAndDestroy( 2, lengthBuf ); // readStream - - // If the server has returned a length of 0, then there are no applications - // registered with Location Centre. - if ( !length ) - { - User::Leave( KErrNotFound ); - } - - // Now that the length has been obtained. Allocate the descriptor - // of suitable length and send it across to the server. - CBufFlat* appInfoBuf = CBufFlat::NewL( length ); - CleanupStack::PushL( appInfoBuf ); - - // Set the actual size to 'length' obtained in the previous IPC. This is required - // because we dont actually fill this buffer but expect the server to fill it. - // In that case if we dont set the expected length, the server would fail with - // KrrBadDescriptor. - appInfoBuf->ResizeL( length ); - - // Fill the IPC argument structure with the Application info buffer, the server - // will write the data onto this buffer. - - // Pass the Application Identifier to the Location Centre Server - // By the IPC exchange parameter defintion, this must be the first - // argument to the IPC message. - args.Set( 0, &aIdentifier ); - - // Set the buffer pointer to the start of the Length buffer - bufPtr.Set( const_cast< TUint8 *>( appInfoBuf->Ptr( 0 ).Ptr()), - 0, - length ); - - // This will be the second argument passed to this IPC message. - args.Set( 1, &bufPtr); - - // Send a synchrnous message to the server to obtain the length. On return the - // server is expected to pack the length of the Application information - // in the buffer pointer. - TInt error = aSession.SendReceive( ELcAppInfo, args ); - - // If the Retrieval function completes with KErrOverflow then there has been - // an update to the registry since the time we obtained the length. - if ( KErrOverflow == error ) - { - // Cleanup the current state and Re-issue the same request again - CleanupStack::PopAndDestroy( appInfoBuf ); - return GetLocationAppInfoL( aSession, aIdentifier ); - } - else if( error ) - { - User::Leave( error ); - } - - // If the server has not set the buffer then leave with KErrNotFound - if ( !bufPtr.Length()) - { - User::Leave( KErrNotFound ); - } - - // Parse the Application information structure to obtain the Application - // information structure - RBufReadStream appReadStream( *appInfoBuf, 0 ); - CleanupClosePushL( appReadStream ); - - CLcBasicAppInfo* appInfo = CLcBasicAppInfo::NewLC(); - appInfo->InternalizeL( appReadStream ); - CleanupStack::Pop( appInfo ); - - CleanupStack::PopAndDestroy( 2, appInfoBuf ); // appReadStream - - return appInfo; - } - -// --------------------------------------------------------------------------- -// CLcLocationAppInfoArray* LcSyncOperation::ParseLocAppBufferL -// --------------------------------------------------------------------------- -// -CLcLocationAppInfoArray* LcSyncOperation::ParseLocAppBufferL( - RReadStream& aReadStream ) - { - DEBUG("+ LcSyncOperation::ParseLocAppBufferL") - - CLcLocationAppInfoArray* appArray = CLcLocationAppInfoArray::NewLC(); - - // Parse the contents into RLcIpcAppInfoArray type. - RLcIpcAppInfoArray ipcArray; - CleanupStack::PushL( TCleanupItem( RLcIpcAppInfoArray::ResetAndDestroyAppArray, &ipcArray )); - - // Internalize the array onto the ipcArray structure. - ipcArray.InternalizeL( aReadStream ); - - // Pack the Application info array - for ( TInt i = 0; i < ipcArray.Count(); i++ ) - { - - // Form the Application information object corresponding to - // this ipcAppInfo. - - // Create a new Application Information object. This object will - // be populated and the appended to the appArray. - CLcLocationAppInfo* appInfo = CLcLocationAppInfo::NewLC(); - - // Set the Unique identifer for the application - appInfo->SetIdL( ipcArray[i]->Id()); - - // Set the display name of the application - appInfo->SetNameL( ipcArray[i]->Name()); - - // Set the Launch Mode for the application - // There is no need to check the launch mode and compare it with - // the values of TLcLaunchMode. Internally its ensured that the - // server would only set the parameter based in TLcLaunchMode. - appInfo->SetLaunchMode( static_cast( ipcArray[i]->LaunchMode())); - - // Set the Application characteristics - appInfo->SetApplicationCharacteristics( - ipcArray[i]->ApplicationCharacteristics()); - - // Set the system characteristics - appInfo->SetSystemCharacteristics( ipcArray[i]->SystemCharacteristics()); - - // Load the application Icon Related Data - if ( ipcArray[i]->IconFile().Compare( KNullDesC )) - { - // The Icon file name is specified. So Load the icons from the - // Icon file. So we can set these values for the Icon file. - appInfo->SetIconL( ipcArray[i]->IconFileType(), - ipcArray[i]->IconFile(), - ipcArray[i]->FrameNo()); - } - else if ( ipcArray[i]->ApplicationType() == ELcNativeApplication ) - { - // Only native applications are handled here. - // Here we have to pass the Application UID as the Icon data since - // the Icon will be loaded from the App shell - appInfo->SetIconL( ipcArray[i]->IconFileType(), - ipcArray[i]->ApplicationData()); - } - - appArray->AppendL( appInfo ); - CleanupStack::Pop( appInfo ); - } - CleanupStack::PopAndDestroy(); // ipcArray - - // If there are no elements in the array then that means that there - // are no applications registered with LC. So leave with KErrNotFound - if ( !appArray->Count()) - { - User::Leave( KErrNotFound ); - } - - CleanupStack::Pop( appArray ); - - DEBUG("- LcSyncOperation::ParseLocAppBufferL") - - return appArray; - } -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/bwins/lcutilsu.def --- a/locationcentre/lcutils/bwins/lcutilsu.def Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -EXPORTS - ?BufferLength@CLcAppInfo@@QAEHXZ @ 1 NONAME ; int CLcAppInfo::BufferLength(void) - ?BufferLength@CLcBasicAppInfo@@QAEHXZ @ 2 NONAME ; int CLcBasicAppInfo::BufferLength(void) - ?BufferLength@RLcIpcAppIdArray@@QAEHXZ @ 3 NONAME ; int RLcIpcAppIdArray::BufferLength(void) - ?BufferLength@RLcIpcAppInfoArray@@QAEHXZ @ 4 NONAME ; int RLcIpcAppInfoArray::BufferLength(void) - ?ExternalizeL@CLcBasicAppInfo@@QAEXAAVRWriteStream@@@Z @ 5 NONAME ; void CLcBasicAppInfo::ExternalizeL(class RWriteStream &) - ?ExternalizeL@RLcIpcAppIdArray@@QAEXAAVRWriteStream@@@Z @ 6 NONAME ; void RLcIpcAppIdArray::ExternalizeL(class RWriteStream &) - ?ExternalizeL@RLcIpcAppInfoArray@@QAEXAAVRWriteStream@@@Z @ 7 NONAME ; void RLcIpcAppInfoArray::ExternalizeL(class RWriteStream &) - ?InternalizeL@CLcBasicAppInfo@@QAEXAAVRReadStream@@@Z @ 8 NONAME ; void CLcBasicAppInfo::InternalizeL(class RReadStream &) - ?InternalizeL@RLcIpcAppIdArray@@QAEXAAVRReadStream@@@Z @ 9 NONAME ; void RLcIpcAppIdArray::InternalizeL(class RReadStream &) - ?InternalizeL@RLcIpcAppInfoArray@@QAEXAAVRReadStream@@@Z @ 10 NONAME ; void RLcIpcAppInfoArray::InternalizeL(class RReadStream &) - ?LaunchLocationApplicationL@CLcAppLauncher@@QAEXHABVTDesC16@@H0PAVMLcAppExitObserver@@@Z @ 11 NONAME ; void CLcAppLauncher::LaunchLocationApplicationL(int, class TDesC16 const &, int, class TDesC16 const &, class MLcAppExitObserver *) - ?LoadApplicationIconL@LcIconLoader@@SAPAVCGulIcon@@VTUid@@@Z @ 12 NONAME ; class CGulIcon * LcIconLoader::LoadApplicationIconL(class TUid) - ?LoadDefaultIconL@LcIconLoader@@SAPAVCGulIcon@@XZ @ 13 NONAME ; class CGulIcon * LcIconLoader::LoadDefaultIconL(void) - ?LoadMifFileIconL@LcIconLoader@@SAPAVCGulIcon@@ABVTDesC16@@H@Z @ 14 NONAME ; class CGulIcon * LcIconLoader::LoadMifFileIconL(class TDesC16 const &, int) - ?NewL@CLcAppLauncher@@SAPAV1@XZ @ 15 NONAME ; class CLcAppLauncher * CLcAppLauncher::NewL(void) - ?NewLC@CLcAppLauncher@@SAPAV1@XZ @ 16 NONAME ; class CLcAppLauncher * CLcAppLauncher::NewLC(void) - ?ResetAndDestroyAppArray@RLcIpcAppInfoArray@@SAXPAX@Z @ 17 NONAME ; void RLcIpcAppInfoArray::ResetAndDestroyAppArray(void *) - ?ResetAndDestroyIdArray@RLcIpcAppIdArray@@SAXPAX@Z @ 18 NONAME ; void RLcIpcAppIdArray::ResetAndDestroyIdArray(void *) - ?Debug@@YAXV?$TRefByValue@$$CBVTDesC16@@@@ZZ @ 19 NONAME ; void Debug(class TRefByValue, ...) - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/eabi/lcutilsu.def --- a/locationcentre/lcutils/eabi/lcutilsu.def Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -EXPORTS - _ZN10CLcAppInfo12BufferLengthEv @ 1 NONAME - _ZN12LcIconLoader16LoadDefaultIconLEv @ 2 NONAME - _ZN12LcIconLoader16LoadMifFileIconLERK7TDesC16i @ 3 NONAME - _ZN12LcIconLoader20LoadApplicationIconLE4TUid @ 4 NONAME - _ZN14CLcAppLauncher26LaunchLocationApplicationLEiRK7TDesC16iS2_P18MLcAppExitObserver @ 5 NONAME - _ZN14CLcAppLauncher4NewLEv @ 6 NONAME - _ZN14CLcAppLauncher5NewLCEv @ 7 NONAME - _ZN15CLcBasicAppInfo12BufferLengthEv @ 8 NONAME - _ZN15CLcBasicAppInfo12ExternalizeLER12RWriteStream @ 9 NONAME - _ZN15CLcBasicAppInfo12InternalizeLER11RReadStream @ 10 NONAME - _ZN16RLcIpcAppIdArray12BufferLengthEv @ 11 NONAME - _ZN16RLcIpcAppIdArray12ExternalizeLER12RWriteStream @ 12 NONAME - _ZN16RLcIpcAppIdArray12InternalizeLER11RReadStream @ 13 NONAME - _ZN16RLcIpcAppIdArray22ResetAndDestroyIdArrayEPv @ 14 NONAME - _ZN18RLcIpcAppInfoArray12BufferLengthEv @ 15 NONAME - _ZN18RLcIpcAppInfoArray12ExternalizeLER12RWriteStream @ 16 NONAME - _ZN18RLcIpcAppInfoArray12InternalizeLER11RReadStream @ 17 NONAME - _ZN18RLcIpcAppInfoArray23ResetAndDestroyAppArrayEPv @ 18 NONAME - _ZTI14CLcAppLauncher @ 19 NONAME ; ## - _ZTI19CLcLaunchAppService @ 20 NONAME ; ## - _ZTI19RLcLaunchAppService @ 21 NONAME ; ## - _ZTV14CLcAppLauncher @ 22 NONAME ; ## - _ZTV19CLcLaunchAppService @ 23 NONAME ; ## - _ZTV19RLcLaunchAppService @ 24 NONAME ; ## - _Z5Debug11TRefByValueIK7TDesC16Ez @ 25 NONAME - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/group/bld.inf --- a/locationcentre/lcutils/group/bld.inf Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Build information file for project Location Centre Utils. -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -// Location Centre Utility Headers -../inc/lcapplauncher.h |../../../../inc/lcapplauncher.h -../inc/lcipcparams.h |../../../../inc/lcipcparams.h -../inc/lcipcparams.inl |../../../../inc/lcipcparams.inl -../inc/lciconloader.h |../../../../inc/lciconloader.h -../inc/lcdebug.h |../../../../inc/lcdebug.h - -PRJ_MMPFILES - -// Location Centre Utils Project defintion file. -lcutils.mmp - -PRJ_TESTMMPFILES - -PRJ_EXTENSIONS -START EXTENSION s60/mifconv -OPTION TARGETFILE lcicons.mif -OPTION HEADERFILE lcicons.mbg -OPTION SOURCES -c8,8 qgn_menu_am_sis.svg -END -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/group/lcutils.mmp --- a/locationcentre/lcutils/group/lcutils.mmp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Project definition file for project Location Centre Utils. -* -*/ - - -// DEFINES -#define KLocationCentreUtilsUID3 0x10009C03 - -// SYSTEM INCLUDE -#include -#include - -TARGET lcutils.dll -TARGETTYPE DLL -UID 0x0 KLocationCentreUtilsUID3 - -VERSION 1.0 - -CAPABILITY CAP_GENERAL_DLL -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE lcapplauncher.cpp -SOURCE lcipcparams.cpp -SOURCE lciconloader.cpp -SOURCE lcdebug.cpp - -USERINCLUDE ../inc -USERINCLUDE ../../inc -USERINCLUDE ../../../inc -USERINCLUDE ../../../../inc - -APP_LAYER_SYSTEMINCLUDE /epoc32/include/ecom - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY bafl.lib -LIBRARY eikcore.lib -LIBRARY apgrfx.lib -LIBRARY cone.lib -LIBRARY apparc.lib -LIBRARY avkon.lib -LIBRARY ws32.lib -LIBRARY commonui.lib -LIBRARY BrowserLauncher.lib -LIBRARY egul.lib -LIBRARY fbscli.lib -LIBRARY estor.lib -LIBRARY aknskins.lib -LIBRARY aknskinsrv.lib -LIBRARY aknswallpaperutils.lib -LIBRARY imageconversion.lib -LIBRARY SVGEngine.lib -LIBRARY gdi.lib -LIBRARY aknicon.lib -LIBRARY apmime.lib -LIBRARY CdlEngine.lib -LIBRARY flogger.lib -LIBRARY ecom.lib - -DEFFILE lcutils.def - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/inc/lcapplauncher.h --- a/locationcentre/lcutils/inc/lcapplauncher.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,320 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Utility class which provides the Application, Service and File -* launching services to Location Centre. -* -*/ - - -#ifndef LCAPPLAUNCHER_H -#define LCAPPLAUNCHER_H - -// SYSTEM INCLUDES -#include -#include - -// USER INCLUDES - -// FORWARD DECLARATIONS -class CEikonEnv; -class MLcAppExitObserver; -class CSchemeHandler; -class CDocumentHandler; - -/** - * Lc Launch Application Service class. This class provides the return path - * for the Application termination call issued from an application launched - * in the chanied mode - */ -class RLcLaunchAppService : public RAknAppServiceBase - { -public: // Inherited from Base classes - - /** - * Imherited from RAknAppServiceBase - */ - TUid ServiceUid() const; - }; - -/** - * Chained Application launcher for Location Centre. This class almost acts - * like a duplication for CAknLaunchAppService class. This is required because - * CAknLaunchAppService doesnt take any command line arguments. - */ -class CLcLaunchAppService : public CBase - { -public: - /** - * Static two phases constructor - */ - static CLcLaunchAppService* NewL(); - - /** - * C++ Destructor - */ - ~CLcLaunchAppService(); - - /** - * Launches an Application in the chained mode. - * - * @since S60 v5.0 - * @param aApplicationUid UID of the application that needs to be - * launched. - * @param aExitObserver Application Exit Observer - * @param aCmdLineArg Command line arguments which needs to be passed - * when the application is launched. - */ - void LaunchAppL( const TUid& aAppUid, - MAknServerAppExitObserver& aObserver, - const TDesC& aExitObserver ); - - -private: - /** - * Generates a Server name. This function has been duplicated - * from CAknLaunchAppService - * - * @since S60 v5.0 - * @param[out] aServerName Application Server name - * @param[in] aAppServerUid Application server UID - * @param[in] aServerDifferentiator Server differentiator - */ - void ServerName( TName& aServerName, TUid aAppServerUid, TUint aServerDifferentiator ); - - /** - * Generates a Server name and a differentiator. This function has been duplicated - * from CAknLaunchAppService - * - * @since S60 v5.0 - * @param[in] aServerName Application Server name - * @param[in] aAppServerUid Application server UID - * return Server differentiator - */ - TUint GenerateServerDifferentiatorAndName( TName& aServerName, TUid aAppServerUid ); - -private: // Data members - /** - * App Server exit monitor - * Owns - */ - CApaServerAppExitMonitor* iMonitor; - - /** - * Service class for establishing communication with the Application server - */ - RLcLaunchAppService iService; - }; - -/** - * Utility class which provides Application, Content and Services - * launch functionality to Location Centre. - * - * @lib lcutils.lib - * @since S60 v5.0 - */ -class CLcAppLauncher : public CBase, - public MAknServerAppExitObserver - { -public: - /** - * Constructs a new instance of Location Centre Application launcher. - * - * @return The new instance of Location Centre Application launcher object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcAppLauncher* NewL(); - - /** - * Constructs a new instance of Location Centre Application launcher. - * Leaves the created instance on the cleanup stack. - * - * @return The new instance of Location Centre Application launcher object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CLcAppLauncher* NewLC(); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Centre - * interface. - */ - virtual ~CLcAppLauncher(); - - /** - * Launchers an S60 Application or a Content/Service. - * - * This function acts a generic interface which the Location Centre - * Utility class provides to the Location Centre Client Library. Using - * this class Location Centre Client library can request the launch - * of an S60 Application, a Java based Application, Location based - * Content / Service. - * - * @since v5.0 - * @param aAppType Application Type - * @param aIdentifier Application Identifier - * @param aStandAlone Boolen value indicating whether the Application - * is Launched in the Stand-alone mode or in the - * Chained mode. - * @param aCmdLineArg Command line arguments which needs to be passed - * when the application is launched. - * @param aExitObserver The observer to notify the termination of the - * Launched application. - */ - IMPORT_C void LaunchLocationApplicationL( - TInt aAppType, - const TDesC& aIdentifer, - TBool aStandAlone, - const TDesC& aCmdLineArg, - MLcAppExitObserver* aExitObserver ); - -private: - /** - * Launches an S60 Application as a stand-alone application. - * - * This function launches an S60 application using the S60 Application - * architecture. Each S60 application is identified by a Unique - * identifier ( the UID of the application ). This function launches the - * application corresponding to the UID passed to it as a standalone - * application. - * - * @since S60 v5.0 - * @param aApplicationUid UID of the application that needs to be - * launched. - * @param aCmdLineArg Command line arguments which needs to be passed - * when the application is launched. - */ - void LaunchAppL( TUid aApplicationUid, - const TDesC& aCmdLineArg ); - - - /** - * Launches an S60 Application as a chained application. - * - * This function launches an S60 application using the S60 Application - * architecture. Each S60 application is identified by a Unique - * identifier ( the UID of the application ). This function launches the - * application corresponding to the UID passed to it as a chained - * application. In addition to that the caller function can also register - * an observer to notify the termination of the launched application. - * - * @since S60 v5.0 - * @param aApplicationUid UID of the application that needs to be - * launched. - * @param aCmdLineArg Command line arguments which needs to be passed - * when the application is launched. - * @param aExitObserver Application Exit Observer - */ - void LaunchAppAsChainedL( TUid aApplicationUid, - const TDesC& aCmdLineArg, - MLcAppExitObserver* aExitObserver ); - - /** - * Launches a Web URL using the S60 Web browser. - * - * This function launched a Web URL as specified by the argument in - * the S60 Web browser. This function invokes the existing instance - * of the browser with the URL if the browser is already running. In case - * the browser is not running, it launches the browser in the stand alone - * mode with the specified URL. Incase, the Chained mode is requested, then - * the browser is launched in the Embedded mode. - * - * @since S60 v5.0 - * @param aUrl The URL which needs to be launched in the browser. - * @param aStandAlone Boolen value indicating whether the Application - * is Launched in the Stand-alone mode or in the - * Chained mode. - * @param aObserver Observer to notify the termination of the - * Web browser. - */ - void LaunchWebBroserL( const TDesC& aUrl, - TBool aStandAlone, - MLcAppExitObserver* aObserver ); - - /** - * Launches content present in a file using an appropriate Application. - * - * This function launches the content using an appropriate S60 application. It - * uses the S60 Document handler to load the corresponding application - * with the specified file name. - * - * @since S60 v5.0 - * @param aFileName The name with full path of the file containing the content. - * @param aStandAlone Boolen value indicating whether the Application - * is Launched in the Stand-alone mode or in the - * Chained mode. - * @param aObserver The observer to notify the termination of the launched - * application. - */ - void LaunchContentL( const TDesC& aFileName, - TBool aStandAlone, - MLcAppExitObserver* aObserver ); - -public: // Inherited from Base classes - /** - * Inherited from MAknServerAppExitObserver - * Notifies the termination of the Chained Application. - * - * @param aReason Reason for the application termination. - */ - void HandleServerAppExit( TInt aReason ); - -private: - /** - * Default C++ Constructor. - */ - CLcAppLauncher(); - - /** - * Second phase of the two phase constructor. - */ - void ConstructL(); - -private: - /** - * Pointer to the Eikon Environment. - */ - CEikonEnv* iEnv; - - /** - * Observer to notify the termination of the Location Application. - */ - MLcAppExitObserver* iExitObserver; - - /** - * Launcher class used to launch the S60 browser as a chained - * application. - * Owns. - */ - CSchemeHandler* iBrowserLauncher; - - /** - * Document handler used for launching documents. - * Owns - */ - CDocumentHandler* iDocHandler; - - /** - * Application Service class. This class is used to launch an application - * as an embedded application - */ - CLcLaunchAppService* iAppService; - - /** - * Flag to check whether an Embedded launch is outstanding - */ - TBool isEmbeddedLaunchOutstanding; - - }; - -#endif // LCAPPLAUNCHER_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/inc/lcdebug.h --- a/locationcentre/lcutils/inc/lcdebug.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Utility class for Debug traces -* -*/ - - -#ifndef LCDEBUG_H -#define LCDEBUG_H - -// INCLUDES -#include - -// #define _LCDEBUG - -// MACROS -#ifdef _LCDEBUG - -#define DEBUG( TEXT) Debug( _L( #TEXT )); -#define DEBUG1( TEXT, ARG1 ) Debug( _L( #TEXT ), ( ARG1 )); -#define DEBUG2( TEXT, ARG1, ARG2 ) Debug( _L( #TEXT ), ( ARG1 ), ( ARG2 )); -#define DEBUG3( TEXT, ARG1, ARG2, ARG3 ) Debug( _L( #TEXT ), ( ARG1 ), ( ARG2 ), ( ARG3 )); - -#else - -#define DEBUG( TEXT ) ; -#define DEBUG1( TEXT, ARG1 ) ; -#define DEBUG2( TEXT, ARG1, ARG2 ) ; -#define DEBUG3( TEXT, ARG1, ARG2, ARG3 ) ; - -#endif // _LCDEBUG - -IMPORT_C void Debug( TRefByValue aText, ...); - -#endif // LCDEBUG_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/inc/lciconloader.h --- a/locationcentre/lcutils/inc/lciconloader.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Utility class for loading Application Icons -* -*/ - - -#ifndef LCICONLOADER_H -#define LCICONLOADER_H - -// SYSTEM INCLUDES -#include - -// FORWARD DECLARATIONS -class CGulIcon; - -/** - * Utility class for loading icons. - * - * This class encapsulated the icon loading functionality for Location Centre - * Application. Incase, there is no icon corresponding to the Location - * based Application or Content/Service a default icon wil be loaded. - * - * @lib lcservice.lib - * @since S60 v5.0 - */ -class LcIconLoader - { -public: - /** - * Loads an Icon for a Location based Application. If there is no icon - * corresponding to the Application, then a default Icon is loaded. - * - * @param[in] aAppUid UID for the application whose Icon is loaded. - */ - IMPORT_C static CGulIcon* LoadApplicationIconL( const TUid aAppUid ); - - /** - * Loads the Icon for a Location based Application from an MIF Icon file. - * - * If there is no icon loadable fron the requested file then a default - * icon is loaded. - * - * @param[in] aAppIconFile Icon file name. - * @param[in] aFrameNo The Icon id of the icon when the Icon file - * is a MIF File. - * @return The new instance of Location Centre listbox object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CGulIcon* LoadMifFileIconL( - const TDesC& aAppIconFile, - TInt aFrameNo ); - - /** - * Loads the default icon for a Location based Application or Content/ - * Service. - * - * @return The new instance of Location Centre listbox object. - * @leave System wide error code if the object creation fails. - */ - IMPORT_C static CGulIcon* LoadDefaultIconL(); - -private: - /** - * Loads an Icon for a Location based Application based on its UID. - * If there is no icon corresponding to the Application UID, - * then a default Icon is loaded. - * - * @param[in] aAppUid UID for the application whose Icon is loaded. - */ - static CGulIcon* LoadIconfromUIDL( const TUid aAppUid ); - - /** - * Loads the Icon for a Location based Application from an Icon file. - * - * If there is no icon loadable fron the requested file then a default - * icon is loaded. - * - * @param[in] aAppIconFile Icon file name. - * @param[in] aFrameNo The Icon id of the icon when the Icon file - * is a MIF File. - * @return The new instance of Location Centre listbox object. - * @leave System wide error code if the object creation fails. - */ - static CGulIcon* LoadIconFromMifFileL( - const TDesC& aAppIconFile, - TInt aFrameNo ); - }; - -#endif // LCICONLOADER_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/inc/lcipcparams.h --- a/locationcentre/lcutils/inc/lcipcparams.h Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,578 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Parameters for the IPC message handling between the -* Location Centre API and Location Centre Server. -* -*/ - - -#ifndef LCIPCPARAMS_H -#define LCIPCPARAMS_H - -// SYSTEM INCLUDES -#include -#include -#include -#include - -// USER INCLUDES - -// FORWARD DECLARATIONS -class CLcAppInfo; - -// ENUMERATION DECLARATIONS -/** - * Enumeration defining the kind of application that this structure holds. - */ -enum TLcAppType - { - /** - * The structure holds an S60 Java based Application. - */ - ELcNativeApplication, - - /** - * The structure holds a Web URL. - */ - ELcWebUrl, - - /** - * The structure holds a document. - */ - ELcDocument - }; - -// CLASS DECLARATIONS -/** - * Array of identifiers which is passed to Location Centre server for - * filtering. - * - * Derived from RPointerArray. So all functions of the Arrar are available - * through this interface. - */ -class RLcIpcAppIdArray : public RPointerArray< HBufC > - { -public: - /** - * Externalizes the contents of this Array into a buffer. - * - * @since S60 v5.0 - * @param aWriteStream Buffer onto which the contents of this array - * would be externalized. - */ - IMPORT_C void ExternalizeL( RWriteStream& aWriteStream ); - - /** - * Internalized the contents of the buffer into this array. - * - * @since S60 v5.0 - * @param aReadStream Buffer from which the contents of this - * array would be populated. - */ - IMPORT_C void InternalizeL( RReadStream& aReadStream ); - - /** - * Returns the Length of the buffer needed to pack this array of - * Location based Application's identifiers. - * - * @since S60 v5.0 - * @return TInt, Length of the Buffer which is needed to pack this - * array. - */ - IMPORT_C TInt BufferLength(); - - /** - * Resets and destroys the Application identifer array. - * There is no need to call close on the array after this. - * - * @param aIdArray Generic pointer to the array - */ - IMPORT_C static void ResetAndDestroyIdArray( TAny* aIdArray ); - - }; - -/** - * Application information array. - * - * Derived from RPointerArray. So all functions of the Arrar are available - * through this interface. - */ -class RLcIpcAppInfoArray : public RPointerArray< CLcAppInfo > - { -public: - /** - * Externalizes the contents of this Array into a buffer. - * - * @since S60 v5.0 - * @param aWriteStream Buffer onto which the contents of this array - * would be externalized. - */ - IMPORT_C void ExternalizeL( RWriteStream& aWriteStream ); - - /** - * Internalized the contents of the buffer into this array. - * - * @since S60 v5.0 - * @param aReadStream Buffer from which the contents of this - * array would be populated. - */ - IMPORT_C void InternalizeL( RReadStream& aReadStream ); - - /** - * Returns the Length of the buffer needed to pack this array of - * Location based Applications. - * - * @since S60 v5.0 - * @return TInt, Length of the Buffer which is needed to pack this - * array. - */ - IMPORT_C TInt BufferLength(); - - /** - * Resets and destroys the Application information array. - * There is no need to call close on the array after this. - * - * @param aIdArray Generic pointer to the array - */ - IMPORT_C static void ResetAndDestroyAppArray( TAny* aIdArray ); - }; - -/** - * Basic Information for a Location based Applicatiuon. This class provides sufficient - * information for launching a Location based Application - */ -class CLcBasicAppInfo : public CBase - { -public: - /** - * Static two phase constructor - */ - inline static CLcBasicAppInfo* NewL(); - - /** - * Static two phased constructor. Leaves the object on the Cleanup stack. - */ - inline static CLcBasicAppInfo* NewLC(); - - /** - * C++ Destructor - */ - inline virtual ~CLcBasicAppInfo(); - - /** - * Retrieves the type of application stored in this structure. - * - * @since S60 v5.0 - * @return, The Type of Application as defined by @p TLcAppType which is stored - * in this structure. - */ - inline TUint32 ApplicationType() const; - - /** - * Sets the Application type. - * @since S60 v5.0 - * @param aAppType The Type of Application as defined by @p TLcAppType which - * is stored in this structure. - */ - inline void SetApplicationType( TUint32 aAppType ); - - /** - * Mode in which the Location Application would be launched. - * This is the mode with which the application has registered with - * Location Centre. - * - * @since S60 v5.0 - * @return Mode in which the Location Application would be launched. - */ - inline TUint32 LaunchMode() const; - - /** - * Sets the Mode in which the Location Application would be launched. - * - * @since S60 v5.0 - * @param[in] aLaunchMode Mode in which the Location Application would be - * launched. - */ - inline void SetLaunchMode( TUint32 aLaunchMode ); - - /** - * Retrieves the Generic Application data stored in this structure. - * - * @since S60 v5.0 - * @return, The Genereic data content for the Application. - */ - inline TPtrC ApplicationData() const; - - /** - * Sets the Generic Application data. - * - * @since S60 v5.0 - * @param aAppData The Genereic data content for the Application. - */ - inline void SetApplicationDataL( const TDesC& aAppData ); - - /** - * Retrieves the command line parameters stored in this structure. - * - * @since S60 v5.0 - * @return, The command line parameters for the Application. - */ - inline TPtrC CommandLineParamters() const; - - /** - * Sets the Command line parameters. - * - * @since S60 v5.0 - * @param aCmdLineParams The Command line parameters for the Application. - */ - inline void SetCommandLineParametersL( const TDesC& aCmdLineParams ); - - /** - * Externalizes the contents of this Array into a buffer. - * - * @since S60 v5.0 - * @param aWriteStream Buffer onto which the contents of this array - * would be externalized. - */ - IMPORT_C void ExternalizeL( RWriteStream& aWriteStream ); - - /** - * Internalized the contents of the buffer into this array. - * - * @since S60 v5.0 - * @param aReadStream Buffer from which the contents of this - * array would be populated. - */ - IMPORT_C void InternalizeL( RReadStream& aReadStream ); - - /** - * Returns the Length of the buffer needed to pack this structure. - * - * @since S60 v5.0 - * @return TInt, Length of the Buffer which is needed to pack this - * structure. - */ - IMPORT_C TInt BufferLength(); - -protected: - /** - * Default C++ constructor. - */ - CLcBasicAppInfo(); - -protected: - /** - * Type of the application that is present in this structure. - */ - TUint32 iAppType; - - /** - * Mode in which the Location Application would be launched. If the mode - * defined is EDefaultMode, then the default mode specified by the - * application when registering with Location Centre is used. - */ - TUint32 iLaunchMode; - - /** - * Generic data content for all Location based Application. The nature of this - * data-type depends on the kind of Application as specified by the earlier parameter. - * If the iAppType is - * ELcApplication - This string contains the SID of the application. - * ELcWebUrl - The string contains the URI of the page that needs to be launched. - * ELcDocument - The string contains the full path of the file which needs to be - * opened. - */ - HBufC* iAppData; - - /** - * Command line parameters. - */ - HBufC* iCmdLineParams; - }; - -/** - * Information of a Location based Application currently registered with - * Location Centre. - */ -class CLcAppInfo : public CLcBasicAppInfo - { -public: - /** - * Enumeration defining the Icon type present in this App Info - */ - enum TLcIconFileType - { - EIconfromApp, - EMifFile - }; - -public: - /** - * Constructs a new instance of Location Application information object. - * - * @return The new instance of Location Application information object. - */ - inline static CLcAppInfo* NewL(); - - /** - * Constructs a new instance of Location Application information object. - * - * @return The new instance of Location Application information object. - */ - inline static CLcAppInfo* NewLC(); - - /** - * C++ Destructor. - * Frees all the resources associated with this Location Application - * information object. - */ - inline virtual ~CLcAppInfo(); - - /** - * Gets the Unique identifier identifying the Location Application. - * This identifier is defined by the Location Application on registration - * with Location Centre. - * This is the identifier that must be used by the client of this API for - * any operation on the particular Location Application. - * A reference to the object's internal string is returned. - * - * @since S60 v5.0 - * @return Unique identifier identifying the Location Application. If the - * value of the identifier has not been set then a NULL string - * is returned. - */ - inline TPtrC Id() const; - - /** - * Set the Unique identifier identifying the Location Application. The - * identifer is copied. - * - * @since S60 v5.0 - * @param[in] aId Unique identifier identifying the Location Application. - */ - inline void SetIdL( const TDesC& aId ); - - /** - * Gets the Logical name for the Location Application. - * The name is defined by the Location Centre on registration with - * Location Centre. This is the name which would be displayed by - * Location Centre for this application. - * A reference to the object's internal string is returned. - * - * @since S60 v5.0 - * @return Logical name for the Location Application. If the name - * has not been set for the Location Application, then a NULL - * string is returned. - */ - inline TPtrC Name() const; - - /** - * Set the Logical name for the Location Application. The name is - * copied. - * - * @since S60 v5.0 - * @param[in] aName Logical name for the Location Application. - * The logical string is copied. - */ - inline void SetNameL( const TDesC& aName ); - - /** - * Gets the Icon file name for the Location based Application. - * - * @since S60 v5.0 - * @return The Icon file name for the Location based Application. - */ - inline TPtrC IconFile() const; - - /** - * Sets the name of the Icon file for this Location based Application. - * - * @since S60 v5.0 - * @param[in] aIconFile Full path for the Icon file. - */ - inline void SetIconFileL( const TDesC& aIconFile ); - - /** - * Gets the Icon File type for the Location Application. - * The Location Application can optionally have an icon defined - * in the Registration file. - * - * @since S60 v5.0 - * @return The Icon file type for the Location Application. - */ - inline TLcIconFileType IconFileType() const; - - /** - * Sets the Icon File type for the Location Application. - * The Location Application can optionally have an icon defined - * in the Registration file. - * - * @since S60 v5.0 - * @param[in] aIconFileType The type of Icon file for this Location - * Application - */ - inline void SetIconFileType( const TLcIconFileType aIconFileType ); - - - /** - * Gets the frame number for the Icon if the Icon file is a MIF file. - * - * @since S60 v5.0 - * @return Frame Number - */ - inline TUint32 FrameNo() const; - - /** - * Sets the frame number for the Icon if the Icon file is a MIF file. - * - * @since S60 v5.0 - * @param[in] aFrameNo Frame number for the icon. - */ - inline void SetFrameNo( TUint32 aFrameNo ); - - /** - * Returns the System characteristics for the Location Application - * - * @since S60 v5.0 - * @return - System Characteristics for the Location - * Application. All the system characteristics for the - * Location Application would be combined to form an integer - * bit-mask and this function returns the bit-mask. The - * individual System characteristics are defined by - * @ref TLcSystemCharacteristics enumeration. - */ - inline TUint32 SystemCharacteristics() const; - - /** - * Sets the system characteristics for the Location Application. - * - * @since S60 v5.0 - * @param[in] aSysCharacteristics System Characteristics for the Location - * Application. - */ - inline void SetSystemCharacteristics( TUint32 aSysCharacteristics ); - - /** - * Returns the Application characteristics for the Location Application - * - * @since S60 v5.0 - * @return - Application Characteristics for the Location - * Application. All the application characteristics for the - * would be combined to form an integer bit-mask and this - * function returns the current bit-mask. The individual - * Application characteristics are defined by - * @ref TLcApplicationCharacteristics enumeration. - */ - inline TUint32 ApplicationCharacteristics() const; - - /** - * Sets the Application characteristics for the Location Application. - * - * @since S60 v5.0 - * @param[in] aAppCharacteristics Application Characteristics for the Location - * Application. - */ - inline void SetApplicationCharacteristics( TUint32 aAppCharacteristics ); - - - /** - * Externalizes the contents of this Array into a buffer. - * - * @since S60 v5.0 - * @param aWriteStream Buffer onto which the contents of this array - * would be externalized. - */ - void ExternalizeL( RWriteStream& aWriteStream ); - - /** - * Internalized the contents of the buffer into this array. - * - * @since S60 v5.0 - * @param aReadStream Buffer from which the contents of this - * array would be populated. - */ - void InternalizeL( RReadStream& aReadStream ); - - /** - * Returns the Length of the buffer needed to pack this structure. - * - * @since S60 v5.0 - * @return TInt, Length of the Buffer which is needed to pack this - * structure. - */ - IMPORT_C TInt BufferLength(); - -protected: - /** - * Default C++ Constructor. - */ - inline CLcAppInfo(); - -protected: - /** - * System wide unique identifier identifying the Location Application. This - * identifier is defined by the Location Application on registration with - * Location Centre. - * - * Owns - */ - HBufC* iId; - - /** - * Application Name. - * Logical name for the Location Application. The name is defined by the - * Location Centre on registration with Location Centre. This is the name - * which would be displayed by Location Centre for this application. - * - * Owns - */ - HBufC* iApplicationName; - - /** - * Icon File name. - * The name of the Icon file if its specified in the Location Centre - * Registration file for the Location Application. - * - * Owns - */ - HBufC* iIconFile; - - /** - * Icon file type. - * The Location based Application can optionally specify an Icon file - * which would be displayed for it in Location Centre. - */ - TLcIconFileType iIconFileType; - - /** - * Frame number incase the Icon file is a MIF file - */ - TUint32 iFrameNo; - - /** - * Bit-mask containing the System characteristics for the corresponding - * Location application - */ - TUint32 iSystemCharacteristics; - - /** - * Bit-mask containing the Application characteristics for the corresponding - * Location application - */ - TUint32 iAppCharacteristics; -}; - -#include "lcipcparams.inl" - -#endif // LCIPCPARAMS_H diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/inc/lcipcparams.inl --- a/locationcentre/lcutils/inc/lcipcparams.inl Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,390 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Parameters for the IPC message handling between the -* Location Centre API and Location Centre Server. -* -*/ - - -// ----- Member funtions for CLcBasicAppInfo ------------------------------ - -// --------------------------------------------------------------------------- -// CLcBasicAppInfo::CLcBasicAppInfo -// --------------------------------------------------------------------------- -// -inline CLcBasicAppInfo::CLcBasicAppInfo() - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcBasicAppInfo::~CLcBasicAppInfo -// --------------------------------------------------------------------------- -// -inline CLcBasicAppInfo::~CLcBasicAppInfo() - { - // C++ Destructor. Free all resources associated with this class. - - // Delete the Application data content - delete iAppData; - - // Delete the buffer containing the command line arguments - delete iCmdLineParams; - } - -// --------------------------------------------------------------------------- -// CLcBasicAppInfo* CLcBasicAppInfo::NewL -// --------------------------------------------------------------------------- -// -inline CLcBasicAppInfo* CLcBasicAppInfo::NewL() - { - return ( new ( ELeave ) CLcBasicAppInfo ); - } - -// --------------------------------------------------------------------------- -// CLcBasicAppInfo* CLcBasicAppInfo::NewLC -// --------------------------------------------------------------------------- -// -inline CLcBasicAppInfo* CLcBasicAppInfo::NewLC() - { - CLcBasicAppInfo* self = new ( ELeave ) CLcBasicAppInfo; - CleanupStack::PushL( self ); - return self; - } - -// --------------------------------------------------------------------------- -// TUint32 CLcBasicAppInfo::ApplicationType -// --------------------------------------------------------------------------- -// -inline TUint32 CLcBasicAppInfo::ApplicationType() const - { - return iAppType; - } - -// --------------------------------------------------------------------------- -// void CLcBasicAppInfo::SetApplicationType -// --------------------------------------------------------------------------- -// -inline void CLcBasicAppInfo::SetApplicationType( TUint32 aAppType ) - { - iAppType = aAppType; - } - -// --------------------------------------------------------------------------- -// TUint32 CLcBasicAppInfo::LocationApplicationIconL -// --------------------------------------------------------------------------- -// -inline TUint32 CLcBasicAppInfo::LaunchMode() const - { - return iLaunchMode; - } - -// --------------------------------------------------------------------------- -// void CLcBasicAppInfo::SetLocationApplicationLaunchMode -// --------------------------------------------------------------------------- -// -inline void CLcBasicAppInfo::SetLaunchMode( TUint32 aLaunchMode ) - { - iLaunchMode = aLaunchMode; - } - -// --------------------------------------------------------------------------- -// TPtrC CLcBasicAppInfo::ApplicationData -// --------------------------------------------------------------------------- -// -inline TPtrC CLcBasicAppInfo::ApplicationData() const - { - // Check whether the application data exists, incase it doesnt exist then - // return a NULL string else return Application data. - if ( iAppData ) - { - return *iAppData; - } - else - { - return TPtrC(); - } - } - -// --------------------------------------------------------------------------- -// void CLcBasicAppInfo::ApplicationData -// --------------------------------------------------------------------------- -// -inline void CLcBasicAppInfo::SetApplicationDataL( const TDesC& aAppData ) - { - delete iAppData; - - // Copy the Identifier from the Argument Location Application App info. - iAppData = aAppData.AllocL(); - } - -// --------------------------------------------------------------------------- -// TPtrC CLcBasicAppInfo::CommandLineParameters -// --------------------------------------------------------------------------- -// -inline TPtrC CLcBasicAppInfo::CommandLineParamters() const - { - // Check whether the command line args exists, incase it doesnt exist then - // return a NULL string else return command line arguments. - if ( iCmdLineParams ) - { - return *iCmdLineParams; - } - else - { - return TPtrC(); - } - } - -// --------------------------------------------------------------------------- -// void CLcBasicAppInfo::SetCommandLineParameters -// --------------------------------------------------------------------------- -// -inline void CLcBasicAppInfo::SetCommandLineParametersL( const TDesC& aCmdLineParams ) - { - delete iCmdLineParams; - - // Copy the Identifier from the Argument Location Application App info. - iCmdLineParams = aCmdLineParams.AllocL(); - } - -// ----- Member funtions for CLcAppInfo ------------------------------ - -// --------------------------------------------------------------------------- -// CLcAppInfo::CLcAppInfo -// --------------------------------------------------------------------------- -// -inline CLcAppInfo::CLcAppInfo() - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcAppInfo::~CLcAppInfo -// --------------------------------------------------------------------------- -// -inline CLcAppInfo::~CLcAppInfo() - { - // C++ Destructor. Free all resources associated with this class. - - // Delete the buffer containing the Identifier - delete iId; - - // Delete the buffer containing the name of the Location application - delete iApplicationName; - - // Delete the buffer containing the Icon file name - delete iIconFile; - } - -// --------------------------------------------------------------------------- -// CLcAppInfo* CLcAppInfo::NewL -// --------------------------------------------------------------------------- -// -inline CLcAppInfo* CLcAppInfo::NewL() - { - return ( new ( ELeave ) CLcAppInfo ); - } - -// --------------------------------------------------------------------------- -// CLcAppInfo* CLcAppInfo::NewLC -// --------------------------------------------------------------------------- -// -inline CLcAppInfo* CLcAppInfo::NewLC() - { - CLcAppInfo* self = new ( ELeave ) CLcAppInfo; - CleanupStack::PushL( self ); - return self; - } - -// --------------------------------------------------------------------------- -// TPtrC CLcAppInfo::IdL -// --------------------------------------------------------------------------- -// -inline TPtrC CLcAppInfo::Id() const - { - // Check whether the UID exists, incase it doesnt exist then return a - // NULL string else return the UID. - if ( iId ) - { - return *iId; - } - else - { - return TPtrC(); - } - } - -// --------------------------------------------------------------------------- -// TUint32 CLcAppInfo::SetIdL -// --------------------------------------------------------------------------- -// -inline void CLcAppInfo::SetIdL( const TDesC& aId ) - { - // Incase, the UID already exists then Leave with KErrAlreadyExists - if( iId ) - { - User::Leave( KErrAlreadyExists ); - } - - // Copy the Identifier from the Argument Location Application App info. - iId = aId.AllocL(); - - } - - -// --------------------------------------------------------------------------- -// TPtrC CLcAppInfo::NameL -// --------------------------------------------------------------------------- -// -inline TPtrC CLcAppInfo::Name() const - { - // Check whether the application name exists, incase it doesnt exist then - // return a NULL string else return Application name. - if ( iApplicationName ) - { - return *iApplicationName; - } - else - { - return TPtrC(); - } - } - -// --------------------------------------------------------------------------- -// void CLcAppInfo::SetNameL -// --------------------------------------------------------------------------- -// -inline void CLcAppInfo::SetNameL( const TDesC& aName ) - { - // Incase, the application name exists then Leave with KErrAlreadyExists. - if( iApplicationName ) - { - User::Leave( KErrAlreadyExists ); - } - - // Copy the Name from the Argument Location Application App info. - iApplicationName = aName.AllocL(); - } - -// --------------------------------------------------------------------------- -// CLcAppInfo::TLcIconFileType CLcAppInfo::IconFileType -// --------------------------------------------------------------------------- -// -inline CLcAppInfo::TLcIconFileType CLcAppInfo::IconFileType() const - { - return iIconFileType; - } - -// --------------------------------------------------------------------------- -// void CLcAppInfo::SetLocationApplicationLaunchMode -// --------------------------------------------------------------------------- -// -inline void CLcAppInfo::SetIconFileType( - const CLcAppInfo::TLcIconFileType aIconFileType ) - { - iIconFileType = aIconFileType; - } - -// --------------------------------------------------------------------------- -// TPtrC CLcAppInfo::IconFile -// --------------------------------------------------------------------------- -// -inline TPtrC CLcAppInfo::IconFile() const - { - // Check whether the icon file exists, incase it doesnt exist then - // return a NULL string else return icon file name. - if ( iIconFile ) - { - return *iIconFile; - } - else - { - return TPtrC(); - } - } - -// --------------------------------------------------------------------------- -// void CLcAppInfo::SetIconFileL -// --------------------------------------------------------------------------- -// -inline void CLcAppInfo::SetIconFileL( const TDesC& aIconFileType ) - { - // Incase, the icon file exists then Leave with KErrAlreadyExists. - if( iIconFile ) - { - User::Leave( KErrAlreadyExists ); - } - - // Copy the Name from the Argument Location Application App info. - iIconFile = aIconFileType.AllocL(); - } - -// --------------------------------------------------------------------------- -// TUint32 CLcAppInfo::FrameNo -// --------------------------------------------------------------------------- -// -inline TUint32 CLcAppInfo::FrameNo() const - { - return iFrameNo; - } - -// --------------------------------------------------------------------------- -// void CLcAppInfo::SetFrameNo -// --------------------------------------------------------------------------- -// -inline void CLcAppInfo::SetFrameNo( TUint32 aFrameNo ) - { - iFrameNo = aFrameNo; - } - -// --------------------------------------------------------------------------- -// TUint32 CLcAppInfo::SystemCharacteristics -// --------------------------------------------------------------------------- -// -inline TUint32 CLcAppInfo::SystemCharacteristics() const - { - return iSystemCharacteristics; - } - -// --------------------------------------------------------------------------- -// void CLcAppInfo::SetSystemCharacteristics -// --------------------------------------------------------------------------- -// -inline void CLcAppInfo::SetSystemCharacteristics( - TUint32 aSysCharacteristics ) - { - iSystemCharacteristics = aSysCharacteristics; - } - -// --------------------------------------------------------------------------- -// TUint32 CLcAppInfo::ApplicationCharacteristics -// --------------------------------------------------------------------------- -// -inline TUint32 CLcAppInfo::ApplicationCharacteristics() const - { - return iAppCharacteristics; - } - -// --------------------------------------------------------------------------- -// void CLcAppInfo::SetApplicationCharacteristics -// --------------------------------------------------------------------------- -// -inline void CLcAppInfo::SetApplicationCharacteristics( - TUint32 aAppCharacteristics ) - { - iAppCharacteristics |= aAppCharacteristics; - } diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/src/lcapplauncher.cpp --- a/locationcentre/lcutils/src/lcapplauncher.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,600 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Utility class which provides the Application, Service and File -* launching services to Location Centre. -* -*/ - - -// SYSTEM INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// USER INCLUDES -#include "lcapplauncher.h" -#include "lcipcparams.h" -#include "lcdebug.h" - -// CONSTANT DEFINITIONS -_LIT( KLcFourSpace, "4 " ); - -// Maximum value that the UID field can take in S60 -const TUint32 KUidMaxValue = 0xFFFFFFFF; - -// Application Server Service ID. This is the same valuw which AknAppService classes use -const TUid KLcLaunchAppServiceUid = { 0x101F887A }; - -// -------- Member functions of RLcLaunchAppService -------------------------- - -// --------------------------------------------------------- -// TUid RLcLaunchAppService::ServiceUid -// --------------------------------------------------------- -// -TUid RLcLaunchAppService::ServiceUid() const - { - return KLcLaunchAppServiceUid; - } - -// -------- Member functions of CLcLaunchAppService -------------------------- - -// --------------------------------------------------------------------------- -// CLcLaunchAppService* CLcLaunchAppService::NewL -// --------------------------------------------------------------------------- -// -CLcLaunchAppService* CLcLaunchAppService::NewL() - { - CLcLaunchAppService* self = new ( ELeave ) CLcLaunchAppService(); - return self; - } - -// --------------------------------------------------------------------------- -// CLcLaunchAppService::~CLcLaunchAppService -// --------------------------------------------------------------------------- -// -CLcLaunchAppService::~CLcLaunchAppService() - { - delete iMonitor; - iService.Close(); - } - -// --------------------------------------------------------------------------- -// Tvoid CLcLaunchAppService::ServerName -// --------------------------------------------------------------------------- -// -void CLcLaunchAppService::ServerName( TName& aServerName, - TUid aAppServerUid, - TUint aServerDifferentiator ) - { - _LIT(KServerNameFormat, "%08x_%08x_AppServer"); - aServerName.Format( KServerNameFormat, - aServerDifferentiator, - aAppServerUid ); - } - -// --------------------------------------------------------------------------- -// TUid RLcLaunchAppService::ServiceUid -// --------------------------------------------------------------------------- -// -TUint CLcLaunchAppService::GenerateServerDifferentiatorAndName( - TName& aServerName, - TUid aAppServerUid ) - { - TUint r; - FOREVER - { - r = Math::Random(); - if ( r == 0 ) - continue; - ServerName( aServerName, aAppServerUid, r ); - TFindServer find( aServerName ); - TFullName fullName; - if ( find.Next( fullName ) == KErrNone ) - { - continue; - } - break; - } - return r; - } - -// --------------------------------------------------------------------------- -// void CLcLaunchAppService::LaunchAppL -// --------------------------------------------------------------------------- -// -void CLcLaunchAppService::LaunchAppL( const TUid& aAppUid, - MAknServerAppExitObserver& aObserver, - const TDesC& aCmdLineArg ) - { - DEBUG("+ CLcLaunchAppService::LaunchAppL") - - CEikonEnv* eikEnv = CEikonEnv::Static(); - RWindowGroup& wg = eikEnv->RootWin(); - - TName notUsed; - const TUint differentiator = GenerateServerDifferentiatorAndName( notUsed, aAppUid ); - TRequestStatus requestStatusForRendezvous; - - RApaLsSession apa; - User::LeaveIfError( apa.Connect()); - CleanupClosePushL( apa ); - - // Check for the Application capabilities - TApaAppCapabilityBuf capabilityBuf; - User::LeaveIfError( apa.GetAppCapability( capabilityBuf, aAppUid )); - TApaAppCapability& caps = capabilityBuf(); - - // Launch only those applications can be embedded and will not be run the background - - if( caps.iLaunchInBackground || - caps.iEmbeddability == TApaAppCapability::ENotEmbeddable ) - { - User::Leave( KErrNotSupported ); - } - - TApaAppInfo info; - User::LeaveIfError( apa.GetAppInfo( info, aAppUid )); - - // Pack the command line arguments - CApaCommandLine* cmdLine = CApaCommandLine::NewLC(); - cmdLine->SetExecutableNameL(info.iFullName); - cmdLine->SetServerRequiredL(differentiator); - - // Set the Command line arguments. - if ( aCmdLineArg.Length()) - { - // These arguments would be sent as Tail end arguments to the launched - // Application. Its left to the application to handle those - HBufC8* tailEnd = HBufC8::NewLC( aCmdLineArg.Length()); - tailEnd->Des().Copy( aCmdLineArg ); - - // The Tail end buffer is copied to the Command line structure. Hence, - // can delete this variable after the set operation succeeds. - cmdLine->SetTailEndL( tailEnd->Des()); - - CleanupStack::PopAndDestroy( tailEnd ); - } - - cmdLine->SetCommandL( EApaCommandRun ); - - // Window chain the client with the current application - const TInt parentWindowGroupID = wg.Identifier(); - if ( parentWindowGroupID ) - { - cmdLine->SetParentWindowGroupID( parentWindowGroupID ); - wg.AllowProcessToCreateChildWindowGroups( aAppUid ); - } - - // Launch the requested Application - TThreadId threadNotUsed; - User::LeaveIfError( apa.StartApp( *cmdLine, - threadNotUsed, - &requestStatusForRendezvous )); - - CleanupStack::PopAndDestroy(2, &apa); // cmdLine and apa - - CEikAppUi* appUi = eikEnv->EikAppUi(); - if ( appUi ) - { - appUi->DeactivateActiveViewL(); - } - - User::WaitForRequest( requestStatusForRendezvous ); - User::LeaveIfError( requestStatusForRendezvous.Int()); - - // Establish a connection to the running server - TName serverName; - ServerName( serverName, aAppUid, differentiator ); - - // Though the server had been successfully created the application - // has can shutdown before we can establish a connection. There is nothing - // that we can do here. Ignore the error. - iService.ConnectExistingByNameL(serverName ); - - // Set the observer for receiving notifications of the application exit. - iMonitor = CApaServerAppExitMonitor::NewL( iService, - aObserver, - CActive::EPriorityStandard ); - - DEBUG("- CLcLaunchAppService::LaunchAppL") - } - - -// ----- Member funtions for CLcAppLauncher ---------------------------------- - -// --------------------------------------------------------------------------- -// CLcAppLauncher::CLcAppLauncher -// --------------------------------------------------------------------------- -// -CLcAppLauncher::CLcAppLauncher() - { - // C++ Default constructor. No allocations or functions which can Leave - // should be called from here. - } - -// --------------------------------------------------------------------------- -// CLcAppLauncher::~CLcAppLauncher -// --------------------------------------------------------------------------- -// -CLcAppLauncher::~CLcAppLauncher() - { - - // Delete the Broswer launcher. - delete iBrowserLauncher; - - // Delete the document handler. - delete iDocHandler; - - // Delete the Application Service if it exists - delete iAppService; - } - -// --------------------------------------------------------------------------- -// CLcAppLauncher* CLcAppLauncher::NewL -// --------------------------------------------------------------------------- -// -EXPORT_C CLcAppLauncher* CLcAppLauncher::NewL() - { - CLcAppLauncher* self = NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CLcAppLauncher* CLcAppLauncher::NewLC -// --------------------------------------------------------------------------- -// -EXPORT_C CLcAppLauncher* CLcAppLauncher::NewLC() - { - // Symbian Two phased constructor. Leaves the object on the Clean-up - // stack. - CLcAppLauncher* self = new ( ELeave ) CLcAppLauncher(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// void CLcAppLauncher::ConstructL -// --------------------------------------------------------------------------- -// -void CLcAppLauncher::ConstructL() - { - // Second phase of the two phase constructor. - iEnv = CEikonEnv::Static(); - } - -// --------------------------------------------------------------------------- -// void LcAppLauncher::LaunchLocationApplicationL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcAppLauncher::LaunchLocationApplicationL( - TInt aAppType, - const TDesC& aIdentifer, - TBool aStandAlone, - const TDesC& aCmdLineArg, - MLcAppExitObserver* aExitObserver ) - { - DEBUG("+ CLcLaunchAppService::LaunchLocationApplicationL") - - // Check for the validity of the request - - // Check if there is an outstanding Embedded launch request - if(( isEmbeddedLaunchOutstanding && !aStandAlone ) || - ( !aStandAlone && !iEnv )) - { - User::Leave( KErrNotSupported ); - } - - // At any instant of time this class can one outstanding Exit observer. - // There is currently no provision of storing a list of observers and - // mapping them correspondingly to each of the assciated applications - // Hence, Leave if there exists an Exit observer. - if (( aExitObserver && iExitObserver )) - { - User::Leave( KErrAlreadyExists ); - } - - // Launch the Applications based on their type and Mode of launching - switch ( aAppType ) - { - case ELcNativeApplication: - { - // Since the request is for a Native S60 application, the Identifer - // contains an UID. Obtain it using Lexer - TLex lexer( aIdentifer ); - TUint32 uidValue; - - User::LeaveIfError( lexer.BoundedVal( uidValue, EHex, KUidMaxValue )); - - if ( aStandAlone ) - { - // Launch the Location based Application based standalone mode - LaunchAppL( TUid::Uid( uidValue ), aCmdLineArg ); - } - else - { - // Launch Application in the chained mode - LaunchAppAsChainedL( TUid::Uid( uidValue ), aCmdLineArg, aExitObserver ); - } - - break; - } - case ELcWebUrl: - { - LaunchWebBroserL( aIdentifer, aStandAlone, aExitObserver ); - break; - } - case ELcDocument: - { - LaunchContentL( aIdentifer, aStandAlone, aExitObserver ); - break; - } - default: - { - User::Leave( KErrNotSupported ); - break; - } - } - - DEBUG("+ CLcLaunchAppService::LaunchLocationApplicationL") - } - -// --------------------------------------------------------------------------- -// void LcAppLauncher::LaunchAppL -// --------------------------------------------------------------------------- -// -void CLcAppLauncher::LaunchAppL( - TUid aApplicationUid, - const TDesC& aCmdLineArg ) - { - DEBUG("+ CLcAppLauncher::LaunchAppL") - - // Create the Session handle and connect to the Application architecture - // server. This is required to obtain the details of the application from - // the Application UID. - RApaLsSession lsSession; - User::LeaveIfError( lsSession.Connect() ); - CleanupClosePushL( lsSession ); - - // Get the Application's capability. - TApaAppCapabilityBuf capabilityBuf; - User::LeaveIfError( lsSession.GetAppCapability( capabilityBuf, aApplicationUid )); - TApaAppCapability& caps = capabilityBuf(); - - if ( caps.iEmbeddability == TApaAppCapability::EEmbeddableOnly || - caps.iEmbeddability == TApaAppCapability::EEmbeddableUiNotStandAlone ) - { - User::Leave( KErrNotSupported ); - } - - // Get the Application Information. - TApaAppInfo appInfo; - User::LeaveIfError( lsSession.GetAppInfo( appInfo, aApplicationUid ) ); - - // Fill the command line argument structure - CApaCommandLine* cmdLine = CApaCommandLine::NewLC(); - - // Set the Application name. - TFileName appName = appInfo.iFullName; - cmdLine->SetExecutableNameL( appName ); - - // Set the Command - if ( caps.iLaunchInBackground ) - { - cmdLine->SetCommandL( EApaCommandBackground ); - } - else - { - cmdLine->SetCommandL( EApaCommandRun ); - } - - // Set the Command line arguments. - if ( aCmdLineArg.Length()) - { - // These arguments would be sent as Tail end arguments to the launched - // Application. Its left to the application to handle those - HBufC8* tailEnd = HBufC8::NewLC( aCmdLineArg.Length()); - tailEnd->Des().Copy( aCmdLineArg ); - - // The Tail end buffer is copied to the Command line structure. Hence, - // can delete this variable after the set operation succeeds. - cmdLine->SetTailEndL( tailEnd->Des()); - - CleanupStack::PopAndDestroy( tailEnd ); - } - - // Start the Application - User::LeaveIfError( lsSession.StartApp( *cmdLine )); - - // Clean up all the allocated heap variables. - CleanupStack::PopAndDestroy( cmdLine ); - CleanupStack::PopAndDestroy(); //lsSession - - DEBUG("- CLcAppLauncher::LaunchAppL") - } - -// --------------------------------------------------------------------------- -// void LcAppLauncher::LaunchAppAsChainedL -// --------------------------------------------------------------------------- -// -void CLcAppLauncher::LaunchAppAsChainedL( - TUid aApplicationUid, - const TDesC& aCmdLineArg, - MLcAppExitObserver* aExitObserver ) - { - DEBUG("+ CLcAppLauncher::LaunchAppAsChainedL" ) - - // Createt the App service object and launch the application - CLcLaunchAppService* appService = CLcLaunchAppService::NewL(); - CleanupStack::PushL( appService ); - appService->LaunchAppL( aApplicationUid, *this, aCmdLineArg ); - CleanupStack::Pop( appService ); - - // Transfer the ownership to this class. - iAppService = appService; - isEmbeddedLaunchOutstanding = ETrue; - - // Store the Observer for future reference - iExitObserver = aExitObserver; - - DEBUG("- CLcAppLauncher::LaunchAppAsChainedL" ) - } - -// --------------------------------------------------------------------------- -// void LcAppLauncher::LaunchWebBroserL -// --------------------------------------------------------------------------- -// -void CLcAppLauncher::LaunchWebBroserL( const TDesC& aUrl, - TBool aStandAlone, - MLcAppExitObserver* aObserver ) - { - // The parameters need to be packed in the order specified by the browser. - // Parameters are separated by space - // 1st parameter: Type of the second parameter. In this case 4 to indicate - // that the second parameter is a URL. - // 2nd parameter: URL that needs to be launched in the browser. - // Since we have to pack "4 " before the URL name, the total length of - // the parameter string should be Length of the URL + 2. - HBufC* param = HBufC::NewLC(( 2 + aUrl.Length())); - param->Des().Append( KLcFourSpace ); - param->Des().Append( aUrl ); - - if ( aStandAlone ) - { - // The URL is launched in the Browser. Set the Browser UID as the UID - // of the application which needs to be launched. - const TInt KBrowserUid = 0x10008D39; - TUid id( TUid::Uid( KBrowserUid ) ); - - // Check if the Browser application is already running. Incase its - // running Open this URL in the browser. - TApaTaskList taskList( CEikonEnv::Static()->WsSession() ); - TApaTask task = taskList.FindApp( id ); - if ( task.Exists() ) - { - // The browser is running. Launch the URL. - HBufC8* param8 = HBufC8::NewLC( param->Length() ); - param8->Des().Append( *param ); - task.SendMessage( TUid::Uid( 0 ), *param8 ); // UID is not used - CleanupStack::PopAndDestroy(); - } - else - { - // The browser is not running. Start the browser application with - // the specified parameter. This is done by launching the browser with - // a document name as the URL. - RApaLsSession appArcSession; - - // Connect to the Application architecture server. - User::LeaveIfError( appArcSession.Connect()); - CleanupClosePushL( appArcSession ); - TThreadId id; - - // Start the browser with the URL - User::LeaveIfError( appArcSession.StartDocument( *param, - TUid::Uid( KBrowserUid ), - id )); - CleanupStack::PopAndDestroy( &appArcSession ); - } - } - else - { - - if ( !iBrowserLauncher ) - { - // Create the Browser instance - iBrowserLauncher = CSchemeHandler::NewL( aUrl ); - } - - // Launch the Web URL in a browser in the Embedded mode. - iBrowserLauncher->HandleUrlEmbeddedL(); - iBrowserLauncher->Observer( this ); - - // Set the Observer incase we need to notify the termination of the - // browser - aObserver ? ( iExitObserver = aObserver ) : NULL; - - isEmbeddedLaunchOutstanding = ETrue; - } - CleanupStack::PopAndDestroy( param ); // param - - } - -// --------------------------------------------------------------------------- -// void LcAppLauncher::LaunchContentL -// --------------------------------------------------------------------------- -// -void CLcAppLauncher::LaunchContentL( const TDesC& aFileName, - TBool aStandAlone, - MLcAppExitObserver* aObserver ) - { - if ( !iDocHandler ) - { - iDocHandler = CDocumentHandler::NewL(); - iDocHandler->SetExitObserver( this ); - } - - TDataType dataType; - if ( aStandAlone ) - { - // The return values are ignored since, the User Cancelling the event doesnt - // make any difference to the Client Application - User::LeaveIfError( iDocHandler->OpenFileL( aFileName, dataType )); - } - else - { - iExitObserver = aObserver; - // The return values are ignored since, the User Cancelling the event doesnt - // make any difference to the Client Application - User::LeaveIfError( iDocHandler->OpenFileEmbeddedL( aFileName, dataType )); - - isEmbeddedLaunchOutstanding = ETrue; - } - } - -// --------------------------------------------------------------------------- -// void LcAppLauncher::HandleServerAppExit -// --------------------------------------------------------------------------- -// -void CLcAppLauncher::HandleServerAppExit( TInt aReason ) - { - isEmbeddedLaunchOutstanding = EFalse; - - // Delete the App Service - delete iAppService; - iAppService = NULL; - - MLcAppExitObserver* observer = iExitObserver; - if ( observer ) - { - // Once the request has been issued we can NULLify the observer. Nullifying - // it before the actual callback to faciliate the launching of another app - // with an exit observer when the call is executed. - iExitObserver = NULL; - - TRAP_IGNORE( observer->HandleChainedLocationAppExitL( aReason )); - } - - MAknServerAppExitObserver::HandleServerAppExit( aReason ); - } - -// End of File - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/src/lcdebug.cpp --- a/locationcentre/lcutils/src/lcdebug.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* Copyright (c) Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Utility class for Debug traces -* -*/ - - -// INCLUDE FILES -#include "lcdebug.h" -#include -#include - -// ========================== EXPORTED FUNCTIONS ========================= - -#ifdef _LCDEBUG - -/// Folder where the log resides -_LIT( KLogFolder, "Location" ); - -/// The name of the log file -_LIT( KLogFileName, "Location" ); - -/// How many characters a log line can contain -const TInt KLogLineLength = 256; - -// ----------------------------------------------------------------------------- -// void Debug( TRefByValue aText, ... ) -// ----------------------------------------------------------------------------- -// -EXPORT_C void Debug( TRefByValue aText, ... ) - { - RDebug::Print(aText); - - VA_LIST args; - VA_START( args, aText ); - - TBuf buf; - buf.FormatList( aText, args ); - RFileLogger logger; - TInt ret=logger.Connect(); - if (ret==KErrNone) - { - logger.SetDateAndTime( EFalse,EFalse ); - logger.CreateLog( KLogFolder, KLogFileName, EFileLoggingModeAppend ); - logger.Write(buf); - } - logger.Close(); - - VA_END( args ); - } - -#else - -// ----------------------------------------------------------------------------- -// void Debug( TRefByValue aText, ... ) -// ----------------------------------------------------------------------------- -// -EXPORT_C void Debug( TRefByValue /* aText */, ... ) - { - } - -#endif - -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/src/lciconloader.cpp --- a/locationcentre/lcutils/src/lciconloader.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -/* -* Copyright (c) Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Utility class for loading Application Icons -* -*/ - - -// SYSTEM INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// USER INCLUDES -#include "lciconloader.h" -#include "lcipcparams.h" - - -// CONSTANT DEFINITION -_LIT( KLcDefaultIconFileName, "lcicons.mif" ); - -// ========================= MEMBER FUNCTIONS ================================ - -// --------------------------------------------------------------------------- -// EXPORT_C CGulIcon* LcIconLoader::LoadApplicationIconL -// --------------------------------------------------------------------------- -// -EXPORT_C CGulIcon* LcIconLoader::LoadApplicationIconL( const TUid aAppUid ) - { - CGulIcon* icon = NULL; - TRAPD( error, icon = LoadIconfromUIDL( aAppUid )); - if( error ) - { - icon = LoadDefaultIconL(); - } - - return icon; - } - -// --------------------------------------------------------------------------- -// EXPORT_C CGulIcon* LcIconLoader::LoadMifFileIconL -// --------------------------------------------------------------------------- -// -EXPORT_C CGulIcon* LcIconLoader::LoadMifFileIconL( - const TDesC& aAppIconFile, - TInt aFrameNo ) - { - CGulIcon* icon = NULL; - TRAPD( error, icon = LoadIconFromMifFileL( aAppIconFile, aFrameNo )); - if( error ) - { - icon = LoadDefaultIconL(); - } - return icon; - } - -// --------------------------------------------------------------------------- -// EXPORT_C CGulIcon* LcIconLoader::LoadDefaultIconL -// --------------------------------------------------------------------------- -// -EXPORT_C CGulIcon* LcIconLoader::LoadDefaultIconL() - { - TFileName dllFileName; - Dll::FileName( dllFileName ); - - TParse parse; - User::LeaveIfError( parse.Set( KLcDefaultIconFileName, &KDC_APP_BITMAP_DIR, &dllFileName )); - TFileName fileName( parse.FullName()); - - CGulIcon* icon = AknsUtils::CreateGulIconL( - AknsUtils::SkinInstance(), - KAknsIIDQgnPropSetDeviceSub, - fileName, - EMbmLciconsQgn_menu_am_sis, - EMbmLciconsQgn_menu_am_sis_mask ); - - return icon; - } - -// --------------------------------------------------------------------------- -// CGulIcon* LcIconLoader::LoadIconFromFileL -// --------------------------------------------------------------------------- -// -CGulIcon* LcIconLoader::LoadIconfromUIDL( const TUid aAppUid ) - { - // Create the Icon and the mask for the Application using AknUtils - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - AknsUtils::CreateAppIconLC( AknsUtils::SkinInstance(), - aAppUid, - EAknsAppIconTypeList, - bitmap, - mask ); - - User::LeaveIfNull( bitmap ); - User::LeaveIfNull( mask ); - - // If the bitmap and the mask exists then make it into a GulIcon - // which can then be retured. - CGulIcon* icon = CGulIcon::NewL( bitmap, mask ); - icon->SetBitmapsOwnedExternally( EFalse ); - - // Not specifying the order because we dont know the order in which they - // would be created. Though its generally, the bitmap first and then the - // mask, we should be speculating. - CleanupStack::Pop( 2 ); - return icon; - } - -// --------------------------------------------------------------------------- -// CGulIcon* LcIconLoader::LoadIconFromMifFileL -// --------------------------------------------------------------------------- -// -CGulIcon* LcIconLoader::LoadIconFromMifFileL( const TDesC& aAppIconFile, - TInt aFrameNo ) - { - // Create the Icon and the mask for the Application using AknUtils - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - - AknIconUtils::CreateIconLC( bitmap, mask, aAppIconFile, aFrameNo, aFrameNo + 1 ); - - User::LeaveIfNull( bitmap ); - User::LeaveIfNull( mask ); - - // If the bitmap and the mask exists then make it into a GulIcon - // which can then be retured. - CGulIcon* icon = CGulIcon::NewL( bitmap, mask ); - icon->SetBitmapsOwnedExternally( EFalse ); - - // Not specifying the order because we dont know the order in which they - // would be created. Though its generally, the bitmap first and then the - // mask, we should be speculating. - CleanupStack::Pop( 2 ); - return icon; - } - diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/lcutils/src/lcipcparams.cpp --- a/locationcentre/lcutils/src/lcipcparams.cpp Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,581 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Parameters for the IPC message handling between the -* Location Centre API and Location Centre Server. -* -*/ - - -// SYSTEM INCLUDES -#include - -// USER INCLUDES -#include "lcipcparams.h" - -// CONSTANT DEFINITIONS -const TInt KSizeofTUint32 = sizeof( TUint32 ); - -// ----- Member funtions for RLcIpcAppIdArray -------------------------------- - -// --------------------------------------------------------------------------- -// void RLcIpcAppIdArray::ExternalizeL -// --------------------------------------------------------------------------- -// -EXPORT_C void RLcIpcAppIdArray::ExternalizeL( RWriteStream& aWriteStream ) - { - // The format for packing the buffer would be as follows - // Count | Length1 | ID1 | Length2 | ID2 | ... - // where - // Count - The number of strings which would be packed - // Length1 - The Length of the first Identifier string - // ID1 - First Identifier - // Length2 - The Length of the second Identifier string - // ID2 - Second Identifier. - // ... - - const TInt count = Count(); - // First pack the number of elements in the array. Even if there is no - // elements pack a 0 - - aWriteStream.WriteUint32L( Count()); - - for ( TInt i = 0; i < count; i++ ) - { - // Obtain the element at position i - HBufC* element = ( *this )[i]; - - // As per the grammar first pack the length and then pack the string - TInt length = element->Des().Length(); - aWriteStream.WriteUint32L( length ); - - // Now pack the identifier - aWriteStream.WriteL( element->Des(), length ); - } - - aWriteStream.CommitL(); - } - -// --------------------------------------------------------------------------- -// void RLcIpcAppIdArray::InternalizeL -// --------------------------------------------------------------------------- -// -EXPORT_C void RLcIpcAppIdArray::InternalizeL( RReadStream& aReadStream ) - { - // Clean up all the elements in the array so that the previous internalized - // structure would be removed. - ResetAndDestroy(); - - // The first element in the array is the Count variable which indicates - // the number of elements in this array. - const TUint32 count = aReadStream.ReadUint32L(); - - // Even a string containing no elements is acceptable. - for ( TInt i = 0; i < count; i++ ) - { - // First read the length of the Identifer - TUint32 length = aReadStream.ReadUint32L(); - if ( length >= KMaxTInt/2 ) - { - User::Leave( KErrArgument ); - } - - // Now create a buffer to read the actual identifier name. The length - // of the buffer would be defined by the length value. Use this buffer - // read the identifier. - HBufC* buffer = HBufC::NewLC( length ); - TPtr bufferPtr( buffer->Des()); - - aReadStream.ReadL( bufferPtr, length ); - - // Transfer the ownership of the buffer to this array. - User::LeaveIfError( Append( buffer )); - CleanupStack::Pop( buffer ); - } - } - -// --------------------------------------------------------------------------- -// void RLcIpcAppIdArray::BufferLength -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RLcIpcAppIdArray::BufferLength() - { - TInt length = 0; - - // Pack the Length for including the length of Count buffer - length += KSizeofTUint32; - - // Even a string containing no elements is acceptable. - for ( TInt i = 0; i < Count(); i++ ) - { - // First 4 bytes for the Length of the string - length += KSizeofTUint32; - - // Now pack the length for the buffer - length += ( *this )[i]->Des().Size(); - } - return length; - } - -// --------------------------------------------------------------------------- -// void RLcIpcAppIdArray::ResetAndDestroyIdArray -// --------------------------------------------------------------------------- -// -EXPORT_C void RLcIpcAppIdArray::ResetAndDestroyIdArray( TAny* aIdArray ) - { - RLcIpcAppIdArray* array = reinterpret_cast< RLcIpcAppIdArray* >( aIdArray ); - if ( array ) - { - array->ResetAndDestroy(); - } - - } - - -// ----- Member funtions for RLcIpcAppIdArray -------------------------------- - -// --------------------------------------------------------------------------- -// void RLcIpcAppInfoArray::ExternalizeL -// --------------------------------------------------------------------------- -// -EXPORT_C void RLcIpcAppInfoArray::ExternalizeL( RWriteStream& aWriteStream ) - { - // The format for packing the buffer would be as follows - // Count | IDLength | ID | NameLength | Name | Launch mode | Sys Characteristics | - // Application Characteristics - // where - // Count - The number of structures which would be packed - // IDLength - The Length of the Identifier string - // ID - Application Identifier - // NameLength - The Length of the name string - // Name - Application Name. - // IconFile Length - Length of the Icon file name. - // Icon File - Full path of the icon file with file name - // IconFile Type - The Icon file type - // Frame No - The Frame no of the icon if the icon file is a MIF - // file - // Launch Mode - Launching mode of the application - // Sys Char - System characteristics - // App Char - Application characteristics - // These elements are repeated for all Application information structures. - - const TInt count = Count(); - // First pack the number of elements in the array. Even if there is no - // elements pack a 0 - - aWriteStream.WriteUint32L( Count()); - - for ( TInt i = 0; i < count; i++ ) - { - // Obtain the element at position i - CLcAppInfo* element = ( *this )[i]; - - // Externalize the parent class first and then externalize the child - element->ExternalizeL( aWriteStream ); - } - - aWriteStream.CommitL(); - } - -// --------------------------------------------------------------------------- -// void RLcIpcAppIdArray::InternalizeL -// --------------------------------------------------------------------------- -// -EXPORT_C void RLcIpcAppInfoArray::InternalizeL( RReadStream& aReadStream ) - { - // Clean up all the elements in the array so that the previous internalized - // structure would be removed. - ResetAndDestroy(); - - // The first element in the array is the Count variable which indicates - // the number of elements in this array. - const TUint32 count = aReadStream.ReadUint32L(); - - // Even a string containing no elements is acceptable. - for ( TInt i = 0; i < count; i++ ) - { - - // Create a new CLcAppInfo element - CLcAppInfo* element = CLcAppInfo::NewLC(); - - // Internalize the Parent class first and then proceed to the child - element->InternalizeL( aReadStream ); - - // Transfer the ownership of the buffer to this array. - User::LeaveIfError( Append( element )); - CleanupStack::Pop( element ); - - } - } - -// --------------------------------------------------------------------------- -// TInt RLcIpcAppInfoArray::BufferLength -// --------------------------------------------------------------------------- -// -EXPORT_C TInt RLcIpcAppInfoArray::BufferLength() - { - TInt length = 0; - - // Pack the length for the Count field. - length += KSizeofTUint32; - - // Pack the length required for the individual app structures - - TInt count = Count(); - for ( TInt i = 0; i < count; i++ ) - { - // Obtain the element at position i - CLcAppInfo* element = ( *this )[i]; - - // Pack the length required for this element - length += element->BufferLength(); - } - - return length; - } - -// --------------------------------------------------------------------------- -// void RLcIpcAppIdArray::ResetAndDestroyIdArray -// --------------------------------------------------------------------------- -// -EXPORT_C void RLcIpcAppInfoArray::ResetAndDestroyAppArray( TAny* aIdArray ) - { - RLcIpcAppInfoArray* array = reinterpret_cast< RLcIpcAppInfoArray* >( aIdArray ); - if ( array ) - { - array->ResetAndDestroy(); - } - } - -// ----- Member funtions for CLcBasicAppInfo --------------------------------- - -// --------------------------------------------------------------------------- -// void CLcBasicAppInfo::ExternalizeL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcBasicAppInfo::ExternalizeL( RWriteStream& aWriteStream ) - { - // The format for packing the buffer would be as follows - // Application Type | DataLength | Data | CmdLength | Cmd - // where - // Application Type - The type of the Application which is stored in the - // structure. - // DataLength - The Length of the Application data string - // Data - Application Data - // CmdLength - The Length of the command line arguments - // Cmd - Command line arguments - - // First pack the Application type - - aWriteStream.WriteUint32L( iAppType ); - - // Pack the Launching mode of the application - aWriteStream.WriteUint32L( iLaunchMode ); - - // Pack the length of the Application Data. If there is no application - // data then pack zero. - TUint length = 0; - if ( iAppData ) - { - length = iAppData->Length(); - } - aWriteStream.WriteUint32L( length ); - - // If there is a valid data field pack it onto the buffer. - if ( length ) - { - aWriteStream.WriteL( iAppData->Des(), length ); - } - - // Pack the command line arguments. If there is no command line - // parameters then pack a length of 0 - length = 0; - if ( iCmdLineParams ) - { - length = iCmdLineParams->Length(); - } - aWriteStream.WriteUint32L( length ); - - // If there is a valid command line parameters field pack it onto the buffer. - if ( length ) - { - aWriteStream.WriteL( iCmdLineParams->Des(), length ); - } - - aWriteStream.CommitL(); - } - -// --------------------------------------------------------------------------- -// void CLcBasicAppInfo::InternalizeL -// --------------------------------------------------------------------------- -// -EXPORT_C void CLcBasicAppInfo::InternalizeL( RReadStream& aReadStream ) - { - // Clear the application data - delete iAppData; - iAppData = NULL; - - // Clear the command line params - delete iCmdLineParams; - iCmdLineParams = NULL; - - // The first element in the array if the Application type variable. - iAppType = aReadStream.ReadUint32L(); - - // The second element is the Application Launch mode - iLaunchMode = aReadStream.ReadUint32L(); - - // Now get the length of the data field. - TUint32 length = aReadStream.ReadUint32L(); - if ( length >= KMaxTInt/2 ) - { - User::Leave( KErrArgument ); - } - // Set the application data only if the length is a +ve value. - if ( length ) - { - iAppData = HBufC::NewL( length ); - TPtr appData( iAppData->Des()); - aReadStream.ReadL( appData, length ); - } - - // Now read the length of the command line parameters - length = aReadStream.ReadUint32L(); - if ( length >= KMaxTInt/2 ) - { - User::Leave( KErrArgument ); - } - // Set the command line params only if the length is a +ve value. - if ( length ) - { - iCmdLineParams = HBufC::NewL( length ); - TPtr cmdParam( iCmdLineParams->Des()); - aReadStream.ReadL( cmdParam, length ); - } - } - -// --------------------------------------------------------------------------- -// TInt CLcBasicAppInfo::BufferLength -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CLcBasicAppInfo::BufferLength() - { - TInt length = 0; - - // Include length for Application type - length += KSizeofTUint32; - - // Add the length for Launch mode - length += KSizeofTUint32; - - // Add the length of the Application Data and the length for Application - // data if it exists - length += KSizeofTUint32; - - if ( iAppData ) - { - length += iAppData->Des().MaxSize(); - } - - // Add the length of the Command line args and the length for Cmd line - // args if it exists - length += KSizeofTUint32; - - if ( iCmdLineParams ) - { - length += iCmdLineParams->Des().MaxSize(); - } - return length; - } - - -// ----- Member funtions for CLcBasicAppInfo --------------------------------- - -// --------------------------------------------------------------------------- -// void CLcBasicAppInfo::ExternalizeL -// --------------------------------------------------------------------------- -// -void CLcAppInfo::ExternalizeL( RWriteStream& aWriteStream ) - { - CLcBasicAppInfo::ExternalizeL( aWriteStream ); - - // As per the grammar first pack the length and then pack the string - TInt length = Id().Length(); - aWriteStream.WriteUint32L( length ); - - // Pack the Identifier. No need to check for the Length since - // this is a mandatory field and the Application would not have been - // accepted if it were not +ve - aWriteStream.WriteL( Id(), length ); - - // Pack the name. If there is no name then pack a length of 0 for the - // name field. - length = Name().Length(); - aWriteStream.WriteUint32L( length ); - - // Pack the name field only if the length is +ve - if ( length ) - { - aWriteStream.WriteL( Name(), length ); - } - - // Pack the Icon file and Icon file type for the file - length = IconFile().Length(); - aWriteStream.WriteUint32L( length ); - - if ( length ) - { - aWriteStream.WriteL( IconFile(), length ); - aWriteStream.WriteUint32L( iIconFileType); - - // If the Icon file type is a MIF, pack the Frame no - if ( EMifFile == iIconFileType ) - { - aWriteStream.WriteUint32L( iFrameNo ); - } - } - - // Pack the System characteristics - aWriteStream.WriteUint32L( iSystemCharacteristics ); - - // Pack the application characteristics - aWriteStream.WriteUint32L( iAppCharacteristics ); - - aWriteStream.CommitL(); - } - -// --------------------------------------------------------------------------- -// void CLcBasicAppInfo::InternalizeL -// --------------------------------------------------------------------------- -// -void CLcAppInfo::InternalizeL( RReadStream& aReadStream ) - { - CLcBasicAppInfo::InternalizeL( aReadStream ); - - // First read the length of the Identifer - TUint32 length = aReadStream.ReadUint32L(); - if ( length >= KMaxTInt/2 ) - { - User::Leave( KErrArgument ); - } - - // No need to check for the length for this is a mandatory field. - // Now create a buffer to read the actual identifier. The length - // of the buffer would be defined by the length value. Use this buffer - // read the identifier. - iId = HBufC::NewL( length ); - TPtr bufferPtr( iId->Des()); - aReadStream.ReadL( bufferPtr, length ); - - // Read the length of the name buffer - length = aReadStream.ReadUint32L(); - if ( length >= KMaxTInt/2 ) - { - User::Leave( KErrArgument ); - } - - if ( length ) - { - iApplicationName = HBufC::NewL( length ); - bufferPtr.Set( iApplicationName->Des()); - - // Read the name field - aReadStream.ReadL( bufferPtr, length ); - } - - // Read the Icon file if its exists - length = aReadStream.ReadUint32L(); - if ( length >= KMaxTInt/2 ) - { - User::Leave( KErrArgument ); - } - - if ( length ) - { - iIconFile = HBufC::NewL( length ); - bufferPtr.Set( iIconFile->Des()); - - // Read the Icon file field - aReadStream.ReadL( bufferPtr, length ); - - // Set the Icon file type - iIconFileType = - static_cast< CLcAppInfo::TLcIconFileType >( aReadStream.ReadUint32L()); - - // If the Icon file type is a MIF file then set the Frame no - if ( EMifFile == iIconFileType ) - { - iFrameNo = aReadStream.ReadUint32L(); - } - } - - // Set the System characteristics - iSystemCharacteristics = aReadStream.ReadUint32L(); - - // Set the Application characteristics - iAppCharacteristics = aReadStream.ReadUint32L(); - } - -// --------------------------------------------------------------------------- -// TInt CLcAppInfo::BufferLength -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CLcAppInfo::BufferLength() - { - TInt length = 0; - - // First pack the length for the Basic App Info structure - length += CLcBasicAppInfo::BufferLength(); - - // Include length for Application Identifier - length += KSizeofTUint32; - length += iId->Des().MaxSize(); - - // Pack the name field and the Length of the name field if it exists - // Add the length of the Command line args and the length for Cmd line - // args if it exists - length += KSizeofTUint32; - - if ( iApplicationName ) - { - length += iApplicationName->Des().MaxSize(); - } - - // Pack the Icon file field and the name of icon file if it exists - // Read the Icon file if its exists - length += KSizeofTUint32; - if ( iIconFile ) - { - // Pack the Icon file name length - length += iIconFile->Des().MaxSize(); - - // Pack the Icon file type - length += KSizeofTUint32; - - // If the Icon file type is a MIF file then add length for the - // frame number - if ( EMifFile == iIconFileType ) - { - length += KSizeofTUint32; - } - } - - // Add the length for System characteristics - length += KSizeofTUint32; - - // Add the length for Application characteristics - length += KSizeofTUint32; - - return length; - } -// End of File diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/loc/lc.loc --- a/locationcentre/loc/lc.loc Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Localization strings for project Location Centre -* -*/ - - -/** - * Default (implementation English) Resource localisation file. - */ - -// LOCALIZATION STRINGS - -// d:Title pane text for Location Centre Application -// l:title_pane_t2/opt9 -// r:5.0 -// -#define qtn_loc_title_centre "Location" - -// d:Grid layout text for Location Centre Application -// d:in the Application shell -// d:The string is defined in Application Shell Contents -// d:UI specification. -// l:cell_app_pane_t1 -// r:5.0 -// -#define qtn_apps_location_grid "Location" - -// d:Grid layout text for Location Centre Application -// d:in the Application shell -// d:The string is defined in Application Shell Contents -// d:UI specification. -// l:list_single_large_graphic_pane_t1 -// r:5.0 -// -#define qtn_apps_location_list "Location" diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/rom/lc.iby --- a/locationcentre/rom/lc.iby Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: IBY file for Location Centre -* -*/ -#ifndef __LC_IBY__ -#define __LC_IBY__ - -// Location Centre Utils -file=ABI_DIR\BUILD_DIR\lcutils.dll SHARED_LIB_DIR\lcutils.dll - -// Location Centre Client -file=ABI_DIR\BUILD_DIR\lcservice.dll SHARED_LIB_DIR\lcservice.dll - -// Location Centre Server -file=ABI_DIR\BUILD_DIR\lcserver.exe PROGRAMS_DIR\lcserver.exe - -#ifdef __LOCATION_CENTRE - - // Location Centre Application EXE - file=ABI_DIR\BUILD_DIR\lcapp.exe PROGRAMS_DIR\lcapp.exe - - // Location Centre Application Icon - S60_APP_AIF_ICONS(lcapp) - - // Location Centre Default Icon - SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,lcicons) - - // Location Centre Application Registration Info - S60_UPGRADABLE_APP_REG_RSC(lcapp) - -#endif // ( __LOCATION_CENTRE ) - -#endif // ( __LC_IBY__ ) diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/rom/lc_resources.iby --- a/locationcentre/rom/lc_resources.iby Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: IBY file for Location Centre Resource -* -*/ -#ifndef __LC_RESOURCES_IBY__ -#define __LC_RESOURCES_IBY__ - -#ifdef __LOCATION_CENTRE - - // Location Centre Application resources - data=ZRESOURCE\apps\lcapp.rsc APP_RESOURCE_DIR\lcapp.rsc - -#endif // ( __LOCATION_CENTRE ) - -#endif // __LC_RESOURCES_IBY__ \ No newline at end of file diff -r 3a25f69541ff -r 4721bd00d3da locationcentre/rom/lcstub.iby --- a/locationcentre/rom/lcstub.iby Wed Apr 14 15:50:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: IBY file for Location Centre Stub -* -*/ -#ifndef __LCSTUB_IBY__ -#define __LCSTUB_IBY__ - -// Location Centre Stub sis file -data=ZSYSTEM\install\locationcentrestub.sis system\install\locationcentrestub.sis - -#endif // ( __LCSTUB_IBY__ )