diff -r 000000000000 -r 32704c33136d ncdengine/engine/accesspointmanager/inc/catalogsclientaccesspointdata.h --- /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 iAccessPoints; + RPointerArray iAccessPointMaps; +}; + +#endif