--- /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 <memory>
+#include <osn/osndefines.h>
+
+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<MulDataPathImpl> mData; //own
+ };
+
+ } //namespace Alf
+
+#endif //MULDATAPATH_H
+
+//End of file