106 lines
2.0 KiB
C++
106 lines
2.0 KiB
C++
#include "StdAfx.h"
|
|
#include "DescargadorFiles.h"
|
|
#include "_log.h"
|
|
#include "dir_manager.h"
|
|
|
|
DescargadorFiles::DescargadorFiles(void)
|
|
{
|
|
errorMsg[0]=dirDest[0]=srv[0]=key[0]=usu[0]=0;
|
|
porcen =0;
|
|
puerto =0;
|
|
cancela =false;
|
|
}
|
|
|
|
|
|
DescargadorFiles::~DescargadorFiles(void)
|
|
{
|
|
cancela = true;
|
|
}
|
|
|
|
void DescargadorFiles::run()
|
|
{
|
|
FileTransferClient ft;
|
|
char orig[256], dst[256];
|
|
Sleep(100);
|
|
ft.setLisener(this);
|
|
if(!ft.conecta(srv,puerto))
|
|
{
|
|
if(lisener)
|
|
lisener->finTransfer(false);
|
|
C_log::log("PideFile", "Error al conectar a: %s:%ld",srv, puerto);
|
|
return;
|
|
}
|
|
|
|
if(!ft.Presenta(usu, key))
|
|
{
|
|
if(lisener)
|
|
lisener->finTransfer(false);
|
|
C_log::log("PideFile", "Error al presentarse a: %s" ,usu);
|
|
return;
|
|
}
|
|
double porcenFile = 100./files->n_i;
|
|
for (int i =0; i< files->n_i && !cancela; i++)
|
|
{
|
|
porcen = i/porcenFile;
|
|
sprintf(dst, "%s%s",dirDest,Cdir_manager::nombre_archivo(files->get(i),orig));
|
|
if(!ft.DescargaFile(files->get(i), dst))
|
|
{
|
|
if(lisener)
|
|
lisener->finTransfer(false);
|
|
C_log::log("PideFile", "Error al descargar orig: %s dest%ld",files->get(i), dst);
|
|
return;
|
|
}
|
|
|
|
}
|
|
|
|
if(!ft.desconecta())
|
|
{
|
|
C_log::log("PideFile", "Error al desconectar a: %s:%ld",srv, puerto);
|
|
|
|
}
|
|
else
|
|
{
|
|
if(lisener)
|
|
lisener->finTransfer(true);
|
|
C_log::log("PideFile", "final Feliz");
|
|
return;
|
|
}
|
|
}
|
|
|
|
void DescargadorFiles::setServer( char* ip, int puerto, char *key, char* usu )
|
|
{
|
|
strcpy(srv, ip);
|
|
strcpy(this->key, key);
|
|
strcpy(this->usu, usu);
|
|
|
|
this->puerto = puerto;
|
|
|
|
}
|
|
|
|
bool DescargadorFiles::iniciaDescarga( StrArray *filesOrig,char *dirDest, FileTransferClientLisener *lisener )
|
|
{
|
|
strcpy(this->dirDest, dirDest);
|
|
this->lisener = lisener;
|
|
files = filesOrig;
|
|
porcen =0;
|
|
cancela = false;
|
|
return lanza() == TRUE;
|
|
}
|
|
|
|
void DescargadorFiles::cancelaDesc()
|
|
{
|
|
cancela= true;
|
|
join();
|
|
}
|
|
|
|
void DescargadorFiles::setStatus( double porcent )
|
|
{
|
|
if(lisener)
|
|
lisener->setStatus(porcent+this->porcen);
|
|
}
|
|
|
|
void DescargadorFiles::finTransfer( bool finalFeliz )
|
|
{
|
|
|
|
}
|