00001 /* 00002 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 00003 * All rights reserved. 00004 * This component and the accompanying materials are made available 00005 * under the terms of "Eclipse Public License v1.0" 00006 * which accompanies this distribution, and is available 00007 * at the URL "http://www.eclipse.org/legal/epl-v10.html". 00008 * 00009 * Initial Contributors: 00010 * Nokia Corporation - initial contribution. 00011 * 00012 * Contributors: 00013 * 00014 * Description: Class that implements location information converter 00015 * information 00016 * 00017 */ 00018 00019 00020 #ifndef LBSLOCATIONINFOCONVERTERIMPL_H_ 00021 #define LBSLOCATIONINFOCONVERTERIMPL_H_ 00022 00023 00024 #include <e32base.h> 00025 #include <lbs/lbslocationinfo.h> 00026 #include "rlbslocmonitorsession.h" 00027 #include "rlbslocinfoconverter.h" 00028 #include <lbs/lbslocationinfoconvertercommon.h> 00029 00030 00031 // forward declaration 00032 class MLbsLocationResolverObserver; 00033 00034 00038 class CLbsLocationResolverImpl : public CActive 00039 { 00040 public: 00048 static CLbsLocationResolverImpl* NewL( MLbsLocationResolverObserver& aObserver, 00049 const TUid aConversionModuleId ); 00050 00054 ~CLbsLocationResolverImpl(); 00055 00068 void ResolveLocationL(const CLbsLocationInfoBase& aLocationInfo); 00069 00073 void CancelResolveLocation(); 00074 00080 TInt SetConversionPreferences(TLbsConversionPrefs aConversionPrefs); 00081 00088 TLbsConversionPrefs ConversionPreferences(); 00089 00090 protected: // From CActive 00091 void RunL(); 00092 00093 void DoCancel(); 00094 00095 private: 00099 CLbsLocationResolverImpl( MLbsLocationResolverObserver& aObserver ); 00100 00104 CLbsLocationResolverImpl( CLbsLocationResolverImpl& ); 00105 00109 CLbsLocationResolverImpl& operator=( CLbsLocationResolverImpl& ); 00110 00114 void ConstructL( const TUid aConversionModuleId ); 00115 00116 private: // data 00117 00121 CLbsLocationInfo* iLocationInfo; 00122 00126 MLbsLocationResolverObserver& iObserver; 00127 00131 RLbsLocMonitorSession iLocMoniterSession; 00132 00136 RLbsLocInfoConverter iLocInfoConverter; 00137 00141 TUid iConversionModuleId; 00142 00146 TLbsConversionPrefs iConversionPrefs; 00147 }; 00148 00149 #endif // LBSLOCATIONINFOCONVERTERIMPL_H_