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