#pragma once
#ifndef LICUTL_EXPORT
#ifdef _WINDLL
#define LICUTL_EXPORT __declspec(dllexport)
#else
#define LICUTL_EXPORT __declspec(dllimport)
#endif

#define VERSION_LICENCIA 100

#define LU_LICENCIA_CADUCA		1 //licencia normal
#define LU_LICENCIA_PROPIETARIA 2 //licencia propietaria, por defecto da licencia


#define  LU_DEFAULT_FILE	"data.lic"
#define  LU_DEFAULT_SERVER	"desa.narvaling.com"
//#define  LU_DEFAULT_SERVER	"192.168.1.60"

#define  LU_DEFAULT_PUERTO	8051

class Licencia;
//structuras
class LICUTL_EXPORT DBLicProvider
{
public:
	virtual bool fill( Licencia* lic )=0;//rellena datos licencia
	virtual int licCount( Licencia* lic )=0;//cuenta numero de licencias
	virtual bool fillInstal( Licencia* lic )=0;//rellena instalador
	virtual bool setAcceso( Licencia* lic, __int64 *ultAcc, __int64 *actualAcceso)=0;
	virtual bool getConf( char *ip, int *port )=0;//configuracion de escucha
};

class LICUTL_EXPORT LicClientEscucha
{
public:
	virtual bool getClave(char* clave, char* producto )=0;//pide clave (pidiendosela al usuario)
	virtual bool getServer( char*server, int *puerto, char* producto){ server[0]=0;*puerto=0;return false;}//pide servidor de licencias (no obligada)
	virtual bool getPathLic( char* path, char* producto ){path[0]=0; return true;}//pide path de archivo de licencia (no obligada)
	virtual void muestaError(char* info, char* producto){}
	virtual bool descargaInstalador(Licencia *lic){return true;}//true si revisamos instalador, false si no

};

#endif
