ncdengine/engine/accesspointmanager/inc/catalogsclientaccesspointdata.h
changeset 4 32704c33136d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/engine/accesspointmanager/inc/catalogsclientaccesspointdata.h	Tue Jan 26 12:06:03 2010 +0200
@@ -0,0 +1,127 @@
+/*
+* 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:   Class CCatalogsClientAccessPointData declaration
+*
+*/
+
+
+#ifndef C_CATALOGSCLIENTACCESSPOINTDATA_H
+#define C_CATALOGSCLIENTACCESSPOINTDATA_H
+
+#include "ncdstoragedataitem.h"
+#include "catalogsaccesspointmanager.h"
+
+class CCatalogsAccessPoint;
+class CCatalogsAccessPointMap;
+
+class CCatalogsClientAccessPointData : public CBase,
+                                       public MNcdStorageDataItem 
+{
+public:
+    static CCatalogsClientAccessPointData* NewL();
+    static CCatalogsClientAccessPointData* NewLC();
+    virtual ~CCatalogsClientAccessPointData();
+
+    /**
+     * Add the given access point to the access point list.
+     *
+     * @param aAccessPoint The access point.
+     */    
+    void AddAccessPointL(CCatalogsAccessPoint* aAccessPoint);
+
+    /**
+     * Map the access point for the given namespace and action.
+     *
+     * @param aNameSpace The namespace.
+     * @param aType The action.
+     * @param aApId Id of the access point to be mapped.
+     */
+    void MapAccessPointL(
+        const TDesC& aNameSpace,
+        const MCatalogsAccessPointManager::TAction& aType,
+        const TDesC& aApId);
+        
+    /**
+     * Map the access point for the given namespace, catalog ID
+     * and action.
+     *
+     * @param aNameSpace The namespace.
+     * @param aCatalogId ID of the catalog.
+     * @param aType The action.
+     * @param aApId Id of the access point to be mapped.
+     */
+    void MapAccessPointL(
+        const TDesC& aNameSpace,
+        const TDesC& aCatalogId,
+        const MCatalogsAccessPointManager::TAction& aAction,
+        const TDesC& aApId);
+
+    /**
+     * Return the access point which is mapped for the given namespace
+     * and action. The ownership is not returned. Returns NULL if
+     * no access point is mapped.
+     *
+     * @param aNameSpace The namespace.
+     * @param aAction The action.
+     * @return The access point object or NULL.
+     */
+    CCatalogsAccessPoint* AccessPoint(
+        const TDesC& aNameSpace,
+        const MCatalogsAccessPointManager::TAction& aAction) const;
+        
+    /**
+     * Return the access point which is mapped for the given namespace,
+     * catalog ID and action. The ownership is not returned. 
+     * Returns NULL if no access point is mapped.
+     *
+     * @param aNameSpace The namespace.
+     * @param aCatalogId The catalog ID.
+     * @param aAction The action.
+     * @return The access point object or NULL.
+     */
+    CCatalogsAccessPoint* AccessPointL(
+        const TDesC& aNameSpace,
+        const TDesC& aCatalogId,
+        const MCatalogsAccessPointManager::TAction& aAction) const;
+
+    /**
+     * Returns the number of access points in the list.
+     *
+     * @return The number of access points.
+     */
+    TInt AccessPointCount() const;
+
+    /**
+     * By the given index, returns an access point.
+     *
+     * @return An access point.
+     */
+    CCatalogsAccessPoint& AccessPoint(const TInt& aIndex);
+
+    
+public: // MNcdStorageDataItem
+    void ExternalizeL(RWriteStream& aStream);
+    void InternalizeL(RReadStream& aStream);
+        
+protected:
+    CCatalogsClientAccessPointData();
+    CCatalogsAccessPoint* AccessPointById(const TDesC& apId) const;
+    
+private:
+    
+    RPointerArray<CCatalogsAccessPoint> iAccessPoints;
+    RPointerArray<CCatalogsAccessPointMap> iAccessPointMaps;
+};
+
+#endif