46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
#pragma once
|
|
#include "_proceso.h"
|
|
#include "static_cola.h"
|
|
#include "base_head.h"
|
|
typedef struct Timers_cola_asincrona
|
|
{
|
|
int t;
|
|
__int64 ultimo;
|
|
int tipo;
|
|
}Timers_cola_asincrona;
|
|
|
|
class UTILES_EXPORT Ccola_asincrona :public C_proceso
|
|
{
|
|
public:
|
|
|
|
private:
|
|
Cstatic_cola tareas;
|
|
__int64 t;
|
|
int n_timers;
|
|
int max_timers;
|
|
Timers_cola_asincrona* timers;
|
|
BOOL ultima_tarea;//indica si hay que hacer ultima tarea antes de desconectar
|
|
BOOL tipo_u_tarea;//tipo de ultima tarea
|
|
public:
|
|
BOOL pirate;
|
|
int time_sleep;
|
|
|
|
|
|
Ccola_asincrona(void);
|
|
~Ccola_asincrona(void);
|
|
//funciones
|
|
void inicia(int size,int cap=200);//prepara cola con elementos de tamaño size y capacidad de la coloa de cap
|
|
BOOL add(int tipo,BYTE*e);//pone una tarea nueva
|
|
void on_timer(int t,int tipo);//pone una tarea cada t milesimas de segundo (solo el tipo)
|
|
virtual void rum();
|
|
void termina();//finaliza thred cola asincrona (espera)
|
|
void add_fin(int tipo);//pone ultima tarea(antes de finalizar)
|
|
//override
|
|
void virtual procesa(int tipo, BYTE* e);
|
|
|
|
private:
|
|
void cuida();//pide memoria para timers
|
|
|
|
|
|
};
|