locationcentre/lcservice/inc/lcsyncoperation.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 00:16:03 +0200
changeset 0 522cd55cc3d7
permissions -rw-r--r--
Revision: 201003 Kit: 201005

/*
* 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 <e32base.h>

// 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<TPtrC>&      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