Adjusted to avoid exports, etc, from a top-level bld.inf
/** 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: Contains MNcdNode interface**/#ifndef M_NCD_NODE_H#define M_NCD_NODE_H#include <e32cmn.h>#include <e32std.h>#include "catalogsbase.h"#include "catalogsarray.h"#include "ncdinterfaceids.h"class MNcdNodeContainer;class MNcdLoadNodeOperation;class MNcdLoadNodeOperationObserver;class MNcdOperation;/** * Node contains the basic information about the content. * The interface also provides a load function that must be used to * initialize the node, before accessing other information. * * When the UI gets the node, the node may not contain any information * except from the node state. The state may be checked by calling * MNcdNode::State(). MNcdNode::LoadL() can then be called to load * the content for the node, if the state is uninitialized or expired. * * @note The actual content information, such as name, description etc. are * available through the MNcdNodeMetadata interface that can be queried from * node objects. There are various other additional node interfaces as well * that all offer different functionality and information about the node. The * interfaces are not available at all times, they have different criteria for * becoming available. For example, the MNcdNodeMetadata interface becomes * available for a node when its metadata is loaded, so if it is not available * at first, it can be made available by calling the node's MNcdNode::LoadL() * method. * * * @see MNcdNodeMetadata * @see MNcdNodeContainer * @see MNcdNodeContent * @see MNcdNodeDependency * @see MNcdNodeDownload * @see MNcdNodeIcon * @see MNcdNodeInstall * @see MNcdNodePreview * @see MNcdNodePurchase * @see MNcdNodeScreenshot * @see MNcdNodeSearch * @see MNcdNodeSkin * @see MNcdNodeSubscribe * @see MNcdNodeUpgrade * @see MNcdNodeUriContent * @see MNcdNodeUserData */class MNcdNode : public virtual MCatalogsBase {public: /** * Unique identifier for the interface, required for all MCatalogsBase interfaces. * * */ enum { KInterfaceUid = ENcdNodeUid }; /** * TNcdNode::TState gives information in what state the node is at the moment. * This information can be used to check if the node information should be * loaded over network or from local cache. * * */ enum TState { /** * Node is not initialized and the data should * be loaded from either local cache, or over network. */ EStateNotInitialized, /** Node data is up to date. */ EStateInitialized, /** Node data is expired and should be reloaded over network. */ EStateExpired }; /** * Gives information about the state of the node. This information can be used to * check whether the item data has been loaded or if the data is expired. * * * @return The state of the node. */ virtual TState State() const = 0; /** * Gets the node id. * * * @return Id of the node. */ virtual const TDesC& Id() const = 0; /** * All nodes and their content are part of a namespace. Within the * namespace, node identifiers are unique. This function returns the namespace * of this node and its contents. * * * @return The namespace identifier. If the protocol has not defined * any value, an empty descriptor is returned. */ virtual const TDesC& Namespace() const = 0; /** * Gets the name of the catalog source for the node. * * * @return Name of the catalog source where the node is loaded from. An * empty string is returned if the source name is not defined. */ virtual const TDesC& CatalogSourceName() const = 0; /** * Retrieves the reference to the parent of this node. * * * @return The parent of this node. NULL if the node * has no parent. Counted, Release() must be called * after use. * @exception Leave System wide error code, * KErrNotFound if the parent node is not loaded. */ virtual MNcdNodeContainer* ParentL() const = 0; /** * Loads node information from the content provider. * * @note Should be called when a folder node needs to be refreshed, clears all * child nodes for folders! * * * @param aObserver Observer for the operation. * @return Pointer to an operation object that can be * used to check the loading progress. Counted, Release() must be called * after use. * @exception Leave System wide error code. * KNcdErrorParallelOperationNotAllowed if a parallel client is running * an operation for the same metadata. See MNcdOperation for full explanation. */ virtual MNcdLoadNodeOperation* LoadL( MNcdLoadNodeOperationObserver& aObserver ) = 0; /** * Returns a list of currently active operations of this node for progress * monitoring and operation management. * * @note Operations may also be other than just MNcdLoadNodeOperations. * * @return List of currently active operations for the node. Counted, * each pointer must be released after use e.g. with a call to the array's * RCatalogsArray::ResetAndDestroy(). * @exception Leave System wide error code */ virtual RCatalogsArray< MNcdOperation > OperationsL() const = 0; /** * Adds the node to favorite nodes. If the node is already * a favorite node, does nothing. * * @exception Leave System wide error code */ virtual void AddToFavoritesL() = 0;protected: /** * Destructor. * * @see MCatalogsBase::~MCatalogsBase */ virtual ~MNcdNode() {} };#endif // M_NCD_NODE_H