// WEBACTOB.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

// Header for CWebDataCollector.
//
//=============================================================================
// This class is used to "read" data from a CWTLDocument
//=============================================================================
//=============================================================================

#ifndef __WEBACTOB_H__
#define __WEBACTOB_H__

#if !defined(__WEBDHAN_H__)
#include "webdhan.h"	// for MWebDataHandler
#endif

#include "webdef.h"

class CWebModel;


// An active object class to collect data from a CWtlDocument
class CWebDataCollector: public CActive
	{
	public:
	IMPORT_C CWebDataCollector(MWebDataHandler* aHandler, MWebDataHandler* aTarget, TInt aPriority, CWebModel* aModel, const TInt aFrameID);
	IMPORT_C ~CWebDataCollector();

	IMPORT_C void  RunL();
	IMPORT_C void  StartL();
	IMPORT_C TBool GettingData() const;
	IMPORT_C void  Cancel();

	enum TPriority
		{
		EPrioritySavePage = -17,
		EPriorityNewPage = -18,
		EPriorityCurrentPage = -19,
		EPriorityPicture = -20,
		EPriorityOtherMime = -21
		};

	IMPORT_C TBool IsComplete();

	private:
	void DoPollDataL();
	void DoProcessDataL();
	void DoPrepareToPoll();
	void DoCancel();

	static void AllDataFlagCleanupItem(TAny* aAllDataFlag);

	enum TState
		{
		EInactive,
		EWaitingToPollData,
		EWaitingToProcessData
		};

	MWebDataHandler* iHandler;
	MWebDataHandler* iTarget;
	TState iState;
	CWebModel* iWebModel;	
	const TInt iWebClassID;
	const TInt iFrameID;
	TBool iInAllData;
	__DECLARE_LOG;
	};

#endif // __WE_ACTOB_H__
