mulwidgets/muldatamodel/inc/mulcachemanager.h
changeset 17 3eca7e70b1b8
parent 3 4526337fb576
--- a/mulwidgets/muldatamodel/inc/mulcachemanager.h	Tue Feb 02 00:28:09 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,355 +0,0 @@
-/*
-* 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:  Cache Manager class
-*
-*/
-
-
-#ifndef MULCACHEMANAGER_H
-#define MULCACHEMANAGER_H
-
-#include <mul/mulvisualitem.h>
-
-#include <memory>
-#include <vector>
-#include <map>
-
-#include <mul/imulwidgetdef.h>
-#include <mul/muldatapath.h>
-
-#include "multree.h"
-#include "mulvectoradaptor.h"
-
-namespace osncore
-    {
-    class UString;  
-    }
-using namespace osncore;
-
-namespace Alf
-	{
-
-//Forward Declaration
-class MulVisualItem;
-class IAlfMap;
-class IAlfContainer;
-
-/**
- *  Implementation class for Cache Manager.
- *  @lib 
- */
-
-class MulCacheManager
-    {
-public: //structure
-
-	/**
-	 * Comparation structure
-	 * Required by stl map to compare MulDataPath
-	 */
-	struct TCompPath
-	{
-	  bool operator()( MulDataPath& path1, MulDataPath& path2 ) const
-	  {
-	  return ( path1 < path2 ) ;
-	  }
-	};
-	
-	typedef std::map< int,MulVisualItem* > MulVisualItemMap;
-	typedef std::map< int, int > MulSelectionMap;
-
-public: //Constructor and destructor
-    
-    /**
-     * C++ constructor.
-     */
-     MulCacheManager();
-     
-     /**
- 	 * Destructor.
- 	 */
-	~MulCacheManager();
-	
-public: //New method	
-	
-	/**
-	 * Create Node for visual items in tree. 
-	 * this function must be called before adding VisualItem
-	 * 
-	 * @param aStartIndex Index of first item.
-	 * @param aCount Number of items to be added.
-	 * @param aPath
-	 */
-	void CreateNodes(int aStartIndex, int aCount, const MulDataPath& aPath );
-	
-	/**
-     * Adds Visual Item in CacheManager.
-     * 
-     * @param aVisualItem Visual items to be added.
-     * @param aItemIndex Index where item need to be added
-     * 
-     * @return index where item is added
-     */ 
-	//void AddVisualItem( std::auto_ptr<MulVisualItem> aVisualItem, int aItemIndex );
-	
-	/**
-	 * Add Visual Item to cache manager
-	 * 
-	 * @param aVisualItem  Visual item to be added
-	 * @param aPath Path of visual item in  tree
-	 * @param aIndex Index of visual item in path
-	 */
-	void AddVisualItem( std::auto_ptr<MulVisualItem> aVisualItem, const MulDataPath& aPath , int aIndex );
-	
-	/**
-     * Removes Visual Item in CacheManager.
-     * 
-     * @param aIndex index of item to be removed.
-     * 
-     * @throws invalid_argument exception
-     */ 
-	
-	void RemoveVisualItem( int aIndex  );
-	
-	/**
-	 * Remove Visual Item from cache manager
-	 * 
-	 * @param aPath Path of visual item in  tree
-	 * @param aIndex Index of visual item in path
-	 */
-	void RemoveVisualItem( const MulDataPath& aPath , int aIndex );
-	
-	
-	/**
-	 * Remove Visual item form cache manager
-	 *
-	 * @param aIndex Start index of item to delete
-	 * @param aCount No of items to be removed
-	 * @param aPath Path from items to be removed
-	 */
-	void RemoveVisualItem(int aIndex, int aCount, const MulDataPath& aPath);
-	
-	/**
-     * Updates Visual Item in CacheManager.
-     * 
-     * @param aVisualItem Visual items to be updated.
-     * @param aItemIndex Index where item need to be added
-     * @throws invalid_argument exception
-     */ 
-	
-	void UpdateVisualItem( MulVisualItem& aVisualItem, int aItemIndex );
-	
-	
-	/**
-     * Updates Visual Item in CacheManager.
-     * 
-     * @param aVisualItem Visual items to be updated.
-     * @param aPath Path of visual item in tree
-     * @param aIndex Index of visual item in path
-     * @throws invalid_argument exception
-     */ 
-	void UpdateVisualItem( MulVisualItem& aVisualItem, const MulDataPath& aPath, int aIndex );
-		
-	/**
-     * Returns Visual Items to Model from CacheManager.
-     * 
-     * @param aIndex  Index of item to be retrieved.
-     */
-	
-	MulVisualItem* Data( int aIndex ) const;
-	
-	/**
-     * Returns Visual Items to Model from CacheManager.
-     * 
-     * @param aPath Path of visual item in tree
-     * @param aIndex Index of visual item in path
-     */
-	MulVisualItem* Data( const MulDataPath& aPath, int aIndex ) const;
-	
-	/**
-     * Gets Number Of items stored in the Cache Manager .
-     * 
-     * @return number of items in the Cache Manager
-     */
-	int Count() const;
-	
-	/**
-     * Get Number of items in mentiond path
-     * 
-     * @param aPath Path of node
-     * @return number of items 
-     */
-	//int Count( const MulDataPath& aPath ) const;
-	
-	/**
-     * Get Number of childs for the given node
-     * 
-     * @param aPath Path of node
-     * @return number of items 
-     */
-	//int ChildCount( const MulDataPath& aPath ) const;	
-	
-	/**
-	 * Retrun number of items,
-	 * Checks that node is expanded or not , 
-	 * if expanded then add it couts child count else ignore child count.
-	 * 
-	 * @return Node count
-	 */
-	int ExpandedNodeCount( ) const;
-	
-	/**
-	 * Return path of node of specified absoulte index
-	 * 
-	 * @param aAbsoluteIndex Absoulte index of node in tree
-	 * @return Path to node.
-	 */
-	//MulDataPath Path( int aAbsoluteIndex ) const;
-	
-	/**
-	 * Expand Node with given absolute index
-	 * This Api will be called by widget to expand node.
-	 * 
-	 * @param aAbsoluteIndex Absolute index of node to be expanded
-	 * @return Number of items affected
-	 */
-	//int ExpandNode( int aAbsoluteIndex );
-	
-	
-	/**
-	 * Returns absolute index
-	 * 
-	 * @param aPath Path to node
-	 * @param aIndex index of node in path
-	 * @return Absolute index
-	 */
-	//int PathToAbsoluteIndex( const MulDataPath& aPath, int aIndex ) const;
-	
-	/**
-	 * Mark or Unmark item
-	 * 
-	 * @param aType Marking type
-	 * @param aItemsIndex vector of index of items
-	 * @param aPath Path/depth at wich items are to be marked/unmark
-	 */
-	void SetMarkedIndices( MulWidgetDef::TMulWidgetMarkingType aType ,
-						   const std::vector<int>& aItemsIndex,
-						   const MulDataPath& aPath );
-
-	/**
-	 * Mark or Unmark or unmark all type
-	 * 
-	 * @param aType Marking type
-	 */
-	void SetMarkedIndices( MulWidgetDef::TMulWidgetMarkingType aType = MulWidgetDef::EMulMarkAll );
-
-	/**
-	 * Return mared index for mentioned path
-	 * 
-	 * @param aPath Path
-	 * @return vector of index
-	 */
-	const std::vector<int>& MarkedIndices( const MulDataPath& aPath ) ;
-
-	/**
-	* Check weather item at specified index is marked or not.
-	* 
-	* @param aIndex Absolute index of item
-	* @return true if seleccted else otherwise
-	*/	
-	bool IsItemMarked( int aIndex ) const;
-	
-    /**
-	 * Function for setting the item Marked or Unmarked. For mark and
-	 * unmark operations, index of item should be provided.
-	 * 
-	 * @param aType Type of marking operation to be performed. 
-	 * @param aItemsIndex Indices of the items to be changed
-	 * @throw Invalid Argument, if type is specified as mark-all and unmark-all. 
-	 */ 
-    void SetMarkedIndex( MulWidgetDef::TMulWidgetMarkingType aType, int aIndex );
-	
-private: //New Method
-
-	/**
-	 * Remove visual Item data from map and update other keys for map
-	 * 
-	 * @param aPath Path of visual item in  tree
-	 * @param aIndex Index of visual item in path
-	 * @param aCount No of items to be removed
-	 */
-	void RemoveItemFromMap(const MulDataPath& aPath , int aIndex );
-
-	/**
-	 * Remove child visual Item from map
-	 * 
-	 * @param aPath Path of visual item in  tree
-	 * @param aIndex Index of visual item in path
-	 */	
-	//void RemoveChildItemsFromMap(MulDataPath aPath , int aIndex );
-
-	
-	/**
-	 * Update index in Map.
-	 * 
-	 * Once we remove any item from tree.
-	 * Index of other items will be changed so the path that points
-	 * to Data of Item. We now need to update path that to item.
-	 * 
-	 * @param aMap Map wich need to be updated
-	 * @param aIndex Index from item removed
-	 */
-	template <typename T> void UpdataPathInMapAfterRemove( std::map<int,T >& aMap, int aIndex, int aCount );
-
-	/**
-	 * Update Path in Map.
-	 * 
-	 * Update the path (modify thh depth) for the child items after remove.
-	 * 
-	 * @param aMap Map wich need to be updated
-	 * @param aParentNode, parent node
-	 * @param aOldPath Old path
-	 * @param aNewPath New path	 
-	 * @param aIndex, index of the node in that parent node
-	 */							 						 
-//	template <typename T> void UpdataChildDepthInMap( 
-//											std::map<MulDataPath,T,TCompPath>& aMap,
-//											MulTreeNode* aParentNode,MulDataPath& aOldPath,
-//								 			MulDataPath& aNewPath,int aIndex);	
-	/**
-	 * Update index in Map.
-	 * 
-	 * Once we insert any item from tree.
-	 * Index of other items will be changed so the path that points
-	 * to Data of Item. We now need to update path that to item.
-	 * 
-	 * @param aMap Map wich need to be updated
-	 * @param aIndex Index at which new item inserted
-	 */
-	template <typename T> void UpdataPathInMapAfterInsert( std::map<int,T >& aMap, int aIndex, int aCount );
-																								
-	
-private: //data
-		
-    int                         mTotalCount; // total no of items in cache
-	MulVisualItemMap 		    mVisualItemMap; //store visual item in map using path as key	
-	MulVectorAdaptor<int>       mSelectionVector;//store maked indices to ,used to return marking information to client
-	MulSelectionMap 			mSelectionMap; //store marking information using path as key
-  };
-  
-} // namespace Alf
-
-#endif //MULCACHEMANAGER_H
-    
-//End of file