utiles_v2017/cola_asincrona.h

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
};