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