mulwidgets/muldatamodel/inc/mulpullmode.h
branchRCL_3
changeset 26 0e9bb658ef58
parent 0 e83bab7cf002
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mulwidgets/muldatamodel/inc/mulpullmode.h	Wed Sep 01 12:23:18 2010 +0100
@@ -0,0 +1,105 @@
+/*
+* 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  Pull Mode
+ *
+*/
+
+
+#ifndef MULPULLMODE_H
+#define MULPULLMODE_H
+
+//Includes
+#include "mulpushmode.h"
+
+namespace Alf
+    {
+    
+//Forward Declaration
+
+class IMulModelProvider;
+class MulAsyncDataProvider;
+
+/**
+ *  Implementation for Pull Mode
+ */
+class MulPullMode : public MulPushMode
+    {
+    
+public:
+	
+	/**
+	 * C++ constructor.
+	 * 
+	 * @param aDataWindow DataWindow for model
+	 * @param aModelProvider Data Provider for model
+	 */
+    MulPullMode( MulPageDataWindow& aDataWindow,
+				 const IMulModelProvider& aModelProvider);
+	
+	/**
+	 * Destructor.
+	 */
+	~MulPullMode();
+    
+public: //from MulPushMode
+   	
+	
+	void Update( int aIndex, int aCount, 
+                         const MulDataPath& aPath);
+            
+	void Refresh(int aCount, const MulDataPath& aPath);				             
+	     
+	void SetData( int aIndex, auto_ptr<MulVisualItem> aVisualItem, 
+                         const MulDataPath& aPath);
+
+	void SetTemplate( mulwidget::TLogicalTemplate aTemplateId );               
+	                    
+	void WindowSiftedDown();
+
+	void WindowSiftedUp();	
+	
+	void ModelCountChanged(int aOldCount, int aNewCount);
+	
+	void DataWindowUpdated();
+	
+	const MulVisualItem& Item( int aAbsoluteIndex );
+	                    	
+private:
+
+	/**
+	 * Create list of indices and call ProvideData method
+	 *
+	 * @param aStartIndex, Index form where the data should be fetched
+	 * @param aRange, Number of items for which data should be fetched
+	 */
+	void ProvideData(int aStartIndex, int aRange);
+	
+	/**
+	 * Update Loop buffer because of data window updation
+	 * 
+	 */
+	void UpdateLoopBuffer();
+	  				
+private: //data
+
+	//IMulModelProvider* mModelProvider; // Not own
+	auto_ptr<MulAsyncDataProvider> mModelProvider; // own
+    };
+    
+    } // namespace Alf
+
+#endif // MULPULLMODE_H
+    
+//End of file
+