diff -r 000000000000 -r 32704c33136d ncdengine/provider/client/inc/ncdnodedependencyinfoimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ncdengine/provider/client/inc/ncdnodedependencyinfoimpl.h Tue Jan 26 12:06:03 2010 +0200 @@ -0,0 +1,147 @@ +/* +* Copyright (c) 2006-2008 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: CNcdNodeDependencyInfo +* +*/ + + +#ifndef NCD_NODE_DEPENDENCY_INFO_IMPL +#define NCD_NODE_DEPENDENCY_INFO_IMPL + + +#include +#include + +#include "ncdnodedependencyinfo.h" + +class CNcdNodeIdentifier; +class CNcdDependencyInfo; +class CNcdNodeManagerProxy; + + +/** + * This class provides functions to get information about dependency + * nodes or dependency content. + */ +class CNcdNodeDependencyInfo: public CBase, + public MNcdNodeDependencyInfo +{ +public: + + /** + * @see CNcdNodeDependencyInfo::CNcdNodeDependencyInfo + * @see CNcdNodeDependencyInfo::ConstructL + */ + static CNcdNodeDependencyInfo* NewL( const CNcdDependencyInfo& aInfo, + CNcdNodeManagerProxy& aNodeManager ); + + /** + * @see CNcdDependencyInfo::NewL + */ + static CNcdNodeDependencyInfo* NewLC( const CNcdDependencyInfo& aInfo, + CNcdNodeManagerProxy& aNodeManager ); + + + /** + * Destructor + */ + ~CNcdNodeDependencyInfo(); + + +public: // MNcdNodeDependencyInfo + /** + * @see MNcdNodeDependencyInfo::Name + */ + virtual const TDesC& Name() const; + + /** + * @see MNcdNodeDependencyInfo::Version + */ + virtual const TDesC& Version() const; + + /** + * @see MNcdNodeDependencyInfo::Uid + */ + virtual TUid Uid() const; + + /** + * @see MNcdNodeDependencyInfo::DependencyNodeL + */ + virtual MNcdNode* DependencyNodeL() const; + + + /** + * @see MNcdNodeDependencyInfo::State + */ + virtual TNcdDependencyState State() const; + +public: // new methods + + /** + * return const CNcdNodeIdentifier* Identifier of the metadata that + * will provide the dependency content. If an identifier has not + * been set, then NULL is returned. Ownership is NOT transferred. + */ + const CNcdNodeIdentifier* Identifier() const; + + +protected: + /** + * Constructor + * + * @param aNodeManager Node manager is used to create the node. + */ + CNcdNodeDependencyInfo( CNcdNodeManagerProxy& aNodeManager ); + + /** + * ConstructL + * + * @note If this function leaves, then the node identifier will be + * deleted. + * + * @param aInfo Dependency information that is used to internalize + * this class object. + */ + void ConstructL( const CNcdDependencyInfo& aInfo ); + + + /** + * @return CNcdNodeManageraProxy& Can be used to create nodes. + */ + CNcdNodeManagerProxy& NodeManager() const; + + +private: + CNcdNodeDependencyInfo( const CNcdNodeDependencyInfo& aObject ); + CNcdNodeDependencyInfo& operator =( const CNcdNodeDependencyInfo& aObject ); + +private: // data + + // Name of the dependency content + HBufC* iName; + // Version of the dependency content + HBufC* iVersion; + // Uid of the dependency content + TUid iUid; + // Identifier of the metadata that will provide the + // dependency content. + CNcdNodeIdentifier* iIdentifier; + + CNcdNodeManagerProxy& iNodeManager; + + // State of the dependency + TNcdDependencyState iDependencyState; +}; + +#endif // NCD_NODE_DEPENDENCY_INFO_IMPL