// EIKIRPRV.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#if !defined(__EIKIRPRV_H__)
#define __EIKIRPRV_H__

#if !defined(__E32BASE_H__)
#include <e32base.h>
#endif

//
// class CEikIrActive
//

class CEikIrMain;
class CEikIrActive : public CActive
	{
public:
	~CEikIrActive();
	static CEikIrActive* NewL(CEikIrMain* aIrMain);
	void RunL();
	void Start();
	inline void NegotiationComplete() { iPhase=ETransfer; }
	inline void TransferComplete() { iPhase=EComplete; }
	inline TInt CurrentFile() {return iCurrentFile;}
	inline TInt NumOfFiles() {return iNumOfFiles;}
	inline TUint Version() {return iVersion;}
	void NextFile();
	inline void SetNumOfFiles(TInt aNumOfFiles) {iNumOfFiles=aNumOfFiles;}
	inline void SetCurrentFile(TInt aCurrentFile) {iCurrentFile=aCurrentFile;}
private:
	enum TPhase
		{
		EInitial,
		EDiscovery,
		EIASQuery,
		EIASResponse,
		EWaitToBeDiscovered,
		EWaitForConnect,
		EConnect,
		ENegotiate,
		ETransfer,
		EComplete,
		EClosed
		};
private:
	void SenderRunL();
	void ReceiverRunL();
	CEikIrActive();
	void Construct(CEikIrMain* aIrMain);
	void DoCancel();
private:
	friend class CEikIrMain;
	CEikIrMain* iIrMain;
	TPhase iPhase;
	TBool iReEnableLink;
	TInt iCurrentFile;
	TInt iNumOfFiles;
	TUint iVersion;
	};

#endif
