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

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

/**************************************************************************
<CLASS>
	<NAME>CCardReaderUrneManager</NAME>
	<MOTHERS>
		<MOTHER></MOTHER>
	</MOTHERS>
	<DESCRIPTION>
	</DESCRIPTION>
</CLASS>
**************************************************************************/
class CCardReaderUrneManager
{
public:
	// attribute
	//static CCardReaderUrneManager* m_pcInst;

	CCardReaderUrneManager(void);
	virtual ~CCardReaderUrneManager(void);

	virtual int LecteurInit(s_Parameters* shParm) = 0;
	virtual int  LecteurInit(void) = 0;

	virtual int SendReadCommande(char* pzLectBuffer) = 0;
	virtual int ReadCommande(char* pzLectBuffer) = 0;

	virtual int SendWriteCommande(const char* pzString) = 0;
	virtual int WriteCommande(char* pzString) = 0;

	virtual int SendEjectCommande(unsigned char ucDirection) = 0;
	virtual int EjectCommande(char* pzString) = 0;

	virtual int CloseConnection(void);


	virtual int Tempo(char* pzString) = 0;
	virtual int WaitCard(void) = 0;

	//static void DestroyInst(void);

	virtual char* CommandDirect(char cCommande, char cParam, char* pzData);

	//inline
	virtual int GetVersionCommande(char* pzLectBuffer){return 0;}
	virtual int GetProtocol(char* pzLectBuffer){return 0;}
	virtual void SetPointerCom(struct scom* psPort) {;}
	virtual struct scom* GetPointerCom(void)        {return NULL;}
	virtual int SendDeblock(void)					{return 0;}
	virtual int Deblock(char* pzString)				{return 0;}
	virtual void CheckQueue(void)					{;}
	virtual int SendStatusCommande(void)			{return 0;}
	virtual int StatusCommande(char* pzString)		{return 0;}
	virtual int CardPosition(void)					{return 0;}/*PMD*/

	virtual void SetType(uchar _ucType) {;}
	virtual uchar GetType(void) {return 0;}


protected:

private:
};

#endif /*__CCardReaderUrneManager_H__*/