#include "TokenType.h"

/********************************************************************************************
	Clase singleton que contiene la lista de tipos de tarjetas (tokens) soportados.
********************************************************************************************/
class CTokenTypeList
{

	public:

		// Método que genera la única instancia de la clase y devuelve una referencia a la misma
		static CTokenTypeList & getInstance()
		{
			static CTokenTypeList tokenTypeList;
			return tokenTypeList;
		}

		// Destructor
		~CTokenTypeList(void);

		ulong size(void);

		CTokenType * at( ulong idx );

		bool m_PublicOnly;
		bool m_PrivateOnly;

	private:
		// Vector de token types
		vector<CTokenType *> m_vecTokenTypes;

		// Constructor
		CTokenTypeList();

		// Método para cargar las configuraciones de TokenTypes
		void LoadTokenTypeconfig( byte * pTokenTypeConfig, ulong ulTTConfigSize );

};