--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/locationmapnavfw/library/inc/mnproviderimpl.h Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2005-2006 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: CMnProviderImpl class
+*
+*/
+
+
+#ifndef MN_PROVIDER_IMPL_H
+#define MN_PROVIDER_IMPL_H
+
+#include <swi/sisregistrysession.h>
+#include "mnprovider.h"
+
+class RMnServiceClientBase;
+class RApaLsSession;
+
+/* @brief Implementation of CMnProvider.
+ * @internal
+ */
+NONSHARABLE_CLASS( CMnProviderImpl ) : public CMnProvider
+ {
+ public :
+ ~CMnProviderImpl();
+
+ static CMnProviderImpl* NewL( TUid aProvider );
+ static CMnProviderImpl* NewL(
+ TUid aAppUid,
+ RApaLsSession& aApaSession,
+ Swi::RSisRegistrySession& aSisSession );
+
+ /** This constructor reads all provider's info from
+ * AppArc and Swi */
+ void ConstructL( TUid aAppUid );
+
+ /** Performance-aware constructor. Uses ready connections to
+ * AppArc and Swi */
+ void ConstructL(
+ TUid aAppUid,
+ RApaLsSession& aApaSession,
+ Swi::RSisRegistrySession& aSisSession );
+
+ /** Returns trust info of provider's sis package */
+ TBool IsTrusted();
+
+ public : // From CMnProvider
+
+ TUint32 SupportedFeatures( TService aService ) const;
+
+ protected :
+ CMnProviderImpl();
+
+ /** Resembles MN_SERVICE_INFO resource structure */
+ struct TMnAppServiceInfo
+ {
+ /* Supported features of this service */
+ TInt32 iServiceFeatures;
+ };
+
+ /** Reads application info from AppArc */
+ void ReadAppArcInfoL( RApaLsSession& aApaSession );
+
+ /** Looks for MN_SERVICE_INFO struct in application's SERVICE_INFO opaque data. */
+ TBool ReadMnServiceInfoL(
+ RApaLsSession& aApaSession,
+ TUid aServiceUid,
+ TMnAppServiceInfo& aServiceInfo );
+
+ /** Checks service features */
+ void CheckServiceFeaturesL(
+ RApaLsSession& aApaSession,
+ CMnProvider::TService aService,
+ TUint32& aServiceFeatures );
+
+ /** Reads extended service info from SERVICE_INFO struct */
+ void ReadServiceFeaturesL( RApaLsSession& aApaSession );
+
+ /** Reads package info from Installation Registry
+ * and verifies trust level */
+ void ReadPackageInfoL( Swi::RSisRegistrySession& aSisSession );
+
+ /** Verifies if converter plug-in exists for provider of MapImage service */
+ TBool IsConverterPluginFoundL();
+
+ /** \brief Sets Provider Application's name */
+ void SetNameL( const TDesC& aName );
+
+ /** \brief Sets Provider Application's short name */
+ void SetShortNameL( const TDesC& aShortName );
+
+ /** \brief Sets Provider Application's vendor name */
+ void SetVendorNameL( const TDesC& aVendorName );
+
+ /** \brief Sets Provider Application's version */
+ void SetVersion( TVersion aVersion );
+
+ /** \brief Sets Provider Application's supported services */
+ void SetSupportedServices( TServices aServices );
+
+ protected :
+ TBool iIsTrusted;
+ TUint32 iMapViewFeatures;
+ TUint32 iNavigationFeatures;
+ TUint32 iGeocodingFeatures;
+ TUint32 iMapImageFeatures;
+ };
+
+#endif // MN_PROVIDER_IMPL_H
+