44 lines
820 B
C++
44 lines
820 B
C++
#pragma once
|
|
#include "th_cola.h"
|
|
template <typename T>
|
|
class DataOlvAsync_cola{
|
|
public:
|
|
int id;
|
|
T data;
|
|
};
|
|
|
|
template <typename P>
|
|
class OlvAsync_cola : public Cth_cola<DataOlvAsync_cola<P>>
|
|
{
|
|
|
|
void (*func_proc)( int, OlvAsync_cola<P>*, P *);
|
|
public:
|
|
OlvAsync_cola(void){};
|
|
~OlvAsync_cola(void){};
|
|
|
|
void inicia(int miliseconds,void (*func)( int, OlvAsync_cola<P>*, P *), int fin =-1, char* nombre=NULL)
|
|
{
|
|
func_proc =func;
|
|
time_sleep = miliseconds;
|
|
pirate=FALSE;
|
|
lanza(nombre);
|
|
}
|
|
|
|
virtual void procesa(DataOlvAsync_cola<P> &t)//override de procesado que hay que sobreescribir
|
|
{
|
|
func_proc(t.id,this,&t.data);
|
|
};
|
|
void encola(int tarea, P *argumentos, BOOL forzar)
|
|
{
|
|
DataOlvAsync_cola<P> t;
|
|
t.id = tarea;
|
|
if(argumentos)
|
|
t.data = *argumentos;
|
|
(*this)+t;
|
|
}
|
|
void termina()
|
|
{
|
|
fin();
|
|
}
|
|
};
|