diff -r 4ea6f81c838a -r 0e9bb658ef58 mulwidgets/muldatamodel/inc/mulpullmode.h --- /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 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 mModelProvider; // own + }; + + } // namespace Alf + +#endif // MULPULLMODE_H + +//End of file +