#ifndef EXTERNALIOMGR_H
#define EXTERNALIOMGR_H

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

*/

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

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

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

#include "GlobalDefine.h"
#ifndef WINDOWS_OS
#include "seamaxlin.h"

#include "Seaiolibinterface.h"
#endif
#include "Externaliomodule.h"
#include "QList"
#include "IOManager.h"

class CExternalIOMgr : public CIOManager
{
public:


    CExternalIOMgr();
    ~CExternalIOMgr();

    unsigned int InitExternalIO(void);
	CExternalIOModule *GetModuleHandle(eExternalModuleType_t ModuleType, unsigned int ModuleID);

	virtual CIOModule *GetModule(eIOModuleType_t type, unsigned int ModuleID);
	virtual unsigned int InitIO();
    void DestroyModule();


private:
#ifndef WINDOWS_OS
    CSeaMaxLin *mSeaMaxInterface;  //The SeaMax driver interface used to communicate with the modules
    CSeaIOLibInterface mExternalIODriver;
    unsigned int mNbOpenedModules;
	QList<CExternalIOModule*> mExternalModulesList;
#endif

};

#endif // EXTERNALIOMGR_H
