#ifndef LAZERPROBESMGR_H
#define LAZERPROBESMGR_H

/*******************************************************************************
*                                                                              *
* Société de Transports de Montréal.                                    	   *
* 2013                                                                         *
*                                                                              *
* Projet Zones Tests                                                           *
*                                                                              *
*                                                                              *
*                                                                              *
*******************************************************************************/
/*
    Description:
    Description du fichier si nécessaire.

*/

/* ************************************************************************** */
/* Revision:
### 20130130 JFM
    Verision d'origine.

### YYYYMMDD Description du besoin ou du bug
    Description du changement.
 */

/* ************************************************************************** */

#include "GlobalDefine.h"
#include "LazerProbe.h"
#include "QList"
#include "AbstractLazerProbeMgr.h"
#include <QThread>

//enum eLazerProbesMgrRetValues
//{
//	LAZERPROBES_MGR_RET_OK,
//	LAZERPROBES_MGR_RET_PROBE_OPEN_ERROR,
//	LAZERPROBES_MGR_RET_INVALID_PROBE_ID
//};

//typedef enum eLazerProbeType
//{
//	LAZER_PROBE_TYPE_EXTERNAL,		//Internal lazer probe installation
//	LAZER_PROBE_TYPE_INTERNAL,		//External lazer probe installation
//	LAZER_PROBE_TYPE_INVALID
//}eLazerProbeType_t;

class CLazerProbesMgr : public QObject, public CAbstractLazerProbeMgr
{
	Q_OBJECT
public:


	CLazerProbesMgr();
	~CLazerProbesMgr();

	unsigned int InitLazerProbes(void);
 //   unsigned int OpenExternalModules(void);
	CAbstractLazerProbe *GetLazerProbeHandle(eLazerProbeType_t LazerProbeType, unsigned int LazerProbeID);


private:
	QList<CLazerProbe*> mLazerProbesList;
	QList<QThread*> mLazerProbesThread;
	unsigned int mNbOpenedProbes;

};

#endif // LAZERPROBESMGR_H
