VZTECH / Mbed 2 deprecated main_src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers call_box_manager.h Source File

call_box_manager.h

00001 #ifndef __CALL_BOX_MANAGER_H__
00002 #define __CALL_BOX_MANAGER_H__
00003 
00004 #include "vector.h"
00005 #include "call_box.h"
00006 #include <stdlib.h>
00007 #include "parallelcpld.h"
00008 #include "utils.h"
00009 #include "ring_buffer.h"
00010 
00011 %: include "shared_variables.h"
00012 
00013 const uint8_t __SLEEP_TIME__ = 45;
00014 
00015 extern Timer timer_refresh;
00016 extern Timer timer_aging;
00017 extern Timer timer_sync_refresh;
00018 
00019 const uint8_t TIME_TO_REFRESH = 1;
00020 const uint8_t TIME_TO_WAKE_UP = 2;
00021 
00022 /**
00023  * @Synopsis Busca por um determinado Call_box no vetor de Call_box usando como chave de busca o ramal.
00024  *
00025  * @param v_cb O vetor contendo todos os Call_box conhecidos pela Header em determinado momento.
00026  * @param ext O ramal pelo qual se irá buscar o CBx.
00027  *
00028  * @return NULL caso não tenha sido encontrado nenhum CBx com esse ramal; retorna um ponteiro para o Call_box que possui esse ramal,
00029  * caso o mesmo tenha sido encontrado.
00030  *
00031  * Exemplo:
00032  * @code
00033  * ...
00034  *  Vector * v_cb = new Vector();
00035  *      //assumindo que esse vetor de Call_Box já foi populado.
00036  *  int ext = 5218;
00037  *  Call_Box * cb = find_CB( v_cb, ext );
00038  * ...
00039  * @endcode
00040  */
00041 Call_Box * find_CB ( Vector  * v_cb, const int ext );
00042 
00043 /**
00044  * @Synopsis Função responsavel por "envelhecer" os registros na Header, na prática, é essa função que pergunta de tempo
00045  * em tempo se o CBx ainda continua ativo; Essa função também é responsavel por remover o CBx do v_cb assim como deletar o elemento cb
00046  * assossiado.
00047  *
00048  * @param v_cb Um vetor contendo todos os Call_box conhecidos pela Header em um determinado momento.
00049  * @param data Usado para a criação do pacote de "ping" que a Header irá enviar para o CBx.
00050  * @param write_buffer Local de memória onde efetivamente irá ser montado o pacote para envio ao CBx do pacote de "ping" ( Registry ).
00051  *
00052  * Exemplo:
00053  * @code
00054  * ...
00055  *  Vector * v_cb = new Vector();
00056  *      //assumindo que esse vetor de Call_Box já foi populado.
00057  *  uint8_t buffer[ 300 ];
00058  *      uint8_t write_buffer[ 300 ];
00059  *  registry_aging( v_cb, buffer, write_buffer );
00060  * ...
00061  * @endcode
00062  */
00063  
00064 int refresh ( Vector  * v_cb );
00065  
00066 inline int init_refresh ()
00067 { 
00068     timer_refresh.start(); 
00069     return ( 0 );
00070 }
00071 
00072 inline int init_sync_refresh ()
00073 { 
00074     timer_sync_refresh.start(); 
00075     return ( 0 );
00076 }
00077  
00078 void wake_all_up ( Vector  * v_cb );
00079 
00080 #endif