#pragma once
#include <base_head.h>
#include "th.h"
#ifndef TaskProcess_h
#define TaskProcess_h
/*
Tarea delegada en otro proceso(normalmente en programa de consola)
definir en funcion override run la tarea
*/
class Csock_cl;
class UTILES_EXPORT TaskProcess: public Cth
{
	Csock_cl *sc;
public:
	bool pirate;//indica que hay que irse

	TaskProcess(void);
	~TaskProcess(void);
	bool initTask(char* url, int port, __int64 timer);
	bool envia(void * buf, int nb);//envia buffer al proceso principal
	void* recibe(int *nb );//recibe del proceso principal nb da el numero de bytes recib
	//overrides----------------------------------
	void cancela();//cancela tarea;
	virtual void preTask()=0;
	virtual void inTask()=0;
	virtual void postTask()=0;

	virtual bool conecta(char* url, int port);
	virtual void desconecta();
	
};
#endif