locationmgmt/locmonitor/test/ExampleLocationConverter/inc/ExampleLocationConverter.h
author Billy Gibson <Billy.Gibson@nokia.com>
Fri, 28 May 2010 18:01:03 +0100
branchGeoConversion
changeset 34 0c0ad64c882c
permissions -rw-r--r--
Updated version of the Location Monitor supporting the new New GeoConversion interfaces. Also includes API help information

/*
* Copyright (c) 2008 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:  Definition of Movement Detection API
*
*/


#ifndef C_EXAMPLELOCATIONCONVERTER_H
#define C_EXAMPLELOCATIONCONVERTER_H

#include <e32base.h>

#include <commdb.h>
#include <lbs/lbslocinfoconverterpluginbase.h>
#include <lbs/lbslocinfoconverterpluginclasstypes.h>
#include <lbs/lbslocinfoconverterplugincommon.h>

#include <lbs/lbslocationinfoconvertercommon.h>
#include <lbs/lbslocationclasstypes.h>
#include <lbs/lbslocationcommon.h>
#include <lbs/lbslocationposinfo.h>
#include <lbs/lbslocationgsminfo.h>
#include <lbs/lbslocationgsmneighbourinfo.h>
#include <lbs/lbslocationinfo.h>
#include <lbs/lbslocationwcdmainfo.h>
#include <lbs/lbslocationwcdmaneighbourinfo.h>
#include <lbs/lbslocationwlaninfo.h>

/**
 *  CExampleLocationConverter is an ECom plugin that implements CLbsLocInfoConversionPluginBase.
 *
 *  This class is responsible for monitering movement of mobile based on
 *  GSM information available to mobile at any instant.
 *
 *  @lib movementdetector.lib
 *  @since  S60 v4.0
 */
class CExampleLocationConverter : public CLbsLocInfoConverterPluginBase
										
    {

public:

    /**
     * Loads a location info conveter and initalises it.
     * 
     * @param[in] aObserver An observer for location conversion event.
     * @param[in] aPluginArgs Agruements sent to conversion plugin.
     * return Pointer to the new loation info converter.If module id is not specified
     * default plug in will be loaded.
     */
    static CExampleLocationConverter* NewL( TLbsLocInfoConverterPluginParams& aPluginParams );

    /**
     * Unloads this movement detector.
     *
     * @since S60 TACO
     */
     virtual ~CExampleLocationConverter();

	// From CLbsLocInfoConversionPluginBase

     /**
          * Converts the area informations of a group of geographical locations
          * to its corresponding position information.
          * 
          * @param[in] aLocationInfoArray Array of location informations corresponding 
          * to geographical locations are passed and on successful completion of this 
          * method,position information corresponding to the loation informations are  
          * updated in each area info object.
          * @param[in] aConversionPrefs Conversion preferences suggested by client.
          * 
          * @leave KErrArgument If the location info array is empty.
          */
     virtual void ConvertLocationInfoL( 
             RLbsLocationInfoArray& aLocationInfoArray,
             const TLbsConversionPrefs aConversionPrefs, 
             const TLbsConversionOutputInfoMask aRequestedInfo );

     /**
      * Cancels get location info operation.
      */     
     virtual void CancelConvertLocationInfo();
     
     virtual void ValidateClient( const TSecureId& aSecureId, 
                                  const TVendorId& aVendorId,
                                  const TLbsConversionOutputInfoMask aRequestedInfo );
                                  
     virtual void CancelValidateClient();        
     
     virtual void ConversionPluginPreferences(
                 TLbsConversionPluginInfo& aPluginInfo );

private:

	
	 void ConstructL(TLbsLocInfoConverterPluginParams& aPluginParams);
	
	/**
	 * Default C++ Constructor
	 */
	 CExampleLocationConverter(TLbsLocInfoConverterPluginParams& aParams);
	 
private: // data

    MLbsLocInfoConverterPluginObserver &iObserver;
    TBool iRetainLocalityInCache;
    };


#endif // C_LBTCELLIDMVMTDET_H