/**************************************************************************
<MODULE NAME>
<FILENAME></FILENAME>
<HISTORY>
	<MODIFICATION>
		<DATE>04/01/2006</DATE>
		<AUTHOR>DRO</AUTHOR>
		<DESCRIPTION>
		</DESCRIPTION>
	</MODIFICATION>
</HISTORY>
</MODULE NAME>
**************************************************************************/
#ifndef __CdRdMger_H__
#define __CdRdMger_H__

/**************************************************************************
INCLUDE FILE
**************************************************************************/
#include "..\comp\system\system.h"


/**************************************************************************
<CLASS>
	<NAME>CCardReaderManager</NAME>
	<MOTHERS>
		<MOTHER></MOTHER>
	</MOTHERS>
	<DESCRIPTION>
	</DESCRIPTION>
</CLASS>
**************************************************************************/
class CCardReaderManager
{
public:
	CCardReaderManager(void);
	virtual ~CCardReaderManager(void);

//Method
	virtual int LecteurInit(s_Parameters* shParm) = 0;
	virtual int ReadCommande(char* pzLectBuffer) = 0;
	virtual int WriteCommande(const char* pzString) = 0;
	virtual int EjectCommande(unsigned char ucDirection) = 0;
	virtual int StatusCommande(void) = 0;
	virtual int Tempo(void) = 0;
	virtual int WaitCard(void) = 0;
	virtual void CheckQueue(void)=0;
	
	virtual int CloseConnection(void){return 0;}

	static void DestroyInst(void);
	virtual char* CommandDirect(char cCommande, char cParam, char* pzData);

	// inline
	static CCardReaderManager* Inst(void)
	{
		return m_pcInst;
	}
	virtual int GetVersionCommande(char* pzLectBuffer)	{return 0;}
	virtual int GetProtocol(char* pzLectBuffer)			{return 0;}
	virtual int CaptureCard(void)						{return 0;}
	virtual int WaitTillCardRemoved(void)				{return 0;}
	virtual int LecteurInit(void)						{return 0;}
	virtual int CardPosition(void)						{return 0;}/*PMD*/
// attrib
	static CCardReaderManager* m_pcInst;
};

#endif /*__CdRdMger_H__*/