diff -r 4ea6f81c838a -r 0e9bb658ef58 mmuifw_plat/mul_datamodel_api/inc/mul/muldatapath.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmuifw_plat/mul_datamodel_api/inc/mul/muldatapath.h Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,161 @@ +/* +* Copyright (c) 2007-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: Header for MulDataPath +* +*/ + + +#ifndef MULDATAPATH_H +#define MULDATAPATH_H + +#include +#include + +namespace osncore + { + class UString; + } +using namespace osncore; + +namespace Alf + { + +//Forward Declaration +class MulDataPathImpl; //store data for MulDataPath class +/** + * @class MulDataPath + * + * MulDataPath represent hierarchy in data model. + * It stores index of node for each depth. + */ +class MulDataPath + { +public: + /** + * Default constructor + * + * By default path will point to root node. + */ + OSN_IMPORT MulDataPath(); + + /** + * Constrctor will create path with depth 1 and store specified index + * at depth1 + * + * @param aIndexForDepth1 Index of node at depth 1 + */ + OSN_IMPORT MulDataPath( int aIndexForDepth1 ); + + /** + * Constrctor will create path with depth 2 and store specified index + * at depth 1 and depth 2 + * + * @param aIndexForDepth1 Index of node at depth 1 + * @param aIndexForDepth2 Index of node at depth 2 + */ + OSN_IMPORT MulDataPath( int aIndexForDepth1, int aIndexForDepth2); + + /** + * Copy constructor + * + * @param aPath Existing path object + */ + OSN_IMPORT MulDataPath(const MulDataPath& aPath); + + /** + * Destructor + */ + OSN_IMPORT ~MulDataPath(); + + /** + * Create new depth and add specified index at created depth. + * + * @param aIndex position of node at current depth + */ + OSN_IMPORT void Append(int aIndex); + + /** + * Depth of path + * + * @return Depth + */ + OSN_IMPORT int Depth() const; + + /** + * Return position/index of node at given depth + * + * @param aDepth Depth of path + * @return Position/index of node + */ + OSN_IMPORT int operator[]( int aDepth ) const; + + /** + * Comparisition operator for Path. + * Comapre that path is less that other path or not + * + * @param aPath path to wich current path need to be compared + * @return true - if is less ,false otherwise + */ + bool operator<( MulDataPath& aPath); + + /** + * return position in current depth. For internal use only + * + * @param position in current depth + */ + int Index() const; + + /** + * Set internal position in current depth + * + * @param aIndex position in current depth + */ + void SetIndex( int aIndex ); + + /** + * Check whather both path are equal or not, + * + * + * @param aPath Path object to compare with + * @return true is equals, false other wise + */ + bool operator== ( const MulDataPath& aPath); + + /** + * Check whather both path are equal or not,For internal use only + * + * @param aPath Path object to compare with + * @return true is equals, false other wise + */ + bool IsEqual( const MulDataPath& aPath ); + + + /** + * Assignment operator + * + * @param aPath Existing path + */ + void operator= ( MulDataPath aPath ); + + +private: //data + + std::auto_ptr mData; //own + }; + + } //namespace Alf + +#endif //MULDATAPATH_H + +//End of file