ncdengine/engine/accesspointmanager/inc/catalogsaccesspointmanager.h
changeset 0 ba25891c3a9e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/engine/accesspointmanager/inc/catalogsaccesspointmanager.h	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,140 @@
+/*
+* Copyright (c) 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:   Interface MCatalogsAccessPointManager declation
+*
+*/
+
+
+#ifndef M_CATALOGSACCESSPOINTMANAGER_H
+#define M_CATALOGSACCESSPOINTMANAGER_H
+
+class CCatalogsAccessPoint;
+class MNcdConfigurationProtocolDetail;
+class MNcdConfigurationProtocolClientConfiguration;
+class CNcdNodeIdentifier;
+class CNcdKeyValuePair;
+
+class MCatalogsAccessPointManager
+{
+public:
+    enum TAction 
+        {
+        EDownload,
+        EBrowse,
+        EPurchase,
+        };
+    
+    /**
+     * Virtual destructor.
+     */
+    virtual ~MCatalogsAccessPointManager() 
+        {
+        }
+
+    /**
+     * Sets fixed access point. If fixed access point is set, it is created to
+     * commsDB and always used. That is, when AccessPointIdL is called, it will always
+     * return the fixed AP, if it is set with this function.
+     *
+     * @param aApDetails Details of the access point. Key-value pairs are AP properties
+     *                   where key is the name of the property and value is its value.
+     */
+    virtual void SetFixedApL( const RPointerArray<CNcdKeyValuePair>& aApDetails ) = 0; 
+    
+    /**
+     * Gets fixed accesspoint.
+     *
+     * @param aAccessPointId ID of the fixed accesspoint. Value is unchanged if fixed accesspoint is not set.
+     * @leave Symbian error code
+     */
+    virtual void GetFixedApL( TUint32& aAccessPointId ) = 0;        
+    
+    /**
+     * Parses the client configuration details and creates the access points to
+     * commsDB if it is missing them. Also parses the contentSources section and
+     * maps download, browse and purchase access points to correct namespaces.
+     *
+     * @param aConfiguration The client configuration response.
+     * @param aClientUid The client UID.
+     * @param aIgnoreFixedAp If true, accesspoint data is parsed even if fixed 
+     * accesspoint was set
+     * @param aCreatedAps If a pointer is given then ids of created accesspoints are 
+     * added to it. Ownership is NOT transferred
+     */
+    virtual void ParseAccessPointDataFromClientConfL(
+        const MNcdConfigurationProtocolClientConfiguration& aConfiguration,
+        const TUid& aClientUid,
+        TBool aIgnoreFixedAp = EFalse, 
+        RArray<TUint32>* aCreatedAps = NULL ) = 0;
+
+    /**
+     * Get accesspoint's id in comms database. Method also validates that 
+     * correct accesspoint settings exists in the commsdatabase.
+     * So for example if accesspoint has been removed from the commsdatabase
+     * it is created again based on the correct settings.
+     * 
+     * @param aNameSpace The namespace of content source.
+     * @param aAction The action.
+     * @param aClientUid The UID of the client.
+     * @param aAccessPointId Id of the accesspoint in the comms database
+     * @return Error code, KErrNotFound if the access point is undefined.
+     */
+    virtual TInt AccessPointIdL(
+        const TDesC& aNameSpace,
+        const MCatalogsAccessPointManager::TAction& aAction, 
+        const TUid& aClientUid,
+        TUint32& aAccessPointId) = 0;    
+
+
+    /**
+     * Get accesspoint's id in comms database. Method also validates that 
+     * correct accesspoint settings exists in the commsdatabase.
+     * So for example if accesspoint has been removed from the commsdatabase
+     * it is created again based on the correct settings.
+     * 
+     * @param aNameSpace The namespace of content source.
+     * @param aCatalogId Id of the catalog.
+     * @param aAction The action.
+     * @param aClientUid The UID of the client.
+     * @param aAccessPointId Id of the accesspoint in the comms database
+     * @return Error code, KErrNotFound if the access point is undefined.
+     */
+    virtual TInt AccessPointIdL(
+        const TDesC& aNameSpace, 
+        const TDesC& aCatalogId,
+        const MCatalogsAccessPointManager::TAction& aAction, 
+        const TUid& aClientUid,
+        TUint32& aAccessPointId) = 0;
+        
+    /**
+     * Get accesspoint's id in comms database. Method also validates that 
+     * correct accesspoint settings exists in the commsdatabase.
+     * So for example if accesspoint has been removed from the commsdatabase
+     * it is created again based on the correct settings.
+     * NOTE! The function leaves if the node with the given identifier does not exist.
+     *
+     * @param aNodeIdentifier The node identifier.
+     * @param aAction The action.
+     * @param aClientUid The UID of the client.
+     * @param aAccessPointId Id of the accesspoint in the comms database
+     * @return Error code, KErrNotFound if the access point is undefined.
+     */
+    virtual TInt AccessPointIdL(
+        const CNcdNodeIdentifier& aNodeIdentifier,
+        const MCatalogsAccessPointManager::TAction& aAction, const TUid& aClientUid,
+        TUint32& aAccessPointId) = 0;
+
+   	};
+	
+#endif