// WEBCITER.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#if !defined(__WEBCITER_H__)
#define __WEBCITER_H__

#if !defined(__E32BASE_H__)
#include <e32base.h>
#endif
#if !defined(__APMSTD_H__)
#include <apmstd.h>
#endif

class CWebServicesModel;
class MWebDocumentInfo;
class RWtlDocIterator;
class CWtlSession;

class CWebCacheIterator: public CBase
	// Allows access to the document information for cached items
	{
public:
	IMPORT_C static CWebCacheIterator* NewL(CWebServicesModel* aWebServicesModel, TBool aTopLevelOnly, const TDataType& aType = TDataType());
	IMPORT_C static CWebCacheIterator* NewL(CWtlSession* aWtlSession, TBool aTopLevelOnly,  const TDataType& aType = TDataType());
	IMPORT_C ~CWebCacheIterator();
	IMPORT_C void Start();
	IMPORT_C void End();
	IMPORT_C void Next();
	IMPORT_C void Previous();
	IMPORT_C MWebDocumentInfo* ItemLC() const; // caller is responsible for deleting this
private:
	CWebCacheIterator();
	void ConstructL(CWtlSession* aWtlSession, TBool aTopLevelOnly, const TDataType& aType);
private:
	RWtlDocIterator* iWtlDocIter;
	CWtlSession* iSession;
	TBool iTopLevelOnly;
	};

#endif