--- a/mulwidgets/muldatamodel/inc/mulcachemanager.h Mon Jun 21 16:15:51 2010 +0300
+++ /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