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