utiles_v2017/TaskProcess.cpp

93 lines
2.1 KiB
C++

#include "StdAfx.h"
#include "TaskProcess.h"
#include "Csock_cl.h"
//***********************************************************************************************
TaskProcess::TaskProcess(void)
{
sc = NULL;
}
//***********************************************************************************************
TaskProcess::~TaskProcess(void)
{
desconecta();
}
//***********************************************************************************************
bool TaskProcess::conecta( char* url, int port )
{
sc= new Csock_cl(NULL);
if(!sc->Create())
{
return FALSE;
}
//conectamos------------------------------------------
if (!sc->conectar(url, port))
{
return FALSE;
}
return true;
}
//***********************************************************************************************
void TaskProcess::desconecta()
{
if (sc)
{
sc->Close();
delete sc;
sc=NULL;
}
}
//***********************************************************************************************
bool TaskProcess::initTask( char* ip, int port, __int64 timer )
{
pirate = false;
if(!conecta(ip, port))
return false;
preTask();
if(!pirate)
lanza();
__int64 t1=_time64(NULL);
__int64 t2;
while(!pirate && isRunning())
{
t2 = _time64(NULL);
if((t2-t1)>=timer)
{
inTask();
t1 = t2;
}
Sleep(min(100, (int)size_t(timer/10)));
}
join();
postTask();
desconecta();
return true;
}
//***********************************************************************************************
bool TaskProcess::envia( void * buf, int nb )
{
if (sc)
return sc->envia_package((BYTE*)buf,nb)==TRUE;
return false;
}
//***********************************************************************************************
void* TaskProcess::recibe(int *nb )
{
*nb = 0;
if (!sc)
return NULL;
if(!sc->recibe_package(0))
return NULL;
*nb =sc->nb;
return (void*)sc->buf;
}
//***********************************************************************************************
void TaskProcess::cancela()
{
pirate = true;
desconecta();
}
//***********************************************************************************************